Що робить ця перевірка
Вебсервер бачить рівно одну адресу — ту, з якої ви прийшли. Якщо ви під'єдналися через IPv4, у цьому з'єднанні немає нічого, що сказало б, чи працює у вас ще й IPv6: такої інформації там просто немає. Тому єдиний чесний спосіб відповісти на питання «чи є в мене IPv6» — змусити браузер спробувати: узяти щось із вузла, у якого є адреса IPv6 і більше жодної, і подивитися, чи вийде.
Саме це й відбувається на цій сторінці. Ідуть три окремі запити — до вузла, доступного лише через IPv4, до вузла, доступного лише через IPv6, і до вузла з обома адресами, — і результати відповідають на три різні питання: чи працює кожен протокол узагалі і, з третього, який із них обрав ваш браузер, коли вибір був вільним. Остання відповідь найцікавіша, і побачити її більше нізвідки.
Навіщо все це
В IPv4 близько 4,3 мільярда адрес — 1981 року це виглядало марнотратно, а на практиці вони закінчилися вже давно: центральний запас вичерпали у лютому 2011-го, а європейський реєстр видав останній вільно доступний блок у листопаді 2019-го. Виділяти більше нема чого. Замість цього провайдери ділять одну публічну адресу між багатьма клієнтами: для перегляду сайтів це працює, а все, що чекає на вхідне з'єднання, ламається.
В IPv6 замість 32 бітів — 128. Кількість адрес словами не виражається осмислено (це приблизно 340 ундецильйонів), а практичний наслідок такий: кожен пристрій знову може мати справді маршрутизовану глобально адресу без жодної трансляції посередині. Поширення йшло повільно, але маргінальним воно давно не є: великі публічні вимірювання останніх років показують приблизно двох із п'яти користувачів світу, які дістаються служб через IPv6, з величезним розкидом між країнами. Деякі національні мережі перейшли за три чверті; інші лишаються біля нуля.
Як читати ваш результат
- Працюють обидва протоколи
- У вас dual-stack — саме той стан, який вважається сучасною нормою. Усе досяжне справді досяжне, а браузер обирає між протоколами для кожного з'єднання окремо.
- Працює лише IPv4
- Цілком звичайна ситуація, і це не поломка. Ваш провайдер, ваш маршрутизатор або VPN, яким ви користуєтесь, не несе IPv6. Нічого не зламано; ви просто не дістанетесь тієї невеликої, але зростаючої кількості служб, які не публікують більше нічого.
- Працює лише IPv6
- Рідкість, і зазвичай навмисна: мережа тільки з IPv6 і шлюз трансляції для застарілих напрямків. Якщо ви цього не налаштовували свідомо, значить, із трансляцією щось не так.
- Не працює жоден
- Ви б цього не читали, тож на практиці це означає недосяжність пробних вузлів, а не вашу відсутність у мережі. Корпоративні проксі й фільтрувальне обладнання інколи блокують запити до незнайомих їм вузлів.
Результат про перевагу і чому браузери роблять саме так
Коли в імені є і A-, і AAAA-запис, браузер мусить обрати, — і сучасні браузери роблять дещо акуратніше, ніж просто беруть одне. Алгоритм називається Happy Eyeballs: браузер починає розв'язувати обидва, дає IPv6 невелику фору й невдовзі стартує ще й з'єднання через IPv4, не чекаючи, доки спроба з IPv6 провалиться. Використовується те з'єднання, яке встановилося першим; друге відкидається.
Причина його появи конкретна й історична. У роки, коли IPv6 працював уривками, машина зі зламаним маршрутом IPv6 пробувала його, чекала на довгий TCP-тайм-аут і лише тоді переходила на IPv4, — і робочий сайт перетворювався на сайт, що вантажиться тридцять секунд. Перегони двох протоколів із короткою затримкою зробили ціну зламаного IPv6 мілісекундами замість півхвилини, і це єдина зміна, яка зробила dual-stack безпечним для звичайних людей.
Тож якщо перевірка каже, що ваш браузер надав перевагу IPv6, це означає, що ваш маршрут IPv6 не просто існує, а виявився достатньо швидким, щоб виграти перегони. Це сильніше твердження, ніж «IPv6 налаштовано».
Самі адреси
Запис IPv6 виглядає лячно, а тримається на трьох простих правилах: вісім груп по чотири
шістнадцяткові цифри, у кожній групі провідні нулі відкидаються, а один суцільний ряд нульових
груп замінюється на :: — рівно один раз на адресу, бо другий був би неоднозначним.
Тому 2001:0db8:0000:0000:0000:0000:0000:0001 пишеться як
2001:db8::1.
- Глобальна юнікаст — усе, що починається на
2або3 - Справжня адреса, маршрутизована в інтернеті. Саме її показує перевірка.
- Link-local —
fe80:: - Є в кожного інтерфейсу IPv6 і ніколи не покидає локальний сегмент. Якщо це єдина адреса IPv6 на вашій машині, робочого IPv6 у вас немає — у вас є інтерфейс, який налаштував себе сам.
- Unique local —
fc00::/7 - Приблизний відповідник приватного простору IPv4, для внутрішніх мереж, які не мають бути досяжними ззовні.
Одне зазвичай дивує: ваша адреса IPv6 змінюється сама, часто щодня. Оскільки адреса, побудована з апаратного ідентифікатора мережевої карти, ходила б за вами по всіх мережах, до яких ви під'єднуєтесь, операційні системи генерують для вихідних з'єднань тимчасові адреси й ротують їх. Це працює саме так, як задумано, — це не збій налаштувань. Але звідси випливає, що записана вчора адреса IPv6 сьогодні вже, найімовірніше, не ваша, а правила фаєрвола варто писати на префікси, а не на окремі адреси.
NAT немає, і це працює в обидва боки
В IPv4 за домашнім маршрутизатором ваші пристрої недосяжні ззовні, бо адресувати щось крізь трансляцію без явного правила прокидання неможливо. Ця випадковість, породжена дефіцитом адрес, два десятиліття виконувала роль грубого фаєрвола, — і в IPv6 її немає: кожен пристрій тримає адресу, маршрутизовану глобально.
Саме тут фаєрвол із побічного стає несучим. Кожен притомний маршрутизатор постачається з увімкненим фаєрволом IPv6, який за замовчуванням блокує незапитані вхідні з'єднання, — тож на практиці назовні не відкрито нічого нового. Але тепер це рішення в налаштуваннях, а не побічний ефект, і його варто підтвердити, а не припускати. Якщо хочете побачити, що справді досяжне ззовні, на це відповідає перевірка портів — і відповідає саме для тієї адреси, з якої ви прийшли.
Якщо IPv6 у вас немає
За спаданням імовірності:
- Провайдер його не надає. Найпоширеніша відповідь із великим відривом, і налаштовувати тут нічого. Спитайте: дехто вмикає за запитом або на новіших тарифах.
- У маршрутизаторі його вимкнено або пристрій достатньо старий, щоб підтримувати його погано. Подивіться в налаштуваннях WAN пункт IPv6 і розмір делегованого префікса: провайдери видають /56 або /48, а маршрутизатор, який просить одну-єдину /64, лишить частину мережі без адрес.
- Заважає VPN. Багато клієнтів VPN несуть лише IPv4 і або блокують IPv6 повністю, або, що гірше, пускають його повз тунель — а це один зі способів, у які VPN видає вашу справжню адресу, виглядаючи при цьому робочим.
- Мережа, у якій ви є, його фільтрує — звична річ у корпоративних і публічних мережах.
Сьогодні відсутність IPv6 коштує небагато: майже нічого в публічному інтернеті не живе лише на IPv6 — саме тому, що оператори знають, скільки людей досі мають тільки IPv4. Коштує вона іншого: спільної з незнайомцями публічної адреси, а разом із нею й можливості приймати вхідні з'єднання. А якщо цікаво, що ще видно про ваше з'єднання, сторінка про браузер перелічує це без театральності, яку зазвичай навколо теми розводять.