
以下の資料は排他的であると主張していません。 ただし、さまざまなソースから少しずつ収集し、実験的にテストする必要がありました。 その後、取得した知識と経験を体系化し、すべてを1つのメモに記載するというアイデアが生まれました。
Linux Debian v7.XX、Ubuntu v14.XXCentOS v6.XXFreeBSD v10.XXIPv6サポートを実装した後、私が働いている会社のホスティングサイトで、それに応じてVDSの構成を自動化する必要がありました。 これは、あらゆる種類のトンネリングではなく、完全なサポートであることに注意してください。 つまり データセンターのネットワークインフラストラクチャはスイッチングとIPv6ルーティングを提供し、インターネットバックボーンプロバイダーとのBGPv6に対応するインターフェイスがあります。
ネタバレ $ ping6 -n -c 4 ipv6.google.com
PING ipv6.google.com(2a00:1450:4013:c01 :: 66)56データバイト
2a00から64バイト:1450:4013:c01 :: 66:icmp_seq = 1 ttl = 51 time = 12.4 ms
2a00から64バイト:1450:4013:c01 :: 66:icmp_seq = 2 ttl = 51 time = 12.3 ms
2a00から64バイト:1450:4013:c01 :: 66:icmp_seq = 3 ttl = 51 time = 12.4 ms
2a00から64バイト:1450:4013:c01 :: 66:icmp_seq = 4 ttl = 51 time = 12.4 ms
--- ipv6.google.com ping統計---
4パケット送信、4パケット受信、0%パケット損失、時間3017ms
rtt min / avg / max / mdev = 12.393 / 12.423 / 12.465 / 0.028 ms
$ traceroute -n -6 -I ipv6.google.com
ipv6.google.comへのtraceroute(2a00:1450:4013:c01 :: 66)、最大30ホップ、80バイトパケット
1 2a04:XXXX:1 :: 1 11.684 ms 11.758 ms 11.753 ms
2 2a04:XXXX:0:103 :: 1 0.978 ms 0.980 ms 0.977 ms
3 2001:1900:5:2:2 :: 1939 11.640 ms 11.637 ms 11.633 ms
4 2001:1900:104:8 :: 8 11.629 ms 11.699 ms 11.696 ms
5 2001:1900:5:3 :: 276 11.692 ms 11.688 ms 11.683 ms
6 2001:4860 :: 1:0:abf6 11.681 ms 10.735 ms 10.721 ms
7 2001:4860 :: 8:0:abf1 10.705 ms 3.051 ms 3.036 ms
8 2001:4860 :: 8:0:8f8e 5.778 ms 5.768 ms 5.756 ms
9 2001:4860 :: 8:0:519f 9.570 ms 9.562 ms 9.544 ms
10 2001:4860 :: 8:0:519e 23.371 ms 23.363 ms 12.068 ms
11 2001:4860 :: 2:0:8652 12.659 ms 12.637 ms 12.625 ms
12 2a00:1450:4013:c01 :: 66 12.339 ms 12.445 ms 12.426 ms
アドレスは、OS設定に静的に割り当てられ、登録されます。 IPv6自動構成機能が有効になっていません。 これは、アドレス空間のアカウンティングとセキュリティの特性によるものです。 VDSは複数のIPv4およびIPv6アドレスを持つことができるため、タスクは複雑です。
Linux Debian v7.XX、Ubuntu v14.XX
かなり最近のLinuxディストリビューションでは、すでにIPv6が完全にサポートされています。 したがって、手動で再インストールする必要はありません。
設定例を考えてみましょう。
「/ etc / network / interfaces」
オートロー
iface lo inetループバック
allow-hotplug eth0
iface eth0 inet static
アドレス185.XXX.208.119
ネットワーク185.XXX.208.0
ネットマスク255.255.255.0
放送185.XXX.208.255
ゲートウェイ185.XXX.208.1
自動eth0:1
iface eth0:1 inet static
アドレス185.XXX.208.169
ネットマスク255.255.255.255
自動eth0:2
iface eth0:2 inet static
アドレス185.XXX.208.171
ネットマスク255.255.255.255
iface eth0 inet6静的
アドレス2a04:XXXX:1:0:0:0:0:12
ネットマスク48
iface eth0 inet6静的
アドレス2a04:XXXX:1:0:0:0:0:15
ネットマスク48
iface eth0 inet6静的
アドレス2a04:XXXX:1:0:0:0:0:16
ネットマスク48
ゲートウェイ2a04:XXXX:1 :: 1
ここで2つの点に注意してください。 まず、すべてのIPv6アドレスはネットワークインターフェイス自体に直接割り当てられます。IPv4とは異なり、eth0:Xタイプの仮想アダプターを作成する必要はありません。 次に、IPv6のデフォルトゲートウェイがいずれかのアドレスに対して1回指定されます。 彼は皆のために行動します。
ifconfigコマンドの出力の設定の結果:
#ifconfig -a
eth0リンクencap:イーサネットHWaddr 00:16:3e:34:80:fe
inet addr:185.XXX.208.119 Bcast:185.XXX.208.255 Mask:255.255.255.0
inet6 addr:fe80 :: 216:3eff:fe34:80fe / 64スコープ:リンク
inet6 addr:2a04:XXXX:1 :: 12/48スコープ:グローバル
inet6 addr:2a04:XXXX:1 :: 16/48スコープ:グローバル
inet6 addr:2a04:XXXX:1 :: 15/48スコープ:グローバル
UP BROADCAST RUNNING MULTICAST MTU:1500メトリック:1
RXパケット:823965エラー:0ドロップ:0オーバーラン:0フレーム:0
TXパケット:1223エラー:0ドロップ:0オーバーラン:0キャリア:0
衝突:0 txqueuelen:1000
RXバイト:450489490(429.6 MiB)TXバイト:158298(154.5 KiB)
割り込み:26
eth0:1リンクencap:イーサネットHWaddr 00:16:3e:34:80:fe
inet addr:185.XXX.208.169 Bcast:185.XXX.208.169 Mask:255.255.255.255
UP BROADCAST RUNNING MULTICAST MTU:1500メトリック:1
割り込み:26
eth0:2リンクencap:イーサネットHWaddr 00:16:3e:34:80:fe
inet addr:185.XXX.208.171 Bcast:185.XXX.208.171マスク:255.255.255.255
UP BROADCAST RUNNING MULTICAST MTU:1500メトリック:1
割り込み:26
loリンクencap:ローカルループバック
inet addr:127.0.0.1マスク:255.0.0.0
inet6 addr::: 1/128スコープ:ホスト
UPLOOPBACK RUNNING MTU:16436メトリック:1
RXパケット:0エラー:0ドロップ:0オーバーラン:0フレーム:0
TXパケット:0エラー:0ドロップ:0オーバーラン:0キャリア:0
衝突:0 txqueuelen:0
RXバイト:0(0.0 B)TXバイト:0(0.0 B)
基本的な診断は、コマンド「ping6 -n -c 4 ipv6.google.com」および「traceroute -n -6 -I ipv6.google.com」を使用して実行できます。 ネイバーのMACアドレスを確認します:「ip -6 neighbor show」。 ルーティングテーブルを調べます:「route -n6」または「ip -6 route show」。 システムが発信接続に使用するデフォルトのIPv6アドレスを確認します:「ip -6 route get 2a00:1450:4013:c01 :: 65」。
CentOS v6.XX
CentOSの構成は、さらにいくつかのオプションがあり、それらが複数のファイルに散在しているという事実により、より複雑です。
「/ etc / sysconfig / network」
ネットワーキング=はい
ゲートウェイ= 185.XXX.209.1
ホスト名= ipv6.test
NETWORKING_IPV6 =はい
IPV6_AUTOCONF =いいえ
IPV6_AUTOTUNNEL =いいえ
IPV6_DEFAULTDEV = eth0
IPV6_DEFAULTGW = 2a04:XXXX:1 :: 1
「/ etc / sysconfig / network-scripts / ifcfg-eth0」
TYPE =イーサネット
デバイス= eth0
ONBOOT =はい
IPADDR = 185.XXX.209.208
ネットワーク= 185.XXX.209.0
ネットマスク= 255.255.255.0
放送= 185.XXX.209.255
ゲートウェイ= 185.XXX.209.1
IPV6INIT =はい
IPV6_DEFAULTGW = 2a04:XXXX:1 :: 1
IPV6ADDR = 2a04:XXXX:1:0:0:0:0:12/48
IPV6ADDR_SECONDARIES = "2a04:XXXX:1:0:0:0:0:15/48 2a04:XXXX:1:0:0:0:0:16/48"
「/ etc / sysconfig / network-scripts / ifcfg-eth0:1」
TYPE =イーサネット
DEVICE = eth0:1
ONBOOT =はい
IPADDR = 185.XXX.209.213
NETMASK = 255.255.255.255
「/ etc / sysconfig / network-scripts / ifcfg-eth0:2」
TYPE =イーサネット
DEVICE = eth0:2
ONBOOT =はい
IPADDR = 185.XXX.209.232
NETMASK = 255.255.255.255
全体像はDebianに似ています。 eth0:X仮想ネットワークインターフェイスは、IPv4にのみ必要です。 NETWORKING_IPV6およびIPV6INITオプションには、IPv6サポートが含まれています。 「IPV6_DEFAULTGW」で、デフォルトゲートウェイを指定します。 最初のIPv6アドレスは「IPV6ADDR」に割り当てられ、他のすべては「IPV6ADDR_SECONDARIES」にリストされます。
ifconfigコマンドの出力はDebianに似ています:
$ ifconfig -a
eth0リンクencap:イーサネットHWaddr 00:16:3E:18:BF:3A
inet addr:185.XXX.209.208 Bcast:185.XXX.209.255 Mask:255.255.255.0
inet6 addr:2a04:XXXX:1 :: 12/48スコープ:グローバル
inet6 addr:2a04:XXXX:1 :: 15/48スコープ:グローバル
inet6 addr:2a04:XXXX:1 :: 16/48スコープ:グローバル
inet6 addr:fe80 :: 216:3eff:fe18:bf3a / 64スコープ:リンク
UP BROADCAST RUNNING MULTICAST MTU:1500メトリック:1
RXパケット:80834エラー:0ドロップ:0オーバーラン:0フレーム:0
TXパケット:67エラー:0ドロップ:0オーバーラン:0キャリア:0
衝突:0 txqueuelen:1000
RXバイト:40241487(38.3 MiB)TXバイト:11895(11.6 KiB)
割り込み:245
eth0:1リンクencap:イーサネットHWaddr 00:16:3E:18:BF:3A
inet addr:185.XXX.209.213 Bcast:185.XXX.209.213マスク:255.255.255.255
UP BROADCAST RUNNING MULTICAST MTU:1500メトリック:1
割り込み:245
eth0:2リンクencap:イーサネットHWaddr 00:16:3E:18:BF:3A
inet addr:185.XXX.209.232 Bcast:185.XXX.209.232マスク:255.255.255.255
UP BROADCAST RUNNING MULTICAST MTU:1500メトリック:1
割り込み:245
loリンクencap:ローカルループバック
inet addr:127.0.0.1マスク:255.0.0.0
inet6 addr::: 1/128スコープ:ホスト
UPLOOPBACK RUNNING MTU:16436メトリック:1
RXパケット:0エラー:0ドロップ:0オーバーラン:0フレーム:0
TXパケット:0エラー:0ドロップ:0オーバーラン:0キャリア:0
衝突:0 txqueuelen:0
RXバイト:0(0.0 b)TXバイト:0(0.0 b)
診断ツールは
Debianで使用されているものと同じです。
FreeBSD v10.XX
FreeBSDには、すでにIPv6をサポートするために必要なものがすべて揃っています。
設定例を考えてみましょう。
「/etc/rc.conf」
ホスト名= "ipv6.test"
defaultrouter = "185.XXX.209.1"
ifconfig_xn0 = "inet 185.XXX.209.41 netmask 255.255.255.0"
ipv6_defaultrouter = "2a04:XXXX:1 :: 1"
ifconfig_xn0_ipv6 = "2a04:XXXX:1:0:0:0:0:12/48"
ifconfig_xn0_aliases = "inet6 2a04:XXXX:1:0:0:0:0:15/48 inet6 2a04:XXXX:1:0:0:0:0:16/48 inet 185.XXX.209.104 netmask 255.255.255.255 inet 185.XXX.209.131ネットマスク255.255.255.255 "
プライマリIPv6アドレスは、ifconfig_xn0_ipv6オプションで指定されます。 FreeBSDはIPv4の仮想ネットワークインターフェイスメカニズムを使用しないため、IPv6を含むすべての追加アドレスは「ifconfig_xn0_aliases」にリストされています。
ifconfigコマンドの出力は、Linuxとわずかに異なります。
#ifconfig -a
lo0:flags = 8049 <UP、LOOPBACK、RUNNING、MULTICAST>メトリック0 mtu 16384
オプション= 600003 <RXCSUM、TXCSUM、RXCSUM_IPV6、TXCSUM_IPV6>
inet6 :: 1 prefixlen 128
inet6 fe80 :: 1%lo0 prefixlen 64 scopeid 0x1
inet 127.0.0.1ネットマスク0xff000000
nd6オプション= 21 <PERFORMNUD、AUTO_LINKLOCAL>
xn0:flags = 8843 <UP、BROADCAST、RUNNING、SIMPLEX、MULTICAST>メトリック0 mtu 1500
オプション= 503 <RXCSUM、TXCSUM、TSO4、LRO>
エーテル00:16:3e:f4:17:6c
inet 185.XXX.209.41ネットマスク0xffffff00ブロードキャスト185.XXX.209.255
inet6 fe80 :: 216:3eff:fef4:176c%xn0 prefixlen 64 scopeid 0x2
inet6 2a04:XXXX:1 :: 12 prefixlen 48
inet 185.XXX.209.104 netmask 0xffffffff broadcast 185.XXX.209.104
inet 185.XXX.209.131 netmask 0xffffffff broadcast 185.XXX.209.131
inet6 2a04:XXXX:1 :: 15 prefixlen 48
inet6 2a04:XXXX:1 :: 16 prefixlen 48
nd6オプション= 21 <PERFORMNUD、AUTO_LINKLOCAL>
メディア:イーサネットマニュアル
ステータス:アクティブ
診断ツールも少し異なります:「ping6 -n -c 4 ipv6.google.com」と「traceroute6 -n ipv6.google.com」。 ネイバーのMACアドレスを確認します: "ndp -an"。 ルーティングテーブルを調べます: "netstat -rn6"。 システムが発信接続に使用するデフォルトのIPv6アドレスを見つけます:「route -nv6 get 2a00:1450:4013:c01 :: 65」。
#route -nv6 get 2a00:1450:4013:c01 :: 65
RTA_DST:inet6 2a00:1450:4013:c01 :: 65; RTA_IFP:リンク; RTM_GET:レポートメトリック:len 240、pid:0、seq 1、errno 0、flags:<UP、GATEWAY、HOST、STATIC>
ロック:初期化:
sockaddrs:<DST、IFP>
2a00:1450:4013:c01 :: 65リンク#0
ルート:2a00:1450:4013:c01 :: 65
宛先:::
マスク:::
ゲートウェイ:2a04:XXXX:1 :: 1
fib:0
インターフェース:xn0
フラグ:<UP、GATEWAY、DONE、STATIC>
recvpipe sendpipe ssthresh rtt、msec mtu weightの有効期限
0 0 0 0 1500 1 0
ロック:初期化:
sockaddrs:<DST、ゲートウェイ、NETMASK、IFP、IFA>
:: 2a04:XXXX:1 :: 1 :: xn0:0.16.3e.f4.17.6c 2a04:XXXX:1 :: 12
この場合、デフォルトのアドレスは、コマンド出力の最新の「2a04:XXXX:1 :: 12」で示されるアドレスです。