OSPF的路由类型:
1 、O 域内路由
2 、OIA 域间路由
3 、OE1 域外路由,会累加METRIC值(默认20)
4 、OE2 域外路由,不累加METRIC值(默认20),由外部重分布进来默认使用OE2。
5 、ON1和ON2类似OE1和OE2,由NSSA的ASBR重发布而来,NSSA区域中的路由器没有LSA5,用LSA7算出的external路由,就标记为ON1/2
OE1和OE2的区别:
它们代表的是外部路由1和外部路由2,它们的区别就在于是否加内部路由(度量花销)。默认是OE2就是不加内部路由,假设我的网络只有一个出口,那么使用OE1和OE2都一样;
A、如果有多个ASBR宣告一条到达同一外部AS的外部路由时候用只需要比较域外部开销,只需考虑外部开销更小就可以了,不需要考虑内部开销。所以优先选择OE2。
B、单出口(ASBR),计不计算域内开销已经没有意义,所以默认OE2。
C、如果我们只有一个出口那么OE2就能帮我们解决所有问题,如果我们有多个出口这时我们可以使用OE1,它能够让我们在做路由决策的时候变得更加精确。因此多出口,建议用OE1。
下面来篇转载文章以加深印象:
如果在一个ospf域里面如果只有一个ASBR可以到达某个特定的外部路由(俗称:单点单向重分布),无论是做E1还是E2的重定向都会是带来同样的路径选择,在这种环境下两种类型的外部路由的区别只是在路由表上看到的Metric不同,其他就没有区别。不过如果在一个ospf域中有多个ASBR可以通往同一个外部路由(俗称:单点多向重分布),这种说法就不同了。今天要补充的就是这一问题。先看个拓扑。
这个拓扑是在一个ospf域中有两个ASBR通往同一个EIGRP AS,也就是二者都可以到达同一个外部路由。而对于OSPF域内部的路径来看,上面一条路径由于都是100M的链路,因此cost要远远低于下面的10M链路,这对于E1类型的外部路由来说,很明显在R6上会选择上面的路径来通向EIGRP AS,这个大家都明白。不过对于E2的外部路由来说,情况会有点变化。
先看第一种情况:
在R2和R3上分别做两个重定向,把EIGRP路由重定向到OSPF内部。二者采用完全相同的命令,我使用的是下面的命令:
redistribute eigrp 100 metric 100 subnets
在两个ASBR上都使用了这个命令之后,在R6的路由表中出现的信息如下:
O E2 211.1.12.0 [110/100] via 211.1.46.4, 00:01:22, FastEthernet0/0
O E2 211.1.13.0 [110/100] via 211.1.46.4, 00:01:22, FastEthernet0/0
O E2 192.168.1.1 [110/100] via 211.1.46.4, 00:01:23, FastEthernet0/0
所有的外部路由走的都是上面的链路,包括R1和R3之间的网段。原因和昨天所说的一样,由于两个ASBR上EIGRP重定向到OSPF域所使用的metric是相同的,因此无论是从上面的链路还是下面的链路送达R6的LSA所包含的metric都是相同的,这样选择哪条路径就主要依靠ospf内部的forward metric决定。
R6#sh ip route 192.168.1.1
Routing entry for 192.168.1.1/32
Known via "ospf 1", distance 110, metric 100, type extern 2, forward metric 2
Last update from 211.1.46.4 on FastEthernet0/0, 00:05:00 ago
Routing Descriptor Blocks:
* 211.1.46.4, from 192.168.2.2, 00:05:00 ago, via FastEthernet0/0
Route metric is 100, traffic share count is 1
上面这个命令可以看到,通过上面的链路的forward metric是2,而从下面链路送达的同一LSA的forward metric应该是20,也就是两个10M链路的cost之和。这样很明显和采用E1类型的路由是相同的结果。不过如果两个ASBR上重定向定义的metric不同,那结果将会改变。
下面介绍第二种情况:
在R2上还是使用命令redistribute eigrp 100 metric 100 subnets做重定向,不过在R3上则把metric改为10,也就是使用命令redistribute eigrp 10 metric 100 subnets做重定向。这样在R6上看到的路由将会和上面的不同。
O E2 211.1.12.0 [110/10] via 211.1.56.5, 00:00:05, FastEthernet0/1
O E2 211.1.13.0 [110/10] via 211.1.56.5, 00:00:05, FastEthernet0/1
O E2 192.168.1.1 [110/10] via 211.1.56.5, 00:00:05, FastEthernet0/1
这时候所有外部路由都指向R5,因此这条路径送过来的LSA所携带的metric值为10,小于上面链路的metric 100,这个时候这些外部路由在R6上面看到的ospf内部forward metric为20。
R6#sh ip route 192.168.1.1
Routing entry for 192.168.1.1/32
Known via "ospf 1", distance 110, metric 10, type extern 2, forward metric 20
Last update from 211.1.56.5 on FastEthernet0/1, 00:02:24 ago
Routing Descriptor Blocks:
* 211.1.56.5, from 192.168.3.3, 00:02:24 ago, via FastEthernet0/1
Route metric is 10, traffic share count is 1
那如果把R3的重定向使用的metric改为90又会怎样呢?(90+20>100+2)
R6#sh ip route 192.168.1.1
Routing entry for 192.168.1.1/32
Known via "ospf 1", distance 110, metric 90, type extern 2, forward metric 20
Last update from 211.1.56.5 on FastEthernet0/1, 00:00:00 ago
Routing Descriptor Blocks:
* 211.1.56.5, from 192.168.3.3, 00:00:00 ago, via FastEthernet0/1
Route metric is 90, traffic share count is 1
R6上通向192.168.1.1的路径还是指向R5,metric 90。
这样做的目的很明显,就是证明两种类型的外部路由都是先比较路由携带的metric,E1的很好理解,整个路径的metric累加,这样会选择最快达到外部路由的路径,当然这个是在所有ASBR使用相同的metric做重定向的基础上得出的结论,否则还是要看不同的ASBR使用的metric能否起到决定性的作用。
而对于E2类型的外部路由,由于在ospf域内不会改变metric,因此在ASBR上重定向使用的metric将会是起到决定性作用的,使用低metric的ASBR将会是OSPF域内通往该外部路由的第一选择,而在ospf域内的路径选择将由forward metric决定。