4.5 静态路由配置及其可能产生的路由环路问题.pdf

  • 静态路由配置 是指用户或网络管理员使用路由器的相关命令给路由器 人工配置路由表
    • 这种人工配置方式简单、开销小。但不能及时适应网络状态(流量、拓扑等)的变化
    • 一般只在小规模网络中采用。
  • 使用静态路由配置可能出现以下导致产生 路由环路的错误
    • 配置错误
    • 聚合了不存在的网络
    • 网络故障
  • 路由条目的类型
    • 直连网络
    • 静态路由(人工配置)
    • 动态路由(路由选择协议)
  • 特殊的静态路由条目
    • 默认路由(目的网络为0.0.0.0, 地址掩码为0.0.0.0)
    • 特定主机路由(目的网络为特定主机的IP地址,地址掩码为255.255.255.255)
    • 黑洞路由(下一跳为 null0)
  • 路由表中几种静态路由

    • 自动得出的直连网络:目的网络为与接口直连的网络地址,下一跳为直连的接口。
    • 人工配置的默认路由:目的网络为 0.0.0.0/0,子网掩码为 255.255.255.255,下一跳为指定的网络。
    • 特定主机路由:目的网络为特定主机的IP地址,子网掩码为 255.255.255.255
    • 黑洞路由:为了解决因聚合了不存在的网络而导致路由环路的问题,目的网络为不存在的网络地址,下一跳为 null0

      举例:静态路由配置

      image.pngimage.png
      以上条目都是路由器自动得出的。
      image.png
      但R1的路由表中并没有关于该目的网络的路由条目,换句话说,R1并不知道目的网络的存在,因此,我们可以使用路由器的相关配置命令,给R1添加一条到达该目的网络的路由条目。如上图所示。
      image.png
  • 对于有多个网络存在时,如连接到因特网,对每个网络都进行静态配置显然是不现实的,因此就引出了默认路由的概念。

    举例:默认路由举例

  • 对于具有相同下一条的不同目的网络的路由条目,使用一条默认路由进行设置

    image.pngimage.png

    由于因特网中包含有众多的网络,如果我们给R1添加针对这些网络的每一条路由条目,则会带来巨大的工作量,而且R1的路由表会变得非常大,降低了查表转发的速度。

实际上,对于具有相同下一跳的不同目的网络的路由条目,我们可以用一条默认路由条目来替代。如下图所示。image.png

举例:特定主机路由举例

  • 在需要考虑某种安全问题或者网络管理人员对网络的管理和测试,可以针对某台特定主机设定一个特定路由,在路由表中为该主机设置一个路由条目。
  • 对于特定路由器,其网络前缀最长(主机号最短),路由最具体

image.png
可以看出:在多条路由可选时,根据最长前缀进行匹配
image.png

举例:静态路由配置错误导致路由环路

  • 在路由器表项配置时,由于人工配置差错或者机器故障,可能导致路由环路问题。
  • 路由环路问题指的是网络传输数据报时,由于路由表存在问题,可能导致数据报传输出现了封闭的环路,也就是出现了“反复横跳”现象
  • 这种现象会导致网络传输的资源的巨大浪费。

image.pngimage.pngimage.png
当R2的路由表中的192.168.1.0.24表项被错误的设置成了10.0.1.2接口时,目的主机应该在10.0.0.1接口转发,但是此时根据路由表会将该数据包错误的发给10.0.1.2接口,传输到R3路由器,此时根据R3路由器的路由表,又将其传回了R2路由器,此时R2路由器根据其路由表又将其传回了R3路由器,此时出现了网络环路的情况。也就是出现了反复横跳
image.pngimage.png

  • 静态路由配置错误导致 路由环路
  • 无疑在这种情况下会造成网络资源的浪费。
  • TTL:为了防止IP数据报在路由环路中永久兜圈,在IP数据报首部设有 生存时间TTL字段。IP数据报进入路由器后,TTL字段的值减1。若TTL的值不等于0,则被路由器转发,否则被丢弃。

image.png
对于出现路由器的环路不只是配置了错误的接口,还有以下几种情况:

举例:聚合了不存在的网络而导致路由环路

image.pngimage.pngimage.png

在R2的路由表中,对R1连接的两个主机的网络号进行了聚合,根据由于其网络号的情况,可以看出需要借用2个主机号进行聚合,也就是会产生4个子网

但是在实际只有两个子网,此时若路由器接收到人工聚合的地址中存在,但是实际上不存在的网络地址会怎么样呢?image.png

image.pngimage.pngimage.pngimage.png

此时若R2要转发地址为192.168.3.0/24的地址,这在本网络中是不存在的,但是根据聚合路由表,要将该IP数据报传输的10.0.0.1接口,传输到R1,此时R1查询该IP网络地址,发现找不到该具体网络地址,此时就会通过默认路由地址进行转发。此时很明显,又会被转发回到R2路由器,此时就出现了路由环路

解决方法:

对于这种数据环路的情况,可以通过设置黑洞路由,将路由器聚合存在,但是实际不存在的路由设置一个NULL0接口(路由器内部的虚拟接口,就像是一个黑洞,IP数据报转发进去后有进无出

image.pngimage.pngimage.png

举例网络故障而导致路由环路image.png

根据路由器的工作机制,当检测到某路由器故障时,会将该路由表删除

若此时R2路由器要转发到该故障的网络地址,就会出现像上面没有该网络地址的转发情况,出现路由环路。

image.png
解决方法:

对于这种情况,可以像上面解决网络聚合出现环路的步骤一样,对该网络故障接口设置黑洞接口,当检测到路网络障后设置,当检测到网络正常后将该黑洞接口设置为失效状态。

image.pngimage.pngimage.pngimage.pngimage.pngimage.png