Параметр несвязанного заглушки не разрешается с помощью / etc / hosts

У меня есть несвязанный, работающий как проверяющий, кэширующий, рекурсивный DNS-сервер, и nsd3, работающий как авторитетный сервер имен. Кажется, что каждый аспект обоих работает правильно, пока я не попытаюсь разрешить адрес, который следует перенаправить на nsd3. Я сузил проблему до заглушки, которая пересылается из несвязанного в nsd3, и похоже, что она не разрешает имя «заглушки». Согласно журналам, unbound пытается разрешить 'stub-host' использование внешнего DNS вместо / etc / hosts (хотя это может быть связано с тем, что он каким-то образом не работает во время поиска). Я протестировал жесткое кодирование IP-адреса сервера nsd3, который, кажется, работает отлично.

Вот соответствующая часть моей несвязанной конфигурации (полная конфигурация Здесь ):

private-domain: "test.lan"
local-zone: "0.0.10.in-addr.arpa." nodefault
stub-zone:
     name: "test.lan"
     stub-host: unsd_nsd3

forward-zone:
     name: "."
     forward-addr: 8.8.8.8        # Google Public DNS
     forward-addr: 74.82.42.42    # Hurricane Electric
     forward-addr: 4.2.2.4        # Level3 Verizon

Вот результат несвязанной с уровень журнала 3. Я запустил dig mithril.test.lan @localhost в качестве теста (он разрешается правильно, когда nsd3 запрашивается напрямую):

[1448909203] unbound[1:0] debug: validator[module 0] operate: extstate:module_state_initial event:module_event_moddone
[1448909203] unbound[1:0] info: validator operate: query unsd_nsd3. A IN
[1448909203] unbound[1:0] debug: iterator[module 1] operate: extstate:module_wait_subquery event:module_event_pass
[1448909203] unbound[1:0] info: iterator operate: query mithril.test.lan. A IN
[1448909203] unbound[1:0] info: processQueryTargets: mithril.test.lan. A IN
[1448909203] unbound[1:0] info: new pside target unsd_nsd3. A IN
[1448909203] unbound[1:0] debug: iterator[module 1] operate: extstate:module_state_initial event:module_event_pass
[1448909203] unbound[1:0] info: iterator operate: query unsd_nsd3. A IN
[1448909203] unbound[1:0] info: resolving unsd_nsd3. A IN
[1448909203] unbound[1:0] info: processQueryTargets: unsd_nsd3. A IN
[1448909203] unbound[1:0] info: sending query: unsd_nsd3. A IN
[1448909203] unbound[1:0] debug: sending to target: <.> 74.82.42.42#53
[1448909203] unbound[1:0] debug: cache memory msg=132347 rrset=132399 infra=5449 val=132392
[1448909203] unbound[1:0] debug: iterator[module 1] operate: extstate:module_wait_reply event:module_event_reply
[1448909203] unbound[1:0] info: iterator operate: query unsd_nsd3. A IN
[1448909203] unbound[1:0] info: response for unsd_nsd3. A IN
[1448909203] unbound[1:0] info: reply from <.> 74.82.42.42#53
[1448909203] unbound[1:0] info: query response was NXDOMAIN ANSWER
[1448909203] unbound[1:0] info: finishing processing for unsd_nsd3. A IN
[1448909203] unbound[1:0] debug: validator[module 0] operate: extstate:module_state_initial event:module_event_moddone
[1448909203] unbound[1:0] info: validator operate: query unsd_nsd3. A IN
[1448909203] unbound[1:0] debug: iterator[module 1] operate: extstate:module_wait_subquery event:module_event_pass
[1448909203] unbound[1:0] info: iterator operate: query mithril.test.lan. A IN
[1448909203] unbound[1:0] info: processQueryTargets: mithril.test.lan. A IN
[1448909203] unbound[1:0] debug: out of query targets -- returning SERVFAIL
[1448909203] unbound[1:0] debug: return error response SERVFAIL
[1448909203] unbound[1:0] debug: validator[module 0] operate: extstate:module_wait_module event:module_event_moddone
[1448909203] unbound[1:0] info: validator operate: query mithril.test.lan. A IN
[1448909203] unbound[1:0] debug: cache memory msg=132557 rrset=132624 infra=5449 val=132392

В качестве примечания, я запускаю оба несвязанных и nsd3 в своих собственных контейнерах докеров из базового образа debian и связали их вместе. Я могу нормально разрешить unsd_nsd3 в несвязанном контейнере. Вот файл / etc / hosts в несвязанном контейнере:

172.17.0.6  a79a91df9ec5
127.0.0.1   localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
172.17.0.5  docker_nsd3 89a74b365c88 unsd_nsd3
172.17.0.5  unsd_nsd3 89a74b365c88

У меня закончились идеи, как двигаться дальше. Некоторая помощь будет оценена.

4
задан 30 November 2015 в 21:20
1 ответ

Unbound не использует / etc / hosts . Несвязанный может разрешить только заглушку unsd_nsd3 путем перенаправления в восходящий поток. Вам нужно будет настроить local-zone и local-data , чтобы отразить содержимое ваших / hosts , либо использовать IP-адрес для заглушки.

Для облегчения миграции в архиве исходных текстов есть сценарий Perl, contrib / build-unbound-localzone-from-hosts.pl , который генерирует включаемый файл. Имя локальной зоны необходимо задать внутри сценария до выполнения exec

0
ответ дан 3 December 2019 в 04:20

Теги

Похожие вопросы