-
二层和三层环路有什么特点和区别?
环路的原因:
二层环路是由于物理拓扑出现环路,如3台交换机三角形连接。
三层环路一般物理拓扑有环路,并且设置之间路由表形成互指。 - 二层交换机工作行为?
收到的数据帧查看2层头部,根据目的Mac地址转发,目的Mac分广播、组播、单播。
广播
目的Mac全为F。收到广播报文,除了接收的端口外,向其余所有端口转发-(泛洪)。
组播
目的Mac的第8位为1。收到组播报文,首先判断目的MAC是否本机要接受,如收到STP的BPDU,而自身也运行STP,此报文上送CPU处理,不做转发。假如此报文自身不需要接受,则处理方式为泛洪。
单播
目的MAC的第8位位0。收到单播报文,如果目的MAC在自身MAC表中不存在,则称为未知单播,处理方式为泛洪。假如目的MAC在自身MAC表中存在,则称为已知单播,把报文向MAC表中的接口转发(如该接口等于报文的接收端口,则丢弃报文)。
- 三层设备的工作行为
收到数据包查看三层目的IP,根据目的IP地址转发,分为广播,组播,单播。
广播
目的IP全为1。收到广播包,上送CPU处理(注意不是丢弃报文),三层设备是隔离广播域,不是丢弃广播报文。
组播
目的IP为224.0.0.0-239.0.0.0。开启组播路由协议则转发,否则丢弃。
单播
目的IP在路由表中存在则按出端口转发,目的IP在路由表中不存在则丢弃。
- 环路的影响
二层环路
广播风暴和数据帧复制,MAC地址震荡;假设交换机收到广播帧或者组播帧或者未知单播帧,会采用泛洪形式处理,数据帧在转发时产生了拷贝复制,数据帧无休止被转发,如此往复,最终导致整个网络带宽资源被耗尽,设备负载过大,网络瘫痪不可用。
三层环路
数据包会在设备之间有限的互相转发,因为在三层IP头部存在TTL字段,所以报文不会无休止转发。
- 防环机制
二层防环
STP、SMART-LINK等技术,或使用LACP链路捆绑和设备堆叠等技术,使得物理拓扑上没有环路。
三层防环
只要依靠路由协议自身的防环机制。
静态路由
依靠人工预防。
RIP
RIP防环机制,16跳,水平分割,毒性逆转,触发更新。
OSPF
区域内依靠SPF算法,区域间依靠区域结构设计和ABR的水平分割原则。
ISIS
区域内依靠SPF算法,区域间依靠路由泄露的DOWN位。
BGP
AS之间依靠AS号,AS内部只传一跳,如使用路由反射依靠簇LIST和起源ID,使用联盟,依靠联盟的私有AS号。
组播
依靠PRF检查。
转发层面:二层环路无防环机制,三层环路有TTL机制。
- 总结:
二层环路较易产生,需要运行破坏机制,经过计算阻塞某些端口实现预防,且由于二层设备的处理行为导致了后果特别严重。
三层环路不容易产生,由于三层设备的处理行为和TTL机制,所以后果并不十分严重,且每种路由协议都有比较完整的防环机制,三层环路比较容易发生在特殊的场景下,如双点双向路由发布。
补充:
TTL:Time to live,在IP报文中,TTL字段占8个bit,所以最大255,设备接收到报文都需要减1,减到0则丢弃报文,并向报文的源IP发送ICMP消息type为1,code为0的错误消息。
来源:oschina
链接:https://my.oschina.net/u/4374260/blog/3230568