Tengo un servidor (con Ubuntu 16.04) en mi red local, que entre otras cosas, ejecuta DMSmasq. Mi dominio local es njj.chickenkiller.com.
Si se ejecuta en mi Mac, si se consulta el DNS, devuelve la dirección LAN de varias máquinas de mi red. Por ejemplo:
beethoven:~ nick$ dig serv2.njj.chickenkiller.com
; <<>> DiG 9.8.3-P1 <<>> serv2.njj.chickenkiller.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 36867
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;serv2.njj.chickenkiller.com. IN A
;; ANSWER SECTION:
serv2.njj.chickenkiller.com. 0 IN A 192.168.2.4
;; Query time: 82 msec
;; SERVER: 192.168.2.4#53(192.168.2.4)
;; WHEN: Fri Aug 11 14:22:39 2017
;; MSG SIZE rcvd: 61
y en este ejemplo, mi Mac puede resolver correctamente, usando el DNS por defecto, la dirección de serv2 en mi LAN.
Sin embargo, cuando uso otros comandos (por ejemplo, ping) a veces se resuelven correctamente:
beethoven:~ nick$ ping serv2.njj.chickenkiller.com
PING serv2.njj.chickenkiller.com (192.168.2.4): 56 data bytes
64 bytes from 192.168.2.4: icmp_seq=0 ttl=64 time=0.832 ms
Otras veces, mi Mac parece ignorar el resultado del DNS local (que es el único servidor de nombres que está configurado para usar) y de alguna manera se las arregla para usar la dirección WAN (que obtendría si consultara otro DNS):
beethoven:lib nick$ ping serv2
PING njj.chickenkiller.com (90.255.91.177): 56 data bytes
64 bytes from 90.255.91.177: icmp_seq=0 ttl=64 time=2.140 ms
Por lo que puedo decir, el servidor DNS local funciona correctamente -- siempre devuelve la dirección LAN (192.168.2.4) y nunca devuelve la dirección WAN (90.255.91.177). También tengo tanto Windows 7 como una máquina Linux funcionando en la red cuando uso el comando ping (o cualquier otro comando) siempre usan la dirección LAN (192.168.2.4), así que asumo que esto es algo específico de MacOS.
¿Por qué es importante para mí? El router que tengo de mi ISP descarta los paquetes de la LAN que intentan acceder a las máquinas que utilizan la dirección WAN. Esto significa que los comandos que acceden a otras máquinas en la red fallan:
beethoven:lib nick$ ssh serv2
ssh: connect to host serv2 port 22: Connection refused
Estoy usando MacOS 10.12.6
Cualquier sugerencia sobre cómo debería configurar mi Mac para que sólo utilice los DNS configurados para resolver los hosts será agradecida.
EDITAR: ¿Cuál es mi dominio de búsqueda? En la página de configuración de la red el servidor DNS aparece como 192.168.2.4 y el dominio de búsqueda aparece como njj.chickenkiller.com
EDIT 2: Salida de comandos:
beethoven:bin nick$ networksetup -listallnetworkservices
An asterisk (*) denotes that a network service is disabled.
Wi-Fi
*Bluetooth PAN
*Thunderbolt Bridge
beethoven:bin nick$ networksetup -getsearchdomains Wi-Fi
There aren't any Search Domains set on Wi-Fi.
EDIT 3: dnsmasq.conf (del host ubuntu 16.04, "serv2")
# Use google open DNS name servers (avoids the risk of a router attack)
server=/#/8.8.8.8
server=/#/8.8.4.4
# Do not use /etc/hosts, but serve hostnames from /etc/hosts.dnsmasq
no-hosts
addn-hosts=/etc/hosts.dnsmasq
local-ttl=105
# expand unqualified hostnames to suffix njj.chickenkiller.com
expand-hosts
domain=njj.chickenkiller.com
# turn on dhcp (limit leases to 12hours so updates dont need a restart)
dhcp-range=192.168.2.10,192.168.2.99,12h
# and redirect all gateway requests through router
dhcp-option=option:router,192.168.2.1
# and offer a time server
dhcp-option=option:ntp-server,192.168.2.4
# and we are the *only* dns server
dhcp-option=option:dns-server,192.168.2.4