Hvilken IPv6-kilde en VPN-forespørsel velger, og hvorfor det betyr noe
En vert med flere IPv6-adresser velger en kilde før ruten slås opp. Gå gjennom de ordnede reglene, en eventuell programbinding og returpolitikken på den fjerne siden.
Du la til en VPN-adresse og forventet at forespørselen skulle bruke den, men serveren logget fortsatt det gamle prefikset. Ingenting i tunnelen feilet; verten tok et valg om kildeadresse før den i det hele tatt så på ruten du stirret på. Valg av IPv6-kilde er en egen ordnet konkurranse mellom vertens kandidatadresser, og det lengste samsvarende prefikset er bare én regel nær slutten av den. Å få resultatet du vil ha betyr å vite hvilken regel som allerede har vunnet. Selve reglene er kjedelige og presise, og det er nettopp poenget med å lese dem i rekkefølge.
To oppslag, ikke ett
Valg av destinasjon bestemmer neste hopp og det utgående grensesnittet. Deretter bestemmer kildevalget hvilken av vertens adresser som vises i overskriften, og de to spørsmålene besvares av ulike mekanismer selv om begge bruker prefikser. En vert med en fysisk adresse, en midlertidig adresse og en VPN-adresse har tre kandidater for enhver destinasjon, og ruten mot VPN utpeker ikke automatisk den tredje.
Dette er grunnen til at en riktig rute og en feil kilde så lett kan eksistere side om side, og hvorfor samme forespørsel kan oppføre seg ulikt fra en nettleser og fra en tvunget binding. Behandle de to oppslagene som atskilte til du har bevis som knytter dem sammen.
Les reglene som en ordnet konkurranse
RFC 6724 lister reglene i rekkefølge, og hver av dem bryter bare en uavgjort situasjon som de foregående har etterlatt. Preferanse for utgående grensesnitt og etikettmatch kommer lenge før prefikssammenligningen, så en adresse på grensesnittet ruten bruker har allerede fått en fordel som et bedre prefiksmatch ikke kan slette. Utfasing og omfang deltar også, og derfor slutter en utdatert adresse noen ganger å bli valgt uten at noen endrer policyen.
Den praktiske lesningen er at du ikke kan resonnere om vinneren bare ut fra destinasjonen. List kandidatene, gå gjennom reglene i rekkefølge og se hvor beslutningen faktisk ble tatt.
Legg også merke til at dette er kildehalvdelen av problemet. Å blande de to prefikssammenligningene gir forklaringer som høres strenge ut og forutsier feil adresse. Si hvilken sammenligning du mener hver gang du bruker ordet prefiks i en sak.
En programbinding endrer spørsmålet
Et program kan be om en bestemt kildeadresse, og et gyldig eksplisitt valg flytter spørsmålet fra «hvilken adresse ville verten foretrekke» til «kan den adressen nå destinasjonen og komme tilbake». Verktøy som binder til en kilde, eller som ber om tilleggsdata om den valgte adressen, avdekker dette direkte, og de er den raskeste måten å bevise hvilken adresse en tilkobling faktisk brukte. Det eksperimentet er bedre enn å lese rutetabellen for tredje gang, fordi det rapporterer hva kjernen bestemte i stedet for hva du konfigurerte. Gjenta det etter endringen og sammenlign de to svarene.
Det gjør kildebinding både til et diagnostisk verktøy og en midlertidig løsning: bind VPN-adressen og se om forespørselen lykkes. Hvis den gjør det, er veien i orden og valget var problemet. Hvis ikke, var returveien eller policyen på den fjerne siden problemet hele tiden.
Kontroller at den fjerne siden godtar den kilden
Uansett hva verten velger, må det passe til VPN-ens beskyttede omfang og til returruten og tilgangsreglene i den fjerne enden. En kilde utenfor selektorene kan reise inn i tunnelen og bli droppet i den fjerne enden, noe som ser ut som en ensidig feil og blir lagt på rutingen. Sammenlign den valgte indre kilden med beskyttelsesomfanget før du rører krypteringsinnstillingene, fordi modusbytte ikke velger mellom kandidatadresser.
Hold også den ytre endepunktadressen adskilt i resonnementet ditt. Den identifiserer transport mellom VPN-deltakerne og er ikke kilden til programmets pakke inni.
Bestem med fire observasjoner
Noter destinasjonen som ble brukt, de kvalifiserte lokale kildene, kilden som faktisk ble valgt og den effektive utgående veien. Fire linjer er nok til å forklare nesten ethvert tilfelle, og de kan sammenlignes mellom en fungerende og en feilende vert uten å gjenoppta teoridebatten. For valgtrinnet bruk operativsystemets egen støttede visning i stedet for et navn fra standarden, fordi implementasjoner legger til egne lokale preferanser.
Når svaret fortsatt overrasker deg, gjør rekkefølgen noe som din mentale modell ikke gjør, og rettelsen er å endre inndataene i stedet for å krangle med algoritmen. Skriv de fire observasjonene i saken, og neste leser kan gjenskape konklusjonen din.