Network 路由表和FIB

路由表和转发信息表

dis ip routing-table

dis fib

在路由表选择出路由后,路由表会将激活路由下发到FIB表中。当报文到达路由器时,会通过查找FIB表进行转发。

FIB表中每条转发项都指明到达某网段或某主机的报文应通过路由器的哪个物理接口或逻辑接口发送,然后就可到达该路径的下一个路由器,或者不再经过别的路由器而传送到直接相连的网络中的目的主机。

FIB表的匹配遵循最长匹配原则。查找FIB表时,报文的目的地址和FIB中各表项的掩码进行按位“逻辑与”,得到的地址符合FIB表项中的网络地址则匹配。最终选择一个最长匹配的FIB表项转发报文。

路由表通常是存储在设备的动态内存中,例如RAM Random Access Memory,随机存取存储器,而 FIB 表中的数据则往往被存储在一个 ASIC (Application Specific Integrated Circuit ,专用集成电路)中,这使得设备在 FIB中进行数据查询时,可以实现相当高的速度。

路由表中的路由FLAGS

R,Relay 中继的意思 (下一跳递归查询成功)也就是路由表的下一跳不是直连出接口。通过递归查询获得。

D, DownLoad 下沉到FIB 中

浮动静态路由

ip route-static 10.9.9.0 24 10.1.23.3 preference 80

Preference 关键字指定了优先级,优先级值较小的路由将最终加载到路由表并作为数据转发的依据。

静态路由与BFD

双向转发检测(Bidirectional Forwarding Detection) .

BFD 配置需要是双向设备同时配置。

Network Dis ip routing-table 注释

路由协议的优先级 preference

Pre:表示此路由的路由协议优先级。针对同一目的地,可能存在不同下一跳、出接口等多条路由,这些不同的路由可能是由不同的路由协议发现的,也可以是手工配置的静态路由。优先级高(数值小)者将成为当前的最优路由

路由度量值 cost

路由开销。当到达同一目的地的多条路由具有相同的路由优先级时,路由开销最小的将成为当前的最优路由。

  • Destination:表示此路由的目的地址。用来标识IP包的目的地址或目的网络。
  • Mask:表示此目的地址的子网掩码长度。与目的地址一起来标识目的主机或路由器所在的网段的地址。将目的地址和子网掩码“逻辑与”后可得到目的主机或路由器所在网段的地址。例如:目的地址为10.1.1.1,掩码为255.255.255.0的主机或路由器所在网段的地址为10.1.1.0。掩码由若干个连续“1”构成,既可以用点分十进制表示,也可以用掩码中连续“1”的个数来表示。例如掩码255.255.255.0长度为24,即可以表示为24。
  • Proto:表示学习此路由的路由协议。
  • Pre:表示此路由的路由协议优先级。针对同一目的地,可能存在不同下一跳、出接口等多条路由,这些不同的路由可能是由不同的路由协议发现的,也可以是手工配置的静态路由。优先级高(数值小)者将成为当前的最优路由。各协议路由优先级请参见路由协议的优先级
  • Cost:路由开销。当到达同一目的地的多条路由具有相同的路由优先级时,路由开销最小的将成为当前的最优路由。Preference用于不同路由协议间路由优先级的比较,Cost用于同一种路由协议内部不同路由的优先级的比较。在许多场合它也被称为度量值 CMetric) ,度量值的大小会影响到路由的优选。
  • NextHop:表示此路由的下一跳地址。指明数据转发的下一个设备。
  • Interface:表示此路由的出接口。指明数据将从本地路由器哪个接口转发出去。

值得注意的是:一个接口的直连路由被加载到路由表的前提是该接口的物理状态
(Physical Status) 及协议状态 (Protocol Status) 都必须是 Up 接

路由协议的优先级对应表

路由协议的类型路由协议的外部优先级
Direct0
OSPF10
IS-IS15
Static60
UNR(User Network Route)DHCP(Dynamic Host Configuration Protocol):60
AAA-Download:60
IP Pool:61
Frame:62
Host:63
NAT(Network Address Translation):64
IPSec(IP Security):65
NHRP(Next Hop Resolution Protocol):65
PPPoE(Point-to-Point Protocol over Ethernet):65
RIP100
OSPF ASE150
OSPF NSSA150
IBGP255
EBGP255

一台路由器可以同时通过多种途径获得路由信息,当出现到达同一个目的网段的路由通过多种不同的途径学习到的情况时,路由器会比较路由的优先级 ,选择优先级值最小的路由。而当路由器从多个不同的下一跳,通过同种路由协议获知到达同一个目的网段的路由时,它则会进行度量值的比较。

也就是先比较优先级Pre,再比较度量值 cost。

Network 路由重分发(路由引入)

概念

在路由协议的边界设备上,将某种路由协议的路由信息引入另一种路由协议中,这个操作被称为路由引入 (Route Importation) 者路由重分发 Route Redistribution。

在一个大型的企业中,由于网络规模十分庞大,选用单一 的路由协议可能己经无法满足网络的需求,因此多种路由协议共存的情况颇为常见。再者出于业务逻辑的考虑,通过在不同的网络结构中设计、部署不同的路由协议,可以使路由的层次结构更加清晰和可控。另外,在执行路由重分发时,还可以部署路由策略,从而实现对业务流量的灵活把控,这也是路由 重分发的魅力之一。

需要强调的是,路由重分发的操作是具有方向性的。

路由重分发的场景

路由重分发主要涉及如下几种场景:
动态路由协议之间的路由重分发;
将直连路由引入动态路由协议:
将静态路由引入动态路由协议;

路由重分发命令

RIP OSPF iS-iS BGP 等几乎所有的主流动态路由协议中, import-route
令都被用于执行路由重分发。

import-route ospf 1 cost 2

注意点:

如果被引入的路由失效,边界设备会发送一个Response报文通知,撤销关于目的网络的路由通告。

另一个需要留意的细节是路由的度量值。不同的路由协议对度量值的定义是不同
的, OSPF 将开销作为路由的度量值,而 RIP 则定义了跳数作为其路由度量值,这显然
是两种不同的设定。因此当一条路由被路由器从 OSPF 引入RIP 时,路由器生成的RIP
路由的度量值显然需要被重新定义,在上文配置的 import-route 命令中,关联了 cost
键字来指定路由被引入之后的度量值。在 import-route ospf 1后增加 cost 2则意为将引
入阳 的路由的度量值设置为 2跳.

如果要将其他路由协议的路由引入 RIP ,并且在执行 import-route 命令时没有指
cost 关键字及其参数,那么缺省时,被引入RIP的外部珞由的 Cost 值为 0,路由器将
该外部路由通告给其他路由器时,会将跳数设置为 1(也即0跳加上1) 。可以在 RIP
配置视图下使用 default-cost 命令修改这个缺省值(范围是 0~15)。

执行 import-route 命令将其他路由协议的路由引入 OSPF 时,可以指定外部路由
引入 OSPF 后的度量值、度量值类型、标记等信息,如果该命令中没有指定上述信息,
那么路由器将会为路由的这些属性设置缺省值,在 OSPF 配直视图下,使用 default 命令
可修改这些缺省值:

  • default cost 20: 外部路由被引入 OSPF 后,其度量值缺省被设置为1 ,使用该命
    令可将缺省值修改为 20
  • default cost inherit-metric :执行该命令后,被引入 OSPF 的外部路由的度量值将
    继承其被引入前的值
  • default type 1: 外部路由被引入 OSPF 后,其度量值类型缺省被设直为 Metric-type-2 ,使用该命令可将缺省度量值类型设直为 Metric-Type-1
  • default tag 10 :外部路由被引入 OSPF 后,其路由标记佳缺省值被设直为1 ,使用该命令可将缺省标记值设直为 10

OSPF(Open Shortest Path First,开放式最短路径优先)引入外部路由时有第一类外部路由(Type 1 External Route)和第二类外部路由(Type 2 External Route)两种类型,它们的区别如下:

一、计算开销(Cost)方式不同

  1. 第一类外部路由
    • 引入到 OSPF 中的第一类外部路由在计算路由开销时,除了考虑外部路由的开销,还会累加到达 ASBR(Autonomous System Boundary Router,自治系统边界路由器)的 OSPF 内部路由开销。
    • 例如,从某一路由器到达 ASBR 的 OSPF 内部路径开销是 10,ASBR 引入的外部路由开销是 20,那么对于该路由器来说,这条第一类外部路由的总开销就是 10 + 20 = 30。
  2. 第二类外部路由
    • 第二类外部路由在计算路由开销时,只考虑 ASBR 通告的外部路由开销,而忽略到达 ASBR 的 OSPF 内部路由开销。
    • 延续前面的例子,同样的场景下,如果是第二类外部路由,那么该路由器计算的这条外部路由的开销就是 20。

二、路由优选规则不同

  1. 第一类外部路由
    • 在进行路由选择时,OSPF 区域内和区域间的路由优先于第一类外部路由。
    • 只有当没有区域内和区域间的路由可以到达目的地址时,才会选择第一类外部路由。
    • 这是因为 OSPF 认为区域内和区域间的路由更可靠、更稳定,具有更高的优先级。
  2. 第二类外部路由
    • 第二类外部路由的优先级低于 OSPF 区域内和区域间的路由,也低于第一类外部路由。
    • 当存在多种路由可以到达同一目的地址时,会按照上述优先级顺序进行选择,最后才考虑第二类外部路由。

三、适用场景不同

  1. 第一类外部路由
    • 适用于对路由开销计算要求更精确、更符合实际网络拓扑和流量情况的场景。
    • 例如,在一个对网络流量和路由控制要求严格的企业网络中,如果希望外部路由的选择能够充分考虑到内部网络的拓扑结构和路由开销,就可以选择使用第一类外部路由。
  2. 第二类外部路由
    • 通常适用于外部路由相对不太重要,或者希望简化路由计算和管理的场景。
    • 比如在一些小型网络或者对路由策略要求不高的网络环境中,使用第二类外部路由可以减少路由计算的复杂性,提高网络的简洁性。

如图RTC通过RTB和RTA学习到1.1.1.1/32路由,请问选择哪个路径?通过命令显示是选择了区域内的路由。区域内路由优先级高于区域间路由优先级。

重分发直连路由到OSPF

使用import-route direct 命令将设备上的所有直连接口的路由发布到OSPF 中,包括已经在Ospf 进程下激活的接口路由。

重分发静态路由到OSPF

OSPF 视图中执行的 import-route static 命令,用于将其路由表中的所有静态路由引入 OSPF 。将静态路由引入其他动态路由协议中,同样是使用 import-route static命令。

Network OSPF优先级与开销

OSPF 内部的优先级的值为10,而外部的优先级的值为150,如果存在通过内部和外部2种方式获取到同样的路由,会优先选择内部路由。(优先级的值越大,优先级越低)。

通过调整ABR路由器所通告的缺省路由的开销值来实现主备备份。

在OSPF 区域中使用 default-cost 命令来修改ABR 发布的默认路由的cost 值 。

采用直接引入直连路由的方式引入外部路由,会将所有直连的网段路由全部引入过来(包括内部OSPF已经激活的路由)。

一般会通过路由策略来引入外部路由。

acl 2000

rule permit source 192.168.1.0 0.0.0.255

route-policy 10 permit node 1

if-match acl 2000

ospf 10

import-route direct route-policy 10