Asistente do servidor OpenVPN: rede máis máscara, nunca CIDR
O asistente do servidor IPv4 toma unha rede aliñada e unha máscara con puntos, non un sufixo CIDR. Comproba o rango, confirma o grupo no rexistro e despois cambia o tamaño con seguridade.
Unha liña de servidor que mestura un sufixo CIDR cunha máscara con puntos detén o daemon antes de que sequera abra un porto. O asistente server para IPv4 quere dous argumentos separados: un enderezo de rede aliñado e despois a máscara de rede en forma con puntos. Todo o demais nesa liña é inferencia, e na inferencia é onde fallan os tamaños do grupo e as máscaras dos clientes.
Os dous argumentos que acepta o asistente
Escribe primeiro a rede e despois a máscara, sen nada pegado ao enderezo:
server 10.72.16.0 255.255.240.0Esta é a forma para un /20. A liña de abaixo é o erro, e falla ao analizar as opcións, non en tempo de execución:
server 10.72.16.0/20 255.255.240.0Mantén as dúas ideas separadas cando depures isto. A lonxitude de prefixo e unha máscara con puntos describen o mesmo rango, pero o asistente non acepta ambas á vez, e unha liña rexeitada produce un erro de opcións que nomea a directiva e non a aritmética.
Aliña a rede antes de escribir a máscara
O primeiro enderezo é o enderezo de rede do rango, non un enderezo de cliente cómodo dentro del. Para un /20 o rango vai de 10.72.16.0 a 10.72.31.255, e só o primeiro deles é un argumento de rede válido. Un /21 usa 255.255.248.0 e abrangue de 10.72.16.0 ata 10.72.23.255, así que a súa liña é server 10.72.16.0 255.255.248.0.
Cambiar o prefixo cambia o rango e nada máis. Non cambia cantos enderezos recibe un único cliente, porque iso é unha propiedade da topoloxía, non da máscara desta liña.
Confirma o grupo desde o lado do servidor
Inicia a instancia en primeiro plano con rexistro detallado e le as liñas que emite o asistente. O grupo que construíu imprímese ao arrincar, o que é máis fiable que calcular a aritmética a man:
openvpn --config /etc/openvpn/server.conf --verb 4 --dev tun9 --port 1195Busca o resumo do grupo preto da parte superior da saída. Enumera o rango que reservou o asistente, e se ese rango non coincide coa túa intención, os argumentos da liña son incorrectos diga o que diga a aritmética da máscara.
Despois conecta un cliente e atopa a liña que rexistra o enderezo que se lle entregou. Ese único enderezo, xunto ao rango do grupo, diche se o cliente quedou dentro do bloque reservado ou nalgún lugar que non esperabas. Se os dous non coinciden, corrixe os argumentos e non o cliente. Se coinciden e o cliente segue sen acadar nada, o grupo nunca foi o problema.
Le a máscara do cliente coa topoloxía en mente
Un cliente que mostra un /30 na súa interface de túnel non é proba dun grupo roto. Con direccionamento punto a punto cada cliente recibe un bloque pequeno e a máscara da súa interface describe ese bloque, mentres que o grupo do servidor cobre o conxunto. Cunha topoloxía de subrede, en cambio, a máscara do cliente coincide coa máscara do grupo. A máscara soa, por tanto, diche que topoloxía está en xogo, non se o grupo se escribiu correctamente.
Comproba a topoloxía configurada e o enderezo asignado á vez antes de sacar unha conclusión:
ip -4 addr show tun0Se o enderezo está dentro do grupo e a máscara é máis estreita que o grupo, é a topoloxía facendo o seu traballo. Se o enderezo está fóra do grupo, o grupo é incorrecto, e ningunha inspección do lado do cliente o arranxará.
Cambiar un grupo en funcionamento
Escolle un rango que non se solape co grupo actual, a LAN nin ningunha ruta xa enviada aos clientes. O solapamento é o fallo que sobrevive a un reinicio e logo, días despois, aparece como un sitio inalcanzable desde unha dirección.
Cambia a liña, reinicia e volve ler o grupo de arrinque antes de deixar entrar os usuarios. Se o novo rango choca con algo, a mesma saída de arrinque móstrao de inmediato, e reverter é unha edición dunha liña máis outro reinicio.
Mantén o rango antigo reservado un tempo despois do cambio. Os clientes que se reconectan tarde aínda poden conservar un enderezo do grupo anterior, e un rango novo que reutilice eses enderezos produce asignacións duplicadas que parecen un fallo de encamiñamento. O manual de OpenVPN 2.6 documenta os argumentos do asistente e a súa expansión, algo que paga a pena ler antes de supor que unha directiva usa a mesma notación que a súa veciña.