Ubuntu 18.04 Server - 使用されているDNS IPサーバーの設定を確認する方法

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で確認する方法をご存じないでしょうか?

ソリューション

以下のように、出力の最後にアダプター別のDNSサーバーが表示されることがわかりました。

systemd-resolve --status

それは 'DNS Servers' の下にリンクで整理されたリストを含んでいます。 これは、Ubuntuで以前のバージョンと変わったと思います。 それは少しテキストを解析する作業が必要ですが、これは私に私が後にしているものを与える'。

解説 (5)

もうひとつの方法は

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

解説 (1)

も使用できます:

nmcli dev show eth0

eth0をネットワークインターフェイスに置き換えて、構成方法を確認します。 DHCP経由でDNSアドレスを取得した場合は、ここに表示されます。

解説 (0)

私もこれには驚いています。 私は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
解説 (3)