网桥是如何将网络打垮的?

斜体为读者提问:

今天把公司网络搞挂了5分钟左右,现在想想应该是网络风暴。事情是这样的,我首先在服务器上用brctl命令添加了一个网桥br0,然后把服务器的两块物理网卡eth0和eth1加入了该网桥中,添加过程中我发现终端上显示两块网卡开启了混杂模式,然后重启网络,结果我的终端几乎每隔一秒不到就显示网桥br0的一大串刷屏信息,然后同事反应他的服务器还有ftp存储服务器等都不能用了,直到我把网桥br0给down掉。

正文

我画了一个示意图:

主机上创建了一个网桥(Bridge),名称为Br0,其实就是一个软件交换机

从其中的一个接口接收到的帧,比如eth0,如果帧的目的MAC = Un-known MAC或MAC =广播地址,都会无条件转发给其它网桥接口,比如这里的eth1。

那么这个问题就变成了两台交换机,中间用两根网线相连,形成了一个物理环路。由于网桥BR0没有开启生成树STP,所以任何广播报文都会造成广播风暴。

当广播风暴发生时,物理交换机疲于转发环路的广播报文,CPU瞬间飙升至100% ,来不及处理其它报文,所以连接到该交换机的用户或服务器都会失去网络连接。

正确的做法

方法一:BR0上开启STP

那么ETH0、ETH1接口有一个会被STP逻辑关闭,自然就没有了物理环路。

方法二:用Ethernet Channel的方法将两条链路绑定成一条逻辑链路

任何一条物理链路的断开,都不会影响该主机SVI= 10.3.0.235访问网络。

尽管有两根链路,但是入向只能使用其中的一根物理链路;出向可以使用两根物理链路做负载均衡。

如果不用上述方法,读者朋友这种配置方式用在什么地方?

如果Eth0、Eth1连接交换机不同VLAN的端口,也不会引起环路,会正常工作。

此时Br0充当两个VLAN之间的流量桥梁,可以对流量进行过滤检查工作。此外,也可以利用BR0来完成流量数据的在线备份工作。

如果网络里没有物理交换机,BR0可以充当交换机来使用。Eth0、Eth1接口分别连接一台主机,只要主机在同一个网段,就可以正常通信,和接在物理交换机上没有什么区别。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180713G13W8E00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券