在实际的网络应用中就存在这样一种用户,他们希望在linux服务器下双网卡桥接但又想实现网络不环路。这是我实际遇到的一个用户需求场景,这样的方案是为了实现网络冗余,当一条链路断开另一条链路可以继续工作。其实他们完全可以直接双网卡绑定来实现网络的冗余。但是用户希望这样做我们也只能按这种方案做,所以今天我就说一下如何在linux下进行双网卡桥接,同时在linux下开启生成树保证网络拓扑不环路。
拓扑很简单,一台linux服务器双网卡,一台二层交换机。
首先,配置linux服务器端,将两张网卡配置成桥接模式:在/etc/sysconfig/network-scripts/文件夹下创建ifcfg-br0桥接接口配置文件,内容如下:
[root@N3 network-scripts]# vi ifcfg-br0
# Broadcom Corporation NetXtreme BCM5722 Gigabit Ethernet PCI Express
DEVICE=br0 -----桥接接口命名为bro
TYPE=Bridge -----类型桥接模式
BOOTPROTO=none
ONBOOT=yes
IPADDR=192.168.1.222 ----这部分是配置桥接接口的管理ip(类似svi口的ip)和网关等等。
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
NETWORK=192.168.1.0
将两个接口加入桥接端口:
[root@N3 network-scripts]# vi ifcfg-eth0
# Broadcom Corporation NetXtreme BCM5722 Gigabit Ethernet PCI Express
DEVICE=eth4
BOOTPROTO=none
HWADDR=00:21:5E:47:31:98
ONBOOT=yes
BRIDGE=br0 ---加入桥接端口
IPV6INIT=no
PEERDNS=yes
NM_CONTROLLED=no
TYPE=Ethernet
USERCTL=no
[root@N3 network-scripts]# vi ifcfg-eth1
# Broadcom Corporation NetXtreme BCM5722 Gigabit Ethernet PCI Express
DEVICE=eth5
BOOTPROTO=none
HWADDR=00:21:5E:47:31:A0
ONBOOT=yes
BRIDGE=br0
IPV6INIT=no
PEERDNS=yes
NM_CONTROLLED=no
TYPE=Ethernet
USERCTL=no
配置完成后,需要重启设备后,网卡桥接才能生效。
其次,在linux下开启生成树协议:
到目前为此我们可以看到,如果linux端配置成桥接模式,而交换机端也没有开启生成树,整个网络是环路状态。
我们要在交换机端开启生成树:spanning-tree
同时在linux端也开启生成树协议,通过如下命令开启:
[root@SERVER2 ~]# brctl stp br0 on
可以通过如下命令查看linux服务器生成树状态:brctl showstp br0
交换机端查看生成树状态:show spanning-tree summary
可以看到交换机端端口GI0/50被block了,两端生成树都生效了。
至此Linux下双网卡桥接同时开启生成树保证网络拓扑不环路的方案就完成了。

2012年5月17日 上午9:53 沙发
博主主题非常不错。
2012年5月17日 上午10:06 板凳
看了你的也不错哦。相互支持一下呵呵 @艾伦网
2012年5月17日 上午11:28 地板
你懂的真多啊。@激劉勇靖
2012年5月17日 下午12:12 1层
@站长 都是这几年工作中积累下来的。你将来有一天也会掌握这些技术,如果你从事相关行业的话。
2012年5月17日 下午12:18 4楼
我的专业就是网络工程,如果不出意外,在毕业之后的几年里应该出从事这一行业,我很想问一下用linux服务器,专业的人会不会安装图像化界面。@激劉勇靖
2012年5月17日 下午12:36 1层
@站长 一般专业做linux的 不会用图形化,都是在cli命令行进行操作 ,对于新手来说图形化可以用来学习,但是最后还是要慢慢脱离图形化。
2012年5月17日 下午12:43 5楼
昨天我创建了网络技术板块,慢慢的我会把一些基础的网络知识都分享出来,供大家学习专用。希望你们多多支持。你们的支持就是我做站的动力。有空也帮我宣传宣传,帮我聚点人气。呵呵@激劉勇靖
2012年5月17日 下午1:08 6楼
那我问一下,到何种地步了就能脱离图像化界面?@激劉勇靖
2012年5月17日 下午1:17 1层
@站长 在你在图形的时候就要,尽量学着去用cli命令行处理你想要解决的问题。久而久之你就会慢慢的转入命令行。这个也没有到何种地步才能脱离之说。简单的说你学会了cli下基本的cli操作命令之后就要学习转入cli,不要用图形化。
2012年5月17日 下午1:09 7楼
这个博看我用来学习技术,不知道能不能贡献一些你的学习资料。@激劉勇靖
2012年5月17日 下午1:18 1层
@站长 你想要什么样的资料,你没有说要具体的我也不知道你想要哪块的。
2012年5月18日 下午12:57 1层
@站长 给你说一下,我昨天更新了一篇,网桥转发原理,对你想学习网络技术是个基础文章,你可以看看,提点意见。
2012年5月17日 下午1:41 8楼
linux服务器运维方面,当然有系统集成方面也可以@激劉勇靖
2012年5月17日 下午2:14 1层
@站长 我发你邮箱吧。
2012年6月10日 下午1:46 9楼
非常感谢作者的文章,我的问题终于解决了
2012年6月10日 下午2:15 1层
@匿名 能帮到是我最大的愿望,写这些东西就是为了给遇到同样的问题的人朋友提供解决方案。