Engade unha ruta de sucursal, funciona, e despois unha actualización de firmware ou un gardado desde a interface web elimínaa. Dúas correccións parecen igual de razoables nese momento: poñer a ruta na fonte de configuración admitida do aparello ou engadila ao ficheiro xerado desde un script de arranque. Comprórtanse igual durante unha semana e diverxen na segunda actualización. Este artigo compara o que posúe realmente cada unha.

Os dous candidatos posúen cousas distintas

A fonte de configuración admitida é todo o que o aparello trata como entrada: un campo da GUI, un perfil importado, un directorio documentado por cliente, unha base de datos de axustes que le o paquete de xestión. O server.conf xerado é saída. Editar a saída funciona ata que o xerador volve executarse, e iso ocorre ao gardar, ao reiniciar e ao actualizar.

O enfoque con script parchea esa saída despois de que o xerador remate. É unha técnica lexítima para un laboratorio, e é o valor predeterminado incorrecto para unha oficina de sucursal, porque fai que a ruta dependa da coincidencia de texto en lugar dun campo documentado.

QuestionSupported config sourcePost-generation script
Survives a GUI saveYesOnly if the save does not regenerate the file
Survives a package upgradeUsually, when the field is documentedNo guarantee; the wrapper can be replaced
Supportable by the vendorYesNo
Obvious to the next adminYes, it is in the UINo, it lives in a wrapper

Que rexenera o aparello, e cando

Os paquetes de xestión adoitan gardar os axustes nunha base de datos ou nun conxunto de modelos e xeran a configuración do daemon ao arrincar. Un gardado desde a interface web a miúdo reescribe todo o ficheiro en lugar de parchear unha liña. Se o seu cambio vivía nese ficheiro, agora desapareceu, e nada rexistra un aviso porque, desde o punto de vista do aparello, non se perdeu nada.

Os envoltorios de arranque teñen un segundo modo de fallo. Un grep dunha directiva cun espazado concreto deixa de coincidir tras un cambio de modelo, e o script non fai nada en silencio. Peor aínda, unha actualización de firmware pode substituír o envoltorio por unha versión nova e levar o parche consigo. Entón ten unha ruta que existiu un ano e desapareceu durante un mantemento que ninguén relacionou co encamiñamento.

Que debe expresar o propietario admitido

Un prefixo de sucursal necesita tres declaracións, non unha. O cliente debe aprender a ruta, o servidor debe saber que cliente autenticado posúe o prefixo, e o lado da sucursal debe devolver o tráfico ao enderezo de túnel que se lle deu. En termos de OpenVPN iso significa un route enviado, un iroute correspondente ligado ao cliente e un camiño de retorno no outro extremo.

Aquí é onde as interfaces dos aparellos enganan. Unha caixa etiquetada «permitir que os clientes accedan á LAN do servidor» describe tráfico cara á propia rede do servidor. A súa sucursal é a dirección oposta: unha rede detrás dun cliente, accesible desde o lado do servidor. A mesma etiqueta non implica soporte para iso, e unha directiva válida nun ficheiro non é unha promesa de que o paquete a preserve.

Cando non existe ningún control admitido

Ás veces a versión instalada xenuinamente non pode expresar unha ruta específica dun par. Entón as opcións honestas son outra pasarela que vostede controle, ou un modo sitio a sitio admitido nos dous extremos. Ambos os extremos teñen que falalo. Unha páxina de produto que di sitio a sitio non fai que un perfil OpenVPN arbitrario sexa intercambiable co túnel doutro protocolo, e forzar ese emparellamento adoita producir un túnel medio conectado que se ve ben nunha páxina de estado.

Escolla a opción que poida describir nunha frase a quen herde a rede. Se a resposta require mencionar un camiño de script e un patrón de texto, o deseño xa é fráxil.

Faga a intención auditable

Rexiste o contrato fóra do aparello: identidade efectiva do cliente, prefixo, pasarela de retorno e o campo admitido que fornece cada un. Exporte a configuración mediante o mecanismo admitido para que unha reconstrución teña unha referencia, e verifique o servizo tras unha reconexión, un reinicio e unha actualización en lugar de só tras o cambio.

Compare o resultado xerado con ese rexistro cando algo se rompa, en lugar de restaurar unha liña sen explicación e esperar.referencia de OpenVPN 2.6 é o lugar para confirmar como interactúan route e iroute antes de discutir cunha interface.

Lista de comprobación para o próximo cambio: nomee o propietario, declare o contrato en tres partes, exporte a intención e volva probar despois dos propios eventos do ciclo de vida do aparello, non despois da súa edición.

Artigos relacionados