Während ich an Site1 bin, muss ich mich über OpenVPN mit Site2 verbinden. Sobald die Verbindung hergestellt ist, überträgt die OpenVPN-Site2 einen DNS-Nameserver und Domänensuchoptionen. Dies führt dazu, dass alle Namensauflösungen für site1 fehlschlagen.
Beispiel:
DHCP ist an Standort1 physisch verbunden und pusht DNS-Optionen und resolvconf verwaltet sie.
/etc/resolv.conf# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8) # DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN nameserver 172.16.1.101 nameserver 172.16.1.102 search site1.internal.domain
OpenVPN-Tunnel zu Site2 öffnen, OpenVPN pusht die DHCP-Option DNS und DOMAIN für Site2 und pusht
/etc/openvpn/update-resolv-conf
sie zu Resolvconf.
/etc/resolv.conf# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8) # DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN nameserver 192.168.1.5 nameserver 172.16.1.101 nameserver 172.16.1.102 search site2.internal.domain site1.internal.domain
Die DNS-Auflösung funktioniert für server.site2.internal.domain, schlägt jedoch für server.site1.internal.domain fehl
Gibt es eine Möglichkeit, dass eine fehlgeschlagene DNS-Anforderung an Site21 an die DNS-Server von Site1 weitergeleitet wird? Oder konfigurieren Sie resolvconf so, dass nur Abfragen für site2.internal.domain an den site2-Nameserver übergeben werden sollen?
Ich verwende einen Ubuntu 14.04-Computer an Standort1, und der OpenVPN-Server an Standort2 ist eine pfSense 2.2-Box. Ich verwalte beide Websites, sodass Änderungen an beiden Seiten kein Problem darstellen. Beide Domains sind nicht öffentlich und nur für den internen Gebrauch bestimmt.
quelle
Antworten:
Sie können einen lokalen Caching-Server einrichten, der überwacht
/etc/resolv.conf
, wie er durchresolvconf
Skripte geändert wird , und versuchen, seine Antworten von allen dort aufgeführten Nameservern abzurufen.Auf vielen Systemen wird es genug sein , um die Installation dnsmasq Paket, zusätzlich zu resolvconf.
Die Standardwerte sollten „nur Arbeit“ vorausgesetzt , dass
no-resolv
undno-poll
Richtlinien fehlen aus/etc/dnsmasq.conf
undlo
Schnittstelle ist an der Spitze/etc/resolvconf/interface-order
. Wenn ein Upstream-Nameserver beliebige IP-Adressen für nichtstrict-order
auflösbare Adressen zurückgibt, kann dies in der Datei dnsmasq.conf hilfreich sein. Du/etc/resolv.conf
solltest nur zeigennameserver 127.0.0.1
.Wenn Sie ein festes Setup bevorzugen oder eine Verbindung zu mehreren nicht verwandten Netzwerken herstellen möchten und vermeiden möchten, dass Ihre privaten Netzwerknamen auch bei allen Nameservern verloren gehen, sollten Sie dnsmasq so konfigurieren, dass bestimmte Server basierend auf der Domäne abgefragt werden:
Weitere Informationen zu dnsmasq-Optionen finden Sie hier: http://oss.segetech.com/intra/srv/dnsmasq.conf
quelle
resolv.conf listet alle verfügbaren DNS-Server auf. Solange der erste in der Liste aktiv ist, werden alle Abfragen an ihn gesendet. Nichts für die anderen, es sei denn, der erste ist ausgefallen. Wenn also der erste DNS-Server in der Liste aktiv ist und die Antwort kennt, antwortet er "Ich weiß es!", Sonst sagt er "Ich fürchte, ich weiß nicht ...". Und das ist alles. Sie müssen 192.168.1.5 (den DNS-Server von Site2) auf alle Einträge von Site1 aufmerksam machen und natürlich umgekehrt. Schöne Grüße
quelle
Ich habe dies unter Ubuntu nicht versucht, aber ich konnte ein ähnliches Setup unter Arch Linux mit openresolv und dnsmasq zum Laufen bringen.
Alle Änderungen werden auf dem VPN-Client-Computer vorgenommen. Der VPN-Server sollte keine Änderungen benötigen, da er bereits die Suchoptionen für DNS-Nameserver und Domänen enthält.
resolvconf -l
, während Sie mit dem VPN verbunden sind, um alle resolv.conf-Dateien anzuzeigen. Ermitteln Sie den resolvconf-Namen Ihrer VPN-Schnittstelle (dh das X in "resolv.conf from X"). In meinem Fall war es dastun0
, was ich in der restlichen Konfiguration verwenden werde.Bearbeiten
/etc/resolvconf.conf
, um diese Optionen hinzuzufügen:Bearbeiten
/etc/dnsmasq.conf
, um diese Optionen hinzuzufügen:Führen Sie
resolvconf -u
diese Option aus, um die dnsmasq-Konfigurationsdateien zu generieren.Starten Sie den
dnsmasq
Dienst und konfigurieren Sie ihn so, dass er beim Booten gestartet wird. Auf Arch geschieht dies durch Ausführen von:Die
name_servers
Option weist resolvconf an, nur die Nameserver in aufzulisten/etc/resolv.conf
(dh sie zeigt auf Ihre lokale dnsmasq-Instanz). Diednsmasq_
Optionen weisen resolvconf an, die Nameserver zu schreiben, die/etc/resolv.conf
stattdessen in dnsmasq-Konfigurationsdateien gespeichert worden wären .Die
private_interface
Option teilt resolvconf mit, dass die von dieser Schnittstelle (Ihrem VPN) bereitgestellten Nameserver nur zum Auflösen von Hostnamen verwendet werden sollen, die sich in einer der in dersearch
Zeile angegebenen Domänen befinden . Es wird die entsprechende dnsmasq-Konfiguration generiert, um dies zu ermöglichen.Mit dieser Konfiguration sollten Anforderungen für Hosts unter site2.internal.domain an 192.168.1.5 und alle anderen Anforderungen an 172.16.1.101 oder 172.16.1.102 gesendet werden.
Wenn Ihr System IPv6 nicht verwendet, entfernen Sie :: 1 aus der
name_servers
Option.quelle