Come inoltrare le query DNS locali a una VM quando macOS è in modalità offline?


1

Per un progetto ho bisogno di intercettare / reindirizzare le query DNS su una macchina virtuale, che a sua volta viene eseguita dnsmasq. Questa VM è ospitata da xhyve e quando è connessa alla rete, l'installazione funziona bene; Ho un file in /etc/resolver.conf/test.iocui è presente:

nameserver 192.168.64.20
search_order 1

Fare dig node.test.io @192.168.64.20o dig node.test.iodare i risultati previsti.

Ma quando si è offline, c'è un problema. Sembra che quando macOS non è connesso a una rete, consente /etc/resolver.conf/*alle voci di funzionare solo quando vengono utilizzate 127.0.0.1.

Ho provato a impostare un port forwarding, come:

$ echo "                           
rdr passa inet proto udp da qualsiasi porta 127.0.0.1 53 -> 192.168.64.20 porta 53
"| sudo pfctl -ef -

e cambiando /etc/resolver.conf/test.ioin:

nameserver 127.0.0.1
search_order 1

Tuttavia, il dominio test.ionon può essere trovato quando provo a fare un nslookupo dig node.test.io @localhost. La VM è ancora raggiungibile poiché dig node.test.io @192.168.64.20viene ancora risolta.

scutil --dns dà quanto segue:

resolver n. 9
  dominio: test.io
  nameserver [0]: 127.0.0.1
  flags: Richiedi record A, Richiedi record AAAA
  portata: 0x00030002 (raggiungibile, indirizzo locale, indirizzo raggiungibile direttamente)
  ordine: 1

Nota: nslookupnon sembra gestire bene il risolutore, quindi ho anche provato a usare curl / wget e il browser per vedere se le query sono state risolte correttamente. Inoltre, nessuna differenza con dns-sd. Tutto fallito ...

Risposte:


1

In modalità disconnessa non c'è alcuna query DNS in corso ... Abbiamo risolto questo aggiungendo un dispositivo TUN / TAP al nodo macOS e 'fingendo' con ciò che è connesso.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.