【DMVPN】フェーズ1上のOSPF(Point-to-multipointタイプ)

 

DMVPN フェーズ1では、スポーク同士の通信もすべてハブを経由します。この記事では、DMVPN フェーズ1のトンネルで OSPF のネットワークタイプを point-to-multipoint にして、ネイバーと経路を確かめます。

DMVPN フェーズ1の構成は 【DMVPN】フェーズ1をわかりやすく解説、DMVPN 上で OSPF を動かすときの基本は 【OSPF】DMVPN上でOSPFを有効後、大量にエラーが出る を参照してください。

この記事でわかること
  1. point-to-multipoint ではネイバーを自動で見つけ、DR・BDR を選ばないこと
  2. インターフェースのアドレスが /32 の経路として広告されること
  3. 経路のネクストホップがすべてハブになり、通信がハブを経由すること

検証構成

ハブの R2 と、スポークの R5・R6 を DMVPN のトンネル(192.168.0.0/24)でつなぎ、すべてエリア0にします。トンネルインターフェースの OSPF ネットワークタイプを point-to-multipoint にします。

OSPF Area 0DMVPNTunnel 192.168.0.0/24R2(Hub)Lo0 2.2.2.2/32R5Spoke1Lo0 5.5.5.5/32R6Spoke2Lo0 6.6.6.6/32.2.5.6point-to-multipointpoint-to-multipointpoint-to-multipoint
図1 検証構成(トンネルのネットワークタイプは point-to-multipoint)

ネットワークタイプを変える

R2(ハブ)

R2(config)#interface tunnel0
R2(config-if)#ip ospf network point-to-multipoint

R5(スポーク)

R5(config)#interface tunnel0
R5(config-if)#ip ospf network point-to-multipoint

R6(スポーク)

R6(config)#interface tunnel0
R6(config-if)#ip ospf network point-to-multipoint

インターフェースの状態を確認する

ネットワークタイプは POINT_TO_MULTIPOINT で、Hello 間隔は 30 秒、Dead 間隔は 120 秒です。このネットワークタイプでは、Hello をマルチキャスト(224.0.0.5)で送り、ネイバーを自動で見つけます。neighbor コマンドを使わなくても、R5・R6 と隣接関係ができています。

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:15
  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)
  Last flood scan length is 1, maximum is 3
  Last flood scan time is 0 msec, maximum is 4 msec
  Neighbor Count is 2, Adjacent neighbor count is 2 
    Adjacent with neighbor 5.5.5.5
    Adjacent with neighbor 6.6.6.6
  Suppress hello for 0 neighbor(s)
マルチキャストの設定

DMVPN のトンネルで Hello をマルチキャストで送るには、NHRP のマルチキャストの設定(ハブは ip nhrp map multicast dynamic、スポークはハブの NBMA アドレスを指定)が必要です。この検証の DMVPN の設定は、DMVPN フェーズ1の記事 を参照してください。

ネイバーを確認する

R2

R2# show ip ospf neighbor 

Neighbor ID     Pri   State           Dead Time   Address         Interface
5.5.5.5           0   FULL/  -        00:01:54    192.168.0.5     Tunnel0
6.6.6.6           0   FULL/  -         00:01:54    192.168.0.6     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:45    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:56    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:00:50, Tunnel0
      6.0.0.0/32 is subnetted, 1 subnets
O        6.6.6.6 [110/1001] via 192.168.0.6, 00:00:50, 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:00:50, Tunnel0
O        192.168.0.6/32 [110/1000] via 192.168.0.6, 00:00:50, 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:02:57, 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:02:57, 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:30, Tunnel0
      5.0.0.0/32 is subnetted, 1 subnets
O        5.5.5.5 [110/2001] via 192.168.0.2, 00:03:30, 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:30, Tunnel0
O        192.168.0.5/32 [110/2000] via 192.168.0.2, 00:03:30, Tunnel0
表示意味
192.168.0.x/32point-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 40 msec 36 msec
  2 192.168.0.6 92 msec 84 msec 80 msec
DMVPNR2(Hub)R5R6192.168.0.5192.168.0.6R5 → R2 → R6
図2 R5 から R6 への通信(ネクストホップがハブなので、R2 を経由する)

まとめ

項目point-to-multipoint(DMVPN フェーズ1)
ネイバーの検出自動(Hello をマルチキャストで送る。NHRP のマルチキャストの設定が必要)
DR・BDR選ばない(スポークの優先度の変更は不要)
タイマーHello 30 秒、Dead 120 秒
経路インターフェースのアドレスを /32 で広告。スポーク間の経路のネクストホップはハブ

point-to-multipoint はネイバーの指定も DR の調整もいらず、DMVPN フェーズ1では扱いやすいネットワークタイプです。ネクストホップが必ずハブになるので、スポーク間を直接通信させたいフェーズ2には向きません。

コメント