您好,欢迎访问一九零五行业门户网

路由器递归查询(递归路由的作用)

本文为大家介绍路由器递归查询(递归路由的作用),下面和小编一起看看详细内容吧。
路由的递归查询
我们知道路由查找的过程就是寻找数据包下一跳的过程! ip 路由将数据包逐跳发送到目的地。所谓下一跳就是与自身直连的路由器对应的接口ip地址。这是一个合理的理解。然而,ip路由提供了另一种方式,即下一跳不必直接连接到自己。可以忽略当前路由器的“近邻拓扑”,直接上报相对较远的拓扑,如下图:
到达服务器的下一跳是r2,到r2 的下一跳是r1.等等。当协议栈的路由查找逻辑发现下一跳不是和自己直连的时候,就会以这个下一跳为目的地,按照上面的逻辑重新查找路由表,直到找到和自己直连的下一跳或者失败完全地。这种路由相当于把nexthop推到很远的地方。这种递归查找有什么好处?显然,递归路由可以最大限度地减少下一跳对附近网络拓扑变化的影响!对于必须使用静态路由的场合,合理的递归路由规划可以大大简化静态路由的维护工作量。当然,如果你使用动态路由,就没有必要了。要知道,递归路由在给维护带来方便的同时,其代价是增加了查找压力的路由器。例如,考虑以下拓扑:
试想一下,如果到r1和r2的链路出现问题,现在需要将n1、n2、n3的下一跳切换到r7,则需要同时修改这3条路由(更糟if route summarization cannot be a route summarization) ), 但如果我们已经知道到达n1, n2, n3必须经过r3,那么我们可以将n1, n2, n3的下一跳配置为r3,这样就可以直接绕过问题链路逻辑上。实际上,协议栈的路由查找逻辑帮助管理员找到了通往r3的路,最终的下一跳在物质资源上还是直连r0的。递归搜索的结束条件是目的地直接连接到r0。在配置上,寻址三个网络的需求变成了寻址r3的需求,配置也简化了很多。只需要配置一个默认网关,链路切换时需要改动的配置少很多。
但是,请记住,递归路由不会改变任何数据包到达目标网络的路径。最终会在直连的nexthop上实现。如果我们逆向配置递归路由,我们可以配置一个非递归的“普通路由”,这种普通路由配置也可以解决上述繁琐的配置问题,所以递归路由在某种程度上是一种偷懒的做法。另外,递归路由的使用还有一点很重要,就是必须熟悉整个网络的拓扑结构。使用递归路由的原因是为了避免频繁变化的链接。作为静态路由,链路变化意味着必须重新配置所有相关路由。使用递归路由可以减少配置工作量。是否使用递归路由的一个权衡点是:如果到目标网络的链路在途中不能聚合成比目标网络更少的链路,那么递归路由就没有多大意义。
其实我发现windows有递归路由配置功能,cisco就更不用说了,linux就没有,而且有一半是真的没有。它尚未实现,留下一个config_ip_route_pervasive 宏为空。实际上有一个nhflags :=[ onlink | pervasive ] 在iproute2中,这个pervasive是最可恶的。 linux总是这样,内核的实现和用户态程序的实现总是不一致的!
好了,路由器递归查询(递归路由的作用)的介绍到这里就结束了,想知道更多相关资料可以收藏我们的网站。
其它类似信息

推荐信息