29 votes

Mac OS X Mountain Lion - La résolution DNS utilise le mauvais ordre sur le VPN via une connexion commutée.

J'utilise un MacBook avec Mac OS X 10.8.2 et je me connecte au réseau de mon entreprise via un VPN. Tout fonctionne parfaitement lorsque j'établis la connexion VPN via le réseau local ou le réseau local sans fil. Cependant, lorsque j'utilise une connexion commutée (clé USB Huawei HSDPA), les noms d'hôtes ne sont pas correctement résolus dans les applications (par exemple, le navigateur Web). Les outils de ligne de commande comme host name résoudra correctement l'adresse IP, ping name ne sera pas résolu.

Utilisation de scutil --dns J'ai vérifié la configuration du DNS lors de la connexion via le WLAN et le dial-up. Il y a une différence notable dans l'ordre de recherche :

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 connexion ppp0 est la connexion VPN. Comme vous pouvez le voir, deux serveurs sont connectés et ils répondent correctement en ligne de commande et dans les applications.

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

Cette fois, ppp1 est la connexion VPN et ppp0 est la connexion UMTS. D'après les temps de réponse des commandes (en utilisant le nom d'hôte inexistant foo.bar.local ) Je déduis que ping utilise la première chaîne de résolveurs, alors que host utilise la configuration de la requête scopée. ping prend 5 secondes pour retourner "Unkown host", host revient immédiatement. Je suppose que le ping se heurte au délai d'attente de 5 secondes du résolveur mdns.

Afin de résoudre mon problème avec les recherches DNS interrompues lorsque je me connecte via VPN sur modem, je dois changer l'ordre des résolveurs. Jusqu'à présent, je n'ai pas trouvé le moyen de le faire.

Toute idée est la bienvenue.

21voto

NarenderNishad Points 291

J'ai eu le même problème sur mon Mac, et après l'avoir résolu, j'ai compris qu'il était causé par FortiClient (client VPN). Même lorsque le FortiClient était déconnecté, son DNS apparaissait toujours dans le scutil.

La solution pour moi était :

scutil
> list ".*DNS"

Cela vous montrera une liste de toutes les configurations DNS, qui ressemblera à quelque chose comme :

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>

Pour vérifier chacun d'entre eux, exécutez : (jusqu'à ce que vous trouviez celui qui pose problème)

> get key_name
> d.show

et de la réparer en courant :

> get key_name
> d.remove ServerAddresses
> set key_name

Voici comment ça se présente sur ma machine :

> 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

4voto

Adrian S Points 41

Cela se produit toujours dans la 10.13.0.

J'ai ouvert un rapport de bug avec Apple. Il n'est pas normal que "ping internalhostname" fonctionne mais que "host internalhostname" ou "nslookup internalhostname" échoue avec les VPN à tunnel partagé (basés sur Cisco IPSec ou IKEv2).

De plus, comme certains l'ont remarqué, les connexions Cisco IPsec ainsi que les connexions IKEv2 ne peuvent pas être hiérarchisées avec "Set service order" contrairement à L2TP/IPsec qui le peut.

Un autre point que j'aimerais soulever est que les VPN Cisco IPSec ou IKEv2 à tunnel divisé n'affichent aucun serveur DNS ou domaine de recherche dans leurs paramètres avancés, même si ces informations apparaissent avec "scutil --dns". Les VPN L2TP/IPsec affichent ces informations sans problème.

Il faut que quelque chose se passe et qu'Apple fournisse une explication ou une solution.

3voto

kent Points 2308

J'ai eu le même problème pendant longtemps, mais maintenant j'ai eu le temps de trouver une solution qui fonctionne pour moi. Je n'ai pas changé l'ordre du serveur DNS, mais j'utilise le serveur DNS derrière le VPN de façon permanente.

  1. Connectez-vous via l'accès commuté.

  2. Connectez la connexion VPN et copiez les IPs du serveur DNS et le domaine de recherche à partir de Connexion VPN - DNS avancé.

  3. Déconnecter la connexion VPN.

  4. Ping <name> o <hostname> de votre serveur VPN et notez l'IP.

  5. Déconnectez la connexion dial-up.

  6. Dupliquez la connexion commutée (par exemple, nommez-la "3G pour VPN").

  7. Entrez les IP et le domaine de recherche dans l'onglet DNS de la connexion commutée. Ils seront stockés et utilisés en permanence.

  8. Connectez-vous via la nouvelle connexion téléphonique.

  9. Maintenant, vous n'avez pas accès aux serveurs de noms (car ils sont sécurisés par le VPN) - vous devez modifier l'adresse du serveur de la connexion VPN. Remplacez l'hôte par l'IP.

  10. Connectez-vous via une connexion VPN et vous devriez pouvoir l'utiliser.

Note : En général, les noms d'hôtes ne changent pas, mais les IPs peuvent changer. Donc si ça ne marche pas un jour, refaites les étapes

3voto

zymmer Points 21

J'ai trouvé une solution de contournement : votre DNS VPN sera toujours ignoré, et seul le DNS de la clé 3G sera utilisé, mais il suffit d'ajouter votre DNS VPN à la liste sous l'interface 3G pour que cela fonctionne Le problème principal est que le gestionnaire de connectivité 3G écrase la configuration chaque fois que vous cliquez sur connecter, et vous avez besoin du gestionnaire de connectivité pour activer la radio sur la clé 3G donc j'ai mélangé les deux solutions en une seule :

  1. Connectez-vous à votre VPN et notez votre DNS (j'en ai 2 dans la liste). Vous pouvez le vérifier dans les préférences réseau, onglet DNS avancé. Déconnectez le VPN. Vous devez vous connecter au VPN car le DNS est attribué dynamiquement lors de la connexion

  2. Connectez-vous à votre 3G et faites de même : écrivez le DNS sur papier. Puis déconnectez votre 3G.

  3. Allez dans les préférences réseau, cliquez sur l'interface 3G, onglet DNS avancé, et sous la table DNS (qui sera généralement vide puisque vous n'êtes pas connecté), cliquez sur '+'. Ajoutez tous les serveurs DNS (d'abord ceux de l'interface 3G, puis ceux du VPN). Cliquez sur OK et Appliquer.

  4. A partir de maintenant Pour vous connecter à la 3G, il vous suffit de brancher votre clé USB et d'attendre que vous ayez une couverture 3G (vous devrez ouvrir le gestionnaire de connectivité 3G), mais ne utilisez le gestionnaire de connectivité fourni pour vous connecter. Et s'il se connecte automatiquement, allez dans les préférences et décochez la case. Vous avez besoin de ce gestionnaire uniquement pour allumer la radio sur dans le Dongle USB, rien d'autre.

    Si vous cliquez sur "connecter" sur votre gestionnaire 3G, cela écrasera la configuration sur votre interface 3G et vous devrez répéter l'étape 3 à nouveau.

  5. Allez dans les préférences réseau et cliquez sur l'interface 3G. Cliquez ensuite sur Connecter. Il se connectera à votre 3G en utilisant les serveurs DNS configurés (au lieu d'être reçus dynamiquement), qui comprennent à la fois le DNS "public" et votre DNS VPN.

  6. Connectez-vous à votre VPN. Il fonctionnera comme prévu.

Sachez simplement que :

  • Si le DNS de votre VPN change, vous devez le modifier manuellement. Cela peut facilement être vérifié sous l'interface Network VPN w onglet Advanced DNS puisque votre DNS VPN est toujours attribué dynamiquement à l'interface (bien qu'ignoré par OS X).

  • Si votre DNS 3G change (ce qui est peu probable), vous devez également le modifier manuellement. Si quelque chose ne va pas et que vous ne pouvez pas naviguer, vous devez passer par votre gestionnaire de connectivité 3G, cliquer sur "Connecter" et voir quels DNS sont attribués dynamiquement Cela vous obligera à revenir à l'étape 3 et à le reconfigurer.

2voto

Ady Points 4132

Essayez de modifier l'ordre des entrées DNS dans le volet de préférences Réseau :

  1. Ouvrir Préférences du système Réseau .

  2. Sélectionnez votre service réseau dans la liste à gauche.

  3. Déverrouillez le volet des préférences à l'aide du verrou situé dans le coin inférieur gauche.

  4. Cliquez sur Avancé et choisissez le DNS onglet.

  5. Changez l'ordre des serveurs DNS en les faisant glisser vers le haut/bas.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X