Netzwerk verwendet nur ein DNS, wenn es mit VPN verbunden ist

9

Meine Firma hat ein VPN, zu dem ich eine Verbindung herstellen muss. In OSX verwende ich openvpn mit der folgenden Konfiguration:

client
dev tun
proto udp
remote <GATEWAY_ADDRESS> <PORT>
resolv-retry infinite
nobind
user nobody
group nobody
persist-key
persist-tun
ca /Users/Tommy/.openvpn/dev/ca-dev.crt
cert /Users/Tommy/.openvpn/dev/tommy.brunn-20131122-dev.crt
key /Users/Tommy/.openvpn/dev/tommy.brunn-20131122-dev.key
ns-cert-type server
tls-auth /Users/Tommy/.openvpn/dev/ta-dev.key 1
cipher BF-CBC
comp-lzo
verb 3
auth-nocache
;daemon
;writepid openvpn.pid

In Ubuntu habe ich network-manager-openvpn installiert und eine neue VPN-Verbindung (mit dem Versuch, die Konfigurationsdatei zu importieren, die einen Absturz verursacht hat) mit denselben Konfigurationsoptionen hinzugefügt: Screenshots meiner Einstellungen

Sobald ich eine Verbindung zum VPN hergestellt habe, kann ich keine Domains auflösen.

Wenn ich /etc/NetworkManager/NetworkManager.conf bearbeite, die Zeile dns=dnsmasq auskommentiere und network-manager neu starte, kann ich interne Domains von meinem Unternehmen auflösen, aber andere Domains wie google.com werden überhaupt nicht aufgelöst. Ich habe meine "Methode" auf den IPv4- und IPv6-Tabs des Netzwerkmanagers für meine VPN-Verbindung auf "Nur automatische (VPN-) Adressen eingestellt", aber das scheint keinen Unterschied zu machen.

Ich habe auch versucht, dnsmasq wieder zu aktivieren und /etc/resolvconf/resolv.conf.d/base zu ändern um nameserver 127.0.1.1 zu enthalten, dann wird sudo resolveconf -u ausgeführt, aber dann werden keine Domänen mehr aufgelöst.

Was ich möchte, ist eine Verbindung zu meinem VPN herzustellen, so dass Domains, die vom DNS-Server meines Unternehmens gepusht werden, auf diese Weise aufgelöst werden und alle anderen Domains normal aufgelöst werden.

BEARBEITEN: Stellt sich heraus, dnsmasq wurde nicht installiert, was ich standardmäßig dachte. Trotzdem, wenn ich es installiere, reaktiviere es in /etc/NetworkManager/NetworkManager.conf , füge die lokale Nameserver-Adresse in /etc/resolvconf/resolv.conf.d/base hinzu, starte alle Dienste neu und verbinde dich mit dem VPN, ich kann Domänen vom DNS des Unternehmens auflösen, aber ich kann nicht Lösen Sie alle anderen Domains auf. Also im Grunde die gleiche Situation wie wenn ich dnsmasq vollständig deaktiviert habe.

BEARBEITEN: Inhalt von /etc/dnsmasq.conf : Link

    
Tommy Brunn 18.04.2014, 13:37

2 Antworten

3

Von Ihrer Konfiguration erhält Ihre dnsmasq-Installation die Liste der zu verwendenden DNS-Server von /etc/resolv.conf . Standardmäßig versucht dnsmasq, die Verwendung von DNS-Servern zu bevorzugen, die aktiv sind, sendet jedoch nur eine bestimmte Anforderung an einen einzelnen DNS-Server. Dies kann zu Problemen führen, wenn Sie mehrere DNS-Server haben, die nur bestimmte Abfragen bedienen können / sollen.

Ich glaube, Sie können dieses Problem lösen, indem Sie sicherstellen, dass Sie einen DNS-Server in Ihrem LAN haben (den, den Sie verwenden, wenn Sie nicht mit dem VPN verbunden sind), der in /etc/resolv.conf eingerichtet ist, sowie den DNS-Server das Unternehmensnetzwerk, das Sie über das VPN verwenden möchten.

Dann müssen Sie /etc/default/dnsmasq bearbeiten und die Zeile DNSMASQ_OPTS= hinzufügen oder bearbeiten, um --all-servers einzufügen.

Wenn Sie mit diesem Setup immer noch keine DNS-Abfragen erhalten, kopieren Sie die in den obigen Schritten erstellte Datei resolv.conf an einen anderen Speicherort, z. B. ~/resolv.conf , setzen Sie /etc/resolv.conf up mit nameserver 127.0.0.1 und legen Sie Folgendes fest Option in /etc/dnsmasq.conf :

resolv-file=/home/your_username/resolv.conf

Das sollte Ihr System so konfigurieren, dass es Ihre dnsmasq-Installation nach DNS abfragt, und es wird wiederum sowohl Ihren lokalen DNS-Server als auch den VPN-DNS-Server für jede Abfrage verwenden.

Bearbeiten : Sie können die DNS-Server, die Sie derzeit für eine bestimmte Verbindung verwenden, mit dem Tool nmcli finden. Um die von meiner drahtlosen Verbindung verwendeten DNS-Server zu finden, verwendete ich die folgende Syntax:

nmcli dev list iface wlan0 | grep IP4.DNS

Wenn Sie diesen Befehl ausführen, während Sie nicht mit Ihrem VPN verbunden sind, und wenn Sie wieder verbunden sind und Ihre Unternehmensadressen auflösen können, sollten Sie Ihre Liste der DNS-Server aus und auf dem VPN abrufen. Ich hoffe, das hilft.

Bearbeiten 2 : Wenn Sie sich Ihre Routingtabellen ansehen, scheint Ihr VPN-Administrator Sie so eingerichtet zu haben, dass er Ihren gesamten Datenverkehr durch das VPN leitet, während Sie verbunden sind (Ihr Standardgateway ändert sich in eine VPN-Adresse) ). Da beide DNS-Server öffentliche Adressen sind und keine bestimmte Route eingerichtet wurde, während Sie sich im VPN befinden, versuchen Sie, normale DNS-Lookups über das VPN durchzuführen, und dies ist ein Fehler.

Je nach VPN-Konfiguration gibt es mehrere Möglichkeiten, dies zu erreichen:

  • Wenn Sie mit dem VPN über das Unternehmensnetzwerk auf das Internet zugreifen können, aber keine DNS-Abfragen an Server im Internet durchführen, fügen Sie Routen zu Ihren DNS-Servern hinzu: sudo route add -host 83.255.245.11 gw 192.168.0.1 und sudo route add -host 193.150.193.150 gw 192.168.0.1 nach Verbindung mit dem VPN.

  • Wenn Sie mit dem VPN nicht über das Unternehmensnetzwerk auf das Internet zugreifen können, müssen Sie nach dem Herstellen der Verbindung mit dem VPN die Standardgatewayeinstellungen auf Ihrem Computer so ändern, dass sie auf 192.168.0.1 zeigen. In diesem Fall sollten Sie Ihr übliches Standard-Gateway einrichten und dann Netzwerkrouten hinzufügen, um auf VPN-Geräte zuzugreifen.

Sie müssen Ihre Routingtabelle im Fall "Verbunden mit dem VPN" in Ihrem zweiten Pastebin möglicherweise folgendermaßen verkleinern:

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.0.1     0.0.0.0         UG    0      0        0 eth0
192.168.0.0     0.0.0.0         255.255.255.0   U     1      0        0 eth0
10.100.0.0      10.100.0.105    255.255.255.0   UGH   0      0        0 tun0
10.100.0.105    0.0.0.0         255.255.255.255 UH    0      0        0 tun0

Fügen Sie dann Routen hinzu, die Sie benötigen, um auf die Unternehmensausrüstung zuzugreifen. In der oben gezeigten Routing-Tabelle habe ich ein / 24-Netzwerk auf dem VPN angenommen, das möglicherweise falsch ist. Sie müssen die Maske entsprechend einstellen.

    
jkt123 22.04.2014 06:10
0

Es gibt einige Lücken, die ich nicht für Sie eingeben kann, um herauszufinden, wie NetworkManager die Dinge für Sie koordiniert. Ich werde jedoch versuchen zu klären, wie die Dinge, die es koordiniert, funktionieren müssen. Keine perfekte Antwort, aber hoffentlich nützlich. In Anbetracht der Tatsache, dass dies eine alte Frage ist, ist dies wirklich für die Nachwelt.

Sie möchten das Unternehmens-VPN wahrscheinlich nicht verwenden, mit Ausnahme von Verbindungen mit dem Unternehmensnetzwerk. In diesem Fall ist es besser, wenn Ihre VPN-Konfiguration nur die entsprechenden Netzwerkbereiche an das VPN weiterleitet und die Standardroute wie bisher auf Ihren lokalen Router verweist. Es wäre schön, wenn Unternehmen ihre VPNs einrichten würden, um nur den Verkehr oder ihre Netzwerke zu routen, aber das scheint leider selten zu sein. Glücklicherweise können Sie die Routen in Ihrem lokalen Setup konfigurieren.

Das hinterlässt immer noch ein potenzielles DNS-Problem. Die Kommentare von jtk123 darüber, was dnsmasq mit DNS macht, sind nicht spezifisch für dnsmasq - so funktioniert DNS. Wenn ein DNS-Client oder ein intermediärer Resolver eine Antwort erhält, dass kein DNS-Eintrag existiert, ist es nicht normal, auf einen anderen DNS-Server zurückzugreifen. Das bedeutet, dass Sie einen DNS-Resolver benötigen, der so antwortet, wie Sie wollen, ob die Anfrage sich auf das Firmennetzwerk bezieht oder nicht.

Vielleicht beantwortet Ihr Unternehmensnetzwerk DNS-Anfragen, die sich auf das weitere Internet beziehen, in diesem Fall verwenden Sie es einfach, und das ist wahrscheinlich in Ordnung. Andernfalls benötigen Sie einen lokalen DNS-Server, der Anforderungen für mit dem Unternehmen verknüpfte Domänen an seinen DNS-Server weiterleitet und andere Anforderungen woanders weiterleitet.

dnsmasq kann angewiesen werden, Anforderungen für bestimmte Domänen an bestimmte Upstream-DNS-Server weiterzuleiten. z.B. Sehen Sie sich die Option --server an, wie in der Manpage dnsmasq.conf beschrieben. Mir ist jedoch nicht klar, wie man den Networkmanager dazu bringt, gut damit zu spielen (was ich gerade herausfinden will).

    
mc0e 13.01.2015 19:08