Um pacote de agendamento em LVS e endereço de origem dos pacotes de saída

1

Estou usando o LVS (ipvsadm) no modo NAT para balancear a carga do tráfego UDP para vários "servidores-reais". Estou usando o agendamento de um pacote para que o tráfego proveniente de uma única porta de origem no cliente seja distribuído para diferentes servidores reais.

O que eu vejo, no entanto, é que os datagramas UDP, que se originam nos servidores reais e são enviados de volta para o cliente, têm seu ip / port de origem configurado como o do servidor real, o que confunde o cliente, porque ele espera receber respostas com ip / port de origem correspondentes àquelas, que ele enviou o datagrama original para.

Isso é muito estranho, porque o LVS deve "esconder" os servidores-reais por trás do ip / port virtual.

Parece que, se eu desativar o agendamento de um pacote, o ip / port de origem dos datagramas de saída será reescrito corretamente pelo LVS.

Alguém já encontrou isso? Se sim, qual é o caminho disso?

    
por shylent 20.05.2013 / 08:49

1 resposta

2

Se ainda estiver interessado:

Acredito que o agendamento de um pacote não espera uma resposta do pacote que ele acabou de agendar e, portanto, não armazena informações de conexão. Então, quando a resposta retorna, o LVS não consegue encontrar a conexão e, portanto, não sabe qual IP / porta de origem usar.

Isso parece ser por design. Pesquise aqui por "OPS é implementado para configurações onde não há resposta para o pacote original" e você verá algumas explicações.

link

A solução é definir um tempo limite de persistência para conexões UDP (você pode defini-lo como baixo se você espera respostas rápidas), definindo explicitamente um tempo de conexão. Como você pode fazer isso, não há nenhum ponto para o OPS lembrar de conexões.

    
por 30.08.2013 / 13:58