
Ich habe meinen eigenen Zerotier Controller eingerichtet mitAbonnierenund es funktioniert großartig, aber es gibt einen Teil meines Setups, den ich scheinbar nicht zum Laufen bekomme, nämlich, dass Clients den DNS verwenden, den ich für das ZeroTier-Netzwerk konfiguriere. Der DNS ist wie folgt konfiguriert:
{
"domain": "",
"servers": [
"10.10.14.26"
]
}
Wo 10.10.14.26
ist die ZeroTier-IP-Adresse des DNS-Servers (genau wie der Linux-Server, auf dem dnsmasq ausgeführt wird und der an den lokalen Router weiterleitet). Wenn ich die Antworten des DNS-Servers direkt auf einem ZeroTier-Client teste, erhalte ich die richtigen Ergebnisse (z. B. wenn ich meinen DNS so konfiguriere, dass er direkt verwendet wird, oder wenn ich den DNS-Server bei Verwendung angebe dig
). Wenn ich jedoch „DNS-Konfiguration zulassen“ auf den Clients auswähle, weigern sie sich immer noch, Hostnamen aufzulösen, die bei einer direkten Abfrage beim DNS-Server aufgelöst werden.
Ich habe auch versucht, die lokale IP-Adresse des DNS-Servers anstelle der ZeroTier-IP zu verwenden, mit demselben Ergebnis (die IP-Weiterleitung ist auf demselben Linux-Server eingerichtet, sodass Clients auch auf die lokalen IPs zugreifen können).
Was muss ich tun, um sicherzustellen, dass meine ZeroTier-Clients den von mir konfigurierten DNS-Server verwenden?
Mein Backup-Plan besteht darin, einfach verschiedene Skripte für die verschiedenen Plattformen zu schreiben, die ich unterstützen muss, und sie den globalen DNS beim Verbinden bzw. Trennen mit meinem ZeroTier-Netzwerk überschreiben bzw. wiederherstellen zu lassen, aber was nützt dann die Option „DNS-Konfiguration zulassen“?
Ich weiß, dass die DNS-Funktion für Linux-Clients nicht funktioniert, aber ich bin der einzige Linux-Client, daher ist das für mich kein großes Problem. Die übrigen Clients verwenden entweder Windows oder MacOS, für die diese Funktionzur Arbeit gemeldet:
ZeroTier Managed DNS wird derzeit nur unter Windows, MacOS, Android und iOS unterstützt. Linux-Unterstützung ist in Vorbereitung, kann aber auf gängige Linux-DNS-Resolver-Konfigurationen wie die in Debian und CentOS/RHEL beschränkt sein.
Antwort1
Obwohl dies keine richtige Antwort auf meine eigene Frage ist, hat es meine Bedürfnisse gelöst. Wie indieser BeitragAm Ende habe ich den VPN-Server durch zusätzliche iptables
Befehle gezwungen:
iptables -t nat -A PREROUTING -s vpn_network -p udp --dport 53 -j DNAT \
--to-destination your_DNS_server
iptables -t nat -A PREROUTING -s vpn_network -p tcp --dport 53 -j DNAT \
--to-destination your_DNS_server
Hinweis: Der Windows 10-Rechner, auf dem ich dies getestet habe, zeigte nicht sofort die richtigen Ergebnisse, aber nachdem ich die meisten meiner experimentellen Änderungen zurückgesetzt hatte, funktionierte es weiterhin einwandfrei. Als ich es dann auf einem sauberen Rechner testete, funktionierte es sofort.