Vamos começar habilitando os parâmetros do CARP no arquivo sysctl.conf:
# cat /etc/sysctl.conf | grep carp
net.inet.carp.allow=1 # Aceita os pacotes do CARP. Esse cara é habilitado por padrão.
net.inet.carp.preempt=1 # Esta opção derruba todas as interfaces de CARP quando uma delas é derrubada.
net.inet.carp.log=1 # Habilita ou desabilita o log dos pacotes do CARP. É útil para ver mensagens de erro. Também vem habilitado por padrão.
Não esqueça de habilitar o forwarding para ativar o roteamento.
net.inet.ip.forwarding=1
Os arquivos de configuração das interfaces de rede no OpenBSD tem o seguinte formato:
hostname.nomedainterface
No meu caso, a minha interface de rede tem o nome rl0.
Então, vamos configurar a interface da máquina que será o Master.
# cat /etc/hostname.rl0
inet 200.1.1.3 255.255.255.240 NONE
!ifconfig carp0 create
!ifconfig carp0 200.1.1.1 netmask 255.255.255.240 vhid 1 pass _simmons_ advskew 1 carpdev rl0
No servidor de backup a configuração é praticamente a mesma, mudando apenas o advskew, e o IP, é claro.
# cat /etc/hostname.rl0
inet 200.1.1.2 255.255.255.240 NONE
!ifconfig carp0 create
!ifconfig carp0 200.1.1.1 netmask 255.255.255.240 vhid 1 pass _simmons_ advskew 100 carpdev rl0
Para reiniciar as interfaces de rede no OpenBSD basta executar o seguinte comando:
# sh /etc/netstart
Ok, agora que configuramos e iniciamos as interfaces vamos entender um pouco os parâmetros.
- ifconfig carp0 create: Aqui você cria uma interface virtual que receberá o nome de carp0.
- vhid: é o virtual host identification, apesar do host no nome esta opção identifica um grupo de máquinas que compartilham o mesmo IP. Ele é muito importante, pois se você configurar alguma outra máquina no mesmo barramento com um VHID repetido o CARP não funcionará corretamente.
- pass: especifica uma senha para ser utilizada pelo grupo de hosts.
- advskew: advertisement skew, quando maior for o número , menor é a prioridade dele dentro do grupo. Ou seja , o Master é o 1 e o Slave o 100.
- carpdev: define a qual interface física aquele carp está associado.
Feito isso os dois servidores já estão funcionando em active/backup.