Två skärmbilder med en timmes mellanrum visar olika IPv6-källadresser, och den näraliggande läsningen är att tunneln läckte eller anslöt igen. Vanligtvis hände inget av det. Värden använder tillfälliga adresser, en integritetsfunktion i operativsystemet som roterar gränssnittsidentifieraren på en timer. Jämförelsen verkade avgörande bara för att den förutsatte ett fält som aldrig var stabilt.

Vad en tillfällig adress faktiskt roterar

En tillfällig adress byggs av gränssnittets prefix plus en identifierare som värden ändrar, och den bär en föredragen och en giltig livstid. Innan den giltiga livstiden tar slut skapar värden en ersättning, så två anslutningar kan lagligt gå ut från olika källor. Länklokaladressen och själva prefixet stannar kvar, och så känner nätverket fortfarande igen maskinen.

Inget i den rotationen gör ett konto, en kaka eller ett webbläsarmönster anonymt. En webbplats som vill känna igen dig har kakor, inloggningar och fingeravtryck, och en skiftande källadress registreras knappt mot dem. Rotationen ändrar ett fält i pakethuvudet, och det fältet var aldrig den enda identifieraren på vägen.

Webbplatsen ser en adress, värden har flera

En server noterar källan till den förfrågan den tog emot, inget mer. Värden kan ha flera adresser med olika omfång och livstider, och vilken som vinner beror på reglerna för adressval och på målet. Att läsa webbplatsens värde som maskinens adress är där den här förvirringen börjar. En enda värd kan se ut som två maskiner för två webbplatser i samma ögonblick, helt enkelt för att varje anslutning valde en annan adress.

Titta på gränssnittet under ett test med ip -6 addr show dev eth0: flera adresser med sina livstider betyder att rotationen finns enligt design. Fråga sedan kärnan vilken rutt den skulle använda med ip -6 route get 2001:db8:10::5, vilket skriver ut enheten och den föredragna källan för det målet.

Jämför prefix, gränssnitt och rutt, inte strängen

I VPN-testning är frågan om paketet lämnade genom tunneln, och det är en fråga om routing och policy. Källadressen är en svag indikator på det: en adress som roterar på tunnelns gränssnitt ligger fortfarande på tunneln. En tunnel som ansluter igen flyttar vanligtvis prefixet eller enheten i stället, och de ändringarna syns utan att läsa hela adressen.

Jämför därför den valda rutten, gränssnittet paketet lämnade genom och prefixet det bar. Dessa tre håller sig stabila nog mellan körningar, och var och en betyder något annat när den ändras.

En ändring spelar roll när prefixet ändras, när gränssnittet ändras eller när rutten till målet slutar använda tunneln. En ändring bara i gränssnittsidentifieraren, med samma prefix och samma enhet, är integritetsbeteende som fungerar som tänkt. Om bara identifieraren flyttade sig mätte testet integritetstimern i stället för täckningen. Skriv ned vilken av de tre som flyttade sig innan du skyller på tunneln.

Stäng inte av IPv6 för att få skärmbilderna att stämma

Att stänga av IPv6 får upprepade tester att stämma, och det tar också bort en hel adressfamilj från nätverket som din tunnel ska täcka. När policyn är att bära IPv6 döljer avstängningen en täckningslucka i stället för att stänga den.

Om policyn är att blockera IPv6 tills det stöds, blockera det medvetet och skriv ned beslutet. Nästa administratör behöver se skillnaden mellan en dokumenterad blockering och en avstängd stack.

Vad som ska registreras, och vad ett enda test kan bevisa

Registrera prefixet, gränssnittsnamnet, den valda rutten, målet och tidsstämpeln, med hela adressen bredvid. Specifikationen för tillfälliga adresser förklarar livstiderna som driver rotationen, och därför är hela adressen det minst stabila fältet i anteckningen. Att två av de tre stabila fälten stämmer mellan körningar är starkare bevis än någon enskild adressmatchning.

Ett enda test är en observation av en enda förfrågan. Anteckningen är det som gör nästa observation till en jämförelse. Behåll båda, och nästa avvikelse kostar en blick i stället för en eftermiddag.

Relaterade artiklar