在华为eNSP中,深刻理解路由表(Routing Information Base, RIB)与转发表(Forwarding Information Base, FIB)的协同工作是掌握网络数据转发原理的关键。
一、路由表与转发表的基本概念
| 特性维度 | 路由表 (RIB) | 转发表 (FIB) |
|---|---|---|
| 所处平面 | 控制平面 (Control Plane) | 转发平面/数据平面 (Forwarding Plane/Data Plane) |
| 主要作用 | 路由决策,存储所有已知路由信息 | 数据包高速转发,直接指导报文从哪个物理接口发出 |
| 生成方式 | 由路由协议(如OSPF、静态、直连)计算生成 | 从路由表中的最优路由下载并解析生成 |
| 核心信息 | 目的网络/掩码、协议类型、优先级、Cost值、下一跳IP | 目的网络/掩码、出接口 、直接可达的下一跳MAC地址等 |
| 实现方式 | 软件实现,存在于设备内存(RAM)中 | 硬件实现(如ASIC芯片),存储在接口板,支持高速查询 |
| 更新频率 | 相对较低,随网络拓扑变化而更新 | 高,紧随路由表的变化而即时更新 |
二、两者的关联与工作流程
路由表和转发表并非孤立存在,而是构成了一个紧密协作的"控制与转发分离"的架构。你可以将路由表理解为一张详细的地图 ,它标明了所有可能的道路和方向;而转发表则是司机在路口看到的具体路牌,直接告诉他"现在请走这条车道"。
其基本工作流程可以概括为以下几个步骤:
-
路由学习与计算:路由器通过各种方式(直连、静态、动态路由协议)学习路由信息,并经过优先级和度量值的比较,选举出最优路径,将其存入全局路由表(RIB)。
-
表项下载与优化:控制平面将路由表中的活跃最优路由下载到转发平面。
-
硬件转发生成 :转发平面对这些路由进行关键的"下一跳迭代 "和"ARP解析",找到出接口和对应的直接下一跳的MAC地址,最终生成硬件转发表(FIB)。
-
数据包高速转发:当数据包到达路由器时,其处理流程简洁高效:
-
接口接收:数据包从物理接口进入。
-
查FIB表:包转发引擎直接查询硬件的FIB表,获得出接口和新的二层封装信息。
-
交换与转发:数据包通过交换网板送到出接口,根据FIB表项信息重新封装帧头(如更新源/目的MAC地址),最终发送出去。
-
三、实例分析:在eNSP中查看与验证
一条典型的路由条目通常包含以下核心字段:
-
Destination/Netmask(目的网络/掩码) :定义了这条路由规则适用的目标网络地址。例如,
192.168.1.0/24表示所有发往192.168.1.1到192.168.1.254的数据包都适用此规则。 -
Gateway/NextHop(网关/下一跳) :数据包需要被发送到的下一个路由器的接口IP地址。如果是直连网络,此处通常显示
0.0.0.0或*,表示无需经过网关。 -
Interface(接口):数据包应从本机的哪个物理或逻辑接口发出。
-
Metric(度量值):当存在多条路径到达同一目的地时,此值越小,路径优先级越高。
-
Proto(路由来源) :指明该路由条目是如何生成的,例如
Direct(直连)、Static(静态)或OSPF(动态路由协议)。
直连路由
这是最简单也最基础的路由。当你在路由器或主机的网络接口上配置了IP地址并激活接口后,系统会自动将该接口直接相连的网络地址加入路由表。
-
解析 :假设路由器的
GigabitEthernet0/0接口配置了IP地址192.168.1.1/24。当接口激活(no shutdown)后,路由表中会自动出现一条直连路由:-
目的网络 :
192.168.1.0/24 -
下一跳 :
0.0.0.0(表示直连) -
接口 :
GigabitEthernet0/0 -
路由来源 :
Direct这意味着所有发往
192.168.1.0/24这个局域网的数据包,路由器都会直接从GigabitEthernet0/0接口发出。
-
静态路由
静态路由是由网络管理员手动配置的固定路径,非常适合结构简单、稳定的网络。
-
解析 :假设你有两个局域网,网络A(
192.168.1.0/24)和网络B(192.168.2.0/24),通过一台路由器相连。为了让网络A中的主机能够访问网络B,你需要在路由器上添加一条静态路由:-
配置命令 (华为设备为例):
ip route-static 192.168.2.0 255.255.255.0 192.168.1.2 -
目的网络 :
192.168.2.0/24(网络B) -
下一跳 :
192.168.1.2(连接网络B的路由器接口地址) -
含义 :这条命令告诉路由器:"所有要发送到
192.168.2.0/24网络的数据包,请都转发给192.168.1.2这个地址。"静态路由的默认路由 (
0.0.0.0/0)非常有用,它像是通信系统的"默认快递",所有未明确指向本地或其他已知网络的数据包,都会被发送到指定的网关,通常用于连接互联网。
-
动态路由
在大型复杂网络中,网络拓扑可能频繁变化,手动维护静态路由几乎不现实。这时,动态路由协议(如OSPF、BGP等)就能让路由器之间相互通信,自动学习并更新路由表。
- 解析:在一个运行OSPF协议的网络中,路由器会向邻居广播自己的直连网络信息。经过一系列算法计算后,每台路由器都会生成一张完整的网络"地图"(路由表)。如果某条链路中断,相关信息会迅速传播到整个网络,所有路由器将根据新信息重新计算最优路径,并更新各自的路由表。
四、路由应用场景与比较
| 特性 | 直连路由 | 静态路由 | 动态路由 |
|---|---|---|---|
| 配置管理 | 自动生成,无需配置 | 手动配置,管理复杂 | 自动学习,减少维护 |
| 系统开销 | 无额外开销 | 无计算开销 | 消耗CPU和内存资源 |
| 路径选择 | 仅限直连网络 | 固定路径,由管理员精确控制 | 动态最优路径,适应性好 |
| 适用场景 | 所有网络设备的基础 | 小型网络、默认出口、特定安全要求 | 大型网络、复杂拓扑 |
| 优先级 | 最高(通常为0) | 中等(通常为60) | 取决于协议(如OSPF为10) |
1、查看路由表
-
**查看路由表:**路由表是三层设备(路由器、三层交换机)的"导航地图",其每条表项都是一个路径指示,包含以下核心信息:
-
目标网络/掩码: 此路由条目是针对哪个目标网络有效的,如
10.1.1.0/24或0.0.0.0/0(默认路由)。 -
协议/协议类型: 此路由是通过何种方式学到的。这是路由表中最重要的标识之一:
-
直连: 设备接口配置IP地址后自动生成。
-
静态: 管理员手动配置。
-
动态路由协议 : 如 OSPF , RIP , BGP 等,由路由协议自动计算和学习。
-
-
优先级/管理距离 : 当去往同一目标网络存在多条来源不同的路由时,优先级值越小,路由越优。直连路由优先级最高(通常为0),静态路由次之(通常为60),动态路由协议各有不同(如OSPF内部路由为10)。
-
开销 : 在同一种路由协议内部,用于比较到达同一目标网络的不同路径的优劣,值越小越优。例如OSPF的Cost值。
-
下一跳 : 数据包要被发往的下一个路由器的接口IP地址 ,如
192.168.12.2。 -
出接口 : 数据包应该从本设备的哪个物理或逻辑接口发出,如
GigabitEthernet0/0/0或Vlanif100。 -
输出示例如下,体现了上述表项结构:
Huawei\]display ip routing-table Route Flags: R - relay, D - download to fib ------------------------------------------------------------------------------ Routing Tables: Public Destinations : 7 Routes : 7 Destination/Mask Proto Pre Cost Flags NextHop Interface 0.0.0.0/0 Static 60 0 RD 100.1.1.1 GE0/0/1 10.1.1.0/24 Direct 0 0 D 10.1.1.254 Vlanif10 10.1.1.254/32 Direct 0 0 D 127.0.0.1 InLoopBack0 100.1.1.0/24 Direct 0 0 D 100.1.1.2 GE0/0/1 100.1.1.2/32 Direct 0 0 D 127.0.0.1 InLoopBack0 192.168.1.0/24 OSPF 10 2 D 10.1.1.1 Vlanif10 #### **2、查看转发表** 在设备上执行 `display fib`或更详细的 `display fib 10.1.1.0`。 \[Huawei\]display fib Route Flags: G - Gateway Route, H - Host Route, U - Up Route S - Static Route, D - Dynamic Route, B - Black Hole Route L - Vlink Route -------------------------------------------------------------------------------- FIB Table: Total number of Routes : 7 Destination/Mask Nexthop Flag TimeStamp Interface TunnelID 10.1.1.255/32 127.0.0.1 HU t\[35\] InLoop0 0x0 10.1.1.1/32 127.0.0.1 HU t\[35\] InLoop0 0x0 255.255.255.255/32 127.0.0.1 HU t\[10\] InLoop0 0x0 127.255.255.255/32 127.0.0.1 HU t\[10\] InLoop0 0x0 127.0.0.1/32 127.0.0.1 HU t\[10\] InLoop0 0x0 127.0.0.0/8 127.0.0.1 U t\[10\] InLoop0 0x0 10.1.1.0/24 10.1.1.1 U t\[35\] GE0/0/0 0x0 ##### **FIB 表列说明** * **Destination/Mask** -- 目标网络地址和掩码 * **Nexthop** -- 下一跳地址 * **Flag** -- 路由标志的组合 * **TimeStamp** -- 路由添加/更新时间戳(格式为 t\[相对时间\]) * **Interface** -- 出接口 * **TunnelID** -- 隧道 ID(0x0 表示无隧道) *** ** * ** *** ##### **路由条目解析** 1. **10.1.1.255/32** * 目标地址是广播地址 10.1.1.255,但作为主机路由(/32)。 * 下一跳为 127.0.0.1(本地环回),标志 **HU** 表示主机路由且启用。 * 出接口为 InLoop0(内部环回接口),用于本地处理。 2. **10.1.1.1/32** * 本机接口地址的主机路由。 * 下一跳为本地环回,用于本地收发目的地址为本机 IP 的数据包。 3. **255.255.255.255/32** * 有限广播地址的路由,本地环回处理。 4. **127.255.255.255/32** * 环回网段的广播地址路由。 5. **127.0.0.1/32** * 环回地址的主机路由。 6. **127.0.0.0/8** * 整个环回网段的路由,标志 **U** 表示可用路由。 7. **10.1.1.0/24** * 目标网络为 10.1.1.0/24,是唯一一个非环回接口的路由。 * 下一跳为 10.1.1.1(本机接口地址),表示这是**直连路由**。 * 出接口为 GE0/0/0(千兆以太网接口),用于转发到该网段的数据包。 * 表中大部分条目是**自动生成的本地环回路由**(127.0.0.0/8 和本机地址路由),用于设备内部通信。 * 唯一的外部路由是 **10.1.1.0/24**,该路由指向 GE0/0/0 接口,说明设备直接连接在该子网上。 * 没有明显的静态路由(S)或动态路由(D)标志,可能该设备仅配置了直连网络,或尚未学习到其他路由。 * 所有路由均为活跃状态(U),可用于转发。 > FIB 表是实际用于转发的表项,不同于路由表(RIB)可能包含多条路径。此处显示的都是最优路径。 **验证转发路径** 执行 `tracert`命令,可以清晰地看到数据包正是按照转发表指示的路径被一站站转发。 ### 五、理解路由表与转发表的关联具有重要实际意义: * **提升转发性能**:控制平面复杂的路由计算与转发平面高速的数据转发分离,使得路由器即使在进行大规模路由运算时,也不会影响现有数据流的转发速度。硬件化的FIB表查询实现了接近线速的转发。 * **增强网络稳定性**:这种分离架构使得网络更具韧性。控制平面的故障(如路由协议震荡)不一定直接影响正在进行的流量转发。 * **支持高级功能** :清晰的层次结构为实施**策略路由** 、**QoS** 、**MPLS**等高级功能奠定了基础,因为这些功能往往需要在FIB表项的基础上施加更复杂的转发策略。 ### **六、扩展关联:** | 转发表类型 | 工作层级 | 关键信息 | 主要作用 | 查看命令示例 | |-------------|-------------|---------------|--------------------------------|-----------------------| | **MAC地址表** | 数据链路层(二层) | MAC地址、接口、VLAN | 在同一个局域网内,根据MAC地址将数据帧从正确的端口转发出去 | `display mac-address` | | **ARP表** | 网络层与数据链路层之间 | IP地址、对应的MAC地址 | 实现IP地址到MAC地址的动态映射,为数据封装提供目标MAC | `display arp` | [华为eNSP模拟器综合实验之- ARP表项操作](https://blog.csdn.net/weixin_41750601/article/details/156985997?spm=1001.2014.3001.5502 "华为eNSP模拟器综合实验之- ARP表项操作")[华为eNSP模拟器综合实验之- 端口安全MAC地址表](https://blog.csdn.net/weixin_41750601/article/details/156982958?spm=1001.2014.3001.5502 "华为eNSP模拟器综合实验之- 端口安全MAC地址表")