ICMP網絡控制信息協議(二)

ICMP重定向

R1發送一個重定向報文給主機172.16.1.1R2作爲網關去到達10.1.1.1

圖片.png

何時發送重定向報文:

1.信息包進入路由器的接口是信息包被髮送的同一個接口。

2.IP源地址的子網或網絡是路由信息包的下一跳IP地址的相同子網或網絡。

3.數據包不來源路由。

4.配置內核發送重定向。 (默認情況下, Cisco路由器發送ICMP重定向。 接口子命令no ip redirects可以被用於禁用ICMP重定向。)


ICMP重定向的過程:

圖片.png


實驗拓撲,接上一篇ICMP網絡控制信息協議


R3:

ip route 14.1.1.0 255.255.255.0 10.1.1.2   //去往R4 14.1.1.4的路由下一跳指向R2


R2:

ip route 14.1.1.0 255.255.255.0 10.1.1.1   //去往R4 14.1.1.4的路由下一跳指向R1


R4:

ip route 10.1.1.0 255.255.255.0 14.1.1.1 


測試:

R3#debug ip packet detail
IP packet debugging is on (detailed)
R3#

R3#ping 14.1.1.4
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 14.1.1.4, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/5 ms


debug 信息顯示如下:

*Nov 16 11:50:03.152: IP: tableid=0, s=10.1.1.2 (Ethernet0/2), d=10.1.1.3 (Ethernet0/2), routed via RIB
*Nov 16 11:50:03.152: IP: s=10.1.1.2 (Ethernet0/2), d=10.1.1.3 (Ethernet0/2), len 56, rcvd 3
*Nov 16 11:50:03.152:     ICMP type=5, code=1
*Nov 16 11:50:03.152: IP: s=10.1.1.2 (Ethernet0/2), d=10.1.1.3, len 56, stop process pak for forus packet
*Nov 16 11:50:03.153:     ICMP type=5, code=1

通過wireshark 抓包顯示如下:

圖片.png

圖片.png



ICMP的另一個典型應用是traceroute

traceroute基於報文頭中的TTL值來逐跳跟蹤報文的轉發路徑。

爲了跟蹤到達某特定目的地址的路徑,源端首先將報文的TTL值設置爲1。該報文到達第一個節點後,TTL超時,於是該節點向源端發送TTL超時消息,消息中攜帶時間戳。然後源端將報文的TTL值設置爲2,報文到達第二個節點後超時,該節點同樣返回TTL超時消息,以此類推,直到報文到達目的地。這樣,源端根據返回的報文中的信息可以跟蹤到報文經過的每一個節點,並根據時間戳信息計算往返時間。

traceroute是檢測網絡丟包及時延的有效手段,同時可以幫助管理員發現網絡中的路由環路。


測試:

在R3上進行traceroute

R3#traceroute 14.1.1.4 numeric
Type escape sequence to abort.
Tracing the route to 14.1.1.4
VRF info: (vrf in name/id, vrf out name/id)
  1 10.1.1.2 1 msec 0 msec 1 msec
  2 10.1.1.1 1 msec 0 msec 1 msec
  3 14.1.1.4 0 msec *  1 msec


圖片.png





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章