上篇文章写了5类的LSA的转发地址,相对来说7类没什么特别的,不同的地址在于,7类的LSA活动于nssa区域,lsa的格式跟5类完全一样,唯一的内容不同的就是转发地址不同。在7类中,转发地址因为接口不同而不同。

   如果路由器上启用了ospf,并且有loopback口,则FA地址==loopback 地址,如果不止一个环回口,则:

FA==最后network进ospf进程的loopback口。

   如果没有loopback口,则取最后network进ospf进程的物理接口。

看实验吧

 

 
  
  1. R2: 
  2.  
  3. router ospf 100 
  4.  log-adjacency-changes 
  5.  area 1 nssa 
  6.  network 12.1.1.2 0.0.0.0 area 0 
  7.  network 23.1.1.2 0.0.0.0 area 1 

 

 
  
  1. R3: 
  2.  
  3. interface Loopback0 
  4.  ip address 192.168.1.1 255.255.255.0 
  5. interface Loopback1 
  6.  ip address 192.168.2.1 255.255.255.0 
  7.  
  8. interface Serial0/0 
  9.  ip address 23.1.1.3 255.255.255.0 
  10.  serial restart-delay 0 
  11.  
  12. router ospf 100 
  13.  log-adjacency-changes 
  14.  area 1 nssa 
  15.  redistribute rip subnets 
  16.  
  17.  network 23.1.1.3 0.0.0.0 area 1 
  18. router rip 
  19.  version 2 
  20.  network 192.168.1.0 
  21.  network 192.168.2.0 
  22.  no auto-summary 

 

看,下一跳地址是23.1.1.3,此时仍然没有启用loopback口。

然后:

 

 
  
  1. R3: 
  2.  
  3. interface Loopback9 
  4.  ip address 3.3.3.3 255.255.255.0 
  5.  
  6. router ospf 100 
  7.  log-adjacency-changes 
  8.  area 1 nssa 
  9.  redistribute rip subnets 
  10.  network 3.3.3.3 0.0.0.0 area 1 
  11.  network 23.1.1.3 0.0.0.0 area 1 

 

 

变成了环回品的地址了,然后,再增加一个环回口,这个转发地址就会一直变。

注意一点,在NSSA区域中,转发地址的选择原则会影响路由选路。

实验:

 

 

 

 
  
  1. R2: 
  2.  
  3. router ospf 100 
  4.  router-id 2.2.2.2 
  5.  log-adjacency-changes 
  6.  area 1 nssa 
  7.  network 12.1.1.2 0.0.0.0 area 0 
  8.  network 24.1.1.2 0.0.0.0 area 1 

 

 
  
  1. R3: 
  2.  
  3. router ospf 100 
  4.  router-id 3.3.3.3 
  5.  log-adjacency-changes 
  6.  area 1 nssa 
  7.  network 13.1.1.3 0.0.0.0 area 0 
  8.  network 34.1.1.3 0.0.0.0 area 1 

 

 
  
  1. R4: 
  2.  
  3. router ospf 100 
  4.  router-id 4.4.4.4 
  5.  log-adjacency-changes 
  6.  area 1 nssa 
  7.  redistribute rip subnets 
  8.  network 24.1.1.4 0.0.0.0 area 1 
  9.  network 34.1.1.4 0.0.0.0 area 1 
  10. /*注意我network的顺序*/ 
  11. router rip 
  12.  version 2 
  13.  network 192.168.1.0 
  14.  no auto-summary 

在看路由表之前,先想一下,如拓扑中显示一样,两个链路的cost应该是一样的吧,那应该去往192.168.1.0这个网络的负载均衡吧?

但是:

 

显示只有一条链路,并且FA地址是:

 

应该是有两条相同代价的链路的,为什么只选了一条,并且这一条是怎么选的?原因就是我们将接口network进ospf的顺序问题。如果我们改一下顺序:

 

 
  
  1. R4: 
  2. router ospf 100 
  3.  router-id 4.4.4.4 
  4.  log-adjacency-changes 
  5.  area 1 nssa 
  6.  redistribute rip subnets 
  7. network 34.1.1.4 0.0.0.0 area 1 
  8. network 24.1.1.4 0.0.0.0 area 1 

那么:

 

原因在于OSPF是通过FA地址计算去往目的网络的路由的。

建议最好是启用一个loopback口。

看看启用了loopback口后的作用:

 

 
  
  1. R4: 
  2.  
  3. r4(config)#int lo1 
  4. r4(config-if)#ip add 4.4.4.4 255.255.255.0 
  5. r4(config)#router ospf  100 
  6. 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的抑制

 

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

 将type 7中的转发地址都抑制成0.0.0.0。