Encaminhando o ICMP sobre um servidor sem redirecionamentos

1

Eu preciso testar características de rede como o RTT em uma rede, por exemplo, usando pings ICMP.

Essa pergunta é especial, pois quero forçar cada pacote em um servidor que precisa funcionar como um roteador, mas não pode propor redirecionamentos. Mas exatamente isso não é possível, em vez disso, eu sempre perco as conexões entre os hosts.

A rede foi configurada (em "ip route" / tabelas de roteamento) para primeiro passar todos os pacotes para um servidor (IP: 10.0.0.4) que, em seguida, envia de volta para o gateway (IP: 10.0.0.1). Do gateway, ele é roteado para o host correto (IP: 10.0.0.5 - 10.0.0.255).

No futuro, esse cenário permitirá que um servidor altere todos os pacotes na rede.

Para simplificar o cenário, apenas dois hosts são configurados (10.0.0.5 e .6). Os hosts são então configurados com a seguinte tabela de roteamento (mostrada para 10.0.0.5):

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         10.0.0.1        0.0.0.0         UG    0      0        0 ens3
10.0.0.0        *               255.255.255.0   U     0      0        0 ens3
host-10-0-0-6.o host-10-0-0-4.o 255.255.255.255 UGH   0      0        0 ens3

Para o servidor 10.0.0.4, a tabela de roteamento é a seguinte:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         10.0.0.1        0.0.0.0         UG    0      0        0 ens3
10.0.0.0        *               255.255.255.0   U     0      0        0 ens3

Os iptables estão completamente vazios neste momento para todos os dispositivos. Além disso, para permitir o encaminhamento de IP, o servidor foi configurado com / proc / sys / net / ipv4 / ip_forward = 1

Com essa configuração eu posso facilmente fazer ping entre os dois hosts, a saída é a seguinte (para o host 10.0.0.6):

# ping 10.0.0.5
PING 10.0.0.5 (10.0.0.5) 56(84) bytes of data.
From 10.0.0.4: icmp_seq=1 Redirect Host(New nexthop: 10.0.0.5)
64 bytes from 10.0.0.5: icmp_seq=2 ttl=64 time=0.441 ms
64 bytes from 10.0.0.5: icmp_seq=3 ttl=64 time=0.405 ms

O problema é o redirecionamento de ICMP que os servidores enviam imediatamente. Com isso, todos os pacotes de ping não passam mais pelo servidor.

Eu tentei muitas coisas, incluindo alterar o iptable para soltar redirecionamentos e alterar o arquivo sysctl.conf com net.ipv4.conf.all.accept_redirects = 0 e net.ipv4. conf.all.send_redirects = 0 (respectivamente para a interface ... conf.ens3 ....)

O problema é que toda vez que eu desabilito os redirecionamentos, o ping não é mais possível (perda de pacotes de 100%).

Como posso fazer isso (supostamente ser) um trabalho de cenário simples, que significa: Como posso rotear todos os pacotes toda vez em um servidor e voltar?

    
por Len 09.04.2017 / 20:19

1 resposta

1

Você precisa evitar que BOTH o servidor e o roteador do ICMP ENVIANDO redirecionem para o host de origem.

Se for um roteador cisco, "nenhum redirecionamento de IP" fará isso.

No servidor, depende do seu sabor linux, este link tem informações para todos os tipos e formas de Desativar Redirecionamentos ICMP no Linux link

    
por 28.06.2017 / 17:52