No trabalho, temos um sistema end-to-end que roteamos os pacotes para sair do outro lado e, em seguida, voltamos para onde eles se originaram. Você pode pensar nisso como uma pilha de comunicações normal.
Para testar a taxa de transferência, nos encontramos usando o iperf3 usando dois computadores externos para enviar tráfego para essa pilha. Nós nos encontramos usando três computadores no total porque não conseguimos resolver esse problema de rota, mas acho que deve haver alguma solução que não estamos vendo, já que tenho certeza de que isso aconteceu antes. Eu gostaria de usar apenas uma máquina, se possível.
Digamos que nosso ambiente seja assim:
Onde A é um cliente iperf3, B consiste em vários programas passando pacotes uns para os outros como pacotes ethernet (mantidos como uma caixa preta para simplificar) e C é o servidor iperf3.
Então, para recapitular, eu gostaria que os pacotes viajassem de A, para B, para C, e então de volta para B, e de volta para A.
ParafazerissousandooIperf,euteriaumclienteemAenviandopacotesparaC.
iperf3-c"C"
E eu também configurei um servidor em C usando
iperf3 -s
No entanto, sem nenhuma regra de roteamento neste ponto, esses pacotes irão ignorar B e ir direto entre A e C. Para impedir que isso aconteça, faço uma regra de roteamento para dizer algo como "Direcionar todo o tráfego destinado a C para B ".
route add "C" netmask 255.255.255.255 gw "B"
Além disso, temos que fazer a mesma coisa do outro lado para que o servidor não envie diretamente de volta para o A.
route add "A" netmask 255.255.255.255 gw "B"
Se você ainda não o pegou, isso causará um paradoxo e causará todo o tráfego destinado a A e C a B. Isso significa que quando B estiver processando e quiser enviar os dados para C, ele será processado enviar para si mesmo porque é isso que a tabela de roteamento dita *. Isso também acontecerá na direção oposta.
Alguém sabe alguma maneira de contornar isso? Não tenho certeza se isso pode ser feito com roteamento simples, mas eu não sei muito sobre roteamento para começar então talvez haja um truque para isso?
* Eu não tenho certeza se ele vai continuar enviando para si mesmo (eu não acho que vai, mesmo que isso não vai saber o que fazer com ele pela segunda vez), mas esta sou eu tentando digamos que não funcionará com essa configuração.