[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Dos redes, dos tarjetas, dos puertas de enlace en el mismo servidor Debian



Inicio este hilo después de cientos de pruebas, leer muchos post de
foros y de otras decenas de webs...

Mi situciación actual:

Servidor Debian Wheezy
3 Interfaces de red (eth0, eth1, eth2) de las cuales una es una red
privada que no molesta (eth1)
2 Redes públicas distintas, una en eth0 y otra en eth2
Varias ips configuradas tanto en eth0 como en eth1 de sus respectivas redes
Varios servidores postfix corriendo y configurados cada uno escuchando
una de esas ips

Problema:

Antes solo había una red, varias ips configuradas (en eth0) y varios
postfix configurados por cada una de esas ips, cada postfix salia
internet directamente por su propia ip, comprobando las cabeceras de
los emails enviados se veía que la ip de origen era la correcta en
cada caso.

Se acaba de incluir una nueva tarjeta de red con otro rango de ips
públicas, se ha configurado la nueva interfaz y un puñado de ips
(eth2)

El problema obviamente es que debe haber 2 puertas de enlace, de tal
forma que cada red use la suya, sin nat ni nada por el estilo porque
esas ips deben ser visibles directamente desde internet.

Lo que he intentado:

Después de mucho estudiar, parece claro que:
- hay que crear varias tablas de enrutado con iproute2
- Asignar unas reglas (rules) a dichas tablas por cada red
- con iptables marcar el tráfico que pretende salir por una ip y
aplicar otra regla para que utilice la tabla de enrutado según esté
marcado el paquete.

Con esto pego la configuración (pongo ips de área local para que se
entienda, pero esas ips son falsas)

eth0:
  address 192.168.1.15 192.168.1.16 192.168.1.17 etc.
  gateway 192.168.1.1
eth1:
  address 192.168.100.15 192.168.100.16 192.168.100.17 etc.
  gateway 192.168.100.1

# ip rule show
0: from all lookup local
32762: from all fwmark 0x2 lookup Red100
32763: from all fwmark 0x1 lookup Red1
32764: from 192.168.1.0/24 lookup Red1
32765: from 192.168.100.0/24 lookup Red100
32766: from all lookup main
32767: from all lookup default

# ip route show
default via 192.168.100.1 dev eth0
192.168.1.0/24 dev eth1  proto kernel  scope link  src 192.168.1.15
192.168.100.0/24 dev eth0  proto kernel  scope link  src 192.168.100.15

# ip route show table Red1
default via 192.168.1.1 dev eth1

# ip route show table Red100
default via 192.168.100.1 dev eth0

# iptables -L -t mangle
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination
MARK       tcp  --  192.168.1.0/24       anywhere             MARK set
0x1
MARK       udp  --  192.168.1.0/24       anywhere             MARK set
0x1
MARK       udp  --  192.168.100.0/24     anywhere             MARK set
0x2
MARK       tcp  --  192.168.100.0/24     anywhere             MARK set
0x2

Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination

Pero solo soy capaz de comunicarme mediante la red 192.168.100.0/24
supongo que por esto:
default via 192.168.100.1 dev eth0

¿qué estoy haciendo mal? no debería ser tan difícil, el tráfico que
proviene de x red que tenga su propia puerta de enlace

Muchas gracias, ando muy agobiado ya con este tema... llevo varios días.



Un saludo


Reply to: