web-dev-qa-db-ja.com

resolvconfおよびNetworkManagerによって設定された間違ったネームサーバー

DNSサーバーは192.168.1.152です。

このDNSは、DHCPによってクライアントに提供されます。 LAN上のWindowsクライアントはそのDNSを使用して名前を適切に解決しますが、Ubuntu VMは解決しません。

VMはブリッジネットワーキングでセットアップされ、DNSサーバーに適切に提供されていますが、ローカルホスト名がnslookupまたはブラウザーによって解決されていません。

ローカルドメインの1つのnslookupは次のとおりです。

# nslookup unraid.local
Server:     127.0.0.53
Address:    127.0.0.53#53

** server can't find unraid.local: SERVFAIL

DNSサーバーを使用して解決すべきことは次のとおりです。

# nslookup unraid.local 192.168.1.152
Server:     192.168.1.152
Address:    192.168.1.152#53

Name:   unraid.local
Address: 192.168.1.152

/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
# 127.0.0.53 is the systemd-resolved stub resolver.
# run "systemd-resolve --status" to see details about the actual nameservers.

nameserver 127.0.0.53

そのコマンドを実行しました。 [DNSサーバー]の下で、紛らわしいことに、正しいサーバー(およびデフォルトゲートウェイ)を指定します。

root@ubuntu:~# systemd-resolve --status
Global
          DNSSEC NTA: 10.in-addr.arpa
                      16.172.in-addr.arpa
                      168.192.in-addr.arpa
                      17.172.in-addr.arpa
                      18.172.in-addr.arpa
                      19.172.in-addr.arpa
                      20.172.in-addr.arpa
                      21.172.in-addr.arpa
                      22.172.in-addr.arpa
                      23.172.in-addr.arpa
                      24.172.in-addr.arpa
                      25.172.in-addr.arpa
                      26.172.in-addr.arpa
                      27.172.in-addr.arpa
                      28.172.in-addr.arpa
                      29.172.in-addr.arpa
                      30.172.in-addr.arpa
                      31.172.in-addr.arpa
                      corp
                      d.f.ip6.arpa
                      home
                      internal
                      intranet
                      lan
                      local
                      private
                      test

Link 2 (ens33)
      Current Scopes: DNS LLMNR/IPv4 LLMNR/IPv6
       LLMNR setting: yes
MulticastDNS setting: no
      DNSSEC setting: no
    DNSSEC supported: no
         DNS Servers: 192.168.1.152
                      192.168.1.1

ネットワークを変更すると解決できないため、構成ファイルにDNSサーバーのIPを「ハードコード」したくありません。

ResolvconfとNetworkManagerを自動的にに設定するにはどうすれば/etc/resolv.confにDHCPサーバーのIPを設定できますか?

30
FireSpore

/etc/systemd/resolved.confを編集して、目的のDNSサーバーを追加してみてください。

これを変更します:

[Resolve]
#DNS=

これに(ただし、必要なものを使用してください-これは例です):

[Resolve]
DNS=192.168.1.152

その後、サービスを再起動します。

service systemd-resolved restart

ステータスを確認すると、表示されるはずです

$ systemd-resolve --status
Global
         DNS Servers: 192.168.1.152

      DNSSEC NTA: 10.in-addr.arpa
                  16.172.in-addr.arpa
                  168.192.in-addr.arpa
                  17.172.in-addr.arpa
                  18.172.in-addr.arpa
                  19.172.in-addr.arpa
34

既知systemdバグ

一時的な回避策 DNS IPの変更があった場合、再設定する必要はありません:

Sudo rm -f /etc/resolv.conf
Sudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf
reboot
31
teknopaul

私はついにubuntu 17.10のこの問題の解決策を得ました。デフォルトでは、このバージョンのUbuntuはsystemd-resolvedを使用しますが、これは次のバージョンで安定することを期待しています。

ローカルsystemd解決キャッシュの代わりにカスタムDNSを使用するには、次の手順を実行します。

  1. 新しいネームサーバーを追加します。 /etc/systemd/resolved.confのファイルをsudoerとして編集します。ここで、DNSエントリをコメントアウトして、DNS [Resolve] DNS=10.96.0.10 8.8.8.8 8.8.4.4を配置しました

  2. /etc/resolv.confへの実際のシンボリックリンクをキャンセルする

  3. 新しいシンボリックリンクを作成するSudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf
  4. サービスを再起動しますSudo service systemd-resolved restart
  5. ネットワークマネージャーを再起動しますSudo systemctl restart networking

そして、追加したDNSによって提供された名前を掘ると、レコードが解決されたDig nexus.default.svc.cluster.mydomainが表示されるはずです。

最後のステップは、mdns4_minimalの前にdnsを配置することにより、/etc/nsswitch.confの解像度の順序を更新することです。

hosts           files dns mdns4_minimal [NOTFOUND=return] resolve [!UNAVAIL=return] myhostname
7
Fabio Fumarola

私のために働いた解決策は 私のブログにここに投稿されました

Nanoエディターを使用してこれら2つのファイルを編集します

nano /etc/resolv.conf
nano /etc/resolvconf/resolv.conf.d/head

使用するDNSサーバーを追加します

nameserver 9.9.9.9
nameserver 127.0.0.1

その後、サービスを再起動します

service systemd-resolved restart

最終チェック:

cat /etc/resolv.conf

Nslookupを行う

nslookup google.com 

私はこれを使用しただけで、自宅のラップトップの問題を修正しましたが、将来、ホームネットワークから離れると、プライマリとセカンダリのDNSサーバーがまだ自宅であるため、問題が発生することがわかりますLANアドレスを持つサーバー。

1
ookangzheng

あなたの/etc/resolv.confは問題ではありません。 systemd-resolvedはデフォルトで未構成になっているため、すべての検索に失敗します。 Unconfigured vs A Reasonable Defaultについては、お気軽にご相談ください。

systemd-resolvedにネームサーバーを手動で追加します。 (以下のOlorinのコメントを編集して、mkdir、正しいパス/etcではなく/libを追加して、システムの更新に耐えるようにします)

Sudo mkdir -p /etc/systemd/resolved.conf.d
Sudo nano /etc/systemd/resolved.conf.d/00-my-dns-server-is.conf

追加:

[Resolved]
Cache=yes
DNS=192.168.1.152

その後...

Sudo systemctl daemon-reload

systemd-resolvedはスマートですが、パッケージメンテナによって未構成であるため、パッケージメンテナが合理的なデフォルトを信じていないため、愚かに見えるだけです。 「djb way」として知られている13のインターネットルートサーバー、または10のopennicサーバーを配置できます: https://Pastebin.com/JBfYVVtG または3 namebenchで測定した最速のOpennicサーバー。 ISPネームサーバーももちろんです。プラスグーグル、確かに。 systemd-resolvedは問題ではありません。私は問題です。

1
BobDodds

私は、DHCPが提供するDNSサーバーとドメイン検索順序を置き換える機能を現在サポートしていないNetplanの問題を回避するスクリプトをまとめました。 Netplan yamlファイルを作成し、systemd-resolvedが期待どおりに動作するように構成します。

################## Start Netplan config (renderer: NetworkManager)
#  Some useful commands for customisation
# NetConn=$(nmcli device show|grep GENERAL.CONNECTION|head -n1|awk '{print $2}')
# IP=$(nmcli device show|grep IP4.ADDRESS|head -n1|awk '{print $2}')
# GATEWAY=$(nmcli device show|grep IP4.GATEWAY|head -n1|awk '{print $2}')
# sed -i 's/renderer: networkd/renderer: NetworkManager/' //etc/netplan/01-netcfg.yaml
######################################
systemctl start NetworkManager
NIC=$(nmcli device show|grep GENERAL.DEVICE|head -n1|awk '{print $2}')

#####   create Netplan yaml config file
cat >/etc/netplan/01-netcfg.yaml <<EOF 
# This file describes the network interfaces available on your system
# For more information, see netplan(5).
  network:
   version: 2
   renderer: NetworkManager
   ethernets:
EOF
echo "    ${NIC}:" >> /etc/netplan/01-netcfg.yaml
cat >>/etc/netplan/01-netcfg.yaml <<EOF
      dhcp4: yes
      nameservers:
        search: [abc.domain.edu, def.domain.edu]
        addresses: [10.10.11.22, 10.10.11.23]

EOF

#work around DNS resolv bug
systemctl stop systemd-resolved
sed -i 's/#DNS=/DNS=10.10.11.22 10.10.11.23/' /etc/systemd/resolved.conf
sed -i 's/#Domains=/Domains=abc.domain.edu def.domain.edu' /etc/systemd/resolved.conf
systemctl start systemd-resolved
systemctl restart NetworkManager
netplan apply
reboot
############### End Netplan Config
1
Wildstalker

私のシステムで悪いシンボリックリンクを見つけました:/etc/resolv.conf/run/systemd/resolve/stub-resolv.confを指すシンボリックリンクでした

このファイルには1行のみが含まれています。

nameserver 127.0.0.53#53

その結果、ローカルネットワークのDNSルックアップがしばしば欠落していました。

そこで、代わりに/etc/reolv.conf/run/systemd/resolve/resolv.confを指すように変更しました

そして正しく動作するようになりました。

0
Bánó Gábor