Un rango non é unha ruta: converte 200-255 en tres prefixos
Unha liña de ruta toma unha rede e unha máscara, nunca un enderezo de inicio e fin. Suma o rango en prefixos aliñados antes de que OpenVPN o instale.
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
| Step | Start | Block that fits | Line for the profile |
|---|---|---|---|
| 1 | .200, multiple of 8 | /29, 8 addresses | 192.168.0.200 255.255.255.248 |
| 2 | .208, multiple of 16 | /28, 16 addresses | 192.168.0.208 255.255.255.240 |
| 3 | .224, multiple of 32 | /27, 32 addresses | 192.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.