1 votos

Acceso a dos subredes aisladas desde una caja de Linux

Tengo un cuadro de Linux con dos tarjetas de red, cada uno conectado a una LAN diferente:

LAN A: 192.168.1.0 255.255.255.0
LAN B: 192.168.2.0 255.255.255.0

Los routers son:

RouterA: 192.168.1.1
RouterB: 192.168.2.1

Los puntos de acceso inalámbrico son:

WAP-B1: 192.168.2.3
WAP-B2: 192.168.2.4

Linux Nic son:

NIC A: 192.168.1.2 (eth0) default gateway 192.168.1.1, metric 100
NIC B: 192.168.2.2 (eth1) metric 101

He aquí un ASCII diagrama:

+-------+                                                           +-------+ 
| ISP A |                                                           | ISP B |
+-------+                                                           +-------+ 
    |                                                                   |
+---------+      +-------+      +-----------+      +-------+      +-----------+ 
| RouterA | <--> | LAN A | <--> | Linux Box | <--> | LAN B | <--> | RouterB-1 |
+---------+      +-------+      +-----------+      +-------+      +-----------+ 
                                                                    |        |
                                                            +--------+      +--------+
                                                            | WAP-B1 |      | WAP-B2 |
                                                            +--------+      +--------+ 

Quiero que todo el tráfico de Internet para ir a través de la red de UN ISP y A. yo sólo conecte este cuadro de Linux para la LAN B para que yo pueda llevar a cabo la administración de los dispositivos en la LAN-B, en particular RouterB y WAP-B1, WAP-B2. Por lo tanto, quiero que sólo las direcciones de la red 192.168.2.0/24 para ser enrutados a través de NIC B (eth1). Quiero que todo el tráfico enrutado a través de NIC A. yo no quiero hosts en la LAN para poder conectar el uno al otro (o ping de uno a otro, etc.). Quiero UNA LAN y LAN B a quedar aislado.

He conectado los cables de red, y las cosas parecen funcionar. Supongo que la métrica de enrutamiento que fueron establecidos por el orden en que los he conectado los cables. Sin embargo, me gustaría saber la manera correcta de configurar las reglas de enrutamiento para asegurarse de que mantener un trabajo de configuración.

ACTUALIZACIÓN: En respuesta a un comentario, aquí está la salida de route -n

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG    100    0        0 eth0
0.0.0.0         192.168.2.1     0.0.0.0         UG    101    0        0 eth1
192.168.1.0     0.0.0.0         255.255.255.0   U     100    0        0 eth0
192.168.2.0     0.0.0.0         255.255.255.0   U     101    0        0 eth1

Esta es la tabla de enrutamiento me habría imaginado que sería correcto. (Es sólo una suposición.)

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG    100    0        0 eth0
192.168.2.0     192.168.2.1     255.255.255.0   UG    101    0        0 eth1
192.168.1.0     192.168.1.1     255.255.255.0   U     100    0        0 eth0

En NetworkManager > IPv4 > Rutas, he comprobado "ignorar obtiene automáticamente las rutas" y he añadido esta ruta estática: 192.168.2.0, máscara de red: 255.255.255.0, puerta de enlace: 192.168.2.1, métrica: 101

Aquí está la tabla de enrutamiento que los resultados de esos cambios.

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG    100    0        0 eth0
192.168.2.0     192.168.2.1     255.255.255.0   UG    101    0        0 eth1
192.168.2.0     0.0.0.0         255.255.255.0   U     101    0        0 eth1
192.168.1.0     192.168.1.1     255.255.255.0   U     100    0        0 eth0

Que no se ve bien para mí, pero hoy es el primer día que he mirado las tablas de enrutamiento.

ACTUALIZACIÓN: yo estoy usando Arch Linux y NetworkManager. Sin embargo, yo prefiero una respuesta basada en comandos como, por ejemplo ip address y ip route.

ACTUALIZACIÓN 2: Gracias a @vaha's respuesta, aquí está el deseado de la tabla de enrutamiento:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG    100    0        0 eth0
192.168.1.0     0.0.0.0         255.255.255.0   U     100    0        0 eth0
192.168.2.0     0.0.0.0         255.255.255.0   U     101    0        0 eth1

No he descubierto la manera de crear un persistente de configuración que asegura esta tabla de enrutamiento después de reiniciar el sistema.

Sin embargo, puedo establecer las rutas de forma manual siguiendo estos pasos:

  1. En NetworkManager > IPv4 > Rutas, active la casilla "ignorar obtiene automáticamente de rutas" para ambas interfaces.

  2. $ sudo ip route add default via 192.168.1.1 metric 100 dev eth0

  3. $ sudo ip route delete default via 192.168.2.1 dev eth1

Otras variantes de este, tales como la no comprobación de "ignorar obtiene automáticamente de rutas" para eth0 no han funcionado. Por ejemplo, cuando yo sólo omite automáticamente obtenidos rutas para eth1, en el momento del arranque, el sistema utilizado 192.168.2.1 como el default gw. Que es un inesperado y confuso resultado.

Mi última pregunta es cómo configurar el sistema de modo que estas son las rutas por defecto después de un reinicio?

2voto

vahit.hanoglu Puntos 91

Vamos a aclarar sus inquietudes en dos pasos:

PASO 1

Por lo tanto, quiero que sólo las direcciones de la red 192.168.2.0/24 para ser enrutados a través de NIC B (eth1). Quiero que todo el tráfico enrutado a través de NIC A.

El valor predeterminado de la tabla de enrutamiento (tabla antes de configurar manualmente) proporciona las reglas de enrutamiento que usted está buscando.

Aquí está la explicación detallada:

192.168.2.0     0.0.0.0         255.255.255.0   U     101    0        0 eth1

dice que la subred 192.168.2.0/24 es una red local y no es necesario para una puerta de enlace. Cualquier paquete a una dirección en la red será entregado en destino directamente sin necesidad de un salto.

192.168.1.0     0.0.0.0         255.255.255.0   U     100    0        0 eth0

dice la misma cosa para la subred 192.168.1.0/24.

0.0.0.0         192.168.1.1     0.0.0.0         UG    100    0        0 eth0
0.0.0.0         192.168.2.1     0.0.0.0         UG    101    0        0 eth1

dice que el resto del tráfico se enruta a través de eth0 y eth1, donde la decisión de enrutamiento depende de los valores de métrica. Menor valor de la métrica tiene una prioridad más alta. PERO si eth0 es hacia abajo, a continuación, todo el tráfico se enruta a través de eth1 y viceversa. Por cierto, no estoy seguro, pero mi conjetura para eth0 tiene mayor prioridad que la eth1 es el orden alfabético de los nombres de interfaz.

Como conclusión, la siguiente tabla es lo que usted está buscando. Yo no estoy familiarizado con NetworkManager, pero creo que se puede ignorar obtiene automáticamente de rutas para ambas interfaces y ajustar manualmente su posee para lograr esta tabla de enrutamiento.

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG    100    0        0 eth0
192.168.1.0     0.0.0.0         255.255.255.0   U     100    0        0 eth0
192.168.2.0     0.0.0.0         255.255.255.0   U     101    0        0 eth1

PASO 2

No quiero que los hosts en la LAN para poder conectar el uno al otro (o ping de uno a otro, etc.). Quiero UNA LAN y LAN B a quedar aislado.

Simplemente conectar su máquina linux a dos redes diferentes no tiene ningún efecto sobre su aislamiento, a menos que exista una regla de NAT definidas en el cuadro del firewall o de la caja de conexiones del puente.

Usted puede comprobar las reglas de NAT a través de iptables o nftables que son herramientas para la gestión de firewall en Arch Linux. También ver a Arch Linux wiki - Cortafuegos.

Ejemplo de comando a la lista de reglas de NAT: iptables -t nat -L -v -n

No hay puente que se ve en su tabla de enrutamiento, pero usted puede comprobar los puentes en detalles por el uso de una de las maneras descritas en la wiki de Arch Linux - puente de Red.

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: