1、回环检测一. 回环产生的原因交换机转发原理:在二层交换中,通过 mac 地址寻址来进行报文转发。二层设备的 mac 地址学习都是通过源 mac 地址学习来进行的。即:当端口收到一个未知源 mac 地址的报文,会将这个 mac添加到接收端口上,以便后续以该 mac 地址为目的的报文能够直接转发,即一次学习,多次转发。二层设备的 mac 地址更新机制是:1、正常老化过程。在指定的老化时间没有源或者目的 hit,从地址表中删除掉该mac。2、移动。当新来源 mac 如果发现该 mac 已经学习到了二层设备上,但是源端口不一样,会修改原来 mac 地址的源端口,也就是将原来的 mac 地址移动到新的端
2、口上来。存在的问题:上述情况 2 中,mac 地址的移动是必然的。因此当链路上存在环回情况时,最后会发现整个二层网络中的所有的 mac 地址都移动到了存在环回的端口上了,导致二层网络瘫痪。网络中的环回是指如下的图一和图二的情况,在一台以太网交换机上存在一个自环头,或者在该以太网交换级连的以太网交换机或者网桥上存在自环头或环路情况,设所有端口在一个 Vlan 中。在上述两种组网情况下,PC 都存在不能正常和 Sever 通讯的可能性。在图一情况下,PC ping Server 时,开始会发送一个 arp 广播报文,到达设备后,设备会将 PC 的 mac 地址学习到交换机的端口 E0/1 上。同时
3、,该广播报文会在二层网络中广播,因此会送到接自环头的端口 E0/7 和接 Server 的端口 E0/8 上。由于端口 E0/7 上接了一个自环头,于是,该报文会原封不动的送回到端口 E0/7 上。由于报文中的源 mac 地址为 PC 的mac 地址,这样,就会导致 PC 的 mac 地址从端口 E0/1 上移动到 E0/7 上。当 Server 回应的单播 arp 的报文送到交换机后,根据二层交换原理,通过目的 mac 寻址查找出端口,就会找到端口 E0/7,然后将报文从端口 E0/7 送出去。这样, PC 就不能和 Server 进行正常的通讯了。图二的情况和图一是类似的,环回或环路情况存
4、在于级连的交换机。同样会导致 mac地址的学习错误,使正常的网络通讯中断。图二的情况更接近于实际的网络情况。更难于发现和定位。这种环回情况对于二层网络来说是灾难性的,二层网络越大,影响范围越大。环路检测可以及时准确的发现网络中是否存在这种情况。二. 环路检测原理环路检测为通过软件方式检测网络中存在的环回和环回是否已经消失。因此,要求设备上有用做管理和收发报文的 CPU。环路检测原理:通过在设备的端口上发送一种特殊的报文,并检测该报文是否能够从发送出去的端口送回来,来确定这个端口上是否存在环回情况。因为网络是一个随时都有可能存在变动的对象,因此环路检测是一个持续的过程,也就是说,在设备上需要每隔
5、一定时间间隔进行一次检测,来确定各个端口上是否存在环回,以及上次发现存在环回的端口上环回是否已经消失等情况。具体细节: 1、环路检测是通过 CPU 收发报文来进行了,因此,CPU 对于收到的报文,必须能够识别出是否本设备发送出去的检测报文,是本设备的哪个端口发送出去的检测报文。2、 当链路上某端口下存在环回情况时,从该端口发送出去的检测报文必须能够从该端口送回到本设备的 CPU。3、当 CPU 从某端口发出的检测报文不能送回到本设备的该端口,则可以确认该端口下环回不存在。基于上述三点,在构造环路检测报文时,需要具备下列内容和条件:1、报文中含有分配给本设备的 mac 地址mac 地址的唯一性标
6、识是本设备发出的报文。2、报文中含有发送环路检测报文的端口号和接收到环路检测报文的端口号比较,看是否一致。3、报文的目的 mac 为任何情况下都会在本 Vlan 里广播的的 mac 地址保证出现环回情况报文能够回送到设备,一般情况下为广播 mac 地址。4、报文能够送到 CPU 去CPU 才能进行判断。当一个端口可以通过多个 Vlan 时,环路检测可以基于端口Vlan 来进行,从而检测出端口上不同的 Vlan 中存在的环路情况。环路检测的好处当设备通过环路检测发现了网络存在环回情况时,可以通过发送告警信息到网管系统,使网络管理人员能够及时发现网络中存在的问题,从而及时定位和解决。避免长时间的用
7、户断网现象。因为环路检测可以动态的发现链路上是否存在环回已经链路上的环回是否消失,因此,对于支持端口受控(比如端口隔离,端口 mac 地址学习受控)的设备,可以实现自动维护。这样不仅减轻网管人员的工作负担,同时反应更加及时,能迅速将环回对网络的影响减小至最小。比如:当设备检测到某端口存在环回,则将该端口和 Vlan 内的其它端口隔离,同时删除该端口的 mac 地址,并禁止该端口的 mac 地址学习功能,那么,仅仅存在环回的端口下的用户不能正常上网,而该 Vlan 内的其它用户互通就丝毫不会受到影响了。同时,在后续的检测中,一旦设备检测到该端口下面的环回已经消失,则取消掉对于端口的控制,使端口下的用户恢复正常的上网功能。