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

Настройка DNS для Mandriva Directory Server 5.0

Я только что унаследовал интрасеть, в которой Сервер каталогов Mandriva 5.0 действует как внутренний DNS- и DHCP-сервер, основанный на сервере LDAP для хранения конфигурации.

Идея состоит в том, что все узлы интрасети получают имя записи DNS-ipdaddres, где IP-адрес находится в частном пространстве с NAT. 10.0.*.*

Некоторые из этих хостов также объявлены в реальном публичном DNS (Интернет :-)), указывающем на публичный IP-адрес нашего маршрутизатора; он заботится о переадресации некоторых портов и http-перенаправлении, чтобы некоторые службы интрасети были доступны из-за пределов офиса без доступа, подобного VPN или SSH-туннелю.

Таким образом, DNS-сервер MDS покрывает только частные IP-адреса, а в остальном полагается на общедоступные DNS-серверы.

Теперь у меня есть пара строго связанных вопросов об этой настройке; Я не привык к файлам конфигурации mandriva, и меня немного смущает правильная практика для этой двойной настройки DNS.

  1. ГДЕ я могу изменить «общедоступные» серверы имен для MDS?

    Это в /etc/sysconfig/network-scripts/ifcfg-eth0 , DNS1 и DNS2 ? С тех пор они изменились.

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

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

Продвигается, но главная проблема остается прежней.

Обратите внимание на то, что сервер в настоящее время работает и большинство доменных имен разрешено, но некоторые нет, и, вероятно, он использовал старый, устаревший общедоступный DNS.

Следуя совету @TiZon, я отредактировал /etc/resolvconf/resolv.conf.d/tail для добавления общедоступных серверов имен.

Вот что происходит. Когда основной сервер имен выходит из строя, он не возвращается к общедоступным:

dig rueducommerce.com @10.0.0.10

; <<>> DiG 9.5.0-P2 <<>> rueducommerce.com @10.0.0.10
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 55845
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;rueducommerce.com.             IN      A

;; Query time: 0 msec
;; SERVER: 10.0.0.10#53(10.0.0.10)
;; WHEN: Thu May 19 15:50:55 2011
;; MSG SIZE  rcvd: 35

Dig (или nslookup, такое же поведение) без указания сервера получит код ошибки, попробует следующий сервер в /etc/resolv.conf и вернет результат правильно.

dig rueducommerce.com

;; Got SERVFAIL reply from 127.0.0.1, trying next server

; <<>> DiG 9.5.0-P2 <<>> rueducommerce.com
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 38942
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;rueducommerce.com.             IN      A

;; ANSWER SECTION:
rueducommerce.com.      440     IN      A       178.251.201.141
rueducommerce.com.      440     IN      A       178.251.200.141

;; Query time: 279 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Thu May 19 15:51:51 2011
;; MSG SIZE  rcvd: 67

но stackoverflow работает

dig stackoverflow.com @10.0.0.10

; <<>> DiG 9.5.0-P2 <<>> stackoverflow.com @10.0.0.10
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 40964
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 3, ADDITIONAL: 0

;; QUESTION SECTION:
;stackoverflow.com.             IN      A

;; ANSWER SECTION:
stackoverflow.com.      1800    IN      A       64.34.119.12

;; AUTHORITY SECTION:
stackoverflow.com.      38      IN      NS      ns3.serverfault.com.
stackoverflow.com.      38      IN      NS      ns2.serverfault.com.
stackoverflow.com.      38      IN      NS      ns1.serverfault.com.

;; Query time: 230 msec
;; SERVER: 10.0.0.10#53(10.0.0.10)
;; WHEN: Thu May 19 16:02:24 2011
;; MSG SIZE  rcvd: 117

Qкак я могу отладить, чтобы понять, почему stackoverflow работает, а rueducommerce - нет?

Я мог бы добавить общедоступный DNS в качестве вторичного DNS в DHCP (как?), И клиенты, вероятно, будут вести себя лучше (так же, как эта командная строка), но правильный ли это способ решить эту проблему? Для меня это звучит так, как будто клиенты могут начать получать противоречивые результаты от частного и общедоступного сервера.

Есть ли способ для bind / named получить эти результаты или сообщить клиенту, где их получить?

Надеюсь, вопрос достаточно ясен, не стесняйтесь добавлять комментарии, если мне нужно сформулировать это более четко или добавить подробности .. спасибо!

Настройки DNS хранятся в /etc/resolv.conf. Сервер (или другие клиенты, которые используют DHCP и получают тот же список) будет использовать первый сервер имен, если он доступен, он будет отступать только в том случае, если первый не отвечает (не если он этого не знает). Поэтому вам следует попытаться настроить первый (частный) DNS для ретрансляции для общедоступного DNS.

В /etc/resolv.conf первая строка должна быть nameserver 127.0.0.1. Поместите свой публичный во вторую строку: nameserver 8.8.8.8.

Если у вас запущен resolv.conf.d (проверьте, существует ли папка etc / resolvconf / resolv.conf.d), в этом случае добавьте общедоступный сервер имен в /etc/resolvconf/resolv.conf.d/tail

Теперь протестируйте его с другого компьютера в сети:

nslookup serverfault.com 10.0.X.X

(где 10.0.X.X должен быть IP-адресом сервера MDS)