Сервер Ubuntu не получает DNS от DHCP-сервера?

Вопрос или проблема

Сервер Ubuntu, похоже, не получает настройки DNS от службы DHCP на моем маршрутизаторе.

root@dios:/etc/netplan# cat 01-netcfg.yaml
    сеть:
      версия: 2
      рендерер: networkd
      Ethernet:
        enp3s0:
          dhcp4: true

Он получает свой IP-адрес от DHCP-сервера, но настройки DNS, похоже, отсутствуют.

root@dios:/run/systemd/network# nslookup www.google.com

root@dios:/run/systemd/network# nslookup www.google.com 192.168.2.1
    Сервер:         192.168.2.1
    Адрес:        192.168.2.1#53

    Неавторитетный ответ:
    Имя:   www.google.com
    Адрес: 142.250.80.68
    Имя:   www.google.com
    Адрес: 2607:f8b0:4006:80c::2004

Мой компьютер с Windows работает нормально, что заставляет меня думать, что проблема с моим сервером Ubuntu.

Я пытался вручную установить настройки DNS в файле netplan:

   сеть:
     версия: 2
     рендерер: networkd
     Ethernet:
       enp3s0:
         dhcp4: true
         dhcp4-overrides:
           use-dns: false
         nameservers:
           addresses: [192.168.2.1, 8.8.8.8]

Но это тоже не помогло.

Где я ошибаюсь?

Оказалось, что служба Systemd-Resolved была отключена. Я не знаю, почему или как, но это так. Я включил ее, и все работает плавно.

Ответ или решение

Ваша проблема с тем, что сервер Ubuntu не получает настройки DNS от DHCP, может иметь несколько причин. Судя по вашему описанию, вы уже проверили конфигурацию Netplan и убедились, что DHCP работает, поскольку сервер получает IP-адрес. Однако, похоже, что настройки DNS не применяются должным образом.

  1. Проверка службы systemd-resolved: Как вы уже выяснили, служба systemd-resolved была отключена. Эта служба отвечает за управление резолверами DNS и предоставляет настройки DNS для различных интерфейсов. Вы можете проверить состояние службы с помощью следующей команды:

    systemctl status systemd-resolved

    Если она отключена, вы можете активировать её так:

    sudo systemctl enable systemd-resolved
    sudo systemctl start systemd-resolved

    После этого проверьте, получает ли ваш сервер DNS-настройки из DHCP. Вы можете сделать это с помощью команды:

    resolvectl status
  2. Конфигурация Netplan: Ваша конфигурация Netplan выглядит корректной, однако стоит убедиться, что параметр dhcp4-overrides правильно настроен. Если вы хотите, чтобы система использовала DNS-серверы, предоставленные DHCP, убедитесь, что вы не используете параметр use-dns: false. Затем примените изменения с помощью следующей команды:

    sudo netplan apply
  3. Проверка файла resolv.conf: Убедитесь, что файл /etc/resolv.conf правильно перенаправляет DNS-запросы на systemd-resolved. Если служба активна, файл должен содержать строку:

    nameserver 127.0.0.53

    Если в файле указаны другие DNS-серверы, это может привести к путанице. Если необходимо, то используйте команду:

    sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf
  4. Тестирование после изменений: После выполнения вышеуказанных шагов проверьте, работает ли резолвинг DNS:

    nslookup www.google.com

Если всё сделали правильно, но проблема все еще не решена, рассмотрите возможность:

  • Проверки состояния вашего DHCP-сервера на маршрутизаторе, чтобы убедиться, что он действительно передает DNS-серверы.
  • А также проверьте прошивку маршрутизатора на наличие обновлений, которые могут исправить возможные баги.

Следуя данным рекомендациям, вы сможете наладить работу DNS на вашем сервере Ubuntu.

Оцените материал
Добавить комментарий

Капча загружается...