Ubuntu 18.04 Server LTSで動作しています。 DHCPで設定した際に、実際に使用されているDNS IP(s)を確認する方法を考えています。 resolv.confは現在127.0.0.53を指すだけです。 /etc/systemd/networkフォルダは空です。 NSLOOKUPの出力も常に内部の127.0.0.53のIPを参照しています。どうやら、古い手口は全て通用しないようです。
Ubuntuのドキュメントは、まだ16.04のヘルプが18で非推奨となっているeth0、ifup、ifdownを参照しているようで、まだ更新されていないようですhttps://help.ubuntu.com/lts/serverguide/network-configuration.html
私は、カスタム.yamlを介してNetplanで静的なアダプタのセットアップを設定しようとしました。 設定はうまくいくのですが、設定したDNSのIPがどこにもないようです。 DHCPと静的設定の間で一貫していると思うのですが、今どこを見ればいいのかわかりません。
この際、Cライブラリの呼び出しかbashのCLIメソッドに落ち着きそうです。 どなたか18.04Serverで確認する方法をご存じないでしょうか?
もうひとつの方法は
cat /run/systemd/resolve/resolv.conf
このファイルはsystemd-resolvedによって動的に生成されますが、127.0.0.53の代わりに実際のDNSサーバーを含んでいます。
実際、これを /etc/resolv.conf
のデフォルトにしたい場合は、単にシンボリックリンクを作成すればよいのです。(/etc/resolv.conf
はデフォルトでは /run/systemd/resolve/stub-resolv.conf
を指すシンボリックリンクです):
sudo mv /etc/resolv.conf /etc/resolv.conf.orig
sudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf
サンプル /run/systemd/resolve/resolv.conf
:
# This file is managed by man:systemd-resolved(8). Do not edit.
#
# This is a dynamic resolv.conf file for connecting local clients directly to
# all known uplink DNS servers. This file lists all configured search domains.
#
# Third party programs must not access this file directly, but only through the
# symlink at /etc/resolv.conf. To manage man:resolv.conf(5) in a different way,
# replace this symlink by a static file or a different symlink.
#
# See man:systemd-resolved.service(8) for details about the supported modes of
# operation for /etc/resolv.conf.
nameserver 10.1.2.3
search host.domain.com
詳しくはこちら
http://manpages.ubuntu.com/manpages/bionic/man8/systemd-resolved.service.8.html
私もこれには驚いています。 私はUbuntu 16.04 LTSを使用しており、同様のものを見ています。
を発行すると
dig www.google.ca +trace | grep 'Received'
レスポンスの最初のホストは、あなたのサーバーのルックアップを行うものです。
$ dig www.google.ca +trace | grep 'Received'
;; Received 525 bytes from 127.0.1.1#53(127.0.1.1) in 19 ms
;; Received 42 bytes from 199.7.91.13#53(d.root-servers.net) in 32 ms
これは、このボックスがルートサーバーに直接それ自身のDNSルックアップを行い、私のDNSルックアップを取得するために再帰的にパスをたどっていることを意味します。
dnsmasqが有効になっていることが問題であることがわかりました。これを無効にするには、次のようにします。
NetworkManager.conf ファイルを編集します。
sudo gedit /etc/NetworkManager/NetworkManager.conf
dnsmasqの行をコメントアウトする
#dns=dnsmasq
network-manager サービスを再起動します。
sudo /etc/init.d/network-manager restart
dhcpで割り当てられたdnsサーバーを使用していることを確認します。
$ dig www.google.ca +trace | grep 'Received'
;; Received 525 bytes from 192.168.30.1#53(192.168.30.1) in 18 ms
;; Received 42 bytes from 198.41.0.4#53(a.root-servers.net) in 32 ms