Tengo un sistema que tiene dos interfaces de red con diferentes direcciones IP, las cuales están en el rango de direcciones públicas (aunque a través de NAT en el caso de la primera) y las dos tienen diferentes puertas de enlace. (Larga historia, es para fines de prueba)
El problema es que en este momento, si trato de hacer ping a la dirección en la segunda interfaz, la ruta predeterminada señala a través de la primera interfaz, y nunca llega correctamente.
¿Es posible asegurarse de que las respuestas siempre se envían a través de la misma interfaz de red (y con la misma IP de origen) en el momento en que entraron? Y si es así, ¿cómo?
debian
networking
ipv4
Shadur
fuente
fuente
Respuestas:
Estás malinterpretando el problema. No todos los paquetes son una respuesta y no todos los paquetes se pueden combinar con algún otro paquete de modo que tenga sentido "la misma interfaz de red en la que entraron". Lo que desea hacer es seleccionar la puerta de enlace para un paquete en función de su dirección IP de origen.
Esto se denomina enrutamiento basado en el origen o enrutamiento de políticas. Puede hacerlo con una regla simple
iptables
, pero la mejor manera es configurar dos tablas de enrutamiento, una para cada dirección de origen público:Primero, cree dos tablas (Reemplace <NAME1> y <NAME2> con nombres sensibles para sus dos proveedores, lo mismo con IP1, DEV1, etc.):
Agregue una puerta de enlace a cada tabla de enrutamiento (si es necesario):
Luego una ruta predeterminada:
Luego, las reglas para seleccionar la tabla de ruta en función de la dirección de origen:
Consulte Enrutamiento para múltiples enlaces ascendentes / proveedores para obtener más detalles.
fuente
La respuesta de David Schwartz es excelente, pero puede simplificar un poco las reglas de enrutamiento al tener solo una tabla adicional y usar su ruta predeterminada para la otra. Tengo un servidor que está detrás de dos puertas de enlace NAT, y recientemente pasé por el proceso de recrear ese escenario entre un montón de máquinas virtuales. Mi
/etc/network/interfaces
aspecto es este:(esto es para una configuración donde los dos ISP son Optus y iiNet, de ahí el nombre de la tabla de 'optus')
Esto, más la línea para
/etc/iproute2/rt_tables
crear la tabla, debería ser todo lo que necesita. Tendrás dos direcciones IP; el tráfico de 192.168.13.13 saldrá a través de 192.168.13.11, y el tráfico de 192.168.13.213 saldrá a través de 192.168.13.10. Configure esas dos puertas de enlace para hacer su reenvío de puertos de manera adecuada (192.168.13.11 reenvía cosas a 192.168.13.13 y 192.168.13.10 reenvía cosas a 192.168.13.213), y el resto debe hacerse cargo de sí mismo.Es posible que necesite modificar un poco las cosas para su situación, ya que está utilizando IP públicas directamente, pero algo como esto debería funcionar. Además, es mucho más fácil hacer estas cosas
/etc/network/interfaces
y luego administrar git ese archivo, en lugar de tratar de recordar cómo lo configuró, ¡dos años después, cuando el sistema debe reiniciarse!fuente
Ejemplo de red dual
Este ejemplo muestra cómo un adicional
eth1
con10.130.0.2
máscara de red255.255.255.255
y la puerta de enlace10.130.0.1
pueden estar disponibles para los servicios que se unen a ella comoping -I eth1 8.8.8.8
Técnicamente somos:
fuente