當網絡設備發下發送給本身的數據包,下一跳地址和發送源地址在同一個子網時,就會回覆一個icmp redirect報文,用於向發送源設備指出存在一個更加優化的路由。當源設備接收到這個icmp redirect報文後,後續數據包就會直接發送給新的下一跳。html
這通常都是因爲策略路由(PBR)或者不優化的路由(錯誤的靜態)引發的。nginx
+---+ | +----------+ ---+ +---+ | | 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 Redirect。網絡
+---+ | +----------+ ---+ +---+ | | 10.1.1.2/24 | | | | +---+ |LAN +----------+ | | | +---+ | | 10.1.1.1/24 +---+ | | 192.168.1.0/24<-----+ +----------+----+ +---+ 10.1.1.3/24
如上圖,還有一種路由不優化的狀況,假設路由設置以下:
10.1.1.2ip route 192.168.1.0/24 10.1.1.1
10.1.1.1ip route 192.168.1.0/24 10.1.1.3
10.1.1.3ip route 192.168.1.0/24 x.x.x.x
app
這種狀況下,10.1.1.1一樣也會向10.1.1.2回覆ICMP Redirect。ide
因爲須要網絡設備回覆ICMP Redirect報文,數據包須要發送給CPU進行處理,這將增長CPU額外的負擔。
爲了不這種狀況(或***),Nexus在硬件層面對須要ICMP Redirect報文進行限速。
目前, IP redirects經過Layer 3 Time-to-Live (TTL) 速率限制。默認是500個包每秒。若是超過這個值,將帶來丟包。oop
N7K# show hardware rate-limiter Units for Config: packets per secondAllowed, Dropped & Total: aggregated since last clear counters rl-1: STP and Fabricpath-ISIS rl-2: L3-ISIS and OTV-ISIS rl-3: UDLD, LACP, CDP and LLDP rl-4: Q-in-Q and ARP request rl-5: IGMP, NTP, DHCP-Snoop, Port-Security, Mgmt and Copy traffic Module: 1Rate-limiter PG Multiplier: 1.00 R-L Class Config Allowed Dropped Total +------------------+--------+---------------+---------------+-----------------+ L3 mtu 500 0 0 0 L3 ttl 500 0 0 0 L3 control 10000 0 0 0
一、關閉ICMP Redirect優化
int vlan xx no ip redirect二、調整Hardware Rade-limite值ui
Example:N7K(config)# hardware rate-limiter layer-3 ttl 1000
本文參考文檔
Cisco Nexus 7000 Series NX-OS Security Configuration Guidespa