Linux Debian v7.XX、Ubuntu v14.XX
CentOS v6.XX
FreeBSD v10.XX
IPv6サポートを実装した後、私が働いている会社のホスティングサイトで、それに応じて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」で示されるアドレスです。