AWSユーザーガイドのIPv6への移行 シナリオにしたがってCentOS7のDHCPv6を有効にした手順を未来の自分にメモします。
まずインスタンス内から外に向けてping6 を打ってみます。
$ ping6 ipv6.google.com
connect: Network is unreachable
届きませんでしたね。そこで以下のカスタムファイルを作成して保存します。
# vi /etc/cloud/cloud.cfg.d/99-custom-networking.cfg
network:
version: 1
config:
- type: physical
name: eth0
subnets:
- type: dhcp
- type: dhcp6
ここからifcfg-eth0を手動で編集します。
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
IPV6INIT=no
↓
IPV6INIT=yes
DHCPV6C=yes (追記
NM_CONTROLLED=no (追記
/etc/sysconfig/network を開いて以下の行を追記して保存します。
# vi /etc/sysconfig/network
NETWORKING_IPV6=yes (追記
続いて次のコマンドで/etc/sysctl.d 下のインターフェイス固有ファイルにaccept_ra=1を設定します。
# echo "net.ipv6.conf.eth0.accept_ra=1" > /etc/sysctl.d/enable-ipv6-ra.conf && sysctl -p /etc/sysctl.d/enable-ipv6-ra.conf
accept_ra = 1 と確定していればOKです。
# ssysctl -a | grep "net.ipv6.conf.eth0.accept_ra"
sysctl: reading key "net.ipv6.conf.all.stable_secret"
sysctl: reading key "net.ipv6.conf.default.stable_secret"
sysctl: reading key "net.ipv6.conf.eth0.stable_secret"
sysctl: reading key "net.ipv6.conf.lo.stable_secret"
net.ipv6.conf.eth0.accept_ra = 1
net.ipv6.conf.eth0.accept_ra_defrtr = 1
net.ipv6.conf.eth0.accept_ra_pinfo = 1
net.ipv6.conf.eth0.accept_ra_rt_info_max_plen = 0
net.ipv6.conf.eth0.accept_ra_rtr_pref = 1
最後にsystemctl restart network でインターフェイスを再起動してping6を確認します。
$ ping6 ipv6.google.com
PING ipv6.google.com(nrt20s08-in-x0e.1e100.net (2404:6800:4004:808::200e)) 56 data bytes
64 bytes from nrt20s08-in-x0e.1e100.net (2404:6800:4004:808::200e): icmp_seq=1 ttl=104 time=2.32 ms
64 bytes from nrt20s08-in-x0e.1e100.net (2404:6800:4004:808::200e): icmp_seq=2 ttl=104 time=2.40 ms
64 bytes from nrt20s08-in-x0e.1e100.net (2404:6800:4004:808::200e): icmp_seq=3 ttl=104 time=2.35 ms
64 bytes from nrt20s08-in-x0e.1e100.net (2404:6800:4004:808::200e): icmp_seq=4 ttl=104 time=2.38 ms
今度はping6 が到達するようになりました。
参考サイト:
Amazon Virtual Private Cloud – ユーザーガイド
Crontis: AWS EC2 IPv6 not working