ISATAPトンネルとは

ISATAP(Intra-Site Automatic Tunnel Addressing Protocol)トンネルは、IPv4ネットワーク上のデュアルスタックホストをIPv6ネットワークへ接続するために利用します。ISATAPトンネルによって、トンネルを終端するルータとデュアルスタックホスト間はあたかも1つのIPv6サブネットであるかのように扱うことができます。ISATAPトンネルのプレフィクスは自由に設定することができます。

図 ISATAPトンネルの概要
図 ISATAPトンネルの概要

ISATAPトンネルのアドレス

ISATAPトンネルでは、次のようにインタフェースIDの部分に転送用IPv4ヘッダで指定するべきIPv4アドレスを埋め込んでいます。

ISATAPトンネルのIPv6アドレス

<任意のプレフィクス>:0:5EFE:<IPv4アドレス>

リンクローカルアドレス FE80::5EFE:<IPv4アドレス>


ISATAPトンネルのIPv6パケットの転送

次のネットワーク構成において、ISATAPトンネルでのIPv6パケットの転送について見ていきます。

図 ISATAPトンネルの構成例
図 ISATAPトンネルの構成例

ルータとデュアルスタックホスト間でISATAPトンネルを設定すると、ルータとデュアルスタックホストは同一のIPv6ネットワークに接続されているものとみなして、任意のプレフィクスを割り当てることができます。上の図では2001:1:1:1::/64をISATAPトンネルのプレフィクスとしています。そして、インタフェースIDの下位32ビットにそれぞれのIPv4アドレスが埋め込まれます。また、デュアルスタックホストはデフォルトゲートウェイとして、ルータのリンクローカルアドレスFE80::5EFE:C0A8:01:FEを利用します。

このようなネットワーク構成で、デュアルスタックホストからIPv6ネットワークへ通信するときは、別ネットワークなのでIPv6パケットをデフォルトゲートウェイに転送します。デフォルトゲートウェイのアドレスの下位32ビットにルータのIPv4アドレスが埋め込まれています。IPv6パケットに転送用IPv4ヘッダを付加して、その宛先IPv4アドレスとしてルータのIPアドレスを指定して転送します。

図 ISATAPトンネルのパケット転送
図 ISATAPトンネルのパケット転送

ISATAPトンネルの設定

ISATAPトンネルインタフェースの設定の流れは次のようになります。

  1. ISATAPトンネルインタフェースの作成
  2. トンネルインタフェースにIPv6アドレスを割り当て
  3. ルーティングの設定

また、トンネルを終端するデュアルスタックホストでの設定も必要です。

  • ISATAPトンネルを終端するルータのIPv4アドレスの指定

1. ISATAPトンネルインタフェースの作成

ISATAPトンネルの設定は、トンネルインタフェースを作成してトンネルモードをISATAPに変更します。ISATAPトンネルではIPv6パケットを直接IPv4でカプセル化します。そして、転送用IPv4ヘッダの送信元IPアドレスとなるtunnel sourceを指定します。

ISATAPトンネルインタフェースの作成

(config)#interface tunnel <num>
(config-if)#tunnel mode ipv6ip isatap
(config-if)# tunnel source {<src-interface-name>|<src-ip-address>}

<num> : インタフェース番号
<src-interface-name> : 転送用IPv4ヘッダの送信元IPv4アドレスとして利用するインタフェース名
<src-ipv4-address> : 転送用IPv4ヘッダの送信元IPv4アドレス

この設定でISATAPトンネルのトンネルインタフェースはup/upになります。

トンネルインタフェースにIPv6アドレスを割り当て

トンネルインタフェースにIPv6パケットをルーティングするためには、IPv6アドレスの設定が必要です。ISATAPトンネルには任意のIPv6プレフィクスを設定できます。インタフェースIDにtunnel sourceで指定したIPv4アドレスが埋め込まれます。ISATAPトンネルのIPv6アドレスの設定でeui-64のオプションを指定することでISATAPトンネルのインタフェースIDの設定となります。

トンネルインタフェースにIPv6アドレスを割り当て

(config)#interface tunnel <num>
 (config-if)#ipv6 address <prefix>/<prefix-length> eui-64

<num> : インタフェース番号
<ipv6-address> : 設定するIPv6アドレス
<prefix-length> : プレフィクス長

また、ISATAPトンネルのインタフェースにはFE80:05EFE:<tunnel sourceのIPv4アドレス>のリンクローカルアドレスが自動的に割り当てられます。

ISATAPトンネルでは、RAメッセージの送信がデフォルトで無効化されています。RAメッセージを送信するためには、次の設定を行います。

ISATAPトンネルでRAメッセージを送信

(config)#interface tunnel <num>
(config-if)#no ipv6 nd suppress-ra

これにより、ISATAPトンネルで接続しているデュアルスタックホストへIPv6プレフィクスをアドバタイズできるようになります。

ルーティングの設定

ISATAPトンネルを設定するときのルーティングは、トンネルを終端するルータ以外のルータをきちんと考えてください。トンネルを終端するルータ以外のルータがISATAPトンネルに割り当てたIPv6プレフィクスをきちんと学習できるようにしないといけません。

図 ISATAPトンネルを利用しているときのルーティング
図 ISATAPトンネルを利用しているときのルーティング

そのためには、ISATAPトンネルを終端するルータでISATATPトンネルのプレフィクスをRIPngやOSPFv3でアドバタイズします。スタティックルートを利用するときには、トンネルを終端するルータ以外のルータでスタティックルートを設定することになります。

ISATAPトンネルを終端するルータのIPv4アドレスの指定

デュアルスタックホスト側では、ISATAPトンネルを終端するルータを指定します。Windowsのホストでは、コマンドプロンプトから以下のように設定します。

ISATAPトンネルを終端するルータのIPv4アドレスの指定

C:\>netsh interface ipv6 isatap set router <ip-address>

<ip-address> : ISATAPトンネルを終端するルータのIPv4アドレス

デュアルスタックホストは、指定したルータのIPv4アドレスを埋め込んだISATAPのインタフェースIDのリンクローカルアドレス(FE80::5EFE:<ip-address>)をデフォルトゲートウェイとして利用します。

また、ルータからRAメッセージを受信すると、ISATAPトンネルに割り当てたプレフィクスのIPv6アドレスを生成できます。デュアルスタックホスト自身ののISATAPインタフェースのリンクローカルアドレスは自身のIPv4アドレスを埋め込んだアドレスです。

ISATAPトンネルの設定例

ISATAPトンネルの設定例として、以下のネットワーク構成を考えます。

図 ISATAPトンネルの設定例

ISATAPトンネルインタフェースの作成

R1でISATAPトンネルを作成します。トンネルモードをISATAPにして、tunnel sourceとしてFa0/0を指定します。

R1

interface tunnel 1
 tunnel mode ipv6ip isatap
 tunnel source fa 0/0

トンネルインタフェースにIPv6アドレスを割り当て

ISATAPトンネルインタフェースにIPv6パケットをルーティングできるようにするためにIPv6アドレスを設定します。今回は、2001:10:10:10::/64のプレフィクスを設定します。また、ISATAPトンネルインタフェースでRAを送信できるようにします。

R1

interface tunnel 1
 ipv6 address 2001:10:10:10::/64 eui-64
 no ipv6 nd suppress-ra

これでR1でのISATAPの設定は完了です。R1でshow ipv6 interfaceコマンドでISATAPトンネルの状態を確認すると、次のようになります。

R1

R1#show ipv6 interface tunnel 1
Tunnel1 is up, line protocol is up
  IPv6 is enabled, link-local address is FE80::5EFE:C0A8:1FD
  Global unicast address(es):
    2001:10:10:10:0:5EFE:C0A8:1FD, subnet is 2001:10:10:10::/64 [EUI]
  Joined group address(es):
    FF02::1
    FF02::2
    FF02::1:FFA8:1FD
  MTU is 1480 bytes
  ICMP error messages limited to one every 100 milliseconds
  ICMP redirects are enabled
  ND DAD is not supported
  ND reachable time is 30000 milliseconds
  ND advertised reachable time is 0 milliseconds
  ND advertised retransmit interval is 0 milliseconds
  ND router advertisements live for 1800 seconds
  Hosts use stateless autoconfig for addresses.

ISATAPトンネルを終端するルータのIPv4アドレスの指定

デュアルスタックホストでは、ISATAPトンネルを終端するR1のIPv4アドレスを指定します。コマンドプロンプトで以下の設定を行います。

C:\> netsh interface ipv6 isatap set router 192.168.1.253

デュアルスタックホストは、R1からのRAによって2001:10:10:10のプレフィクスを取得します。デュアルスタックホストのIPv6設定を確認すると、次のようになります。

C:\> ipconfig
~省略~
Tunnel adapter isatap.v-t-5.kta:

   接続固有の DNS サフィックス . . . : v-t-5.kta
   IPv6 アドレス . . . . . . . . . . . : 2001:10:10:10:0:5efe:192.168.1.4
   リンクローカル IPv6 アドレス. . . . : fe80::5efe:192.168.1.4%22
   デフォルト ゲートウェイ . . . . . : fe80::5efe:192.168.1.253%22
~省略~