Назад | Перейти на главную страницу

Проблемы с DNS; добавление domain.tld в запросы для локальных (частных IP) хостов

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

# ping server.domain.tld
PING server.domain.tld.domain.tld (###.###.###.###) 56(84) bytes of data.

Очевидно, это нарушает работу ssh и любых сценариев, которые зависят от имен хостов. Все, что в этом домене имеет публичный IP-адрес, разрешается правильно.

Каков мой следующий шаг в устранении этой проблемы? Google не нашел ничего похожего на поисковые запросы, которые я придумал, поэтому любая помощь приветствуется.

Не уверен, что это имеет значение, но когда я пытаюсь пропинговать только сервер, я получаю следующее (что, как мне кажется, должно быть):

# ping server
ping: unknown host server

Похоже, вы хотите настроить разделить горизонт DNS. То есть вы хотите иметь DNS-сервер, который «знает» о частных IP-адресах и именах ваших серверов. Ваши серверы могут использовать этот DNS-сервер для преобразования имен в свои частные IP-адреса вместо общедоступных адресов, которые будут преобразовывать ваши общедоступные DNS-серверы.

Вы не упоминаете, какое программное обеспечение DNS-сервера вы используете (или даже если вы размещаете свой собственный DNS). BIND имеет Просмотры функциональность, которая может делать то, что вам нужно. Другое программное обеспечение DNS-сервера, вероятно, имеет аналогичные функции (я использую BIND только в Linux, поэтому я не могу говорить по опыту).

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

Если у вас есть хосты с именами в вашем домене, которые расположены за пределами вашего устройства NAT, убедитесь, что ваш внутренний DNS-сервер (или представление) правильно возвращает общедоступные IP-адреса для этих хостов.

Редактировать:

Как говорит @BillThor, чтобы ваши серверы разрешали неквалифицированные имена для записей в вашем домене, вам нужно добавить search domain.tld линия к серверам /etc/resolv.conf.

Добавить domain.tld в список поиска в /etc/resolv.conf. Сначала у вас должен быть домен, чтобы он был проверен. Если ваш домен был example.com, следующий список поиска может быть подходящим.

search example.com com net org

Чтобы проверить свой резолвер, используйте такую ​​команду, как:

getent hosts server

Это вернет IP и полное доменное имя сервера, если распознаватель сможет его разрешить.