1

Я использую DNSmasq как для своих локальных клиентов, так и для некоторых интернет-сервисов. Одна услуга, которую я предоставляю, - это сервер DynDNS. Он получает обновления IP через HTTP и записывает его как простой файл hosts, но без домена. Домен подключен DNSmasq из-за следующей минимальной конфигурации:

interface=eth0          # internal
interface=eth1          # external
no-dhcp-interface=eth1
dhcp-range=192.168.1.2,192.168.1.254,12h

domain=mydomain.eu
no-hosts
addn-hosts=/etc/hosts.dyndns         # hosts file created by my dynDNS server
expand-hosts

# Server/VMs
host-record=server,192.168.1.1
host-record=server.mydomain.eu,<externalIP>
cname=dns.mydomain.eu,server.mydomain.eu
address=/mydomain.eu/<externalIP>    # wildcard subdomains

Проблема в том, что домен доставляется по DHCP и моим локальным клиентам. Если некоторые из них запрашивают server клиент распространяет свой запрос на домен server.mydomain.eu который DNSmasq отвечает как « <externalIP> . Из-за топологии моего подключения к Интернету это связано с несколькими проблемами. Вместо этого он должен быть разрешен до 192.168.1.1 .

Как заставить DNSmasq различать запросы от локальной сети и интернета? Или можно использовать domain только для расширения файлов хостов?

2 ответа2

1

ISC DHCP-сервер имеет зоны, которые могут решить вашу проблему, но я сомневаюсь, что вы хотите оставить dnsmasq.

Но вы можете запустить два экземпляра dnsmasq с немного разными конфигами. Внутренний:

bind-interfaces
interface=eth0          # internal
dhcp-range=192.168.1.2,192.168.1.254,12h

domain=mydomain.eu
no-hosts
addn-hosts=/etc/hosts.dyndns         # hosts file created by my dynDNS server
expand-hosts

# Server/VMs
host-record=server,192.168.1.1
host-record=server.mydomain.eu,192.168.1.1
cname=dns.mydomain.eu,server.mydomain.eu
address=/mydomain.eu/<externalIP>    # wildcard subdomains

и внешний:

bind-interfaces
interface=eth1          # external

no-hosts
addn-hosts=/etc/hosts.dyndns         # hosts file created by my dynDNS server

# Server/VMs
host-record=server.mydomain.eu,<externalIP>
cname=dns.mydomain.eu,server.mydomain.eu
address=/mydomain.eu/<externalIP>    # wildcard subdomains
-1

Если вы можете пропинговать 157.166.224.26, но не можете пропинговать cnn.com

Тогда у вас проблемы с DNS.

[Если вы НЕ можете пинговать ЛИБО, тогда есть проблемы с сетью, и у вас НЕТ проблем, если вы МОЖЕТЕ пинговать ОБА]

Затем вы можете использовать nslookup для поиска альтернативного внутреннего или внешнего DNS-сервера, который правильно разрешает «cnn.com» по своему IP-адресу, и настраивать сетевую карту вашей рабочей станции для этого статического DNS-сервера до тех пор, пока не возникнут проблемы с DHCP.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .