Openvpn exclui ip na piscina

1

Eu tenho um servidor OpenVPN em execução em uma caixa Linux Ubuntu. Vários clientes se conectam a este servidor (mais de 500) e é por isso que eu configurei a opção de ponte do servidor assim:

server-bridge 10.0.100.1 255.255.0.0 10.0.200.1 10.0.210.254

Isso funciona perfeitamente. Os clientes obtêm um endereço IP dinâmico e vão do bloco 200 para o bloco 201 quando o número de clientes exceder 255.

Eu tenho um aplicativo interno que se conecta a esses clientes, mas esse aplicativo falha nos endereços IP 10.0.200.255 e 10.0.201.0.

Esses endereços IP estão no intervalo que forneci, mas não posso usá-los.

Existe uma maneira de excluí-los do meu pool?

Ou preciso alterar minha configuração?

    
por spambas 17.05.2016 / 12:39

1 resposta

0

Usar vários intervalos de IP ou excluir determinados IPs não é diretamente possível com o servidor DHCP integrado do OpenVPN usando um único arquivo de configuração.

Eu proponho 3 soluções possíveis:

  • Solução alternativa , mas sem garantia de funcionamento
  • modo de proxy DHCP , simples, limpo e muitas outras opções
  • Várias instâncias , mais complexas, podem ter benefícios de desempenho

No entanto, recomendo corrigir a causa raiz do problema, o aplicativo interno com falhas.

Solução alternativa

No arquivo de configuração do servidor, adicione:

server-bridge 10.0.100.1 255.255.0.0 10.0.200.1 10.0.210.254
ifconfig-pool-persist ipp.txt 0

O 0 no final da diretiva ifconfig-pool-persist trata ipp.txt como um arquivo de configuração somente leitura.

Crie um arquivo /etc/openvpn/ipp.txt :

reserved-not-used-cn-1,10.0.200.255
reserved-not-used-cn-2,10.0.201.0
reserved-not-used-cn-3,10.0.201.255
...

Adicione todos os endereços IP reservados a esse arquivo, formatados como <Common-Name>,<IP-address> . Para o valor no campo <Common-Name> escolha algo que nunca será usado em qualquer certificado de cliente.

Não é garantido que isso funcione sempre, conforme indicado na página do OpenVPN:

Note that the entries in this file are treated by OpenVPN as suggestions only, based on past associations between a common name and IP address. They do not guarantee that the given common name will always receive the given IP address. If you want guaranteed assignment, use --ifconfig-push

modo de proxy DHCP

Como você está usando uma configuração TAP , essa pode ser a melhor solução. Ele permite usar um servidor DHCP com recursos completos na sub-rede do lado do servidor ou no próprio servidor, dependendo da configuração. Para configurar a ponte Ethernet, você deve primeiro usar o recurso de ponte do seu sistema operacional para fazer a ponte da interface TAP com outra interface.

Configuração do servidor OpenVPN :

server-bridge

Esta diretiva se expande da seguinte forma:

mode server
tls-server
push "route-gateway dhcp"
Configuração do servidor

DHCPD :

subnet 10.0.100.1 netmask 255.255.0.0 {
  range 10.0.200.1 10.0.200.254;
  range 10.0.201.1 10.0.201.254;
  range 10.0.202.1 10.0.202.254;
  range 10.0.203.1 10.0.203.254;
  ...
}

Várias instâncias

Uma alternativa seria criar uma instância openvpn separada para cada sub-rede /24 , usando vários arquivos de configuração. Mas isso requer o uso de uma porta diferente para cada instância.

Arquivo de configuração da instância 1:

port 11941
server-bridge 10.0.100.1 255.255.0.0 10.0.200.1 10.0.200.254

Arquivo de configuração da instância 2:

port 11942
server-bridge 10.0.100.1 255.255.0.0 10.0.201.1 10.0.201.254

...

Isso exigiria:

  • configurações de cliente específicas do intervalo de IP com os respectivos números de porta,
  • ou por ex. para usar iptables de balanceamento de carga em conexões de entrada na porta 1194 e distribuí-las uniformemente entre as instâncias

Esta solução pode ter benefícios de desempenho, conforme explicado aqui .

    
por 18.05.2016 / 22:16