2017年10月17日 星期二

26 - OSPF不規則區域解決


26 - OSPF不規則區域解決

哪些情況為OSPF不規則區域?
1. 被分割的區域0   區域0接區域1接區域0
2. 連續的區域設計。不是所有區域都接在區域0上。 區域0接區域1接區域2


不規則區域解決方案

1. OSPF多進程的雙向重分布
2. Tunnel   (GRE)
3. VL  (虛擬鏈路)   (OSPF)


Lo 22.1.1.1area 1Lo 33.1.1.1area 1
R1# show ip route ospf
R1可以收到R2環回口的路由,R1可以收到R3環回口的路由,R1不能收到R4環回口的路由。

44.1.1.1的路由收不到,因為區域2沒有掛在區域0上,只要掛在區域0的都能正常運作。

R4能收到R3的環回口路由嗎
R4# show ip route ospf
R4上什麼路由都沒有,沒辦法轉發任何數據。

現在要讓R4收到所有的路由,有三個方法


1. OSPF多進程的雙向重分布
重分布的概念就是把一個路由協定重分布到另外一個路由協定。

R3# show run | se ospf
R3上建立2OSPF進程,一個OSPF進程跟左邊跑區域1,一個OSPF進程跟右邊跑區域2,然後在把這2OSPF進程互相重分布。

R3(config)# no router ospf 1
R3(config)# router ospf 1
R3(config-router)# network 33.1.1.1 0.0.0.0 area 1
R3(config-router)# network 23.1.1.1 0.0.0.255 area 1
R3(config-router)# exit
上面專門跟左邊跑區域1,然後在做一個進程
R3(config)# router ospf 2       (這個進程號本地有效,本地區分的)
R3(config-router)# network 34.1.1.0 0.0.0.255 area 2


R3# show ip ospf neighbor
R3上用兩個進程來區分不同的鄰居關係


R3# show ip router ospf
上面這些路由是通過OSPF進程1學到的,44.0.0.0是通過OSPF進程2學到的。

然後在把這兩個不同的進程互相重分布

R3(config)# router ospf 1
R3(config-router)# redistribute ospf 2 subnets
R3(config-router)# exit
我把OSPF 2學過來的進程路由放在OSPF 1裡面去。
R3(config)# router ospf 2
R3(config-router)# redistribute ospf 1 subnets
反過來把OSPF 1學過來的進程路由放在OSPF 2裡面去。
雙進程的雙向重分布


R3# show run | se ospf 


R1# show ip router ospf
這時R1己收到R4的路由34.1.1.044.1.1.1


R4# show ip router ospf
原本R4什麼都收不到,現在所有路由都收到了。
只在R3設定了OSPF多進程的雙向重分布,其他都沒動。因為進程是本地有效



2. Tunnel   (GRE)


第二種和第三種的方法都是一樣的,既然我把區域2掛在區域1上面,我能不能在區域1上面打一條隧道(一條虛擬隧道),打完隧道後讓區域2感覺他是建在區域0上。(像似把區域1給透明掉了)


所以要在R2R3上配置
R2(config)# interface tunnel 0 
R2(config-if)# tunnel source 22.1.1.1
R2(config-if)# tunnel destination 33.1.1.1
然後給tunnel一個IP地址
R2(config-if)# ip address 100.1.1.1 255.255.255.0


R2# show run int tun 0
來原和目標首先要路由可到達,否則這個隧道建不起來。


同樣的也要在R3上配置
R3(config)# interface tunnel 0 
R3(config-if)# tunnel source 33.1.1.1
R3(config-if)# tunnel destination 22.1.1.1
R3(config-if)# ip address 100.1.1.2 255.255.255.0     (要同一個網段)


R3# show run int tun 0
最後在Ping對面的地址,可以通就可確定隧道已建立起來。

R3# ping 100.1.1.1



現在區域0和區域2還是分割的,中間只是加一條隧道線而己

現在要把新加進來的隧道也宣告進區域0裡面(新加的100.1.1.0的網段放進去區域0)

R2(config)# router ospf 1
R2(config-router)# network 100.1.1.0 0.0.0.255 area 0

R3(config)# router ospf 1
R3(config-router)# network 100.1.1.0 0.0.0.255 area 0 




這時候區域0就變大了,R1R2R3都在區域0裡面了,
現在只是把Tunnel 0(虛擬的線)宣告進區域0,原本的實線沒有宣告進區域0,實線還是區域1


R4# show ip router ospf 

R2R3中間可能有好多個路由器,中間是一條虛擬的線連在一起,在2ABR之間,把中間所有的路由器所有的線都透明掉了



3. VL  (虛擬鏈路)   (OSPF)

一樣是在做隧道,變成用OSPF的方法在做隧道
R2(config)# router ospf 1
R2(config-router)# area 1 virtual-link 33.1.1.1
virtual-link後面不是配置接口的IP地址,是要配置路由器的Router-ID
這個隧道是穿越區域1的,跟R3建立隧道
R3(config)# router ospf 1
R3(config-router)# area 1 virtual-link 22.1.1.1


R2# show run | se ospf 


R2# show ip ospf virtual-links
R2# clear ip ospf processes         (清鄰居)