Les regles del tallafoc accepten una primera i una última adreça, com ara 192.168.0.200 fins a 192.168.0.255, però les rutes no. Una entrada de ruta només té lloc per a una xarxa i una màscara, cosa que vol dir que un interval contigu ha de convertir-se en un o més prefixos alineats abans que OpenVPN l’instal·li. Un perfil que combina route-nopull amb un interval no alineat és on sol amagar-se la fallada, perquè el fitxer s’analitza i cap ruta coincideix. Encerta els blocs i la fallada es fa visible amb una sola ordre.

El mite: un interval és una ruta

Les taules d’encaminament guarden parells de xarxa i màscara i trien la coincidència més llarga, així que un interval amb inici i final no té on viure. Un prefix que abasta 256 adreces cobreix .0 fins a .255, la meitat d’aquesta mida cobreix .0 fins a .127, i només un interval alineat amb aquestes vores es mapifica en un sol pas. Qualsevol altra cosa s’ha de tallar en blocs. Una ruta més petita encara significa l’interval original.

Un interval que no està alineat amb el prefix no és una ruta comprimida. És un altre tipus d’objecte, i tractar-lo com una ruta és on comença la fallada silenciosa.

L’alineació és aritmètica, no estil

Les mides dels blocs les fixa la longitud del prefix. Un /29 només pot començar en una adreça divisible per 8, un /28 en una divisible per 16, un /27 en una divisible per 32. Mou un bloc fora de la seva frontera i la màscara cobrirà un conjunt d’adreces diferent del que volies.

Suma des de l’extrem baix. A cada pas, pren el bloc alineat més gran que no passi del final de l’interval, i continua a la primera adreça després d’ell. Els blocs no es poden solapar, perquè cadascun comença on va parar l’anterior.

Dues persones fent-ho a mà haurien d’arribar al mateix resultat. Una discrepància vol dir que algú va permetre un inici que no estava alineat.

Treballa 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

L’interval comença a .200, que és múltiple de 8, així que el primer bloc és un /29 de .200 a .207. Després d’aquestes vuit adreces el primer valor lliure és .208, que es divideix per 16, així que un /28 pren .208 fins a .223. El que queda és .224 a .255, trenta-dues adreces que comencen en un múltiple de 32, és a dir un /27. Aquestes tres files són tota la descomposició.

Escriu-les com a línies de ruta i no com a prosa. Un perfil que només té la primera línia cobreix vuit adreces i deixa la resta fora del 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

L’últim bloc necessita una comprovació de frontera. Dins de 192.168.0.224/27, .224 és l’adreça de xarxa i .255 és l’adreça de difusió, així que un host que ha de respondre a .255 queda cobert pel prefix i encara és inabastable. Mou aquest host o divideix l’interval d’una altra manera en lloc d’encaminar el bloc i esperar-ho.

Què fa route-nopull a la imatge

Afegeix route-nopull només quan les rutes empenyades pel servidor no es volen. Sense la directiva, les rutes empenyades i aquestes línies conviuen, i guanya el prefix més específic. Amb ella, les opcions DNS i DHCP empenyades també desapareixen, així que la resolució de noms interna necessita la seva pròpia configuració. Aquest efecte secundari sorprèn qui va afegir la directiva per arreglar un problema de ruta.

Afegeix-la pel motiu correcte, no com un reflex per defecte. Treure les rutes empenyades és una decisió de política amb una conseqüència per al DNS. Si el servidor pot empenye els mateixos tres prefixos, deixa’l, i esborra les còpies del costat client perquè un sol propietari controli la llista.

Comprovacions que atrapen els errors habituals

Comprova que cada màscara sigui una tirada contigua d’uns. El valor 255.255.255.248 passa i 255.255.255.200 falla, i una màscara que no és contigua es rebutja o es llegeix malament. Després confirma el camí per a una adreça de cada bloc.

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

Cada resposta hauria de nomenar la interfície del túnel. Un resultat que nomena l’adaptador físic vol dir que la línia no es va instal·lar mai, cosa que passa sovint quan un gestor de xarxa d’escriptori reescriu la taula després que el perfil es connecti.

Tria un sol propietari per a la llista. Quan el servidor pugui empenye els mateixos prefixos, empeny-los i elimina les edicions del costat client. Un sol propietari vol dir que una errata té un lloc on viure, i el client i el servidor no poden discrepar sobre quines adreces són dins del túnel.

Articles relacionats