HIGH AVAILABILITY WAN/LAN – PFSENSE

CENÁRIO

PRÉ-REQUISITOS

Use mesma versão do pfsense nos firewalls. Não sei nas mais atuais, mas já vi casos de versões diferentes serem um problema para funcionar corretamente a alta disponibilidade.

CONFIGURANDO INTERFACES

No firewall principal as interfaces foram configuradas como abaixo:

  • WAN: 192.168.0.52 /24 gateway 192.168.0.1
  • LAN: 192.168.1.2 /24
  • CARP: 172.16.0.2 /29

No firewall secundário como abaixo:

  • WAN: 192.168.0.53 /24 gateway 192.168.0.1
  • LAN: 192.168.1.3 /24
  • CARP: 172.16.0.3 /29

RULES

Em cada firewall vá na aba Firewall -> rules, selecione a interface CARP (ou a sua usada para Sincronismo do CARP)

Lembre-se: uma nova interface criada no pfsense como essa CARP por padrão ele irá bloquear qualquer dado que tente passar por ela, por isso é necessário criar uma regra para liberar o que se precisa.

Vamos criar uma regra default liberando tudo, é recomendado liberar apenas o que se precisa( como um protocolo ou porta), no meu caso irei liberar tudo.

Clique no botão Add, e na janela configure:

  1. Action: Pass
  2. Protocolo: any
  3. Source: any
  4. Destination: any
  5. Save

Lembrando que a regra deve ser criada nos dois firewalls.

TESTE COMUNICAÇÃO

No FIREWALL PRINCIPAL, vá na aba Diagnostics -> Ping, digite o IP da interface CARP do firewall secundário afim de testar comunicação entre eles, no meu caso o 172.16.0.3

Caso tenha algum problema com esse teste volte nas opções das regras entre os firewalls e reavalie se está tudo liberado.

CONFIGURANDO HIGH AVAILABILITY

No FIREWALL PRINCIPAL faça conforme abaixo:

Vá na aba System -> High Avail. Sync, deverá mostrar como abaixo.

  1. Synchronize states: marque a caixa. Essa opção ativa a comunicação via protocolo PFSYNC, escuta informações do estado dos firewalls entre outras mensagens.
  2. Synchronize Interface: selecione a interface que será usado para comunicação entre os firewalls, no meu caso a CARP
  3. Pfsync Synchronize Peer IP: o IP do firewall slave(secundário). Força o envio de informações direto para o IP informado, ao invés de usar multicast.

Na mesma janela mais abaixo terá mais opções, configure como abaixo ainda no firewall principal:

  1. Synchronize Config IP: IP do firewall secundário.
  2. Remote System Username: um usuário administrador no pfsense secundário válido, usei admin mas é recomendado criar um usuário apenas para essa configuração de CARP porque caso a senha admin for alterada, aqui no CARP deverá ser alterada também e por segurança claro.
  3. Remote System Password: senha do usuário acima.
  4. Select options to sync: configurações que serão sincronizadas entre os firewalls, no meu caso selecionei tudo.
  5. Clique em save.

No FIREWALL SECUNDÁRIO, vá também na aba System -> High Avail. Sync, configure apenas as duas opções como abaixo:

CONFIGURANDO VIRTUAL IPs

O Virtual IP também chamado de VIP, como o nome diz é um IP Virtual que é usado por um ou mais hosts, ou seja este IP tanto estará num host quanto num outro. Para entender melhor, no nosso cenário teremos o IP virtual na LAN 192.168.1.1, este IP estará nos nossos dois firewall, apenas 1 responderá pelas requisições enquanto for MASTER, o firewall de BACKUP responderá por esse IP Virtual apenas quando o MASTER(firewall principal) estiver indisponível. Teremos ainda um IP virtual na WAN.

No FIREWALL PRINCIPAL, vá aba Firewall -> Virtual IPs, em seguida clique no botão verde ADD como abaixo

Em seguida preencha como abaixo:

  1. Type: CARP
  2. Interface: nesse caso será WAN
  3. Address: entre com o IP que será o IP virtual para a WAN do seu projeto, no meu caso 192.168.0.50 e a máscara do lado( muito importante não esquecer)
  4. Virtual IP Password: uma senha qualquer para o IP virtual, não confunda com a senha do admin do pfsense, não é esse o caso pode até ser a mesma mas não estão relacionadas.
  5. VHID Group: deixe o padrão que será 1, perceba apenas se quando criar o IP virtual para a LAN será 2, porque deve seguir sequencia.
  6. Advertising frequency: deixe padrão, servirá para definir o master e backup firewall, será alterado apenas no firewall secundário
  7. Description: dê uma descrição, siga as boas práticas.
  8. Clique em Save

Depois de salvar, crie mais uma VIP como a de cima, porém altere para LAN a interface e altere o Address conforme seu projeto, no meu caso foi 192.168.1.1.

No FIREWALL SECUNDÁRIO, crie os dois VIP como acima criados, mas altere apenas a opção Advertising frequency, especificamente em Skew onde tiver 0 coloque 1, assim definimos que ele terá uma preferencia mais baixa no CARP sendo assim o firewall de backup (secundário).

Observe que a configuração de IP Virtual dessa seção é a mesma para os dois firewall, mudando apenas algumas coisas, mas IP e Mask iguais.

STATUS

Na aba Status -> CARP(failover), você terá uma visão geral do status do firewall, acesse em cada um e valide se o master é quem deveria ser e de backup também.

TROUBESHOOTS

Se obter nas notificações do pfsense a mensagem abaixo, verifique o usuário e senha configurados em System -> High Avail. Sync

Authentication failed: not enough privileges

Em testes desse cenário em VirtualBox, tive problemas também com as interfaces, da LAN eu não pingava para o VIP, então coloquei todas as interfaces em modo promiscuo.

Para mais troubeshoots acesse aqui.

FONTE

https://docs.netgate.com/pfsense/en/latest/highavailability/troubleshooting-high-availability-clusters.html

Marcado com