80 votos

Cómo recargar la tabla de enrutamiento por defecto de Mac OSX sin reiniciar

Saludos,

Estoy usando vpnc para un cliente VPN. También estoy haciendo algunas cosas complicadas con route para asegurarme de que puedo seguir accediendo a mi red local, etc. etc. (los detalles aquí no son muy importantes).

A veces tengo la tabla de enrutamiento tan alterada que obtengo ping: sendto: Network is unreachable para las urls que deberían resolverse de otro modo.

Actualmente, si reinicio Mac OS X todo vuelve a la normalidad. Lo que me gustaría hacer es restablecer las tablas de enrutamiento a los "valores por defecto" (por ejemplo, lo que se establece en boot) sin un reinicio de todo el sistema.

Creo que el paso 1 es route flush (para eliminar todas las rutas). Y el paso 2 necesita recargar todas las rutas por defecto.

¿Alguna idea sobre cómo hacerlo? (por ejemplo, ¿cuál es el paso 2?)

EDITAR Además, estoy notando que otro síntoma es traceroute también falla en la dirección en cuestión. Por ejemplo:

traceroute the.good.dns.name

traceroute: bind: Can't assign requested address

75voto

cavver Puntos 397

Hay que tirar de las rutas . Utilice ruta -n flush varias veces . Después añade tus rutas con route add.

23voto

Sean Puntos 11

Me encontré con este problema mientras usaba un servidor OpenVPN casero y me conectaba a él usando la aplicación Tunnelblick en Mac.

Lo que ocurría en mi extremo es que una ruta con mi IP de casa como destino y una puerta de enlace incorrecta se quedaba después de desconectarse de la VPN. Eliminando esta ruta se solucionó el problema, simplemente

$ sudo route -n delete the.good.dns.name

Ejemplo: Estoy en la escuela y después de un nuevo boot, me conecto a una red inalámbrica. Me conecto al servidor OpenVPN de mi casa con Tunnelblick.

$ netstat -nr
Destination                   Gateway
....
[home-ip]/32                  [school-default-gateway-1] ....
....

Me desconecto del servidor VPN. Cambio de red inalámbrica. Esto cambia mi puerta de enlace por defecto.

$ netstat -nr
Destination                   Gateway
...
[home-ip]/32                  [school-default-gateway-1] ...
...
$ ping [home-ip]
PING [home-ip]: 56 data bytes
ping: sendto: Network is unreachable
ping: sendto: Network is unreachable
Request timeout for icmp_seq 0
...

No puedo, bajo ninguna circunstancia, conectarme a mi red doméstica (VPN, ping, nada) después de que esto ocurra. Si luego simplemente borro la ruta:

$ sudo route -n delete [home-ip]
delete net [home-ip]
$ ping [home-ip]
PING [home-ip]: 56 data bytes
64 bytes from [home-ip]: icmp_seq=1 ttl=56 time=13.111 ms

Funciona bien.

Puede que haya un problema con la configuración del servidor/cliente OpenVPN que esté dejando esto (y me interesaría saber cuál es), pero he instalado un Tunnelblick post-disconnect script que automatiza esta eliminación de rutas.

18voto

Jordan Eunson Puntos 892

Primero necesitas una ruta para tu interfaz de red. Si la VPN está desconectada, sólo tiene que desconectar su interfaz de red y volver a conectarla con ifconfig. Entonces use el comando route para construir su gw por defecto. Así que algo como:

ifconfig en0 down

ifconfig en0 up

route add <ip address> default

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: