Serviço OpenVPN de alta disponibilidade

Serviço OpenVPN de alta disponibilidade

Atualmente estou projetando um serviço OpenVPN para fornecer maior privacidade aos usuários da Internet.

Até agora pretendo usar servidores dedicados rodando CentOS e Xen para fornecer vários domínios, cada um deles um servidor OpenVPN para alta disponibilidade e balanceamento de carga.

  1. Se um domU falhar, quero ativar automaticamente um segundo domU no mesmo host. Esse tipo de failover é possível?

  2. Existem soluções para balanceamento de carga de conexões VPN para servidores domU?

Responder1

  1. Sim, é possível monitorar o status de um Xen DomU e executar algum comando arbitrário se o DomU falhar. Você pode executar uma instância do daemon Monit em um terceiro host (DomU ou físico) que verifica o DomU OpenVPN primário e diz ao Dom0 para iniciar o DomU secundário se o primário falhar. A documentação do Monit tem muitos exemplos que podem mostrar como implementar isso:

  2. Sim, o OpenVPN possui alguns recursos integrados de alta disponibilidade e/ou compartilhamento de carga e é muito simples de configurar.

Primeiro, você executará vários servidores OpenVPN, em paralelo, com cada servidor escutando seu próprio endereço IP. Os servidores não compartilham estado e não sabem nada um sobre o outro.

Em seguida, você especifica várias opções '--remote', na linha de comando ou no arquivo de configuração do cliente OpenVPN. Quando o cliente tiver várias opções de servidor remoto disponíveis, ele escolherá uma aleatoriamente e estabelecerá uma conexão com ela. Se esse servidor falhar, ele tentará novamente a conexão e, em seguida, escolherá aleatoriamente um servidor diferente se não conseguir se conectar. Consulte a documentação do OpenVPN aqui para obter mais informações:

Você pode querer ver minha resposta a uma pergunta semelhante, aqui:

Conforme observado em minha outra resposta, você provavelmente desejará prestar atenção a estas opções de cliente, em particular:

  • conectar-repetir
  • conectar-repetir-max
  • remoto-aleatório
  • ifconfig-pool-persistir

É claro que isso não é um verdadeiro balanceamento de carga, porque o cliente OpenVPN não seleciona o servidor com a carga mais baixa ou com menos clientes – ele apenas escolhe um servidor aleatoriamente. Se você precisar de um verdadeiro balanceamento de carga para garantir que as cargas do servidor permaneçam equalizadas, você precisará encontrar algum tipo de solução de balanceamento de carga dedicada, seja hardware ou software.

Responder2

  1. Talvez você possa configurar as duas VMs domU como dois nós de um cluster Linux HA normal. Mas acho que essa configuração só funcionará se o segundo nó estiver em stand by e não desligado. Se você deseja que o nó domU de backup seja inicializado se o primeiro não funcionar, acho que você deve escrever um script no nível dom0 que seja executado para sempre, verificando a integridade do primeiro nó e em caso de falha, forçando seu desligamento completo e o início do backup (não acho que esse script de shell deva ser muito difícil ou talvez você possa usar algum bom software para Linux que possa fazer o trabalho, mas pode ser mais intrusivo).

  2. Também para isso, você pode considerar as duas VMs, como uma máquina Linux normal e instalar e usar a solução Linux padrão de balanceamento de carga.

Responder3

Para a configuração do cluster OpenVPN HA, você pode usar uma combinação de OpenVPN, balanceamento de carga WAN e OSPF. Há um novo HOWTO aqui: http://www.vyatta4people.org/highly-available-openvpn-connection-between-two-offices/ Aproveitar!

informação relacionada