.log

業務系ITナンデモ屋の日々得ては失われていく知識を書き留めておくメモ。
日記は苦手ですが将棋ネタなんかも書いています。内容は無保証・無責任です。

nginx IPv6対応


TILESを公開しているサイト u06.netはIPv6に対応しています。
対応自体は簡単にできますが、備忘録を残します。

前提は以下。
  • u06.netはお名前.com のDNSを利用 (AAAAさえ設定できればどこでも良い)
  • OSはCentOS7
  • サーバーはIPv6で接続可能 (現在はConohaのVPS利用)
  • Webサーバーはnginx
なお、IPv6とは直接関係ないですが、サイトはWordpressで作っていて、HTTPSのみの公開です。

手順

1. DNSのAAAAレコードを設定する。

IPv4でいうところのAレコード(ドメイン→IPアドレスの正引き)に相当するAAAAレコードにIPv6アドレスを設定します。
今回のサイトでは事情によりTTLは600(10分)としていますが、もう少し長い方(3600くらい)がいいかもしれません。

onamae_v6

登録後、pingコマンド(Windows)に-6コマンドをつけることで確認できます。
※(2017/6/17追記) 当然ながら、pingを実行する環境がIPv6接続できている必要があります。

C:\>ping -6 u06.net

u06.net [2400:8500:1302:817:a150:95:130:1363]に ping を送信しています 32 バイトのデータ:
2400:8500:1302:817:a150:95:130:1363 からの応答: 時間 =6ms
2400:8500:1302:817:a150:95:130:1363 からの応答: 時間 =5ms
2400:8500:1302:817:a150:95:130:1363 からの応答: 時間 =5ms
2400:8500:1302:817:a150:95:130:1363 からの応答: 時間 =5ms

2400:8500:1302:817:a150:95:130:1363 の ping 統計:
    パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、
ラウンド トリップの概算時間 (ミリ秒):
    最小 = 5ms、最大 = 6ms、平均 = 5ms


2. nginxのListenの設定

IPv4のみ対応した場合、server句のlistenは以下みたいになっていると思います。

server {
    listen 443 ssl;
    server_name u06.net;
        (以下続く)
}

これにもう一つIPv6用のListenを加えます。

server {
    listen 443 ssl;
    listen [::]:443 ssl;                 # ← これを追加
    server_name u06.net;
        (以下続く)
}

この後、nginxをリスタートします。
動作確認は netstat コマンドでできます。

$ netstat -tanp | grep nginx
tcp      0    0 0.0.0.0:443        0.0.0.0:*        LISTEN      5943/nginx: master
tcp6     0    0 :::443              :::*               LISTEN      5943/nginx: master

3. ファイアウォール設定

firewall-cmdを使って設定します。familyオプションがミソです。

$ firewall-cmd --permanent --zone=public --family="ipv6" --add-service=https

なお、iptables-servicesを用いている場合は ip6tables の方で設定します。


4. 動作確認

以上で設定は完了です。
http://ipv6-test.com/ でWebサイトの接続をチェックできます。

ipv6




コメントする

名前
 
  絵文字
 
 
記事検索
  • ライブドアブログ