¿Cómo agregar rutas IP con nombre de host en lugar de dirección IP?

Quiero agregar rutas IP para host para las que no tengo la dirección IP. Básicamente, quiero decirle a macOS que busque un host en una interfaz específica:

sudo route add -host <myHostname> -iface en7

Antecedentes: configuré WiFi para que sea mi interfaz de red principal. Pero quiero poder acceder al host que solo está disponible en la red cableada con la interfaz en7. Por lo tanto, quería agregar una ruta de este tipo al sistema.

El comando anterior da como resultado el error:route: bad address: myHostname

¿Algunas ideas?

Respuestas (3)

No puedes hacer esto; esta no es la forma en que funciona el enrutamiento IP.

DNS es resolución de nombres. No es más que una libreta de direcciones de nombres que apuntan a unos números (IPs)

myhost.com --------> 111.222.333.444

El DNS te dice cuál es la dirección, no cómo llegar allí. El enrutamiento IP es el mecanismo de cómo se llega de un punto al siguiente. Es la misma diferencia entre "Contactos" y "Mapas" en tu iPhone.

Básicamente, quiero decirle a macOS que busque un host en una interfaz específica:

No puede decirle a una interfaz qué "hosts" (nombres) hay. Usted le dice qué redes son accesibles. Las redes se definen por direcciones IP.

Por ejemplo:

  • en0tiene una IP de 192.168.1.4y está en la red192.168.1.0/24
  • en1tiene una IP de 10.0.0.9y está en la red10.0.0.0/24
  • Una subred 10.0.5.0/24está conectada (a través de un conmutador) en la 10.0.0.0/24red

     en0+------------> 192.168.1.0/24
    
    
     en1+------------> 10.0.0.0/24
                                 +
                                 |
                                 +------> 10.0.5.0/24
    

Ahora, agrega un host llamado foo.barDNS y tiene una dirección IP de 10.0.0.12. Su sistema sabrá pasar por la interfaz en1para llegar a ella.

Si otro host llamado foobar.footuviera una dirección IP de 10.0.5.12, nuevamente, sabría pasar en1porque esa ruta estaría definida.

Para lograr lo que está buscando hacer, su host debe poder obtener la resolución de nombres en dos dominios separados (no interfaces). Puedes lograr esto de dos maneras:

Algunos detalles de la respuesta son incorrectos: 1. la dirección IP 111.222.333.444 ;-). 2. 10.0.5.0/24 no es una subred de 10.0.0.0/24. Realmente no existe una ruta del segundo al primero. Las redes adecuadas serían 10.0.0.0/8-10.0.0.0/21 (todas incluyen 10.0.5.0/24).

esta es una respuesta bastante tardía, pero acabo de hacer lo que me pediste y funciona para mí.

Estoy usando una conexión VPN para obtener acceso a mi oficina que se ejecuta en la interfaz ppp0. Corrí a continuación y ahora puedo acceder a los nombres de host que solo están disponibles a través de VPN, sin configurar la opción para enviar todo el tráfico a través de VPN.

/sbin/route agregar -host -interfaz

Que yo sepa, no es posible establecer un siguiente salto o interfaz predeterminados para nombres de host en lugar de direcciones IP.

¿Hay alguna razón por la que no esté creando una ruta que apunte al siguiente salto o interfaz para las subredes accesibles por cable?