Tenho bastante experiência com o dnsmasq no dd-wrt e especialmente próximo da data deste comentário. Posso compartilhar com você minha solução de trabalho para cada uma das respostas para cada requisito. Eu resistirei adicionando mais.
Cada opção no seu /tmp/dnsmasq.conf postado acima do seu ativo a> vem diretamente das opções de configuração que você selecionou como descrito
Exceto
para a sua entrada hostname = que você não deve usar imo. Você deseja
Domínio usado: [WAN/LAN]
não Domínio usado [WAN]
. < br>
Isso permitirá que dispositivos com fio (LAN) e sem fio (WAN) trabalhem em sua rede.
Escolha também um Domínio Lan: [dom ]
ou qualquer palavra curta além de local . Alguns usam lan e alguns usam localdomain . Isso é necessário para os seus requisitos e fornecerá um domínio interno interno do tipo faux anchor que somente você e usuários internos verão / usarão. O valor escolhido será colocado em search dom
resolver de cada cliente DHCP. Eu vou usar dom pelo resto, mas você pode fazer o que quiser.
Vou começar com os dois primeiros requisitos.
-
As consultas DNS da LAN / WLAN para hosts na LAN / WLAN devem ser respondidas para nomes curtos e FQDNs.
-
Como alguns dos dispositivos são portáteis (como meu telefone), eu preciso de host.mydyndomain.net para resolver um IP de LAN quando conectado à LAN e ao IP externo quando consultado de fora da LAN.
Para hosts que possuem um ip interno versus externo diferente, mas o mesmo nome nos dois lados do dd-wrt, você precisa ter:
- Adicione uma linha por host resolvível no seu
Static Leases
logo abaixo da sua área de texto vaziaAdditional DHCP Options
corretamente . Observe o nome internoweb.dom
ou apenasweb
para conveniência na lan.
Nota:
[Static Leases++++++++++++++++++++++++++++++++++++++++++++++++++++++++] [MAC Address] [Host Name ][IP Address ][Client Lease Time] [00:19:B9:5B:2B:A5] [web ][192.168.2.5 ][ 1440]
Notas: Eu pensei que isso era usado apenas para udhcpcd , mas isso também é usado pelo dnsmasq e gravará o% realdnsmasq.conf
com dhcp-host=
linhas corretas e coloca uma entrada 'ip host.dom' para cada entrada / tmp / hosts usada pelo DNSMasq para fazer toda a resolução de nome local.
Eu tenho um script e arquivo de texto para criar essas entradas, pois a interface da Web é um pouco trabalhosa. Veja o que o script faz em poucas palavras.
macToHostNames.txt:
# comment lines ignored unless embedded set:tag values like set:kids
# note the ip is just the HOST portion of the subnet, eg: 192.168.1.32 -> 1.32
# host id mac address cnames/aliases for same box
kidhost1 1.32 00:MA:CA:DD:E5 alias1 nabi2 # in-line comment set:kid
web 1.5 00:AM:AC:AD:ES www homeweb # web server with aliases
EOF
generate_Files_Then_Send_Then_Activate_If_Tests_Are_Ok.sh < macToHostNames.txt
# this script file creates 3 files which are sent along with a test script:
dnsmasq_options.new # nvram set dnsmasq_options="$(cat dnsmasq_options.new)"
static_leases.new # nvram set static_leases="$(cat static_leases.new)"
static_leasenum.new # nvram set static_leasenum="$(cat static_leasnum.new)"
testDnsMasqOpts.sh # scp -p *.new test*.sh admin@gw:/tmp && ssh admin@gw "/tmp/test*.sh"
-
adicione
address=/web.dynip.org/<ip>
lines na caixa Opções de DNSMasq address = / web.mydyndomain.net / 192.168.2.5 # adicione quantos deles forem necessários -
finalmente, você precisa atualizar seu
DDNS
config para fornecer o serviço DDNS que mapeia seu endereço IP dinâmico fornecido pelo ISP externo para resolver comoweb.mydyndomain.net
. Eu presumo que você tenha configurado essa parte com sucesso.
Com essa configuração você pode ping web
ou ping web.dom
ou ping web.mydyndomain.net
retornará 192.168.2.5
enquanto estiver dentro do firewall e acessa de fora pelo nome web.mydyndomain.org
ainda funciona.
Os outros requisitos são atendidos pela sua outra configuração, mas você pode adicionar com segurança essas linhas, já que testei MUITOS tempos (ao ponto de escrever um script para executar uma linha dnsmasq de cada vez e mostrar a linha ofensiva desde TODOS os DNS) o logging é deixado de fora por espaço na minha última compilação do dnsmasq e tudo em que você pode confiar é o status de retorno do dnsmasq: $?).
Para os últimos requisitos, mostrarei as linhas da minha configuração com comentários (note que você pode colocar comentários na caixa Opções Adicionais do DNSMasq).
- As consultas para hosts alugados por DHCP estão sendo retornadas corretamente (a opção "DNS local" do dd-wrt para dnsmasq).
- As consultas a qualquer host não existente aleatório retornam incorretamente o endereço IP da WAN externa. Portanto, "nslookup foobarbaz" fornece um resultado quando deve retornar um erro.
domain-needed # dont fwd to ext DNS names with no domain address=/web.mydnsdomain.org/192.168.2.5 # resolve to this internally! expand-hosts # add .dom to host names without a domain local=/dom/ # map all host.dom request to *this* dns bogus-priv # reject local lookups not in hosts localise-queries # for local servers
Eu colocarei alguns brindes não relacionados de valor questionável (e para backup externo).
no-ping # some swear by this one to get DNSMasq to work! filterwin2k # junk from MSFT boxen (remove this if ldap SRV used) cache-size=3000 # fast local DNS lookups clear-on-reload # clear ifr.c changes and sig received
Para limitar o número de servidores DNS, você pode fazer com o dhcp-options = 6 da seguinte forma:
dhcp-options=lan,6,8.8.8.8 # this will send only one nameserver entry for all hosts