As regras da devasa aceptan un primeiro e un último enderezo, como 192.168.0.200 a 192.168.0.255, mentres que as rutas non. Unha entrada de ruta só ten sitio para unha rede e unha máscara, o que significa que un rango continuo debe converterse nun ou máis prefixos aliñados antes de que OpenVPN o instale. Un perfil que xunta route-nopull cun intervalo non aliñado é onde adoita esconderse o fallo, porque o ficheiro analízase e ningunha ruta coincide. Acerta cos bloques e o fallo faise visible cun só comando.

O mito: un rango é unha ruta

As táboas de encamiñamento gardan pares de rede e máscara e escollen a coincidencia máis longa, así que un intervalo con inicio e fin non ten onde vivir. Un prefixo que abrangue 256 enderezos cobre .0 a .255, a metade dese tamaño cobre .0 a .127, e só un rango aliñado con esas beiras se mapea nun paso. Todo o demais debe cortarse en bloques. Unha ruta máis pequena segue significando o intervalo orixinal.

Un rango que non está aliñado co prefixo non é unha ruta comprimida. É outro tipo de obxecto, e tratalo como unha ruta é onde comeza o fallo silencioso.

A aliñación é aritmética, non estilo

Os tamaños de bloque fíxaos a lonxitude do prefixo. Un /29 só pode comezar nun enderezo divisible por 8, un /28 nun divisible por 16, un /27 nun divisible por 32. Move un bloque fóra da súa fronteira e a máscara cubrirá un conxunto de enderezos distinto do que pretendías.

Suma desde o extremo baixo. En cada paso toma o bloque aliñado máis grande que non pase o final do rango e continúa no primeiro enderezo despois del. Os bloques non poden solaparse, porque cada un comeza onde parou o anterior.

Dúas persoas facéndoo a man deberían chegar ao mesmo resultado. Un desacordo significa que alguén permitiu un inicio que non estaba aliñado.

Traballa de 200 a 255

StepStartBlock that fitsLine for the profile
1.200, multiple of 8/29, 8 addresses192.168.0.200 255.255.255.248
2.208, multiple of 16/28, 16 addresses192.168.0.208 255.255.255.240
3.224, multiple of 32/27, 32 addresses192.168.0.224 255.255.255.224

O rango comeza en .200, que é múltiplo de 8, así que o primeiro bloque é un /29 de .200 a .207. Despois deses oito enderezos o primeiro valor libre é .208, que se divide por 16, así que un /28 toma .208 a .223. O que queda é .224 a .255, trinta e dous enderezos que comezan nun múltiplo de 32, é dicir un /27. Esas tres filas son toda a descomposición.

Escríbeas como liñas de ruta en lugar de como prosa. Un perfil que só ten a primeira liña cobre oito enderezos e deixa o resto fóra do túnel.

route-nopull
route 192.168.0.200 255.255.255.248
route 192.168.0.208 255.255.255.240
route 192.168.0.224 255.255.255.224

O último bloque necesita unha comprobación de fronteira. Dentro de 192.168.0.224/27, .224 é o enderezo de rede e .255 é o enderezo de difusión, así que un host que debe responder en .255 queda cuberto polo prefixo e segue sendo inalcanzable. Move ese host ou divide o rango doutro xeito en vez de encamiñar o bloque e esperar.

Que fai route-nopull á imaxe

Engade route-nopull só cando as rutas empurradas polo servidor non se queiran. Sen a directiva, as rutas empurradas e estas liñas conviven, e gaña o prefixo máis específico. Con ela, as opcións DNS e DHCP empurradas tamén desaparecen, así que a resolución de nomes interna necesita a súa propia configuración. Ese efecto secundario sorprende a quen engadiu a directiva para arranxar un problema de ruta.

Engádea pola razón correcta, non como un reflexo automático. Quitar as rutas empurradas é unha decisión de política cunha consecuencia para o DNS. Se o servidor pode empurrar os mesmos tres prefixos, déixao, e borra as copias do lado cliente para que un só propietario controle a lista.

Comprobacións que atrapan os erros habituais

Comproba que cada máscara sexa unha tirada continua de uns. O valor 255.255.255.248 pasa e 255.255.255.200 falla, e unha máscara que non é continua rexéitase ou lese mal. Despois confirma a ruta para un enderezo de cada bloque.

ip route get 192.168.0.205
ip route get 192.168.0.220
ip route get 192.168.0.240

Cada resposta debería nomear a interface do túnel. Un resultado que nomea o adaptador físico significa que a liña nunca se instalou, o que adoita ocorrer cando un xestor de rede de escritorio reescribe a táboa despois de que o perfil se conecte.

Escolle un só propietario para a lista. Cando o servidor poida empurrar os mesmos prefixos, empúrraos e elimina as edicións do lado cliente. Un só propietario significa que unha errata ten un lugar onde vivir, e o cliente e o servidor non poden discrepar sobre que enderezos están dentro do túnel.

Artigos relacionados