web-dev-qa-db-ja.com

Ubuntu 18.04 systemd-resolveが/etc/resolv.confを正しく読み取らない

Ubuntu 18.04で奇妙な問題に直面しました。 openfortivpnを使用して会社のリソースに接続しましたが、問題なく動作しました。また、openvpnを使用して、いくつかの異なるリソースに接続することも、同時に実行することもあります。今日、VPNの背後にあるすべてのリソースに到達できなくなり、これが私のPCの一部のDNS設定に関連していることがわかりました。

アクティブなopenfortivpn接続がない場合:

ll /etc/resolv.conf
lrwxrwxrwx 1 root root 37 Jan  9 10:52 /etc/resolv.conf -> /run/systemd/resolve/stub-resolv.conf

grep name /run/systemd/resolve/*.conf 
/run/systemd/resolve/resolv.conf:nameserver 192.168.139.2
/run/systemd/resolve/stub-resolv.conf:nameserver 127.0.0.53

アクティブなopenfortivpnの場合:

ll /etc/resolv.conf
lrwxrwxrwx 1 root root 37 Jan  9 10:52 /etc/resolv.conf -> /run/systemd/resolve/stub-resolv.conf

grep name /run/systemd/resolve/*.conf 
resolv.conf:nameserver 192.168.139.2
stub-resolv.conf:nameserver 10.220.64.161
stub-resolv.conf:nameserver 10.220.64.162

Sudo 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 6 (ppp0)
      Current Scopes: none
       LLMNR setting: yes
MulticastDNS setting: no
      DNSSEC setting: no
    DNSSEC supported: no

Link 2 (ens33)
      Current Scopes: DNS
       LLMNR setting: yes
MulticastDNS setting: no
      DNSSEC setting: no
    DNSSEC supported: no
         DNS Servers: 192.168.139.2
          DNS Domain: localdomain

だから私はsystemd-resolveに手動でDNSを追加しようとしました:

Sudo systemd-resolve --set-dns=10.220.64.161 --set-domain=localdomain --set-llmnr=yes --set-mdns=no --set-dnssec=no --interface=ppp0

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 6 (ppp0)
      Current Scopes: DNS
       LLMNR setting: yes
MulticastDNS setting: no
      DNSSEC setting: no
    DNSSEC supported: no
         DNS Servers: 10.220.64.161
          DNS Domain: localdomain

Link 2 (ens33)
      Current Scopes: DNS
       LLMNR setting: yes
MulticastDNS setting: no
      DNSSEC setting: no
    DNSSEC supported: no
         DNS Servers: 192.168.139.2
          DNS Domain: localdomain

アドバイスありがとうございます。ミハル。

3
MichalD

18.10を使用して、同様の問題が発生しました。 /etc/systemd/resolved.confをdnsサーバーで変更してドメイン情報を検索することで問題を解決しました。マニュアルページによると、これは正しい動作のようです

接続されるDNSサーバーは、/ etc/systemd/resolved.confのグローバル設定、/ etc/systemd/network/*。networkファイルのリンクごとの静的設定(systemd-networkd.service(8)が使用済み)、DHCP経由で受信されたリンクごとの動的設定、および他のシステムサービスによって提供されたDNSサーバー情報。 DNSサーバー用のsystemd独自の構成ファイルの詳細については、resolved.conf(5)およびsystemd.network(5)を参照してください。互換性を向上させるために、/ etc/resolv.confは、構成されたシステムDNSサーバーを検出するために読み取られますが、それが/run/systemd/resolve/stub-resolv.confまたは/ run/systemd/resolve /へのシンボリックリンクでない場合のみresolv.conf(下記参照)。

私の設定は次のようになっています。環境に合わせて調整してください。

1)192.168.1.1はプライベートDNSです

2)ドメイン構文は重要です。末尾のドット「。」を忘れないでください。

/etc/systemd/resolved.conf
[Resolve]
DNS=192.168.1.1
#FallbackDNS=
Domains=blah.mydomain.com. blahblah.mydomain.com. 
#LLMNR=no
#MulticastDNS=no
#DNSSEC=no
#DNSOverTLS=no
#Cache=yes
#DNSStubListener=yes

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

Sudo systemctl restart systemd-resolved.service

サービスが実行されていることを確認します。構文エラーは、ここで確認できる問題を引き起こす可能性があります。

Sudo systemctl status systemd-resolved.service

ローカルドメインを検索してみてください

nslookup blah.mydomain.com

それが機能しない場合は、クエリがタイムアウトしないことを確認してください。 DNSサーバーを手動で指定する

nslookup blah.mydomain.com 192.168.1.1
3
Mark