Definição de 'send_redirect' no contexto Linux IPv4

Definição de 'send_redirect' no contexto Linux IPv4

Encontrei essas duas linhas em um script:

echo "1" > /proc/sys/net/ipv4/ip_forward/
echo "0" > /proc/sys/net/ipv4/conf/eth0/send_redirects

A primeira linha ativa o encaminhamento de IP, o que faz minha máquina funcionar como um roteador.

Eu gostaria de entender exatamente o que a segunda linha faz. Ele desliga send_redirectsna interface eth0, mas o que isso significa? O que há send_redirectneste contexto?

Responder1

'ip_forward' serve para habilitar o encaminhamento de pacotes para IPv4.

'Enviar redirecionamentos' será habilitado somente se o nó atuar como um roteador. Ou seja, um host não deve enviar uma mensagem de redirecionamento ICMP. É usado por roteadores para notificar o host sobre um caminho de roteamento melhor disponível para um destino específico. Depois disso, o host atualiza a entrada do cache de rota e encaminha os pacotes subsequentes diretamente pelo caminho/rota ideal sugerido por meio da mensagem de redirecionamento ICMP.

No entanto, este mecanismo de atualização de informações de roteamento é arriscado e é uma preocupação para a comunidade de segurança, pois os redirecionamentos ICMP podem ser adulterados/falsificados por software malicioso/atacante para redirecionamento para o caminho desejado.

Consulte RFC 1122 (Seção 3.3.1 e apêndice A) para obter mais detalhes e cláusulas como 'Uma mensagem de redirecionamento DEVE ser descartada silenciosamente se o novo endereço de gateway especificado não estiver na mesma (sub) rede conectada por meio da qual o redirecionamento chegou ou se a origem do redirecionamento não for o gateway de primeiro salto atual para o destino especificado'

Responder2

Os redirecionamentos acontecem quando você tem vários roteadores na mesma LAN. Por exemplo, digamos que temos uma rede com um host e dois roteadores. O host pode enviar um pacote para o roteador A e o roteador A pode então precisar enviar esse pacote pela mesma LAN para o roteador B porque sua tabela de roteamento determina isso. O roteador A pode então enviar uma mensagem de redirecionamento ao host para informá-lo de que seria mais eficiente se enviasse pacotes para aquele destino específico diretamente ao roteador B.

Quando você desliga, send_redirectseu roteador não envia essas mensagens de redirecionamento.

informação relacionada