Algo muy común cuando administramos servidores es re-direccionar tráfico.
Supongamos que tenemos un servidor con determinados servicios funcionando. Y queremos migrar o probar en producción una nueva versión que va en un nuevo servidor (por ejemplo porque estamos migrando de tecnología o de versión de servidor, etc…) , pero que sea muy fácil volver a la versión vieja ante cualquier problema no detectado en periodo de test.
Lo normal y más frecuente sería simplemente cambiar la IP en el registro DNS, no obstante si alguien estaba usando la IP en vez del sub-dominio se verá afectado.
¿Cómo empezamos?
Lo primero será que debemos tener habilitado el forwarding en el servidor, para ello pondremos lo siguiente:
echo "1" > /proc/sys/net/ipv4/ip_forward
CentOS:
sysctl net.ipv4.ip_forward=1
Luego reiniciaremos la red:
service networking restart
CentOS sería:
service nertwork restart
Ahora ya se puede redireccionar:
iptables -t nat -A PREROUTING -p tcp --dport <puerto receptor> -j DNAT --to-destination <ip final>:<puerto de ip final>
Supongamos que deseamos re-direccionar todo el tráfico que recibe nuestro servidor por el puerto 8080 hacia otro servidor (ej.: 10.2.3.3), que igual recibirá ese tráfico por el 8080 (pues se trata del mismo servicio):
10.2.3.3iptables -t nat -A PREROUTING -p tcp --dport 8080 -j DNAT --to-destination
:8080
El servidor 10.2.3.3 verá que todos los paquetes o peticiones vienen desde la IP del cliente, en caso de que quieran natear las peticiones, o sea, que el 2º servidor vea que las peticiones llegan con la IP del 1er servidor, sería poner además esta segunda línea:
iptables -t nat -A POSTROUTING -j MASQUERADE
Otras opciones
Re-direccionar el tráfico que viene de una IP específica:
iptables -t nat -A PREROUTING -s 10.2.3.85 -p tcp --dport 8080 -j DNAT --to-destination
10.2.3.3
:8080
Re-direccionar el tráfico de un segmento de red:
iptables -t nat -A PREROUTING -s 10.2.3.0/24 -p tcp --dport 8080 -j DNAT --to-destination
10.2.3.3
:8080
Re-direccionar el tráfico que llegue por una interfaz específica:
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 8080 -j DNAT --to-destination
10.2.3.3
:8080
0 comentarios