Tráfego UDP de encaminhamento de keepalived para um nó via NAT

2

Estou tendo problemas com o balanceamento de carga do Syslog do UDP para os nós de cluster do Graylog. No começo, tudo parecia funcionar normalmente, mas parece que o tráfego está fluindo em 99% para um dos dois nós.

Eu tenho dois servidores Ubuntu (18.04) executando o Keepalived 1.3.9. Eles compartilham o IP virtual que é compartilhado via VRRP. Eles estão usando o NAT para encaminhar o tráfego para os servidores reais com base no round robin.

global_defs {
 notification_email {
     redacted@mail
   }
   notification_email_from severname-redacted
   smtp_server mailsever.redacted
   smtp_connect_timeout 30
   router_id servername
}

vrrp_instance VI_1 {
  state MASTER
  interface ens160
  virtual_router_id 216
  priority 200
  advert_int 1
  preempt_delay 30
  virtual_ipaddress {
    10.18.242.216
  }
  notify /usr/local/bin/vrrp_state.sh
}

virtual_server 10.18.242.216 10514 {
  delay_loop 2
  protocol UDP
  lb_algo rr   # round robin
  lb_kind NAT   # NAT

  real_server 10.18.242.214 10514 {
    weight 1
    HTTP_GET {
      url {
        path "/api/system/lbstatus"
        status_code 200
      }
      connect_timeout 3
      connect_port 9000
    }
  }

  real_server 10.18.242.213 10514 {
    weight 1
    HTTP_GET {
      url {
        path "/api/system/lbstatus"
        status_code 200
      }
      connect_timeout 3
      connect_port 9000
    }
  }
}

O balanceador de carga secundário está usando a mesma configuração, exceto a prioridade que é 100.

O failover entre os balanceadores de carga está funcionando como esperado, mas ambos parecem encaminhar o tráfego apenas para o primeiro nó do Graylog:

oot@redacted-lb1:~# ipvsadm -L -n --rate
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port                 CPS    InPPS   OutPPS    InBPS   OutBPS
  -> RemoteAddress:Port
UDP  10.18.242.216:10514                 0       57        0    16581        0
  -> 10.18.242.213:10514                 0       67        0    19666        0
  -> 10.18.242.214:10514                 0        0        0        0        0

Como você pode ver, não há tráfego para o nó Graylog secundário, mesmo que o peso seja igual e usemos round robin. Alguma solução de problemas que não funcionou:

  • Removendo o primeiro nó dos balanceadores de carga, você vê o tráfego ainda chegando ao LB, mas não é encaminhado ao nó do Graylog
    • Alterar o peso não parece ter efeito
    • Reiniciando todos os servidores
    • Fazendo todos os mesmos testes no LB secundário ao encerrar o LB1.

Os nós Graylog estão funcionando bem e são quase idênticos na configuração. Você pode enviar o syslog para ambos diretamente para que eles não pareçam ser o problema.

    
por Robert 05.10.2018 / 13:34

0 respostas