Olá a todos. Deixe-me começar dizendo que minha experiência com o Linux não é super incrível, mas geralmente consigo encontrar minhas coisas facilmente.
No trabalho, temos uma configuração do OpenVPN que já está sendo melhorada há algum tempo. O servidor principal (modo tap) é executado em nosso escritório, por trás de uma conexão DSL bastante lenta. O principal problema é que, como normalmente estou fora do escritório, toda vez que quero acessar algo na rede virtual, tenho que passar por esse servidor para chegar em outro lugar.
Temos dois servidores com conexões de 100 Mbit que usamos para desenvolvimento e produção, cerca de mais três servidores no escritório (um deles por trás de uma linha T1 diferente para VOIP) e cerca de duas dúzias de clientes que usam a rede diariamente a partir de vários locais.
Tivemos situações em que o roteamento de rede (fora do nosso controle) não permitia que as pessoas acessassem nosso servidor principal do OpenVPN, enquanto os outros locais eram conectáveis. Além disso, sempre que alguém fora do escritório quiser buscar algo em qualquer um dos servidores (digamos, um repositório de código de 500 MB), uma incrível velocidade de download de 20 KB / s é inaceitável atualmente (já mencionei DSL lenta? Ok). Tivemos que implementar a modelagem de tráfego nesse servidor, já que maximizar essa conexão era bastante trivial.
Pensei em executar dois (ou mais) servidores OpenVPN na rede. Eles teriam que ter a mesma sub-rede, já que nosso aplicativo depende dos endereços IP da rede virtual para algumas de suas principais funcionalidades. Os clientes também prefeririam manter os mesmos endereços IP, mas isso não é vital.
Para simplificar, vamos chamar o servidor office atual e o segundo servidor que estou configurando, cloud . Ligue para o servidor no telefone T1 .
Isto provou ser bastante complexo porque, assim que me conecto a cloud , não consigo ver office . Todas as rotas para um servidor que passaria por office também não funcionam enquanto eu estiver conectado a cloud (sem ping, nada) e vice-versa. Não há regras para o iptables que possam estar bloqueando o tráfego.
Recentemente me deparei com este artigo no linuxjournal, mas a solução que eles fornecem parece cobrir apenas o uso de dois servidores e um pouco desatualizado (não consigo encontrar muita documentação, o wiki deles está offline). Eles também afirmam que adicionar mais servidores seria uma tarefa complexa.
Idealmente, gostaria de manter o servidor office existente executando a rede virtual e também executar o daemon OpenVPN nos servidores cloud e phone (Conexão de 100 Mbit e muito confiável, respectivamente) para que fiquemos em terreno seguro em caso de falha de hardware, falha de DSL, etc.
Então, em essência, estou procurando uma solução OpenVPN altamente disponível (consertar, corrigir, hackear, ajustar, o que você quiser chamá-la) que aceitará conexões em múltiplos hosts (2 ou mais), mantendo a mesma Sub-rede de endereço IP, independentemente do servidor ao qual você se conecta.
Obrigado pela leitura e desculpe pelo longo post, espero que isso se destaque: P
EDITAR:
Outra parte importante que esqueci de mencionar é que os três servidores precisam ter endereços IP consistentes na rede virtual, porque a lógica da nossa aplicação depende diretamente deles. Os clientes são irrelevantes, eles podem ter qualquer endereço, mas os servidores precisam se comunicar entre si. Se você souber de uma solução diferente (algum tipo de dns para as entradas em 10.8.0. * Talvez), por favor, inclua-a. Obrigado novamente.
EDIT 2:
Adicionou um mapa de rede, não é ótimo, mas deve mostrar o ponto. Observe que, para qualquer servidor se comunicar com qualquer outro servidor, ele deve sempre passar pelo servidor Office . Isso se destina, embora eu queira alterar essa funcionalidade para Cloud .
Mapa de rede