Tunnel(ISATAPの仕組み)その2
ここでは、「Tunnel(ISATAPの仕組み)その1」の続きです。ISATAPの通信の流れについて解説していきます。
ISATAPでは、プレフィックスを自由に指定することができます。R1ルータ、PC1のインターフェイスのIPv6アドレスの関係は下図のとおりです。

ISATAPトンネルの作成
Tunnel 0のプレフィックスに単純な「2001:1:1:1/64」を、R1ルータのF0/0のIPv4アドレスを「10.0.0.1/24」を、PC1のIPv4アドレスを「10.0.0.2/24」を指定すると下図のようになります。

設定コマンドは、以下のとおりです。
R1(config)#interface tunnel 0
R1(config-if)#tunnel source f0/0
R1(config-if)#address 2001:1:1:1::/64 eui-64
R1(config-if)#no ipv6 nd ra suppress
R1(config-if)#tunnel mode isatap
ISATAPのプロセス
R1ルータ(ISATAPルータ)とPC1(ISATAPホスト)間でISATAPトンネルが設定されると
①PC1は、R1ルータにRS(ルータ要請)を送信する。
②R1ルータ(ISATAPルータ)は、RA(ルータ広告)でIPv6プレフィックス「2001:1:1:1/64」を通知する。
③PC1はIPv6アドレスを生成する。

①~③のプロセスが実行されることで、PC1は、IPv6接続ができるようになります。
PC1は、グローバルユニキャストアドレスを自動生成する際に、通知されたIPv6プレフィックス「2001:1:1:1/64」とISATAP識別子である「0000:5EFE」、残りの32ビットに自身のIPv4アドレス「10.0.0.2/24」を16進数に変換して生成します。
また、PC1デフォルトゲートウェイとして、ルータのLLA(リンクローカルアドレス)である「FE80::5EFE:0A01:0101」を設定します。
ここまでのR1ルータ、PC1のIPアドレスをまとめたものが下表となります。
| デバイス | インターフェイス | IPv4 アドレス | IPv6 アドレス |
| R1 | F0/0 | 10.1.1.1/24 | 該当なし |
| Tunnel 0 | 該当なし | GUA 2001:1:1:1:0:5EFE:0A01:0101 LLA FE80::5EFE:0A01:0101 | |
| PC1 | F0 | 10.1.1.2/24 | GUA 2001:1:1:1:0:5EFE:0A01:0102 LLA FE80::5EFE:0A01:0102 デフォルトゲートウェイ FE80::5EFE:0A01:0101 |
ISATAPの通信
PC1からIPv6ネットワークへ通信するときは、IPv6パケットをデフォルトゲートウェイに転送します。
その際、IPv6パケットに、R1ルータのIPv4アドレスを宛先とするIPv4ヘッダーを付加して送信します。IPv4でカプセル化されたパケットを受け取ったR1ルータは、IPv4ヘッダーを取り除き、IPv6パケットを取り出して、IPv6ネットワークの宛先に転送します。
IPv4のデフォルトゲートウェイのアドレスは、IPv6のデフォルトゲートウェイのアドレスに埋め込まれたIPv4アドレスから求めることができます。

ルーティングについて
ISATAPトンネルを設定する際は、指定したプレフィックスでルーティングされるように配慮しなければいけません。例えば、下図でいうと、R2ルータは、プレフィックスの「2001:1:1:1/64」ルートをルーティングプロトコルなり、スタティックルートで学習する必要があります。

デュアルスタックホストの設定
デュアルスタックホストのは、コマンドで、ISATAPトンネルを設定したR1ルータのIPv4アドレスを指定します。コマンドプロンプトで以下のコマンドを実行します。
C:> netsh interface ipv6 isatap set router 10.1.1.1
