心态崩了,OSPF又环路了?别怕,用这三条命令直接搞定

号主:老杨丨11年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部

下午好啊,我的网工朋友。

OSPF协议我们很熟悉,在OSPF中我们最常遇见的问题就是环路,OSPF 也有防环路机制。

在OSPF防环路场景中经常使用的使用三个命令,dn-bit-check、dn-bit-set、vpn-instance-capability simple,那么,它们有什么区别呢?

今天就给你讲讲,这三种配置 OSPF 环路预防的方法和区别。

今日文章阅读福利:《 OSPF经典学习笔记(62页) 

私信我,发送暗号“学习笔记”,即可获得老网工珍藏的OSPF经典学习笔记一份。

01 dn-bit-check

缺省情况下,OSPF 启用检查 LSA 中的 DN 位,换句话说,当 OSPF 不加载 LSA 时,路由表中的 DN 位被设置为 1,这是我们可以用来终止 OSPF 循环预防机制的最常见的场景。
作为常见的场景,下面的拓扑显示了一个典型的 MPLS L3VPN 网络,在 CE1 上启用 VPN 实例,并且 OSPF 与 VPN 实例绑定。
02cc5d22eba3b93f7071c276735b3f23.jpeg
在这种场景下,PE1上引入OSPF的BGP路由生成的LSA会设置DN位为1,设置路由由于 OSPF 循环预防机制,标记位为非零。
e815095f4ce7f9c5d8f8a92761c9b874.jpeg
要将路由加载到路由表中,我们可以在 CE1 路由器上配置 dn-bit-check disable 来禁用 OSPF 检查 LSA 的 DN 位。
0b3cb5321514f27d05c62a223c40b23b.jpeg
在OSPF进程下使能dn-bit-check disable ase后,LSA被正确加载到路由表中。
 

02 dn-bit-set

与dn-bit-check不同,dn-bit-set命令将从根本上解决这个 DN 位集问题。即会导致路由器不设置DN位。
以前面的例子为例,在PE路由器上设置了DN位,因此,我们可以尝试禁止PE路由器设置DN位,这样CE1上收到的LSA就不会被路由表拒绝。
abb6d8a0fdfdffbb922d1ad68b7cb323.jpeg
从上面的结果可以看出,在PE1上配置命令后,CE1上收到的LSA不再携带DN位。
437513eb125b10b86180364419057a5f.jpeg
LSA 也被正确加载到路由表中。
 

03 Vpn-instance-capability

再假设一个场景,R1和R2接口都绑定了VPN实例,R1和R2之间开启了OSPF来传输路由。在 R2 上,将直连路由引入 OSPF 进程。然后查看R1上的路由表,会不会觉得导入的路由在R1上可以观察到?
a81e5ba7e17d450ed4f7af254eb4d701.jpeg
遗憾的是,R1 上没有相关路线。
6e2b6b85173098662187810f41f01968.jpeg
在这种情况下,由于R1和R2都没有配置BGP,所以R1上接收到的LSA的路由标签字段为0,这是默认值,最后,由于路由标签相同,R1 不会将 LSA 加载到路由表中。
a8790c04395b7bccf17ecd7030370a1c.jpeg
为了解决这个问题,我们可以在 R1 OSPF 进程下启用vpn-instance-capabilit simple,之后 R1 路由器将忽略 OSPF 防环路机制,将 LSA 加载到路由表中。
d8eee942276dfe116bcae1ebd3dc3dad.jpeg
 

整理:老杨丨11年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-10 20:54:07       100 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-10 20:54:07       107 阅读
  3. 在Django里面运行非项目文件

    2024-07-10 20:54:07       90 阅读
  4. Python语言-面向对象

    2024-07-10 20:54:07       98 阅读

热门阅读

  1. c语言实战-极简扫雷

    2024-07-10 20:54:07       30 阅读
  2. 从零到一:构建股票预测模型的Python实战教程

    2024-07-10 20:54:07       25 阅读
  3. SpringBoot | 面试题

    2024-07-10 20:54:07       28 阅读
  4. Shell学习——Shell printf命令

    2024-07-10 20:54:07       26 阅读
  5. Linux实现CPU物理隔离

    2024-07-10 20:54:07       25 阅读
  6. Redis 中的跳表(Skip List)

    2024-07-10 20:54:07       30 阅读
  7. 路由器是什么?

    2024-07-10 20:54:07       26 阅读
  8. redis实现延时队列

    2024-07-10 20:54:07       28 阅读