Dlaczego adres IPv6 zmienia się, gdy VPN pozostaje włączony
Adresy tymczasowe rotują zgodnie z projektem, więc dwa zrzuty ekranu mogą się różnić bez zmiany routingu. Porównuj prefiks, interfejs i trasę, a nie cały adres.
Dwa zrzuty ekranu wykonane godzinę po sobie pokazują różne źródłowe adresy IPv6, a oczywisty odczyt jest taki, że tunel wyciekł albo połączył się ponownie. Zwykle nie zdarzyło się ani jedno. Host używa adresów tymczasowych, funkcji prywatności systemu operacyjnego, która rotuje identyfikator interfejsu według licznika czasu. Porównanie wydawało się rozstrzygające tylko dlatego, że zakładało pole, które nigdy nie było stabilne.
Co faktycznie rotuje adres tymczasowy
Adres tymczasowy powstaje z prefiksu interfejsu oraz identyfikatora, który host zmienia, i niesie preferowany oraz ważny czas życia. Zanim ważny czas życia upłynie, host tworzy zamiennik, więc dwa połączenia mogą legalnie wychodzić z różnych źródeł. Adres łącza lokalnego i sam prefiks pozostają na miejscu, i tak sieć nadal rozpoznaje maszynę.
Nic w tej rotacji nie czyni konta, pliku cookie ani wzorca przeglądania anonimowymi. Witryna, która chce cię rozpoznać, ma pliki cookie, logowania i odciski palców, a zmieniający się adres źródłowy prawie się przy nich nie liczy. Rotacja zmienia jedno pole w nagłówku pakietu, a to pole nigdy nie było jedynym identyfikatorem na ścieżce.
Witryna widzi jeden adres, host ma kilka
Serwer zapisuje źródło otrzymanego żądania, nic więcej. Host może mieć kilka adresów o różnych zakresach i czasach życia, a to, który wygra, zależy od reguł wyboru adresu i od celu. Czytanie wartości witryny jako adresu maszyny to miejsce, w którym zaczyna się to zamieszanie. Jeden host może wyglądać jak dwie maszyny dla dwóch witryn w tej samej chwili, tylko dlatego że każde połączenie wybrało inny adres.
Podczas testu spójrz na interfejs za pomocą ip -6 addr show dev eth0: kilka adresów z ich czasami życia oznacza, że rotacja jest obecna zgodnie z projektem. Potem zapytaj jądro, której trasy by użyło, za pomocą ip -6 route get 2001:db8:10::5, co wypisuje urządzenie i preferowane źródło dla tego celu.
Porównuj prefiks, interfejs i trasę, a nie łańcuch
W testach VPN pytanie brzmi, czy pakiet wyszedł przez tunel, a to kwestia routingu i polityki. Adres źródłowy jest na to słabym wskaźnikiem: adres rotujący na interfejsie tunelu nadal jest na tunelu. Tunel, który łączy się ponownie, zwykle przesuwa prefiks albo urządzenie, a te zmiany widać bez czytania całego adresu.
Porównuj więc wybraną trasę, interfejs, przez który pakiet wyszedł, i prefiks, który niósł. Te trzy pozostają wystarczająco stabilne między uruchomieniami, a każde z nich znaczy coś innego, gdy się zmienia.
Zmiana ma znaczenie, gdy zmienia się prefiks, gdy zmienia się interfejs albo gdy trasa do celu przestaje używać tunelu. Zmiana tylko w identyfikatorze interfejsu, przy tym samym prefiksie i tym samym urządzeniu, to zachowanie prywatności działające zgodnie z zamiarem. Jeśli przesunął się tylko identyfikator, test zmierzył licznik prywatności, a nie pokrycie. Zapisz, które z trzech się przesunęło, zanim obwinisz tunel.
Nie wyłączaj IPv6, żeby zrzuty ekranu się zgadzały
Wyłączenie IPv6 sprawia, że powtarzane testy się zgadzają, a także usuwa całą rodzinę adresów z sieci, którą tunel ma pokrywać. Gdy polityka polega na przenoszeniu IPv6, wyłączenie ukrywa lukę w pokryciu zamiast ją zamykać.
Jeśli polityka polega na blokowaniu IPv6 do czasu wsparcia, blokuj świadomie i zapisz decyzję. Następny administrator musi widzieć różnicę między udokumentowaną blokadą a wyłączonym stosem.
Co zapisywać i co może udowodnić jeden test
Zapisz prefiks, nazwę interfejsu, wybraną trasę, cel i znacznik czasu, a obok pełny adres. Specyfikacja adresów tymczasowych wyjaśnia czasy życia, które napędzają rotację, dlatego pełny adres jest najmniej stabilnym polem w notatce. Zgoda dwóch z trzech stabilnych pól między uruchomieniami jest mocniejszym dowodem niż jakiekolwiek pojedyncze dopasowanie adresu.
Jeden test to jedna obserwacja jednego żądania. Notatka jest tym, co zamienia następną obserwację w porównanie. Zachowaj oba, a następna rozbieżność będzie kosztować jedno spojrzenie zamiast całego popołudnia.