Como encaminhar consultas DNS locais para uma VM quando o macOS estiver no modo offline?

0

Para um projeto, preciso interceptar / redirecionar consultas DNS para uma VM, que por sua vez executa dnsmasq . Essa VM é hospedada por xhyve e, quando conectada à rede, a configuração funciona bem; Eu tenho um arquivo em /etc/resolver.conf/test.io que tem:

nameserver 192.168.64.20
search_order 1

Fazer dig node.test.io @192.168.64.20 ou dig node.test.io fornece os resultados esperados.

Mas quando está offline, há um problema. Parece que quando o macOS não está conectado a uma rede, ele só permite que /etc/resolver.conf/* entradas funcionem quando usam 127.0.0.1 .

Eu tentei configurar um encaminhamento de porta, 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 -

e alterando /etc/resolver.conf/test.io para:

nameserver 127.0.0.1
search_order 1

No entanto, o domínio test.io não pode ser encontrado quando tento fazer um nslookup ou dig node.test.io @localhost . A VM ainda pode ser acessada, pois dig node.test.io @192.168.64.20 ainda é resolvido.

scutil --dns fornece o seguinte:

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 parece não tratar bem o resolvedor, então eu também tentei usar o curl / wget e o navegador para ver se as consultas foram resolvidas corretamente. Além disso, nenhuma diferença com dns-sd . Tudo falhou ...

    
por gbraad 26.04.2018 / 10:16

1 resposta

0

No modo desconectado não existe nenhuma consulta DNS ... Resolvemos isso adicionando um dispositivo TUN / TAP ao nó macOS e 'fingimos' com isso que ele está conectado.

    
por 12.06.2018 / 07:38