Enrutador ISP

Enrutador ISP

Queremos agregar un segmento de red adicional (LAN2) y necesitamos algunas máquinas en LAN1 para acceder a los recursos en LAN2. Algunas máquinas en LAN2 también necesitan acceder a recursos en LAN1 y el segmento WAN. La puerta de enlace entre LAN1 y LAN2 se llama "SRV-01", un servidor Linux de doble conexión.

No puedo acceder a LAN2 desde LAN1 o LAN1 desde LAN2 ni a WAN desde LAN2. Me pregunto cómo hacer que los hosts LAN1 y LAN2 hablen juntos y también cómo permitir el acceso a la WAN desde las máquinas LAN2.

Solución de problemas

Recibo las siguientes respuestas usando ping:

IP (origen) ---> IP (destino): respuesta de ping
-------------------------------------------------- -------------------------
192.168.5.33 (cliente en LAN1) ---> 192.168.5.8 (SRV-01:eth0): OK
192.168.5.33 (cliente en LAN1) ---> 10.0.2.1 (SRV-01:eth1): NO
192.168.5.33 (cliente en LAN1) ---> 10.0.2.2 (SRV-02:eth0): NO
*.*.*.*.* (SRV-01) ---> 192.168.5.33 (cliente en LAN1): OK
*.*.*.*.* (SRV-01) ---> 10.0.2.2 (SRV-02:eth0): OK
10.0.2.2 (SRV-02) ---> 10.0.2.1 (SRV-01:eth1): OK
10.0.2.2 (SRV-02) ---> 192.168.5.8 (SRV-01:eth0): OK
10.0.2.2 (SRV-02) ---> 192.168.5.33 (cliente en LAN1): NO

Topología de la red

WAN --- (Enrutador ISP) --- LAN1 --- (SRV-01) --- LAN2 --- (SRV-02) 

Enrutador ISP

El enrutador del proveedor de servicios de Internet (ISP) proporciona NAT (dos adaptadores de red) y actúa como servidor DHCP para LAN1. No tenemos acceso de shell/administrador a este equipo.

  • xxx.xx.xx.xx/xx (eth0, WAN)
  • 192.168.5.4/24 (eth1, LAN1)

servidor SRV-01

SRV-01 es un servidor Ubuntu 14.04 de doble conexión (dos adaptadores de red) que actuaría como puerta de enlace entre la subred LAN1 y la subred LAN2.

  • 192.168.5.8/24 (eth0, LAN1)
  • 10.0.2.1/24 (eth1, LAN2)

/etc/red/interfaces

# Loopback
auto lo
iface lo inet loopback
# LAN1
auto eth0
iface eth0 inet static
    address 192.168.5.8
    netmask 255.255.255.0
    network 192.168.5.0
    broadcast 192.168.5.255
    gateway 192.168.5.4
    dns-nameservers xxx.xxx.xxx.xxx
# LAN2
auto eth1
iface eth1 inet static
    address 10.0.2.1
    netmask 255.255.255.0
    network 10.0.2.0
    broadcast 10.0.2.255
    dns-nameservers xxx.xxx.xxx.xxx

Enrutamiento

~$ netstat-r
Tabla de enrutamiento IP del kernel
Destino Puerta de enlace Genmask Banderas Ventana MSS irtt Iface
predeterminado 192.168.5.4 0.0.0.0 UG 0 0 0 eth0
10.0.2.0 * 255.255.255.0 U 0 0 0 eth1
red local * 255.255.255.0 U 0 0 0 eth0
~$ mostrar ruta ip
predeterminado a través de 192.168.5.4 dev eth0
10.0.2.0/24 dev eth1 proto kernel alcance enlace src 10.0.2.1
192.168.5.0/24 dev eth0 proto kernel alcance enlace src 192.168.5.8

reenvío de IP

~$ sudo sysctl -a | grep net.ipv4.ip_forward
net.ipv4.ip_forward = 1
net.ipv4.ip_forward_use_pmtu = 0

Cortafuegos

El "Firewall sin complicaciones" (UFW) de Ubuntu está deshabilitado en el servidor "SRV-01" y todas las cadenas de iptables tienen una política predeterminada establecida para ACEPTAR el objetivo. Tenga en cuenta que ningún paquete llegó a la tabla FORWARD todavía...

~$ estado sudo ufw
Estado: inactivo
~$ sudo iptables -L -v | política grep
ENTRADA de cadena (política ACEPTAR 369 paquetes, 28278 bytes)
Cadena ADELANTE (política ACEPTAR 0 paquetes, 0 bytes)
SALIDA de cadena (política ACEPTAR 187 paquetes, 19740 bytes)

servidor SRV-02

SRV-02 es un Ubuntu Server 14.04 con un adaptador de red.

  • 10.0.2.2/24 (eth0, LAN2)

/etc/red/interfaces

# Bucle invertido
baja automática
bucle invertido iface lo inet
#LAN2
iface eth0 inet estático
    dirección 10.0.2.2
    máscara de red 255.255.255.0
    red 10.0.2.0
    transmisión 10.0.2.255
    servidores de nombres dns xxx.xxx.xxx.xxx

Enrutamiento

~$ netstat-r:
Tabla de enrutamiento IP del kernel
Destino Puerta de enlace Genmask Banderas Ventana MSS irtt Iface
predeterminado 10.0.2.1 0.0.0.0 UG 0 0 0 eth0
10.0.2.0 * 255.255.255.0 U 0 0 0 eth0
~$ mostrar ruta ip
predeterminado a través de 10.0.2.1 dev eth0
10.0.2.0/24 dev eth0 proto kernel alcance enlace src 10.0.2.2

Cortafuegos

El "Firewall sin complicaciones" (UFW) de Ubuntu está deshabilitado en el servidor "SRV-02" y todas las cadenas de iptables tienen una política predeterminada establecida para ACEPTAR el objetivo.

~$ estado sudo ufw
Estado: inactivo
~$ sudo iptables -L -v | política grep
ENTRADA de cadena (política ACEPTAR 0 paquetes, 0 bytes)
Cadena ADELANTE (política ACEPTAR 0 paquetes, 0 bytes)
SALIDA en cadena (política ACEPTAR 0 paquetes, 0 bytes)

¿Que me estoy perdiendo aqui? Me pregunto qué ruta estática debería agregarse a SRV-01 y también si las puertas de enlace predeterminadas están configuradas correctamente...

Respuesta1

Hay dos problemas con esta configuración:

  1. Los hosts de LAN1 no saben nada sobre el segmento LAN2. Cuando hace ping a un host en LAN1 (llamémoslo host1) desde SRV-02, el paquete se enrutará a través de SRV-01 y llegará al host1. Sin embargo, el host1 enviará la respuesta a su puerta de enlace predeterminada (enrutador ISP), ya que no tiene una ruta específica a LAN2. (El enrutador ISP a) también lo enviará a su puerta de enlace predeterminada, ya que tampoco conoce la LAN2, ob) descartará el paquete porque proviene de una fuente desconocida, no de su LAN local).
  2. Al intentar llegar a la WAN desde LAN2, los paquetes se enrutarán a través de SRV-02 al enrutador ISP donde son posibles dos situaciones:
    • El enrutador no traducirá NAT el paquete porque el origen del paquete (LAN2) no es su LAN local (esta es la situación más probable), o
    • El enrutador traducirá NAT el paquete y lo enviará a Internet. Sin embargo, cuando llega la respuesta y el destino se traduce nuevamente a la dirección LAN2, el paquete no se entregará porque el enrutador ISP no tiene una ruta para esa red. El paquete se enviará incorrectamente a la puerta de enlace predeterminada (ISP).

Estos problemas podrían solucionarse agregando una ruta estática a LAN2 al enrutador ISP y agregando una configuración NAT de origen para LAN2 en SRV-01. Sin embargo, eso no es posible debido a que no hay acceso de administrador al enrutador del ISP.

Hay dos soluciones que lo solucionan:

A. Hacer del SRV-01 un enrutador completo para los hosts LAN1 y LAN2

  • Agregue otro adaptador de red al SRV-01 (haciendo 3 en total)
  • Cambie la topología de la siguiente manera:

.

WAN -> ISP router -> LAN1 -> SRV-01 +-> LAN3 (for hosts originally in LAN1)
                                    +-> LAN2 -> SRV-02

Básicamente, estamos haciendo del SRV-01 un enrutador para ambos segmentos de LAN.

  • Esto requerirá mover los hosts originalmente en LAN1 a una nueva subred LAN3; digamos que usamos10.0.1.0/24
  • Será necesario cambiar la configuración de red de SRV-01 de la siguiente manera:

/etc/red/interfaces:

# LAN1 - to ISP router
auto eth0
iface eth0 inet dhcp
# we can even use dhcp as the IP address is not really important
# - there are no more hosts on LAN1 apart from ISP router and SRV-01

# LAN3 - for hosts originally in LAN1
iface eth1
    address 10.0.1.1
    netmask 255.255.255.0

# LAN2
iface eth2
    address 10.0.2.1
    netmask 255.255.255.0

Reglas de iptables para que el acceso WAN funcione:

iptables -t nat -A POSTROUTING -o eth0 -s 10.0.1.0/24 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth0 -s 10.0.2.0/24 -j MASQUERADE

Alternativamente, si elige mantener la dirección IP estática en SRV-01 en eth0, las reglas podrían cambiarse (aunque MASQUERADEaún funcionarían):

iptables -t nat -A POSTROUTING -o eth0 -s 10.0.1.0/24 -j SNAT --to-source 192.168.5.8
iptables -t nat -A POSTROUTING -o eth0 -s 10.0.2.0/24 -j SNAT --to-source 192.168.5.8
  • Será necesario configurar DHCP en SRV-01 en eth1 (LAN3, para hosts originalmente en LAN1) y posiblemente también en eth2 (LAN2) si es necesario. (En ambos casos la puerta de enlace será la dirección local de eth1 o eth2 respectivamente, pero eso es evidente :)

Esto hará posible la comunicación entre LAN3 y LAN2 (a través de SRV-01, que es la puerta de enlace predeterminada para ambas). El acceso WAN también funcionará tanto desde LAN3 como desde LAN2 gracias a la NAT de doble fuente.

B. Convertir SRV-01 en un servidor DHCP para LAN1

Este enfoque no es tan claro como el anterior pero es un poco más simple. Se supone que puede desactivar DHCP en el enrutador ISP

  • Deshabilite DHCP en el enrutador ISP
  • Configure DHCP para LAN1 en SRV-01 y haga de SRV-01 (192.168.5.8) la puerta de enlace predeterminada para LAN1
  • Configure la traducción NAT de origen para LAN2 en SRV-01 para que el acceso WAN funcione desde LAN2:

.

iptables -t nat -A POSTROUTING -o eth0 -s 10.0.2.0/24 -d 192.168.5.4 -j SNAT --to-source 192.168.5.8
iptables -t nat -A POSTROUTING -o eth0 -s 10.0.2.0/24 ! -d 192.168.5.0/24 -j SNAT --to-source 192.168.5.8

La primera línea habilita SNAT para que los hosts LAN2 puedan acceder al enrutador ISP y la segunda línea deshabilita SNAT para el acceso LAN2-LAN1.

Nuevamente, este enfoque no es tan claro como el anterior, ya que hay dos enrutadores en la misma subred (SRV-01, enrutador ISP). Cuando utilicé este enfoque, noté que mi segundo enrutador (SRV-01 en este escenario) enviaba redirecciones ICMP al enrutador ISP, ya que veía que el cliente (host en LAN1) y el enrutador ascendente (enrutador ISP) están en el misma LAN. Es posible que esto no sea deseable ya que las políticas de red implementadas en SRV-01 podrían eludirse.

Espero que ayude.

información relacionada