Linux Debian v7.XX、Ubuntu v14.XX、CentOS v6.XX、およびFreeBSD v10.XXでのIPv6の構成

以下の資料は排他的であると主張していません。 ただし、さまざまなソースから少しずつ収集し、実験的にテストする必要がありました。 その後、取得した知識と経験を体系化し、すべてを1つのメモに記載するというアイデアが生まれました。



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」で示されるアドレスです。



All Articles