
Tengo problemas para configurar una solución DHCP/DNS, específicamente, para lograr que los clientes utilicen el servicio DNS proporcionado por el enrutador.
Tengo un "EdgeRouter" que configuré como un conmutador (interfaz switch0
), con un servidor DHCP, así como un servicio Dnsmasq para proporcionar resolución de nombres de host DHCP segúnesta guía
# show service dhcp-server
disabled false
hostfile-update disable
shared-network-name my-dhcp {
authoritative disable
subnet 192.168.7.0/24 {
default-router 192.168.7.1
dns-server 192.168.7.1
domain-name local
lease 86400
start 192.168.7.100 {
stop 192.168.7.240
}
}
}
static-arp disable
use-dnsmasq enable
Tengo dos clientes: una computadora portátil Linux Ubuntu 18.04 (llámela ubuntu
) y una computadora portátil con Windows 10 (llámela windows
), las cuales se conectan al conmutador y obtienen una dirección IP a través de DHCP. Puedo hacer ping completamente entre cada cliente y la interfaz de administración del conmutador, y entre sí. También examiné los registros DHCP recibidos por cada cliente y verifiqué que reciben una dirección de servidor DNS de 192.168.7.1, que es correcta.
En el Switch puedo confirmar estos arrendamientos con:
$ cat /var/run/dnsmasq-dhcp.leases
1420222142 ec:8e:b5:94:bd:8f 192.168.7.175 ubuntu *
1420219707 c8:d3:ff:6f:42:15 192.168.7.100 windows 01:c8:d3:ff:6f:42:15
También ubuntu
puedo verificar que el servidor DNS en el conmutador esté funcionando correctamente:
$ dig @192.168.7.1 ubuntu
; <<>> DiG 9.11.3-1ubuntu1.13-Ubuntu <<>> @192.168.7.1 ubuntu
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 15747
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;ubuntu. IN A
;; ANSWER SECTION:
ubuntu. 43200 IN A 192.168.7.175
;; Query time: 0 msec
;; SERVER: 192.168.7.1#53(192.168.7.1)
;; WHEN: Tue Nov 03 12:21:15 NZDT 2020
;; MSG SIZE rcvd: 53
Respuesta similar para una excavación con windows
.
Si entro al enrutador, puedo ping ubuntu
o ping windows
sin ningún problema: el nombre se resuelve.
El problema es que ni la computadora portátil con Linux ni con Windows parecen resolverse cuando hago ping desde Windows:
> ping ubuntu
Ping request could not find host ubuntu. Please check the name and try again.
O desde Linux:
$ ping windows
ping: windows: Name or service not known
También desde el cliente Linux:
$ nslookup windows
Server: 127.0.0.53
Address: 127.0.0.53#53
** server can't find windows: SERVFAIL
Por lo que tengo entendido, mi computadora portátil Linux ejecuta su propio dnsmasq y /etc/resolv.conf
se ve así:
nameserver 127.0.0.53
options edns0
search local
No estoy seguro de cómo verificar el estado de dnsmasq para ver si se está reenviando hacia/desde la dirección del servidor DNS que obtuvo DHCP.
En el lado de Windows, no tengo idea de cómo depurar esto.
Además, curiosamente, justo después de escribir esto, el lado de Linux de repente comenzó a funcionar:
$ nslookup windows
Server: 127.0.0.53
Address: 127.0.0.53#53
Non-authoritative answer:
Name: windows.local
Address: 192.168.7.100
¡No cambié nada! Quizás algo se resolvió por sí solo en un período de 10 a 20 minutos. Pero el lado de Windows no funciona.
¿Cuál sería el mejor siguiente paso para resolver esto?