Поиск DNS на локальном хосте дает ошибку сети

Я запускаю рекурсивный DNS-сервер на Unbound в тюрьме на FreeBSD с pf в качестве брандмауэра. Выполнение Drill @ xxx.xxx.xxx.xxx example.com (где xxx.xxx.xxx.xxx - IP-адрес сервера) на моем локальном компьютере дает мне успешный поиск.

Однако, если Я пробую то же самое на самом сервере, как в тюрьме, так и на хосте ...

# drill @localhost example.com
Error: error sending query: Could not send or receive, because of network error
# drill @xxx.xxx.xxx.xxx example.com
Error: error sending query: Could not send or receive, because of network error
# drill @127.0.0.1 example.com
Error: error sending query: Could not send or receive, because of network error
# drill @10.0.0.1 example.com
Error: error sending query: Could not send or receive, because of network error

У меня есть быстрый переход на lo0 all в моем pf.conf

Вот мой соответствующий ifconfig:

lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
    options=600003<RXCSUM,TXCSUM,RXCSUM_IPV6,TXCSUM_IPV6>
    inet6 ::1 prefixlen 128
    inet6 fe80::1%lo0 prefixlen 64 scopeid 0x3
    inet 127.0.0.1 netmask 0xff000000
    nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
lo1: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
    options=600003<RXCSUM,TXCSUM,RXCSUM_IPV6,TXCSUM_IPV6>
    inet 10.0.0.1 netmask 0xffffff00
    nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>

Jail DNS работает под 10.0.0.1

Пара мыслей с моей стороны: Несвязанный, несомненно, настроен правильно. Интерфейс уже 0.0.0.0, и у меня есть правила контроля доступа для 10.0.0.0/16 и 127.0.0.0/8 (и, конечно, IP моего локального компьютера). Кроме того, попытка сверления привела бы к простому отказу, если что-то было неисправно. Так я думаю, это как-то связано с pf? Возможно, мне не хватает чего-то небольшого и очевидного, но я не могу понять, чего.

Я бы хотел добиться успеха # Drill @localhost example.com на сервере, поэтому Я могу заменить свои серверы имен resolv.conf на 127.0.0.1

Edit: Я провел некоторое тестирование с помощью netcat, выполнение # nc -4 -vv localhost 53 дает мне тайм-аут. Однако использование udp в качестве протокола с # nc -4 -w 10 -vv -u localhost 53 не работает. Выполняется # pfctl -vnf /etc/pf.conf, вот два перенаправления в тюрьму:

rdr pass on vtnet0 inet proto udp from any to any port = domain -> 10.0.0.1 port 53
rdr pass on vtnet0 inet proto tcp from any to any port = domain -> 10.0.0.1 port 53
0
задан 7 February 2016 в 16:08
1 ответ

Еще немного протестировав правила pf, я ненадолго пропустил весь трафик и понял, что ошибка заключалась в том, что, хотя у меня был быстрый проход для lo0 all в pf.conf, тюрьма работает под lo1.

Я добавил быстро пройти на lo1 all , и теперь он работает.

Также обратите внимание, что из тюрьмы вы должны запрашивать IP-адрес тюрьмы вместо localhost. Итак, в файле resolv.conf тюрьмы:

nameserver 10.0.0.1
2
ответ дан 4 December 2019 в 13:43

Теги

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