动态路由协议及分类

技术背景

  • 对于一个小型网络,静态路由或许已经能够满足需求,但是在大中型网络中,由于网段数量特别多、网络拓扑复杂等原因,仅仅使用静态路由来实现数据互通显然是不太现实的,原因是配置及维护工作量都太大,再者存在静态路由无法动态地响应网络拓扑变更等因素。
  • 动态路由协议(Dynamic Routing Protocol)可以很好地解决上述需求问题。
  • 在路由器上激活了动态路由协议后,就相当于激活了路由器的某种能力,路由器之间就能够交互路由信息或者用于路由计算的数据,而当网络拓扑发生变更时,动态路由协议能够感知这些变化并且自动地作出响应,从而使得网络中的路由信息适应新的拓扑,这种动作完全由协议自动完成,无需人为干预。
  • 因此在一个规模较大的网络中,我们往往会使用动态路由协议,或者静态路由与动态路由协议相结合的方式来建设该网络。

动态路由协议分类

  • 动态路由协议有很多,而分类的方法也存在多种。
  • 基于协议算法不同,可以将动态路由协议分成两类:
  1. 距离矢量路由协议(Distance Vector Routing Protocol);
  2. 链路状态路由协议(Link State Routing Protocol) 。
  • 根据工作范围的不同,动态路由协议可分为两类:
  1. IGP ( Interior Gateway Protocol,内部网关协议),比如RIP, OSPF, IS-IS等;
  2. EGP ( Exterior Gateway Protocol,外部网关协议),比如BGP ( Border Gateway Protocol )等。
  • IGP被用于在AS(Autonomous System,自治系统)内部实现路由信息的交互,而EGP则被用于在AS之间实现路由信息的交互。AS的传统定义是,由一个单一的机构或组织所管理的一系列IP网络及其设备所构成的集合,可以简单地将AS理解为一个独立的机构或者企业所管理的网络,比如一家跨省公司的网络等。

距离矢量路由协议

  • 距离矢量路由协议指的是基于距离矢量的路由协议,RIP是最具代表性的距离矢量路由协议。
  • “距离矢量”这个概念包含两个关键的信息:“距离”和“方向”,其中“距离”指的是到达目标网络的度量值,而方向指的是到达该目标网络的下一跳设备。
  • 每一台运行距离矢量路由协议的路由器都会周期性地将自己的路由表通告出去,其直连的路由器会收到这些路由信息,学习前者通告的路由并更新自己的路由表后,它也会向自己直连的路由器通告其路由表,最终网络中的每台路由器都能获知到达各个网段的路由,这个过程被称为路由的泛洪(Flooding)过程。

示例

如下图所示的网络拓扑中,

《动态路由协议及分类》

  • R1及R2两台路由器直连。
  • 初始情况下R1及R2都只知道自己“家门口的情况”,也就是说,R1及R2都自动发现了自己直连接口的路由。R1在其路由表中写入192.168.12.0/24及1.0.0.0/8两条直连路由,而R2则在其路由表中写入192.168.12.0/24这一条直连路由。
  • 对于R2而言,此刻是无法访问1.0.0.0/8的,因为在它的路由表中并没有任何能够到达这个网段的路由信息。
  • 现在R1和R2上激活距离矢量路由协议。
  • R1路由通告:
    (1)R1将已经发现的路由(1.0.0.0/8及192.168.12.0/24)通过路由协议报文通告给R2,这两条路由各附带着一个度量值。
    (2)以距离矢量路由协议的典型代表RIP为例,它使用跳数(Hop Count)作为路由的度量值,所谓跳数就是到达目的网段所需经过的路由器的个数,直连网段的度量值被视为0跳。
    (3)R1将两条直连路由通告给R2时,为路由设置的跳数为1,“我家门口的这些网段对于我自己而言可以直接到达(只需0跳),现在别人要经过我来访问该网段,就需要加上我这一跳”。
  • R2处理R1的路由通告:
    (1)由于192.168.12.0/24是R2自己的直连网段,因此R2会忽略R1通告过来的、到达该网段的路由更新,而1.0.0.0/8路由对于R2而言是未知的,因此R2将这条路由加载进路由表,同时为该条路由关联度量值:1跳,并且把路由的通告者R1视为该条路由的下一跳。
    (2)当R2要转发到达1.0.0.0/8的数据包时,就会将数据包发给下一跳路由器R1。可以形象的理解就是:“R2认为1.0.0.0/8可以通过R1到达,自己与该网段距离1跳路由器”,这也就是“距离矢量”名称的由来。
  • 需要注意的是,运行距离矢量路由协议的路由器并不了解网络的拓扑结构,该路由器只知道:
    (1)自己与目的网络之间的距离;
    (2)从哪个方向可到达目的网络。

链路状态路由协议

  • 链路状态路由协议与距离矢量路由协议不同,运行链路状态路由协议的路由器会使用一些特殊的信息描述网络的拓扑结构及IP网段,这些信息被称为链路状态(Link State )信息,所有的路由器都会产生描述自己直连接口状况的链路状态信息。
  • 路由器将网络中所泛洪的链路状态信息都搜集起来并且存入一个数据库中,这个数据库就是LSDB( Link-State Database,链路状态数据库),
  • LSDB可以视为对整个网络的拓扑结构及IP网段的描绘,所有路由器拥有对该网络的统一认知,接下来所有的路由器都基于LSDB使用特定的算法进行计算,计算的结果是得到一棵以自己为根的、无环的最短路径树,并将基于这棵树得到的路由加载到路由表中。
  • 典型的链路状态路由协议有OSPF及IS-IS。
    原文作者:布道天下
    原文地址: https://blog.csdn.net/mn3321/article/details/107528077
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞