Рейтинг:0

Обновления Ubuntu 20.04 - сбой разрешения имени DNS во внутренней сети

флаг kr

Моя компания распространяет программное обеспечение среди клиентов на виртуальных машинах Ubuntu. Недавно мы обновили все клиентские ВМ с Ubuntu 16/18 до Ubuntu 20.04.

У нас возникла проблема, из-за которой разрешение имен DNS не работает во внутренней сети. Он работает вне сети (мы можем пинговать внешние веб-сайты), но мы не можем подключаться к машинам во внутренней сети по DNS-имени — только по IP-адресу. Во многих случаях нам удавалось разрешить внутренние DNS-имена на старых виртуальных машинах (Ubuntu 16/18), но это не работает, когда мы устанавливаем новую виртуальную машину с теми же сетевыми настройками.

Обычно мы настраиваем виртуальную машину со статическим IP-адресом. ИТ-отдел клиента предоставляет нам информацию о своей сети и внутренних DNS-серверах, и мы настраиваем наши 00-установщик-config.yaml файл соответственно

/etc/netplan/00-installer-config.yaml пример установки:

сеть:
  Ethernet:
    enp0s10f0:
      адреса: [192.168.10.200/24]
      шлюз4: 192.168.10.1
      серверы имен:
        адреса: [192.168.10.1, xxx.xxx.xxx.xxx и т.д.]
  версия: 2

На старых виртуальных машинах мы часто не могли пропинговать внутренние машины по DNS-имени, пока не добавили локальное доменное имя. Например. пинг fs01 не сработает, но ping fs01.clientdomain.local должно сработать. Однако на виртуальных машинах Ubuntu это, похоже, совсем не помогает. Нам всегда приходится возвращаться к IP-адресу файлового сервера, а не использовать доменное имя. В большинстве случаев это нормально, поскольку IP-адрес статичен и не подлежит изменению, но это не всегда так, и мы бы предпочли возможность подключения через DNS-имя.

Сеть и домены действительно не моя сильная сторона. Если бы кто-нибудь мог предложить что-то, что можно попробовать, или области для исследований, это было бы очень признательно!

ОБНОВИТЬ

Я попробовал добавить IP-адрес внутреннего сервера имен в нслукап команду и сделал несколько скриншотов. Похоже, что виртуальная машина может найти хост с нслукап, но только когда я явно включаю IP-адрес сервера имен.

192.168.1.4 — это сервер имен, а также хост, к которому мы пытаемся подключиться.

Примечание: Это работало на старой виртуальной машине Ubuntu 18.04, используя тот же внутренний сервер имен и полное доменное имя хоста.

Обычный пинг

user@ubuntu:~$ ping <hostname.domain.local>
    ping: <hostname.domain.local>: временный сбой в разрешении имени

Простой нслукап

user@ubuntu:~$ nslookup <hostname.domain.local>
    Сервер: 127.0.0.53
    Адрес: 127.0.0.53#53

    ** сервер не может найти <hostname.domain.local>: SERVFAIL

nslookup с IP-адресом сервера имен

user@ubuntu:~$ nslookup <hostname.domain.local> 192.168.1.4 
    Сервер: 192.168.1.4## Заголовок ##
    Адрес: 192.168.1.4#53

    Имя: <hostname.domain.local>
    Адрес: 192.168.1.85
    Имя: <hostname.domain.local>
    Адрес: 192.168.1.4

В этом случае сервер имен 192.168.1.4 был единственной записью сервера имен в нашем файле yaml. Поэтому я не понимаю, как это может быть проблемой с порядком серверов имен в файле:

сеть:
  Ethernet:
    enp0s10f0:
      адреса: [192.168.1.21/24]
      шлюз4: <шлюз>
      серверы имен:
        поиск: [<domain.local>]
        адреса: [192.168.1.4]
  версия: 2
jtessier72 avatar
флаг cn
Является ли ваш шлюз также вашим DNS-сервером, как в примере? Кроме того, каков результат 'nslookup ' и 'nslookup '. Похоже, вы не можете связаться с DNS-сервером.
флаг kr
Иногда ИТ-отдел предоставляет нам шлюз в качестве одного из своих DNS-серверов. Хотя обычно они разные. Однажды мы попытались выполнить nslookup по имени хоста и не смогли его найти. Но мы смогли подключиться к DNS-серверу, что было очень странно. Недавно мы сделали обновление, в котором впервые смогли подключиться по имени хоста, но их домен был «.ca», а не «.local» (т. е. `hostname.domain.ca`). Я не уверен, почему это будет иметь значение
jtessier72 avatar
флаг cn
На старых виртуальных машинах может помочь добавление суффикса поиска clientdomain.local — как если бы вы набрали ping fs01, он добавил бы суффиксы поиска по порядку при попытке разрешить имя. Вы можете сравнить IP-адреса серверов имен. Когда вы говорите, что можете подключиться к DNS-серверу - это с помощью ping или каким-то другим способом?
флаг kr
Да, это был просто простой пинг на DNS-сервер, который мы пробовали. Я думаю, что в одном случае ИТ-специалисты могли выполнить nslookup непосредственно на DNS-сервере, но я точно не помню. Кто-то предложил мне выполнить `nslookup ` а не просто указать хост, так что я обязательно попробую это в следующий раз
флаг ru
К вашему сведению, вы забыли настроить поисковые домены. Если `hostname` должно быть `hostname.foo.bar`, когда вы используете полное доменное имя, ваши поисковые домены должны быть настроены для `foo.bar` в конфигурации. Добавьте «поиск: [clientdomain.local]» в раздел «серверы имен».
флаг kr
Извините, я забыл включить это, я скопировал содержимое файла вручную. Я обновил вывод конфигурации выше, чтобы он был более точным. На этот раз мы попытались добавить поисковый домен, и я снова выполнил команды `ping/nslookup`, но это не повлияло на нашу внутреннюю проблему разрешения имен.
флаг ru
@user2437443 user2437443 Я предполагаю, что вы запустили `netplan apply` после изменения или перезагрузки после этого, потому что иначе это не сработало бы. Это также не будет работать, если 192.168.1.4 (DNS-сервер) не знает, что домен поиска DNS присутствует. И убедитесь, что вы не включаете ``, потому что это не часть домена. Кроме того, SERVFAIL означает, что когда система пыталась запросить 192.168.1.4, произошла ошибка, поэтому DNS-сервер не смог ответить допустимым ответом. Это говорит о том, что используемый вами DNS-сервер сломан или неправильно настроен, а не проблема на стороне клиента.
jtessier72 avatar
флаг cn
Вы можете увидеть, что такое настоящий активный DNS-сервер: systemd-разрешение --статус | grep 'DNS-серверы' -A2

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.