IP 路由原理

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

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

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

1. 本章目标

   

2.  什么是路由

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

在互联网中进行路由选择要使用路由器,路由器只是根据所收到的数据报头的目的地址选
择一个合适的路径(通过某一个网络),将数据包传送到下一个路由器,路径上最后的路由器负
责将数据包送交目的主机。数据包在网络上的传输就好像是体育运动中的接力赛一样,每一个
路由器只负责将数据包在本站通过最优的路径转发,通过多个路由器一站一站地接力将数据包
通过最优路径转发到目的地。当然也有一些例外的情况,由于一些路由策略的实施,数据包通
过的路径并不一定是最优的。

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

3.路由表

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

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

● 目的地址/网络掩码(Destination/Mask):用来标识IP数据报文的目的地址或目的网
络。将目的地址和网络掩码“逻辑与”后可得到目的主机或路由器所在网段的地址。
例如:目的地址为8.0.0.0,掩码为255.0.0.0的主机或路由器所在网段的地址为8.0.0.0。
掩码由若干个连续“1”构成,既可以用点分十进制表示,也可以用掩码中连续“1”
的个数来表示。
● 出接口(Interface):指明IP包将从该路由器哪个接口转发。
● 下一跳地址(Next-hop):更接近目的网络的下一个路由器地址。如果只配置了出接
口,下一跳IP地址是出接口的地址。
● 度量值(Metric):说明IP包需要花费多大的代价才能到达目标。主要作用是当网络
存在到达目的网络的多个路径时,路由器可依据度量值而选择一条较优的路径发送IP
报文,从而保证IP报文能更快更好的到达目的。
根据掩码长度的不同,我们可以把路由表中路由项分为以下几个类型:
● 主机路由:掩码长度是32位的路由,表明此路由匹配单一IP地址;
● 子网路由:掩码长度小于32但大于0,表明此路由匹配一个子网;
● 默认路由:掩码长度为0,表明此路由匹配全部IP地址。

4.路由表单挑操作

路由器就是通过匹配路由表里的路由项来实现数据包的转发的。当路由器收到一个数据包
的时候,将数据包的目的IP地址提取出来,然后与路由表中路由项包含的目的地址进行比较;
如果与某路由项中的目的地址相同,则认为与此路由项匹配;如果没有路由项能够匹配,则丢
弃该数据包。
路由器查看所匹配的路由项的下一跳地址是否在直连链路上,如果在直连链路上,则路由
器根据此下一跳转发;如果不在直连链路上,则路由器还需要在路由表中再查找此下一跳地址
所匹配的路由项。

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

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

上图中,路由器接收到目的地址为40.0.0.2的数据包,经查找整个路由表,发现与路由
40.0.0.0/24和40.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地址。但因为它的掩码最短,所以只有在没有其它路由匹配数据
包的情况下,系统才会按照默认路由转发。

5.路由的来源

路由的来源主要有3种:

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

6.路由的度量

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

跳数

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

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

7.路由优先升级

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

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

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

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

8.路由环路

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

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

9.查看设备的路由表

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

最常用的命令是查看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条路由。
图中路由信息中的各字段含义如下表:

10.本章总结

  • 23
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值