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: