Network系列:OSPF特殊区域实验(六)
OSPF特殊区域实验
1. 拓扑图
2. 初始配置
R1
interface GigabitEthernet0/0/0
ip address 10.1.12.1 255.255.255.0
interface LoopBack0
ip address 11.11.11.11 255.255.255.255
ip ip-prefix 1 index 10 permit 11.11.11.11 32
route-policy test permit node 10
if-match ip-prefix 1
ospf 1 router-id 1.1.1.1
import-route direct route-policy test
area 0.0.0.1
network 10.1.12.0 0.0.0.255
R2
interface GigabitEthernet0/0/0
ip address 10.1.12.2 255.255.255.0
interface GigabitEthernet0/0/1
ip address 10.1.23.2 255.255.255.0
ospf 1 router-id 2.2.2.2
area 0.0.0.0
network 10.1.23.0 0.0.0.255
area 0.0.0.1
network 10.1.12.0 0.0.0.255
R3
interface GigabitEthernet0/0/0
ip address 10.1.23.3 255.255.255.0
interface GigabitEthernet0/0/1
ip address 10.1.34.3 255.255.255.0
ospf 1 router-id 3.3.3.3
area 0.0.0.0
network 10.1.23.0 0.0.0.255
area 0.0.0.2
network 10.1.34.0 0.0.0.255
R4
interface GigabitEthernet0/0/0
ip address 10.1.34.4 255.255.255.0
interface LoopBack0
ip address 44.44.44.44 255.255.255.255
ip ip-prefix 1 index 10 permit 44.44.44.44 32
route-policy test permit node 10
if-match ip-prefix 1
ospf 1 router-id 4.4.4.4
import-route direct route-policy test
area 0.0.0.2
network 10.1.34.0 0.0.0.255
3. 实验分析
3.1 查看LSDB数据库
先查看R1的LSDB,有一类、二类、三类、四类以及五类LSA。
再查看R2的LSDB,有两个区域,Area 1区域的LSA和R1的是相同的。看Area 0的LSDB,拥有两条四类LSA,因为R1和R4都有从外部引入路由。看Area 1,通告给R1会生成一条如何去往R4的四类LSA。
查看R3的LSDB,Area 0的LSA和R2的Area 0也是相同的。看Area 0的LSDB,拥有两条四类LSA,因为R1和R4都有从外部引入路由。看Area 2,通告给R4会生成一条如何去往R1的四类LSA。
查看R4的LSDB,有一类、二类、三类、四类以及五类LSA。
3.2 配置特殊区域
3.2.1 配置Stub区域
- Stub区域的ABR不向Stub区域内传播它接收到的AS外部路由,Stub区域中路由器的LSDB、路由表规模都会大大减小。
- 为保证Stub区域能够到达AS外部,Stub区域的ABR将生成一条缺省路由(使用3类LSA描述)。
配置Stub区域时需要注意下列几点:
- 骨干区域不能被配置为Stub区域。
- Stub区域中的所有路由器都必须将该区域配置为Stub。
- Stub区域内不能引入也不接收AS外部路由。
- 虚连接不能穿越Stub区域。
在R1和R2的Area 1上配置了Stub区域,现在再看看LSDB的变化
从LSDB来看,现在已经没了五类的LSA,在Stub区域中不会将五类LSA和四类LSA注入Area 1。但会下发一条以三类描述的默认路由LSA到Stub区域内。域间路由三类LSA还是依然存在,也就是Stub区域只允许存在一、二、三类LSA。
查看路由表,虽然Area 1内的路由器虽然不知道到达AS外部的具体路由,但是可以通过该默认路由到达AS外部。
3.2.2 配置Totally Stub区域
- Totally Stub区域既不允许AS外部路由在本区域内传播,也不允许区域间路由在本区域内传播。
- Totally Stub区域内的路由器通过本区域ABR下发的缺省路由(使用3类LSA描述)到达其他区域,以及AS外部。
将Area 1配置为Totally Stub区域后再查看LSDB,此时在Stub区域的基础上还少了域间路由。也就是Totally Stub区域只允许存在一、二类LSA以及一条默认路由三类LSA。
查看路由表,之前的域间路由已经没了,只有一条默认路由。Totally Stub区域访问其他区域及AS外部是通过默认路由实现的。AS外部、其他OSPF区域的拓扑及路由变化不会导致Totally Stub区域内的路由器进行路由重计算,减少了设备性能浪费。
将Area 1 Totally Stub区域还原为常规区域,再进行后续实验!
3.2.3 配置NSSA区域
原先的Stub区域和Totally Stub区域不能满足一些需求
- OSPF规定Stub区域是不能引入外部路由的,这样可以避免大量外部路由引入造成设备资源消耗。
- 对于既需要引入外部路由又要避免外部路由带来的资源消耗的场景,Stub和Totally Stub区域就不能满足需求了。
NSSA区域特性
NSSA区域能够引入外部路由,同时又不会学习来自OSPF网络其它区域引入的外部路由。
下面先观察R1、R4的LSDB情况
R1的LSDB
R4的LSDB
从双方来看,目前都能去往各自的连接的外部路由,下面对Area 2配置成NSSA区域,然后查看R4的LSDB。R4能够引进44.44.44.44/32的外部路由,但无法学习到R1引进的11.11.11.11/32的外部路由,且无法学习四、五类LSA,但同时R3给R4下发一条以七类LSA描述的默认路由。
下面在R3查看LSDB,NSSA区域的ABR会将七类LSA转化为五类LSA,并将该LSA注入到骨干区域,从而在整个OSPF域内泛洪。
所以在R2、R1查看也会看到R3在区域内泛洪去往44.44.44.44/32网络的五类LSA
R2
R1
所以,当area 2被配置为NSSA后,R3将不能再把四、五类LSA泛洪到area 2中,因此R1引入的外部路由11.11.11.11/32不会被注入到area 2中。当然为了让NSSA内的路由器到达AS外部,R3自动下发一条使用七类LSA描述的默认路由。R3不会阻挡3类LSA进入NSSA,所以R4依然能够学习到去往其他区域的路由。
另一方面,NSSA允许本区域内的路由器执行路由重发布动作,这一点与Stub区域存在较大的区别。R4上执行路由重发布动作,将44.44.44.44/32这条外部路由引入OSPF,这条外部路由被引入后是以七类LSA的形式在NSSA内泛洪,并且不允许直接进入骨干区域area 0。另一方面,NSSA的ABR R3会把七类LSA转换成五类LSA,然后在骨干区域中泛洪,因此R1、R2都能学习到外部路由44.44.44.44/32。
综上,NSSA的使用场景是:这个区域不希望学习到其他区域重发布进OSPF的域外路由,但是该区域自己依然有注入域外路由的需求或能力。
查看一下R4路由表中的OSPF路由
R4的路由表中,已经看不到11.11.11.11/32这条AS外部路由了,但是R4依然是能够访问11.11.11.11/32的,因为NSSA的ABR R3为NSSA下发了一条七类的默认路由,通过这条默认路由,R4依然能够穿越骨干区域访问AS外部网络。
查看一下R3路由表中的OSPF路由
R3的路由表中,有一条11.11.11.11/32的外部路由,这是通过五类LSA计算得出的。还有一条44.44.44.44/32的外部路由,这是通过七类LSA计算得出的(因此在路由表中的标记为O_NSSA)。当然R3作为NSSA 的ABR,是不允许把七类LSA直接注入骨干区域的,而是会执行一个七转五的动作,把七类LSA转换成五类LSA,这是因为七类LSA只能存在于NSSA中。
查看一下R2路由表中的OSPF路由
有两条AS外部路由,分别是11.11.11.11/32和44.44.44.44/32,其中11.11.11.11/32是由R1引入的,而44.44.44.44/32是经由R3执行七类LSA转五类LSA后引入的。
3.2.4 配置Totally NSSA区域
在上面的需求中,area 2变成一个非常特殊的区域:NSSA,该区域内泛洪的LSA其实是可以进一步减少的。既然area 2已经从R3获取一条默认路由,通过这条默认路由能够穿越骨干区域到达AS外部,那么为什么不进一步把描述区域间路由的三类LSA也一并抑制掉呢?这就出现了最后一种特殊区域:Totally-NSSA。
一旦将area 2变成Totally NSSA,area 2的ABR——也就是R3将会阻挡三类、四类和五类LSA进入该区域,同时还会向该区域下发一条使用三类LSA描述默认路由。当然该区域依然是可以从区域本地注入外部路由的。
很明显,已经不存在区域间路由(三类LSA)