ICMP重定向引起的网络丢包
场景
当网络设备发下发送给自己的数据包,下一跳地址和发送源地址在同一个子网时,就会回复一个ICMP重定向报文,用于向发送源设备指出存在一个更加优化的路由。当源设备接收到这个ICMP重定向报文后,后续数据包就会直接发送给新的下一跳。
引起原因
这一般都是由于策略路由(PBR)或者不优化的路由(错误的静态)引起的。
,+ - - - + |才能,,,+ +,- - - - - - - - - - - - - - - - - + + - - - +才能,,,,,,,,,,|,,,| 10.1.1.2/24 ,,,,, |,,, | ,,,,,,,,,,,,,,,,|,,,,|,,,,,,,,,+ - - - + ,,,,,,,,,,,,,,,,| LAN + +, - - - - - - - - - - -, | ,,,,,,,,,,,,,,,,|,,,,|,,,,,,,,,+ - - - + ,,,,,,,,,,,,,,,,|,,,,|,,,,,,,10.1.1.1/24 + - - - +才能,,,,,,,,,,|,,,| |才能,,,+ - - - - - - - - - - - + - - - + ,+ - - - + 10.1.1.3/24
如图所示,假设10.1.1.2去往10.1.1.3的的数据包被策略路由强行发网10.1.1.1,10.1.1.1会发现下一跳和自己在同一个网段,接下来将会向10.1.1.2回复一个ICMP重定向。
,,,,,,,,,,,,,,,,,,, + - - - + ,,,,,,,,,,,,,,,,,,,|,,,+ +,- - - - - - - - - - - - - - - - - + ,,,,,,,,,,,,,,,,,,,+ - - - +,,,,,,,,,,|,,,| ,,,,,,,,,,,,,,,,,10.1.1.2/24 ,,,,, |,,, | ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,|,,,,,,,,,+ - - - + ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,| LAN + +, - - - - - - - - - - -, | ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,|,,,,,,,,,+ - - - + ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,|,,,,,,,10.1.1.1/24 ,,,,,,,,,,,,,,,,,,,+ - - - +,,,,,,,,,,|,,,| - - - - - - + 192.168.1.0/24<,, + - - - - - - - - - - - - - - - - + ,,,,,,,,,,,,,,,,,,+ - - - + ,,,,,,,,,,,,,,,,,10.1.1.3/24
如上图,还有一种路由不优化的情况,假设路由设置如下:
10.1.1.2
<代码> ip路由192.168.1.0/24 10.1.1.1 代码>
10.1.1.1
<代码> ip路由192.168.1.0/24 10.1.1.3 代码>
10.1.1.3
<代码> ip路由192.168.1.0/24 . x.x.x。x 代码>
这种情况下,10.1.1.1同样也会向10.1.1.2回复ICMP重定向。
危害
由于需要网络设备回复ICMP重定向报文,数据包需要发送给CPU进行处理,这将增加CPU额外的负担。
为了避免这种情况(或* * *),连结在硬件层面对需要ICMP重定向报文进行限速。
目前,IP重定向通过第三层time - to - live (TTL)速率限制。默认是500个包每秒. .
N7K #, show hardware rate-limiter Units for 配置:packets per secondAllowed,, Dropped ,,总:,aggregated since last clear 计数器 特殊平台下:STP 以及Fabricpath-ISIS信息 第二:L3-ISIS 以及OTV-ISIS信息 rl-3:, UDLD, LACP, CDP 以及LLDP信息 rl-4: Q-in-Q 以及ARP 请求 国家结核控制规划,rl-5: IGMP,,, DHCP-Snoop,,端口安全,Mgmt 以及Copy 交通 模块:1 rate-limiter PG 乘数:1.00 null null null null null思科Nexus之“ip重定向”