专业IT网络知识平台,分享IT百科知识、生活百科知识解答!

易企推科技
易企推科技

路由的递归查询到底是干什么的

来源:小易整编  作者:小易  发布时间:2023-03-02 08:29
摘要:路由的递归查询到底是干什么的?路由的递归查询针对静态路由来讲,对于动态路由就没必要了。之所以要使用递归路由,目的是绕开那些经常变动的链路,可以使静态路由的配置工作量减小。使用递归路由的一个条件:到达目标网络的链路在途中可以汇聚成比目标...

  路由的递归查询到底是干什么的?

路由的递归查询到底是干什么的

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

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

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

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

  对于上面的拓扑,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下网段了。


本文地址:网络知识频道 https://www.hkm168.com/jiqiao/909004.html,易企推百科一个免费的知识分享平台,本站部分文章来网络分享,本着互联网分享的精神,如有涉及到您的权益,请联系我们删除,谢谢!


网络知识
小编:小易整编
相关文章相关阅读
  • 如何在Vue项目中使用路由实现页面刷新和缓存控制?

    如何在Vue项目中使用路由实现页面刷新和缓存控制?

    如何在vue项目中使用路由实现页面刷新和缓存控制?在Vue项目开发中,使用路由实现页面刷新和缓存控制是非常常见的需求。本文将介绍如何在Vue项目中使用路由来实现页面刷新和缓存控制,并给出相应的代码示例。路由配置首先,在Vue项目中需要使用v...

  • linux如何查询端口

    linux如何查询端口

    linux查询端口的方法:1、使用netstat命令,其命令为“netstat-tuln”;2、使用lsof命令,其命令为“lsof-i”;3、使用ss命令,其命令为“ss-tuln”;4、使用nmap命令,其命令为“nmap-p”...

  • php 位运算中的按位取反到底什么意思?

    php 位运算中的按位取反到底什么意思?

    先看代码:$a=8;$b=~$a;//按位取反echo"\$a=".$a."";echo"\$b=".$b;登录后复制输出结果:$a=8$b=-9登录后复制结果跟我所想的不一样啊,......

  • mysql查询怎么设置降序

    mysql查询怎么设置降序

    在mysql中,可以利用desc关键字对查询结果进行降序显示,该关键字是descend的缩写,常于orderby子句配合使查询结果降序,语法为“select字段1,字段2...from表名orderby指定字段desc”。本...

  • 如何在Vue中使用路由传参和接收参数?

    如何在Vue中使用路由传参和接收参数?

    如何在vue中使用路由传参和接收参数?Vue是一种流行的JavaScript框架,它可用于构建现代化、响应式的Web应用程序。在Vue中,路由是一种重要的概念,它用于管理网页间的导航和跳转。在开发过程中,我们经常需要在不同路由间传递数据。本...

  • 元宇宙到底是什么东西

    元宇宙到底是什么东西

    元宇宙也称为形上宇宙,是通常被用来描述未来互联网虚拟环境的概念,于共享、持久的虚拟现实组成一个可感知的虚拟宇宙,此合成环境包含对象、常驻用户与其交互关系,并存在于虚拟定义的时间中。本文操作环境:Windows7系统、DELLG3电脑元宇宙...

  • mysql怎么查询数据库版本

    mysql怎么查询数据库版本

    方法:1、利用“selectversion();”语句查询;2、利用“showvariableslike‘%version%’”语句查询;3、在mysql客户端中利用“status”命令查询;4、在终端中用“mysql-v”查询。...

  • linux添加路由的命令是哪个

    linux添加路由的命令是哪个

    linux添加路由命令是“route”,linux添加路由的方法是:1、在“/etc/rc.local”里添加“routeadd-net192.168.2.0/24gw192.168.3.254”;2、在“/etc/sysconf...

  • 周排行
  • 月排行
  • 年排行

精彩推荐