Configurar Failover em PfSense

Vamos apresentar um tutorial de como configurar Failover em PfSense. Dessa forma, podemos usar um ou mais links de Internet e quando um link cair o pfsense vai utilizar o segundo link. 

English version: click HERE

As aplicabilidades dessa configuração vão desde a garantir que sua empresa tenha sempre pelo menos um link ativo com a internet. Ou mesmo, uma redundancia mínima de links com internet em caso de falhas de algum provedor de internet. 

Tutorial Failover + Load Balance PfSense

Parte 01: Configurar Failover em PfSense

Parte 02: Configurar Load Balance com PfSense

Atualmente com o aumento do home working, ter uma alternativa de link para poder se manter conectado à Internet se torna essencial. Dessa forma, podemos usar o pfsense para gerencial o uso de diferentes links de Internet.

Por exemplo, poderíamos ter o primeiro link como sendo o provedor padrão de internet e o segundo link sendo o roteamento da internet via rede de celular. Dessa forma, se o link do provedor padrão cair, o pfsense poderia passar a usar o link do provedor da rede de celular.

Livros Indicados:

E-Books de Redes e Segurança

Configurando o cenário de testes

Esta sessão demonstra como criar um cenário de testes para que o leitor possa fazer uma prova de conceito do failover no pfsense.

Caso já tenha um cenário real para uso, pule essa sessão.

Estamos assumindo que já temos uma instalação de pfsense no virtualbox. Caso ainda não tenha, sugiro que faça as etapas descritas no vídeo abaixo: 

Instalar PfSense em VirtualBox

Vamos adicionar uma interface NAT Network no virtualbox. Dessa forma, em nosso cenário de testes teremos duas saídas para a internet, uma pela rede NAT padrão do virtualbox e outra por uma rede NAT network que vamos criar.

 Inicialmente vamos selecionar o menu File do virtualbox e depois Preferences. 

VirtualBox Menu File preferences
VirtualBox Menu File preferences

Depois disso, vamos selecionar Network e vamos clicar no ícone de adicionar.

rtualBox Menu File preferences -> Network
rtualBox Menu File preferences -> Network

Caso não tenha adicionado uma rede NATNetwork antes, será criada sua primeira rede desse tipo.

Agora vamos clicar no ícone de adicionar nova rede NATNetwork novamente. Isso porque, queremos criar uma segunda rede NATNetwork.

Virtualbox NatNetwork
Virtualbox NatNetwork

Para a segunda rede NATNetwork, daremos o nome de “nat2”. Além disso, vamos usar a subrede 172.16.16.0/24. Poderia ser outro range de rede de sua preferência.

(Nota) É importante deixar o suporte DHCP habilitado. Dessa forma, não precisaremos inserir IPs manualmente nas máquinas que usarem essa NATNetwork.

Natnetwork "nat2"
Natnetwork “nat2”

Podemos observar na figura abaixo que temo duas NATNetworks.

NATNetworks
NATNetworks

Configurando a máquina virtual do Pfsense

Agora vamos selecionar a máquina virtual que vamos usar para o pfsense e vamos clicar em Settings.

Virtualbox-> Settings
Virtualbox-> Settings

Depois disso vamos para Network e vamos escolher os tipos de redes que vamos usar nos adaptadores de rede.

No primeiro adaptador de rede (Adapter1) vamos usar a rede NAT padrão do VirtualBox.

Network-Adapter 1
Network-Adapter 1

O segundo adaptador de rede (Adpter2) vamos usar a interface em modo “host-only Adapter”. Dessa forma, poderemos fazer acesso a interface de configuração WEB do Pfsense usando nossa máquina real.

Nota – Lembrando que esse segundo adaptador será usado para LAN. Portanto, se você está acessando seu pfsense de uma outra rede você deve especificar o tipo de rede correto aqui.

Network-Adapter 2
Network-Adapter 2

Em seguida vamos habilitar o terceiro adaptador (Adpter3) de rede e vamos adicioná-lo à Nat Network que criamos recentemente “nat2”.

Network-Adapter 3
Network-Adapter 3

Adicionando a segunda WAN ao Pfsense.

Agora vamos inicar nossa máquina virtual e vamos acessar a interface WEB do pfsense. Em seguida, no menu principal vamos clicar em Interfaces e depois em Assignments.

Interfaces->Assignments
Interfaces->Assignments

Observe que agora temos uma nova possibilidade de interface. Dessa forma, vamos clicar em “+Add”

Interface ADD
Interface ADD

Após clicar em “+Add” vamos ver uma nova interface com o nome “OPT1”. Então vamos clicar em “OPT1” e vamos editar.

Click  OPT1
Click OPT1

Agora, vamos alterar o nome da interface para “WAN 2” e vamos usar a opção de receber IP por DHCP.

Rename to WAN 2
Rename to WAN 2

Agora vamos para o final da página e vamos clicar em “Save”.

Save
Save

Muito bem, agora vamos clicar em “Aplly Changes”. Dessa forma, vamos garantir que as alterações que fizemos sejam aplicadas.

Apply Changes
Apply Changes

Configurando o Failover do PfSense

Agora podemos ver que temos um total de 3 interfaces.

3 interfaces
3 interfaces

Além disso, se formos para a tela inicial do pfsense, vamos ver os IPs de cada interface. Dessa forma, podemos ver na figura abaixo que temos a LAN usando um IP 192.168.56.1 que está sendo usado com a interface host only do virtualbox e a máquina hospedeira.

Depois, temos o IP 10.0.2.15 para a interface que está em NAT. E depois temos o IP 172.16.16.4 para a interface que está em network NAT nat2.

Como resultado, temos agora duas interfaces WAN uma para o 10.0.2.15 e outra para o 172.16.16.4. Dessa forma, estamos emulando nosso cenário para ter dois ISPs diferentes .

Two WANs
Two WANs

Agora vamos clicar em System/ Routing/Gateways. Podemos observar que agora temos 2 gateways, como na figura abaixo.

Two gateways
Two gateways

Agora vamos clicar em Gateway Groups e vamos criar um grupo chamado “Our_failover_rule”. Dentro desse grupo de gateway, vamos estabelecer prioridades na utilização dos gateways. Essa prioridade é obtida usando os “Tiers”. Dessa forma, quanto menor o “Tier” maior será a prioridade de uso.

Em nosso caso estamos usando o “Tier 1” para a “WAN_DHCP”, essa é nossa primeira WAN. Já para a outra “WAN 2”, vamos usar o “Tier 2”. Dessa forma, usaremos a primeira WAN como gateway principal, pois essa tem um “Tier “menor.

Agora precisamos configuar o “trigger Level” para decidir quando será feita a mudança de Gateway. Em nosso caso, vamos usar a opção de “packet loss”. Isso significa que dada uma quantidade de perda de pacotes como por exemplo 20% de perda o gateway será desativado.

Nota- Você pode alterar essas configurações para cada Gateway. Para isso, vamos em “System/Routing/Gateways/Edit” e podemos altear mínimo e máximo de “Packet Loss thresholds”.

Depois de fazer as laterações, vamos clicar em “Save”.

Creating Gateway Groups
Creating Gateway Groups

Na figura abaixo, podemos verificar que o grupo de gateways foi criado. Agora, vamos clicar em ”Aplly Changes” para que as alterações façam efeito.

Apply Changes
Apply Changes

Na figura abaixo, podemos verificar que a primeira WAN (WAN_DHCP) está como gateway principal.

Agora, vamos altear o campo Default gateway IPv4 para o grupo de gateways que nós criamos. Em nosso caso o grupo tem o nome “Our_failover_rule”.

Depois disso, vamos clicar em “Save”.

Default gateway = our failover rule
Default gateway = our failover rule

Mais algumas configurações de Failover do pfsense

Agora, vamos para a página” System->Advanced->Miscellaneous”.

System->Advanced->Miscellaneous
System->Advanced->Miscellaneous

Em seguida, vamos procurar por “gateway Monitoring” e vamos selecionar a opção “Flush all states when a gateway goes down” dentro de “State Killing on Gateway Failure”. Depois vamos para o final da página e vamos clicar em “Save”.

A opção “Flush all states when a gateway goes down” permite que sejam resetados os estados das conexões que estavam usando o gateway que falhou. Dessa forma, isso permite que sejam feitas novas conexões usando o novo gateway que assumiu.

Existe outra opção dentro de Skip rules when gateway is down é a “Do not create rules when gateway is down”. Ao habilitar essa opção, as regras específicas de um gateways serão desconsideradas quando o gateway estiver desabilitado. Isso pode fazer sentido em alguns casos e vai depender do cenário da sua empresa. Nesse tutorial não vamos habilitar essa opção.

Gateway Monitoring
Gateway Monitoring

Testando o failover do pfsense

Agora vamos testar o failover. Para isso, vamos usar o comando traceroute dentro do pfsense. Dessa forma, usando o comando traceroute vamos poder verificar o caminho de saida, ou seja o gateway de saida.

Para fazer os testes, vamos acessar a página “Diagnostics/Traceroute”. Em seguida, vamos inserir um IP para monitorar a saída. Em nosso caso inserimos o IP de nosso último roteador para Internet. No entanto poderíamos fazer o procedimento usando algum IP público também.

Vamos habilitar a opção “Use ICMP” para realizar o teste de forma mais rápida. E em seguida vamos clicar em “Traceroute”.

Podemos verificar que o primeiro salto está sendo o IP “10.0.2.2”, esse IP é usado na conexão da primeira WAN com a rede do virtualbox. Dessa forma, podemos verificar que a saída está usando a primeira WAN como gateway principal.

First traceroute
First traceroute

Agora vamos na máquina virtual e vamos desconectar a primeira interface WAN.

VirtualBox Network
VirtualBox Network

Ao clicar em cima do “Adpter 1 “ , o adaptador de rede será desconectado.

Disable Network adapter 1 = Our first WAN
Disable Network adapter 1 = Our first WAN

Agora vamos voltar para a página “System/Routing/Gateway”. Nessa página, podemos verificar que agora o gateway principal é a “WAN 2” e que tem o IP “172.16.16.1”.

Now we got only WAN 2 as a gateway
Now we got only WAN 2 as a gateway

Agora, vamos fazer o teste de sainda com o traceroute. Para isso, vamos acessar a página “Diagnostics/Traceroute”. Em seguida vamos digitar um IP de saída e vamos verificar o resultado.

Agora podemos ver na figura abaixo que a saída está usando o gateway “172.16.16.1”. Esse é o IP da interface do nosso segundo gateway “WAN 2”. Dessa forma, podemos verificar que o failover está ocorrendo corretamente.

Second traceroute
Second traceroute

Tutorial Failover + Load Balance PfSense

Parte 01: Configurar Failover em PfSense

Parte 02: Configurar Load Balance com PfSense

Veja mais :

Snort PfSense : Detectar ataque DoS

FreeRadius: Instalação e configuração 

Transformar o raspberry pi em um roteador WIFI

Instalar Open VPN em Linux

SquidGuard : como importar blocklist ?

Juliana Mascarenhas

Data Scientist and Master in Computer Modeling by LNCC.
Computer Engineer