OSPF Forward Address地址的选择标准
2021-11-05阅读 9

OSPF Forward Address地址的选择标准

                                                                                                                                                                                                         苏函

目录

OSPF Forward Address地址的选择标准... 1

理论总结:... 1

实验拓扑... 1

实验目的... 2

实验步骤... 2

步骤1:基本环境搭建:... 2

步骤2:观察总体选举规则:... 2

步骤3:观察规则:环回口优先于物理接口。... 3

步骤4:测试有多个接口时的FA地址选举规则。... 4

步骤5:再次验证结论:... 5

结语:... 8

 

理论总结:

 OSPF5LSA中,有一个Forward Address字段,此字段会带上一个FA地址,它的作用主要有二点:

1.     优化选路。

2.     防环。

此文章中并不是要探讨此二点具体如何实现,而是想搞清楚,此FA地址究竟会携带哪个地址呢?

FA地址的选择遵循以下规则:

1.     大前提:此FA地址必须通过OSPF可达,也就是说,此地址一定要被宣告到OSPF进程中,才会被选择。

2.     被引入路由的下一跳IP > 回环口IP > 物理接口IP

而比较难的是,当有多个回环口,或多个物理接口的时候,又是如何选择的呢?

此时的选择是:首次最早参与到OSPF进程的接口!特别要注意的是,一定是首次,什么意思呢?也就是说一个接口被宣告到OSPF后,又去掉此宣告,再宣告其它接口,然后又将此接口再次宣告进OSPF的时候。它依然是最早参与到OSPF进程的接口。这也是我们会对此理解混乱的原因。

进一步理解一下,为什么要做出此选择呢。其实也是说得通的,因为一切都应该是稳定为前提,所以一个最早被宣告的接口,应该是最老的,最稳定的,选择它也是合理的了。

接下来用实验的方式,验证上面的结果。实验比较复杂,各位看官可以酌情观看。

实验拓扑

 

实验目的

l  验证FA地址选举规范

实验步骤

步骤1:基本环境搭建:

1.     如拓扑如示配置基本的OSPF

2.     AR4上将RIP引入到OSPF进程

3.     配置Area 1区域为NSSA区域。

 

步骤2:观察总体选举规则:

被引入路由的下一跳IP > 回环口IP > 物理接口IP

 

如下图所示,当AR4AR6之间的链路被宣告到OSPF进程的时候,此时AR4携带的FA地址,一定是被引入路由6.1.1.1/32的下一跳46.1.1.6

 

如下图所示:

但这也是有前题的,除去必须被宣告到OSPF以外,还有以下要求:

1.     此接口网络类型不能为P2PP2MP.

2.     此接口不能配置为静默端口。

 

步骤3:观察规则:环回口优先于物理接口。

[AR4-GigabitEthernet0/0/0]undo ospf enable 1 a 1

[AR4-LoopBack0]ospf enable 1 a 1

去掉下一跳接口的宣告,并宣告一个回环接口,如下图所示。

 

此时一定会选择4.1.1.1FA地址,如下所示:

 

步骤4:测试有多个接口时的FA地址选举规则。

注意:一定要是按首次参与时间排序。

特意重启设备后,做测试。

a)   先宣告loopback100接口:

[AR4-LoopBack100]ip address 4.1.1.100 32

[AR4-LoopBack100]ospf enable 1 area 1

b)  再宣告loopback1接口:

[AR4-LoopBack1]ip address 4.1.1.1 32

[AR4-LoopBack1]ospf enable 1 a 1

观察以上信息,可以发现,首先被宣告的会排上面。

c)   再添加一个接口:

[AR4-LoopBack200]ip address 4.1.1.200 32

[AR4-LoopBack200]ospf enable 1 a 1

d)  结论:而此时FA地址的选择将会是4.1.1.100 > 4.1.1.1 > 4.1.1.200

如下所示,按照参与到OSPF进程的顺序,优选最早参与到OSPF的接口。

 

 

步骤5:再次验证结论:

a)   去掉loopback100口的宣告,一定会选择loopback1口的4.1.1.1

[AR4]interface LoopBack 100

[AR4-LoopBack100]undo ospf enable 1 a 1

 

b)  再恢复loopback100口的宣告,此接口将回归最早被宣告的位置:

[AR4-LoopBack100]ospf enable 1 a 1

 

c)   如何重置接口信息:undo掉此回环口,将重置ospf接口信息。

[AR4]undo interface LoopBack 100

[AR4-LoopBack100]ip address 4.1.1.100 32

[AR4-LoopBack100]ospf enable 1 a 1

如上所示,此时loopback1被认为是最新参与到OSPF的接口了,而此时4.1.1.1将被选为FA地址:

结语:

由于华为文档并没有提及FA地址的选举,所以文档信息来源来一篇Cisco文档。同样,我也用Cisco设备做了验证,都符合以上规则。

下面附上Cisco文档截图。

不过以上Cisco文档中也有一个错误,是最先被宣告的排上面,而不是最后被宣告的排上面。如下图所示:

R4(config)#int loo100

R4(config-if)#ip address 4.1.1.100 255.255.255.255

R4(config-if)#ip ospf 1 a 1

R4(config-if)#int lo 1

R4(config-if)#ip address 4.1.1.1 255.255.255.255

R4(config-if)#ip ospf 1 a 1

R4(config-if)#do show ip ospf int b

 附下Cisco实验截图:

大家对此有什么意见和看法,欢迎评论。我将一一回复的。