OSPF轉發地址(forwarding address)深刻解析

FA是Forwarding Address的簡寫。FA是ASBR通告的TYPE 5 LSA中的字段,它的做用是告訴OSPF域內的路由器如何可以更快捷地到達LSA 5所通告路由的下一跳地址。以避免OSPF內部路由器在廣播網絡上以ASBR爲下一跳,再由ASBR本身轉發到正確的下一跳,而產生額外的路由。簡單來講,FA字段的做用相似於BGP協議中的「第三方下一跳」概念,主要在廣播共享網絡中起做用。redis

在RFC中規定,覆蓋FA的路由必須是區域內或區域間路由。爲何要作這樣一個檢查呢。咱們知道OSPF是一個無環的鏈路狀態協議,區域內的無環是依靠最短路徑樹來保證,而區域間的無環是依靠非骨幹區域和骨幹區域鏈接來實現,這些方法保證了AS內部路由計算的可靠性。可是OSPF沒法控制AS外部的路由信息是否可靠,FA自己就是用於轉發到達外部網絡的地址,若是用一個外部路由來迭代查找FA並進行路由計算,那麼極可能會致使路由問題。網絡

 

5類LSA FA字段能夠爲全0或者非0兩種選擇,有如下幾個規則:ide

一、當與引入路由的下一跳關聯(互連)的接口沒有啓動OSPF時,FA設置爲0;學習

例如在上面圖中,R1引入直鏈接口E0/1的路由,此接口沒有啓動OSPF,所以TYPE 5的LSA中 FA字段爲0。  www.2cto.com  this

二、當下列全部條件均知足的狀況下,TYPE 5 LSA中FA字段設置爲非0:spa

一、在ASBR上,與引入外部路由下一跳關聯的接口啓動了OSPF,即位於Networkrouter

命令範圍內。blog

二、在ASBR上,與引入外部路由下一跳關聯的接口不能配置被動接口;接口

//前兩個規則是確保LSA可以被通告。進程

三、在ASBR上,與引入外部路由下一跳關聯的接口配置的OSPF網絡類型不能是P2P或P2MP。

//確保網絡類型是Broadcast或NBMA的共享網絡。

在知足以上條件後,5類LSA的轉發地址爲鏈接外部路由下一跳的接口IP,以下圖中的R2E0/0和R3E0/0。

 

FR是如何影響OSPF的路由選擇的?

一、計算外部路由時,首先檢查通告TYPE 5 LSA的ASBR是否存在,不然忽略該LSA;

二、檢查TYPE 5 LSA的FA地址是否爲0。如爲0,說明路由必須通過ASBR轉發,那麼優選到ASBR metric最短的路徑。當有多個最短路徑時,優選從較大area ID學習到的。

三、若是FA非0,那麼優選到FA地址 metric最短的路徑。


20120810022700697.jpg

 

此圖中R4和R1在區域0,R1經過RIP重分佈學習到外部路由,R2和R3都運行RIP。中間的交換機主要用來模擬出一個總線型網絡,R1 E0/1 , R2 R3 E0/0都在同一網段。

R4配置以下:  www.2cto.com  

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:  www.2cto.com  

 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  www.2cto.com  

        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的轉發地址會怎麼樣?

20120810022701671.jpg

 

區域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  www.2cto.com  

  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   www.2cto.com  

        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)

7類LSA的轉發地址不會爲0.0.0.0,知足以上三個條件爲外部路由的下一條地址,反之爲Router-id。

相關文章
相關標籤/搜索