¿Podría prestar su experiencia para comprender cómo configurar la separación del tráfico de red en dos interfaces de red?
Según tengo entendido hasta ahora, las rutas estáticas se usan para el tráfico de red que no está diseñado para usar una puerta de enlace predeterminada. La puerta de enlace predeterminada se usa para todo el tráfico que no está destinado a la red local y para el que no se ha especificado una ruta preferida en una tabla de enrutamiento.
El escenario es el siguiente.
- Cada computadora en la red tiene dos tarjetas de red.
- La interfaz de producción para cada uno es
eth0
(GW = 10.10.10.1). - La interfaz de gestión para cada uno es
eth1
(GW = 192.168.100.1). - El tráfico de producción y gestión debe estar totalmente separado.
He publicado, a continuación, qué cosas he probado con Debian Wheezy. Y mi problema es que, aunque tengo hosts configurados de tal manera que se comunican en ambas interfaces, los hosts individuales parecen "escuchar" el tráfico en la interfaz incorrecta. Por ejemplo:
Anfitrión 140
eth0 Link encap:Ethernet HWaddr 08:00:27:d1:b6:8f
inet addr:10.10.10.140 Bcast:10.10.10.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fed1:b68f/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1341 errors:0 dropped:0 overruns:0 frame:0
TX packets:2530 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:641481 (626.4 KiB) TX bytes:241124 (235.4 KiB)
eth1 Link encap:Ethernet HWaddr 08:00:27:ad:14:b6
inet addr:192.168.100.140 Bcast:192.168.100.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fead:14b6/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:7220 errors:0 dropped:0 overruns:0 frame:0
TX packets:5257 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:602485 (588.3 KiB) TX bytes:1022906 (998.9 KiB)
Desde el host 140, que ejecuta este comando: tcpdump -i eth0
. En una sesión separada en el host 140, ejecuto ping 192.168.100.50
.
19:17:29.301565 IP 192.168.100.140 > 192.168.100.50: ICMP echo request, id 1400, seq 10, length 64
19:17:30.301561 IP 192.168.100.140 > 192.168.100.50: ICMP echo request, id 1400, seq 11, length 64
19:17:31.301570 IP 192.168.100.140 > 192.168.100.50: ICMP echo request, id 1400, seq 12, length 64
19:17:32.301580 IP 192.168.100.140 > 192.168.100.50: ICMP echo request, id 1400, seq 13, length 64
¿Por qué veo el resultado anterior activado eth0
? Creo que solo debería ver el tráfico para 10.10.10.140. También veo esto eth1
, como se esperaba:
19:18:47.805408 IP 192.168.100.50 > 192.168.100.140: ICMP echo request, id 1605, seq 247, length 64
Si hago ping desde el Host 50 (los mismos ifconfig
resultados, solo un último quad diferente), entonces eth0
estoy en silencio y veo el eco ICMP activado eth1
, como se esperaba.
Me gustaría entender cómo configurar cada interfaz para manejar solo el tráfico del que es responsable en dos variedades principales de Linux. Creo que ya casi estoy allí, pero me falta algo que parece que no puedo encontrar.
- Debian Wheezy (7.x) o Debian Jessie (8.x)
- Enterprise Linux (6.x) (RedHat / CentOS / Scientific / Oracle).
Sé que una solución para Debian debería ser buena tanto para Wheezy como para Jessie, y que una solución para un EL debería ser la misma para todas las versiones de EL 6.x. Me gustaría evitar usar un script RC para ejecutar comandos, optando por usar los archivos de configuración.
En Debian, los archivos de configuración relevantes que conozco son:
/etc/network/interfaces
En EL 6.x, los archivos de configuración relevantes que conozco son:
/etc/sysconfig/network
/etc/sysconfig/network-scripts/ifcfg-eth0
/etc/sysconfig/network-scripts/ifcfg-eth1
/etc/sysconfig/network-scripts/route-eth0
/etc/sysconfig/network-scripts/route-eth1
/etc/sysconfig/network-scripts/rule-eth0
/etc/sysconfig/network-scripts/rule-eth1
Mi /etc/network/interfaces
archivo "Jessie" de Debian 8 :
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
# Production interface
auto eth0
allow-hotplug eth0
iface eth0 inet static
address 10.10.10.140
netmask 255.255.255.0
gateway 10.10.10.1
# Management interface
auto eth1
allow-hotplug eth1
iface eth1 inet static
address 192.168.100.140
netmask 255.255.255.0
Creo que netstat -anr
podría ilustrar el problema:
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 10.10.10.1 0.0.0.0 UG 0 0 0 eth0
10.10.10.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.100.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.100.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
iptabels -L -t nat