Keepalived ipv6

April 29, 2016 in #Linux #Centos #Vmware #Keepalived | | | Share on Google+

Keepalived com ipv6

Precisava fazer um HA de uma aplicação em ipv6, usar o ha-proxy não era uma opção, foi considerado a utilização do Nginx para fazer o balanceamento por meio de upstream, só que um IP flutuante era a melhor escolha para o projeto.

Usuario como base o Centos7, precisaremos instalar alguns pacotes e preferencialmente atualizar o SO:

yum update -y
yum install epel-release -y
yum install keepalived -y

Vamos mover o arquivo default de configuração do keepalived:

mv /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.old

Agora iremos criar o novo arquivo de configuração do keepalived, nossa arquitetura utilizara 2 IPs ipv4 e 2 ipv6:

IP das duas maquinas:

  • 10.0.0.2/24
  • 10.0.0.3/24
  • 2604:a880:800:10::1ce:2001/64
  • 2604:a880:800:10::1ce:2001/64

IPs flutuantes definidos para o Keepalived

  • 10.0.0.4/24
  • 10.0.0.5/24
  • 2604:a880:800:10::1ce:2003/64
  • 2604:a880:800:10::1ce:2004/64

vim /etc/keepalived/keepalived.conf

global_defs {
        lvs_id proxyreverse1
}

vrrp_instance VIPIPV61 {
  state BACKUP
  interface eno16777984
  virtual_router_id 54
  priority 75
  advert_int 1
        authentication {
               auth_type PASS
               auth_pass ALGUEMHASHQUEVOCEGERAR
       }


        virtual_ipaddress {

                   10.0.0.4/24
                2604:a880:800:10::1ce:2003/64 dev eno16777984

        }

track_interface{
eno16777984
eno16777984
}
        notify_master "/usr/bin/systemctl restart nginx.service"
        notify_backup "/usr/bin/systemctl restart nginx.service"
        notify_fault  "/usr/bin/systemctl restart nginx.service"

}
vrrp_instance VIPIPV61 {
  state BACKUP
  interface eno16777984
  virtual_router_id 53
  priority 65
 advert_int 1
        authentication {
               auth_type PASS
               auth_pass ALGUEMHASHQUEVOCEGERAR
       }


        virtual_ipaddress {
                10.0.0./24
                2604:a880:800:10::1ce:2004/64 dev eno16777984

        }

track_interface{
eno16777984
eno16777984
}
        notify_master "/usr/bin/systemctl restart nginx.service"
        notify_backup "/usr/bin/systemctl restart nginx.service"
        notify_fault  "/usr/bin/systemctl restart nginx.service"

}

Agora será necessario liberar o protocolo de VRRP, o parametro -i é o nome da minha interface de rede, como estou no vmware o Centos me gerou essa interface gigante:

firewall-cmd --direct --add-rule ipv4 filter INPUT 0 -i eno16777984 -d 224.0.0.0/8 -j ACCEPT
firewall-cmd --direct --perm --add-rule ipv4 filter INPUT 0 -i eno16777984 -d 224.0.0.0/8 -j ACCEPT
firewall-cmd --direct --add-rule ipv4 filter INPUT 0 -p vrrp -i eno16777984 -j ACCEPT
firewall-cmd --direct --perm --add-rule ipv4 filter INPUT 0 -p vrrp -i eno16777984 -j ACCEPT
firewall-cmd --direct --add-rule ipv4 filter OUTPUT 0 -p vrrp -o eno16777984 -j ACCEPT
firewall-cmd --direct --perm --add-rule ipv4 filter OUTPUT 0 -p vrrp -o eno16777984 -j ACCEPT

Reiniciar o firewall-cmd

firewall-cmd --reload

Habilitando e startando o serviço do keepalived

/usr/bin/systemctl enable keepalived.service
/usr/bin/systemctl start keepalived.service

Verifique no arquivo /var/log/messages se a transferencia do IP esta correta:

tail -n40 /var/log/messages

Depois disso o IP flutuante deve estar funcionando.

29 de abril de 2016 09:21

April 29, 2016 in #Linux #Centos #Vmware #Keepalived | | | Share on Google+