IPv6に対応する(さくらVPS-CentOS6, お名前.com)
環境
対応
事前チェック
自分のサイトがIPv6に対応してるかチェックできるサイト。
Is your site IPv6 ready?
- DNS (IPv6 AAAA Record)
- IPv6 Connectivity
でFAILしてるのを確認。
最近立ち上げたさくらのVPSだとすでにIPv6のある程度の対応されているみたい。
$ ifconfig -a # で、eth0のところのinet6 addrがScope:LinkとGlobalもあれば一応対応されている
$ ping6 2001:XX:XX:XX:XX:XX:XX:XX # 対応されてる場合はこれで返ってくる
対応されている場合でも、
wget -6 hogehoge.com # -6はipv6での接続 (-6, --inet6-only connect only to IPv6 addresses.)
たぶんこれでconnection refuseされる。
IPv6 AAAA レコード対応
お名前.comでログイン後、「ドメイン設定」→「ネームサーバーの設定」→「DNS関連機能の設定」→対象ドメインを選択して「次へ進む」→「DNSレコード設定を利用する」
ここでAAAA Typeの、ValueにはIPv6のアドレスを入れて追加して保存する。
(サイトわかりにく(ry…)
で、対応されたら、上のサイト(ready.chair6.net)でチェックする。PASSと出るはず。
IPv6 Connectivity対応
実は上記の対応だけでこれもチェックPASSする場合もある気がする。
わたしはここに習って設定反映したら、逆に通らなくなったがw (二重設定してる部分が原因だったorz)
IPv6アドレスの設定方法 – さくらのサポート情報
結局書いたのは、
$ vim /etc/sysconfig/network NETWORKING_IPV6="yes" IPV6_AUTOCONF=no を追加
と
$ vim /etc/sysconfig/network-scripts/ifcfg-eth0 元々以下が書かれていたので一点だけちょっと修正したのみ。 DEVICE="eth0" BOOTPROTO="static" DNS1="XXX.XXX.XXX.XX" DNS2="XXX.XXX.XXX.XX" DNS3="2001.XXX.XXX.XX" GATEWAY="XXX.XX.XX.X" HWADDR="XXX.XXX.XXX.XX" IPADDR="XXX.XXX.XXX.XX" IPV6ADDR="XXX.XXX.XXX.XX/64" # ここに/64を追加 IPV6INIT="yes" IPV6_AUTOCONF="no" IPV6_DEFAULTGW="fe80::1%eth0" MTU="OOO" NETMASK="XXX.XXX.XXX.XX" NM_CONTROLLED="yes" ONBOOT="yes" TYPE="Ethernet" UUID="OOOOOOOOOO"
上記対応したら、
$ service network restart
で確認
$ ifconfig -a # inet6 addrがScope:Globalも出てること確認 $ netstat -rnA inet6 # ::/0で、fe80::1になってること確認 $ ping6 2001:XX:XX:XX:XX:XX:XX:XX(ipv6のアドレス) # 返ってくること確認
あとは、サイトで両方PASSしてることを確認。 あと、
$ wget -6 hogehoge.com # これで結果返ってくることを確認
開通はこれでOK。
ip6tablesの設定
iptablesはipv4の方なので、別途ip6tablesを対応しないといけない。
$ chkconfig ip6tables --list # 3:onになってたら自動起動設定されてる $ vim /etc/sysconfig/ip6tables # httpとhttpsだけあけとく *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] :RH-Firewall-1-INPUT - [0:0] -A INPUT -j RH-Firewall-1-INPUT -A FORWARD -j RH-Firewall-1-INPUT -A RH-Firewall-1-INPUT -i lo -j ACCEPT -A RH-Firewall-1-INPUT -p icmpv6 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT -A RH-Firewall-1-INPUT -j REJECT --reject-with icmp6-adm-prohibited COMMIT $ /etc/init.d/ip6tables restart
OK
参考:
- https://serversmanvps.xn–ockc3f5a.com/2016/01/04/%E3%82%B5%E3%82%A4%E3%83%88%E3%81%AEipv6%E5%8C%96%E3%82%92%E3%81%97%E3%81%A6%E3%81%BF%E3%81%9F
(↑リンク飛ばねぇ…URLコピペしたら見れる…)
- 俺の知っているコマンドがIPv6で使えないわけがない|サイバーエージェント 公式エンジニアブログ
- 4ステップでWebサーバをIPv6に対応させる方法(2/3) − @IT
- CentOS に ip6tables の設定を行う(IPv6) | Webセキュリティの小部屋