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

3

Я пытаюсь настроить сервер Apache на моем RHEL6.4 vm и не 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-серверов.

pt18cher
источник

Ответы:

3

Я ожидаю, что 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

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

Запуск гетента на хосте с запущенным 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.xx1, который не будет адресом вашего сервера. Вы должны быть в состоянии получить текущий IP-адрес с помощью команды ifconfigили более новой команды ip addr. Это адрес, который должен соответствовать вашему имени хоста в файле / etc / hosts.

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

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

sudo dhclient -r
sudo dhclient

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

BillThor
источник
Я добавил хост и перезапустил httpd и dnsmasq, и я все еще получаю ошибку, когда делаю 'nslookup' на имени хоста.
pt18cher
Сервер: xxx.xxx.xx.1 Адрес: xxx.xxx.xx.1 # 53 ** сервер не может найти rhel64: SERVFAIL
pt18cher
Сервер: localhost Адрес: :: 1 # 53 Имя: rhel64 Адрес: «адрес хост-машины»
pt18cher
Сервер: localhost Адрес: :: 1 # 53 Имя: rhel64.example.com Адрес: «имя хост-машины»
pt18cher
Сервер: xxx.xxx.xx.1 Адрес: xxx.xxx.xx.1 # 53 ** сервер не может найти rhel64.example.com: NXDOMAIN
pt18cher