Per un progetto devo intercettare / reindirizzare le query DNS su una VM, che a sua volta esegue dnsmasq
. Questa VM è ospitata da xhyve e quando è connessa alla rete, l'installazione funziona bene; Ho un file in /etc/resolver.conf/test.io
che ha:
nameserver 192.168.64.20 search_order 1
Il fare dig node.test.io @192.168.64.20
o dig node.test.io
fornisce i risultati attesi.
Ma quando si va offline, c'è un problema. Sembra che quando macOS non è connesso a una rete, consente solo alle voci /etc/resolver.conf/*
di funzionare quando usano 127.0.0.1
.
Ho provato a configurare un port forwarding, come:
$ 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 modifica /etc/resolver.conf/test.io
in:
nameserver 127.0.0.1 search_order 1
Tuttavia, il dominio test.io
non può essere trovato quando provo a fare un nslookup
o dig node.test.io @localhost
. La VM è ancora raggiungibile poiché dig node.test.io @192.168.64.20
viene ancora risolto.
scutil --dns
fornisce quanto segue:
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
non sembra gestire bene il resolver, 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
. Tutti falliti ...