Eu tenho uma rede de máquinas com Windows 10 servidas (DNS e DHCP) por uma instância dnsmasq
em um servidor Ubuntu (Ubuntu 15.10, dnsmasq
2.75). A configuração funciona basicamente ( dnsmasq
fornece endereços e gerencia solicitações de DNS corretamente), exceto por um caso específico.
Eu queria fornecer um servidor DNS específico para uma máquina específica. Eu usei a opção tag
em dnsmasq
:
# open zone
dhcp-host=84:3a:4b:20:94:f0,set:open
# DNS for everyone = OpenDNS
dhcp-option-force=option:dns-server,208.67.222.222,208.67.220.220
# DNS for open = Google
dhcp-option-force=tag:open,option:dns-server,8.8.8.8,8.8.4.4
Após ipconfig /renew
no cliente, as opções corretas são enviadas por dnsmasq
:
root@srv ~# dnsmasq -d
dnsmasq: started, version 2.75 cachesize 150
dnsmasq: compile time options: IPv6 GNU-getopt DBus i18n IDN DHCP DHCPv6 no-Lua TFTP conntrack ipset auth DNSSEC loop-detect inotify
dnsmasq: reading /etc/resolv.conf
dnsmasq: using nameserver 192.168.0.254#53
dnsmasq-dhcp: DHCP, IP range 10.10.10.20 -- 10.10.10.100, lease time 5d
dnsmasq: cleared cache
dnsmasq-dhcp: 342453732 available DHCP range: 10.10.10.20 -- 10.10.10.100
dnsmasq-dhcp: 342453732 vendor class: MSFT 5.0
dnsmasq-dhcp: 342453732 client provides name: helloworld.example.com
dnsmasq-dhcp: 342453732 DHCPREQUEST(lan0) 10.10.10.21 84:3a:4b:20:94:f0
dnsmasq-dhcp: 342453732 tags: open, known, lan0
dnsmasq-dhcp: Ignoring domain example.com for DHCP host name helloworld
dnsmasq-dhcp: 342453732 DHCPACK(lan0) 10.10.10.21 84:3a:4b:20:94:f0 helloworld
dnsmasq-dhcp: 342453732 requested options: 1:netmask, 3:router, 6:dns-server, 15:domain-name,
dnsmasq-dhcp: 342453732 requested options: 31:router-discovery, 33:static-route, 43:vendor-encap,
dnsmasq-dhcp: 342453732 requested options: 44:netbios-ns, 46:netbios-nodetype, 47:netbios-scope,
dnsmasq-dhcp: 342453732 requested options: 121:classless-static-route, 249, 252
dnsmasq-dhcp: 342453732 next server: 10.10.10.254
dnsmasq-dhcp: 342453732 sent size: 1 option: 53 message-type 5
dnsmasq-dhcp: 342453732 sent size: 4 option: 54 server-identifier 10.10.10.254
dnsmasq-dhcp: 342453732 sent size: 4 option: 51 lease-time 5d
dnsmasq-dhcp: 342453732 sent size: 4 option: 58 T1 2d8h23m1s
dnsmasq-dhcp: 342453732 sent size: 4 option: 59 T2 4d5h23m1s
dnsmasq-dhcp: 342453732 sent size: 4 option: 1 netmask 255.255.255.0
dnsmasq-dhcp: 342453732 sent size: 4 option: 28 broadcast 10.10.10.255
dnsmasq-dhcp: 342453732 sent size: 4 option: 3 router 10.10.10.254
dnsmasq-dhcp: 342453732 sent size: 4 option: 15 domain-name testlab
dnsmasq-dhcp: 342453732 sent size: 18 option: 81 FQDN 03:ff:ff:6c:77:35:79:6f:70:32:64:73:79:2e...
dnsmasq-dhcp: 342453732 sent size: 8 option: 6 dns-server 8.8.8.8, 8.8.4.4
dnsmasq-dhcp: 342453732 sent size: 1 option: 46 netbios-nodetype 08
dnsmasq-dhcp: 342453732 sent size: 4 option: 44 netbios-ns 10.10.10.254
Assim, o cliente recebe o IP 10.10.10.21
(eu o alterei durante os testes e o correto é atribuído a cada vez, para cada alteração - portanto, a resposta à solicitação é corretamente interpretada pelo cliente) e, entre outros , os servidores DNS específicos.
Tudo fica bem no lado dnsmasq
.
No cliente, recebo
Wireless LAN adapter Wi-Fi:
Connection-specific DNS Suffix . : testlab
Description . . . . . . . . . . . : Intel(R) Centrino(R) Advanced-N 6205
Physical Address. . . . . . . . . : 84-3A-4B-20-94-F0
DHCP Enabled. . . . . . . . . . . : Yes
Autoconfiguration Enabled . . . . : Yes
Link-local IPv6 Address . . . . . : fe80::74d6:d6c:a5cc:54c7%8(Preferred)
IPv4 Address. . . . . . . . . . . : 10.10.10.21(Preferred)
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Lease Obtained. . . . . . . . . . : samedi 2 avril 2016 15:59:55
Lease Expires . . . . . . . . . . : jeudi 7 avril 2016 16:03:15
Default Gateway . . . . . . . . . : 10.10.10.254
DHCP Server . . . . . . . . . . . : 10.10.10.254
DHCPv6 IAID . . . . . . . . . . . : 75774539
DHCPv6 Client DUID. . . . . . . . : 00-01-00-01-1C-87-7B-B4-3C-97-0E-67-52-6C
DNS Servers . . . . . . . . . . . : 10.10.10.254
Primary WINS Server . . . . . . . : 10.10.10.254
NetBIOS over Tcpip. . . . . . . . : Enabled
Eu verifiquei com o Wireshark no cliente o tráfego recebido. No pacote DHCP ACK
(aquele recebido do servidor DHCP), a opção está correta (por isso, não foi removida no caminho ou algo assim):
O IP está OK, mas o servidor DNS não está correto: o padrão é o servidor DHCP - parece que a opção recebida não é interpretada corretamente (?)