Soporte Linux
10
abr
2009

Como redireccionar el trafico a una nueva IP con IPtables

  • Sigue a Vensign en Twitter
  • Digg Esto!
  • Compartelo en Facebook
  • Compartelo en Buzz
Visto 3.225 veces | 3 Comentarios | Imprimir Imprimir
Muchas veces nos pasa que cuando migramos un servidor o una aplicación a un nuevo servidor cambia la dirección IP y ya sea porque nuestros servidores DNS aún apuntan a la vieja dirección o nuestros clientes no han actualizado la IP en sus PC todavía apuntan al viejo servidor. En este tutorial vamos a ver en 3 pasos sencillos como redireccionar el tráfico de nuestra red a una nueva IP utilizando IPtables con las reglas de NAT. Les recuerdo que para ejecutar estos comandos necesitan tener privilegios de administrador (root). En caso que utilices Ubuntu debes colocar sudo al principio de cada comando. Voy a suponer que no tienes echa ninguna regla en la tabla nat que afecte el PREROUTING o el POSTROUTING. Vamos a comenzar

1. Habilitar el IP Forwarding

El IP Forwarding sirve para darle capacidad de Router a nuestro servidor es decir que pueda recibir y reenviar los paquetes por una o varias interfaces, ya sea que realice una transformación de dichos paquetes o no. Para esto solo tenemos que ejecutar el siguiente comando:
echo "1" > /proc/sys/net/ipv4/ip_forward
También podemos ejecutar:
sysctl net.ipv4.ip_forward=1
Luego de esto tenemos que reniciar nuestro servicio de red ejecutando:
/etc/init.d/networking restart
Nota: En algunas distribuciones es network y no networking También puedes ejecutar en algunas distribuciones como Fedora, CentOS, RedHat:
service network restart

2. Crear reglas en IPtables

Voy a suponer que la dirección IP del servidor viejo es 5.5.5.5 y la queremos redireccionar a la IP nueva 7.7.7.7 con el puerto 9999.
iptables -t nat -A PREROUTING -p tcp --dport 9999 -j DNAT --to-destination 7.7.7.7:9999
Esta primera regla redirecciona todo lo que entre por el puerto TCP 9999 a la dirección 7.7.7.7 puerto 9999 esta es una regla de PREROUTING que afecta a la tabla nat (-t nat) de IPtables. Si quisieras redireccionarlo a un puerto diferente solo tienes que cambiar 7.7.7.7:#puerto al que quieras, también tienes que estár pendiente si el puerto es tcp o udp. La segunda regla es para enmascarar la dirección IP, de modo que el servidor nuevo va a ver como si todas las peticiones vienen de la IP 5.5.5.5:
iptables -t nat -A POSTROUTING -j MASQUERADE

3. Listo

Ya puedes probar que tus reglas están funcionando, con una PC que apunte al viejo servidor prueba que te responde el nuevo servidor, puedes hacer un tracert. Tambien puedes hacer un tcpdump en el nuevo servidor y ver que todas las peticiones están llegando del viejo servidor.

Otras opciones

Puedes modificar la regla de PREROUTING para otros casos por ejemplo: Redireccionar el tráfico que viene de una IP específica:
iptables -t nat -A PREROUTING -s 10.1.1.15 -p tcp --dport 9999 -j DNAT --to-destination 7.7.7.7:9999
Redireccionar el tráfico de un segmento de red:
iptables -t nat -A PREROUTING -s 10.1.1.0/24 -p tcp --dport 9999 -j DNAT --to-destination 7.7.7.7:9999
Redireccionar el tráfico que llegue por una interfaz específica:
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 9999 -j DNAT --to-destination 7.7.7.7:9999
Y cualquier mezcla de los anteriores para más información puedes ver las páginas man de iptables:
man iptables
O ver este tutorial de IPtables muy completo en inglés. Este tutorial está basado en el tutorial How-To: Redirecting network traffic to a new IP using IPtables que está hecho por chantra, con algunas mejoras y cambios. Espero que les sirva cualquier duda o comentario no duden en escribir Saludos Olivers Si quieres recibir notificaciones de cuando se publican nuevos artículos y tutoriales en Vensign por favor subscribete a nuestro boletín RSS.

Otros artículos que te pueden interesar

  1. Como cambiar y recuperar la clave en un servidor MySQL En este mini tutorial les voy a explicar como pueden...
  2. Como configurar un Host Virtual en Apache basado en Nombre En este tutorial vamos a ver como configurar un Host...
  3. Como instalar WebDav en Ubuntu paso a paso En este paso a paso aprenderemos como instalar WebDav en...
  4. Instalar y configurar OpenSIPS 1.4.3 Actualización: Se actualizó este tutorial a la versión 1.4.3 que...
  5. Como instalar un Servidor DHCP en Ubuntu   Un servidor DHCP asigna dinámicamente direcciones IP a las...

Creative Commons License
Este trabajo está licenciado bajo Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Unported License

Comparte este Artículo!

  • Sigue a Vensign en Twitter
  • Digg Esto!
  • Compartelo en Facebook
  • Compartelo en Buzz

Suscribirse sin comentar

3 Comentarios

  1. Dario says:

    Como redirecciono el trafico entre dos redes con rango ip diferente con iptables para que puedan tener comunicacion entre las dos?

    DIAGRAMA ASI:

    cliente1Linux Iptables1Linux Iptables2cliente2

    que se puedan ver los dos clientes entre si

  2. Arturo says:

    Perfectisimo, me has salvado^^
    muchas gracias y un saludo

Deja tu comentario, duda o sugerencia

Agrega tu comentario, o trackback desde tu sitio web. Tambien puedes Registrarte o ingresar en Vensign para obtener mucho más (volveras a esta página luego de registrarte)

Puedes utilizar el siguiente código HTML:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Este blog soporta Gravatares. Para obtener tu avatar, por favor registrate en Gravatar.

47 queries. 1,418 seconds.