R1#sh ip os da
Type-5 AS External Link States
Link ID ADV Router Age Seq# Checksum Tag
3.3.3.0 1.1.1.1 237 0x80000001 0x00D93A 0
3.3.3.0 5.5.5.5 239 0x80000001 0x0061A2 0
13.1.1.0 1.1.1.1 509 0x80000001 0x008588 0
13.1.1.0 5.5.5.5 239 0x80000001 0x000DF0 0
35.1.1.0 1.1.1.1 238 0x80000001 0x006691 0
35.1.1.0 5.5.5.5 381 0x80000001 0x00EDF9 0
可以看到R2从两个ASBR都收到了LSA 5的通告,但是R2选择了从R1走。ASBR通告外部路由默认都是以metric值20通告出去的,但是内部接受的路由器看到是 O E1的外部路由,会加上自己到ASBR的cost值来算出新的metric值,这样实际上在我们来看只要选择到ASBR cost值小的路由器就可以了。
[案例2]当外部路由都是O E2的情况
在ASBR R1和R5上更改重发布命令
R1(config)#router ospf 1
R1(config-router)#redistribute rip metric-type 2 subnets
R5(config)#router ospf 1
R5(config-router)# redistribute rip metric-type 2 subnets
(注意这里直接改为 redistribute rip subnets是没有效果的,因为前面已经将类型改为E1,这里没有指明类型,是不会改为O E2的;这样写只有原来没有作过重发布,类型默认才会为O E2)
监视和测试配置
R2#sh ip rou
35.0.0.0/24 is subnetted, 1 subnets
O E2 35.1.1.0 [110/20] vi a 12.1.1 .1, 00:00:25, Serial2/0
2.0.0 .0/24 is subnetted, 1 subnets
C 2.2.2 .0 is directly connected, Loopback0
3.0.0 .0/24 is subnetted, 1 subnets
O E2 3.3.3 .0 [110/20] vi a 12.1.1 .1, 00:00:25, Serial2/0
24.0.0.0/24 is subnetted, 1 subnets
C 24.1.1.0 is directly connected, Serial1/0
12.0.0 .0/24 is subnetted, 1 subnets
C 12.1.1 .0 is directly connected, Serial2/0
13.0.0 .0/24 is subnetted, 1 subnets
O E2 13.1.1 .0 [110/20] vi a 12.1.1 .1, 00:00:25, Serial2/0
45.0.0.0/24 is subnetted, 1 subnets
O IA 45.1.1.0 [110/128] via 24.1.1.4, 00:00:26, Serial1/0
察看
R2
的
OSPF
数据库
R2#sh ip os da
OSPF Router with ID ( 2.2.2 .2) (Process ID 1)
Type-5 AS External Link States
Link ID ADV Router Age Seq# Checksum Tag
3.3.3
.0 1.1.1 .1 1540 0x80000001 0x005D36 0
3.3.3
.0 5.5.5 .5 1551 0x80000001 0x00E49E 0
13.1.1
.0 1.1.1 .1 1540 0x80000001 0x000984 0
13.1.1
.0 5.5.5 .5 1551 0x80000001 0x0090EC 0
35.1.1.0 1.1.1 .1 1540 0x80000001 0x00E98D 0
35.1.1.0 5.5.5 .5 1551 0x80000001 0x 0071F 5 0
可以看到
R2
对于每一个外部条目都从两个边界路由器分别学到了
,
让我们看一下它通过两个
ASBR
学到
3.3.3
.0
这个路由条目的
metric
值是多少
R2#sh ip os da ex 3.3.3 .0
OSPF Router with ID ( 2.2.2 .2) (Process ID 1)
Type-5 AS External Link States
Routing Bit Set on this LSA
LS age: 1595
Options: (No TOS-capability, DC)
LS Type: AS External Link
Link State ID: 3.3.3 .0 (External Network Number )
Advertising Router: 1.1.1 .1
LS Seq Number: 80000001
Checksum: 0x5D36
Length: 36
Network Mask: /24
Metric Type: 2 (Larger than any link state path)
TOS: 0
Metric: 20
Forward Address: 0.0.0 .0
External Route Tag: 0
LS age: 1606
Options: (No TOS-capability, DC)
LS Type: AS External Link
Link State ID: 3.3.3 .0 (External Network Number )
Advertising Router: 5.5.5 .5
LS Seq Number: 80000001
Checksum: 0xE49E
Length: 36
Network Mask: /24
Metric Type: 2 (Larger than any link state path)
TOS: 0
Metric: 20
Forward Address: 0.0.0 .0
External Route Tag: 0
可以看到都是
20
,度量值一样,但是
R2
并没有作负载均衡,而是选择了从
R1
到达
3.3.3
.0
网段,
由于
R2
到
ASBR R1
的
cost
是
64,
到另一个
ASBR R5
的
cost
是
128
,所以选择
R1
是没有疑义的,现在我们将
R2
到
R1
的
metric
值改大,看看
R2
是否还选择
R1
R2(config)#int s2/0
R2(config-if)#ip ospf cost 200
R2(config-if)#end
重启
OSPF
进程看结果
R2#clear ip os pro
Reset ALL OSPF processes? [no]: y
R2#sh ip rou
Gateway of last resort is not set
35.0.0.0/24 is subnetted, 1 subnets
O E2 35.1.1.0 [110/20] via 24.1.1.4, 00:00:20, Serial1/0
2.0.0 .0/24 is subnetted, 1 subnets
C 2.2.2 .0 is directly connected, Loopback0
3.0.0 .0/24 is subnetted, 1 subnets
O E2 3.3.3 .0 [110/20] via 24.1.1.4, 00:00:20, Serial1/0
24.0.0.0/24 is subnetted, 1 subnets
C 24.1.1.0 is directly connected, Serial1/0
12.0.0 .0/24 is subnetted, 1 subnets
C 12.1.1 .0 is directly connected, Serial2/0
13.0.0 .0/24 is subnetted, 1 subnets
O E2 13.1.1 .0 [110/20] via 24.1.1.4, 00:00:20, Serial1/0
45.0.0.0/24 is subnetted, 1 subnets
O IA 45.1.1.0 [110/128] via 24.1.1.4, 00:00:20, Serial1/0
可以看到
R2
此时选择了
R4
作为下一条,也就是接收了
R5
通告的外部路由条目
[案例3]E1和E2路由共存的情况
下面我们将
R1
通告的外部路由类型改为
O E1
,来验证
O E1
比
O E2
优先
R1(config-router)#redistribute rip subnets metric-type 1
在
R2
上重启
OSPF
进程看结果
R2#clear ip os pro
Reset ALL OSPF processes? [no]: y
R2#sh ip rou
Gateway of last resort is not set
R2#sh ip rou
Gateway of last resort is not set
35.0.0.0/24 is subnetted, 1 subnets
O E1 35.1.1.0 [110/220] vi a 12.1.1 .1, 00:00:01, Serial2/0
2.0.0 .0/24 is subnetted, 1 subnets
C 2.2.2 .0 is directly connected, Loopback0
3.0.0 .0/24 is subnetted, 1 subnets
O E1 3.3.3 .0 [110/220] vi a 12.1.1 .1, 00:00:01, Serial2/0
24.0.0.0/24 is subnetted, 1 subnets
C 24.1.1.0 is directly connected, Serial1/0
12.0.0 .0/24 is subnetted, 1 subnets
C 12.1.1 .0 is directly connected, Serial2/0
13.0.0 .0/24 is subnetted, 1 subnets
O E1 13.1.1 .0 [110/220] vi a 12.1.1 .1, 00:00:01, Serial2/0
45.0.0.0/24 is subnetted, 1 subnets
O IA 45.1.1.0 [110/128] via 24.1.1.4, 00:00:02, Serial1/0
可以看到
R2
又一次选择了
R1
通告的外部路由,此时虽然到
R5
的
cost
小,但是没有考虑,
可见优先比较
O E1
和O E2
是首要条件
最后总结一下:(说法不同于开始的规则,只是更简单)
(1)OSPF中外部路由类型不同,优先选择O E1路由
(2)OSPF中外部路由类型相同,看到ASBR的cost值,越小越优先
[注:实际实验效果是这样,也就是我们看拓扑图,可以这样分析;但是路由器实际处理过程还是本贴开始的那个规则更符合实际情况]
重要问题补充说明:
在案例一和案例二中,外部路由类型相同,此时路由器看到ASBR的cost值决定路径,实际上这是OSPF内部选路的问题,从哪 里到达ASBR;而在OSPF内部选路时,第一个原则就是“O路由”>“O IA路由”,而案例二的后半步,在更改了到同一区域ASBR的cost值以后,可以发现走了从O IA路由学习到的ASBR,可见在对ASBR的选路,访问外部路由时,这个原则无效.
更多精华帖,请见:[url]www.one-tom.com/bbs[/url]