zoukankan      html  css  js  c++  java
  • 浅淡递归路由

    路由的递归查询针对静态路由来讲,对于动态路由就没必要了。之所以要使用递归路由,目的是绕开那些经常变动的链路,可以使静态路由的配置工作量减小。

    使用递归路由的一个条件:到达目标网络的链路在途中可以汇聚成比目标网络数量更少的链路。

    路由器逐跳将数据包发送到目的地,静态路由可以指定到目的地的每一跳,但是如果路径上某个节点出现问题,整条静态路由就不能工作了,如果真的能用到静态路由,则需要管理员重新指定一条可以到达目的地的静态路由,很蛋疼。

    递归路由可以在一定程度上解决这个问题:

    对于上面的拓扑,R1需要经过R2或R3路由器,将数据包发送给R4下的网段,管理员需要指定一条从R2或R3到R4下网段的静态路由,如果指定的是经过R2的静态路由,那如果R2不幸down掉,则需要在指定经过R3的路由,对于这样简单的拓扑还可以,但对于大点的网络环境,则比较麻烦。

    如果R1不指定R2或R3,直接指定R4路由器的f0/0接口,如果R2 down掉,则可以通过R3继续工作。

    目标:

    从R1可以访问R4路由之下的四个网段。

    实现:

    1.静态路由关联R2或R3,来实现与R4的通信,但这样存在问题,如果R2或R3中有路由器无法使用了,得重新修改路由配置

    2.直接关联R4的f0/0接口:这样R2或R3失效后,R1仍可以访问R4网段,这里用到就是递归路由了吧。

    具体操作:

    R1指定到R4的静态路由:

    R1(config)#ip route 40.0.1.0 255.255.255.0 fastEthernet0/020.2.2.4

    R1(config)#ip route 40.1.1.0 255.255.255.0fastEthernet 0/020.2.2.4

    R1(config)#ip route 40.2.1.0 255.255.255.0fastEthernet 0/020.2.2.4

    R1(config)#ip route 40.3.1.0 255.255.255.0fastEthernet 0/020.2.2.4

    R2指定到R4的静态路由:

    R2(config)#ip route 40.0.1.0 255.255.255.0 fastEthernet 0/120.2.2.4

    R2(config)#ip route 40.1.1.0 255.255.255.0 fastEthernet 0/120.2.2.4

    R2(config)#ip route 40.2.1.0 255.255.255.0 fastEthernet 0/120.2.2.4

    R2(config)#ip route 40.3.1.0 255.255.255.0 fastEthernet 0/120.2.2.4

    R3指定到R4的静态路由:

    R3(config)#ip route 40.0.1.0 255.255.255.0 fastEthernet 0/120.2.2.4

    R3(config)#ip route 40.1.1.0 255.255.255.0 fastEthernet 0/120.2.2.4

    R3(config)#ip route 40.2.1.0 255.255.255.0 fastEthernet 0/120.2.2.4

    R3(config)#ip route 40.3.1.0 255.255.255.0 fastEthernet 0/120.2.2.4

    R1要把报文发给40.0.1.0等四个网段,先要把报文发给静态路由中指定的下一跳地址,也就是20.2.2.4,但R1的路由表里没有20.2.2.4的的路由条目,R1会干什么?R1会像PC一样,发送ARP请求,用debug 来查看ARP信息:

    Mar 1 00:25:23.783: IPARP: creating incomplete entry for IP address: 20.2.2.4 interfaceFastEthernet0/0

    *Mar 1 00:25:23.783: IPARP: sent req src 10.1.1.1 c400.1910.0000,

    dst20.2.2.4 0000.0000.0000 FastEthernet0/0

    这里可以看到,R1发送arp请求,源地址是10.1.1.1,源mac地址是c400.1910.0000,目的地是:20.2.2.4,目的mac是:0000.0000.0000,通过接口:FastEthernet0/0,R1向R2和R3发送ARP请求,R2和R3的代理ARP功能,会判断,请求者和被请求者是不是在同一个广播域,是否拥有去往源和目的地址的路由,是否开启接口代理ARP,如果全部满足,则R2和R3就会给R1发送ARP应答。

    R2中:

    *Mar 1 00:25:21.859: IPARP: rcvd req src 10.1.1.1 c400.1910.0000, dst 20.2.2.4 FastEthernet0/0

    *Mar 1 00:25:21.863: IPARP: sent rep src 20.2.2.4 c401.1910.0000,

    dst10.1.1.1 c400.1910.0000 FastEthernet0/0

    R3:

    *Mar 1 00:48:20.815: IPARP: rcvd req src 10.1.1.1 c400.1910.0000, dst 20.2.2.4 FastEthernet0/0

    *Mar 1 00:48:20.819: IPARP: sent rep src 20.2.2.4 c402.1910.0000,

    dst10.1.1.1 c400.1910.0000 FastEthernet0/0

    来查看R1收到ARP应答的情况:

    *Mar 1 00:49:24.239: IPARP throttled out the ARP Request for 20.2.2.4

    *Mar 1 00:49:24.303: IPARP rep filteredsrc 20.2.2.4 c401.1910.0000, dst 10.1.1.1 c400.1910.0000 wrong cable, interfaceFastEthernet0/0

    *Mar 1 00:49:24.303: IPARP rep filtered src 20.2.2.4 c402.1910.0000, dst 10.1.1.1 c400.1910.0000 wrongcable, interface FastEthernet0/0

    这里,发现R1将应答过滤掉了。。。

    对于PC,如果该设备收到路由器传递的ProxyARP Reply,则该PC会信任该Reply,并将其加入ARP表中;

    而对于路由器,如果该设备收到Proxy ARPReply,则该路由器会优先判断该Reply中应答者ip地址所在网段是否可达,如果是,则接收,否则,直接丢弃。

    这里R1收到的ARP,应答者的ip地址应该是20.2.2.4,所以,R1会将收到的rep过滤掉。

    可以在R1上添加一条去往20.2.2.0的路由条目

    R1(config )#ip route 20.2.2.0 255.255.255.0 10.1.1.2

    这一条静态路由的作用就是,R1不过滤收到的代理ARP回复,这里的下一跳地址没有实际意义。

    在R4上指定一个去R1的路由条目:

    R4(config)#ip route 10.1.1.0 255.255.255.0 20.2.2.2

    这样R1就可以去往R4下网段了。

  • 相关阅读:
    easyExcel入门
    UML-从需求到设计--迭代进化
    UML-操作契约总结
    102. Binary Tree Level Order Traversal
    98. Validate Binary Search Tree
    95. Unique Binary Search Trees II
    96. Unique Binary Search Trees
    94. Binary Tree Inorder Traversal
    84. Largest Rectangle in Histogram
    92. Reverse Linked List II
  • 原文地址:https://www.cnblogs.com/kiwiblog/p/3479013.html
Copyright © 2011-2022 走看看