别再傻等40秒了!一键优化OSPF,体验秒级收敛的快感

万丈高楼平地起,通过前面两次实验(为什么你的OSPF路由表卡爆了?一文看懂多区域划分与3类LSA真相),全网设备的OSPF邻居关系均已建立,网络也进入多区域汇聚的全新形态,我们也彻底扒穿了OSPF多区域划分的底层逻辑。

通过前面的抓包,我们已经知道,以太网接口默认是Broadcast广播类型,但在只有两台设备直连的情况下,选举DR/BDR时需要苦苦等待40秒,纯属浪费时间。

其实,OSPF为了在不同的二层链路上高效工作,定义了四种网络类型:

1、Broadcast广播,默认用于以太网链路。可以自动发现邻居,需要选举DR/BDR,Hello定时器默认10秒,Dead定时器默认40秒。

2、P2P点到点,默认用于串口/PPP链路。可以自动发现邻居,不需要选举DR/BDR,Hello定时器默认10秒,Dead定时器默认40秒。

3、NBMA非广播多路访问,默认用于帧中继/ATM链路。无法发送广播报文,需要手动指定邻居,需要选举,Hello定时器默认30秒,Dead定时器默认120秒。

4、P2MP点到多点,将多路访问网络当作多个P2P的集合。不需要选举DR/BDR,Hello定时器默认30秒,Dead定时器默认120秒。

本次实验,我们就来简单了解一下之前在SRv6网络中配置过的P2P网络类型(告别MPLS!手把手带你用华为NE40E从零打通商用级SRv6骨干网)。

首先,ASBR1设备和ABR1设备的以太网接口默认工作在Broadcast广播网络类型,进行DR/BDR选举。我们先检查一下ASBR1上的邻居状态。

display ospf 1 interface HundredGigE1/0/3

可以看到,由于是以太网,接口的默认类型为Broadcast。此时,ASBR1需要等待40秒才完成了DR/BDR选举,最终选举成为BDR角色。对于只有两台路由器直连的链路,这40秒的等待纯属浪费。

我们再来看看此时的LSDB。

display ospf 1 lsdb router 10.0.2.1

在Router LSA中,两台设备之间的互联链路被描述为TransNet,这是因为有DR设备的存在,它们俩中间就像隔了个传话筒,需要通过2类Network LSA描述该子网。

接下来,我们玩一招釜底抽薪,在两台设备的互联接口下,将这段纯直连的链路类型强制改为P2P网络类型。

ABR1

interface HundredGigE1/0/1
ospf network-type p2p

ASBR1

interface HundredGigE1/0/3
ospf network-type p2p
修改完成之后,我们再次查看ASBR1的接口状态。

display ospf 1 interface HundredGigE1/0/3

注意看,此时Type变成了PTP,也就是P2P,而State变成了P-2-P。更关键的是,输出中再也找不到Designated router和Backup designated router字段了。这是因为在P2P类型下,OSPF不再选举DR/BDR,也就彻底免去了那难熬的40秒等待时间。

口说无凭,怎么证明呢?我们抓包看一下。

我们抓到的47号报文中还存在DR和BDR信息。紧接着,在第51个报文处,我们完成了ASBR1设备的接口调整,状态机被重置,报文中的DR/BDR字段被干脆利落地强制清零为0.0.0.0。

在第52个报文处,我们完成了ABR1设备的接口调整,状态机被重置,报文中的DR/BDR字段同样被强制清零。

紧接着,在第53个报文处,ASBR1设备检测到了邻居ABR1设备的存在。

天下武功,唯快不破!最关键的是,这次ASBR1设备根本没有等待任何等待,在随后的第56、57个报文中,两端立刻开始互发2类DBD报文,瞬间进入ExStart状态。

紧接着,在第59个报文处,ABR1设备的Hello报文中也更新了邻居ABR1设备的状态,之后进入ExStart状态。

从ASBR1发送第一个Hello报文开始,到ABR1最终回复LS Acknowledge报文确认收到,邻接关系达到最终形态Full状态,整个过程一共用时2.3秒。

如果从ABR1发送第一个Hello报文开始计算,整个过程耗时仅1.5秒,这就是P2P网络类型秒级收敛的铁证。

此时,我们再来查看LSDB中Router LSA的底层数据结构。

display ospf 1 lsdb router 10.0.2.1

可以看到,原本的TransNet链路10.21.31.31消失了,取而代之的是两条全新的链路描述。一条的链路类型是P-2-P,直接指向对端ABR1路由器的Router ID 10.0.3.1,而不是互联接口的IP地址,这清晰地表示了两台设备是点对点直连的。另一条的链路类型是StubNet,宣告了这根连线自身的网段和掩码(10.21.31.0/24)。

这就说明,在P2P网络下,这根链路将不再产生2类Network LSA,LSDB变得更加精简。

在大型数据中心和运营商的骨干网络中,绝大多数的设备互联都是通过两台设备之间的纯粹直连,接口类型也一般是三层路由口。然而,由于现代设备大量采用以太网接口,OSPF协议会死板地将其判定为Broadcast广播型多路访问网络,从而盲目地发起DR和BDR的选举。这不仅带来了长达40秒的不必要收敛延迟,还会在LSDB中额外产生2类Network LSA,增加了路由器的内存开销。

本实验中,我们通过一个极简的核心指令ospf network-type p2p,展示了网络工程师在实战中必须掌握的神级优化。将直连以太网链路强制指定为P2P后,我们不仅彻底砍掉了DR/BDR的选举时间,让OSPF状态机在两台设备间实现秒级收敛,更通过Router LSA中TransNet到P-2-P和StubNet的结构蜕变,为全网的SPF算法运算进行了物理级减负。

在百台甚至千台设备规模的OSPF网络中,这种通过优化网络类型来精简LSDB、加速收敛的工程实践,是保障网络高可用性不可或缺的底层基石。

声明:来自铁军哥,仅代表创作者观点。链接:https://eyangzhen.com/8714.html

铁军哥的头像铁军哥

相关推荐

添加微信
添加微信
Ai学习群
返回顶部