IP路由原理

目录

       1.什么是路由

       2.路由表

       3.路由器单跳操作

       4.路由的来源

       5.路由的量度

       6.路由的优先级

       7.查看设备的路由表

       8.本章总结


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

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

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

       1.什么是路由

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

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

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

       2.路由表

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

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

  •         目的地址/网络掩码(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地址。
       3.路由器单跳操作

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

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

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

      路由表查找规则(1)

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

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

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

     路由表查找规则(2)

 

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

      如上图中,路由器接收到目的地址为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 此地址在直连链路上,则路由器按照该路由项转发数据包。

        路由表查找规则(3)

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

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

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

    4.路由的来源

    路由的来源主要有3种:

  • 直连(Direct)路由

    直连路由不需要配置,当接口存在IP地址并且状态正常时,由路由进程自动生成。它的特 点是开销小,配置简单,无需人工维护,但只能发现本接口所属网段的路由。

  • 手工配置的静态(Static)路由

    由管理员手工配置而成的路由称之为静态路由。通过静态路由的配置可建立一个互通的网 络,但这种配置问题在于:当一个网络故障发生后,静态路由不会自动修正,必须有管理员的 介入。静态路由无开销,配置简单,适合简单拓扑结构的网络。

  • 动态路由协议(RoutingProtocol)

    发现的路由 当网络拓扑结构十分复杂时,手工配置静态路由工作量大而且容易出现错误,这时就可用 动态路由协议(如RIP、OSPF等),让其自动发现和修改路由,避免人工维护。但动态路由协 议开销大,配置复杂。

    5.路由的量度

        路由的量度值(Metric)

    

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

  • 跳数
  • 链路带宽 
  • 链路延时
  • 链路使用率
  • 链路可信度
  • 链路MTU

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

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

      6.路由的优先级

                     路由的优先级

      

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

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

      各级路由默认优先级

       

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

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

      7.查看设备的路由表

        查看设备的路由表

      查看设备路由表的目的是查找所需的路由信息,验证所做的路由配置。 最常用的命令是查看IP路由表摘要信息。在任意视图下用如下命令来查看:

      displayiprouting-table

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

      displayiprouting-tableip-address[mask-length|mask]

      比如,用命令displayiprouting-table1.1.1.1就可以查看匹配目标地址1.1.1.1的所有路由项。

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

      display ip routing-table statistics

IP路由表摘要信息

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

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

    

   8.本章总结

  课程总结

  • 路由的作用是指导IP报文转发
  • 路由表表项有目的地址/掩码、下一跳、出接口等
  • 路由的来源 路由的度量值、优先级 路由环路
  • 在设备上查看路由表信息

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值