Du tilføjede en VPN-adresse og forventede, at anmodningen brugte den, men serveren loggede stadig det gamle præfiks. Intet i tunnelen fejlede; værten traf et valg om kildeadresse, før den overhovedet kiggede på den rute, du stirrede på. Valg af IPv6-kilde er en separat ordnet konkurrence mellem værtens kandidatadresser, og det længste matchende præfiks er kun én regel nær slutningen af den. At få det resultat, du vil have, betyder at vide, hvilken regel der allerede har vundet. Selve reglerne er kedelige og præcise, og det er netop pointen med at læse dem i rækkefølge.

To opslag, ikke ét

Valg af destination fastlægger næste hop og den udgående grænseflade. Derefter vælger kildevalget, hvilken af værtens adresser der vises i headeren, og de to spørgsmål besvares af forskellige mekanismer, selvom begge bruger præfikser. En vært med en fysisk adresse, en midlertidig adresse og en VPN-adresse har tre kandidater til en given destination, og ruten mod VPN’en udpeger ikke automatisk den tredje.

Det er derfor, en korrekt rute og en forkert kilde så let kan eksistere side om side, og hvorfor den samme anmodning kan opføre sig forskelligt fra en browser og fra en tvungen binding. Behandl de to opslag som adskilte, indtil du har bevis for, at de hænger sammen.

Læs reglerne som en ordnet konkurrence

RFC 6724 opremser reglerne i rækkefølge, og hver af dem bryder kun en uafgjort situation, som de foregående har efterladt. Præference for udgående grænseflade og etiketmatchning kommer længe før præfikssammenligningen, så en adresse på den grænseflade, ruten bruger, har allerede fået en fordel, som et bedre præfiks-match ikke kan slette. Forældelse og omfang deltager også, og derfor holder en forældet adresse nogle gange op med at blive valgt, uden at nogen ændrer politikken.

Den praktiske læsning er, at du ikke kan ræsonnere om vinderen ud fra destinationen alene. List kandidaterne, gå reglerne igennem i rækkefølge, og se, hvor beslutningen faktisk blev truffet.

Bemærk også, at dette er kildehalvdelen af problemet. At blande de to præfikssammenligninger sammen giver forklaringer, der lyder stringente og forudsiger den forkerte adresse. Sig, hvilken sammenligning du mener, hver gang du bruger ordet præfiks i en sag.

En programbinding ændrer spørgsmålet

Et program kan bede om en bestemt kildeadresse, og et gyldigt eksplicit valg flytter spørgsmålet fra “hvilken adresse ville værten foretrække” til “kan den adresse nå destinationen og komme tilbage”. Værktøjer, der binder til en kilde, eller som anmoder om supplerende data om den valgte adresse, viser det direkte, og de er den hurtigste måde at bevise, hvilken adresse en forbindelse faktisk brugte. Det eksperiment er bedre end at læse routetabellen for tredje gang, fordi det rapporterer, hvad kernen besluttede, frem for hvad du konfigurerede. Gentag det efter ændringen, og sammenlign de to svar.

Det gør kildebinding til både et diagnostisk værktøj og en midlertidig løsning: bind VPN-adressen, og se, om anmodningen lykkes. Hvis den gør, er vejen fin, og valget var problemet. Hvis den ikke gør, var returvejen eller politikken i den fjerne ende problemet hele tiden.

Kontroller, at den fjerne side accepterer den kilde

Uanset hvad værten vælger, skal det passe til VPN’ens beskyttede område og til returruten og adgangsreglerne i den fjerne ende. En kilde uden for selektorerne kan rejse ind i tunnelen og blive droppet i den fjerne ende, hvilket ser ud som en ensidet fejl og bliver skudt på routing. Sammenlign den valgte indre kilde med beskyttelsesområdet, før du rører ved krypteringsindstillingerne, fordi et skift af tilstand ikke vælger mellem kandidatadresser.

Hold også den ydre slutpunktsadresse adskilt i din ræsonnering. Den identificerer transport mellem VPN-deltagerne og er ikke kilden til programmets pakke indeni.

Beslut ud fra fire observationer

Noter den brugte destination, de kvalificerede lokale kilder, den faktisk valgte kilde og den effektive udgående vej. Fire linjer er nok til at forklare næsten ethvert tilfælde, og de kan sammenlignes mellem en fungerende og en fejlende vært uden at genoptage teoridebatten. Brug operativsystemets egen understøttede visning til valgtrinnet i stedet for et navn fra standarden, fordi implementeringer tilføjer deres egne lokale præferencer.

Når svaret stadig overrasker dig, gør rækkefølgen noget, som din mentale model ikke gør, og rettelsen er at ændre inputtet i stedet for at diskutere med algoritmen. Skriv de fire observationer i sagen, og den næste læser kan genskabe din konklusion.

Relaterede artikler