Rete che utilizza un solo DNS quando connesso a VPN


9

La mia azienda ha una VPN a cui devo collegarmi. In OSX, lo faccio usando openvpncon 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-openvpne aggiunto una nuova connessione VPN (il tentativo di importare il file di configurazione ha causato un arresto anomalo) con le stesse opzioni di configurazione impostate: Schermate delle mie impostazioni

Una volta connesso alla VPN, non riesco a risolvere alcun dominio.

Se modifico /etc/NetworkManager/NetworkManager.conf, commento la riga dns=dnsmasqe riavvio network-manager, posso risolvere i domini interni dalla mia azienda, ma altri domini come google.com non lo risolveranno affatto. Mi sono assicurato di impostare il mio "Metodo" solo su "Indirizzi automatici (VPN)" nelle schede IPv4 e IPv6 del gestore della rete per la mia connessione VPN, ma non sembra fare alcuna differenza.

Ho anche provato a riattivare dnsmasqe modificare /etc/resolvconf/resolv.conf.d/base per contenere nameserver 127.0.1.1, quindi in esecuzione sudo resolveconf -u, ma quindi nessun dominio si risolverà di nuovo.

Quello che vorrei è essere in grado di connettermi alla mia VPN in modo che i domini inviati dal server DNS della mia azienda vengano risolti in questo modo e tutti gli altri domini vengano risolti normalmente.

EDIT: Si scopre che dnsmasq non è stato effettivamente installato, cosa che pensavo fosse di default. Tuttavia, se lo installo, lo riattivo /etc/NetworkManager/NetworkManager.conf, aggiungo l'indirizzo del nameserver locale /etc/resolvconf/resolv.conf.d/base, riavvio tutti i servizi e mi connetto alla VPN, posso risolvere i domini dal DNS dell'azienda, ma non posso risolvere altri domini. Quindi sostanzialmente la stessa situazione di quando ho disabilitato del tutto dnsmasq.

EDIT: contenuto di /etc/dnsmasq.conf: http://paste.ubuntu.com/7297231/


Puoi mostrarci le tue impostazioni di dnsmasq? Dnsmasq di solito ottiene i suoi server DNS upstream da /etc/resolv.conf, quindi se non hai cambiato probabilmente stai solo tirando DNS su VPN.
jkt123,

Sicuro. Ho aggiunto un link al mio/etc/dnsmasq.conf
Tommy Brunn,

Risposte:


4

Dalla tua configurazione, l'installazione di dnsmasq sta ottenendo l'elenco dei server DNS da utilizzare /etc/resolv.conf. Per impostazione predefinita, dnsmasq tenta di favorire l'utilizzo di server DNS che sono attivi, ma invierà solo una determinata richiesta a un singolo server DNS. Ciò può causare problemi se si dispone di più server DNS che possono / serviranno solo determinate 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) /etc/resolv.conf, così come il server DNS sulla rete aziendale che desideri utilizzare tramite VPN.

Quindi, sarà necessario modificare /etc/default/dnsmasqe aggiungere o modificare la DNSMASQ_OPTS=riga da includere --all-servers.

Se non si riesce ancora ad ottenere query DNS con questa configurazione, copiare il file resolv.conf creata durante la procedura precedente in un'altra posizione, come ~/resolv.conf, insieme /etc/resolv.confcon nameserver 127.0.0.1e impostare la seguente opzione in /etc/dnsmasq.conf:

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

Ciò dovrebbe configurare il sistema in modo che richieda l'installazione di dnsmasq per DNS e, a sua volta, utilizzerà sia il server DNS locale sia il server DNS VPN per ogni query.

Modifica : è possibile trovare i server DNS attualmente in uso per una determinata connessione utilizzando lo nmclistrumento. Per trovare i server DNS utilizzati dalla mia connessione wireless, ho usato la sintassi seguente:

nmcli dev list iface wlan0 | grep IP4.DNS

Se si esegue questo comando mentre non si è connessi alla propria VPN, quindi di nuovo quando si è connessi e si è in grado di risolvere i propri indirizzi aziendali, è necessario ottenere l'elenco dei server DNS fuori e sulla VPN. Spero che questo possa essere d'aiuto.

Modifica 2 : guardando le tabelle di routing, sembra che l'amministratore VPN ti abbia impostato per instradare 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 provando a fare normali ricerche DNS attraverso la 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 consentirà di accedere a Internet attraverso la rete aziendale, ma non eseguirà query DNS ai server su Internet, aggiungi i percorsi ai tuoi server DNS in questo modo: sudo route add -host 83.255.245.11 gw 192.168.0.1e sudo route add -host 193.150.193.150 gw 192.168.0.1dopo esserti connesso alla VPN.

  • Se la VPN non ti consentirà di accedere a Internet attraverso la rete aziendale, dovrai modificare le impostazioni del gateway predefinito sul tuo computer in modo che puntino a 192.168.0.1 dopo la connessione alla VPN. In questo caso, dovrai configurare il tuo normale gateway predefinito e quindi aggiungere percorsi di rete per accedere alle apparecchiature solo VPN.

Potrebbe essere necessario ridimensionare la tabella di routing nel caso connesso alla VPN mostrato nella seconda incolla su quanto segue:

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, aggiungere i percorsi necessari per accedere alle apparecchiature aziendali. Nella tabella di routing mostrata sopra ho assunto una rete / 24 sulla VPN, che potrebbe non essere corretta. Dovrai impostare la maschera in modo appropriato.


Come farei per scoprire gli indirizzi sul mio server DNS locale e quello sulla rete aziendale?
Tommy Brunn,

Ho modificato la mia risposta per fornire queste informazioni.
jkt123,

Secondo nmcli, ottengo gli stessi server DNS esatti quando sono connesso alla VPN di quando non lo sono, anche se chiaramente non dovrei esserlo, poiché posso risolvere un dominio interno sulla rete aziendale quando m connesso.
Tommy Brunn,

Quando hai eseguito nmclisenza una connessione VPN, sei riuscito a risolvere correttamente il DNS? In caso contrario, è necessario disconnettersi dalla VPN, assicurarsi che il DNS funzioni correttamente, quindi eseguire nmcli.
jkt123,

Sì, sono stato in grado di risolvere il DNS normalmente quando disconnesso dalla VPN. Esempio di output: paste.ubuntu.com/7345250
Tommy Brunn,

0

Ci sono alcune lacune che non posso riempire per te relative a come far sì che NetworkManager coordini le cose per te. Proverò comunque a chiarire come devono funzionare le cose coordinate. Non è una risposta perfetta, ma speriamo utile. In realtà, dato che questa è una vecchia domanda, questo è davvero per i posteri.

Probabilmente non vuoi usare la VPN aziendale, ad eccezione delle connessioni alla rete aziendale. Stando così le cose, sarebbe meglio se la tua configurazione VPN instrada solo gli intervalli di rete appropriati alla VPN e mantiene il percorso predefinito che punta al router locale, come prima. Sarebbe bello se le aziende configurassero le loro VPN per instradare solo il traffico o le loro reti, ma sfortunatamente questo sembra essere raro. Fortunatamente puoi configurare i percorsi nella tua configurazione locale.

Questo ti lascia ancora con un potenziale problema DNS. I commenti di jtk123 su cosa fa dnsmasq con DNS non sono specifici di dnsmasq - è così che funziona DNS. Se un client DNS o un risolutore intermedio riceve una risposta che non esiste una voce DNS, non è normale ricorrere alla richiesta di un altro server DNS. Ciò significa che hai bisogno di un resolver DNS che risponderà come desideri se la richiesta si riferisce alla rete aziendale o meno.

Forse la tua rete aziendale risponde alle domande DNS relative a Internet più ampia, nel qual caso la usi semplicemente e probabilmente va bene. Altrimenti, è necessario un server DNS locale che inoltri le richieste di domini associati all'azienda al proprio server DNS e inoltri altre richieste altrove, a seconda dei casi.

A dnsmasq può essere richiesto di inoltrare richieste per domini specifici a specifici server DNS upstream. ad es. vedere l'opzione --server come indicato nella pagina man dnsmasq.conf. Non sono chiaro però come fare in modo che Networkmanager funzioni bene (che è quello che sto cercando di scoprire).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.