resolv.conf не соответствует конфигурации netplan

Я настраиваю систему Ubuntu Server 20.04 в качестве шлюза между моей локальной сетью и глобальной сетью. Я не могу правильно настроить DNS.

У меня есть 2 файла конфигурации netplan для моих 2 интерфейсов.

Внутренний интерфейс eth (LAN)

root@gate:~# cat /etc/netplan/01-eth_int.yaml
# This is the network config written by 'subiquity'
network:
  ethernets:
        enp4s0:
            addresses: ['10.0.10.1/24']
            match:
                macaddress: 00:60:e0:76:9e:e7
            set-name: eth_int
  version: 2

Внешний интерфейс eth (WAN)

root@gate:~# cat /etc/netplan/02-eth_ext.yaml
# This is the network config written by 'subiquity'
network:
  ethernets:
        enp5s0:
            addresses: ['10.200.56.254/24']
            gateway4: 10.200.56.1
            nameservers:
                addresses: [195.78.215.228, 195.78.223.228]
                addresses: [8.8.8.8, 8.8.4.4]
            match:
                macaddress: 00:60:e0:76:9e:e8
            set-name: eth_ext
  version: 2

При перезагрузке интерфейсов настроены в соответствии с конфигурационными файлами netplan. Но /etc/resolv.conf неправильно настроен

root@gate:~# cat /etc/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 to the
# internal DNS stub resolver of systemd-resolved. This file lists all
# configured search domains.
#
# Run "resolvectl status" to see details about the uplink DNS servers
# currently in use.
#
# 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 127.0.0.53
options edns0

Тест / проверка выполнена:

  • /etc/resolv.conf является символической ссылкой ../run/systemd/resolve/stub-resolv.conf
  • systemd-resolve --status возвращает правильный DNS для интерфейса eth_ext, но без глобального DNS (может быть проблема?)
    root@gate:~# systemd-resolve --status
    Global
           LLMNR setting: no
    MulticastDNS setting: no
      DNSOverTLS setting: no
          DNSSEC setting: no
        DNSSEC supported: no
              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 5 (eth_ext)
          Current Scopes: DNS
    DefaultRoute setting: yes
           LLMNR setting: yes
    MulticastDNS setting: no
      DNSOverTLS setting: no
          DNSSEC setting: no
        DNSSEC supported: no
             DNS Servers: 195.78.215.228
                          195.78.223.228
                          8.8.8.8
                          8.8.4.4

    Link 4 (enp0s31f6)
          Current Scopes: none
    DefaultRoute setting: no
           LLMNR setting: yes
    MulticastDNS setting: no
      DNSOverTLS setting: no
          DNSSEC setting: no
        DNSSEC supported: no

    Link 3 (eth_int)
          Current Scopes: none
    DefaultRoute setting: no
           LLMNR setting: yes
    MulticastDNS setting: no
      DNSOverTLS setting: no
          DNSSEC setting: no
        DNSSEC supported: no

    Link 2 (enp3s0)
          Current Scopes: none
    DefaultRoute setting: no
           LLMNR setting: yes
    MulticastDNS setting: no
      DNSOverTLS setting: no
          DNSSEC setting: no
        DNSSEC supported: no
  • отредактировал /etc/systemd/resolved.conf, установив и раскомментировав запись DNS. Глобальная DNS-запись работает под управлением systemd-resolv --status, но /etc/resolv.conf не изменится

Очевидно, это несоответствие помешает правильной работе DNS

root@gate:~# ping google.com
ping: google.com: Temporary failure in name resolution

root@gate:~#  nslookup heise.de 127.0.0.53
;; connection timed out; no servers could be reached

Как я могу решить эту проблему?

0
задан 22 July 2020 в 18:30

1 ответ

Я заметил, что вы не указали dhcp4: false на своей локальной сети и не назначили сервер имен - в этом может быть ваша проблема?

Я только недавно настроил свой компьютер с Ubuntu в качестве маршрутизатора и после большой борьбы я отказался от именования интерфейсов и оставил их как eno1 / enp1s0 в файле yaml (кстати, я объединил их описание в один файл, который назвал 01-router-all.yaml так что у меня есть только один файл для редактирования при внесении изменений). Я думаю, что столкнулся с состоянием гонки, когда служба сервера dhcp запускалась до того, как сетевая служба назвала интерфейсы в соответствии с моим .yaml.

Вот моя работа /etc/netplan/01-router-all.yaml если это поможет (я немного изменяю и назначаю общедоступный DNS, так как мне все еще нужно настроить DNS-сервер на моем компьютере):

network:
  version: 2
  renderer: networkd

  ethernets:
    # eno1 = wan1
    eno1:
      dhcp4: false
      addresses: [192.168.1.8/24]
      nameservers:
        addresses: [9.9.9.9, 1.1.1.1]
        search: []

    # enp1s0 = lan
    enp1s0:
      dhcp4: false
      addresses: [192.168.9.1/24]
      nameservers:
        addresses: [9.9.9.9, 1.1.1.1]
        search: []
-1
ответ дан 30 July 2020 в 22:04

Другие вопросы по тегам:

Похожие вопросы: