オレンジのトップページ

2012年6月20日水曜日

Ubuntu 12.04でIPv6と、インターネットサイトのDNSSEC検証


・Ubuntu12.04デスクトップではRFC3041の一時IPv6アドレスが最初から有効になっている

・NetworkManager経由でdnsmasqが動いているから/etc/resolv.confを手修正してはいけない。

Ubuntu12.04では
dnsmasqが使われるようになった。詳しくは技術評論社のWEBページに解説がある。Ubuntu Weekly Topics 2012年3月2日号 「DNSレゾルバの変更・・・」
http://gihyo.jp/admin/clip/01/ubuntu-topics/201203/02

/etc/resolv.confは常に127.0.0.1で編集してはいけない。実際にPCのdnsmasqが使うDNSサーバは次のコマンドでわかる。

cat /run/nm-dns-dnsmasq.conf
server=163.x.x.x.x (プロバイダ)
server=163.y.y.y.y 
server=240b:z:z::1 (YAMAHAルータのWAN側IP)


・dnsmasqのキャッシュが無効になっているらしい、
せっかくなので憩いの場方式でキャッシュを有効にしてみる。dnsmasq環境下でのdnssec検証は毎回そのまま上位DNSに転送されることで対応している。

憩いの場 dnsmasqのDNSキャッシュを有効にしたい(Ubuntu 12.04)

http://linux.ikoinoba.net/index.php?UID=1337088204



1. /etc/NetworkManager/NetworkManager.conf の dns=dnsmasq を消す。
*もともと入っているdnsmasqはサブセットなのでフルパッケージのdnsmasqを入れる
2. sudo apt-get install dnsmasq
*憩いの場では無効にしていたが、dnssecも有効にする。

3. /etc/dnsmasq.d/hoge に
listen-address=127.0.0.1
cache-size=500
proxy-dnssec

4. sudo service network-manager restart
5. sudo service dnsmasq restart
6. /etc/resolv.conf の上部に「nameserver 127.0.0.1」があるか確認する。
作業は以上。
dig hogehoge
で2回目が0msと表示されればキャッシュが効いてる。

dig +dnssec hogehoge
では2回目以降も毎回DNSSEC検証をするので時間は変わらなかった。


このdnsmasqパッケージの導入後は、実際にPCのdnsmasqが使うDNSサーバを調べるファイルの位置が変わる。
cat /run/dnsmasq/resolv.conf





・インターネットサイトのDNSSEC検証テスト

digコマンドでflagsに「ad」と表示されればDNSSEC検証に対応している。このように。
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 0, AUTHORITY: 4, ADDITIONAL: 1

どの場合もDNSSECに対応していた。
dig +dnssec iij.ad.jp @x.x.x.x(PPPoEで自動取得したIPV4のDNSサーバ
dig +dnssec iij.ad.jp @2001:a7ff:5f01::a(ネクスト網内のIPv6のDNSサーバ

dig +dnssec iij.ad.jp @127.0.0.1dnsmasq経由



・dnsmasqでキャッシュが効いているか速度テスト

 dig www.yahoo.co.jp @127.0.0.1
テスト1回目 12ms
テスト2回目 0ms よく効いている。


 dig +dnssec www.jprs.jp @127.0.0.1
テスト1回目 13ms

テスト2回目 12ms 変わりない。

このようにDNSSEC検証を付けるとキャッシュの効きはわからなくなる。が、インターネットのブラウジングそのものにはDNSSEC検証を使っていないようなので、DNSSEC対応のDNSを使っていてももちろん問題はない。たぶん。




・FirefoxのプラグインDNSSEC Validatorでサイトを検証してみる
DNSSECでこんなマークがつく。
f:id:carme-264pp:20110123000349p:image

何度か表示させてみた感じでは、ブラウザによるページ表示と、DNSSEC Validatorによるサイトの検証は個別に行われているっぽい。プラグインを有効にしても、閲覧速度に影響しないようだった。

使用しているDNSサーバがDNSSECに対応していない場合でも、DNSSEC Validatorだけに別のDNSサーバを右クリックで指定できるので、そうしても良い。




おまけ

Ubuntu 12.04でテスト中、当初ルータがIPv6のDNS配布に対応してなくUbuntuでDNSが取得できずNetworkManagerが接続と切断を繰り返した。このときエラーを無視するオプションを指定することで回避できた。

/etc/NetworkManager/system-connections/Wired connection 1
[ipv6]
method=auto
ignore-auto-routes=true
may-fail=false  この行削除(もしくはmay-fail=true)


以上。