¿Cómo reenviar consultas DNS locales a una máquina virtual cuando macOS está en modo fuera de línea?

0

Para un proyecto necesito interceptar / redirigir consultas de DNS a una máquina virtual, que a su vez ejecuta dnsmasq . Esta máquina virtual está alojada en xhyve y cuando está conectada a la red, la configuración funciona bien; Tengo un archivo en /etc/resolver.conf/test.io que tiene:

nameserver 192.168.64.20
search_order 1

Hacer dig node.test.io @192.168.64.20 o dig node.test.io da los resultados esperados.

Pero cuando se desconecta, hay un problema. Parece que cuando macOS no está conectado a una red, solo permite que las entradas /etc/resolver.conf/* funcionen cuando usan 127.0.0.1 .

Intenté configurar un reenvío de puertos, como:

$ echo "                           
rdr pass inet proto udp from any to 127.0.0.1 port 53 -> 192.168.64.20 port 53
" | sudo pfctl -ef -

y cambiando /etc/resolver.conf/test.io a:

nameserver 127.0.0.1
search_order 1

Sin embargo, el dominio test.io no se puede encontrar cuando intento hacer un nslookup o dig node.test.io @localhost . La VM todavía es accesible ya que dig node.test.io @192.168.64.20 aún se resuelve.

scutil --dns da lo siguiente:

resolver #9
  domain   : test.io
  nameserver[0] : 127.0.0.1
  flags    : Request A records, Request AAAA records
  reach    : 0x00030002 (Reachable,Local Address,Directly Reachable Address)
  order    : 1

Nota: nslookup no parece manejar bien el sistema de resolución, así que también intenté usar curl / wget y el navegador para ver si las consultas se resolvieron correctamente. Además, no hay diferencia con dns-sd . Todos fallaron ...

    
pregunta bmike 19.04.2018 - 08:57

1 respuesta

1

En el modo desconectado no hay ninguna consulta de DNS en absoluto ... Resolvimos esto agregando un dispositivo TUN / TAP al nodo macOS y "pretendemos" con esto que está conectado.

    
respondido por el gbraad 12.06.2018 - 07:40

Lea otras preguntas en las etiquetas