ICMP重定向
•R1发送一个重定向报文给主机172.16.1.1用R2作为网关去到达10.1.1.1
•何时发送重定向报文:
1.信息包进入路由器的接口是信息包被发送的同一个接口。
2.IP源地址的子网或网络是路由信息包的下一跳IP地址的相同子网或网络。
3.数据包不来源路由。
4.配置内核发送重定向。 (默认情况下, Cisco路由器发送ICMP重定向。 接口子命令no ip redirects可以被用于禁用ICMP重定向。)
ICMP重定向的过程:
实验拓扑,接上一篇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 抓包显示如下:
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
转载于:https://blog.51cto.com/3965485/2318121