1 OSPF选路规则
通过同一个OSPF进程内的LSA计算的相同路由条目:
1. 区域内路由优于区域间路由
2. 区域间路由优于外部路由
3. 对于外部路由,类型1总是优于类型2
4. 对于外部路由,且开销类型相同时:
(1) 同为外部类型2,重分布时携带开销小的最优
(2) 定义两种开销值:
l x=内部设备到转发地址(FA)的开销;FA为0时,X为到ASBR的开销
l y=外部路由重分发进来时LSA携带的开销值
RFC1583与RFC2328是针对外部路由由不同选优方式。
此时需要分选择标准:
* RFC1583标准:
A. TYPE-1路由比对:
取X+Y值最小路由
B. TYPE-2路由比对:
取X值最小路由
之后就没有成型的规范了。基本实现应该是负载
* RFC2328标准:
直接比对X路由类型(RFC2328的16.4.1)
(1) 非骨干区域的区域内路由始终优先。
(2) 骨干区域中的区域内路径和区域间路径,优先级相同
(3) 如果无法比对出结果,则等同RFC1583继续比对
(4) 如果多条都是最小开销,选择学习到的这些LSA的区域里,选择最大area-ID里面的LSA使用
之后没有任何成型规范。所以,如果ID(associated area-ID)相同,基本实现应该是负载
2 测试的拓扑图与说明
设备互连IP段,如AR1与AR2互连为10.10.AB.A,AR1为10.10.12.1/24,AR2为10.10.12.2/24,ospf的router ID为A.A.A.A,如AR1的router ID为1.1.1.1
引入的路由为loop0地址,IP地址都为100.100.100.100/32
3 兼容RFC1583(默认兼容)下的选路
3.1 引入type 1的外部路由
R2,R4和R5都引入type 1并都设置cost 10
[R2-ospf-1]dis this
[V200R003C00]
#
ospf 1 router-id 2.2.2.2
import-route direct cost 10 type 1
area 0.0.0.0
network 10.10.12.2 0.0.0.0
network 10.10.23.2 0.0.0.0
#
[R4-ospf-1]dis this
#
ospf 1 router-id 4.4.4.4
import-route direct cost 10 type 1
area 0.0.0.1
network 10.10.34.4 0.0.0.0
#
<R5>dis cu configuration ospf
#
ospf 1 router-id 5.5.5.5
import-route direct type 1 cost 10
area 0.0.0.2
network 10.10.35.5 0.0.0.0
#
3.1.1 X相同,Y相同
R3到外部路由的:X=1,Y=10。
R3查看100.100.100.100路由,三条等价路由负载,开销都为11(X=1,Y=10)
3.1.2 X不同,Y相同
修改(增加)R3在Area 1和Area 2接口的开销后(意味着X的开销增大),即R3到R2引入的路由:X=1,Y=10,R3到R4、R5引入的路由为X=100,Y=10,那么路由就优先开销小(X+Y)的AR2引入的路由(X=1,Y=10),其余两条X=100,Y=10
[R3-GigabitEthernet2/0/0]ospf cost 100
[R3-GigabitEthernet0/0/1]ospf cost 100
R3查看100.100.100.100路由,优选X+Y小的负载。
3.1.3 X相同,Y不同
恢复R3在Area 1和Area 2接口的开销后(意味着X相等),R4引入路由的开销设为20,即R4引入的路由Y=20,而R2和R5引入的路由Y=10
[R3-GigabitEthernet2/0/0]undo ospf cost
[R3-GigabitEthernet0/0/1]undo ospf cost
[R4-ospf-1]import-route direct type 1 cost 20
R3查看100.100.100.100路由,优选X+Y小的负载。
3.1.4 X不同,Y不同,X+Y相同
恢复R4引入的路由开销为10,修改(增加)R3在Area 1和Area 2接口的开销后(意味着X的开销增大),即R3到R2引入的路由:X=1,Y=109,R3到R4、R5引入的路由为X=100,Y=10,那么路由就(X+Y)相等时负载
[R3-GigabitEthernet2/0/0]ospf cost 100
[R3-GigabitEthernet0/0/1]ospf cost 100
[R2-ospf-1]import-route direct type 1 cost 109
R3查看100.100.100.100路由,三条(X+Y相等)等价路由负载
3.2 引入type 2的外部路由
R2,R4和R5同时引入type 2并都设置cost 20。
[R2-ospf-1]import-route direct type 2 cost 20
[R4-ospf-1]import-route direct type 2 cost 20
[R5-ospf-1]import-route direct type 2 cost 20
3.2.1 X相同,Y相同
R3到外部路由的X=1,Y=20
R3查看100.100.100.100路由,三条等价路由负载,开销为Y
3.2.2 X不同,Y相同
修改(增加)R3在Area 1接口的开销后(意味着X的开销增大)
[R3-GigabitEthernet2/0/0]ospf cost 100
查看路由,R4的X=100,R2和R5的X=1,先比对Y,再比对X,Y相等,X小的优先,X相等进行负载。

3.2.3 X相同,Y不同
恢复R3在Area 1接口的开销后(意味着X相等),R4引入路由的开销设为20,即R5引入的路由Y=30,而R2和R5引入的路由Y=10
[R3-GigabitEthernet2/0/0]undo ospf cost
[R5-ospf-1] import-route direct type 2 cost 30
R3查看100.100.100.100路由,优选Y小的负载。
3.3 引入type 2的外部路由分析
比较Y,Y都为20,当Y相等时,对比X,X也都为1,因此负载分担,且路由的开销为20(Y)。
当增加R3在Area 1和Area 2区域接口的开销后,依旧按照Y开销小的优先,选择AR2引入的路由(走骨干区域)。
4 RFC2328(不兼容RFC1583)下的选路
4.1 引入type 1 的外部路由
R2,R4,R5配置引入type 1路由并设置cost 10
[R2-ospf-1]import-route direct type 1 cost 10
[R4-ospf-1]import-route direct type 1 cost 10
[R5-ospf-1]import-route direct type 1 cost 10
R3配置取消RFC1583兼容
[R3-ospf-1]undo rfc1583 compatible
4.1.1 X相同,Y相同
R3到外部路由的:X=1,Y=10。
查看R3的100.100.100.100路由,两条等价路由,一条骨干区域引入的路由选优失败。优选X为非骨干区域,再根据X+Y负载。
4.1.2 X不同,Y相同
修改(增加)R3在Area 1和Area 2接口的开销后(意味着X的开销增大),路由选路没有变化,只是增加了开销,证明先优选X为非骨干区域,再根据X+Y负载。
[R3-GigabitEthernet2/0/0]ospf cost 100
[R3-GigabitEthernet0/0/1]ospf cost 100
4.1.3 X相同,Y不同
恢复R3在Area 1和Area 2接口的开销后(意味着X相等),R5(非骨干区域)引入路由的开销设为20,即R5引入的路由Y=20,而R2和R4引入的路由Y=10
[R3-GigabitEthernet2/0/0]undo ospf cost
[R3-GigabitEthernet0/0/1]undo ospf cost
[R5-ospf-1]import-route direct type 1 cost 20
R3查看100.100.100.100路由,先优选X为非骨干区域,再根据X+Y优选。选择了X为非骨干区域且X+Y最小的R4。
4.1.4 X不同,Y不同,X+Y相同
恢复R4引入路由的开销为10,修改(增加)R3在Area 1和Area 0接口的开销后(意味着X的开销增大),即R3到R5引入的路由:X=1,Y=109,R3到R4、R5引入的路由为X=100,Y=10,那么路由就(X+Y)相等时负载
[R3-GigabitEthernet2/0/0]ospf cost 100
[R3-GigabitEthernet0/0/0]ospf cost 100
[R5-ospf-1]import-route direct type 1 cost 109
R3查看100.100.100.100路由,先优选X为非骨干区域,再根据X+Y负载。
4.1.5 引入type 1的外部路由分析ASBR位置
R3查看LSDB,引入type1的外部路由的FA都为0.0.0.0,即X等于去往ASBR的开销,都为1,Y都为10。比较X+Y,X+Y都等于11,因此负载分担,且开销为11(1+10)。但是AR2(ASBR)在骨干区域,比较X,非骨干区域路由的优先,因此ASBR为R4和R5的负载分担,这里试验结果是OSPF并没有对比区域ID。
[R1-ospf-1]undo rfc1583 compatible
对比配置AR1,依旧可以再骨干区域和非骨干区域之间负载。因此证明与ASBR在哪无关,而是该路由器去ASBR的路由经过的哪个区域,AR1去100.100.100.100的两条路由不管是R2引入还是R4和R5引入,去往ASBR的路由都是经过Area 0.
当增加R3在Area 1和Area 2区域接口的开销后,依旧是非骨干优先原则,选择非骨干区域的路由负载,开销为X+Y。
4.2 引入type 2的外部路由
R2,R4和R5同时引入type 2并都设置cost 20。
[R2-ospf-1]import-route direct type 2 cost 20
[R4-ospf-1]import-route direct type 2 cost 20
[R5-ospf-1]import-route direct type 2 cost 20
R3配置取消RFC1583兼容
[R3-ospf-1]undo rfc1583 compatible
4.2.1 X相同,Y相同
查看R3的100.100.100.100路由,两条等价路由,一条骨干区域引入的路由选优失败,非骨干优先原则。
4.2.2 X不同,Y相同
修改(增加)R3在Area 1接口的开销后(意味着X的开销增大)
[R3-GigabitEthernet2/0/0]ospf cost 100
查看路由,R4的X=100,R2和R5的X=1,
1. 非骨干优先原则,先选择X为非骨干路由R4和R5,
2. 比对Y,再比对X,Y相等,X小的优先,因此选择R5。
4.2.3 X相同,Y不同
恢复R3在Area 1接口的开销后(意味着X相等),R4引入路由的开销设为20,即R5引入的路由Y=30,而R2和R5引入的路由Y=10
[R3-GigabitEthernet2/0/0]undo ospf cost
[R5-ospf-1] import-route direct type 2 cost 30
R3查看100.100.100.100路由,优选Y小的负载。
1. 非骨干优先原则,先选择X为非骨干路由R4和R5,
2. 比对Y,Y小优先,因此选择R4。
5 RFC1583和RFC2328混用形成环路
设备互连IP段,如AR1与AR2互连为10.10.AB.A,AR1为10.10.12.1/24,AR2为10.10.12.2/24,ospf的router ID为A.A.A.A,如AR1的router ID为1.1.1.1
引入的路由为loop0地址,IP地址都为100.100.100.100/32
1. R2配置取消RFC1583兼容;
[R2-ospf-1]undo rfc1583 compatible
2. R3默认开启RFC1583兼容,G0/0/1的OSPF开销配置为100;
[R3-GigabitEthernet0/0/1]ospf cost 100
3. R1和R4都引入直连路由,type 2,cost20.
[R1-ospf-1]import-route direct type 2 cost 20
[R4-ospf-1]import-route direct type 2 cost 20
查看R2的100.100.100.100路由,cost 20,下一跳R3
查看R3的100.100.100.100路由,cost 20,下一跳R2
R2和R3之间形成环路。
5.1 环路分析
R2取消了RFC 1583兼容,因此优选非骨干区域的去往ASBR/FA的路由,而R3兼容RFC1583,根据外部路由开销选择路由,因为R3去往R4的开销变大,因此选择R2,形成环路,实际上,不论是引入的type 1和type 2,只要是R2选择取消RFC1583兼容,R3选择RFC兼容,而R2选择了非骨干区域去往ASBR/FA,R3选择开销小的。因此容易形成环路。
6 RFC2328与RFC1583总结
1. 对于外部路由,type 1优于type 2
2. 如果只是type 1选优,
a) RFC 1583优选X+Y最小的,X+Y相等则负载,只比较X+Y,不单独比较X大小或者Y大小
b) RFC 2328先比较X的区域,非骨干优先,其次再比较X+Y
3. 如果只是type 2选优,
a) RFC1583优选Y最小,如果Y相等,则比对X,优先X最小,X也相等则负载
b) RFC2328先比较X的区域,非骨干优先,再根据RFC1583比对
测试中未发现根据Area ID进行选择
且X的区域比较只当前路由器去往转发地址(FA)的路由(如果FA=0,则是去往ASBR的路由)是否经过骨干区域,而无关ASBR是否在骨干区域。