Quan les rutes del túnel dividit se superposen: quin prefix guanya
La coincidència del prefix més llarg, la mètrica i les regles de política decideixen quin túnel serveix una destinació superposada. Comproveu primer l’adreça d’origen i el nom resolt.
Dos perfils de túnel dividit, dos prefixos privats i un amfitrió que tots dos reclamen. El símptoma poques vegades és una fallada neta: un servei funciona dilluns, deixa de respondre després que el segon client es reconnecti i torna a funcionar després d’un reinici. L’ordre en què vau connectar els clients no decideix el resultat, ni tampoc l’ordre de les files a la interfície del client. Executeu aquestes comprovacions en ordre i atureu-vos a la primera que no es compleixi, perquè les posteriors només tenen sentit quan les anteriors són certes.
1. Anoteu la destinació i l’origen
Comenceu per l’adreça exacta a la qual va la petició que falla, no pel nom de l’amfitrió ni pel nom de l’aplicació. Resoleu el nom una vegada, anoteu cada resposta i trieu la que el flux que falla utilitza realment. Després anoteu l’adreça local del mateix flux, perquè l’adreça d’origen pot canviar quina regla de política coincideix i, per tant, quina taula es consulta.
Una petició a un de diversos registres A pot fallar mentre una adreça germana té èxit, cosa que sembla un túnel inestable i en realitat són dos camins diferents. Si la destinació és un nom amb diverses respostes, proveu cada resposta per separat abans de canviar res.
2. Pregunteu al nucli quina ruta ha triat
No llegiu la taula de rutes i no en deduïu la resposta. Feu la mateixa pregunta que fa la pila, amb la mateixa adreça d’origen: ip route get 10.20.4.10 from 10.8.0.2 a Linux, o Find-NetRoute -RemoteIPAddress 10.20.4.10 a PowerShell. La sortida anomena la ruta que realment s’utilitzaria, que sovint no és la que esperàveu en llegir la taula.
Entre les rutes que coincideixen, normalment guanya el prefix més específic: un /24 supera un /16 per a una adreça dins dels dos. Entre coincidències de la mateixa longitud guanya la mètrica més baixa, i una ruta instal·lada en un enllaç caigut es descarta. Dos túnels que empenyen el mateix /24 amb la mateixa mètrica són un cas diferent: el nucli conserva les dues rutes i tria entre elles, així que el resultat pot alternar en lloc de seguir l’ordre amb què es van connectar els clients. Aquesta és exactament la situació que produeix el patró de dilluns funciona i dimarts falla, i reconnectar en un ordre diferent no ho canvia.
3. Comproveu si una regla de política ha redirigit la consulta
Abans de consultar la taula de rutes, el nucli recorre les seves regles de política. Una regla pot enviar el trànsit d’una font, un usuari o una marca de tallafoc determinats a una taula completament diferent, així que el prefix guanyador de la taula principal pot no consultar-se mai per a aquest flux. ip rule show les llista en ordre d’avaluació, i ip route show table 100 mostra què conté realment la taula seleccionada.
Aquí hi ha dues trampes. Una regla que apunta a una taula buida produeix una consulta que cau a la regla següent, així que la regla sembla que no fa res. L’altra és el número de prioritat mateix: les regles es llegeixen en ordre ascendent, i les integrades són 0 local, 32766 main i 32767 default. Una regla amb un número inferior a 32767 es consulta abans de la regla per defecte que ho captura tot. Una regla amb un número superior a 32767 se situa darrere seu i només s’assoleix quan cap taula anterior respon, cosa que una ruta per defecte normal a main impedeix, així que a la pràctica no s’assoleix mai i no fa res en silenci mentre sembla instal·lada. Si el client ha escrit una regla i una ruta, comproveu les dues i torneu-les a comprovar després d’una reconnexió, perquè un perfil reescrit pot afegir una segona regla amb una prioritat diferent.
4. Separeu un empat d’encaminament d’un pla d’adreces duplicat
De vegades el prefix no és el problema en absolut. Dos llocs que utilitzen tots dos 192.168.1.0/24 volen dir que la mateixa adreça identifica dos amfitrions diferents i cap ruta els pot distingir. Una ruta d’amfitrió cap a una de les dues respostes només funciona fins que l’altre lloc respon pel mateix nom, i llavors l’excepció es converteix en silenci en el defecte.
La pista és que l’adreça de destinació és idèntica en els dos camins i només difereix el propietari previst. Això és una decisió de pla d’adreces, no un retoc d’encaminament: renumereu un costat, poseu un costat darrere d’una passarel·la que tradueixi, o arribeu al segon lloc a través d’un proxy que resolgui els seus propis noms. Baixar una ruta per defecte o acumular excepcions d’amfitrió només mou la col·lisió d’un lloc a un altre.
5. Confirmeu que el resolutor coincideix amb la ruta
Un nom que es resol a l’adreça privada incorrecta produeix tots els símptomes d’un conflicte d’encaminament i cap de les seves causes. Compareu la resposta que rep l’amfitrió amb l’adreça que la destinació utilitza realment, i comproveu quin resolutor ha respost. Si el túnel empeny un resolutor, el client l’hauria d’instal·lar per als fluxos que utilitzen el túnel; si no ho fa, l’amfitrió continua preguntant al resolutor local, que pot respondre des d’un domini de cerca o des d’un registre en memòria cau.
Consulteu el resolutor directament i anoteu el servidor que ha respost. Una resposta en memòria cau amb un TTL curt també pot explicar per què la primera petició després d’una reconnexió es comporta de manera diferent de la cinquena.
6. Reconnecteu, inspeccioneu l’estat aplicat i després proveu els dos fluxos
Després d’una correcció, reconnecteu i inspeccioneu què ha instal·lat realment el client en lloc de confiar en l’editor de perfils. Llegiu de nou les regles, les taules i la resposta de ip route get resultant. Un segon client pot reinstal·lar la seva pròpia ruta en connectar-se i recrear el conflicte, i per això la comprovació d’estat ha de fer-se després que es connecti l’últim client, no abans.
Proveu dos fluxos, no un: la petició que abans fallava i un recurs que ha d’utilitzar l’altre túnel. Moure tot el trànsit privat a una sola connexió farà passar la primera prova alhora que trencarà la segona, i només una prova aparellada ho detecta. Anoteu cada excepció que conserveu, amb la destinació i el motiu, perquè la propera persona pugui distingir una ruta d’amfitrió deliberada d’una de romanent.