SRE Docs

09 IP 路由基础

IP路由的基础概念,包括路由表、路由协议、路由选择等。

当路由器(或者其他三层设备)收到一个 IP 数据包时,会查看数据包的 IP 头部中的目标 IP 地址,并在路由表中查找,在匹配到最优的路由后,将数据包扔给该路由器所指出的接口或下一跳。

路由表

查看路由表:

[HUAWEI]display ip routing-table 
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Tables: Public
         Destinations : 11       Routes : 11       

Destination/Mask    Proto   Pre  Cost      Flags NextHop         Interface

        0.0.0.0/0   Static  60   0          RD   192.168.88.1    Vlanif88
     10.10.10.0/24  Direct  0    0           D   10.10.10.1      Vlanif10
     10.10.10.1/32  Direct  0    0           D   127.0.0.1       Vlanif10
     10.10.20.0/24  Direct  0    0           D   10.10.20.1      Vlanif20
     10.10.20.1/32  Direct  0    0           D   127.0.0.1       Vlanif20
     10.10.30.0/24  Direct  0    0           D   10.10.30.1      Vlanif30
     10.10.30.1/32  Direct  0    0           D   127.0.0.1       Vlanif30
      127.0.0.0/8   Direct  0    0           D   127.0.0.1       InLoopBack0
      127.0.0.1/32  Direct  0    0           D   127.0.0.1       InLoopBack0
路由表字段备注
Destination目标,用来标识 IP 包的目标地址或目标网络
Mask掩码,选择最佳路由的重要判断依据(最长匹配原则)
NextHop下一跳,指明 IP 包所经过的下一个路由器的接口地址
Interface出接口,指明 IP 包将从该路由器的哪个接口转发出去
Protocol协议,路由的来源、学习方式
Preference优先级,比较不同路由来源到达相同目标网络的优先级,越低越优先
Cost度量值,比较相同路由来源到达相同目标网络的不同路径的优先级,越低越优先

路由优先级

图中展示了同一个目的网段(例如 10.1.1.0/30)可能同时被不同路由协议/来源学习到(OSPF、RIP、Static 等)。当同一个前缀出现多条不同来源的路由时,会优先比较路由表里的 Pre/Preference(管理距离/协议优先级),数值越小越优先

因此,当 RTA 同时从 OSPF 和 RIP 学到 10.1.1.0/30 时,会优先选择 OSPF(Pre=10),而不是 RIP(Pre=100);也就是说:协议优先级(Pre)决定了不同协议之间谁的路由更“可信/更优先”进入路由表

路由度量

这张图说明的是 Cost(度量值)的作用:当路由来源相同(例如都是 OSPF,Pre 也相同)但存在多条到达同一目的网段的路径时,路由器会选择 Cost 更小的路径作为最优路由。

以图中到达 10.1.1.0/30 的两条 OSPF 路径为例:

  • 上方路径的链路代价分别为 1010,端到端总代价 10+10=20
  • 下方路径的链路代价分别为 11,端到端总代价 1+1=2

因此 RTA 的路由表最终选择下方路径,并在输出中体现为 Proto=OSPFCost=2,下一跳为下方链路对应的 30.1.1.2

等价路由

ECMP(Equal Cost Multi-Path),对于同一个路由来源,当到达同一个目标网络有几条相同度量值的路由时,这些路由都会被加入到路由表中,数据包会在这几个链路上进行负载分担

最长匹配

“最长匹配”(Longest Prefix Match)的本质:把目的 IP 和路由前缀都当成二进制位串,从高位开始逐位比较,能匹配的前缀位数(/n 里的 n越多越优先

目的地址 9.1.2.1 的前两段(前 16 位)二进制是:

9.1.2.1  = 00001001.00000001.00000010.00000001

两条候选路由前缀分别是:

9.0.0.0/8   = 00001001.xxxxxxxx.xxxxxxxx.xxxxxxxx
9.1.0.0/16  = 00001001.00000001.xxxxxxxx.xxxxxxxx

可以看到:

  • 9.0.0.0/8 只要求前 8 位匹配:00001001(也就是第一个字节为 9),它确实匹配 9.1.2.1
  • 9.1.0.0/16 要求前 16 位匹配:00001001.00000001(也就是前两个字节为 9.1),它同样匹配 9.1.2.1,而且匹配位数更多

因此在同时命中 9.0.0.0/89.1.0.0/16 时,会选择 9.1.0.0/16(更具体的前缀)。

静态路由

静态路由是由管理员手动配置和维护的路由。静态路由配置简单,被广泛应用于网络中。静态路由还可以实现负载均衡路由备份

静态路由概述:

  • 配置简单,开销小;
  • 通过手动配置进行添加和维护;
  • 无法根据拓扑的变化进行动态的响应;
  • 适用于组网规模较小的场景,如果网络规模较大,则配置及维护的成本就会很高;
  • 在大型的网络中,往往采用动态、静态路由结合的方式进行部署。

静态路由配置

负载分担

静态路由支持到达同一目标网络的等价负载分担:

路由备份-浮动静态路由

  • 利用优先级的特性,配置浮动路由
  • 在主路由失效的情况下,浮动路由会加入到路由表并承担数据转发业务

缺省路由

一种特殊的路由,能够匹配所有目标网络

  • 可以通过静态路由配置,也可以通过动态路由协议发布
  • 在路由表中,以到网络 0.0.0.0/0 的形式存在
  • 通常用于末梢网络(如:家庭、企业)向核心网络发送数据时的默认出口

配置命令: ip route-static 0.0.0.0 0.0.0.0 <下一跳地址>/<出接口> [优先级]

Loopback接口

回环口,逻辑的、虚拟的接口

命令备注
interface loopback 编号创建或配置一个回环口,创建后,默认 up

作用:

  • 模拟直连网段,可用于测试
  • 设备管理(稳定)
  • 供其他协议使用(OSPF、BGP、MPLS 等)
  • SNMP Traps 消息的源地址
  • 其他用途(用途十分广泛)

动态路由

路由器使用路由协议从其他路由器获取路由信息,当网络拓扑发生变化时,能够自动更新路由表。

路由协议概述:

  • 路由器之间交互信息的一种语言
  • 共享路由信息
  • 维护路由表、提供最佳转发路线

路由协议总览:

路由协议分类(作用范围 ):

类型备注
IGP(Interior Gateway Protocol)内部网关协议用于一个 AS 内部交换路由信息(RIP、OSPF、IS-IS)
EGP(Exterior Gateway Protocol)外部网关协议用于多个 AS 之间交换路由信息(BGP)
AS(Autonomous System)自治系统处于单个管理机制下的网络(如:企业、电信、移动、联通)

路由协议分类(协议算法 ):

类型备注
DV(Distance-Vector)距离矢量基于距离矢量算法,路由器并不了解网络拓扑结构,类似路牌,道听途说(如:RIP、EIGRP)
LS(Link-State)链路状态基于 SPF(Shortest Path First,最短路径优先)算法,路由器了解完整的网络拓扑结构,类似地图(如:OSPF、IS-IS)

路由协议分类(根据发送的更新是否携带掩码 ):

类型备注
有类别(Classful)发送的更新不携带掩码(如:RIP v1、IGRP)
无类别(Classless)发送的更新携带掩码(如:RIP v2、OSPF、IS-IS、EIGRP、BGP)

路由协议分类(根据业务应用 ):

类型备注
单播路由协议用于传输单播路由信息(如:RIP、OSPF、IS-IS、BGP)
组播路由协议用于传输组播路由信息(如:PIM-SM、PIM-DM、DVMRP)

路由协议操作规则:

  • 协议是在接口上运行的
  • 只能学习和发布相同协议已知的路由信息
  • 如果不同的路由协议需要交换路由信息,需要进行注入(import)

路由器收敛:

  • 当所有路由表包含相同网络可达性信息
  • 网络(路由)进入一个稳定状态
  • 网络在达到收敛前无法完全正常工作

衡量动态路由协议的一些性能指标:

指标备注
正确性能够正确找到最优的路由,且无自环。
快收敛当拓扑结构发生变化之后,能够迅速作出相应的路由改变。
低开销协议自身的开销(内存、CPU、网络带宽)最小。
安全性协议自身不易受攻击,有安全机制。
普适性适应各种拓扑结构和各种规模的网络。

缺省路由

一种特殊的路由,能够匹配所有目标网络

  • 可以通过静态路由配置,也可以通过动态路由协议发布
  • 在路由表中,以到网络 0.0.0.0/0 的形式存在
  • 通常用于末梢网络(如:家庭、企业)向核心网络发送数据时的默认出口

配置命令: ip route-static 0.0.0.0 0.0.0.0 <下一跳地址>/<出接口> [优先级]

Loopback接口

回环口,逻辑的、虚拟的接口

命令备注
interface loopback 编号创建或配置一个回环口,创建后,默认 up

作用:

  • 模拟直连网段,可用于测试
  • 设备管理(稳定)
  • 供其他协议使用(OSPF、BGP、MPLS 等)
  • SNMP Traps 消息的源地址
  • 其他用途(用途十分广泛)

动态路由

路由器使用路由协议从其他路由器获取路由信息,当网络拓扑发生变化时,能够自动更新路由表。

路由协议概述:

  • 路由器之间交互信息的一种语言
  • 共享路由信息
  • 维护路由表、提供最佳转发路线

路由协议总览:

路由协议分类(作用范围 ):

类型备注
IGP(Interior Gateway Protocol)内部网关协议用于一个 AS 内部交换路由信息(RIP、OSPF、IS-IS)
EGP(Exterior Gateway Protocol)外部网关协议用于多个 AS 之间交换路由信息(BGP)
AS(Autonomous System)自治系统处于单个管理机制下的网络(如:企业、电信、移动、联通)

路由协议分类(协议算法 ):

类型备注
DV(Distance-Vector)距离矢量基于距离矢量算法,路由器并不了解网络拓扑结构,类似路牌,道听途说(如:RIP、EIGRP)
LS(Link-State)链路状态基于 SPF(Shortest Path First,最短路径优先)算法,路由器了解完整的网络拓扑结构,类似地图(如:OSPF、IS-IS)

路由协议分类(根据发送的更新是否携带掩码 ):

类型备注
有类别(Classful)发送的更新不携带掩码(如:RIP v1、IGRP)
无类别(Classless)发送的更新携带掩码(如:RIP v2、OSPF、IS-IS、EIGRP、BGP)

路由协议分类(根据业务应用 ):

类型备注
单播路由协议用于传输单播路由信息(如:RIP、OSPF、IS-IS、BGP)
组播路由协议用于传输组播路由信息(如:PIM-SM、PIM-DM、DVMRP)

路由协议操作规则:

  • 协议是在接口上运行的
  • 只能学习和发布相同协议已知的路由信息
  • 如果不同的路由协议需要交换路由信息,需要进行注入(import)

路由器收敛:

  • 当所有路由表包含相同网络可达性信息
  • 网络(路由)进入一个稳定状态
  • 网络在达到收敛前无法完全正常工作

衡量动态路由协议的一些性能指标:

指标备注
正确性能够正确找到最优的路由,且无自环。
快收敛当拓扑结构发生变化之后,能够迅速作出相应的路由改变。
低开销协议自身的开销(内存、CPU、网络带宽)最小。
安全性协议自身不易受攻击,有安全机制。
普适性适应各种拓扑结构和各种规模的网络。

RIP

RIP(Routing Information Protocol,路由信息协议):

  • 距离矢量路由协议,属于 IGP 协议;
  • 适用于中小型网络,有 RIPv1 和 RIPv2 两个版本;
  • 基于 UDP,目标端口号 520;
  • 周期性更新;
  • 支持水平分割、毒性逆转和触发更新等防环特性。

工作原理

  • 路由器运行 RIP 后,会首先发送路由更新请求,收到请求的路由器会发送自己的 RIP 路由进行响应
  • 网络稳定后,路由器会周期性(30秒)发送路由更新信息

RIP 度量

RIP度量
  • RIP 使用跳数(Hop)作为度量值来衡量到达目的网络的距离。
  • 缺省情况下,直连网络的路由跳数为 0,当路由器发送路由更新时,会把度量值加 1。
  • RIP 规定超过 15 跳为网络不可达。

RIP V1 VS v2

对比项RIPv1RIPv2
路由类型有类别路由协议无类别路由协议
VLSM/CIDR不支持 VLSM 和 CIDR支持 VLSM,支持路由聚合与 CIDR
报文发送方式广播广播或组播(224.0.0.9)
认证不支持认证支持明文认证和 MD5 密文认证

基本配置

[HUAWEI]rip
[HUAWEI-rip]version 2
[HUAWEI-rip]network 10.0.0.0
[HUAWEI-rip]network 12.0.0.0
[HUAWEI-rip]network 13.0.0.0
命令备注
rip 1开启 RIP 进程,进程缺省为 1
version 2开启 RIPv2
network 10.0.0.0宣告网络,即指定运行 RIP 的接口,只需要输入接口的主类网络地址即可;只有处于此网络中的接口,才能进行 RIP 报文的接收和发送
rip metricin 5在接收路由时增加度量值
rip metricout 5在发送路由时修改度量值
rip split-horizon开启水平分割,默认开启
rip poison-reverse开启毒性逆转,默认关闭
undo rip input禁止接收 RIP 数据包
undo rip output禁止发送 RIP 数据包
silent-interface g0/0/0配置被动接口,只收不发
display rip验证 RIP 信息
display rip int g0/0/0 verbose验证 RIP 接口相信信息

On this page