环路概述

路由环路是指因配置不当或路由协议收敛时出错,导致数据包在两台或多台路由器里被来回转发,最后TTL耗尽,不能到达目的地的一种故障。

实验拓扑

今天我们先通过一个小实验来演示下简单的环路现象,实验拓扑如下(路由器之间的链路采用PPP封装):

【超好玩的路由环路系列】1——PPP直连环路_网络工程师

R1的配置
interface Serial1/0/0
link-protocol ppp
ip address 12.1.1.1 255.255.255.0
R2的配置
interface Serial1/0/0
link-protocol ppp
ip address 12.1.1.2 255.255.255.0

验证环路存在

我们在R1的tracert一下12.1.1.3到12.1.1.254之间的任何一个地址,这里以12.1.1.3为例,发现数据包在R1和R2之间打环
tracert 12.1.1.3
traceroute to 12.1.1.3(12.1.1.3), max hops: 30 ,packet length: 40,press CTRL_C to break
1 12.1.1.2 60 ms 30 ms 20 ms
2 12.1.1.1 20 ms 10 ms 10 ms
3 12.1.1.2 30 ms 20 ms 30 ms
4 12.1.1.1 20 ms 20 ms *
5 12.1.1.2 70 ms 30 ms 30 ms
6 12.1.1.1 30 ms 40 ms 50 ms
7 12.1.1.2 60 ms 50 ms 60 ms
8 12.1.1.1 70 ms 40 ms 60 ms
9 12.1.1.2 90 ms 70 ms 70 ms
10 12.1.1.1 70 ms 70 ms 70 ms
11 12.1.1.2 100 ms 90 ms 100 ms
12 12.1.1.1 90 ms 90 ms 90 ms
13 12.1.1.2 120 ms 90 ms 110 ms
14 12.1.1.1 110 ms 100 ms 110 ms
15 12.1.1.2 130 ms 110 ms 130 ms
16 12.1.1.1 120 ms 120 ms 120 ms
17 12.1.1.2 140 ms 140 ms 130 ms
18 12.1.1.1 140 ms 130 ms 140 ms
19 12.1.1.2 150 ms 160 ms 140 ms
20 12.1.1.1 150 ms 150 ms 140 ms
21 12.1.1.2 170 ms 170 ms 180 ms
22 12.1.1.1 160 ms 170 ms 180 ms
23 12.1.1.2 180 ms 180 ms 180 ms
24 12.1.1.1 190 ms 170 ms 190 ms
25 12.1.1.2 190 ms 190 ms 200 ms
26 12.1.1.1 200 ms 200 ms 200 ms
27 12.1.1.2 210 ms 210 ms 220 ms
28 12.1.1.1 220 ms 210 ms 220 ms
29 12.1.1.2 210 ms 240 ms 230 ms
30 12.1.1.1 230 ms * 220 ms

在R1上对12。1.1.3发一个ping包,并使用ENSP抓包也可以看到TTL耗尽的现象
ping -c 1 12.1.1.3
PING 12.1.1.3: 56 data bytes, press CTRL_C to break
Request time out
— 12.1.1.3 ping statistics —
1 packet(s) transmitted
0 packet(s) received
100.00% packet loss

【超好玩的路由环路系列】1——PPP直连环路_网络工程师_02

原因分析

1、PPP协议的特殊性:PPP没有ARP查找的机制,其发包的原理是无论任何包,都要发向PPP对方的节点(有路由的前提下)。
2、分析路由表
dis ip routing-table
Destination/Mask Proto Pre Cost Flags NextHop Interface
12.1.1.0/24 Direct 0 0 D 12.1.1.1 Serial1/0/0
12.1.1.1/32 Direct 0 0 D 127.0.0.1 Serial1/0/0
12.1.1.2/32 Direct 0 0 D 12.1.1.2 Serial1/0/0
12.1.1.255/32 Direct 0 0 D 127.0.0.1 Serial1/0/0

dis ip routing-table
Destination/Mask Proto Pre Cost Flags NextHop Interface
12.1.1.0/24 Direct 0 0 D 12.1.1.2 Serial1/0/0
12.1.1.1/32 Direct 0 0 D 12.1.1.1 Serial1/0/0
12.1.1.2/32 Direct 0 0 D 127.0.0.1 Serial1/0/0
12.1.1.255/32 Direct 0 0 D 127.0.0.1 Serial1/0/0
当在R1或R2上发目的地12.1.1.3的数据包时,路由器采用最长匹配原则,会命中红线标记的条目,把包发给对方,所以数据包就环路了。

规避方法

PPP链路上配置IP时,请务必使用30位掩码,30位掩码只有两个可用地址,这样就不会生成冗余目的地的直连路由,就不会再产生环路,这也是在PPP等广域网链路上配置30位掩码地址的原因之一。

本文转载于公众号:网络之路博客