bpduguard使用在接着虚拟机的服务器上,避免网络环路:STP和VMware vSwitch

zz/2024/5/21 22:25:31

0?wx_fmt=png

STP是一个古老的协议,把它从故纸堆里扒出来是因为对理解现而今的数据中心网络的防环还是有一定帮忙的。在VMware环境中,VM连接的网络是虚拟的,是否会有环路吗?

STP(Spanning Tree Protocol)是生成树协议的英文缩写。该协议可应用于在网络中建立树形拓扑,消除网络中的环路,并且可以通过一定的方法实现路径冗余。

0?wx_fmt=jpeg

技术原理 (不关心网络的同学可以跳过这一段)

Spanning Tree Protocol(STP)在IEEE802.1D文档中有详细定义。

STP的基本原理是通过在交换机之间传递BPDU网桥协议数据单元(Bridge Protocol Data Unit)协议报文来确定网络的拓扑结构。BPDU有两种,配置BPDU(Configuration BPDU)和TCN BPDU。前者是用于计算无环的生成树的,后者则是用于在二层网络拓扑发生变化时产生用来缩短MAC表项的刷新时间的(由默认的300s缩短为15s)。

STP的基本思想是按照"树"的结构构造网络拓扑结构,因此可以消除网络中的环路,避免由于环路的存在而造成广播风暴问题。树的根是一个称为根桥的Bridge设备,根桥的确立是由交换机或网桥的BID(Bridge ID)确定的,BID最小的设备将成为二层网络中的根桥。BID是由网桥优先级和MAC地址构成。由根桥开始,逐级形成一棵树,根桥定时发送配置BPDU,非根桥接收配置BPDU,更新最佳BPDU并转发。这里的最佳BPDU指的是当前根桥所发送的BPDU。如果接收到了下级BPDU(新接入的设备发送BPDU,但该设备的BID比当前根桥大),接收到该下级BPDU的设备将会向新接入的设备发送自己存储的最佳BPDU,以告知其当前网络中根桥;如果接收到的BPDU更优,将会重新计算生成树拓扑。

当非根桥在离上一次接收到最佳BPDU最长寿命(Max Age,默认20s)后还没有接收到最佳BPDU的时候,该端口将进入监听状态,该设备将产生TCN BPDU,并从根端口转发出去,从指定端口接收到TCN BPDU的上级设备将发送确认,然后再向上级设备发送TCN BPDU,此过程持续到根桥为止,然后根桥在其后发送的配置BPDU中将携带标记表明拓扑已发生变化,网络中的所有设备接收到后将CAM表项的刷新时间从300s缩短为15s。整个收敛的时间为50s左右。

为了更好的实现收敛,在IEEE 802.1w规定的快速生成树协议RSTP,收敛速度可达到1s,这个在后面也会介绍。

STP实现的几个过程:

1、生成树初始化与收敛

STP首先要建立一个根节点称为根网桥,并构建了拓扑,网络中每一个节点都只有一条路径可以到达,最终生成的树起源于根节点,不属于最短路径树的一部分冗余链路会被阻塞,所以可以实现一个无环路的拓扑。(在阻塞链路上收到数据帧将会被丢弃。)

STP需要网络设备互相交换消息来检测桥接环路,交换机发送的用于构建无环路拓扑的消息称为网桥协议数据单元BPDU。阻塞端口会收到BPDU,以保证当活动路径或设备发生故障的时候,仍然可以计算出一棵新的生成树。BPDU将提供足够的信息,所有交换机利用此信息可以完成以下的工作:

选择一台单独的交换机作为生成树的根。

计算它自身到根交换机的最短路径。

对于每一个LAN网段,指定一台交换机作为最接近的交换机,称它为指定交换机,指定交换机处理所有从LAN到根交换机的通信。

每个非根交换机选择自身的一个端口作为根端口,它是到根交换机路径最短的接口。

在每个网段上选择属于生成树一部分的端口作为指定端口,非指定端口将被阻塞掉。

运行生成树协议的交换机上的端口,总是处于下面四个状态中的一个:

1)阻塞:所有端口以阻塞状态启动以防止回路,由生成树确定哪个端口切换为转发状态,处于阻塞状态的端口不转发数据帧但可接受BPDU。

2)监听:不转发数据帧,但检测BPDU(临时状态)。

3)学习:不转发数据帧,但学习MAC地址表(临时状态)。

4)转发:可以传送和接受数据数据帧。

STP四步初始化原则

STP在建立无环路逻辑拓扑时候,STP必须遵守“STP 四步初始化原则” 即:

第1步:最低的根BID。

第2步:最低的路径开销到根桥。

第3步:最低的发送方BID。

第4步:更低的端口ID。

当一台网桥设备加电起动时,按照(Hello Time)时间间隔为2秒频率向所有端口发送BPDU,网桥通过以上4个步骤来确定每个端口得到最优先的BPDU。如果自己最优先,则发送給对方,否则停止发送,接受对方的BPDU。如果在20秒时间未能收到对方发来的优先级高的BPDU的话,则又开始重新发送BPDU来确认最优的BPDU。

这里可以看到根桥是非常重要的,在网络中经常要设计为主备2个根桥设备。

STP潜在故障

1、双工不匹配:在点到点链路上,双工不匹配是一种常见的配置错误。当链路的一段采用手工的方式配置为了全双工模式,而另一侧却使用自动协商的默认配置的时候,那么就可能发生双工不匹配的情况。

2、单向链路失效:单向链路是产生桥接环路的一个非常常见的原因。如果光纤链路存在没有检测出来的故障或收发器故障,通常导致单向链路。在启用STP来提供网络冗余的情况下,对于两个链路伙伴之间所连接的物理链路,如果由于某种原因导致这条链路工作在单向通信的状态下,那么就可能导致桥接环路或路由选择黑洞,进而对维护网络稳定非常有害。

3、帧破坏:帧破坏是导致STP故障的另外一种原因。如果接口正在经受高速的物理错误,其结果有可能就会导致BPDU丢失,而这会使处于阻塞状态的接口过渡到转发状态。虽然如此,但因为STP默认参数是非常保守的,所以很少会发生上述情况。

4、资源错误:即使在通过专门的ASIC硬件执行大部分交换功能的高端交换机中,STP仍然由CPU来执行。这就意味着:如果处于某种原因而过度使用了网桥的CPU,那么就可能导致CPU没有足够的资源来发出BPDU。通常情况下,STP不是一种密集调用处理器的应用,而且STP的优先级高于其他进程。因此,出现资源问题的可能性并不大。

5、PortFast配置错误:如果管理员在端口上启用了PortFast特性,那么当链路启动的时候,端口就会绕过STP的监听和学习状态,并且直接过渡到转发状态。但是如果在错误的端口上配置了PortFast特性,那么这种快速过渡就有可能导致桥接环路。

可见STP还是非常复杂的,如果配置不当对整个数据中心网络会带来非常大的影响。

对于在实际中交换机与VMware vSwitch连接的场景,建议开PortFast,不接收BPDU。这个和VMware vSwitch的设计有关。

VMware vSwitch的避免环路设计

0?wx_fmt=jpeg

如图,VMware的vSwtich虚拟交换机只提供虚拟机与虚拟机之间通信,或者虚拟机与外部网络之间通信;多个虚拟交换机之间无法直接通信。同时,连接在同一虚拟交换机的多块物理网卡间也不会直接通信。 这种方式可以避免形成虚拟交换机与物理交换机间的环路。

那么网桥协议数据单元(Bridge Protocol Data Unit)是否会被发送到虚拟交换机或和虚拟交换机进行BPDU交换呢?其实,vSwitch是不会参与到STP的过程中的,也不会产生BPDU报文。

0?wx_fmt=jpeg

对于物理网络PDU的发送会有一个逻辑的边界,通常是终端物理交换机。这样BPDU数据包就不会被发送到物理网卡或者虚拟交换机中。

在一个复杂的网络环境中,由于链路的变更计算、STP状态更新可能需要花费30~50秒才能在全部链路交换设备中更新完毕,而在此期间,多个端口可能会受到影响导致较长时间的网络中断,为了避免此情况,建议在STP协议的网络环境中,将连接到虚拟交换机的网卡所连接的物理交换机端口启用Portfast功能,让端口在链路状态改变情况下快速恢复通信。

同时这里也建立配置BPDU Guard功能。BPDU Guard使具备PortFast特性的端口在接收到BPDU时进入err-disable状态来避免桥接环路。正常情况下,配置Portfast的端口接的是服务器类设备,不会发送BPDU。但如果这个端口收到了BPDU那一般是有环路出现了。BPDU Guard马上防环。

如果虚拟机往虚拟交换机发送BPDU,又会怎么样呢?如果出现这种情况,会出现虚拟交换机被迫参与STP计算而被截断链路,来避免环路。但这实际上会造成了虚拟化平台内部网络影响。

0?wx_fmt=jpeg

如果要防止此情况发生,需要在esxi主机上启用BPDUFilter功能,将BPDU数据包在虚拟机端口处直接屏蔽掉。

0?wx_fmt=jpeg

方法如下:

0?wx_fmt=jpeg

本文参考如下网站:

baike.baidu.com

www.vmware.com

www.cisco.com

转发请注明!


http://www.ngui.cc/zz/1545170.html

相关文章

公寓宽带服务器无响应,利用RLDP协议解决网络环路故障

在接入网络中,终端用户水平参差不齐,特别是在学生公寓中私接乱拉的情况比较普遍,很容易产生环路,造成局部网络瘫痪。虽然通过生成树协议能够解决部分环路的问题,但是受设备功能等其他方面制约,依然存在一些…

OVS:网络环路 广播风暴解决方案

OVS独立工作,不连接SDN控制器 出现环路,解决方案:虚拟交换机与物理交换机构成二层环路(比如虚拟交换机包含两块网卡,而这两块网卡都连接到物理交换机上,就是一个环路),一旦有广播报文…

快速解决局域网网络环路问题

在规模较大的局域网网络中,时常会遇到网络通道被严重堵塞的现象,造成这种故障现象的原因有很多,例如网络遭遇病毒***、网络设备发生硬件损坏、网络端口出现传输瓶颈等。不过,从网络堵塞现象发生的统计概率来看,网络中发…

【网络-实验】恐怖的网络环路

相信每一位初学网络的读者,在学习生成树协议时,心中都会有个疑惑,网络环路时啥样的呢?如何发生的?危害多大呢? 网络拓补 操作步骤 关闭生成树 目前交换机基本上都默认开启了生成树功能用于一定程度上应对网络环路&a…

网络环路原理及其影响

在这个拓扑图中,交换机就成了一个单点故障,如果交换机坏了,此时的几个模块之间都无法进行正常的工作,客户机不能访问服务器,不能连接 internet,不能访问打印机,反之都一样。所谓单点故障&#x…

交换机 网络环路

问题描述 同一个Cisco交换机交换机连接5台服务器,突然两台服务器网络断掉,其余3台服务器正常,从另外一台服务器从另一网段ssh进去: 排查问题,发现服务器配置正常,但是无法ping通网关 解决方法 这种情况很…

网络环路检测定位技术的发展过程

在从事多年的IT运维外包服务过程中,曾经遇到过无数次网络环路,它会引起网络里的广播风暴,耗尽交换资源,轻则某个部门断网,重则整个组织的网络瘫痪。 其中遇到最多的产生的网络环路的原因基本是以下两种情况&am…

内网环路怎么解决_记录一次局域网突发网络环路处理过程——全是血泪

这是自己做网络应急的一次过程描述:问题症状:1、网络内突然出现时断时续,丢包比较严重,无法操作业务2、PING网段虚地址比如62及两个实际地址60、61,时断时续3、核心交换机S1上到其他网络影响不大,问题主要集…

【案例分享】网络环路检测基本功能配置

配置需求 三台设备Device A、Device B和Device C组成一个物理上的环形网络。 通过在Device A上配置环路检测功能,使系统能够自动关闭Device A上出现环路的端口,并通过打印日志信息来通知用户检查网络。 组网图 图1-3 环路检测基本功能配置组网图 配置步…

广播风暴与网络环路

广播风暴和网络环路,熟悉其原理的人应该知道他们原理不一样,只是他们的表象相似:SW指示灯狂闪,同时内网丢包或者ping值变高。 广播风暴:当广播数据充斥网络无法处理,并占用大量网络带宽,导致正…