2. Nexus Underlay路由基础
在Nexus交换机的Underlay网络中,路由转发并不是“查一张表”这么简单。设备内部同时存在RIB(Routing Information Base,路由信息库)和FIB(Forwarding Information Base,转发信息库)两套结构,分别服务于控制平面和数据平面。理解它们的分工与同步关系,是排查“路由学得到但流量不通”这类问题的前提。
控制平面与数据平面:谁负责什么
控制平面负责“算出最优路径”。运行OSPF、BGP、EIGRP或静态路由配置后,路由协议进程把候选路径交给路由表管理器(URIB),由它比较管理距离(AD)、度量值(metric),选出最优路由写入RIB。RIB是控制平面的“决策结果”,它知道每条前缀来自哪个协议、下一跳是谁、出接口是哪个。
数据平面负责“按结果转发”。硬件ASIC需要一张可以直接索引的转发表,这就是FIB。FIB由RIB下刷生成,包含前缀、下一跳、出接口、邻接信息(重写后的目的MAC、源MAC、VLAN等)。当报文进入线卡,ASIC查FIB完成转发,整个过程不经过CPU,也不查询RIB。
因此,RIB是“路由怎么来的”,FIB是“报文怎么走的”。两者必须一致,但并非永远一致——当路由撤销、下一跳不可达或硬件表项更新延迟时,就可能出现短暂不一致,这正是排障的关键观察点。
直连路由在Nexus上的生成与观察
直连路由是Underlay最基础的路由来源。当在接口上配置IP地址并使其up后,Nexus会自动把该网段写入RIB,AD为0,出接口就是该物理口或SVI。例如:
interface Ethernet1/1
no switchport
ip address 10.0.1.1/24
no shutdown
此时执行 show ip route,可以看到类似 10.0.1.0/24, ubest/mbest: 1/0, attached, direct, Ethernet1/1 的表项。其中 direct 表示直连,attached 表示该网段本身在接口上。直连路由同时会生成一条指向自身的邻接表项,用于解析同网段主机的ARP。
需要注意:如果接口是二层口(switchport),则不会生成直连路由;必须先用 no switchport 切换为三层口,或使用SVI。此外,接口down或IP被移除时,直连路由会立即从RIB和FIB中撤销,不需要等待任何定时器。
静态路由的配置与生效条件
静态路由适合用于Underlay中少量固定路径、默认路由或管理网段。Nexus支持两种写法:指定下一跳IP,或指定出接口。推荐使用下一跳IP方式,因为出接口方式在广播网络中可能引发ARP解析问题。
ip route 10.0.2.0/24 10.0.1.2
ip route 0.0.0.0/0 10.0.1.254
静态路由写入RIB后,Nexus会检查下一跳是否可达。如果下一跳在直连网段内且接口up,路由会被标记为有效并下刷FIB;如果下一跳不可达,路由不会进入FIB,show ip route中可能显示为inactive或直接不显示。这是静态路由“配了但不通”的最常见原因。
验证时可以使用:
show ip route static
show ip route 10.0.2.0/24
show forwarding route 10.0.2.0/24
其中 show forwarding route 查看的是FIB内容,如果RIB有但FIB没有,说明下刷环节出了问题,需要检查下一跳邻接是否解析成功。
RIB与FIB不一致的典型场景
在Underlay运维中,以下几种情况会导致RIB与FIB短暂或持续不一致:
- 下一跳ARP未解析:静态路由或协议路由的下一跳在直连网段,但ARP表项为空,FIB无法生成完整邻接,报文被丢弃。
- 接口状态抖动:接口down后RIB立即撤销路由,但硬件表项更新有毫秒级延迟,可能出现极短时间的“黑洞”。
- 路由撤销与硬件更新不同步:大量路由撤销时,CPU下刷FIB需要时间,期间新流量可能仍按旧表项转发。
- 硬件表项耗尽:FIB容量有限,当路由条目超过硬件规格时,部分路由无法下刷,表现为“路由在RIB中但转发不通”。
排查时建议按“先看RIB,再看FIB,最后看邻接”的顺序:show ip route确认控制平面是否有路由;show forwarding route确认数据平面是否已下刷;show ip arp确认下一跳MAC是否解析。三者一致,转发才真正可用。
show ip route默认显示RIB,show forwarding route显示FIB。两者输出格式不同,但前缀和下一跳应保持一致。若不一致,优先检查下一跳可达性和硬件资源。Underlay路由设计中的直连与静态配合
在典型的Spine-Leaf Underlay中,Leaf与Spine之间通常使用直连三层链路,通过OSPF或BGP动态学习对端Loopback和远端网段。直连路由负责本地链路可达性,动态路由负责远端前缀。静态路由则常用于:默认路由指向边界防火墙、管理网段指向带外管理口、或临时调试路径。
一个常见的教学示例:Leaf1的Ethernet1/1连接Spine1,IP为10.0.1.1/30;Spine1侧为10.0.1.2/30。Leaf1上配置静态路由 ip route 10.0.2.0/24 10.0.1.2,其中10.0.2.0/24是Spine1背后的网段。此时Leaf1的RIB中会出现该静态路由,下一跳10.0.1.2通过直连路由10.0.1.0/30可达,FIB生成对应邻接,流量可以正常转发。如果Spine1侧接口down,Leaf1的直连路由撤销,静态路由下一跳不可达,该静态路由也会从RIB中移除,FIB同步删除,避免黑洞。
理解这一联动关系,就能明白为什么Underlay中“直连是基础,静态是补充,动态是规模化的关键”。RIB与FIB的同步机制,则是所有路由协议能够真正驱动转发的底层保障。