Enrutamiento WIFI y LAN para tráfico específico

12

Tengo dos dispositivos de red a bordo de mi macbook pro:

  1. WIFI (en1): Utilizado para tráfico general. Se conecta a una ip de 192.168.19. * A través de DHCP
  2. LAN (en0): utilizado para tráfico específico. Se conecta a una ip de 192.168.2.10 como una IP estática. No se conecta a un enrutador, solo un interruptor para la conexión de enrutamiento directo .

Tengo 4 direcciones IP a las que necesito acceder en la LAN:

  1. 192.168.2.1
  2. 192.168.2.21
  3. 192.168.2.20
  4. 192.168.2.30

El resto del tráfico debe ir a WIFI. Intenté configurar una tabla de enrutamiento para las direcciones IP específicas, pero solo logré estropear mi red. No me aventuro en el mundo de las redes con demasiada frecuencia, pero este fue el último comando que he estado intentando:

sudo route add -host 192.168.2.30 -interface en0

Este comando mató mi capacidad de usar ping. Me dijo que ping no podía asignar memoria (¿es eso posible?) También mató mi acceso wifi. Cerrar sesión y volver a iniciarlo solucionó el problema. Realmente no me importa hacer que esta solución sea permanente, así que estoy bien con un enrutamiento temporal.

EDITAR:

Si actualmente he estado intentando:

sudo route flush
sudo route add default 192.168.19.1

Esto hace que todo funcione durante aproximadamente un minuto. Pero después de ese minuto "olvida" el enrutamiento a WiFi mientras retiene el enrutamiento de LAN (en0). Si desconecto y vuelvo a conectar mi cable LAN (en0), el proceso funciona durante otro minuto.

EDITAR 2:

Estos fueron algunos de los comandos ingresados ​​como solicitud por d34dh0r53.

$ netstat -rn
Routing tables

Internet:
Destination        Gateway            Flags        Refs      Use   Netif Expire
default            192.168.2.1        UGSc            4        0     en0
default            192.168.19.1       UGScI           0        0     en1
127                127.0.0.1          UCS             0        1     lo0
127.0.0.1          127.0.0.1          UH              5  1429023     lo0
169.254            link#4             UCS             0        0     en0
192.168.2          link#4             UCS             4        0     en0
192.168.2.1        0:27:22:2e:5f:1a   UHLWIi          2        0     en0   1199
192.168.2.10       127.0.0.1          UHS             0        0     lo0
192.168.2.30       90:a2:da:0:f5:63   UHLWIi          1     1433     en0   1191
192.168.2.255      ff:ff:ff:ff:ff:ff  UHLWbI          0        7     en0
192.168.19         link#5             UCS             2        0     en1
192.168.19.1       3e:d0:f8:aa:28:56  UHLWIi          0        2     en1   1192
192.168.19.3       127.0.0.1          UHS             1        0     lo0
192.168.19.255     ff:ff:ff:ff:ff:ff  UHLWbI          0        5     en1

Internet6:
Destination                             Gateway                         Flags         Netif Expire
::1                                     link#1                          UHL             lo0
fe80::%lo0/64                           fe80::1%lo0                     UcI             lo0
fe80::1%lo0                             link#1                          UHLI            lo0
fe80::%en0/64                           link#4                          UCI             en0
fe80::226:4aff:fe00:b68a%en0            0:26:4a:0:b6:8a                 UHLI            lo0
fe80::%en1/64                           link#5                          UCI             en1
fe80::226:bbff:fe03:cbd%en1             0:26:bb:3:c:bd                  UHLI            lo0
ff01::%lo0/32                           fe80::1%lo0                     UmCI            lo0
ff01::%en0/32                           link#4                          UmCI            en0
ff01::%en1/32                           link#5                          UmCI            en1
ff02::%lo0/32                           fe80::1%lo0                     UmCI            lo0
ff02::%en0/32                           link#4                          UmCI            en0
ff02::%en1/32                           link#5                          UmCI            en1
$ traceroute -n 192.168.2.1
traceroute to 192.168.2.1 (192.168.2.1), 64 hops max, 52 byte packets
 1  192.168.2.1  2.499 ms  3.392 ms  3.829 ms
$ traceroute -n google.com
traceroute: unknown host google.com
jakebird451
fuente
El sistema operativo maneja el enrutamiento, no el hardware.
Ignacio Vazquez-Abrams
¿Está todo 192.168.2.X en la LAN? Si es así, eso hace que la solución sea mucho más simple.
LawrenceC
@ultrasawblade Sí, todo en esa red es 192.168.2. *
jakebird451

Respuestas:

11

No debería necesitar crear ninguna regla de enrutamiento a mano para esa configuración, siempre que todas las direcciones 192.168.2.x con las que desea comunicarse estén en la interfaz con la dirección 192.168.2.x.

  1. Vaya a Preferencias del sistema -> Red
  2. Seleccione su dispositivo Ethernet, asegúrese de que "Configurar IPv4" esté configurado en "Manualmente", que su máscara de subred esté configurada en 255.255.255.0 y que la caja del enrutador esté vacía.

Una vez hecho esto, netstat -rnaún debe mostrar las rutas para ambas subredes, pero solo una ruta de "enlace # 4" en lugar de la ruta predeterminada a través de 192.168.2.1.

Si no desea una ruta predeterminada, deje el cuadro del enrutador en blanco. El valor en el cuadro del enrutador solo se usa para configurar una ruta predeterminada a través de esta interfaz de red, y no se usa para nada más.

rakslice
fuente
¡Gracias! ¡Eso fue todo! Tenía todo configurado correctamente, excepto en el campo del enrutador. Puse la dirección IP 192.168.2.1en el campo del enrutador para que coincida con un "enrutador" en el lado LAN. Pensé que era necesario, pero ahora veo que se hizo cargo de la ruta predeterminada para el tráfico general.
jakebird451
¡Gracias por esto! Tuve el mismo problema y funcionó perfectamente para mí.
BaronVonKaneHoffen
4

El problema es que su en0interfaz está agregando una ruta predeterminada que tiene prioridad sobre la ruta predeterminada establecida por la interfaz 802.11. No estoy exactamente seguro de por qué, pero es el hecho de que BSD prefiere una interfaz con cable en lugar de una inalámbrica, o prefiere una interfaz configurada estáticamente en lugar de una configurada dinámicamente. Puede decir que en0la Refscolumna está utilizando la ruta predeterminada ; Refses una métrica que indica el número actual de usos activos de la ruta, por lo que podemos ver que está recibiendo todo el tráfico.

La solución es eliminar esa ruta, preferible permanentemente de la tabla de enrutamiento para que el tráfico destinado a hosts distintos de los de sus redes locales atraviese la puerta de enlace predeterminada establecida por DHCP en1. Lo primero que verificaría es en el panel de configuración para en0asegurarme de que no haya ingresado nada en el routercampo. La información en ese campo se agrega como una puerta de enlace predeterminada. Si eso no funciona, necesitamos eliminar manualmente la ruta, la razón por la que route flushno funciona es que creo que le dice a OS X que vuelva a cargar su información de enrutamiento desde los archivos de configuración de la interfaz, por lo tanto, revierte su cambio después de un corto tiempo. El siguiente comando debería eliminar la ruta predeterminada paraen0 interfaz hasta que se reinicie la red o el sistema tenga IPL:

sudo route delete -net 0.0.0.0 192.168.2.1

Si desea que este cambio sea permanente, puede a) crear un servicio en el /Library/StartupItemsque me parezca demasiado trabajo ob) agregar esa línea /etc/rc.localcon un comando como:

echo 'route delete -net 0.0.0.0 192.168.2.1' >> /etc/rc.local

Es posible que deba agregar un sleep <number_of_seconds>comando antes de esa línea /etc/rc.localpara evitar ejecutar el comando antes de que las interfaces estén completamente activas y la tabla de enrutamiento establecida.

Espero que esto ayude y buena suerte!

d34dh0r53
fuente
Gracias por su larga respuesta. La ruta predeterminada 192.168.2.1era el problema, pero @rakslice descubrió que cometí un error al ingresar mi información de enrutamiento para la conexión en0. Puse la dirección IP 192.168.2.1en el campo del enrutador creyendo que era necesario. Después de eliminar la IP predeterminada del enrutador, también eliminé la ruta predeterminada incorrecta a 192.168.2.1. Otra vez, gracias por tu ayuda.
jakebird451
1
Un poco molesto, no obtuve la recompensa: "Lo primero que verificaría en el panel de configuración para en0 es asegurarme de que no haya ingresado nada en el campo del enrutador. La información en ese campo se agrega como una puerta de enlace predeterminada. " Pero todo está bien al final, me alegra que lo hayas hecho funcionar.
d34dh0r53
0

Desea configurar su IP Wifi como su puerta de enlace predeterminada y eliminar cualquier puerta de enlace predeterminada (o ruta a 0.0.0.0) conectada a la LAN o 192.168.2.0/24.

Por supuesto, esto es más fácil si puede configurar su en1 a una IP fija que funcione con el wifi.

Es posible que deba agregar 192.168.2.10 como ruta a la red 192.168.2.0/24. Sin embargo, esto debería ser automático ya que puede decir que 192.168.2.0/24 está directamente conectado por virtual de lo que asignó a la interfaz.

Por lo tanto, el tráfico que vaya a cualquier 192.168.2.X saldrá de 192.168.2.10, y el tráfico que vaya a cualquier otro lugar saldrá de la dirección IP de su en1.

LawrenceC
fuente
Establecí mi orden wifi en la parte superior a través de las preferencias del sistema de red. Pero no estoy seguro de cómo hacerlo remove any default gateway connected to the LAN.
jakebird451
sudo route del default 192.168.2.10¿ quizás ?, no estoy seguro de cómo hacerlo en freebsd / mac osx pero debería ser similar.
LawrenceC
El comando en mac es sudo route delete default 192.168.2.10. Ping todavía está activo. Sin embargo, cierra el acceso al tráfico wifi, excluyendo la dirección IP del enrutador.
jakebird451
¿Obtiene Internet a través de su wifi, correcto, es decir, si no se conecta a través de LAN y solo Wifi, puede acceder a sitios externos como Google, etc.?
LawrenceC
Sí, WiFi es para tráfico general como google.com (principalmente para la API de Google Maps)
jakebird451