DMVPN フェーズ1では、スポーク同士の通信もすべてハブを経由します。この記事では、DMVPN フェーズ1のトンネルで OSPF のネットワークタイプを point-to-multipoint non-broadcast にして、ネイバーと経路を確かめます。point-to-multipoint non-broadcast は point-to-multipoint とほぼ同じ動きをしますが、ネイバーを自動で見つけないので、neighbor コマンドで指定する必要があります。
DMVPN フェーズ1の構成は 【DMVPN】フェーズ1をわかりやすく解説、DMVPN 上で OSPF を動かすときの基本は 【OSPF】DMVPN上でOSPFを有効後、大量にエラーが出る を参照してください。
- point-to-multipoint non-broadcast で
neighborが必要なこと - DR・BDR を選ばないので、スポークの優先度を変える必要がないこと
- 経路のネクストホップがすべてハブになり、通信がハブを経由すること
検証構成
ハブの R2 と、スポークの R5・R6 を DMVPN のトンネル(192.168.0.0/24)でつなぎ、すべてエリア0にします。トンネルインターフェースの OSPF ネットワークタイプを point-to-multipoint non-broadcast にします。
ネットワークタイプを変える
R2(ハブ)
R2(config)#interface tunnel 0
R2(config-if)#ip ospf network point-to-multipoint non-broadcast
R5(スポーク)
R5(config)#interface tunnel0
R5(config-if)#ip ospf network point-to-multipoint non-broadcast
R6(スポーク)
R6(config)#interface tunnel 0
R6(config-if)#ip ospf network point-to-multipoint non-broadcast
インターフェースの状態を確認する
ネットワークタイプは POINT_TO_MULTIPOINT と表示され、Hello 間隔は 30 秒、Dead 間隔は 120 秒です。State も POINT_TO_MULTIPOINT で、DR・BDR の行はありません。
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 POINT_TO_MULTIPOINT, Cost: 1000 Topology-MTID Cost Disabled Shutdown Topology Name 0 1000 no no Base Transmit Delay is 1 sec, State POINT_TO_MULTIPOINT Timer intervals configured, Hello 30, Dead 120, Wait 120, Retransmit 5 oob-resync timeout 120 Hello due in 00:00:07 Supports Link-local Signaling (LLS) Cisco NSF helper support enabled IETF NSF helper support enabled Index 2/2, flood queue length 0 Next 0x0(0)/0x0(0)
neighbor コマンドでネイバーを指定する
non-broadcast なのでネイバーを自動では見つけません。ハブの R2 で、neighbor にスポークのトンネルアドレスを指定します。
R2
R2(config)# router ospf 1 R2(config-router)# neighbor 192.168.0.5 R2(config-router)# neighbor 192.168.0.6
すると、R5・R6 との隣接関係が FULL になります。今回はハブの R2 だけに neighbor を設定しました。スポーク側は、ハブから届いた Hello に応えるので、neighbor の設定は不要です。
%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
R2# show ip ospf neighbor Neighbor ID Pri State Dead Time Address Interface 6.6.6.6 0 FULL/ - 00:01:53 192.168.0.6 Tunnel0 5.5.5.5 0 FULL/ - 00:01:53 192.168.0.5 Tunnel0
point-to-multipoint は、ネットワークをポイントツーポイントのリンクの集まりとして扱うので、DR・BDR を選びません。broadcast で DR・BDR が表示される欄は - になります。スポーク側でも同じです。
R5
R5#show ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface
2.2.2.2 0 FULL/ - 00:01:55 192.168.0.2 Tunnel0
R6
R6#show ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface
2.2.2.2 0 FULL/ - 00:01:42 192.168.0.2 Tunnel0
DR・BDR を選ばないので、broadcast や non-broadcast のときのように、スポークの優先度を 0 にする必要はありません。
経路を確認する
ハブの R2 は、スポークのループバックに加えて、スポークのトンネルアドレスを /32 のホスト経路として学習しています。point-to-multipoint では、各ルータが自分のインターフェースのアドレスを /32 で広告するためです。
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:02:53, Tunnel0
6.0.0.0/32 is subnetted, 1 subnets
O 6.6.6.6 [110/1001] via 192.168.0.6, 00:02:53, Tunnel0
192.168.0.0/24 is variably subnetted, 4 subnets, 2 masks
O 192.168.0.5/32 [110/1000] via 192.168.0.5, 00:02:53, Tunnel0
O 192.168.0.6/32 [110/1000] via 192.168.0.6, 00:02:53, Tunnel0
スポークの経路を見ると、ネクストホップはすべてハブの R2(192.168.0.2)です。R5 から見た 6.6.6.6 も、R6 のアドレスではなく R2 経由になり、コストは R5→R2、R2→R6 の2区間分(2001)です。
R5
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:03:07, Tunnel0
6.0.0.0/32 is subnetted, 1 subnets
O 6.6.6.6 [110/2001] via 192.168.0.2, 00:02:57, Tunnel0
192.168.0.0/24 is variably subnetted, 4 subnets, 2 masks
O 192.168.0.2/32 [110/1000] via 192.168.0.2, 00:03:07, Tunnel0
O 192.168.0.6/32 [110/2000] via 192.168.0.2, 00:02:57, Tunnel0
R6
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:03:19, Tunnel0
5.0.0.0/32 is subnetted, 1 subnets
O 5.5.5.5 [110/2001] via 192.168.0.2, 00:03:19, Tunnel0
192.168.0.0/24 is variably subnetted, 4 subnets, 2 masks
O 192.168.0.2/32 [110/1000] via 192.168.0.2, 00:03:19, Tunnel0
O 192.168.0.5/32 [110/2000] via 192.168.0.2, 00:03:19, Tunnel0
| 表示 | 意味 |
|---|---|
| 192.168.0.x/32 | point-to-multipoint のインターフェースのアドレスを、各ルータが /32 のホスト経路として広告したもの |
| via 192.168.0.2 | ネクストホップはすべてハブ。スポーク同士は隣接関係がないので、ハブを経由する経路になる |
| [110/2001] | トンネル2区間(1000+1000)とループバック(1)のコスト |
DMVPN フェーズ1ではすべての通信がハブを経由する構成なので、ネクストホップがハブになっても問題ありません。
トレースルートで経路を確かめる
R5 から R6 のループバックへトレースルートすると、1ホップ目がハブの R2(192.168.0.2)、2ホップ目が R6(192.168.0.6)です。
R5# traceroute 6.6.6.6
Type escape sequence to abort.
Tracing the route to 6.6.6.6
VRF info: (vrf in name/id, vrf out name/id)
1 192.168.0.2 16 msec 44 msec 36 msec
2 192.168.0.6 108 msec 80 msec 80 msec
まとめ
| 項目 | point-to-multipoint non-broadcast(DMVPN フェーズ1) |
|---|---|
| ネイバーの検出 | 自動ではしない。ハブで neighbor にスポークのアドレスを指定する |
| DR・BDR | 選ばない(スポークの優先度の変更は不要) |
| タイマー | Hello 30 秒、Dead 120 秒 |
| 経路 | インターフェースのアドレスを /32 で広告。スポーク間の経路のネクストホップはハブ |
ネクストホップが必ずハブになるので、スポーク間を直接通信させたいフェーズ2には向きません。フェーズ2では broadcast や non-broadcast を使います。
コメント