FA是Forwarding Address的简写。FA是ASBR通告的TYPE 5 LSA中的字段,它的作用是告诉OSPF域内的路由器如何能够更快捷地到达LSA 5所通告路由的下一跳地址。以免OSPF内部路由器在广播网络上以ASBR为下一跳,再由ASBR自己转发到正确的下一跳,而产生额外的路由。简单来说,FA字段的作用类似于BGP协议中的“第三方下一跳”概念,主要在广播共享网络中起作用。
5类LSA FA字段可以为全0或者非0两种选择,有以下几个规则:
1、当与引入路由的下一跳关联(互连)的接口没有启动OSPF时,FA设置为0;
例如在上面图中,R1引入直连接口E0/1的路由,此接口没有启动OSPF,因此TYPE 5的LSA中 FA字段为0。
2、当下列所有条件均满足的情况下,TYPE 5 LSA中FA字段设置为非0:
1、在ASBR上,与引入外部路由下一跳关联的接口启动了OSPF,即位于Network
命令范围内。
2、在ASBR上,与引入外部路由下一跳关联的接口不能配置被动接口;
//前两个规则是确保LSA能够被通告。
3、在ASBR上,与引入外部路由下一跳关联的接口配置的OSPF网络类型不能是P2P或P2MP。
//确保网络类型是Broadcast或NBMA的共享网络。
在满足以上条件后,5类LSA的转发地址为连接外部路由下一跳的接口IP,如下图中的R2E0/0和R3E0/0。
FR是如何影响OSPF的路由选择的?
1、计算外部路由时,首先检查通告TYPE 5 LSA的ASBR是否存在,否则忽略该LSA;
2、检查TYPE 5 LSA的FA地址是否为0。如为0,说明路由必须经过ASBR转发,那么优选到ASBR metric最短的路径。当有多个最短路径时,优选从较大area ID学习到的。
3、如果FA非0,那么优选到FA地址 metric最短的路径。
此图中R4和R1在区域0,R1通过RIP重分布学习到外部路由,R2和R3都运行RIP。中间的交换机主要用来模拟出一个总线型网络,R1 E0/1 , R2 R3 E0/0都在同一网段。
R4配置如下:
R4(config)#router ospf 1
R4(config-router)#router-id 4.4.4.4
R4(config-router)#passive-inter de
R4(config-router)#no passive-int e0/0
R4(config-router)#network 4.4.4.4 0.0.0.0 area 0
R4(config-router)#network 10.0.1.0 0.0.0.3 area 0
R4(config-router)#network 10.1.0.0 0.0.0.255 area 0
R1配置如下:
R1(config-if)#router ospf 1
R1(config-router)#router-id 1.1.1.1
R1(config-router)#passive-inter de
R1(config-router)#no passive-inter e0/0
R1(config-router)#no passive-inter e0/1
R1(config-router)#network 172.16.0.0
R1(config-router)#network 172.16.1.0 0.0.0.255 area 0
R1(config-router)#network 1.1.1.1 0.0.0.0 area 0
R1(config-router)#network 10.0.1.0 0.0.0.3 area 0
R1(config-router)#redistribute rip subnets metric 1000 //将RIP重分布到OSPF中类型1开销1000
R2配置如下:
R2(config)#router rip
R2(config-router)#ver 2
R2(config-router)#no auto-summary
R2(config-router)#network 172.16.0.0
R2(config-router)#network 10.0.0.0
R2(config-router)#network 2.0.0.0
R2(config-router)#redistribute ospf 1 metric 5
R3配置如下:
R3(config-if)#router rip
R3(config-router)#ver 2
R3(config-router)#no auto-summary
R3(config-router)#network 172.16.0.0
R3(config-router)#network 10.0.0.0
R3(config-router)#network 3.0.0.0
当R1上没有将172.16.1.0网段发布到OSPF中时(no network 172.16.1.0 0.0.0.255 area 0
)在R4上查看路由:
R4#show ip route ospf
O E1 10.2.0.0/24 [110/1010] via 10.0.1.2, 00:03:21, Ethernet0/0
O E1 10.3.0.0/24 [110/1010] via 10.0.1.2, 00:03:21, Ethernet0/0
查看5类LSA:
LS age: 271
Options: (No TOS-capability, DC)
LS Type: AS External Link
Link State ID: 10.2.0.0 (External Network Number )
Advertising Router: 1.1.1.1
LS Seq Number: 80000003
Checksum: 0x6610
Length: 36
Network Mask: /24
Metric Type: 1 (Comparable directly to link state metric)
TOS: 0
Metric: 1000
Forward Address: 0.0.0.0 //转发地址为0.0.0.0
External Route Tag: 0
由此可发现但转发地址为0.0.0.0时,外部路由开销的计算就是到达ASBR的开销+外部开销=10+1000=1010
当R1上将172.16.1.0网段发布到OSPF中时(
network 172.16.1.0 0.0.0.255 area 0
)在R4上查看路由:
R4#show ip route ospf
O E1 10.2.0.0/24 [110/1020] via 10.0.1.2, 00:00:16, Ethernet0/0
O E1 10.3.0.0/24 [110/1020] via 10.0.1.2, 00:00:16, Ethernet0/0
LS age: 172
Options: (No TOS-capability, DC)
LS Type: AS External Link
Link State ID: 10.2.0.0 (External Network Number )
Advertising Router: 1.1.1.1
LS Seq Number: 80000004
Checksum: 0x6610
Length: 36
Network Mask: /24
Metric Type: 1 (Comparable directly to link state metric)
TOS: 0
Metric: 1000
Forward Address: 172.16.1.2 ///转发地址为直连外部路由下跳接口IP
External Route Tag: 0
LS age: 2796
Options: (No TOS-capability, DC)
LS Type: AS External Link
Link State ID: 10.3.0.0 (External Network Number )
Advertising Router: 2.2.2.2
LS Seq Number: 80000002
Checksum: 0x4E24
Length: 36
Network Mask: /24
Metric Type: 1 (Comparable directly to link state metric)
TOS: 0
Metric: 1000
Forward Address: 172.16.1.3 //转发地址为直连外部路由下跳接口IP
External Route Tag: 0Link connected to: a Stub Network
1类LSA:
(Link ID) Network/subnet number: 172.16.1.0
(Link Data) Network Mask: 255.255.255.0
Number of TOS metrics: 0
TOS 0 Metrics: 10
由此可发现但转发地址不为0时,外部路由开销的计算就是到达转发地址的开销+外部开销=10+10+1000=1020
在R1上配置被动接口(R1(config-router)#passive-interface e0/1):
Routing Bit Set on this LSA
LS age: 19
Options: (No TOS-capability, DC)
LS Type: AS External Link
Link State ID: 10.2.0.0 (External Network Number )
Advertising Router: 1.1.1.1
LS Seq Number: 80000005
Checksum: 0xF26
Length: 36
Network Mask: /24
Metric Type: 1 (Comparable directly to link state metric)
TOS: 0Metric: 1000
Forward Address: 0.0.0.0 //5类LSA的转发地址全变为0.0.0.0
External Route Tag: 0
大家思考如果是七类LSA的转发地址会怎么样?
区域2是NSSA区域,RIP通过重发布到OSPF中,那么RT2产生的七类LSA的转发地址是怎么样的,经RT6做7转5后,转发地址会有什么变化?
关于这张拓扑的配置请见前面博文:http://tangfangxiao.blog.51cto.com/2116646/632997
如果172.16.24.0/30的网段没有发布到OSPF中,7类LSA的转发地址会像5类那样变为0.0.0.0吗?如果是的话,在RT6上作7转5后,转发地址还是0.0.0.0,那这表示是到达RT6还是RT2这个ASBR呢?所以7类LSA的转发地址不可能为0.0.0.0,7类转5时,不会改变转发地址。
当172.16.24.0/24没有发布到OSPF中,转发地址为Router-id.
LS age: 324
Options: (No TOS-capability, Type 7/5 translation, DC)
LS Type: AS External Link
Link State ID: 172.16.4.0 (External Network Number )
Advertising Router: 2.2.2.2
LS Seq Number: 80000001
Checksum: 0xB1BC
Length: 36
Network Mask: /24
Metric Type: 1 (Comparable directly to link state metric)
TOS: 0
Metric: 1000
Forward Address: 2.2.2.2 //转发地址不为0
External Route Tag: 0
我重新指定Router-id,重启OSPF进程:
R2(config-router)#do show ip ospf
Routing Process "ospf 1" with ID
10.10.10.10 //router-id为10.10.10.10
Supports only single TOS(TOS0) routes
Supports opaque LSA
Link State ID: 172.16.4.0 (External Network Number )
Advertising Router: 2.2.2.2
LS Seq Number: 80000002
Checksum: 0x410C
Length: 36
Network Mask: /24
Metric Type: 1 (Comparable directly to link state metric)
TOS: 0
Metric: 1000
Forward Address: 10.10.10.10 //转发地址为10.10.10.10
External Route Tag: 0
在RT6上经过7类转5类的LSA的转发地址不会改变:
LS age: 12
Options: (No TOS-capability, DC)
LS Type: AS External Link //5类LSA
Link State ID: 172.16.4.0 (External Network Number )
Advertising Router: 6.6.6.6 //通告路由器
LS Seq Number: 80000001
Checksum: 0x5FE8
Length: 36
Network Mask: /24
Metric Type: 1 (Comparable directly to link state metric)
TOS: 0
Metric: 1000
Forward Address: 10.10.10.10 //转发地址不变
其它的跟5类LSA的转发地址一样,大家可以去验证一下,我就不写了!
最后总结一下:
5类LSA若同时满足以下三个条件:
a)引入的这条外部路由,其对应的出接口启用了OSPF
b)引入的这条外部路由,其对应的出接口未设置为passive-interface
c)引入的这条外部路由,其对应的出接口的OSPF网络类型为broadcast
则产生的Type 5 LSA,其FA地址等于该引入的外部路由的下一条地址 ,反之为 0.0.0.0(ASBR)
a)引入的这条外部路由,其对应的出接口启用了OSPF
b)引入的这条外部路由,其对应的出接口未设置为passive-interface
c)引入的这条外部路由,其对应的出接口的OSPF网络类型为broadcast
则产生的Type 5 LSA,其FA地址等于该引入的外部路由的下一条地址 ,反之为 0.0.0.0(ASBR)
7类LSA的转发地址不会为0.0.0.0,满足以上三个条件为外部路由的下一条地址,反之为Router-id。