Redirecionamento ICMP: como testá-lo com icmpush

Redirecionamento ICMP: como testá-lo com icmpush

Quero ver como a tabela de roteamento muda em um sistema Linux, quando um redirecionamento ICMP é recebido. Para isso eu uso

icmpush -v red -sp current-gateway -gw new-gateway -dest google.com -c host -prot tcp my-eth1-ip-address

(que retorna sucesso), mas o resultado de

route -n 

continua o mesmo. Claro que verifiquei a saída de

cat /proc/sys/net/ipv4/conf/eth1/accept_redirects

que é 1. Esta é uma máquina Ubuntu 12, com a última versão estável do kernel, sem firewall instalado.

Então a pergunta: o que poderia estar errado?

Responder1

De acordo comDocumentação/rede/ip-sysctl.txt, por padrão, os redirecionamentos são aceitos apenas para os gateways que já estão listados na tabela de roteamento.

redirecionamentos_seguros - BOOLEAN
    Aceite mensagens de redirecionamento ICMP apenas para gateways,
    listado na lista de gateway padrão.
    secure_redirects para a interface será habilitado se pelo menos um dos
    conf/{all,interface}/secure_redirects está definido como TRUE,
    ele será desativado caso contrário
    padrão VERDADEIRO

Responder2

Uma suposição: a chamada de icmpushnão usa a interface externa eth1, mas sim a localhost lopara que o kernel não reconheça que se trata de um redirecionamento correto do gateway. Além disso, em versões muito antigas do kernel Linux essas rotas não eram exibidas na resposta do route -n. Como observei, a resposta de route -nCpoderia ser a forma correta de incluir também a rota de redirecionamento temporário.

@grawity, sobre aceitar redirecionamentos enviados em resposta a outro pacote: você leu isso em algum lugar? porque eu estaria realmente interessado nisso.

informação relacionada