IPv4 ネットワーク経由で IPv6 パケットをカプセル化する方法としてもっとも望ましいのは、6to4 ルーティングを使用することです。6to4 は、tun を使用して自動的にトンネルを作成します。6to4 ルーティングの詳細は、移行機構としての 6to4を参照してください。6to4 トンネルの設定作業については、6to4 ルーターの設定方法を参照してください。
トンネルインタフェースのフォーマットは次のとおりです。
ip.tun ppa |
ppa は物理的な接続ポイントです。
システム起動時に、トンネルモジュール (tun) は、(ifconfig によって) IP の最上位にプッシュされ、仮想インタフェースが作成されます。このプッシュは、hostname6.* ファイルを作成することによって行われます。
たとえば、IPv4 ネットワーク経由で IPv6 パケットをカプセル化するためのトンネルを作成するには、次のファイルを作成します。
/etc/hostname6.ip.tun0 |
このファイルの内容は、インタフェースが結合された後に ifconfig(1M) に渡されます。ポイントツーポイントトンネルの設定に必要なパラメータになります。
次のリストは、hostname6.ip.tun0 ファイルのエントリの例です。
tsrc 120.68.100.23 tdst 120.68.7.19 up addif 1234:1234::1 5678:5678::2 up |
この例では、IPv4 ソースと宛先アドレスは、IPv6 リンクローカルアドレスを自動設定するためのトークンとして使用されます。これらのアドレスは、 ip.tun0 インタフェースのソースと宛先アドレスです。次の 2 つのインタフェース ip.tun0 インタフェースと、論理インタフェース ip.tun0:1 が設定されます。 論理インタフェースには、addif コマンドによって指定されたソースと宛先 IPv6 アドレスがあります。
すでに述べたとおり、システムをマルチユーザーとして起動すると、これらの設定ファイルの内容が変更されずに ifconfig に渡されます。上の例は次の内容と同じです。
# ifconfig ip.tun0 inet6 plumb # ifconfig ip.tun0 inet6 tsrc 120.68.100.23 tdst 120.68.7.19 up # ifconfig ip.tun0 inet6 addif 1234:1234::1 5678:5678::2 up |
このトンネルにおける ifconfig -a の出力は次のとおりです。
ip.tun0: flags=2200850<UP,POINTOPOINT,RUNNING,MULTICAST, NONUD,IPv6> mtu 1480 index 6 inet tunnel src 120.68.100.23 tunnel dst 120.68.7.19 inet6 fe80::c0a8:6417/10 --> fe80::c0a8:713 ip.tun0:1: flags=2200850<UP,POINTOPOINT,RUNNING,MULTICAST,NONUD,IPv6> mtu 1480 index 5 inet6 1234:1234::1/128 --> 5678:5678::2 |
次の構文で設定ファイルに行を追加すれば、さらに論理インタフェースを設定できます。
addif IPv6-source IPv6-destination up |
トンネルのどちらかの端がトンネル経由で 1 つ以上のプレフィックスを通知する IPv6 ルータである場合、トンネル設定ファイルには addif コマンドは必要ありません。 他のアドレスは自動設定されるため、必要とされる可能性があるのは tsrc と tdst だけです。
場合によっては、特定のトンネルについて、固有のソースリンクローカルアドレスと宛先リンクローカルアドレスを手動で設定する必要があることもあります。その場合、設定ファイルの最初の行を変更して、これらのリンクローカルアドレスを組み込みます。次に例を示します。
tsrc 120.68.100.23 tdst 120.68.7.19 fe80::1/10 fe80::2 up |
ソースリンクローカルアドレスには、長さが 10 のプレフィックスがあります。この例では、ip.tun0 インタフェースは次のようになります。
ip.tun0: flags=2200850<UP,POINTOPOINT,RUNNING,MULTICAST,NONUD,IPv6> mtu 1480 index 6 inet tunnel src 120.68.100.23 tunnel dst 120.68.7.19 inet6 fe80::1/10 --> fe80::2 |
IPv6 ネットワーク (IPv6 経由の IPv6) 経由で IPv6 パケットをカプセル化するためのトンネルを作成するには、次のファイルを作成します。
/etc/hostname6.ip6.tun0 |
次のリストは、hostname6.ip6.tun0 ファイルのエントリの例です。
tsrc 2000::114:a00:20ff:fe72:668c tdst 2000::103:a00:20ff:fe9b:a1c3 fe80::4 fe80::61 up |
IPv6 ネットワーク (IPv6 経由の IPv4) 経由で IPv4 パケットをカプセル化するためのトンネルを作成するには、次のファイルを作成します。
/etc/hostname.ip6.tun0 |
次のリストは、hostname.ip6.tun0 ファイルのエントリの例です。
tsrc 2000::114:a00:20ff:fe72:668c tdst 2000::103:a00:20ff:fe9b:a1c3 10.0.0.4 10.0.0.61 up |
IPv4 ネットワーク (IPv4 経由の IPv4) 経由で IPv4 パケットをカプセル化するためのトンネルを作成するには、次のファイルを作成します。
/etc/hostname.ip.tun0 |
次のリストは、hostname.ip.tun0 ファイルのエントリの例です。
tsrc 120.46.86.158 tdst 120.46.86.122 10.0.0.4 10.0.0.61 up |
tun の固有の情報については、tun(7M) のマニュアルページを参照してください。IPv6 への移行時のトンネルの概念の一般的な説明については、トンネル機構を参照してください。トンネルの設定方法については、IPv4 トンネルによる IPv6 の設定方法を参照してください。