拓扑如下:

静态路由高级用法(递归路由)

预设:

R2和R3上都拥有去往R4后面网段的静态路由

R2&R3(配置一样):

ip route 10.1.0.0 255.255.255.0 Ethernet1/1 100.2.0.1

ip route 10.2.0.0 255.255.255.0 Ethernet1/1 100.2.0.1 

ip route 10.3.0.0 255.255.255.0 Ethernet1/1 100.2.0.1 

ip route 10.4.0.0 255.255.255.0 Ethernet1/1 100.2.0.1 

ip route 192.168.1.0 255.255.255.0 Ethernet1/0 100.1.0.1 

 

那么如果使用静态路由,当R2或者R3中某一台宕机的时候,那么就需要在R1上修改去往R4 后面(LO)网段的静态路由的下一跳地址。

如果原先走的是R2,现在R2宕机了。

即需要在R1上作出如下修改:

ip route 10.1.0.0 255.255.255.0 Ethernet1/0 100.1.0.3 

ip route 10.2.0.0 255.255.255.0 Ethernet1/0 100.1.0.3 

ip route 10.3.0.0 255.255.255.0 Ethernet1/0 100.1.0.3 

ip route 10.4.0.0 255.255.255.0 Ethernet1/0 100.1.0.3 

需要再R4上做出如下修改:

ip route 192.168.1.0 255.255.255.0 Ethernet1/0 100.1.0.1 

如果R4后面有1000个网段怎么办?   那就需要修改1000条啊。。。

 

这时候递归路由就派上用场了。

将R1 去往 R4后面网段的下一跳地址,改为非直连地址。即为100.2.0.1。如下所示

ip route 10.1.0.0 255.255.255.0 Ethernet1/0 100.2.0.1

ip route 10.2.0.0 255.255.255.0 Ethernet1/0 100.2.0.1 

ip route 10.3.0.0 255.255.255.0 Ethernet1/0 100.2.0.1 

ip route 10.4.0.0 255.255.255.0 Ethernet1/0 100.2.0.1 

将R1 去往 R4后面网段的下一跳地址,改为非直连地址。即为100.2.0.1。如下所示

ip route 192.168.1.0 255.255.255.0 Ethernet1/0 100.1.0.1 

 

此时,从R1上Ping10.x.x.x肯定是不通的,因为R1并不知道怎么去往 100.2.0.1。R4 也不知道怎么去R1。

接口与接口之间传递数据靠的是什么?

只需要知道对方二层地址即可传递吧。

现在每个路由器都在做什么操作呢。

R1 发 ICMP 包,但是发现自己没有 100.2.0.1 的 ARP表项。

那么他就会发送ARP 广播。

由于路由器的接口是默认开启了ARP代理,那么 R2 或者R3 都会接受到 ARP请求。

随后R2 和R3 判断一下,请求的三层地址,自己是否可达,如果可达则回复ARP请求。R2 和R3 都有去往目的网段的下一跳路由(表示可达),所以都会发送 ARP 回复。

然后在R1 上,收到ARP回复,后到的加入到ARP 表中。

随后我们就能通信啦,可是为什么现在不行呢…………

我们看一下R1的行为:

静态路由高级用法(递归路由)

竟然被过滤了? 这是为什么呢……

原来路由器和PC不同:

PC会无条件信任,立刻加入ARP表。

而路由器,会先判断一下应答者的IP地址是否可达,如果可达则加表,不可达则过滤。

那我们现在没有去往100.2.0.0网段的路由,所以是不可达的,那么必然会被过滤掉。

 

在R1上添加一条递归路由:

ip route 100.2.0.0 255.255.255.0 Ethernet1/0 100.1.0.2 

在R4上添加一条递归路由:

ip route 100.1.0.0 255.255.255.0 Ethernet1/0 100.2.0.2

再ping一下10.1.0.1

静态路由高级用法(递归路由)

哎?通了。

看到图中有收到两次ARP回复,一个是 R2的回复,一个是R3的回复,R3的回复在下面,那么照理来说ARP表里面应该是R3的e1/0的地址咯?

静态路由高级用法(递归路由)

那么这条递归路由具体有什么用呢?

它是为了在ARP加表时,让路由器判断为应答者的IP地址可达。

看了闫辉老师的视屏,老师说,这个下一跳地址与数据选路是没有关系的,但是很奇怪,R1 和R4 同样的配置,ARP表中对应接口的MAC地址都是R3的。

下面贴上路由条目与ARP表:静态路由高级用法(递归路由)

静态路由高级用法(递归路由)

但实际上他的数据走向却是如下图:

静态路由高级用法(递归路由)

所以当我关掉 R2的时候,R4 任然能收到 R1 发过来的ICMP包,但是R1收不到  R4 的回复,如下图

静态路由高级用法(递归路由)

但是手动将 R1 和 R4 的递归路由 的下一跳地址 改成 R3的,那么又能够正常通信。

静态路由高级用法(递归路由)

 

对于下图的数据走向,我特别不理解,哪位大佬能否赐教一下,小弟不胜感激。

静态路由高级用法(递归路由)

 

 

 

相关文章:

  • 2021-12-24
  • 2022-12-23
  • 2021-08-20
  • 2022-01-06
猜你喜欢
  • 2021-11-13
  • 2022-12-23
  • 2022-12-23
  • 2021-11-17
  • 2022-01-08
  • 2021-11-29
  • 2022-12-23
相关资源
相似解决方案