El Sábado, 29 de Marzo de 2008, Salvador Gomez Cabello escribió:
Dispongo de un servidor con 3 tarjetas de red. eth0 la tengo destinada a la red interna. eth1 la tengo destinada a un ADSL de 2Mb eth2 la tengo destinada a un ADSL de 4Mb
Ahora biene mi problema. Quiero que todos los ordenadores salgan hacia internet por eth2 menos un ordenador que quiero que salga por eht1. Dispongo de IP fija en las dos ADSL y los ordenadores en la red interna tienen IP fija tambien.
¿Como puedo hacer esto?
Gracias ante todo.
* Ejemplo para router's en monopuesto, ip_publicas en las tarjetas de los gateways. * Creas las tablas de rutas para los los enlaces Wan ---------- INICIO ---------- echo 200 adsl0 >> /etc/iproute2/rt_tables echo 201 adsl1 >> /etc/iproute2/rt_tables * Creas las rutas correspondientes ip route add ip_red_externa-0/X dev eth0 src ip_publica table adsl0 ip route add default via ip_gateway0 table adsl0 ip route add ip_red_externa-1/X dev eth1 src ip_publica table adsl1 ip route add default via ip_gateway1 table adsl1 ip route add ip_net_externa-0/X dev eth0 src ip_publica ip route add ip_net_externa-1/X dev eth1 src ip_publica * Creas las reglas de enrutado que van a afectar a las tablas ip rule add from ip_publica table adsl0 ip rule add from ip_publica table adsl1 * Creas las reglas para que se enrute por uno u otro sitio dependiendo de las marcas de los paquetes. ip rule add fwmark 1 table adsl0 ip rule add fwmark 2 table adsl1 * Las rutas para todas las redes y enlaces ip route add 192.168.0.0/24 dev eth2 table adsl0 ip route add ip_net_publica-0/X dev eth0 table adsl0 ip route add ip_net_publica-1/X dev eth1 table adsl0 ip route add 127.0.0.0/8 dev lo table adsl0 ip route add 192.168.2.0/24 dev eth2 table adsl1 ip route add ip-net-publica-0/X dev eth0 table adsl1 ip route add ip-net-publica-1 dev eth1 table adsl1 ip route add 127.0.0.0/8 dev lo table adsl1 * limpias la cache de rutas ip route flush cache ------------ FIN -------- * Con iptables marcas los paquetes segun origen para que le sean aplicadas las reglas de enrutado segun tu conveniencia. iptables -A PREROUTING -i ethx -t mangle -s ip_cliente-1 -j MARK --set-mark 1 iptables -A PREROUTING -i ethx -t mangle -s ip_cliente-2 -j MARK --set-mark 2 * lanzas traceroutes en el cortafuegos para ver que las dos wan's funcionan. traceroute -I interfaz -G gateway0 microsoft.com traceroute -I interfaz -G gateway1 microsoft.com * si el primer salto son los gateway's de los isp esta bien, si ok haces las rutas permanentes. ip route show > /etc/sysconfig/network/routes * El fichero tendra un contenido tal que asi ip_net_publica-1/X dev eth0 proto kernel scope link src ip_publica0 ip_net_publica-1/X dev eth1 proto kernel scope link src ip_publica1 192.168.0.0/24 dev eth2 proto kernel scope link src 192.168.0.1 169.254.0.0/16 dev eth0 scope link < --- la ruta standard para dhcp 127.0.0.0/8 dev lo scope link default via ip_gateway_publico0 dev eth0 <--- la ruta por "defecto" si no esta la añades * Te pones en los clientes y empiezas a mandar trafico. * En el cortafuegos tail -f /var/log/firewall y ver que esta marcando el trafico y se esta enrutando segun tus gustos. * Una vez que todo este ok, desde INICIO hasta FIN lo pones en un script, es conveniente trabajar sobre un fichero para evitar errores, asi que verifica los posibles mios que esta hecho de memoria, "comenta" las lineas con echo al principio, ya que las tablas se mantienen en el fichero /etc/iproute2/rt_tables y lo lanzas por ejemplo en ultimo lugar en los init-scripts, o desde otro script de inicio, o a mano , un servidor tampoco se parara a menudo, y siempre podras acceder a el para lanzarlo por una interfaz, por "culpa".de la ruta por defecto. * si en un arranque no te funciona verifica que la ruta por defecto exista y las reglas. ip route show ip rule show