IP

【図解】tunnelインタフェースの使われ方 〜IPアドレス設定やVPNのトンネリング、OSPFのVirtual-Linkの代替、等〜

tunnelインタフェースとは

tunnel インタフェースとは、間に複数のネットワーク機器が挟まれた状態のネットワーク機器同士をあたかも直結しているかのように見せる、論理インタフェースです。サイト間 VPNのトンネリングを実現するために使われることが多いです。

具体的には、以下のようにルータ A の物理インタフェース Gi0/0 とルータ D の物理インタフェース Gi0/0 を以下のように設定するとします。

すると、ルーティングテーブルを見ると直結インタフェースとしてトンネルインタフェースが見えるようになります。

R1# show ip route
C 10.1.14.0 is directly connected, Tunnel1
C 10.1.12.0 is directly connected, GigabitEthernet0/0
C 10.1.1.0 is directly connected, GigabitEthernet0/1
S 10.1.34.0 [1/0] via 10.1.12.2

PC1 から PC2 への通信を通常のルーティングで行うと以下のようになりますが、

トンネルインタフェースを使ったスタティックルートにすると以下のようになります。

R1 から R4 までの間は、オリジナルのIPパケットを、GRE(Generic Route Encapsulation というプロトコルにカプセル化します。

送信元 IP と宛先 IP は source と destination で指定した IP です。

カプセル化方式 (トンネリング方式) はデフォルトで GRE になっていますが、IPIP や IPsec 等にも設定できます。

R1(config-if)# tunnel mode ipip

また、Cisco のトンネル確認コマンドは、以下のように tunnel インタフェースの状態を見ることです。『Tunnel1 is up, line protocol is up』と表示されればOKです。

R1# show interface tunnel 1
Tunnel1 is up, line protocol is up

tunnel インタフェースにIPアドレスは必要か?

tunnel インタフェースには IP を振る必要ではありますが、この IP にはあまり意味がありません。

理由は、tunnel インタフェースは point-to-point インタフェースであり、serial インタフェース等と同様、ルーティング時の NextHop は IP 指定は不要で、NextHop として tunnel インタフェースのみを指定すれば良いからです。

なので serial インタフェースと同様、IP unnumbered で他のインタフェースの IP から借りることもできます。

R1(config-if)# ip unnumbered GigabitEthernet 0/0

tunnel インタフェースのUp Down

先程のケースで注意すべきは、tunnel インタフェースで OSPF 等の動的ルーティングを有効化し、source や destination の IP を tunnel インタフェース経由で学習してしまわないようにすることです。

例えば以下のような設定をしてはいけません。

Gi0/0 インタフェースと tunnel インタフェースの IP が一緒なので、『 network 10.1.12.0 0.0.0.255 area0 』のコマンドで両インタフェースで OSPF が有効になってしまうからです。

この場合、以下のようにtunnel インタフェースが Up Down を繰り返し、その結果 OSPF のネイバーも Up Downを繰り返します。

*Mar  1 01:35:11.067: %LINEPROTO-5-UPDOWN: Line protocol on Interface Tunnel1, changed state to up
*Mar  1 01:35:15.831: %OSPF-5-ADJCHG: Process 1, Nbr 4.4.4.4 on Tunnel1 from LOADING to FULL, Loading Done
*Mar  1 01:35:30.067: %TUN-5-RECURDOWN: Tunnel1 temporarily disabled due to recursive routing
*Mar  1 01:35:31.067: %LINEPROTO-5-UPDOWN: Line protocol on Interface Tunnel1, changed state to down
*Mar  1 01:35:31.067: %OSPF-5-ADJCHG: Process 1, Nbr 4.4.4.4 on Tunnel1 from FULL to DOWN, Neighbor Down: Interface down or detached

このような場合はOSPFをインタフェース単位で設定するようにしましょう。

R1(config)# interface GigabitEthernet 0/0
R1(config-if)# ip ospf 1 area 0

Virtual Link の代替手段としての Tunnel インタフェース

tunnel インタフェースの他の使い道として、OSPF の Virtual-Link の代替手段とすることができます。特に stub エリアでは Virtual-Link は使えないので、以下のようにすることで stub エリアを跨いだ OSPF ルート配布が可能となります。

コメント

  1. tk より:

    めちゃくちゃわかりやすい…。
    tunnelインターフェースがずっともやもやしていました。
    だいぶ、助かりました。ありがとうございます。

    • nesuke より:

      tk さん、コメントありがとうございます!
      お役に立てたようで何よりです。
      今後も本サイトをどうぞよろしくお願いいたします。

タイトルとURLをコピーしました