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?