Два знімки екрана з різницею в годину показують різні адреси джерела IPv6, і очевидне прочитання — тунель протік або перепідключився. Зазвичай не сталося ні того, ні іншого. Вузол використовує тимчасові адреси, функцію конфіденційності операційної системи, яка циклічно змінює ідентифікатор інтерфейсу за таймером. Порівняння здавалося переконливим лише тому, що припускало поле, яке ніколи не було стабільним.

Що насправді змінює тимчасова адреса

Тимчасова адреса будується з префікса інтерфейсу плюс ідентифікатора, який змінює вузол, і несе бажаний та допустимий терміни життя. До закінчення допустимого терміну вузол створює заміну, тому два з’єднання можуть законно виходити з різних джерел. Адреса локального зв’язку й сам префікс лишаються на місці, і саме так мережа досі впізнає машину.

Ніщо в цьому чергуванні не робить обліковий запис, файл cookie чи схему перегляду анонімними. У сайту, який хоче вас упізнати, є cookie, входи й відбитки, і змінна адреса джерела на їхньому тлі майже непомітна. Чергування змінює одне поле в заголовку пакета, і це поле ніколи не було єдиним ідентифікатором на шляху.

Сайт бачить одну адресу, у вузла їх кілька

Сервер записує джерело отриманого запиту, не більше. У вузла може бути кілька адрес із різними областями й термінами життя, і яка переможе залежить від правил вибору адреси та від призначення. Саме читання значення сайту як адреси машини й запускає цю плутанину. Один вузол може виглядати як дві машини для двох сайтів в один і той самий момент, просто тому що кожне з’єднання обрало іншу адресу.

Під час перевірки подивіться на інтерфейс за допомогою ip -6 addr show dev eth0: кілька адрес з їхніми термінами життя означають, що чергування присутнє за задумом. Потім запитайте ядро, який маршрут воно вибере за допомогою ip -6 route get 2001:db8:10::5, що виводить пристрій і бажане джерело для цього призначення.

Порівнюйте префікс, інтерфейс і маршрут, а не рядок

У перевірці VPN питання в тому, чи пішов пакет через тунель, а це питання маршрутизації та політики. Адреса джерела — слабкий показник: адреса, яка чергується на інтерфейсі тунелю, все ще на тунелі. Тунель, який перепідключається, зазвичай зсуває префікс або пристрій, і ці зміни видно без читання повної адреси.

Тому порівнюйте вибраний маршрут, інтерфейс, через який пішов пакет, і префікс, який він ніс. Ці три лишаються досить стабільними між запусками, і кожен із них означає щось інше, коли змінюється.

Зміна важлива, коли змінюється префікс, коли змінюється інтерфейс або коли маршрут до призначення перестає використовувати тунель. Зміна лише в ідентифікаторі інтерфейсу, з тим самим префіксом і тим самим пристроєм, — це робота конфіденційності як задумано. Якщо зсунувся лише ідентифікатор, перевірка виміряла таймер конфіденційності, а не покриття. Запишіть, що з трьох зсунулося, перш ніж звинувачувати тунель.

Не вимикайте IPv6, щоб знімки збіглися

Вимкнення IPv6 робить повторні перевірки однаковими й одночасно прибирає цілу родину адрес із мережі, яку ваш тунель має покривати. Якщо політика — передавати IPv6, вимкнення приховує прогалину в покритті, а не закриває її.

Якщо політика — блокувати IPv6 до появи підтримки, блокуйте свідомо й запишіть рішення. Наступному адміністратору потрібно бачити різницю між задокументованим блокуванням і вимкненим стеком.

Що записувати і що може довести одна перевірка

Запишіть префікс, ім’я інтерфейсу, вибраний маршрут, призначення й позначку часу, а поруч повну адресу. Специфікація тимчасових адрес пояснює терміни життя, що рухають чергування, тому повна адреса — найменш стабільне поле в нотатці. Збіг двох із трьох стабільних полів між запусками — сильніший доказ, ніж будь-який окремий збіг адреси.

Одна перевірка — це одне спостереження одного запиту. Нотатка перетворює наступне спостереження на порівняння. Зберігайте і те, і те, і наступна розбіжність коштуватиме одного погляду, а не цілого дня.

Схожі статті