¿Hacer que mDNSResponder use el servidor DNS local?

3

Quiero usar dnsmasq cuando mi Mac (Sierra) no está conectada a una red wifi.

La configuración de los servidores DNS en el cuadro de diálogo Preferencias de red avanzada funciona bien para dig y nslookup , y puedo ver a través de tcpdump que estas herramientas llegan al servidor local dnsmasq .

No funciona para los binarios ping , curl y Golang como el CLI de Cloud Foundry. Estos no pueden resolver hosts y no intentan comunicarse con el servidor de nombres local. Cuando uso dtruss para el binario cf Golang, puedo verlo abriendo /etc/hosts . No estoy seguro de cómo detectar que intenta hablar con los servidores de nombres.

Si detengo los servicios mDNSResponder y mDNSResponderHelper , ping y curl tardan un poco más en fallar con cannot resolve api.local.pcfdev.io: Unknown host , pero aún así fallan, y sin intentar llegar al servidor de nombres local.

¿Alguna idea de cómo en la Tierra puedo obtener macOS para usar mi servidor de nombres local cuando estoy desconectado?

    
pregunta EngineerBetter_DJ 18.10.2016 - 20:59

1 respuesta

1

Creo que mDNSResponder, con una máquina virtual de PCF Dev Dev VirtualBox pero sin LAN / WLAN, falta una puerta de enlace predeterminada o se equivoca. Si sus interfaces no están conectadas o todas las interfaces están inactivas, entonces no existe una puerta de enlace predeterminada.

Puedes verificar esto con:

netstat -r -f inet
Routing tables

Internet:
Destination        Gateway            Flags        Refs      Use   Netif Expire
127                localhost          UCS             1        0     lo0
localhost          localhost          UH              5     1380     lo0
192.168.11         link#7             UC              4        0 vboxnet
224.0.0            link#1             UmCS            2        0     lo0
224.0.0.251        link#1             UHmWI           1        0     lo0

Para evitar esto, puedes hacer lo siguiente:

Requisito: una configuración adecuada de dnsmasq como se publicó en tu q & mi un . Es posible que tenga que desactivar todas las interfaces.

Duplique un perfil de ubicación en Preferencias del sistema > Red y cámbiele el nombre a, por ejemplo, pcdev con VLAN .

Elige una interfaz (por ejemplo, Wi-Fi) en el panel izquierdo y presiona el engranaje en la parte inferior del panel izquierdo > Gestionar interfaces virtuales. Presione el botón y agregue una "Nueva VLAN ...". Cámbiele el nombre a VLAN, elija 1 como etiqueta y una interfaz.

Configure la interfaz: manualmente con una IP arbitraria pero no utilizada, p. ej. 10.228.8.226/Mask 255.255.0.0/Router 10.228.0.1 y servidor DNS 127.0.0.1. Aplique la configuración con el botón Aplicar . La IP (+ Máscara) y el Enrutador deben estar en la misma red.

Verifique nuevamente la tabla de enrutamiento. Primero se verá así:

netstat -r -f inet
Routing tables

Internet:
Destination        Gateway            Flags        Refs      Use   Netif Expire
10.228/16          link#8             UC              2        0   vlan0
127                localhost          UCS             1        0     lo0
localhost          localhost          UH              4     1380     lo0
192.168.11         link#7             UC              2        0 vboxnet
224.0.0            link#1             UmCS            2        0     lo0
224.0.0.251        link#1             UHmWI           1        0     lo0

pero después de unos segundos (hasta 40 segundos en mi entorno) debería completarse:

netstat -r -f inet
Routing tables

Internet:
Destination        Gateway            Flags        Refs      Use   Netif Expire
default            10.228.0.1         UGSc            3        0   vlan0
10.228/16          link#8             UCS             2        0   vlan0
10.228.0.1/32      link#8             UCS             2        0   vlan0
10.228.0.1         link#8             UHRLWIir        4        0   vlan0     18
10.228.8.226/32    link#8             UCS             2        0   vlan0
10.228.255.255     ff.ff.ff.ff.ff.ff  UHLWbI          1        3   vlan0
127                localhost          UCS             1        0     lo0
localhost          localhost          UH             26     1494     lo0
192.168.11         link#7             UC              3        0 vboxnet
192.168.11.11      8:0:27:35:78:e2    UHLWIi          2        3 vboxnet   1192
192.168.11.255     ff:ff:ff:ff:ff:ff  UHLWbI          1        3 vboxnet
224.0.0/4          link#8             UmCS            3        0   vlan0
224.0.0.251        1:0:5e:0:0:fb      UHmLWI          1        0   vlan0
239.255.255.250    1:0:5e:7f:ff:fa    UHmLWI          1        3   vlan0
255.255.255.255/32 link#8             UCS             1        0   vlan0

Ahora intente nuevamente hacer ping a api.local.pcfdev.io/tcp.local.pcfdev.io/local.pcfdev.io.

Al realizar la prueba, tengo la impresión de que algunos ping IP arbitrarios ( ping 192.168.11.11 , ping 127.0.0.1 aceleraron la reconfiguración).

Si estás al alcance de un conmutador WLAN conocido, regresa a tu perfil Ubicación .

Esto se prueba (y funciona) en una VM VM de VMwareFusion Sierra y en la VM virtual de pcfdev-ubuntu anidada. En este entorno, realmente no puedo simular una conexión Wi-Fi faltante, porque no hay una interfaz Wi-Fi disponible. En cambio, desactivé todas las interfaces (2 x Ethernet) en Sierra VM.

    
respondido por el klanomath 19.10.2016 - 13:51

Lea otras preguntas en las etiquetas