發布時間: 2017-06-16 14:48:40
本案例中涉及OSPF在特定情況下的LSA選擇問題,此問題關聯了FA地址及NSSA的一些特性。通過對故障逐一分析,也匯總了相關知識。以下是一個真實案例, 為保護客戶資料, 路由器輸出信息已被修改。
故障診斷步驟
R1, R2 和 R3是NSSA區域,R1和R2是骨干區域。在R3上重分發網絡10.10.119.0/27到NSSA中??蛻舭l現R2正常從R3習得此NSSA路由,但是R1是從R2學來的E1路由。
1. 收集信息,確認問題,發現R1和R2都有TYPE 7和TYPE 5 路由,但R1選了TYPE5而R2選擇了NSSA,這是為什么?
R1#show ospf database external 10.10.119.0
OSPF Router with ID (10.10.191.131) (Process ID 18181)
Type-5 AS External Link States
Routing Bit Set on this LSA
LS age: 652
Options: (No TOS-capability, DC)
LS Type: AS External Link
Link State ID: 10.10.119.0 (External Network Number)
Advertising Router: 10.10.191.132
LS Seq Number: 80000399
Checksum: 0x3768
Length: 36
Network Mask: /27
Metric Type: 1 (Comparable directly to link state metric)
TOS: 0
Metric: 1
Forward Address: 10.10.72.89
External Route Tag: 1
R1#sh ospf database nssa-external 10.10.119.0
OSPF Router with ID (10.10.191.131) (Process ID 18181)
Type-7 AS External Link States (Area 7)
LS age: 312
Options: (No TOS-capability, Type 7/5 translation, DC)
LS Type: AS External Link
Link State ID: 10.10.119.0 (External Network Number)
Advertising Router: 10.10.72.89
LS Seq Number: 8000fe93
Checksum: 0x240
Length: 36
Network Mask: /27
Metric Type: 1 (Comparable directly to link state metric)
TOS: 0
Metric: 1
Forward Address: 10.10.72.89
External Route Tag: 1
2. 根據數據庫的信息,R1學來的E1路由應該是R2把TYPE7轉為TYPE5后,發給R1的。仔細查看路由表,發現雖然R1從R2學來的路由,但下一跳仍然通過R3,這是為什么?[2]這些端口都在NSSA中,NSSA中會有5類路由么?
R2#show route 10.10.119.0 de
Tag 1, type NSSA extern 1
10.10.183.142, from 10.10.72.89, via TenGigE0/0/0/0
10.10.183.98, from 10.10.72.89, via TenGigE0/1/2/0
R1#show route10.10.119.0 de
Tag 1, type extern 1
10.10.183.74, from 10.10.191.132, via TenGigE0/2/0/0
10.10.183.138, from 10.10.191.132, via TenGigE0/3/2/0
R1#show ospf inter ten0/2/0/0 | i Area
Internet Address 10.10.183.73/30, Area 7
R1#
R1#show ospf inter ten0/3/2/0 | i Area
Internet Address 10.10.183.137/30, Area 7
3. 首先R1和R2是ABR,所以即使存在5類路由也是ok的,那么為什么從R2學來的路由,反而從R3走呢?因為FA地址,對于FA地址簡單回憶下:
?它是OSPF特有的,它的作用主要是在告訴域內路由器在特定場合下訪問域外路由不要找ASBR,要找FA這個轉發地址;
?只有滿足特定條件,FA地址才不為"0.0.0.0";
?如果把FA地址過濾掉,那么這個外部路由不會加入路由表;
?只有當FA地址為(intra-area)O或IA(inter-area)時,才可以把此E2路由放入路由表。小心重分發靜態到OSPF,如果寫的下一跳是地址,而且屬于直連,他不會被加入路由表;相反寫端口可以,因為不符合規則,FA全零;
?在NSSA跟正常區域不同,根據"RFC 3101, specially section 2.3 Type-7 LSAs",轉換時必須有FA地址,所以如果重分發靜態時,下一跳寫成端口,FA會成為全零,這樣會有問題。