2014/01/11

さくら VPS の CentOS を IPv6 対応してみた


以前の記事で、さくら VPS に CentOS のサーバーを立ち上げたときの iptables の設定を載せましたが、その時は、IPv6 を無効にしたんですよね。

最近は、さくら VPS も IPv6 に対応したし、IPv6 も普及してきたであろうということで、IPv6 対応してみました。

DNS の設定

何はともあれ、まずは DNS の設定をしないことには話になりません。

さくらインターネットの VSP コントロールパネルに、IPv6 の IP アドレスが載っているので、それを控えます。さくら VPS の IPv6 のサービスが始まった 2013年10月30日以前 の VPS にも IPv6 の IP アドレスが割り当てられています。

私は、さくら VPS のドメインを、お名前.com で管理しているので、お名前.com の管理画面にログインし、IPv6 の IP アドレスを、ドメイン名の AAAA (クアッドA) レコードとして追加しました。

DNS の浸透に、最大 72 時間かかるようなので、まずはここから始めましょう。

IPv6 の有効化

以下のコマンドを実行して、IPv6 を無効にしていた設定ファイルを削除します。

# rm -f /etc/modprobe.d/disable-ipv6.conf

設定の反映には、OS の再起動が必要ですが、その前に他の設定をしてしまいます。

OS 起動時に、ip6tables も起動するように設定します。

# chkconfig ip6tables on
# chkconfig ip6tables –list
ip6tables       0:off   1:off   2:on    3:on    4:on    5:on    6:off

postfix の設定を元に戻します。

以下のファイルを編集します。

# vim /etc/postfix/main.cf

inet_protocols を ipv4 から all に変更して保存します。

inet_protocols = all

ここで OS を再起動します。

# reboot

 

IPv6 の設定

IPv6 の設定情報は、こちらのメンテナンス情報と VPS コントロールパネルにあります。リージョンによって設定が変わるものがあるので、注意してください。

以下のファイルを編集します。

# vi /etc/sysconfig/network

以下の2行を追加して保存します。

NETWORKING_IPV6=yes
IPV6_AUTOCONF=no

以下のファイルを編集します。

# vi /etc/sysconfig/network-scripts/ifcfg-eth0

以下の3行を追加します。IPv6 の IP アドレスは、VPS コントロールパネルのものを指定します。デフォルトゲートウェイはリージョン共通です。

IPV6INIT="yes"
IPV6ADDR="2401:2500:102:1106:133:xxx:xxx:xxx/64"
IPV6_DEFAULTGW="fe80::1%eth0"

デフォルトゲートウェイに %eth0 を指定しないと、以下のエラーが発生してにっちもさっちもいかなくなります。忘れずに指定しましょう。

ERROR    : [ipv6_set_default_route] Given IPv6 default gateway 'fe80::1' is link-local, but no scope or gateway device is specified

以下のファイルを編集します。

# vi /etc/resolv.conf

以下の1行を追加して保存します。ネームサーバーは石狩リージョンのものになっているので、それ以外のリージョンは適切なネームサーバーを割り当ててください。

nameserver 2401:2500::1

ネットワークサービスの再起動をします。エラーがでなければ OK です。

# service network restart

IPアドレスがちゃんと設定されたか確認します。

# ifconfig
eth0      Link encap:Ethernet  HWaddr xx:xx:xx:xx:xx:xx
          inet addr:133.242.xx.xx  Bcast:133.242.151.255  Mask:255.255.254.0
          inet6 addr: 2401:2500:102:1106:133:xxx:xxx:xxx/64 Scope:Global
          inet6 addr: fe80::5054:9ff:fe00:6066/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:107039 errors:0 dropped:0 overruns:0 frame:0
          TX packets:21218 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:7465102 (7.1 MiB)  TX bytes:21327137 (20.3 MiB)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:1309 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1309 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:155259 (151.6 KiB)  TX bytes:155259 (151.6 KiB)

ちゃんと IPv6 のアドレスが表示されたので、問題ないですね。

念のため、ローカルでですが、IPv6 で ping を実行してみます。

IPv6 の ping は ping6 を利用します。

# ping6 hostname
PING hostname(133.242.xxx.xxx.v6.sakura.ne.jp) 56 data bytes
64 bytes from 133.242.xxx.xxx.v6.sakura.ne.jp: icmp_seq=1 ttl=64 time=0.042 ms
64 bytes from 133.242.xxx.xxx.v6.sakura.ne.jp: icmp_seq=2 ttl=64 time=0.066 ms
64 bytes from 133.242.xxx.xxx.v6.sakura.ne.jp: icmp_seq=3 ttl=64 time=0.087 ms

ちゃんと、IPv6 の ping が通ってるので問題ないようです。

ホスト名がさくら VPS のデフォルトになっていますが、これは仕方ないですね。

ip6tables の設定

以下のファイルを編集して ip6tables の設定を行います。

# vi /etc/sysconfig/ip6tables

以下のように設定して保存します。余計な改行やスペースが入らないようにしてください。なお、51 番ポートの指定が特別になっています。詳しくは、こちらの記事を参照してください。

*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 -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 51 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 51 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d ff02::fb -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# SSH(22,10022,22->delete after), HTTP, HTTPS
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 10022 -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

ip6tables を再起動します。

# service ip6tables restart

まとめ

これで一通り、さくら VPS の CentOS の IPv6 対応は完了です。

あとは、DNS の浸透するのを待つだけですね。

参考サイト


スポンサーリンク


このエントリーをはてなブックマークに追加




Twitter ではブログにはない、いろんな情報を発信しています。


コメント

浸透いうな

コメントを書く



プロフィール

  • 名前:fnya
    経歴:
    SE としての経験は15年以上。様々な言語と環境で業務系システム開発を行い、セキュリティ対策などもしていました。現在は趣味SE。

    Twitter では、ブログでは取り上げない情報も公開しています。


    ブログについて

    このブログは、IT、スマートフォン、タブレット、システム開発などに関するさまざまな話題を取り上げたり、雑感などをつづっています。

    現在、Enty で支援を受け付けています。もしよければご支援ください。



    >>ブログ詳細
    >>自作ツール
    >>運営サイト
    >>Windows 10 まとめ

    Twitter のフォローはこちらから Facebook ページはこちら Google+ページはこちら RSSフィードのご登録はこちらから