Estou tentando usar o TCP Anycast sem protocolos adicionais para conectar um cliente a um dos vários hosts com o mesmo IP anycast.
Minha topologia é a seguinte:
OservidornomeioéumamáquinaUbuntu,fornecendoduasrotasparaoendereçoanycast.
Minhaconfiguraçãoderoteamentomultipath(noroteador)é:
'10.11.12.13protostaticnexthopvia192.168.2.1devenp0s9weight1nexthopvia192.168.3.1devenp0s10weight1'
Oendereçoanycasté10.11.12.13
eéatribuídoaoloopbacklocaldosdoisroteadoresnoladodireito.Noladoesquerdoestáumclientecomoroteadornomeiocomoseugatewaypadrão.
Cenário1:Oroteadornomeioiniciaumasessãotcpcomoendereçoanycastcomodestino.
Cenário2:Oclientenoladoesquerdoiniciaumasessãotcpcomoendereçoanycastcomodestino.
Observação:
Aoiniciarumasessãotcpapartirdoroteador(ubuntulinux),tudofuncionaconformedesejado.OPacoteSYNéencaminhadosobreumdecadasaltocomumaprobabilidadeigual.Quandoumasessãoéestabelecida,todosospacotesdestasessãopassampelomesmosalto,mantendoaconexãoativa(roteamentomultipathbaseadoemfluxobem-sucedido).
Oproblemaocorrenocenário2,quandotentoestabelecerumasessãotcpdoclienteem192.168.1.1/24.Oroteadorsempreencaminhaospacotesparaapenasumdoshosts(aquelecomosufixoIP3.1).Seeulevaraconexãoeth2paraestehost,oroteadorencaminhaospacotesparaosegundohost.Masaocolocareth2novamente,aconexãovoltaparaohostem3.1,levandoaumadesconexãoentreoclienteeohostnosufixo2.1.
Eusópossopostarumlinkdevídeo,entãoaquiestáumvídeomostrandocomoédopontodevistadocliente: link
Observe como o SYN tcp do cliente é sempre encaminhado para o host com o sufixo 3.1 (canto inferior direito).
Terminais:
Roteador: canto superior esquerdo, cliente: canto inferior esquerdo, host 2.1: canto superior direito, host 3.1: canto inferior direito.
Minha versão do kernel é o kernel Linux 4.4.
A sessão tcp é estabelecida usando netcat (servidor) e telnet (cliente).
Alterar o peso dos nexthops também afeta apenas o roteamento do roteador (192.168.1.254 > 10.11.12.13).
Por que o roteador encaminha o pacote SYN diferente, quando o pacote é enviado pelo cliente do que quando é enviado pelo próprio roteador?
Obrigado pela sua ajuda!