目次
IPv6 over IPv4スタティックトンネルの概要
IPv6 over IPv4スタティックトンネル(以下、単に「スタティックトンネル」とします)は、IPv4ネットワークを介してIPv6パケットを転送するためのポイントツーポイント接続のトンネルです。スタティックトンネルのインタフェースにはIPv6アドレスを割り当てて、仮想的にIPv6ネットワークを接続します。
トンネルインタフェースでIPv6パケットを転送するときに、IPv6パケットを転送用のIPv4ヘッダでカプセル化します。スタティックトンネルでは、カプセル化するIPv4ヘッダの宛先IPv4アドレスをあらかじめ設定で決めておきます。
たくさんのIPv6ネットワークがあると・・・
スタティックトンネルによって、手軽にIPv4ネットワークを通じてIPv6ネットワークを接続することができます。しかし、IPv6ネットワークの数が多くなれば、拡張性に問題が出てくることがあります。1つのスタティックトンネルインタフェースでは、1つのIPv6ネットワークしか接続できません。そのため、多数のIPv6ネットワークが存在すれば、多数のスタティックトンネルのインタフェースが必要になります。
スタティックトンネルの設定
スタティックトンネルの設定の流れは次のようになります。
- トンネルインタフェースの作成
- トンネルインタフェースにIPv6アドレスを割り当て
- ルーティングの設定
1. トンネルインタフェースの作成
IPv4ネットワークとIPv6ネットワークの境界のルータでトンネルインタフェースを作成します。トンネルインタフェースは、グローバルコンフィグレーションモードで次のコマンドを入力します。
(config)#interface tunnel <num>
(config-if)#tunnel mode ipv6ip
(config-if)#tunnel destination <dst-ipv4-address>
(config-if)#tunnel source {<src-interface-name> | <src-ipv4-address>}
<num> : インタフェース番号
<dst-ipv4-address> : 転送用IPv4ヘッダの宛先IPv4アドレス
<src-interface-name> : 転送用IPv4ヘッダの送信元IPv4アドレスとして利用するインタフェース名
<src-ipv4-address> : 転送用IPv4ヘッダの送信元IPv4アドレス
トンネルインタフェースはデフォルトでGREのカプセル化です。GREのヘッダを省略して、IPv6パケットを直接IPv4ヘッダでカプセル化するためにtunnel mode ipv6ipのコマンドを利用します。
そして、スタティックトンネルはtunnel destinationコマンドで転送用のIPv4ヘッダの宛先IPv4アドレスを明示的に設定しなければいけません。当然ながら、指定したIPv4アドレスへの接続性が必要です。
2. トンネルインタフェースにIPv6アドレスを割り当て
トンネルインタフェースでIPv6パケットを送受信するためには、トンネルインタフェースにIPv6アドレスを割り当てておかなければいけません。明示的にIPv6アドレスを設定してもいいですし、unnumberedで他のインタフェースのIPv6アドレスを使い回す設定でもOKです。
明示的にトンネルインタフェースのIPv6アドレスの設定は、トンネルインタフェースのコンフィグレーションモードで次のコマンドを入力します。
(config)#interface tunnel <num>
(config-if)#ipv6 address <ipv6-address> / <prefix-length>
<num> : インタフェース番号
<ipv6-address> : 設定するIPv6アドレス
<prefix-length> : プレフィクス長
unnumberedで他のインタフェースのIPv6アドレスを使い回す設定は、以下のコマンドです。
(config)#interface tunnel <num>
(config-if)#ipv6 unnumbered <interface-name>
<num> : インタフェース番号
<interface-name> : インタフェース名
IPv6のインタフェースにはリンクローカルアドレスも割り当てられます。トンネルインタフェースでは、リンクローカルアドレスとしてtunnel sourceのIPv4アドレスが含まれるアドレスが自動的に割り当てられます。
FE80::<tunnel sourceのIPv4アドレス>
3. ルーティングの設定
スタティックトンネルを設定して、IPv6アドレスを割り当てただけでは、トンネルエンドポイントルータ同士がポイントツーポイント接続しただけです。トンネルインタフェース経由でIPv6パケットをルーティングできるように適切なルーティングの設定をしてください。
スタティックルートで設定しても、ルーティングプロトコルの設定でもOKです。ルーティングの設定もきちんと考えなければいけないということを忘れないようにしてください。
スタティックトンネルの設定例
スタティックトンネルの設定例として、以下のシンプルなネットワーク構成を考えます。
R1、R2それぞれのルータのLoopback0に設定したIPv6ネットワークを、スタティックトンネルで接続して通信できるようにします。
トンネルインタフェースの作成
まず、R1-R2間でトンネルインタフェースを作成して、R1-R2間をポイントツーポイント接続にします。
R1
interface tunnel 0 tunnel mode ipv6ip tunnel destination 192.168.1.2 tunnel source fa 0/0
R2
interface tunnel 0 tunnel mode ipv6ip tunnel destination 192.168.1.1 tunnel source fa 0/0
トンネルインタフェースにIPv6アドレスを割り当て
トンネルインタフェース上でIPv6パケットを送受信できるように、トンネルインタフェースにIPv6アドレスを設定します。今回は、直接IPv6アドレスを設定する代わりに、unnumberedでLoopback0と同じIPv6アドレスを使うことにします。
R1
interface tunnel 0 ipv6 unnumbered loopback0
R2
interface tunnel 0 ipv6 unnumbered loopback0
ここまでの設定が正しくできていれば、R1でIPv6インタフェースの状態を確認すると、次のように表示されます。
R1
R1#show ipv6 interface brief FastEthernet0/0 [up/up] Loopback0 [up/up] FE80::CE01:38FF:FE90:0 2001:1:2:3::1 Tunnel0 [up/up] FE80::C0A8:101 unnumbered (Loopback0) R1#show ipv6 interface tunnel 0 Tunnel0 is up, line protocol is up IPv6 is enabled, link-local address is FE80::C0A8:101 Interface is unnumbered. Using address of Loopback0 No global unicast address is configured Joined group address(es): FF02::1 FF02::2 FF02::1:FFA8:101 MTU is 1480 bytes ICMP error messages limited to one every 100 milliseconds ICMP redirects are enabled ND DAD is enabled, number of DAD attempts: 1 ND reachable time is 30000 milliseconds
ルーティングの設定
このままでは、ルーティングテーブルに相手のLoopback0に設定しているIPv6ネットワークのプレフィクスが存在しません。IPv6ネットワーク間で通信を行うためには、IPv6ルーティングの設定が必要です。今回はRIPngを使って次のようにIPv6ルーティングの設定を行います。
R1
ipv6 unicast-routing ! ipv6 router rip RIPng ! interface loopback 0 ipv6 rip RIPng enable ! interface tunnel 0 ipv6 rip RIPng enable
R2
ipv6 unicast-routing ! ipv6 router rip RIPng ! interface loopback 0 ipv6 rip RIPng enable ! interface tunnel 0 ipv6 rip RIPng enable
R1、R2それぞれがトンネルインタフェース上でRIPngを利用して、お互いのLoopback0のIPv6ネットワークプレフィクスを学習します。このときのIPv6ルーティングテーブルは次のとおりです。
R1
R1#show ipv6 route IPv6 Routing Table - 5 entries Codes: C - Connected, L - Local, S - Static, R - RIP, B - BGP U - Per-user Static route I1 - ISIS L1, I2 - ISIS L2, IA - ISIS interarea, IS - ISIS summary O - OSPF intra, OI - OSPF inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2 ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2 C 2001:1:2:3::/64 [0/0] via ::, Loopback0 L 2001:1:2:3::1/128 [0/0] via ::, Loopback0 R 2001:100:200:300::/64 [120/2] via FE80::C0A8:102, Tunnel0 L FE80::/10 [0/0] via ::, Null0 L FF00::/8 [0/0] via ::, Null0
R2
R2#show ipv6 route IPv6 Routing Table - 5 entries Codes: C - Connected, L - Local, S - Static, R - RIP, B - BGP U - Per-user Static route I1 - ISIS L1, I2 - ISIS L2, IA - ISIS interarea, IS - ISIS summary O - OSPF intra, OI - OSPF inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2 ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2 R 2001:1:2:3::/64 [120/2] via FE80::C0A8:101, Tunnel0 C 2001:100:200:300::/64 [0/0] via ::, Loopback0 L 2001:100:200:300::2/128 [0/0] via ::, Loopback0 L FE80::/10 [0/0] via ::, Null0 L FF00::/8 [0/0] via ::, Null0
これで、スタティックトンネルによってIPv6ネットワークを相互に接続して通信可能です。R1からIPv6の通信を確認するために、IPv6 Pingを行うと次のようになります。
R1
R1#ping 2001:100:200:300::2 source loopback 0 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 2001:100:200:300::2, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 1/2/4 ms
IPv6
- [演習] IPv6ルーティング RIPng&OSPFv3
- IPv6ヘッダフォーマット
- IPv6アドレスの表記フォーマット
- IPv6ユニキャストアドレス
- IPv6マルチキャストアドレス
- IPv6アドレスの設定方法 ~手動/SLAAC/DHCPv6~
- Cisco IPv6アドレスの設定と確認コマンド
- Cisco IPv6アドレスの設定例
- IPv6アドレス解決の仕組み
- IPv6 トンネリングの概要
- IPv6 over IPv4 スタティックトンネル
- 6to4トンネル
- ISATAPトンネル
- 基本的なIPv6ネットワークの設定例
- IPv6 設定ミスの切り分けと修正 Part1
- IPv6 設定ミスの切り分けと修正 Part2
- IPv6 設定ミスの切り分けと修正 Part3