「路由交換-OSPF-特殊問題」 華為OSPF路由協議區域0分割解決辦法
作為網絡工程項目的設計師,如果能夠從網絡技術的基本原理和科學方法來規范網絡工程項目的規劃設計是非常重要的!因為它能最大程度規避許多潛在的“坑”或者說風險吧。但是很不幸的是,網絡工程項目的負責人往往并非是網絡方面的專家,亦或者并沒有聽從網絡工程師的合理建議,最終導致實際中的網絡設計存在很大的缺陷。
所以你面對這種情況,也無可奈何,畢竟是歷史遺留問題,而找到合理的解決辦法才是當下最重要的!雖然冒著巨大的風險去承擔風險,但是你要相信這不是你的錯,你只是為了解決當下最重要的矛盾問題而對網絡進行優化改造。當然記得保護自己,向你的直接負責人說清楚問題所在,然后申請合理的變更時間進行重新優化配置。
我今天要討論分析的問題就是現實中遇到的一個案例,為了隱私和保密考慮,我們只能從技術角度去分析為什么這樣的網絡設計是存在巨大缺陷的,我們該怎么去解決遇到這樣的問題。當然這個案例中涉及的網絡規模和架構非常龐大,但是并不妨礙我們從技術角度去簡化分析它。因此,我們用簡單的網絡結構來分析它并給出解決的辦法。
實驗拓撲圖

實驗目的
從上圖我們看到,該實驗環境存在巨大的設計缺陷。在OSPF網絡設計中,骨干區域0與必須與其它非骨干區域直接相連,而圖中的情況恰恰違背了OSPF設計最基本的常識。注意是作為網絡工程師最基本的常識,但是現實中仍然違背了這樣的設計原則,造成業務訪問出現問題。我們就針對上圖來進行分析和提出解決辦法(我們不提倡等到犯錯了之后再去挽救,因為這樣做會承擔巨大的風險和成本)。
實驗配置
AR1的配置:
interface Serial2/0/0
link-protocol ppp
ip address 10.0.12.1 255.255.255.0
ospf authentication-mode md5 1 plain huawei
#
interface LoopBack0
ip address 10.1.1.1 255.255.255.0
ospf network-type broadcast
#
ospf 1 router-id 10.1.1.1
import-route static
area 0.0.0.0
network 10.0.12.1 0.0.0.0
network 10.1.1.1 0.0.0.0
#
ip route-static 10.0.0.0 255.0.0.0 NULL0
#
AR2的配置:
interface Serial2/0/0
link-protocol ppp
ip address 10.0.12.2 255.255.255.0
ospf authentication-mode md5 1 plain huawei
#
interface Serial2/0/1
link-protocol ppp
ip address 10.0.23.2 255.255.255.0
#
interface LoopBack0
ip address 10.0.2.2 255.255.255.0
#
ospf 1 router-id 10.0.2.2
area 0.0.0.0
network 10.0.2.2 0.0.0.0
network 10.0.12.2 0.0.0.0
area 0.0.0.1
network 10.0.23.2 0.0.0.0
#
AR3的配置:
interface Serial2/0/0
link-protocol ppp
ip address 10.0.23.3 255.255.255.0
#
interface GigabitEthernet0/0/0.10
dot1q termination vid 4
ip address 10.0.4.1 255.255.255.0
arp broadcast enable
#
interface GigabitEthernet0/0/0.20
dot1q termination vid 5
ip address 10.0.5.1 255.255.255.0
arp broadcast enable
#
interface GigabitEthernet0/0/0.30
dot1q termination vid 6
ip address 10.0.6.1 255.255.255.0
arp broadcast enable
#
interface LoopBack0
ip address 10.0.3.3 255.255.255.0
ospf network-type broadcast
#
ospf 1 router-id 10.0.3.3
area 0.0.0.0
abr-summary 10.0.4.0 255.255.252.0
network 10.0.3.3 0.0.0.0
network 10.0.4.1 0.0.0.0
network 10.0.5.1 0.0.0.0
network 10.0.6.1 0.0.0.0
area 0.0.0.1
network 10.0.23.3 0.0.0.0
#
LSW1的配置:
interface GigabitEthernet0/0/1
port link-type trunk
port trunk allow-pass vlan 4 to 6
#
interface GigabitEthernet0/0/2
port link-type access
port default vlan 4
#
interface GigabitEthernet0/0/3
port link-type access
port default vlan 5
#
interface GigabitEthernet0/0/4
port link-type access
port default vlan 6
#
AR4的配置(模擬普通PC):
interface GigabitEthernet0/0/0
ip address 10.0.4.4 255.255.255.0
#
interface LoopBack0
ip address 10.1.4.4 255.255.255.0
#
ip route-static 0.0.0.0 0.0.0.0 10.0.4.1
#
AR5的配置(模擬普通PC):
interface GigabitEthernet0/0/0
ip address 10.0.5.5 255.255.255.0
#
ip route-static 0.0.0.0 0.0.0.0 10.0.5.1
#
實驗分析
我們看下,AR1的路由表和AR3的路由表、LSDB:
AR1的路由表和LSDB
AR3的路由表
AR3的LSDB
從AR1和AR3的路由表和LSDB,我們很容易看出AR3有學到AR1的路由以及傳遞過來的LSA,但是AR1卻沒有AR3的匯總路由及其通告的路由及LSA。而圖中違背了OSPF區域設計基本規則,即骨干區域只有一個,區域0,非骨干區域必須直接與骨干區域直連,也就是常說的向日葵模型。
但是上面的實驗拓撲中,區域0被區域1分割,導致出現了兩個區域0。這樣為了避免出現環路,勢必會導致觸發OSPF防環機制,導致一部分路由學習存在問題。為了解決該問題,常見的解決辦法就是建立虛鏈路和通過隧道打通兩個分割的區域0直接邏輯相連。
虛鏈路解決辦法:
AR2:
ospf 1 router-id 10.0.2.2
area 0.0.0.0
network 10.0.2.2 0.0.0.0
network 10.0.12.2 0.0.0.0
area 0.0.0.1
network 10.0.23.2 0.0.0.0
vlink-peer 10.0.3.3 (只需配置該命令)
AR3:
ospf 1 router-id 10.0.3.3
area 0.0.0.0
abr-summary 10.0.4.0 255.255.252.0
network 10.0.3.3 0.0.0.0
network 10.0.4.1 0.0.0.0
network 10.0.5.1 0.0.0.0
network 10.0.6.1 0.0.0.0
area 0.0.0.1
network 10.0.23.3 0.0.0.0
vlink-peer 10.0.2.2(只需配置該命令)
配置完成后,查看AR1的路由表,我們發現AR1的路由表學習正常:
AR1路由表及LSDB
AR1 PING 測試正常
隧道解決辦法:
AR2配置:
interface Tunnel0/0/0
ip address 192.168.100.1 255.255.255.0
tunnel-protocol gre
source 10.0.23.2
destination 10.0.23.3
ospf 1 router-id 10.0.2.2
area 0.0.0.0
network 10.0.2.2 0.0.0.0
network 10.0.12.2 0.0.0.0
network 192.168.100.1 0.0.0.0
area 0.0.0.1
network 10.0.23.2 0.0.0.0
AR3的配置:
interface Tunnel0/0/0
ip address 192.168.100.254 255.255.255.0
tunnel-protocol gre
source 10.0.23.3
destination 10.0.23.2
ospf 1 router-id 10.0.3.3
area 0.0.0.0
abr-summary 10.0.4.0 255.255.252.0
network 10.0.3.3 0.0.0.0
network 10.0.4.1 0.0.0.0
network 10.0.5.1 0.0.0.0
network 10.0.6.1 0.0.0.0
network 192.168.100.254 0.0.0.0
area 0.0.0.1
network 10.0.23.3 0.0.0.0
配置完成后,測試驗證:
AR2、AR3通過隧道建立鄰居
AR1的路由表和LSDB
從測試結果來看,兩種解決辦法都實現了同樣的效果,即通過邏輯方式實現了區域0不被分割。不過實際中,存在的問題可能更趨復雜。比如當被分割的區域0中的其中一方由于設備性能問題,不一定能直接采用上述辦法,因為骨干區域存在大量的路由條目,一旦引入過來能否承受巨大的路由條目是需要慎重考慮的。
靜態路由配置解決AR1路由器不能訪問AR3右側的10.0.4.0/22網段:
AR1的配置:
ip route-static 10.0.4.0 255.255.252.0 10.0.12.2 preference 5
AR2的配置:
ip route-static 10.0.4.0 255.255.252.0 10.0.23.3 preference 5
測試驗證效果:
AR1 路由表及PING測試
AR2路由表及PING測試
這個時候應該采用臨時辦法,比如采用靜態路由方式手工打通部分網段的通信問題。而不能直接采用上述兩種辦法,需要綜合評估采取最佳策略。
實驗總結
通過虛鏈路和tunnel GRE隧道可以解決區域0直連問題。
區域0如果被分割,會導致部分路由學習存在問題導致出現網絡問題,實踐中應在設計階段規避掉。
實踐中碰到的問題可能更趨復雜,需要綜合評判采取最佳策略解決問題。