Mac OS X Mountain Lion: la risoluzione DNS utilizza un ordine errato su VPN tramite connessione remota


23

Sto usando un MacBook con Mac OS X 10.8.2 e mi collego alla rete della mia azienda tramite VPN. Tutto funziona benissimo quando si stabilisce la connessione VPN tramite LAN o WLAN. Tuttavia, quando utilizzo una connessione dial-up (Huawei HSDPA USB Stick) i nomi host non vengono risolti correttamente nelle applicazioni (ad es. Web-Browser). Strumenti della riga di comando come host namerisolveranno correttamente l'indirizzo IP, ping namenon si risolveranno.

Usando scutil --dnsho scaricato la configurazione DNS quando mi collegavo via WLAN vs. dial-up. C'è una notevole differenza nell'ordine di ricerca:

connecting using WLAN:

resolver #1
  nameserver[0] : 192.168.80.10
  nameserver[1] : 192.168.80.24
  if_index : 6 (ppp0)
  reach    : Reachable,Transient Connection
  order    : 100000

resolver #2
  nameserver[0] : 192.168.80.10
  nameserver[1] : 192.168.80.24
  if_index : 6 (ppp0)
  reach    : Reachable,Transient Connection
  order    : 200000

resolver #3
  domain   : local
  options  : mdns
  timeout  : 5
  order    : 300000

resolver #4
  domain   : 254.169.in-addr.arpa
  options  : mdns
  timeout  : 5
  order    : 300200

resolver #5
  domain   : 8.e.f.ip6.arpa
  options  : mdns
  timeout  : 5
  order    : 300400

resolver #6
  domain   : 9.e.f.ip6.arpa
  options  : mdns
  timeout  : 5
  order    : 300600

resolver #7
  domain   : a.e.f.ip6.arpa
  options  : mdns
  timeout  : 5
  order    : 300800

resolver #8
  domain   : b.e.f.ip6.arpa
  options  : mdns
  timeout  : 5
  order    : 301000

DNS configuration (for scoped queries)

resolver #1
  nameserver[0] : 192.168.1.1
  if_index : 4 (en0)
  flags    : Scoped
  reach    : Reachable,Directly Reachable Address

resolver #2
  nameserver[0] : 192.168.80.10
  nameserver[1] : 192.168.80.24
  if_index : 6 (ppp0)
  flags    : Scoped
  reach    : Reachable,Transient Connection

La connessione ppp0 è la connessione VPN. Come puoi vedere, due server sono collegati e rispondono correttamente sulla riga di comando e nelle applicazioni.

Connecting via UMTS:

resolver #1
  nameserver[0] : 139.7.30.126
  nameserver[1] : 139.7.30.125
  if_index : 6 (ppp0)
  reach    : Reachable,Transient Connection
  order    : 100000

resolver #2
  nameserver[0] : 192.168.80.10
  nameserver[1] : 192.168.80.24
  if_index : 7 (ppp1)
  reach    : Reachable,Transient Connection
  order    : 100000

resolver #3
  nameserver[0] : 192.168.80.10
  nameserver[1] : 192.168.80.24
  if_index : 7 (ppp1)
  reach    : Reachable,Transient Connection
  order    : 200000

resolver #4
  domain   : local
  options  : mdns
  timeout  : 5
  order    : 300000

resolver #5
  domain   : 254.169.in-addr.arpa
  options  : mdns
  timeout  : 5
  order    : 300200

resolver #6
  domain   : 8.e.f.ip6.arpa
  options  : mdns
  timeout  : 5
  order    : 300400

resolver #7
  domain   : 9.e.f.ip6.arpa
  options  : mdns
  timeout  : 5
  order    : 300600

resolver #8
  domain   : a.e.f.ip6.arpa
  options  : mdns
  timeout  : 5
  order    : 300800

resolver #9
  domain   : b.e.f.ip6.arpa
  options  : mdns
  timeout  : 5
  order    : 301000

DNS configuration (for scoped queries)

resolver #1
  nameserver[0] : 192.168.80.10
  nameserver[1] : 192.168.80.24
  if_index : 7 (ppp1)
  flags    : Scoped
  reach    : Reachable,Transient Connection

resolver #2
  nameserver[0] : 139.7.30.126
  nameserver[1] : 139.7.30.125
  if_index : 6 (ppp0)
  flags    : Scoped
  reach    : Reachable,Transient Connection

Questa volta, ppp1 è la connessione VPN e ppp0 è la connessione UMTS. Dai tempi di risposta dei comandi (utilizzando il nome host inesistente foo.bar.local) deduco che pingutilizza la prima catena di resolver, dove hostutilizza la configurazione della query con ambito. pingimpiega 5 secondi per restituire "Unkown host", hosttorna immediatamente. Presumo che il ping si verifichi nel timeout di 5 secondi del resolver mdns.

Per risolvere il mio problema con le ricerche DNS interrotte quando si effettua la connessione tramite VPN tramite modem, è necessario modificare l'ordine dei resolver. Finora non ho trovato il modo di farlo.

Qualche idea benvenuta.

Risposte:


7

Ho avuto lo stesso problema sul mio Mac e dopo averlo risolto ho capito che era stato causato da FortiClient (client VPN). Anche quando FortiClient è stato disconnesso, il DNS è ancora apparso nello scutil.

La soluzione per me era:

scutil
> list ".*DNS"

Questo ti mostrerà un elenco di tutte le configurazioni DNS, che sarà simile a:

subKey [0] = State:/Network/Global/DNS <br>
subKey [1] = State:/Network/MulticastDNS<br>
subKey [2] = State:/Network/OpenVPN/DNS<br>
subKey [3] = State:/Network/OpenVPN/OldDNS<br>
subKey [4] = State:/Network/PrivateDNS<br>
subKey [5] = State:/Network/Service/forticlientsslvpn/DNS <br>

Per verificare l'esecuzione di ciascuno di essi: (fino a quando non trovi quello problematico)

> get key_name
> d.show

... e per risolverlo eseguire:

> get key_name
> d.remove ServerAddresses
> set key_name

Ecco come appariva sulla mia macchina:

> get State:/Network/Service/forticlientsslvpn/DNS 
> d.show
<dictionary> {
  ServerAddresses : <array> {
    0 : 192.168.30.6
    1 : 192.168.30.15
  }
  SupplementalMatchDomains : <array> {
    0 :
  }
  SupplementalMatchOrders : <array> {
    0 : 100000
  }
}
> d.remove ServerAddresses
> d.show
<dictionary> {
  SupplementalMatchDomains : <array> {
    0 :
  }
  SupplementalMatchOrders : <array> {
    0 : 100000
  }
}
> set State:/Network/Service/forticlientsslvpn/DNS
> exit

3

Prova a cambiare l'ordine delle voci DNS nel riquadro delle preferenze di rete:

  1. Apri Preferenze di SistemaRete .

  2. Seleziona il tuo servizio di rete nell'elenco a sinistra.

  3. Sblocca il riquadro delle preferenze utilizzando il blocco nell'angolo in basso a sinistra.

  4. Fai clic su Avanzate ... e seleziona la scheda DNS .

  5. Cambia l'ordine dei server DNS trascinandoli su / giù.


2
Questo non fornisce una risposta alla domanda. Per criticare o richiedere chiarimenti a un autore, lascia un commento sotto il suo post: puoi sempre commentare i tuoi post e una volta che avrai una reputazione sufficiente sarai in grado di commentare qualsiasi post .
grg

Questo è un commento strano. Il poster non menzionava se avesse provato questo nella sua domanda e poteva essere pertinente e una soluzione semplice al suo problema. Difficile dirlo senza usare la stessa configurazione.
db,

2
Come è formulato, è scritto come una richiesta di chiarimento - le risposte devono essere scritte come risposte; i commenti sono il luogo più appropriato per richiedere chiarimenti. Questa risposta si trovava nella coda di recensioni di Low Quality Post e, a mio avviso, il commento di borsa sembrava il più appropriato. In effetti, riformulare questo come una risposta (e aggiungere dettagli come schermate e un elenco di istruzioni adeguatamente formattato) renderebbe questa una risposta completa e legittima.
grg

Questo è ridicolo. Sei Rainman o cosa? Era una risposta espressa in modo passivo e umile (poiché è così ovvio che la persona che poneva la domanda - che sembrava abbastanza abile - probabilmente l'aveva provata ma si era semplicemente dimenticata di menzionarla nella domanda). E se tu avessi provato tu stesso i miei suggerimenti, noteresti che molto probabilmente non erano necessari altri passaggi oltre a quelli inclusi (Preferenze di Sistema -> Rete) per qualcuno competente come il PO.
db

Come ho già detto, questa è semplicemente la mia opinione. A proposito, non sono stato io a declassarti. Ho modificato la tua risposta per includere ulteriori dettagli sui passaggi. Sentiti libero di ripristinare la modifica se ritieni che sia inappropriata.
grg

2

Ho trovato una soluzione alternativa: il tuo DNS VPN verrà comunque ignorato e verrà utilizzato solo il DNS dongle 3G, ma solo l'aggiunta del DNS VPN all'elenco nell'interfaccia 3G fa il trucco ... Il problema principale è che il gestore connettività 3G sovrascrive ogni volta la configurazione fai clic su Connetti e hai bisogno di Gestione connettività per abilitare Radio sul dongle 3G ... quindi ho mescolato entrambe le soluzioni in una:

  1. Collegati alla tua VPN e annota il tuo DNS (ne ho 2 nell'elenco). Puoi controllarlo in Preferenze di rete → Avanzate → scheda DNS. Disconnetti VPN. Devi connetterti alla VPN perché il DNS è assegnato dinamicamente al momento della connessione ...

  2. Collegati al tuo 3G e fai lo stesso: scrivi il DNS su carta. Quindi disconnetti 3G.

  3. Vai su Preferenze di rete → fai clic su Interfaccia 3G → Avanzate → Scheda DNS, e sotto la tabella DNS (che in genere sarà vuota poiché non sei connesso) fai clic su '+'. Aggiungi tutti i server DNS (prima quelli da 3G e poi aggiungi VPN). Fai clic su OK e applica.

  4. Da ora in poi , per connetterti a 3G, basta collegare la tua USB e attendere fino a quando non hai una copertura 3G (dovrai aprire il gestore della connettività 3G), ma non utilizzare il gestore della connettività fornito per connetterti. E se si connette automaticamente, vai alle preferenze e deseleziona quel segno di spunta. È necessario che il manager solo per accendere la radio sul nel Dongle USB, nient'altro.

    Se fai clic su "Connetti" sul tuo gestore 3G, sovrascriverà la configurazione sulla tua interfaccia 3G e dovrai ripetere nuovamente il passaggio 3.

  5. Vai su Rete → Preferenze e fai clic sull'interfaccia 3G. Quindi fare clic su Connetti. Si collegherà al tuo 3G utilizzando i server DNS configurati (anziché ricevuti dinamicamente), che includono sia il DNS "pubblico" che il tuo DNS VPN.

  6. Connettiti alla tua VPN. Funzionerà come previsto.

Basta essere consapevoli del fatto che:

  • Se il tuo DNS VPN cambia, devi cambiarlo manualmente. Questo può essere facilmente verificato in Rete → Interfaccia VPN w Avanzato → scheda DNS poiché il tuo DNS VPN è ancora assegnato dinamicamente all'interfaccia (sebbene ignorato da OS X).

  • Se il tuo DNS 3G cambia (è improbabile) devi cambiarlo anche manualmente. Se qualcosa va storto e non riesci a navigare devi passare attraverso il tuo gestore di connettività 3G, fai clic su "Connetti" e vedi quali DNS sono assegnati in modo dinamico ... Ciò richiederà di tornare al passaggio 3 e riconfigurarlo.


2

Ho avuto lo stesso problema da molto tempo, ma ora ho avuto il tempo di trovare una soluzione che funzioni per me. Non ho cambiato l'ordine del server DNS, ma sto usando il server DNS dietro la VPN in modo permanente.

  1. Connetti tramite dial-up.

  2. Connetti la connessione VPN e copia gli IP del server DNS e il dominio di ricerca da Connessione VPN → Avanzate → DNS.

  3. Disconnetti la connessione VPN.

  4. Effettua il ping <name>o il <hostname>tuo server VPN e annota l'IP.

  5. Disconnettere la connessione remota.

  6. Duplica la connessione remota (es. Chiamala "3G per VPN").

  7. Immettere gli IP e il dominio di ricerca nella scheda DNS della connessione remota. Saranno memorizzati e utilizzati in modo permanente.

  8. Connetti tramite la nuova connessione remota.

  9. Ora non hai accesso ai nameserver (perché sono protetti dalla VPN): devi modificare l'indirizzo del server della connessione VPN. Sostituisci l'host con l'IP.

  10. Connetti tramite connessione VPN e dovresti essere in grado di usarlo.

Nota: in generale i nomi host non cambiano, ma gli IP possono farlo. Quindi se un giorno non funzionerà, ripeti i passaggi ...


Ciao Alexander, sembrava un approccio promettente. Tuttavia, non ho avuto fortuna anche se l'ordine del resolver DNS sembrava abbastanza buono. Devo verificare di nuovo con il nostro IT.
user1248552,

1

quello che hai detto mi ha dato un suggerimento, quindi ho aggiunto l'ip dns nella connessione vpn all'elenco dns nella connessione principale (niente di speciale, solo usando l'interfaccia grafica per le preferenze di rete.) Non sono sicuro se cosa tu avere a che fare è diverso, ma ha funzionato con me.


1

Questo sta ancora accadendo in 10.13.0

Ho aperto una segnalazione di bug con Apple. Non è normale che "ping internalhostname" funzioni ma "host internalhostname" o "nslookup internalhostname" non riescono con le VPN split tunnel (basate su Cisco IPSec o IKEv2).

Inoltre, come alcuni hanno notato, le connessioni Cisco IPsec e IKEv2 non possono essere prioritarie con "Imposta ordine di servizio" a differenza di L2TP / IPsec che può.

Un altro punto che vorrei evidenziare è che le VPN Cisco IPSec o IKEv2 a tunnel diviso non mostrano alcun server DNS o dominio di ricerca nelle loro impostazioni avanzate anche se queste informazioni vengono visualizzate con "scutil --dns". Le VPN L2TP / IPsec mostrano bene queste informazioni.

Qualcosa deve dare e Apple deve fornire qualche spiegazione / correzione.


Trovo che questa sia la situazione in questo momento con macOS alla fine del 2017. Un DNS diviso configurato su un dominio non viene onorato. Eseguo i scutil --dnscomandi sopra e sembra che il DNS dalla VPN sia sempre l'ultimo e non sia usato per il dominio di ricerca, anche se viene impostato correttamente.
mcdado,

0

Non funziona in Lion / Mountain Lion, a causa di un bug che fa sì che il server DNS locale venga sempre utilizzato al posto del server DNS della rete remota anche quando il DNS diviso è configurato correttamente nel router VPN.

Tuttavia, se si utilizza un router Cisco ASA IPSEC, è possibile forzare l'utilizzo dei server DNS remoti ogni volta che si stabilisce una connessione VPN:

Se si utilizza Cisco ASDM, accedere a Configurazione> Accesso alla rete (client)> Criteri di gruppo> (gruppo vpn per OSX / iPhone)> Avanzate> Split Tunneling

Sono impostati: Nomi DNS (deselezionare "eredita" e definire i nomi di dominio DNS interni, ad esempio myoffice.local) Invia tutte le ricerche DNS Throug Tunnel: impostato su YES (questa è l'impostazione importante)

Salvalo e non dimenticare di archiviarlo nel flash per usi futuri.

Se si utilizza la riga di comando IOS, impostare:

group-policy <your-tunnel-group-name> attributes
 split-dns value myoffice.local
 split-tunnel-all-dns enable`

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.