随分と以前の話になるがunboundでDNSサーバを構築して利用しているが、いまさらながら気づいてしまったのだが、名前解決の問い合わせを行った際に、IPv4だけでなくIPv6のアドレスの回答をしていることがわかった。
c:\>nslookup account.myqnapcloud.com
サーバー: UnKnown
Address: 192.168.33.23
権限のない回答:
名前: qcloud-pr-frontend-1025300009.us-east-1.elb.amazonaws.com
Addresses: 2600:1f18:2a9:a903:10b5:2064:b47:8b1f
2600:1f18:2a9:a900:bd08:38b3:b8e3:799c
2600:1f18:2a9:a988:9731:a088:80fe:e041
2600:1f18:2a9:a904:21ba:a95d:1eec:2321
2600:1f18:2a9:a901:8740:8c0e:f6b2:5099
2600:1f18:2a9:a902:eac3:af38:6b91:6e89
107.21.203.67
54.175.45.228
34.195.68.203
34.192.70.234
34.192.15.39
100.24.165.157
Aliases: account.myqnapcloud.com
これ自体は正常な動作となるのだが、以下の通り実際はIPv6のアドレスによる接続は失敗している。
[root@localhost ~]# curl -v https://www.myqnapcloud.com/
* About to connect() to www.myqnapcloud.com port 443 (#0)
* Trying 2600:1f18:2a9:a903:10b5:2064:b47:8b1f...
* 接続を拒否されました
* Trying 2600:1f18:2a9:a900:bd08:38b3:b8e3:799c...
* 接続を拒否されました
* Trying 2600:1f18:2a9:a901:8740:8c0e:f6b2:5099...
* 接続を拒否されました
* Trying 2600:1f18:2a9:a904:21ba:a95d:1eec:2321...
* 接続を拒否されました
* Trying 2600:1f18:2a9:a988:9731:a088:80fe:e041...
* 接続を拒否されました
* Trying 2600:1f18:2a9:a902:eac3:af38:6b91:6e89...
* 接続を拒否されました
* Trying 34.195.68.203...
* Connected to www.myqnapcloud.com (34.195.68.203) port 443 (#0)
* Initializing NSS with certpath: sql:/etc/pki/nssdb
* CAfile: /etc/pki/tls/certs/ca-bundle.crt
CApath: none
* SSL connection using TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
* Server certificate:
* subject: CN=myqnapcloud.com
* start date: 12月 03 00:00:00 2019 GMT
* expire date: 1月 03 12:00:00 2021 GMT
* common name: myqnapcloud.com
* issuer: CN=Amazon,OU=Server CA 1B,O=Amazon,C=US
> GET / HTTP/1.1
> User-Agent: curl/7.29.0
> Host: www.myqnapcloud.com
> Accept: */*
>
< HTTP/1.1 200 OK
< Date: Fri, 03 Jan 2020 12:55:10 GMT
上記の通りIPv6のアドレスでは接続が拒否されており、IPv6のアドレスを名前解決できても何もうれしくないため、回答からIPv6のアドレスを削除し無効化することにした。
IPv6名前解決無効化手順
unboundの場合は、unbound.confに
private-address: ::/0
を追記することで対処することができる。
# vi /etc/unbound/unbound.conf
private-address: ::/0 ←★追記
private-address
の設定の詳細は、以下のURLのマニュアルを参照してほしい。本設定を行うと、IPv6のすべてのアドレス(::/0)がプライベートアドレスと認識されることから、unboundにおける名前解決の対象外となる。そのため、DNS名前解決時にIPv6の回答があったとしてもIPv6の回答は削除され、結果的にIPv4のみが回答として残ることになる。
IPv4やIPv6のアドレスかクラスレスのサブネットを与えます。これらはあなたのプライベートネットワークのアドレスであり、パブリックなインターネットの名前を返すことを許可しません。そのようアドレスがあればDNSの回答から削除されます。
無効化後の名前解決状況
nslookupで確認すると、以下の通りIPv4のアドレスのみ回答として表示される。
c:\>nslookup account.myqnapcloud.com
サーバー: UnKnown
Address: 192.168.33.23
権限のない回答:
名前: qcloud-pr-frontend-1025300009.us-east-1.elb.amazonaws.com
Addresses: 34.192.70.234
34.192.15.39
34.195.68.203
100.24.165.157
54.175.45.228
107.21.203.67
Aliases: account.myqnapcloud.com
先ほどはIPv6のアドレスでは接続が拒否されていたが、当然IPv4のアドレスのみとなったことから、一発で接続できるようになった。
[root@localhost ~]# curl -v https://www.myqnapcloud.com/
* About to connect() to www.myqnapcloud.com port 443 (#0)
* Trying 107.21.203.67...
* Connected to www.myqnapcloud.com (107.21.203.67) port 443 (#0)
* Initializing NSS with certpath: sql:/etc/pki/nssdb
* CAfile: /etc/pki/tls/certs/ca-bundle.crt
CApath: none
* SSL connection using TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
* Server certificate:
* subject: CN=myqnapcloud.com
* start date: 12月 03 00:00:00 2019 GMT
* expire date: 1月 03 12:00:00 2021 GMT
* common name: myqnapcloud.com
* issuer: CN=Amazon,OU=Server CA 1B,O=Amazon,C=US
> GET / HTTP/1.1
> User-Agent: curl/7.29.0
> Host: www.myqnapcloud.com
> Accept: */*
>
< HTTP/1.1 200 OK
< Date: Fri, 03 Jan 2020 12:56:22 GMT
以上でunboundにおけるIPv6の名前解決を無効化することができた。
0 件のコメント:
コメントを投稿