2014年7月8日火曜日

DHCP で取得した DNS サーバーの IP アドレスを確認

Ubuntu Desktop のデフォルト設定だと DHCP で割り当てられた DNS サーバーの IP アドレスを簡単に確認できなかったので調べてみました。

環境
Ubuntu 14.04 Desktop 日本語 Remix

一般的に DNS の IP は resolv.conf に書いてあるので、見てみると

$ cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 127.0.1.1

というように自 PC (127.0.1.1) になっています。デフォルト設定だと NetworkManager が有効になっていて、ローカルで dnsmasq が DNS キャッシュサーバーとして動いているようです。

以下のように 53番ポートをリッスンしているサービスが dnsmasq であることが確認できます。

$ sudo lsof -i:53
COMMAND  PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
dnsmasq 1274 nobody    4u  IPv4  12279      0t0  UDP MyPC:domain
dnsmasq 1274 nobody    5u  IPv4  12280      0t0  TCP MyPC:domain (LISTEN)

DHCP で割り当てられた DNS にはこの dmsmasq が問い合わせをしているはずですが、どうやって dnsmasq に DNS の IP を渡しているのかいまいちわかりません。

いろいろファイルを探してみると

/var/lib/NetworkManager/dhclient-XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX-wlan0.lease

このファイルに DNS の IP を含む DHCP で得られた情報が書かれているようです。

また、NetworkManager の設定を変更して dnsmasq を使わないように設定すると /etc/resolv.conf に DNS の IP が出てきます。

まず、以下のように設定ファイルを変更します。

$ pwd
/etc/NetworkManager

$ diff -u NetworkManager.conf.org NetworkManager.conf
--- NetworkManager.conf.org     2014-07-06 22:23:50.756556963 +0900
+++ NetworkManager.conf 2014-07-08 21:40:07.869708314 +0900
@@ -1,6 +1,5 @@
 [main]
 plugins=ifupdown,keyfile,ofono
-dns=dnsmasq

 [ifupdown]
 managed=false

NetworkManager を再起動

$ sudo restart network-manager
network-manager start/running, process 3249

resolv.conf に DCHP で取得した DNS の IP が出てきました。

$ cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver xx.xx.xx.xx

確認後は設定を戻して NetworkManager を再起動しときます。


0 件のコメント:

コメントを投稿