OSPF选路原则.docx
《OSPF选路原则.docx》由会员分享,可在线阅读,更多相关《OSPF选路原则.docx(13页珍藏版)》请在冰点文库上搜索。
OSPF选路原则
OSPF-3:
OSPF对外部路由的选路规则完全验证版
[实验目的]
验证OSPF中对外部路由路由的选择规则
OSPF在选择外部路由的时候,遵循的原则是:
[1]OE1优于OE2
[2]在同样的情况下,Cost越小越优先
[3]在cost相同的情况下,选择到达ASBR最优的路径
下面来通过实验来验证该规则:
[案例1]当外部路由都是OE1的情况
基本配置:
(注意ASBR的配置)
R1:
interfaceLoopback0
ipaddress1.1.1.1255.255.255.0
ipospfnetworkpoint-to-point
!
interfaceSerial1/0
ipaddress12.1.1.1255.255.255.0
!
interfaceSerial2/0
ipaddress13.1.1.1255.255.255.0
!
routerospf1
redistributeripsubnetsmetric-type1
network12.1.1.00.0.0.255area0
!
routerrip
version2
network13.0.0.0
distance109(因为RIP的AD大于OSPF,所以重发布到OSPF中,会发生路由抖动,故将其改小,详解看等级三实验手册1.3)
noauto-summary
!
R2:
interfaceLoopback0
ipaddress2.2.2.2255.255.255.0
ipospfnetworkpoint-to-point
!
interfaceSerial1/0
ipaddress24.1.1.2255.255.255.0
!
interfaceSerial2/0
ipaddress12.1.1.2255.255.255.0
!
routerospf1
network12.1.1.00.0.0.255area0
network24.1.1.00.0.0.255area0
!
R3:
interfaceLoopback0
ipaddress3.3.3.3255.255.255.0
ipospfnetworkpoint-to-point
!
interfaceSerial1/0
ipaddress13.1.1.3255.255.255.0
!
interfaceSerial2/0
ipaddress35.1.1.3255.255.255.0
!
routerrip
version2
network3.0.0.0
network13.0.0.0
network35.0.0.0
noauto-summary
!
R4:
interfaceLoopback0
ipaddress4.4.4.4255.255.255.0
ipospfnetworkpoint-to-point
!
interfaceSerial1/0
ipaddress45.1.1.4255.255.255.0
!
interfaceSerial2/0
ipaddress24.1.1.4255.255.255.0
!
routerospf1
network24.1.1.00.0.0.255area0
network45.1.1.00.0.0.255area1
!
R5:
interfaceLoopback0
ipaddress5.5.5.5255.255.255.0
ipospfnetworkpoint-to-point
!
interfaceSerial1/0
ipaddress35.1.1.5255.255.255.0
!
interfaceSerial2/0
ipaddress45.1.1.5255.255.255.0
!
routerospf1
redistributeripsubnetsmetric-type1
network45.1.1.00.0.0.255area1
!
routerrip
version2
network35.0.0.0
distance109
noauto-summary
!
监视和测试配置:
查看R2的路由表:
R2#shiprou
35.0.0.0/24issubnetted,1subnets
OE1
35.1.1.0[110/84]via12.1.1.1,00:
00:
25,Serial2/0
2.0.0.0/24issubnetted,1subnets
C
2.2.2.0isdirectlyconnected,Loopback0
3.0.0.0/24issubnetted,1subnets
OE2
3.3.3.0[110/84]via12.1.1.1,00:
00:
25,Serial2/0
24.0.0.0/24issubnetted,1subnets
C
24.1.1.0isdirectlyconnected,Serial1/0
12.0.0.0/24issubnetted,1subnets
C
12.1.1.0isdirectlyconnected,Serial2/0
13.0.0.0/24issubnetted,1subnets
OE2
13.1.1.0[110/84]via12.1.1.1,00:
00:
25,Serial2/0
45.0.0.0/24issubnetted,1subnets
OIA
45.1.1.0[110/128]via24.1.1.4,00:
00:
26,Serial1/0
查看R2的ospf数据库
R1#shiposda
Type-5ASExternalLinkStates
LinkID ADVRouter Age Seq# ChecksumTag
3.3.3.0 1.1.1.1 237 0x800000010x00D93A0
3.3.3.0 5.5.5.5 239 0x800000010x0061A20
13.1.1.0 1.1.1.1 509 0x800000010x0085880
13.1.1.0 5.5.5.5 239 0x800000010x000DF00
35.1.1.0 1.1.1.1 238 0x800000010x0066910
35.1.1.0 5.5.5.5 381 0x800000010x00EDF90
可以看到R2从两个ASBR都收到了LSA5的通告,但是R2选择了从R1走。
ASBR通告外部路由默认都是以metric值20通告出去的,但是内部接受的路由器看到是OE1的外部路由,会加上自己到ASBR的cost值来算出新的metric值,这样实际上在我们来看只要选择到ASBRcost值小的路由器就可以了。
[案例2]当外部路由都是OE2的情况
在ASBRR1和R5上更改重发布命令
R1(config)#routerospf1
R1(config-router)#redistributeripmetric-type2subnets
R5(config)#routerospf1
R5(config-router)#redistributeripmetric-type2subnets
(注意这里直接改为redistributerip subnets是没有效果的,因为前面已经将类型改为E1,这里没有指明类型,是不会改为OE2的;这样写只有原来没有作过重发布,类型默认才会为OE2)
监视和测试配置
R2#shiprou
35.0.0.0/24issubnetted,1subnets
OE2
35.1.1.0[110/20]via12.1.1.1,00:
00:
25,Serial2/0
2.0.0.0/24issubnetted,1subnets
C
2.2.2.0isdirectlyconnected,Loopback0
3.0.0.0/24issubnetted,1subnets
OE2
3.3.3.0[110/20]via12.1.1.1,00:
00:
25,Serial2/0
24.0.0.0/24issubnetted,1subnets
C
24.1.1.0isdirectlyconnected,Serial1/0
12.0.0.0/24issubnetted,1subnets
C
12.1.1.0isdirectlyconnected,Serial2/0
13.0.0.0/24issubnetted,1subnets
OE2
13.1.1.0[110/20]via12.1.1.1,00:
00:
25,Serial2/0
45.0.0.0/24issubnetted,1subnets
OIA
45.1.1.0[110/128]via24.1.1.4,00:
00:
26,Serial1/0
察看R2的OSPF数据库
R2#shiposda
OSPFRouterwithID(2.2.2.2)(ProcessID1)
Type-5ASExternalLinkStates
LinkID
ADVRouter
Age
Seq#
ChecksumTag
3.3.3.0
1.1.1.1
1540
0x800000010x005D360
3.3.3.0
5.5.5.5
1551
0x800000010x00E49E0
13.1.1.0
1.1.1.1
1540
0x800000010x0009840
13.1.1.0
5.5.5.5
1551
0x800000010x0090EC0
35.1.1.0
1.1.1.1
1540
0x800000010x00E98D0
35.1.1.0
5.5.5.5
1551
0x800000010x0071F50
可以看到R2对于每一个外部条目都从两个边界路由器分别学到了,让我们看一下它通过两个ASBR学到3.3.3.0这个路由条目的metric值是多少
R2#shiposdaex3.3.3.0
OSPFRouterwithID(2.2.2.2)(ProcessID1)
Type-5ASExternalLinkStates
RoutingBitSetonthisLSA
LSage:
1595
Options:
(NoTOS-capability,DC)
LSType:
ASExternalLink
LinkStateID:
3.3.3.0(ExternalNetworkNumber)
AdvertisingRouter:
1.1.1.1
LSSeqNumber:
80000001
Checksum:
0x5D36
Length:
36
NetworkMask:
/24
MetricType:
2(Largerthananylinkstatepath)
TOS:
0
Metric:
20
ForwardAddress:
0.0.0.0
ExternalRouteTag:
0
LSage:
1606
Options:
(NoTOS-capability,DC)
LSType:
ASExternalLink
LinkStateID:
3.3.3.0(ExternalNetworkNumber)
AdvertisingRouter:
5.5.5.5
LSSeqNumber:
80000001
Checksum:
0xE49E
Length:
36
NetworkMask:
/24
MetricType:
2(Largerthananylinkstatepath)
TOS:
0
Metric:
20
ForwardAddress:
0.0.0.0
ExternalRouteTag:
0
可以看到都是20,度量值一样,但是R2并没有作负载均衡,而是选择了从R1到达3.3.3.0网段,由于R2到ASBRR1的cost是64,到另一个ASBRR5的cost是128,所以选择R1是没有疑义的,现在我们将R2到R1的metric值改大,看看R2是否还选择R1
R2(config)#ints2/0
R2(config-if)#ipospfcost200
R2(config-if)#end
重启OSPF进程看结果
R2#clearipospro
ResetALLOSPFprocesses?
[no]:
y
R2#shiprou
Gatewayoflastresortisnotset
35.0.0.0/24issubnetted,1subnets
OE2
35.1.1.0[110/20]via24.1.1.4,00:
00:
20,Serial1/0
2.0.0.0/24issubnetted,1subnets
C
2.2.2.0isdirectlyconnected,Loopback0
3.0.0.0/24issubnetted,1subnets
OE2
3.3.3.0[110/20]via24.1.1.4,00:
00:
20,Serial1/0
24.0.0.0/24issubnetted,1subnets
C
24.1.1.0isdirectlyconnected,Serial1/0
12.0.0.0/24issubnetted,1subnets
C
12.1.1.0isdirectlyconnected,Serial2/0
13.0.0.0/24issubnetted,1subnets
OE2
13.1.1.0[110/20]via24.1.1.4,00:
00:
20,Serial1/0
45.0.0.0/24issubnetted,1subnets
OIA
45.1.1.0[110/128]via24.1.1.4,00:
00:
20,Serial1/0
可以看到R2此时选择了R4作为下一条,也就是接收了R5通告的外部路由条目
[案例3]E1和E2路由共存的情况
下面我们将R1通告的外部路由类型改为OE1,来验证OE1比OE2优先
R1(config-router)#redistributeripsubnetsmetric-type1
在R2上重启OSPF进程看结果
R2#clearipospro
ResetALLOSPFprocesses?
[no]:
y
R2#shiprou
Gatewayoflastresortisnotset
R2#shiprou
Gatewayoflastresortisnotset
35.0.0.0/24issubnetted,1subnets
OE1
35.1.1.0[110/220]via12.1.1.1,00:
00:
01,Serial2/0
2.0.0.0/24issubnetted,1subnets
C
2.2.2.0isdirectlyconnected,Loopback0
3.0.0.0/24issubnetted,1subnets
OE1
3.3.3.0[110/220]via12.1.1.1,00:
00:
01,Serial2/0
24.0.0.0/24issubnetted,1subnets
C
24.1.1.0isdirectlyconnected,Serial1/0
12.0.0.0/24issubnetted,1subnets
C
12.1.1.0isdirectlyconnected,Serial2/0
13.0.0.0/24issubnetted,1subnets
OE1
13.1.1.0[110/220]via12.1.1.1,00:
00:
01,Serial2/0
45.0.0.0/24issubnetted,1subnets
OIA
45.1.1.0[110/128]via24.1.1.4,00:
00:
02,Serial1/0
可以看到R2又一次选择了R1通告的外部路由,此时虽然到R5的cost小,但是没有考虑,
可见优先比较OE1和OE2是首要条件
最后总结一下:
(说法不同于开始的规则,只是更简单)
(1)OSPF中外部路由类型不同,优先选择OE1路由
(2)OSPF中外部路由类型相同,看到ASBR的cost值,越小越优先
[注:
实际实验效果是这样,也就是我们看拓扑图,可以这样分析;但是路由器实际处理过程还是本贴开始的那个规则更符合实际情况]
重要问题补充说明:
在案例一和案例二中,外部路由类型相同,此时路由器看到ASBR的cost值决定路径,实际上这是OSPF内部选路的问题,从哪里到达ASBR;而在OSPF内部选路时,第一个原则就是“O路由”>“OIA路由”,而案例二的后半步,在更改了到同一区域ASBR的cost值以后,可以发现走了从OIA路由学习到的ASBR,可见在对ASBR的选路,访问外部路由时,这个原则无效.