我有几个 /30 子网通过支持广播的链路连接 OSPF 路由器。我还应该将链路中涉及的接口配置为点对点 ip ospf 网络吗?或者有关系吗?我唯一能想到的就是阻止选举,根据我的理解,这无关紧要,因为子网中只有 2 台主机(路由器)?
使用 /30 链接进行 OSPF 选举?
我有几个 /30 子网通过支持广播的链路连接 OSPF 路由器。我还应该将链路中涉及的接口配置为点对点 ip ospf 网络吗?或者有关系吗?
网络类型肯定很重要,但您需要敏锐地处理这种情况……有一些极端情况需要考虑。让我们比较一下将 /30 配置为“广播”或“点对点”OSPF 网络的后果……
----------+-------+--------------+--------------------+--------------+
Network | Hello | DeadInterval | Adjacency Time | LSAs per /30 |
----------+-------+--------------+--------------------+--------------|
Broadcast | 10s | 40s | > 40s (very slow) | 3 |
Pt-to-Pt | 30s | 120s | < 2s (fast) | 2 |
----------+-------+--------------+--------------------+--------------+
概括
- OSPF广播网络类型建立邻接关系的速度很慢(因为它们必须等待 DR 选举),并且为您指定为 OSPF 广播网络的每 /30 生成 50% 以上的 LSA。必须对这些 LSA 进行泛洪和处理,这会减慢收敛速度。简而言之,与使用 /30 点对点网络相比,使用许多 /30 OSPF 广播网络的设计会收敛得更慢一些......
- OSPF点对点网络类型可以非常快速地建立邻接关系;但是,正如 Ron 所提到的,它
RouterDeadInterval是 120 秒,因此您可能希望设置得HelloInterval更低。但是,正确设计的网络无需担心降低HelloInterval/30 点对点 OSPF 网络。
详细信息:OSPF 广播网络上的 /30
OSPF 广播网络默认值:
HelloInterval: 10 秒RouterDeadInterval: 40 秒
检测 OSPF 进程故障的时间:<= 40 秒
邻接时间:大于40秒
[Time T = 0]当链路出现时,两个路由器都会发送 OSPF Hello。(OSPF 状态:初始化)[Time T = 0]两个路由器看到相反的hello;但是,除非配置了 DR 优先级 0,否则两个路由器都必须等待RouterDeadInterval几秒钟以确保链路上没有其他候选 DR。(OSPF 状态:2-WAY)[Time T = 40]DR / BDR 被选举出来,DBD 交换开始(OSPF STATE: EXSTART)[Time T = 40 + 'DBD exchange time']解析 DBD,并运行 SPF ( OSPF STATE: FULL )
LSA :
- 每个路由器都发送路由器 LSA:OSPF LSA 类型 1
- DR为广播链路本身发送类型 2网络 LSA
详细信息:OSPF 点对点网络上的 /30
OSPF 点对点网络默认值:
HelloInterval: 30秒RouterDeadInterval: 120 秒
检测 OSPF 进程故障的时间:<= 120 秒
邻接时间:快(通常小于2秒)
[Time T = 0]当链路出现时,两个路由器都会发送 OSPF Hello。(OSPF 状态:初始化)[Time T = 0]两个路由器都看到相反的 hello。(OSPF 状态:2-WAY)[Time T = 0]DBD 交换开始(OSPF STATE: EXSTART)[Time T = 'DBD exchange time']解析 DBD,并运行 SPF ( OSPF STATE: FULL )
何时降低HelloIntervalOSPF 点对点网络
考虑这些情况...
案例 A:路由器之间的直接光纤链路
Router1-------------------------------Router2
路由器之间的链路配置为 OSPF 网络点对点。如果 Router1 和 Router2 之间的链路断开,两个路由器都会立即看到它们的链路断开,并运行 SPF 以寻找替代路径。OSPF 进程失败往往非常罕见,因此通常没有充分的理由来降低HelloIntervalCaseA。
案例 B:两台路由器之间的一台交换机
Router1-------------Switch------------Router2
路由器之间的链路配置为 OSPF 网络点对点。如果 Router1 和交换机之间的链路断开,则有问题…… Router1 立即知道运行 SPF(等待后SPFDelay);但是,Router2 的链接仍然存在。因此,路由器 2 必须等待收敛,直到任一RouterDeadInterval过期,或者直到路由器 2 看到路由器 1 的新 LSA(在路由器 1 完成 SPF 后被淹没)。在大多数情况下,Router2 会看到 Router1 的新 LSA,然后自己运行 SPF……但是,在这种情况下 Router2 的重新收敛至少是SPFInterval(SPFInterval默认值:IOS 中的 5 秒)的两倍。
当您的路由器配置为 OSPF 网络点对点时,降低 CaseB 的 hello 计时器(或 BFD 计时器)是值得的。
案例C:两台路由器通过多台交换机相邻
Router1-----Switch1-----Switch2--------Router2
这是 OSPF 点对点收敛时间的最坏情况;路由器之间的链路配置为 OSPF 网络点对点。如果 Switch1 和 Switch2 之间的链路断开,则两个路由器都会看到它们的链路正常;这意味着HelloInterval应该更改默认计时器,以防止链接断开和 SPF 运行之间出现两分钟的延迟。在这种情况下,当您的路由器配置为 OSPF 网络点对点时,降低 CaseC 的 hello 计时器(或 BFD 计时器)绝对值得。
对于这个问题,您实际上需要权衡一些事情。
在以下情况下使用点对点:
- 快速故障检测和收敛对您很重要。
- 收敛:缺少 DR/BDR 选举将加速收敛
- 故障检测:将OSPF 网络点对点网络类型与 BFD 结合以快速检测链路故障。您可以调整 OSPF 计时器,但 BFD 的性能比fast-hellos更好,并且在系统资源上更容易一些。
- 您想在点对点链接上使用 /31 网络以节省 IP 地址空间
- 点对点网络的 hello 数据包中的网络掩码被忽略
注意:对于通过点对点网络类型接收的路由,OSPF 会将下一跳报告为邻居路由器。
在以下情况下使用广播(默认类型):
- 你不太关心收敛时间
- 您不想设计一个复杂的微调解决方案
注意:对于通过广播网络类型接收的路由,OSPF 会将下一跳报告为广告路由器。
需要关注的一件事是计时器。广播网络有一个 40 秒的死定时器,但 PTP 是 120 秒。如果发生网络故障,这可能是收敛/恢复时间的问题。
通常,将 OSPF 设置为点对点是为了节省租用链路上的带宽,因为它不会进行选举,因此如果链路未租用或计量,您应该不会看到两种设置之间有太大区别。