IP路由原理

IP路由原理

路由器是能将数据报文在不同逻辑网段间转发的网络设备,路由是指导路由器如何进行数据报文发送的路径信息。每条路由都包含由目的地址、下一跳、出接口、到目的地的代价等要素,路由器根据自己的路由表对IP报文进行转发操作。

每一台路由器都有路由表,路由便存储在路由表中。

路由环路是由错误的路由导致的,它会造成IP报文在网络中循环转发,浪费网络带宽。

什么是路由

路由器提供了将异构网互联的机制,实现将一个数据包从一个网络发送到另一个网络。路由就是指导IP数据包发送的路径信息。

路由器的特点是逐跳转发。在上面这个网络中RTA收到PC发往Server的数据包后,将数据包转发给RTB,RTA并不负责指导RTB如何转发数据包。所以,RTB必须自己将数据包转发给RTC。RTC再转发给RTD,以此类推,这就是路由的逐条性,即路由只指导本地转发行为,不会影响其它设备转发行为,设备之间的转发是相互独立的。

路由表

路由器转发数据包的依据是路由表。每个路由器都保存着一张路由表,表中每条路由项都指明数据包到某子网或某主机应通过路由器的哪个物理端口发送,然后就可到达该路径的下一个路由器,或者不再经过别的路由器而传送到直接相连的网络中的目的主机。

路由表中包含了下列要素:

  1. 目的地址/网络掩码:用来标识IP数据报文的目的地址或目的网络。将目的地址和网络掩码“逻辑与”后可得到目的主机或路由器所在网段的地址。例如:目的地址为8.0.0.0,掩码为255.0.0.0的主机或路由器所在网段的地址为8.0.0.0,掩码由若干个连续“1”构成,即可以用点分十进制表示,也可以用掩码中连续“1”的个数来表示。
  2. 出接口:指明IP包将从该路由器哪个接口转发。
  3. 下一跳地址:更接近目的网络的下一个路由器地址。如果只配置了出接,口,下一跳IP地址是出接口的地址。
  4. 度量值:说明IP包需要花费多大的代价才能到达目标。主要作用是当网络存在到达目的网络的多个路径时,路由器可依据度量值而选择一条较优的路径发送IP报文,从而保证IP报文能更快更好的到达目的。

根据掩码长度的不同,我们可以把路由表中路由项分为以下几个类型:

  1. 主机路由:掩码长度是32位的路由,表明此路由匹配单一IP地址;
  2. 子网路由:掩码长度小于32但大于0,表明此路由匹配一个子网;
  3. 默认路由:掩码长度为0,表明此路由匹配全部IP地址。

路由器单跳操作

 路由器就是通过匹配路由表里的路由项来实现数据包的转发的.当路由器收到一个数据包的时候,将数据包的目的IP地址提取出来,然后与路由表中路由项包含的目的地址进行比较;如果与某路由项中的目的地址相同,则认为与此路由项匹配;如果没有路由项能够匹配,则丢弃该数据包。

路由器查看所匹配的路由项的下一跳地址是否在直连链路上,如果在直连链路上,则路由器根据此下一跳转发;如果不在直连链路上,则路由器还需要在路由表中再查找此下一跳地址所匹配的路由项。

确定了最终的下一跳地址后,路由器将此报文送往对应的接口,接口进行相应的地址解析,解析出此地址所对应的链路层地址,然后对IP数据包进行数据封装并转发。

当路由表中存在多个路由项可以同时匹配目的IP地址时,路由查找进程会选择其中掩码最长的路由项用于转发,此为最长匹配原则。

上图中,路由器接收目的地址为40.0.0.2的数据包,经查找整个路由表,发现与路由40.0.0.0/2440.0.0.0/8都能匹配,但根据最长匹配原则,路由器会选择路由项40.0.0.0/24,根据该路由项转发数据包。

由以上过程可知,路由表中路由项数量越多,所需查找及匹配的次数则越多。所以一般路由器都有相应的算法来优化查找速度,加快转发。

如果所匹配的路由项的吓一跳地址不在直连链路上,路由器还需要对路由表进行迭代查找,找出最终的下一跳来。

如上图中,路由器接收到目的地址为50.0.0.2的数据包后,经查找路由表,发现与路由表中的路由项50.0.0.0/24能匹配。但此路由项的下一跳40.0.0.2不在直连链路上,所以路由器还需要在路由表中查找到达40.0.0.2的下一跳,经过查找,到达40.0.0.2的下一跳是20.0.0.2,此地址在直连链路上,则路由器按该路由项转发数据包。

如果路由表中没有路由项能够匹配数据包,则丢弃该数据包。但是,如果在路由表中有默认路由存在,则路由器按照默认路由来转发数据包。默认路由又称为默认路由,其目的地址/掩码为0.0.0.0/0

如上图中。路由器收到的目的地址为30.0.0.2的数据包后,查找路由表,发现没有子网或主机路由匹配此地址,所以按照默认路由转发。

默认路由能够匹配所有IP地址。但因为它的掩码最短,所以只有在没有其它路由匹配数据包的情况下,系统才会按照默认路由转发。

路由的来源

 路由的来源主要有3种:

  1. 直连路由:直连路由不需要配置,当接口存在IP地址并且状态正常时,由路由进程自动生成。它的特点是开销小,匹配简单,无需人工维护,但只能发现本接口所属网段的路由。
  2. 手工配的静态路由:由管理员手工配置而成的路由称之为静态路由。通过静态路由的匹配可建立一个互通的网络,但这种匹配问题在于:当一个网络故障发生后,静态路由不会自动修正,必须有管理员的介入。静态路由无开销,配置简单,适合简单拓扑结构的网络。
  3. 动态路由协议发现的路由:当网络拓扑结构十分复杂时,手工配置静态路由工作量大而且容易出现错误,这时就可用动态路由协议(如RIP、OSPF等),让其自动发现和修改路由,避免人工维护。但动态路由协议开销大,配置复杂。

路由的度量

路由度量值表示到达这条路由所指目的地址的代价,也称为路由权值。各路由协议定义度量值的方法不同,通常会考虑以下因素:

  1. 跳数
  2. 链路带宽
  3. 链路延时
  4. 链路使用率
  5. 链路可信度
  6. 链路MTU

不同的动态路由协议会选择其中的一种或几种因素来计算度量值。在常用的路由协议里,RIP使用“跳数”来计算度量值,跳数越小,其路由度量值也就越小;而OSPF使用“链路带宽”来计算度量值,链路带宽越大,路由度量值也就越小。度量值通常只对动态的路由协议有意义,静态路由协议的度量值统一规定为0

路由度量值只在同一种路由协议内有比较意义,不同的路由协议之间的路由度量之没有可比性,也不存在换算关系。

路由优先级

 路由优先级代表了路由协议的可信度。

在计算路由信息的时候,因为不同路由协议所考虑的因素不同,所以计算出的路径也可能会不同。具体表现就是到相同的目的地址,不同的路由协议(包括静态路由)所生成路由的下一跳可能会不同。在这种情况下,路由器会选择哪一条路由作为转发报文的依据呢?此时就取决于路由优先级,具有较高优先级(数值越小表现优先级越高)的路由协议发现的路由将成为最优路由,并被加入路由表中。

不同厂家的路由器对于各种路由协议优先级的规定各不相同。H3C路由器的默认优先级如上图所示。

除了直连路由(DIRECT)外,各动态路由协议的优先级都可根据用户需求,手工进行配置。另外,每条静态路由的优先级都可以不相同。

路由环路

 路由环路会使数据转发形成死循环,不能到达目的地。如图中RTA收到目的地11.4.0.0的数据包后,查看路由表,发现其下一跳是S0/0接口,于是转发给RTB;RTB发现下一跳是S1/0,于是又转发给RTC;RTC中路由表的下一跳指向RTA,所以RTC又将数据包转发回RTA,如此在三台路由器间循环转发,直到数据包中TTL字段值为0后丢弃.这同时也导致了巨大的消耗浪费。

路由环路的主要生成原因是配置了错误的静态路由或网络规划错错误。比如,在两台路由器上配置到相同目的地址的路由表项,下一跳互相指向对方,就会造成路由环路。另外,某些动态路由协议在特定环境下或配置不当,也有可能产生环路。

查看设备的路由表

查看设备路由表的目的是查找所需的路由信息,验证所做的路由配置。

最常用的命令是查看IP路由表摘要信息。在任意视图下用如下命令来查看:

display ip routing-table

如果想查看某一条具体的路由,可以在任意视图下用如下命令来查看:

display ip routing-table ip-address[mask-length | mask]

比如,用命令display ip routing-table 1.1.1.1 就可以查看匹配目标地址1.1.1.1的所有路由项。

有时候,我们想了解路由表的综合统计信息,乳总路由数量、RIP路由数量、OSPF路由数量、激活路由数量等,可以在任意视图下用如下命令来查看:

display ip routing-table statistics

 

上图中列出了display ip routing-table 命令输出。由上图所示路由表可以得知,该表目前共有9条路由。

图中路由信息中个字段含义如下表:

字段描述
Destinantions目的地址个数
Routes路由条数
Destination/Mask目的地址/掩码长度
Proto发现该路由的路由协议
Pre路由的优先级
Cost路由的度量值
Nexthop此路由的下一跳地址
Interface出接口,即到该目的网段的数据包将从此接口发出

  • 26
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值