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

DNS-сервер не может разрешить имя локального хоста

Я пытаюсь настроить сервер Apache на моей виртуальной машине RHEL6.4 и не могу, потому что dnsmasq по какой-то причине не может распознать имя хоста:

nslookup rhel64.example.com
Server:         xxx.xxx.xx.1
Address:        xxx.xxx.xx.1#53

server can't find rhel64.exmple.com: NXDOMAIN

/etc/hosts:

xxx.x.x.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

/etc/resolv.conf:

; generated by /sbin/dhclient-script
search novalocal example.com
nameserver xxx.xxx.xx.1

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

Ищете способ сделать dnsmasq разрешить имя хоста без изменения DNS-серверов.

Я ожидаю, что IP-адрес вашего сервера будет исправлен. Ваш /etc/hosts должен содержать

127.0.0.1  localhost
127.0.0.1  localhost localhost.localdomain localhost4 localhost4.localdomain4 
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
xxx.x.x.1  rhel64.example.com rhel64

localhost никогда не должен указывать на адрес, отличный от 127.0.0.1 или :: 1. Добавить дополнительные хосты с фиксированными адресами в /etc/hosts как требуется.

Для динамических адресов убедитесь, что вы установили правильный домен в /etc/dnsmasq.confи убедитесь, что имя хоста отправлено в запросе. Проверить dnsmasq.leases файл, который должен быть в /var/lib каталог попробуйте проверить. Домен должен быть указан так.

domain=example.com

В качестве альтернативы вы можете указать фиксированные адреса в dnsmasq.conf файл или /etc/ethers. Такая строка отобразит MAC-адрес aa.bb.cc.dd.ee.ff к 192.0.2.1. DNS-имя будет указано в /etc/hosts как указано выше.

 aa.bb.cc.dd.ee.ff     192.0.2.1

РЕДАКТИРОВАТЬ: Диагностика, которую я бы использовал, включает.

Запуск getent на хосте с запущенным dnsmasq.

 getent hosts rhel64

Это должно вернуть значение, введенное вами в файл hosts или возвращенное DNS. Если это сработает, попробуйте использовать host команда для поиска адреса. Использовать nslookup если хосты недоступны. Попробуйте эти команды. (Похоже, ваш dnsmasq и apache серверы находятся на одном хосте.

 hosts rhel64.
 hosts rhel64.example.com.
 hosts rhel64.  localhost
 hosts rhel64.example.com.  localhost
 hosts rhel64.  rhel64. 
 hosts rhel64.example.com.  rhel64.
 hosts rhel64.  rhel64.example.com.
 hosts rhel64.example.com.  rhel64.example.com.

Какая команда не работает и как она не работает, должно помочь вам определить проблему. Вы также можете убедиться, что dnsmasq прослушивает все IP-адреса.

При диагностике проблемы: Запросы на rhel64. предназначены для имени хоста, не соответствующего домену, а запросы на rhel64.example.com. для полностью квалифицированного имени. Последняя точка в именах указывает преобразователю не пробовать домены из списка поиска. Второе имя хоста, если указано, имеет приоритет над серверами имен, указанными в /etc/resolv.conf. В данном случае я использовал серверы от /etc/resolv.conf, адрес localhost (127.0.0.1 или :: 1), адрес имени хоста, найденный в DNS, и адрес полного имени, найденный на сервере имен. Последние два сервера не будут работать, если первоначальный поиск имени не удастся.

 netstat -an | grep :53

РЕДАКТИРОВАТЬ: при повторном чтении вашего сообщения я заметил, что вы получаете свой адрес от DHCP, примечания по установке фиксированного IP-адреса относятся к DHCP-серверам в стиле Unix. Их следует применять к dchp-серверу, который, вероятно, является маршрутизатором на xxx.x.x.1, который не будет адресом вашего сервера. Вы должны иметь возможность получить текущий IP-адрес с помощью любой команды ifconfig или более новая команда ip addr. Это адрес, который должен совпадать с именем вашего хоста в файле / etc / hosts.

Если у вас нет доступа к маршрутизатору, вы можете попытаться получить DHCP для обновления службы DNS для вас. Добавьте следующую запись в наш файл конфигурации DHCP: option fqdn.fqdn rhel64.example.com; или вариант fqdn.fqdn rhel64;

После добавления записи вам нужно будет перезапустить dhclient обработать. Попробуйте команды

sudo dhclient -r
sudo dhclient

В противном случае вам потребуется перезапустить интерфейс или всю настройку сети.