本文适用对象:拥有一定的网络基础、Linux基础、略懂英文、热爱钻研的linux爱好者
本文适用软件版本:Redhat系的Linux发行版,包括RedHat,FeraCore,Mandrake
等,包中的脚本只在RedHat9和Mandrake10.1下测试通过,欢迎你来测试别的版本
本文作者及版权:Copyleft under Free Documentation License (FDL) by elcoud
本文及相关软件包下载:
第一部分:概念原理
[网桥]是用于连接ISO第二层网络的设备,它只提供以太网层次的连接,对于之上的TCP/IP等协议来说是完全透明的,你可以把它理解为交换机,实际上交换机也是一种网桥的实现。在Linux上配置网桥可以说就是把机器当作交换机来用。
比如我现在的情况,在公司里使用两台电脑,但是我的位子上之有一条网线,于是我在台式机上装了双网卡,配置了网桥,一块网卡连接公司网络,一块通过双机直
连线连接我的笔记本电脑。两台机器都有公司内部的固定IP地址,通过公司网关连入Internet。台式机对于笔记本电脑来说就是一个交换机
Linux从2.4内核开始就非常好的支持了网桥,并且还支持生成树协议等高级应用。
加入网桥的物理端口将不分配IP地址,只有网桥虚拟端口可以分配IP地址。虚拟端口可以完全当作一个普通端口来使用,并且支持iptables的各种应用和路由
配合ebtables,还可以支持二层网络包过滤、转发等高级应用。可以说Linux配合相应的工具完全可以提供高端交换机和路由器的各种功能、甚至他们没有的功能,当然了,受到PCI总线的限制,效率上一定是不如的
第二部分:安装配置
1,安装rpm包
装好以后,bridge-utils工具包就可以使用了
输入brctl(回车)可以看到使用帮助,比较简单,由于我们主要使用系统脚本来设置网桥,所以基本不会使用这个命令,最多使用brctl show来查看网桥的状态
详细信息可以去看/usr/share/doc/bridge-utils-1.0.4中的文档
2,给文件/sbin/ifup打补丁
patch -p0 /sbin/ifup < ifup.patch
3,在/etc/modprobe.conf文件中加入:
alias bri0 bridge
bri0是你给bridge端口起的名字,也可以叫别的,也可以有多个
4,修改/etc/sysconfig/network-scripts/目录中的物理网卡配置文件ifcfg-eth0等
在第2行开始加入如下两行:
TYPE=Bridge
BRIDGE=bri0
这是表明该物理网卡所属的bridge的名字,根据自己的实际情况填写
5,将文件ifcfg-bri0复制到/etc/sysconfig/network-scripts
chown root:root ifcfg-bri0
chmod 755 ifcfg-bri0
根据自己的需要进行相应修改
注意这个文件实际是bridge虚拟端口的配置文件,可以把bri0虚拟成一块普通的网卡,此文件中千万不能出现TYPE和BRIDGE这两个变量的定义,不然bri0无法获得ip地址,如果你有多个bridge端口可以复制多份此文件并且改成相应的名字。
BVI这个TYPE是我自己定义的,并对应ifup脚本中修改的部分,用于初始化bridge虚拟端口,不要擅自更改
6,重启网络服务
/etc/init.d/network restart
类似如下显示,表明你的网桥已经顺利运行了,你可以随时使用ifup/ifdown等工具来开关虚拟端口和任何一个物理端口
正在关闭接口 eth0: [完成]
正在关闭接口 eth1: [完成]
正在关闭接口 bri0: [完成]
正在关闭回环接口: [完成]
正在设置网络参数: [完成]
加载回环接口: [完成]
正在打开接口 bri0: [完成]
正在打开接口 eth0: [完成]
正在打开接口 eth1: [完成]
7,其他
如果你的ifup版本实在太老打了补丁仍无法顺利运行,那么就直接使用包里带的这个ifup脚本,把他复制到/sbin/目录
chown root:root /sbin/ifup
chmod 755 /sbin/ifup
8,后记
其实安装好bridge-utils工具包以后,网桥功能已经可以正常使用,在启动脚本(如/etc/profile)中添加若干brctl命令行和ifconfig命令行就可以完成
阅读(5531) | 评论(0) | 转发(0) |