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 件のコメント:
コメントを投稿