提示:本篇是基于RedHat Enterprise 5.0来设置网桥的。部分文字摘录于相关技术网站。
一,配置命令
1。创建网桥设备:brctl addbr <bridge> ,eg:brctl addbr br0
2。向网桥设备添加物理网卡:brctl addif <bridge> <device>,eg:brctl addif br0 eth0/eth1(根据需要添加几个网卡)
3。从网桥中删除网卡:brctl delif <bridge> <device>,eg:brctl delif br0 eth0/eth1
4。删除网桥:brctl delbr <bridge>,eg:brctl delbr br0
5。查看网桥配置情况:brctl show
二,实例讲解
1。假如我有一台主机装有linux操作系统 ,并安装了网桥模块,而且有两块物理网卡,希望能分别与公司内网和外网进行通信。同时为了方便管理,我把网桥配置固定IP(172.7.10.5)。
2。其次创建一个虚拟网桥:# brctl addbr br0
3。建立一个虚拟网桥之后,我们还需要为它分配特定的端口。在Linux中,一个端口实际上就是一个物理网卡。而每个物理网卡的名称则分别为 eth0,eth1...。我们需要把每个网卡和br0 这个网桥联系起来,作为br0中的一个端口。
4。# brctl addif br0 eth0 (让eth0成为br0的第一个端口)
# brctl addif br0 eth1 (让eth1成为br0的第二个端口)
如图:
5。网桥的每个物理网卡作为一个端口,可以直接运行于混杂模式,它们是在链路层工作,所以就不需要IP了。
# ifconfig eth0 0.0.0.0
# ifconfig eth1 0.0.0.0
注:混杂模式(Promiscuous Mode)是指一台机器能够接收所有经过它的数据流,而不论其目的地址是否是它。这被网络管理员使用来诊断网络问题,但是也被无认证的想偷听网络通信(其可能包括密码和其它敏感的信息)的人利用。即它是接收所有经过网卡的数据包,包括不是发给本机的包。默认情况下网卡只把发给本机的包(包括广播包)传递给上层程序,其它的包一律丢弃。简单的讲,它就是指网卡能接受所有通过它的数据流,不管是什么格式,什么地址的。具体的地址转发则是在接受到数据后由MAC层来进行。
6。最后给br0的虚拟网卡配置IP:# ifconfig br0 172.7.10.5,给br0配置了IP之后,网桥就能够工作了。br0的IP也可以动态获取。
三,在RedHat Enterprise 5.0上基于网桥创建虚拟机
在Redhat Enterprise Linux 5 (RHEL5)上基于KVM创建虚拟机时有两种网络选项:
1。Virtual network - virbr0:QEMU 会在你的 Linux系统中产生一个 bridge 虚拟装置"virbr0" 。virbr0 不只是个单纯的 NAT 而已,他是一个 NAT + DHCP 的架构,所有的 Virtual machine 都会透过 virbr0 来指派一个私人网域 (private IP)。预设为 192.168.122.2 ~ 192.168.122.254 (在他的设定档中可以定义其 DHCP 可指定的 IP 范围).其预设的default gateway 为 192.168.122.1/24 ,所有在这架构下的 Virtual Machine 虚拟机器的封包都必须透过这 NAT 去连结到其它的网络.如同一般的 NAT 所有的 Virtual Machine 虚拟机器都是被隐藏在 private私有网络,所以外部不能直接连接到 Virtual Machine 虚拟机器上。如图:
2。Shared physical device:如果要使用"Shared physical device" 时需要经过手动设定才能使用。此时所有的 Virtual machine 的网络装置就会像是串接在一个 Hub 或是 Switch 上,只要是同区段的 IP 都可以互通。在 Linux 下网络的模式有一个东西叫做 Bridge mode,有点像将多个 NIC Adapter ports 透过一个虚拟出来的 Bridge(Switch) 全部串在一起,再透过一个虚拟出来的网络装置出去,这就像是把 Linux 当成一个 switch 来使用了。在一般的 Linux 环境下的方法也很简单:我们也可以透过下面几个简单的指令来产生自己所需要的 Bridge 装置出来。下面的图示你可以很清楚的看出来虚拟 NIC 和实体 NIC 是如何透过 bridge 模式串接在一起。
当新建虚拟机时,会出现如下网络选项,直接选择“br0”即可。