Tengo el siguiente escenario:
Computadora A: 198.51.100.8
máscara de red 255.255.255.0
Computadora B: 203.0.113.9
máscara de red 255.255.255.0
Ambas computadoras están en el mismo segmento LAN; no se especifica una puerta de enlace predeterminada en ninguno de los casos.
Para que estas dos computadoras se comuniquen entre sí, agregué dos rutas estáticas, así:
route add 203.0.113.9 mask 255.255.255.255 198.51.100.8
Sin embargo, preferiría agregar las rutas estáticas especificando una interfaz de red , en lugar de especificar una dirección IP de puerta de enlace .
Esto es posible con Linux mediante el uso de un comando como:
ip route add 203.0.113.9 dev eth0
y de manera similar en FreeBSD:
route add 203.0.113.9/32 -iface fxp0 -cloning
Sin embargo, no sé cómo hacer esto con Windows. Idealmente quiero hacer algo como:
route add 203.0.113.9 mask 255.255.255.255 if 2
pero eso simplemente imprime el uso del route
comando, lo que me dice que lo estoy haciendo mal. También he intentado usar netsh
, lo que me dice:
> netsh routing ip add persistentroute 203.0.113.9 255.255.255.255 "Local Area Connection"
Specify the next-hop for non point-to-point interfaces.
¿Alguna idea o sugerencia?
Actualización : cuando originalmente publiqué esta pregunta, estaba usando Windows XP. Pero no mencioné eso.
Dejaré la respuesta original de Grizly, ya que es correcta para mi pregunta original. Pero si está utilizando una versión más nueva de Windows que XP / 2003, pruebe una de las otras respuestas.
fuente
En Windows, puede agregar una ruta basada en la interfaz sin conocer la interfaz pasando
0.0.0.0
como puerta de enlaceesto da algo como esto:
fuente
route ADD 176.31.111.111 0.0.0.0 IF 25
regresóOK!
y apareció una nueva entrada en la tabla de enrutamiento como se esperabaObtuve lo mismo en Windows 7 Enterprise con el cliente Juniper Junos Pulse VPN.
Tuve un problema con esto, ya que capturó todas las direcciones IPv4 posibles y las enrutó a la conexión de acceso telefónico:
No quería que todo mi tráfico pasara a través de la VPN, por lo que en caso de que alguien lo necesite, escribí un pequeño archivo cmd para eliminar estas rutas y luego instalar el único que necesito (10.0.0.0) sin poder especificar una puerta de enlace , especificando la interfaz correcta.
Puede usar esto para recuperar dinámicamente el número de una interfaz.
fuente
El número de interfaz en decimal se muestra con
route print
. Mira la parte superior de la salida debajoInterface List
.Otra forma es usar
arp -a
y tomar nota del número hexadecimal, por ejemplo:Ambos son aceptados después del
if
argumento enroute.exe
, por ejemplo:Prefiero
arp -a
, ya que es más fácil identificar la NIC.Numerosas otras formas, pero esta es la más simple.
fuente
No puede omitir la puerta de enlace en la tabla permanente. Algunas personas ofrecen poner allí una tarjeta de interfaz IP (lado del usuario), que era aceptable en Windows XP. Pero ya no es válido. El sistema operativo seguirá golpeando todas las interfaces de red en este caso, al menos hasta que se llene el caché; no es un buen comportamiento y no hace ninguna diferencia con la tabla de enrutamiento vacía.
Descubrí que poner allí una IP de destino como puerta de enlace resuelve el problema al menos en Windows 10. Pero tengo pocas estadísticas en este momento para confirmarlo como 100.1% de verdad.
fuente