号主:老杨丨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 实例绑定。
在这种场景下,PE1上引入OSPF的BGP路由生成的LSA会设置DN位为1,设置路由由于 OSPF 循环预防机制,标记位为非零。
要将路由加载到路由表中,我们可以在 CE1 路由器上配置 dn-bit-check disable 来禁用 OSPF 检查 LSA 的 DN 位。
在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就不会被路由表拒绝。
从上面的结果可以看出,在PE1上配置命令后,CE1上收到的LSA不再携带DN位。
LSA 也被正确加载到路由表中。
03 Vpn-instance-capability
再假设一个场景,R1和R2接口都绑定了VPN实例,R1和R2之间开启了OSPF来传输路由。在 R2 上,将直连路由引入 OSPF 进程。然后查看R1上的路由表,会不会觉得导入的路由在R1上可以观察到?
遗憾的是,R1 上没有相关路线。
在这种情况下,由于R1和R2都没有配置BGP,所以R1上接收到的LSA的路由标签字段为0,这是默认值,最后,由于路由标签相同,R1 不会将 LSA 加载到路由表中。
为了解决这个问题,我们可以在 R1 OSPF 进程下启用vpn-instance-capabilit simple,之后 R1 路由器将忽略 OSPF 防环路机制,将 LSA 加载到路由表中。
整理:老杨丨11年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部