La rete utilizza solo un DNS quando è connesso a VPN

9

La mia azienda ha una VPN a cui devo connettermi. In OSX, lo faccio utilizzando openvpn con la seguente configurazione:

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, ho installato network-manager-openvpn e aggiunto una nuova connessione VPN (cercando di importare il file di configurazione causato un arresto anomalo) con le stesse opzioni di configurazione impostate: Schermate delle mie impostazioni

Dopo essermi connesso alla VPN, non posso risolvere alcun dominio.

Se modifico /etc/NetworkManager/NetworkManager.conf , commenta la riga dns=dnsmasq e riavvia network-manager , posso risolvere domini interni dalla mia azienda, ma altri domini come google.com non si risolvono affatto. Mi sono assicurato di impostare il mio "Metodo" su "Solo indirizzi automatici (VPN)" nelle schede IPv4 e IPv6 del gestore di rete per la mia connessione VPN, ma non sembra fare alcuna differenza.

Ho anche provato a riattivare dnsmasq e a modificare /etc/resolvconf/resolv.conf.d/base per contenere nameserver 127.0.1.1 , quindi eseguire sudo resolveconf -u , ma in questo caso nessun dominio verrà risolto di nuovo.

Quello che vorrei è poter connettersi alla mia VPN in modo che i domini spinti dal server DNS della mia azienda vengano risolti in questo modo e tutti gli altri domini vengano risolti normalmente.

EDIT: Risulta che dnsmasq non è stato effettivamente installato, e pensavo che fosse di default. Tuttavia, se lo installo, riattivalo in /etc/NetworkManager/NetworkManager.conf , aggiungi l'indirizzo server dei nomi locale in /etc/resolvconf/resolv.conf.d/base , riavvia tutti i servizi e connettiti alla VPN, posso risolvere domini dal DNS aziendale, ma non posso risolvere qualsiasi altro dominio. Quindi fondamentalmente la stessa situazione di quando ho disabilitato completamente dnsmasq.

MODIFICA: Contenuto di /etc/dnsmasq.conf : link

    
posta Tommy Brunn 18.04.2014 - 13:37

2 risposte

3

Dalla tua configurazione, l'installazione di dnsmasq sta recuperando l'elenco dei server DNS da /etc/resolv.conf . Per impostazione predefinita, dnsmasq tenta di utilizzare i server DNS che sono attivi, ma invierà solo una determinata richiesta a un singolo server DNS. Questo può causare problemi se hai più server DNS che possono / servono solo alcune query.

Credo che tu possa risolvere questo problema assicurandoti di avere un server DNS sulla tua LAN (quello che usi quando non sei connesso alla VPN) impostato in /etc/resolv.conf , così come il server DNS su la rete aziendale che desideri utilizzare tramite VPN.

Quindi, dovrai modificare /etc/default/dnsmasq e aggiungere o modificare la riga DNSMASQ_OPTS= per includere --all-servers .

Se non riesci ancora a ottenere query DNS con questa configurazione, copia il file resolv.conf creato durante i passaggi precedenti in un'altra posizione, ad esempio ~/resolv.conf , imposta /etc/resolv.conf su con nameserver 127.0.0.1 e imposta le seguenti opzione in /etc/dnsmasq.conf :

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

Questo dovrebbe configurare il tuo sistema per interrogare l'installazione di dnsmasq per DNS, e a sua volta utilizzerà sia il tuo server DNS locale che il server DNS VPN per ogni query.

Modifica : puoi trovare i server DNS che stai utilizzando per una connessione particolare utilizzando lo strumento nmcli . Per trovare i server DNS utilizzati dalla mia connessione wireless, ho usato la seguente sintassi:

nmcli dev list iface wlan0 | grep IP4.DNS

Se esegui questo comando mentre non sei connesso alla tua VPN, e poi di nuovo quando sei connesso e sei in grado di risolvere i tuoi indirizzi aziendali, dovresti avere il tuo elenco di server DNS spento e su VPN. Spero che questo aiuti.

Modifica 2 : osservando le tue tabelle di routing, sembra che il tuo amministratore VPN ti abbia impostato per indirizzare tutto il tuo traffico attraverso la VPN mentre sei connesso (il tuo gateway predefinito cambia in un indirizzo VPN ). Poiché entrambi i tuoi server DNS sono indirizzi pubblici e nessuno dei due ha un percorso specifico impostato mentre sei sulla VPN, stai cercando di eseguire normali ricerche DNS tramite VPN e questo è ciò che non funziona.

Potresti avere un paio di modi per farlo funzionare, a seconda della tua configurazione VPN:

  • Se la VPN ti consente di accedere a Internet tramite la rete aziendale, ma non eseguire query DNS sui server su Internet, aggiungi percorsi ai tuoi server DNS in questo modo: sudo route add -host 83.255.245.11 gw 192.168.0.1 e sudo route add -host 193.150.193.150 gw 192.168.0.1 dopo connessione al VPN.

  • Se la VPN non ti consente di accedere a Internet attraverso la rete aziendale, dovrai modificare le impostazioni del gateway predefinito sul tuo computer per puntare su 192.168.0.1 dopo esserti connesso alla VPN. In questo caso, vorrai configurare il tuo solito gateway predefinito e quindi aggiungere percorsi di rete per accedere all'apparecchiatura solo VPN.

Potrebbe essere necessario ridurre la tabella di routing nel caso connesso al VPN mostrato nel secondo pastebin al seguente:

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

Quindi, aggiungi le rotte necessarie per accedere all'equipaggiamento aziendale. Nella tabella di routing mostrata sopra ho ipotizzato una rete / 24 sulla VPN, che potrebbe essere errata. Dovrai impostare la maschera in modo appropriato.

    
risposta data jkt123 22.04.2014 - 06:10
0

Ci sono alcune lacune che non riesco a completare per te relative a come fare in modo che NetworkManager coordini le cose per te. Proverò comunque a chiarire come devono funzionare le cose che coordina. Non è una risposta perfetta, ma si spera utile. In realtà, dato che questa è una vecchia domanda, questa è davvero per i posteri.

Probabilmente non si desidera utilizzare la VPN aziendale, ad eccezione delle connessioni alla rete aziendale. Stando così le cose, sarebbe meglio se la tua configurazione VPN indirizza solo gli intervalli di rete appropriati alla VPN e mantiene la rotta predefinita che punta al tuo router locale, come prima. Sarebbe bello se le aziende impostassero le loro VPN solo per instradare il traffico o le loro reti, ma sfortunatamente ciò sembra essere raro. Fortunatamente puoi configurare i percorsi nella tua configurazione locale.

Questo ti lascia ancora un potenziale problema DNS. I commenti di jtk123 su ciò che dnsmasq fa con DNS non sono specifici di dnsmasq - questo è il modo in cui funziona il DNS. Se un client DNS o un risolutore intermedio riceve una risposta che non esiste una voce DNS, non è normale che il comportamento torni a chiedere a un altro server DNS. Ciò significa che hai bisogno di un risolutore DNS che risponda come vuoi se la richiesta si riferisce alla rete aziendale o meno.

Forse la rete della tua azienda risponde alle richieste DNS relative alla più ampia internet, nel qual caso la usi e basta, e probabilmente è OK. In caso contrario, è necessario un server DNS locale che inoltra richieste di domini associati alla società al proprio server DNS e inoltra altre richieste in qualsiasi altro modo appropriato.

Si può dire a dnsmasq di inoltrare richieste di domini specifici a specifici server DNS upstream. per esempio. vedere l'opzione --server come descritto nella pagina man dnsmasq.conf. Non sono chiaro però come far sì che networkmanager funzioni correttamente (che è quello che sto cercando di scoprire).

    
risposta data mc0e 13.01.2015 - 19:08

Leggi altre domande sui tag