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)を経由していることがわかります。
最後までお読み頂きありがとうございました。
コメント