【DMVPN】フェーズ1上のOSPF(non-Broadcastタイプ)

 OSPFのnon-broadcastネットワークタイプの動作を確認します。non-broadcastネットワークタイプの特徴は、ネイバーを動的に検出せず、スタティックに設定しないといけないことです。

 では、以下の構成でOSPFのネットワークタイプをnon-broadcastにします。DMVPNの構成は以下の記事を参照してください。

 また、OSPFの基本設定は以下を参照してください。

R2(config)#interface Tunnel0
R2(config-if)#ip ospf network non-broadcast
R5(config)#interface tunnel 0
R5(config-if)#ip ospf network non-broadcast
R6(config)#interface tunnel 0
R6(config-if)#ip ospf network non-broadcast

 トンネルインタフェースのOSPF状態を確認します。ネットワークタイプがNON_BROADCASTで、Helloインターバルが30秒、Deadインターバルが120秒であることが確認できます。

R2# show ip ospf interface tunnel0 

Tunnel0 is up, line protocol is up 
  Internet Address 192.168.0.2/24, Area 0, Attached via Network Statement
  Process ID 1, Router ID 2.2.2.2, Network Type NON_BROADCAST, Cost: 1000
  Topology-MTID    Cost    Disabled    Shutdown      Topology Name
        0           1000      no          no            Base
  Transmit Delay is 1 sec, State WAITING, Priority 1
  No designated router on this network
  No backup designated router on this network
  Timer intervals configured, Hello 30, Dead 120, Wait 120, Retransmit 5
    oob-resync timeout 120
    Hello due in 00:00:22
    Wait time before Designated router selection 00:01:53

 設定後、R2のネイバー状態を確認します。

R2# show ip ospf neighbor 
R2#

 ネイバーが全くリスト化されていません。non-broadcastネットワークでは、ネイバーを自動検出しないので、neighborコマンドで静的にネイバーを設定する必要があります。

R2(config)# router ospf 1 
R2(config-router)# neighbor 192.168.0.5
R2(config-router)# neighbor 192.168.0.6

 すると、ネイバーがアップします。neighborコマンドはルータ間のどちらか一方だけ設定すれば良いです。

%OSPF-5-ADJCHG: Process 1, Nbr 6.6.6.6 on Tunnel0 from LOADING to FULL, Loading Done
%OSPF-5-ADJCHG: Process 1, Nbr 5.5.5.5 on Tunnel0 from LOADING to FULL, Loading Done

 R2でネイバー状態を確認します。

R2# show ip ospf neighbor 

Neighbor ID     Pri   State           Dead Time   Address         Interface
5.5.5.5           1   FULL/DR         00:01:55    192.168.0.5     Tunnel0
6.6.6.6           1   FULL/BDR        00:01:57    192.168.0.6     Tunnel0

 R6(6.6.6.6)がBDRで、R5(5.5.5.5)がDRであることがわかります。 スポークルータ間は直接接続できず、お互いハブルータとしか直接接続ができません。スポークルータがDRまたはBDRとして選出されないようにする必要がありますDR/BDRに強制的に選出されないようにするには、インタフェースの優先度を0に設定します。

R5(config)# interface tunnel 0 
R5(config-if)# ip ospf priority 0 
R6(config)# interface tunnel 0 
R6(config-if)# ip ospf priority 0 

 ハブルータ(R2)でOSPFのプロセスをリセットします。

R2#clear ip ospf process 
Reset ALL OSPF processes? [no]: yes
R2#
%OSPF-5-ADJCHG: Process 1, Nbr 5.5.5.5 on Tunnel0 from FULL to DOWN, 
Neighbor Down: Interface down or detached
%OSPF-5-ADJCHG: Process 1, Nbr 6.6.6.6 on Tunnel0 from FULL to DOWN, 
Neighbor Down: Interface down or detached
%OSPF-5-ADJCHG: Process 1, Nbr 5.5.5.5 on Tunnel0 from LOADING to FULL, Loading Done
%OSPF-5-ADJCHG: Process 1, Nbr 6.6.6.6 on Tunnel0 from LOADING to FULL, Loading Done

 では、R2で隣接状態を確認すると、R5(5.5.5.5)、R6(6.6.6.6)ともDRでもBDRでもないDROTHERであることが確認できます。

R2# show ip ospf neighbor

Neighbor ID     Pri   State           Dead Time   Address         Interface
5.5.5.5           0   FULL/DROTHER    00:00:39    192.168.0.5     Tunnel0
6.6.6.6           0   FULL/DROTHER    00:00:35    192.168.0.6     Tunnel0

 R5,R6のネイバー状態を見ると、ハブルータであるR2がDRとしてFULL状態の隣接関係であることが確認できます。

R5# show ip ospf neighbor 
Neighbor ID     Pri   State           Dead Time   Address         Interface
2.2.2.2           1   FULL/DR         00:00:33    192.168.0.2     Tunnel0
R6# show ip ospf neighbor 
Neighbor ID     Pri   State           Dead Time   Address         Interface
2.2.2.2           1   FULL/DR         00:00:32    192.168.0.2     Tunnel0

 ハブルータであるR2のルーティングテーブルを確認すると、スポークルータのループバックアドレスを学習していることがわかります。

R2# show ip route ospf

      5.0.0.0/32 is subnetted, 1 subnets
O        5.5.5.5 [110/1001] via 192.168.0.5, 00:00:12, Tunnel0
      6.0.0.0/32 is subnetted, 1 subnets
O        6.6.6.6 [110/1001] via 192.168.0.6, 00:00:12, Tunnel0

 スポークルータであるR5では、ハブルータ(R2)とスポークルータ(R6)のループバックアドレスを学習しています。R6のループバックアドレス(6.6.6.6)宛のネクストホップのアドレスがR6(192.168.0.6)であることを確認してください(ハブルータであるR2(192.168.0.2)ではありません)

R5# show ip route ospf

      2.0.0.0/32 is subnetted, 1 subnets
O        2.2.2.2 [110/1001] via 192.168.0.2, 00:00:33, Tunnel0
      6.0.0.0/32 is subnetted, 1 subnets
O        6.6.6.6 [110/1001] via 192.168.0.6, 00:00:33, Tunnel0

 スポークルータであるR6では、ハブルータ(R2)とスポークルータ(R5)のループバックアドレスを学習しています。R5のループバックアドレス宛のネクストホップの値に注意してください。

R6# show ip route ospf

      2.0.0.0/32 is subnetted, 1 subnets
O        2.2.2.2 [110/1001] via 192.168.0.2, 00:00:49, Tunnel0
      5.0.0.0/32 is subnetted, 1 subnets
O        5.5.5.5 [110/1001] via 192.168.0.5, 00:00:49, Tunnel0

 R6のループバックアドレスからR5のループバックアドレスにPIngを実行します。

R6# ping 5.5.5.5 source 6.6.6.6
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 5.5.5.5, timeout is 2 seconds:
Packet sent with a source address of 6.6.6.6
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 62/57/92 ms

 疎通ができました。では、R6からR5のループバックアドレスにトレースルートを実行します。

R6# traceroute 5.5.5.5
Type escape sequence to abort.
Tracing the route to 5.5.5.5
VRF info: (vrf in name/id, vrf out name/id)
  1 192.168.0.2 28 msec 36 msec 40 msec
  2 192.168.0.5 104 msec 48 msec 68 msec

 ルーティングテーブルでは、5.5.5.5のネクストホップはスポークのアドレスである192.168.0.5ですが、トレースルートではハブルータであるR2(192.168.0.2)を経由していることがわかります。

最後までお読み頂きありがとうございました。

コメント