Encontré estas dos líneas en un script:
echo "1" > /proc/sys/net/ipv4/ip_forward/
echo "0" > /proc/sys/net/ipv4/conf/eth0/send_redirects
La primera línea activa el reenvío de IP, lo que hace que mi máquina actúe como un enrutador.
Sin embargo, me gustaría entender exactamente qué hace la segunda línea. Se apaga send_redirects
en la interfaz eth0
pero ¿qué significa eso? ¿Qué hay send_redirect
en este contexto?
Respuesta1
'ip_forward' es para habilitar el reenvío de paquetes para IPv4.
'Enviar redirecciones' está habilitado solo si el nodo actúa como enrutador. Es decir, un host no debe enviar un mensaje de redireccionamiento ICMP. Los enrutadores lo utilizan para notificar al host sobre una mejor ruta de enrutamiento disponible para un destino en particular. Después de esto, el host actualiza la entrada de la caché de ruta y reenvía los paquetes posteriores directamente a través de la ruta/ruta óptima sugerida mediante el mensaje de redireccionamiento ICMP.
Sin embargo, este mecanismo de actualización de información de enrutamiento es riesgoso y es una preocupación para la comunidad de seguridad, ya que las redirecciones ICMP pueden ser manipuladas/falsificadas por software/atacante malicioso para redirigirse a la ruta deseada.
Consulte RFC 1122 (sección 3.3.1 y apéndice A) para obtener más detalles y cláusulas como 'Un mensaje de redireccionamiento DEBE descartarse silenciosamente si la nueva dirección de puerta de enlace que especifica no está en la misma (sub)red conectada a través de la cual se realiza el redireccionamiento. llegó o si la fuente de la redirección no es la puerta de enlace de primer salto actual para el destino especificado'
Respuesta2
Los redireccionamientos ocurren cuando tienes varios enrutadores en la misma LAN. Por ejemplo, digamos que tenemos una red con un host y dos enrutadores. El host podría enviar un paquete al enrutador A y el enrutador A podría necesitar enviar ese paquete a través de la misma LAN al enrutador B porque su tabla de enrutamiento se lo indica. Luego, el enrutador A puede enviar un mensaje de redireccionamiento al host para informarle que sería más eficiente si enviara el paquete para ese destino específico directamente al enrutador B.
Cuando apaga send_redirect
su enrutador no enviará dichos mensajes de redireccionamiento.