10 votos

No puede resolver el host a través de la conexión VPN desde Mac OS X

El Preámbulo

Puedo configurar una conexión VPN desde mi Macbook, y parece que se conecten correctamente.

working VPN

Sin embargo, no puedo acceder a mi equipo de trabajo porque el nombre de host no resuelto:

$ ping myusername
ping: cannot resolve myusername: Unknown host

La Nueva Solución

Después de intentar todo lo que pude, me encontré con que este comando hace que tanto la red VPN y conexión a internet disponible para mí:

sudo route add -net 192.168.7.218 192.168.7.117 255.255.0.0

La compañía de los servidores DNS son accesibles por medio de su IPs. ¿Cómo puedo configurar la red para el uso de ellos para todo lo que empieza desde 192.168?

El Viejo Solución

He encontrado una solución temporal que me permite acceder a la red a través de VPN mediante la modificación de dos opciones:

Puedo poner una marca de verificación en Enviar todo el tráfico a través de la conexión VPN:

VPN options

Yo manualmente introduzca un nombre de Dominio en el VPN de la interfaz de configuración de DNS:

entering domain name in VPN options

La realización de estos dos pasos es suficiente para hacer que mi equipo de trabajo pingable:

$ nslookup myusername
Server:     192.168.10.16
Address:    192.168.10.16#53

Name:   myusername.universe.mycompany
Address: 192.168.11.56

$ ping myusername
PING myusername.universe.mycompany (192.168.11.56): 56 data bytes
64 bytes from 192.168.11.56: icmp_seq=0 ttl=126 time=126.164 ms

Sin embargo, como me hicieron todo el tráfico para ir a través de VPN, no puedo acceder a Internet:

$ ping google.com
PING google.com (74.125.232.48): 56 data bytes
Request timeout for icmp_seq 0
Request timeout for icmp_seq 1

La Pregunta

¿Cómo puedo configurar correctamente la red, de manera que se entiende cuando para ir a través de VPN, y cuando el uso de la conexión normal? La necesito para resolver Windows servidor de nombres correctamente.

Si me necesita para enviar cualquier comando de la consola de salida, estoy dispuesto a hacer que si usted me deja saber qué exactamente.
Cualquier ayuda es muy apreciada, ya que esto es una especie de criba para mí ahora.

Gracias!

3voto

dghughes Puntos 151

Es posible que desee buscar en el manual de resolución de

Para citar una solución:

La configuración de un particular cliente puede ser leída desde un archivo de el formato que se describe en esta página de manual. Estos son, en la actualidad se encuentra por el sistema en el /etc/resolv.conf archivo y en los archivos encontrados en el /etc/resolución de directorio. Sin embargo, las configuraciones de cliente no se limitan para almacenamiento de archivos. La aplicación de el DNS multi-cliente de la estrategia de búsqueda también puede localizar cliente configuratins en otras fuentes de datos, tales como la Sistema De Base De Datos De Configuración. Los usuarios el sistema DNS no debe realizar ninguna hipótesis sobre el origen de la los datos de configuración.

AFAIK que usted necesita para poner un archivo de nombre example.com en /etc/resolver con las IPs de los servidores de nombres del dominio si desea especial de los servidores de nombres para example.com - Podría ser que el uso de resolv.conf de sintaxis, no puedo recordar. Pero usted debería ser capaz de averiguarlo :)

EDIT: en cuanto a la automatización del proceso que se va, yo estoy bastante seguro de que es factible con AppleScript o Automator. Pero yo nunca a mi cabeza alrededor de ella, por lo que una segunda pregunta sobre ese tema podría ser de ayuda.

3voto

Brian Lacy Puntos 4408

No parece ser un problema con OSX configuración de la máscara de red de forma incorrecta. Esta fue mi experiencia en el uso de una VPN PPTP en Snow Leopard y León de la Montaña, y es apoyado por este hilo aquí.

He encontrado una solución aquí, que consiste en establecer una regla de enrutamiento para ppp0 tráfico.

Básicamente:

$ sudo <your_text_editor_of_choice> /etc/ppp/ip-up

    #!/bin/sh
    /sbin/route add -net 192.168 -interface ppp0

$ sudo chmod 755 /etc/ppp/ip-up

De esta forma se establecerá la regla de enrutamiento cada vez que se conecta a la VPN.

3voto

Magocto Puntos 1707

Mac OSX resoluciones DNS es divertido. Aquí está la solución rápida.

  1. Coloque el código siguiente en un archivo de nombre reset_dns.

    #!/bin/bash
    
    function get_pri_srvc_id ()
    {
      cat <<EOF | scutil | \
        grep 'PrimaryService' | \
        awk -F': ' '{print $2}'
    show State:/Network/Global/IPv4
    EOF
    }
    
    function get_srvc_name ()
    {
      cat <<EOF | scutil | \
        grep 'UserDefinedName' | \
        awk -F': ' '{print $2}'
    show Setup:/Network/Service/$1
    EOF
    }
    
    function get_srvc_ids ()
    {
      cat <<EOF | scutil | \
        sed -nEe '
    /ServiceOrder/ {
      :ids
      n
      /[0-9]+ :/ {
        s/ *[0-9]+ : ([0-9A-Z-]+) */\1/p
        b ids
      }
    }'
    show Setup:/Network/Global/IPv4
    EOF
    }
    
    function get_srvc_id_by_name ()
    {
      local srvc_ids=$(get_srvc_ids)
    
      for srvc_id in $srvc_ids
      do
        local srvc_name=$(get_srvc_name "$srvc_id")
        if [[ "$srvc_name" == "$1" ]]
        then
          echo $srvc_id
          return
        fi
      done
    }
    
    function get_dns_ips ()
    {
      local srvc_id=$(get_srvc_id_by_name "$1")
    
      cat <<EOF | scutil | \
        sed -nEe '
    /ServerAddresses/ {
      :ips
      n
      /[0-9]+ :/ {
        s/ *[0-9]+ : ([0-9.]+) */\1/p
        b ips
      }
    }'
    show $2:/Network/Service/$srvc_id/DNS
    EOF
    }
    
    function set_dns_ips ()
    {
      networksetup -setdnsservers "$@"
    }
    
    vpn_srvc_name='MY VPN'
    ip_file='/tmp/setup_dns_ips'
    
    pri_srvc_id=$(get_pri_srvc_id)
    pri_srvc_name=$(get_srvc_name "$pri_srvc_id")
    
    if [[ ! -e "$ip_file" ]]
    then
      setup_dns_ips=$(get_dns_ips "$pri_srvc_name" "Setup")
      state_dns_ips=$(get_dns_ips "$pri_srvc_name" "State")
      setup_vpn_ips=$(get_dns_ips "$vpn_srvc_name" "Setup")
      state_vpn_ips=$(get_dns_ips "$vpn_srvc_name" "State")
    
      echo "set_dns_ips $pri_srvc_name $setup_vpn_ips $state_vpn_ips $setup_dns_ips $state_dns_ips"
      set_dns_ips "$pri_srvc_name" $setup_vpn_ips $state_vpn_ips $setup_dns_ips $state_dns_ips
    
      if [[ -z "$setup_dns_ips" ]]
      then
        setup_dns_ips="Empty"
      fi
    
      echo $setup_dns_ips >$ip_file
    else
      setup_dns_ips=$(cat $ip_file)
    
      echo "set_dns_ips $pri_srvc_name $setup_dns_ips"
      set_dns_ips "$pri_srvc_name" $setup_dns_ips
    
      rm $ip_file
    fi
    
  2. Reemplazar la palabra "MI VPN' con el nombre de la conexión de VPN.

  3. Una vez conectado a la VPN, ejecute reset_dns desde una ventana de terminal

Mac OSX sólo utiliza los servidores DNS asociados con su 'Principal' de la conexión de red. El código anterior agrega los servidores DNS de tu conexión VPN para la conexión de red Principal (es decir, normalmente Wi-Fi o Ethernet), de modo que su VPN servidores DNS se utiliza en primer lugar, a continuación, su Principal conexión de los servidores de DNS de segundo.

Ejecutar el reset_dns comando de nuevo después de desconectar la forma de VPN para quitar las entradas y restaurar el original de la configuración del servidor DNS. Esto es opcional, aunque, como es por lo general no duele nada para mantener los servidores DNS asociados.

0voto

user174089 Puntos 1

Yo tenía el mismo problema. Resulta que mi router de la casa estaba en el mismo rango de IP que mi sistema de trabajo. Una vez que he cambiado el router de la casa a un rango diferente yo era capaz de conectar.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X