Linux IPVS no modo DR: VIP inacessível para o diretor

1

Eu uso o modo de roteamento direto. Como posso disponibilizar o serviço de balanceamento de carga para o diretor (DIR) usando o ip de serviço virtual (VIP)?

Quando tento conectar-me do DIR ao VIP, o Linux (3.2.0) vê que o VIP está vinculado a uma interface local e usa o próprio VIP como endereço de origem.

Tcpdump:

08:47:51.573100 IP VIP.34762 > VIP.ssh: Flags [S]

De acordo com o tcpdump, o pacote não é encaminhado. O Ipvsadm vê uma conexão inativa extra. Mesmo se fosse encaminhado, não importaria, já que o servidor real (RS) não seria capaz de enviar uma resposta, pois não saberia para onde enviá-lo (RS tem o limite VIP para a interface lo).

IMHO, a solução é forçar o DIR a nunca criar pacotes com o VIP como endereço de origem. Ao se conectar ao VIP, ele deve usar o IP DIR como endereço de origem.

No entanto, outro problema pode ser que o IPVS não escute na interface de loopback.

# ip route get VIP
local VIP dev lo  src VIP

Eu poderia usar o iptables para reescrever os pacotes, mas isso parece bastante hackiano.

TIA.

    
por Willem 21.08.2013 / 11:40

0 respostas