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 ルート配布が可能となります。
コメント
めちゃくちゃわかりやすい…。
tunnelインターフェースがずっともやもやしていました。
だいぶ、助かりました。ありがとうございます。
tk さん、コメントありがとうございます!
お役に立てたようで何よりです。
今後も本サイトをどうぞよろしくお願いいたします。