[华为认证]路由表和FIB表

路由器转发数据包的关键是路由表和FIB表,每个路由器都至少保存着一张路由表和一张FIB(Forwarding Information Base)表。路由器通过路由表选择路由,通过FIB表指导报文进行转发。

路由表

每台路由器中都保存着一张本地核心路由表(即设备的IP路由表),同时各个路由协议也维护着自己的路由表。

  • 本地核心路由表

    路由器使用本地核心路由表用来保存决策优选路由,并负责把优选路由下发到FIB表,通过FIB表指导报文进行转发。这张路由表依据各种路由协议的优先级和度量值来选取路由。

  • 协议路由表

    协议路由表中存放着该协议发现的路由信息。

    路由协议可以引入并发布其他协议生成的路由。例如,在路由器上运行OSPF协议,需要使用OSPF协议通告直连路由、静态路由或者IS-IS路由时,要将这些路由引入到OSPF协议的路由表中。

路由表中的内容

在路由器中,执行命令display ip routing-table时,可以查看路由器的路由表概要信息,如下所示:

复制代码
<HUAWEI> display ip routing-table
Proto: Protocol        Pre: Preference
Route Flags: R - relay, D - download to fib, T - to vpn-instance
------------------------------------------------------------------------------
Routing Tables: Public
         Destinations : 14       Routes : 14                                    
                                                                                
Destination/Mask    Proto   Pre  Cost      Flags NextHop         Interface      
                                                                                
        0.0.0.0/0   Static  60   0          RD   10.137.216.1    Vlanif20
     10.10.10.0/24  Direct  0    0           D   10.10.10.10     Vlanif20
    10.10.10.10/32  Direct  0    0           D   127.0.0.1       InLoopBack0    
   10.10.10.255/32  Direct  0    0           D   127.0.0.1       InLoopBack0    
     10.10.11.0/24  Direct  0    0           D   10.10.11.1      LoopBack0      
     10.10.11.1/32  Direct  0    0           D   127.0.0.1       InLoopBack0    
   10.10.11.255/32  Direct  0    0           D   127.0.0.1       InLoopBack0    
   10.137.216.0/23  Direct  0    0           D   10.137.217.208  Vlanif20      
 10.137.217.208/32  Direct  0    0           D   127.0.0.1       InLoopBack0    
 10.137.217.255/32  Direct  0    0           D   127.0.0.1       InLoopBack0    
      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    
127.255.255.255/32  Direct  0    0           D   127.0.0.1       InLoopBack0    
255.255.255.255/32  Direct  0    0           D   127.0.0.1       InLoopBack0 

路由表中包含了下列关键项:

  • 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用于同一种路由协议内部不同路由的优先级的比较。

  • NextHop:表示此路由的下一跳地址。指明数据转发的下一个设备。

  • Interface:表示此路由的出接口。指明数据将从本地路由器哪个接口转发出去。

图1所示的网络中,路由器A与三个网络相连,因此有三个IP地址和三个出接口,其路由表如图所示。

图1 路由表示意图

FIB表的匹配

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

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

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

例如,一台路由器上的路由表如下:

复制代码
Routing Tables:
复制代码
Destination/Mask    Proto  Pre  Cost     Flags NextHop         Interface
复制代码
 0.0.0.0/0      Static   60   0       D   192.168.0.2      GigabitEthernet1/0/0
复制代码
 10.8.0.0/16    Static   60   3       D   192.168.0.2      GigabitEthernet1/0/0
复制代码
 10.9.0.0/16    Static   60   50      D   172.16.0.2       GigabitEthernet3/0/0
复制代码
 10.9.1.0/24    Static   60   4       D   192.168.0.2      GigabitEthernet2/0/0
复制代码
 10.20.0.0/16   Direct   0    0       D   172.16.0.1       GigabitEthernet4/0/0

一个目的地址是10.9.1.2的报文进入路由器,查找对应的FIB表。

复制代码
 FIB Table:
复制代码
 Total number of Routes : 5
复制代码
Destination/Mask   Nexthop         Flag TimeStamp     Interface              TunnelID
复制代码
0.0.0.0/0            192.168.0.2       SU   t[37]         GigabitEthernet1/0/0  0x0
复制代码
10.8.0.0/16          192.168.0.2       DU   t[37]         GigabitEthernet1/0/0  0x0
复制代码
10.9.0.0/16          172.16.0.2        DU   t[9992]       GigabitEthernet3/0/0  0x0
复制代码
10.9.1.0/24          192.168.0.2       DU   t[9992]       GigabitEthernet2/0/0  0x0
复制代码
10.20.0.0/16         172.16.0.1        U    t[9992]       GigabitEthernet4/0/0  0x0

首先,目的地址10.9.1.2与FIB表中各表项的掩码"0、16、24"作"逻辑与"运算,得到下面的网段地址:0.0.0.0/0、10.9.0.0/16、10.9.1.0/24。这三个结果可以匹配到FIB表中对应的三个表项。最终,路由器会选择最长匹配10.9.1.0/24表项,从接口GE2/0/0转发这条目的地址是10.9.1.2的报文。

相关推荐
靖节先生1 小时前
Wireshark详解
网络·测试工具·wireshark
技术小齐2 小时前
网络运维学习笔记 021 HCIA-Datacom新增知识点02 SDN与NFV概述
运维·网络·学习
ZachOn1y4 小时前
计算机网络:应用层 —— 域名系统 DNS
网络·计算机网络·应用层·408考研·知识积累·域名系统dns
给生活加糖!6 小时前
智能交通系统(Intelligent Transportation Systems):智慧城市中的交通革新
网络·人工智能·智慧城市
人间打气筒(Ada)6 小时前
ubuntu网络及软件包管理
网络·ubuntu·php
明达技术7 小时前
工控自动化领域:数字量信号与模拟量信号的差异解析
网络
网安Ruler7 小时前
靶场之路-Kioptix Level-1 mod_ssl 缓冲区溢出漏洞
网络·网络协议·网络安全·ssl
深耕云原生7 小时前
浅谈网络 | 容器网络之Cilium
网络·ebpf·cilium
漫谈网络8 小时前
Ryu:轻量开源,开启 SDN 新程
网络·开源·信息与通信
+7208 小时前
如何使用HttpClinet实现RPC返回对象类型
网络·网络协议·rpc