Etch con 2 tarjetas red (una para LAN y otra para Internet)
Buenos días, gente.
Hace unos años ya que tengo un servidor IBM Netfinity 5000 corriendo con Sarge (hasta ahora) y como estoy de baja laborar me decidí a trastear para pasar el tiempo e instalar Etch desde 0. Lo tengo en casa para correr MLDonkey y compartir archivos entre el de sobremesa y el portátil.
Además de la tarjeta de red onboard (una AMD a 100) le he instalado una 8169 a 1000Mbps. Aquí vienen los problemas: Las reconoce sin problema alguno, pero me gustaría dejar la de 100 para Internet (eth0) y la de 1000 para LAN (eth1).
La topología es de clase C, y hasta ahora he tenido una red 192.168.0.xxx con puerta de enlace 192.168.0.1, cosa que no querría cambiar para no modificar configuraciones en el de sobremesa, portátil, wii y portátil de algún amigo.
Entonces, por lo que he leido por ahí, tengo que utilizar iptables para hacer los encaminamientos oportunos (además de usar 2 subredes, una 192.168.0.xxx (p.ej. para LAN) y otra 192.168.1.xxx para Internet)). Con esto imagino que tendría que crear una regla para que todos los paquetes que salen o entran de/a eth0 con IP 192.168.1.1 se redirijan al router que es 192.168.0.1
Pero es aquí donde me pierdo sobremanera. Me lío, me lío, pierdo conexiones por doquier y a partir de 0 otra vez.
No pretendo aplicar complicadísimas reglas de firewall ni nada parecido, sólo encaminar el tráfico Internet por eth0 y el de la LAN por eth1.
A ver si podéis echarme un cable, llevo con esto casi una semana y se me están quedando así de estar sentado:

- Inicie sesión o regístrese para enviar comentarios
- 355 lecturas



Por lo que he entendido, ningún equipo depende del IBM para salir a internet, ¿cierto? Entonces no te hace falta tocar iptables: lo que tienes que hacer es modificar su tabla de rutas, para que todo paquete dirigido a la "LAN gigabit" salga por eth1 y, el resto (la otra red privada e internet) salga por eth0.
Para eso, usa el comando route.
Nada, macho. No tengo valor (o lo que sea) a ponerlo a funcionar.
¿Os suena algún link en el que hable de esto? Si estoy seguro que no debe de ser complicado, pero no alcanzo a dar con los parámetros.
Incluso me atrevería a pedir que alguien me pudiese indicar la línea a añadir con route a ejecutar (quizá no deba ser más que una línea.
Podría indicarte las líneas, pero creo que lo bonito es entender qué hacen los comandos, no hacer un copia y pega. ¿Tienes claro lo que es una tabla de rutas?
Busca "enrutamiento linux" en tu buscador favorito (valga la rebuznancia).
segurinformatiloco
Realmente si que necesita al menos enmascarar la red local y activar el ip_forward, no es necesario para nada tocar la tabla de enrutado con una sola red local.
Con estas dos ordenes:
echo 1 >/proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Ya tendrías acceso al reenvío en la red interna (contando con que eth0 es la externa)
No es lo que yo le he entendido.
Pero a ver, gente... ¿Realmente es tan complicado esto que quiero hacer? ¿Sería más sencillo hacer que el debian funcionase como pasarela para todo el tráfico de la red? El problema es que tengo miedo ante un fallo de él que me quede sin acceso al exterior (ya va para 10 añitos).
He llegado a la conclusión leyendo que tendría que ejecutar:
route add -net 192.168.1.0 gw 192.168.0.1 netmask 255.255.255.0 eth0
para indicar a la subred 192.168.1.0 (en la que sólo está el servidor con IP xxx.1) que encaminase todo el tráfico al router (192.168.0.1) por eth0. Pero me responde:
SIOCADDRT: No se puede llegar a la red
Entre lo zoquete que soy y los pocos conocimientos no llego a más.
He llegado a la conclusión leyendo que tendría que ejecutar:
route add -net 192.168.1.0 gw 192.168.0.1 netmask 255.255.255.0 eth0
para indicar a la subred 192.168.1.0 (en la que sólo está el servidor con IP xxx.1) que encaminase todo el tráfico al router (192.168.0.1) por eth0. Pero me responde:
SIOCADDRT: No se puede llegar a la red
Entre lo zoquete que soy y los pocos conocimientos no llego a más.
El problema es que no tienes que indicar nada "a la subred". Tienes que indicárselo a un equipo, en este caso, el IBM.
Lo que acabas de decirle al IBM, con ese comando "route", es más o menos lo siguiente:
"Para todos los paquetes que vayan a la red 192.168.1.0/24, usa el router situado en 192.168.0.1 y déjalo todo en sus manos"
Y ahí es donde se ha liado, porque el pobre no sabe cómo acceder a un equipo situado en 192.168.0.1.
Dejando aparte el 'loopback', tienes tres redes que gestionar:
- La local 192.168.0.0/24 (el "/24" es otra forma de poner "máscara de subred 255.255.255.0")
- La local 192.168.1.0/24.
- El resto de las redes, esto es, internet.
Ergo tienes que decirle, con route, lo siguiente:
- Para todos los paquetes que vayan a 192.168.0.0/24, usa directamente la interface eth0.
- Para todos los paquetes que vayan a 192.168.1.0/24, usa directamente la interface eth1.
- Para el resto de los paquetes, mándaselos al router 192.168.1.1 y deja que él se encargue de enrutarlos a su destino.
El router ya sabe dónde encontrarlo, puesto que le hemos dicho dónde hallarlo con la segunda orden.
Vamos, te lo he dejado mascado :D Pero pregunta lo que quieras, ¿eh?
Geek by nature, Linux by choice, Debian of course.
http://www.esdebian.org/wiki/forwarding-arno-iptables-firewall
y de paso te metes un firewall....
mas fácil imposible.
Esto es lo que he conseguido hasta ahora, que creo que es parte de la historia:
servidor:~# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.0 * 255.255.255.0 U 0 0 0 eth0
localnet * 255.255.255.0 U 0 0 0 eth1
default 192.168.0.1 0.0.0.0 UG 0 0 0 eth1
He terminado por borrar accidentalmente el loopback, o eso creo. Pero imagino que no tendrá que ver con lo que deseo hacer.
Pero hasta aquí he llegado.
También he probado con arno-iptables-firewall creyendo que iba ser algo milagroso pero no ha habido tu tía. Creo que al final optaré por compartir Internet a través del IBM, pero no me entusiasma la idea ante un eventual fallo de éste.
¿Qué red es "localnet"? Mira tu /etc/hosts. Intuyo que será 192.168.1.1. Si es así, está bien.
Pero si el router está en 192.168.1.1, la última línea debería ser
default 192.168.1.1 0.0.0.0 UG 0 0 0 eth1
Con esos dos detalles, ya lo tienes.