CentOS6.4でIPv6アドレスを設定する際の覚書です。
既にIPv4アドレスが割り振られており、その上からIPv6アドレスを設定するデュアルスタックを想定した設定方法です。また、IPv6の仕様上、アドレスを自動設定するなども可能なのですが、通常サーバ機器には固定IPアドレスを割り当てるのが一般的なので自動設定は行わず手動設定という前提です。
とはいうもののIPv6に関して何も意識していなくともIPv6の仕様上、DHCPがない環境においても自動設定することが可能であり、リンクローカルアドレスについては自己生成するアドレスなのでIPv6対応のOSであればユーザが知らない間に自動で設定されていることが多々あります。下記では以下のリンクローカルアドレスが自動設定されています。
# ifconfig -a eth0 Link encap:Ethernet HWaddr 00:0A:E4:89:F4:52 inet addr:192.168.12.20 Bcast:192.168.12.255 Mask:255.255.255.0 inet6 addr: fe80::20a:e4ff:fe89:f452/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:1113 errors:0 dropped:0 overruns:0 frame:0 TX packets:693 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:99434 (97.1 KiB) TX bytes:75772 (73.9 KiB) |
実際のIPv6の設定ですが、まず/etc/sysconfig/networkを編集し以下の内容を追記します。
# vi /etc/sysconfig/network # IPv6を有効にする NETWORKING_IPV6=yes # IPv6アドレスの自動設定を無効にする IPV6_AUTOCONF=no |
次に/etc/sysconfig/network-scripts/ifcfg-eth0に以下を追記します。アドレスは実際の環境に置き換えてください。
# vi /etc/sysconfig/network-scripts/ifcfg-eth0 # IPv6を有効にする IPV6INIT=yes # グローバルユニキャストアドレスを手動で設定する IPV6ADDR=2001:db8::100/64 # デフォルトゲートウェイアドレスを設定する IPV6_DEFAULTGW=2001:db8:0::1 |
これで設定が完了しましたのでネットワークを再起動します。
# /etc/rc.d/init.d/network restart |
再起動後、アドレスが正常に設定されているか確認してみます。
# ifconfig -a eth0 Link encap:Ethernet HWaddr 00:0A:E4:89:F4:52 inet addr:192.168.12.20 Bcast:192.168.12.255 Mask:255.255.255.0 inet6 addr: 2001:db8::100/64 Scope:Global inet6 addr: fe80::20a:e4ff:fe89:f452/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:39 errors:0 dropped:0 overruns:0 frame:0 TX packets:37 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:3196 (3.1 KiB) TX bytes:4090 (3.9 KiB) |
さらにゲートウェイも設定されているか確認してみます。IPv6ではデフォルトゲートウェイは::/0と表現されます。routeコマンドの-nオプションはアドレスをホスト名に変換しないというオプションであり、-A inet6はIPv6を対象にするという意味です。
# route -n -A inet6 Kernel IPv6 routing table Destination Next Hop Flags Metric Ref Use Iface 2001:db8::/64 :: U 256 1 0 eth0 fe80::/64 :: U 256 0 0 eth0 ::/0 2001:db8::1 UG 1 0 0 eth0 ::1/128 :: U 0 0 1 lo 2001:db8::100/128 :: U 0 0 1 lo fe80::20a:e4ff:fe89:f452/128 :: U 0 0 1 lo fe80::20a:e4ff:fe89:f454/128 :: U 0 0 1 lo ff00::/8 :: U 256 0 0 eth0 |
自身のインターフェイスにpingをうってみます。IPv6でpingの確認を行うときはping6コマンドを使用します。
# ping6 2001:db8::100 PING 2001:db8::100(2001:db8::100) 56 data bytes 64 bytes from 2001:db8::100: icmp_seq=1 ttl=64 time=0.015 ms 64 bytes from 2001:db8::100: icmp_seq=2 ttl=64 time=0.011 ms 64 bytes from 2001:db8::100: icmp_seq=3 ttl=64 time=0.010 ms 64 bytes from 2001:db8::100: icmp_seq=4 ttl=64 time=0.011 ms |
またIPv6のスタティックルートを追加する際は以下のようにコマンドを実行します。( アドレスは実際のものに置き換えてください )
# route add -A inet6 2001:db8:0:100::/64 gw 2001:db8::200 |
■IPv6の無効化
IPv6を無効にする場合は以下のように設定を行います。
# vi /etc/sysctl.conf net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1 |
上記を設定後、以下のコマンドで編集した内容を有効にします。
# sysctl -p <省略> net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1 |
以下のコマンドでIPv6に関する情報が表示されないことを確認します。
# ifconfig -a eth0 Link encap:Ethernet HWaddr 00:0A:E4:89:F4:52 inet addr:192.168.12.20 Bcast:192.168.12.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:400 errors:0 dropped:0 overruns:0 frame:0 TX packets:342 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:36162 (35.3 KiB) TX bytes:42088 (41.1 KiB) |