ospf的七类lsa存在于_OSPF抑制7类LSA的转发

OSPF有11种LSA,其中7类的LSA被用于特殊区域之中,OSPF属于链路状态协议,任何一台路由器都知道每一个LSA是始发于哪一台路由器,如果无法去往那台始发路由器,则会造成路由的不可用,本文就设计一个环境,用来探讨这个问题。

实验拓扑

环境介绍按照如图所示配置好基础的环境。其中区域1是NSSA区域。

R1上创建一个loopback接口,地址是172.16.10.1/24不宣告进OSPF。

在R1上通过重分布的方式将该环回接口放入OSPF。

在R2上禁止R1的地址进入其他区域。

观察R4的路由表,并且找到解决方法。

基础配置

R1的配置interface Loopback0

ip address 1.1.1.1 255.255.255.0

ip ospf 1 area 1

!

interface Loopback10

ip address 172.16.10.1 255.255.255.0

!

interface Ethernet0/0

ip address 192.168.12.1 255.255.255.0

ip ospf 1 area 1

!

router ospf 1

area 1 nssa

redistribute connected subnets

R2的配置interface Loopback0

ip address 2.2.2.2 255.255.255.0

ip ospf 1 area 0

!

interface Ethernet0/0

ip address 192.168.12.2 255.255.255.0

ip ospf 1 area 1

!

interface Ethernet0/1

ip address 192.168.23.2 255.255.255.0

ip ospf 1 area 0

!

router ospf 1

area 1 nssa

R3的配置interface Loopback0

ip address 3.3.3.3 255.255.255.0

ip ospf 1 area 0

!

interface Ethernet0/0

ip address 192.168.23.3 255.255.255.0

ip ospf 1 area 0

!

interface Ethernet0/1

ip address 192.168.34.3 255.255.255.0

ip ospf 1 area 2

R4的配置interface Loopback0

ip address 4.4.4.4 255.255.255.0

ip ospf 1 area 2

!

interface Ethernet0/1

ip address 192.168.34.4 255.255.255.0

ip ospf 1 area 2

操作和观察

首先观察R4的OSPF路由表R4#sh ip route ospf

O IA 192.168.12.0/24 [110/30] via 192.168.34.3, 00:16:42, Ethernet0/1

1.0.0.0/32 is subnetted, 1 subnets

O IA    1.1.1.1 [110/31] via 192.168.34.3, 00:15:22, Ethernet0/1

2.0.0.0/32 is subnetted, 1 subnets

O IA    2.2.2.2 [110/21] via 192.168.34.3, 00:20:37, Ethernet0/1

3.0.0.0/32 is subnetted, 1 subnets

O IA    3.3.3.3 [110/11] via 192.168.34.3, 00:20:37, Ethernet0/1

172.16.0.0/24 is subnetted, 1 subnets

O E2    172.16.10.0 [110/20] via 192.168.34.3, 00:15:17, Ethernet0/1

O IA 192.168.23.0/24 [110/20] via 192.168.34.3, 00:20:37, Ethernet0/1

目前路由表属于正常的状态,下面我们想办法让1.1.1.1的条目消失。大家应该都还记得area range这个命令吧,是在ABR上用来汇总本区域的路由的,其实这条命令也有禁止路由的用法,在R2上输入如下命令:R2(config)#router ospf 1

R2(config-router)#area 1 range 1.1.1.1 255.255.255.255 not-advertise

目前我们已经禁止了1.1.1.1这个条目离开区域1了,下面我们去R4上确认一下是不是成功了。R4#sh ip route ospf

O IA 192.168.12.0/24 [110/30] via 192.168.34.3, 00:19:30, Ethernet0/1

2.0.0.0/32 is subnetted, 1 subnets

O IA    2.2.2.2 [110/21] via 192.168.34.3, 00:23:24, Ethernet0/1

3.0.0.0/32 is subnetted, 1 subnets

O IA    3.3.3.3 [110/11] via 192.168.34.3, 00:23:24, Ethernet0/1

O IA 192.168.23.0/24 [110/20] via 192.168.34.3, 00:23:24, Ethernet0/1

我们可以发现R4上面确实1.1.1.1这条条目不见了,但是另外一条172.16.10.0/24的路由也不见了,但是我们并没有禁止这个条目。下面我们查看一下OSPF的数据库。R4#sh ip ospf database external

OSPF Router with ID (4.4.4.4) (Process ID 1)

Type-5 AS External Link States

LS age: 1186

Options: (No TOS-capability, DC)

LS Type: AS External Link

Link State ID: 172.16.10.0 (External Network Number )

Advertising Router: 2.2.2.2

LS Seq Number: 80000003

Checksum: 0xE5E5

Length: 36

Network Mask: /24

Metric Type: 2 (Larger than any link state path)

TOS: 0

Metric: 20

Forward Address: 1.1.1.1

External Route Tag: 0

可以发现这个172.16.10.0在OSPF的数据库中好着呢,那为啥路由表里面消失不见了,请注意倒数第二行,这边有个forward address的值,OSPF会去检查转发地址是否存在,如果不存在了,那么这条LSA是不会被OSPF放进路由表的。

解决方法

在这张图里面,本来172.16.10.0是7类的LSA进入到NSSA区域,然后由R2转换成5类的LSA再传递向其他的区域,但是R2在转换的时候,并没有修改默认的Forward Address,所以导致其他路由器如果因为某种原因无法学习到这个转发地址,就会无法访问OSPF的外部条目,解决这个问题的关键就在于R2。让R2翻译7类LSA的命令如下:R2(config)#router ospf 1

R2(config-router)#area 1 nssa translate type7 suppress-fa

然后我们再来看R4的OSPF路由表

R4#sh ip route ospf

O IA 192.168.12.0/24 [110/30] via 192.168.34.3, 00:26:19, Ethernet0/1

2.0.0.0/32 is subnetted, 1 subnets

O IA    2.2.2.2 [110/21] via 192.168.34.3, 00:30:13, Ethernet0/1

3.0.0.0/32 is subnetted, 1 subnets

O IA    3.3.3.3 [110/11] via 192.168.34.3, 00:30:13, Ethernet0/1

172.16.0.0/24 is subnetted, 1 subnets

O E2    172.16.10.0 [110/20] via 192.168.34.3, 00:00:36, Ethernet0/1

O IA 192.168.23.0/24 [110/20] via 192.168.34.3, 00:30:13, Ethernet0/1

我们就可以发现172.16.10.0这个条目回来了,但是1.1.1.1这个条目没有了。我们再查看OSPF的数据库。R4#sh ip ospf database external

OSPF Router with ID (4.4.4.4) (Process ID 1)

Type-5 AS External Link States

Routing Bit Set on this LSA

LS age: 88

Options: (No TOS-capability, DC)

LS Type: AS External Link

Link State ID: 172.16.10.0 (External Network Number )

Advertising Router: 2.2.2.2

LS Seq Number: 80000004

Checksum: 0xB11D

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

可以发现Forward Address发生了改变,变成了0.0.0.0,而0.0.0.0的意思就是指的发送这个LSA的那台路由器自己,再看一下是哪台路由器发送的这个LSA,Advertising Router显示的是2.2.2.2,所以2.2.2.2是可达的,那么这个LSA的条目是可以经过SPF计算后放入OSPF的路由表的。

总结

遇到这种问题,要善于观察,透过现象看本质,就可以发现问题的所在,然后利用各种网络资源,自己就可以搞定这样的问题了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值