(下面提到的帧中继为点到点的,对于点到多点的有所不同)

平时用电脑ping本机IP时只是在电脑内部回环,而不会发到网络上,但路由器上并不一样。

路由器上ping本地端口IP的有趣现象_休闲

 

R1上的s1/0口IP是1.1.1.1         R2上的S1/0口IP是1.1.1.2

现在在R2的S1/0口上抓包。。。

1、R1上ping 1.1.1.2       ICMP包很正常地被抓到,一切很正常地如我们想象中那样。

2、R1上ping 1.1.1.1       这时出现了和我们想象中不一样的结果了,请看下图:

 

 

路由器上ping本地端口IP的有趣现象_环回 _02

 

路由器R1上发送了5个ping包,而R2上抓到了20个。也就是说R1在ping自己端口上的IP时,是先发request包给R2,然后R2转发给R1,R1再发reply包给R2,R2再转发给R1。

 

再来看一下R1上两次ping完后显示的RTT(round trip time)

R1#ping 1.1.1.1

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 1.1.1.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 108/200/272 ms
R1#ping 1.1.1.2

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 1.1.1.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 60/126/184 ms

 在ping R2时的RTT值比ping R1本地地址的RTT值低。

 

 

在R1上traceroute 1.1.1.1看一下:

R1#traceroute 1.1.1.1

Type escape sequence to abort.
Tracing the route to 1.1.1.1

  1 1.1.1.2 256 msec 108 msec 160 msec
  2 1.1.1.1 216 msec *  224 msec

这就很容易看到ICMP包所经过的路径了。 

 

那么,是不是任何两个直连的路由器端口都会出现这种情况呢,答案是否定的。

两个路由器的串口改为快速以太口再做实验时,R1 ping本地端口IP的包并没有发送出去,只是本地回环。

 

为啥会这样呢,请自己show ip route看一下。