一、拓扑图:
二、配置及说明:
1、
配置完各接口的IP和ospf 协议。我是用R0路由器配置成帧中继交换机的,这样更有利于我们更好地理解帧中继。注意:在R1和R4走FR接口中,可以定义接口类型 ip ospf network broadcast 或者可以手动指定两个接口的邻居,不然的话会起不了邻居。
2、
然后我们可以进各路由的接口下去手动指定cost 值,命令是进接口下:ip ospf cost 注意:以太网口的默认COST值为1。广域网口默认为64(ospf 的默认值100除以接口带宽1.544=64可以去show 接口查询。)路由器源接口到别的网络时,是要取该接口的COST值大小做为路径取向。比如说:R3中S1/0 和S1/1如果S1/0不手动指定COST值。默认为64。那么R3到别的路由不会取S1/0这个接口。它会SPF计算COST小的接口出去。
3、我们看一下R3到192.168.1.0网段的COST值对比图:
编号
|
路径
|
COST值
|
1
|
R3 ------> R2 ------> R1 ------> 目标网络
|
13
|
2
|
R3 ------> R2 ------> R4 ------> R1 ------> 目标网络
|
7
|
3
|
R3 ------> R4 ------> R1 ------> 目标网络
|
8
|
4
|
R3 ------> R4 ------> R2 ------> R1 ------> 目标网络
|
18
|
4
、通过常理分析编号2的cost最小,应该会取编号2这条路走,但事实却不是,下面来看一下R3的路由:
R3#show ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route
Gateway of last resort is not set
172.16.0.0/30 is subnetted, 5 subnets
O IA 172.16.255.0 [110/12] via 172.16.255.5, 00:00:02, Serial1/0
C 172.16.255.4 is directly connected, Serial1/0
C 172.16.255.8 is directly connected, Serial1/1
O IA 172.16.255.12 [110/6] via 172.16.255.5, 00:00:02, Serial1/0
O 172.16.255.16 [110/4] via 172.16.255.5, 00:00:02, Serial1/0
O IA 192.168.1.0/24 [110/7] via 172.16.255.5, 00:00:02, Serial1/0
|
5
、我们traceroute 看一下:
R3#traceroute 192.168.1.0
Type escape sequence to abort.
Tracing the route to 192.168.1.0
|
6
、发现走R2之后就直接丢给R1,而不去按照172.16.255.0网段这边的COST值为10。而去走R4(此路径也是SPF算出来的)
那么原因是什么:
当R3把数据包转发给R2的时候,R2发现此数据包是要到达其它网络。因此R2不会将数据包再转发给其相同区域的其它路由器。因为R2自己是ABR,他认为到达其它区域的数据包,需要直接转发给骨干区域。而自己也恰巧与骨干区域相连。因此R2直接将数据包转发给骨干区域的R1路由器。正是因为这个原因,所以我们查看的路由跟实际转发数据包的路径不一致。
7
、下面我们再来看一下R3-R2-R4(原本COST为:4,因为我定义了R2的F0/0 COST为2,注意:这段的COST不是1,因为以太网它会按出局接口来算,不是选这个网段的最小的COST值来进行路径的叠加),R3-R4(原本COST为5)。我们把R2的f0/0 cost值再改为3。这样就是两条都是5,改完之后。我们show ip route 看一下:
R3#show ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route
Gateway of last resort is not set
172.16.0.0/30 is subnetted, 5 subnets
O IA 172.16.255.0 [110/12] via 172.16.255.5, 00:00:04, Serial1/0
C 172.16.255.4 is directly connected, Serial1/0
C 172.16.255.8 is directly connected, Serial1/1
O IA 172.16.255.12 [110/7] via 172.16.255.10, 00:00:04, Serial1/1
[110/7] via 172.16.255.5, 00:00:04, Serial1/0
O 172.16.255.16 [110/5] via 172.16.255.5, 00:00:04, Serial1/0
O IA 192.168.1.0/24 [110/8] via 172.16.255.10, 00:00:04, Serial1/1
[110/8] via 172.16.255.5, 00:00:04, Serial1/0
R3#
|
发现到192.168.1.0这段段分别出现了两条路径的负载均衡。
总结:OSPF metric (cost)值:只是提取到同一网络最小 Metrics值,再和自己计算的链路COST, 做累加。需要注意的是:如果这台路由器是源地址。那么它去往的路由会选择这台路由器COST值最小的接口出去。以太网链路不会去选择同一网络的最小值。而是看从哪个口出去的接口的COST值。OSPF可以用修改接口COST值做链路的均衡。
本文转自wxs-163 51CTO博客,原文链接:http://blog.51cto.com/supercisco/252206