El propio kernel de Linux es capaz de rutar paquetes por sus interfaces pero es MUY IMPORTANTE asegurarse de que esté habilitado el IP Forwarding.
Para habilitarlo deberemos hacer lo siguiente:
echo "1" > /proc/sys/net/ipv4/ip_forward
Mediante estos comandos igualaremos el valor de net.ipv4.ip_forward a 1 para que comience a rutar paquetes. Si queremos hacer que este cambio sea persistente a reinicios hay que ejecutar este comando:
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
Además, el propio kernel de Linux intenta protegerse del IP Spoofing mediante la funcionalidad “Reverse path forwarding”. Si esta funcionalidad está habilitada en su modo más estricto, no permitirá tráfico asimétrico. Para configurar el rp_filter (reverse path filter) en modo loose (menos estricto) hay que hacer lo siguiente:
echo 2 > /proc/sys/net/ipv4/conf/default/rp_filter
echo 2 > /proc/sys/net/ipv4/conf/all/rp_filter
echo "net.ipv4.conf.default.rp_filter = 2" >> /etc/sysctl.conf
echo “net.ipv4.conf.all.rp_filter = 2” >> /etc/sysctl.conf
Los dos primeros comandos establecen en valor del “rp_filter” a 2, que equivale a configurarlo en “loose mode”. Los dos últimos comandos son para que la configuración sea a reinicios.
Si quieres profundizar más en este aspecto puedes consultar esta referencias:
http://www.slashroot.in/linux-kernel-rpfilter-settings-reverse-path-filtering