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

Bonding + enrutamiento + samba



Hola a todos.

En mi colegio mayor tenemos una red interna formada por dos subredes, la 10.1.5.0/24, que tiene salida a internet y es donde están los servidores, y la 10.1.7.0/24, que es donde están los ordenadores de los colegiales (unos 250). Ambas subredes están unidas por un router debian linux con cuatro tarjetas de red. Dos de ellas (eth1 y eth3) están en la subred 10.1.7.0/24 formando una sola interfaz bond0 mediante bonding, y las otras dos (eth0 y eth2) están en la otra subred, con la siguiente regla de iproute2:

 ip rule add to 10.1.5.5 table servidores
 ip route add dev eth2 table servidores
 ip route flush cache

cuyo objetivo es obligar que todo el tráfico con destino la ip 10.1.5.5 (un servidor ftp), pase por la interfaz eth2. El tráfico con destino internet no pasa por la eth2 porque en el /etc/network/interfaces no puse la opción "gateway" para la interfaz eth2, y sí la puse para la eth0.

Y aquí van las preguntas:

1: Lo que buscaba inicialmente es que todo el tráfico entre la red 10.1.5.0 y la 10.1.7.0 pasase por la eth2, y el resto del tráfico, que es entre internet y la red 10.1.7.0, pasase por la eth0. ¿Cómo puede hacerse esto? Lo he intentado usando únicamente las siguientes reglas de NAT:

 iptables -t nat -A POSTROUTING -o eth2 -s 10.1.7.0/24 -d 10.1.5.0/24 -j SNAT --to-source 10.1.5.3
 iptables -t nat -A POSTROUTING -o eth0 -s 10.1.7.0/24 -d ! 10.1.5.0/24 -j SNAT --to-source 10.1.5.4

Y, efectivamente, todo el tráfico entre internet y la 10.1.7.0 pasa por la eth0, pero el tráfico entre la 10.1.5.0 y la 10.1.7.0 no sale por ninguna interfaz.

2: Samba ha dejado de funcionar, el servidor están en el mismo ordenador que enruta. Antes servía en la red 10.1.7.0 perfectamente, así que añadí los siguientes parámetros:

 interfaces = bond0 eth1
 bind interfaces only = yes

Pero aún así no funciona, un nmblookup -M SANJUAN (SANJUAN es el workgroup) desde el servidor devuelve el servidor correctamente:

 querying SANJUAN on 10.255.255.255
 10.1.7.1 SANJUAN<1d>

pero desde cualquier cliente devuelve lo siguiente: 

 querying SANJUAN on 10.1.7.255
 name_query failed to find name SANJUAN#1d

¿Alguna idea? Muchas gracias por adelantado.

Eduardo Fernández



Reply to: