上篇文章写了5类的LSA的转发地址,相对来说7类没什么特别的,不同的地址在于,7类的LSA活动于nssa区域,lsa的格式跟5类完全一样,唯一的内容不同的就是转发地址不同。在7类中,转发地址因为接口不同而不同。
如果路由器上启用了ospf,并且有loopback口,则FA地址==loopback 地址,如果不止一个环回口,则:
FA==最后network进ospf进程的loopback口。
如果没有loopback口,则取最后network进ospf进程的物理接口。
看实验吧
- R2:
- router ospf 100
- log-adjacency-changes
- area 1 nssa
- network 12.1.1.2 0.0.0.0 area 0
- network 23.1.1.2 0.0.0.0 area 1
- R3:
- interface Loopback0
- ip address 192.168.1.1 255.255.255.0
- !
- interface Loopback1
- ip address 192.168.2.1 255.255.255.0
- !
- interface Serial0/0
- ip address 23.1.1.3 255.255.255.0
- serial restart-delay 0
- !
- router ospf 100
- log-adjacency-changes
- area 1 nssa
- redistribute rip subnets
- network 23.1.1.3 0.0.0.0 area 1
- !
- router rip
- version 2
- network 192.168.1.0
- network 192.168.2.0
- no auto-summary
- !
看,下一跳地址是23.1.1.3,此时仍然没有启用loopback口。
然后:
- R3:
- interface Loopback9
- ip address 3.3.3.3 255.255.255.0
- router ospf 100
- log-adjacency-changes
- area 1 nssa
- redistribute rip subnets
- network 3.3.3.3 0.0.0.0 area 1
- network 23.1.1.3 0.0.0.0 area 1
变成了环回品的地址了,然后,再增加一个环回口,这个转发地址就会一直变。
注意一点,在NSSA区域中,转发地址的选择原则会影响路由选路。
实验:
- R2:
- !
- router ospf 100
- router-id 2.2.2.2
- log-adjacency-changes
- area 1 nssa
- network 12.1.1.2 0.0.0.0 area 0
- network 24.1.1.2 0.0.0.0 area 1
- R3:
- router ospf 100
- router-id 3.3.3.3
- log-adjacency-changes
- area 1 nssa
- network 13.1.1.3 0.0.0.0 area 0
- network 34.1.1.3 0.0.0.0 area 1
- R4:
- router ospf 100
- router-id 4.4.4.4
- log-adjacency-changes
- area 1 nssa
- redistribute rip subnets
- network 24.1.1.4 0.0.0.0 area 1
- network 34.1.1.4 0.0.0.0 area 1
- /*注意我network的顺序*/
- !
- router rip
- version 2
- network 192.168.1.0
- no auto-summary
在看路由表之前,先想一下,如拓扑中显示一样,两个链路的cost应该是一样的吧,那应该去往192.168.1.0这个网络的负载均衡吧?
但是:
显示只有一条链路,并且FA地址是:
应该是有两条相同代价的链路的,为什么只选了一条,并且这一条是怎么选的?原因就是我们将接口network进ospf的顺序问题。如果我们改一下顺序:
- R4:
- router ospf 100
- router-id 4.4.4.4
- log-adjacency-changes
- area 1 nssa
- redistribute rip subnets
- network 34.1.1.4 0.0.0.0 area 1
- network 24.1.1.4 0.0.0.0 area 1
那么:
原因在于OSPF是通过FA地址计算去往目的网络的路由的。
建议最好是启用一个loopback口。
看看启用了loopback口后的作用:
- R4:
- r4(config)#int lo1
- r4(config-if)#ip add 4.4.4.4 255.255.255.0
- r4(config)#router ospf 100
- r4(config-router)#network 4.4.4.4 0.0.0.0 area 1
实现了负载均衡。
使用环回口比物理接口会更加有效。
如果没有使用环回口,这时R3显示FA地址是34.1.1.4,当R4的 s0/1接口出了问题时,R3的数据库中却一直保持FA地址34.1.1.4,而如果使用环回口,则当物理链路出现问题时,可以及时切换。
另外有一个特别要注意的是,在R1上,显示:
有两个ABR,为什么通告者只有一个,这里是看router-id 的大小的,由router-id大的来通告这条LSA。
最后一个实验,7转5的抑制
- r3(config-router)#area 1 nssa translate type7 suppress-fa
将type 7中的转发地址都抑制成0.0.0.0。