Обновить
31
Сергей Федотов@FSA

Пользователь

10
Подписчики
Отправить сообщение

Из IPv4 в IPv6 можно ходить полноценно только через прокси. А вот обратно вполне себе можно через шлюзы NAT64. По сути это примерно такие же железки, как сейчас используются на CGNAT у провайдеров, только CGNAT - это NAT44. И потребность в CGNAT постоянно нарастает, т.к. новых адресов не появляется, а потребность в NAT64 отпадает, как только сервисы начинают работать с IPv6. Например, большую часть трафика Youtube можно пускать в обход этих NAT просто за счёт того, что Google активно продвигает IPv6.

Итог, нужен либо поголовный ну или хотя бы глобальный переход на V6 либо протокол с прямой и обратной совместимостью v6 и v4

Я вполне себе на сотовом в РФ отключил IPv4 для APN провайдера и имею доступ ко всем ресурсам. Дома провайдер пока до такого не дорос, но я сделал себе свой NAT64 на маршрутизаторе и внутри сети, ради эксперимента (практической пользы в этом нет никакой, но могут быть шероховатости) могу использовать только IPv6. IPv4 вполне доступен, но, например, сотовые телефоны подключаясь к сети просто не берут IPv4 себе. Также обновился на ноутбуке до Fedora 45 Beta и там уже есть из коробки нужная функция в NetworkManager. Но пока в тестовом режиме, поэтому её нужно пока включать через cli. Надеюсь через годик она будет работать из коробки без дополнительных настроек.

С исторической справкой про IPv4 верно подмечено. Но формулировка “32 бита выбрали потому, что ни в одной организации не было столько узлов” немного упрощает историю конечно.

Ну да. Там можно найти комментарий Винт Серфа и даже видео, где он это говорит. Суть, что ему надоели споры инженеров. Разработчики DARPA целый год спорили, какой длины делать адрес: 32 бита, 128 бит или использовать переменную длину. Будучи руководителем программы и распределяя госбюджет США, Серф волевым решением прекратил споры и утвердил 32 бита, чтобы проект наконец сдвинулся с места. Естественно, опирался на то, что этих 32 бит точно хватит для эксперимента.

Но называть бесполезными поля нельзя в целом у них же есть конкретные функции, хоть некоторые из них редко использутся или используется не по назначеию.

По мне, так это показательно, когда в новой спецификации IPv6 просто выбрасывают кучу частей, которые были в IPv4. Значит можно было и без них. Опять таки, опираясь на то, что это был эксперимент, вполне разумно предположить, что их планировали использовать, но они не особо кому были нужны.

это именно рекомендации, а не правило, по которому все провайдеры обязаны выдавать клиентам конкретный размер

Да по сути это была моя рекомендация к тому, кто хочет понять как блокировать IPv6, но не знает с чего начать. /64 по сути такой же уникальный, как IPv4, только гарантированно принадлежит одному клиенту, а не куча клиентов за одним IPv4. Но нужно учитывать, что клиенту легко могут выдать /48. Если он действительно решит вам пакостить, то он может перебирать доступное ему.

Спасибо за положительную оценку. Стараюсь как можно больше заинтересовать технических специалистов IPv6.

IPv4 - это вообще лабораторный протокол для проверки концепции. Об этом Винд Серф говорил. Им нужно было протестировать, поэтому взяли 32 бита, потому что ни в одной организации не было такого количества узлов. В заголовок пакета написали кучу всякого, тоже для теста. Но протокол утёк из лаборатории в реальный мир и все эти бесполезные поля заголовка пакета до сих пор болтаются и тратят полосу. Как результат, в IPv6 размерность адресов выросла в 4 раза (а это адрес источника и адрес приёмника), а размер пакета вырос всего в 2 раза. При этом в IPv4 заголовок пакета может расжиреть даже больше, чем в IPv6.

Ну а вся защита сводится к тому, что вместо проверки одной IPv4 теперь просто нужно делать несколько проверок для префиксов /64, /56 и /48. Просто у клиента может быть разного размера сеть. По сути идентификатор теперь не постоянный IPv4 адрес, только не адрес, а его часть. Почему три проверки? Потому что провайдеры плюют на рекомендации того, кто выдаёт им префиксы и внутрь /48 ,могут пихать до 65536 клиентов, вместо того, чтобы дать эту сеть одному пользователю… Ну ладно, /56… Но тогда плюют на необходимость резервировать /48.

Там вообще какой-то термояд. Неправильно символ написал - ты символ ввёл. Нельзя исправлять, нужно набирать дальше. Я там на тесте какие-то сумасшедшие 600 символов в минуту выбивал почти. Но это если потренироваться изначально. А вот в этом тренажёре выбиваю где-то 240 символов без особой тренировки. Тоже немного неудобно, не всегда понимаешь что нужно исправить, потому что не видно введённого текста. А так секунды теряются, пока допрёшь что там конкретно писать. И ошибок у меня 91-94%.

В условиях блокировок всех мессенджеров в РФ единственным способом реально позвонить остаётся только простой звонок, не говоря уже об отключении интернета, которые называют почему-то «белыми списками» (был у нас в городе такой интернет, где был доступен один сайт, но он был бесплатным через дайлап). Давайте спросим экспертов почему люди стали звонить больше, а трафик сети передачи данных упал…

В IPv6 вообще можно ничего не задавать. А если пользоваться всякими mDNS, LLMNR и сервисами, которые умеют им пользоваться (прикол, но Windows умеет), то подобные устройства будут связаны между собой без всяких настроек. Ради интереса проверял на Windows 7. Отключил IPv4 на сетевом интерфейсе и всё работало - одна машина видела сетевые ресурсы другой. В IPv6 просто есть специальные link-local адреса. Они автоматом назначаются на все сетевые интерфейсы с активным IPv6. Разве что ими не очень удобно пользоваться, поскольку кроме адреса нужно ещё указывать сетевой интерфейс. Но если софт умеет, то ничего больше не нужно настраивать, просто найти или указать адрес другой машины.

Ну судя по статье, это даже излишне. Там же банально

Даже с адресом на месте nginx не принимал HTTPS по IPv6 на боевом vhost’е — слушал только служебный дефолт-блок.

Можно хоть с России проверять, утилита бы сразу заругалась, что у тебя ответ по IPv6 какой-то не такой. Нужно только IPv4+IPv6 иметь на хосте откуда проверяешь. Теоретически можно проверку даже на самом хосте запустить, тоже может подсказать ошибки.

Вот как раз на такой случай я и делал для себя через ИИ утилиту, которая быстро анализирует доступность сервера - https://github.com/fsa/http-tester

Тестирует по IPv6+IPv4, по http, по https и quic, если последний есть. Кстати, идея возникла после того, как я долго ловил баг, что когда я захожу на сайт со своего компьютера, то у меня срабатывает редирект. А когда заходят с соседнего, то там всё нормально. Оказалось я забыл прописать quic на хосте. Мой компьютер видел, что сайт доступен по quic и ломился туда, получая дефолтный редирект. А соседний компьютер подключался по http2 и спокойно всё показывал.

Утилита написана ИИ. Можете дорабатывать код, если желаете, можете полностью переписать вручную, если есть квалификация. Если будете переписывать, не забудьте скинуть ссылку на репозиторий, откуда взяли идею ;-)

Было бы прикольно, если бы Яндекс был прогрессивнее всех и вообще отказался бы от выдачи IPv4 клиентам. Все телефоны уже умеют в CLAT, так что на мобильной сети это не проблема. Всё будет работать так, будь-то у тебя есть IPv4.

Мечта детства, которой будет почти 30 лет, как она была задокументирована на бумаге. Но из этого я так ничего и не сделал за эти 30 лет. Ушёл совсем в другую область.

Вся проблема, что кроме чтения языка нужно учиться на нём говорить. А без преподавателей это сделать сложно. Как вы будете вылавливать свои ошибки? Я нашёл способ с помощью ИИ. Но у меня уже был навык хотя бы читать на английском и писать под диктовку. Я просто заставил ИИ гонять меня по временам, вопросам и отрицаниям. Только так я понял хоть что-то. Так выучил примерно 5 времён (времени, конечно, всего 3, но формы simple и future. Это всё нужно постоянно повторять пока не заговоришь. А вот заговорить проблема, потому что надо чтобы кто-то проверял на сколько ты всё правильно сделал. Нужен кто-то, кто указывал бы на ошибки. А это стоит денег. Никакие курсы не помогут, потому что ошибки - это твои ошибки, а не кого-то другого. Даже если заниматься в группе, то нужно, чтобы там все были примерно на том же уровне. Если вы будете делать это с начинающими имея какой-то багаж, это будет скучно. Поверьте мне. Я 5 раз начинал с нуля, когда учился в колледже. Все 5 сессий у нас был новый преподаватель и каждый раз мы начинали с нуля, потому что все говорили, что они ничего не знают. И я не вынес для себя из этих уроков ничего нового. В университете тоже было… опять с нуля. Благо там минимум просили с начинающих для зачёта. Моих знаний уже тогда вполне хватало.

По мне так это плата за воздух. IPv6 и таких адресов у каждого клиента столько…

Анонс Winamp и Deezer отражает интерес к ретро‑технологиям. Кассетные плееры, MP3-плееры и iPod в последнее время вновь привлекают к себе внимание, поскольку пользователи всё чаще выбирают ностальгические способы прослушивания музыки.

А они в курсе, что народ к mp3 возвращается, не потому что ностальгия, а потому, что стриминговые сервисы ненадёжны? Либо им паспорт твой не нравится и у тебя просто отбирают всю твою коллекцию, либо у них такой уровень цензуры, что твои треки или вообще пропадают из коллекции или превращаются в полную хрень. Такой фигни с локальной коллекцией не случится, если делать бекапы.

Это никак не связанные вещи. Вы можете даже в РФ подключиться к МТС и Мегафону и иметь IPv6. Более того, я на Мегафоне отключил вообще IPv4. Пока никаких проблем не замечаю, т.к. у них есть всё что нужно для нормальной работы моего телефона с хостами на IPv4.

Ну а саму утилиту просто можете запустить на другой VPS. Получить IPv6 на VPS вообще большой проблемы не составляет на нормальных хостингах. Когда тестируешь из дома, могут быть ложные сообщения об ошибках. Например, у меня показывает, что мой сайт не работает через QUIC по IPv4. Но если проверить из нормальной сети, то сразу видно, что всё работает как надо.

Буквально позавчера ставил Worms Armageddon из Steam. Но из-за Proton не очень комфортно играть. Если сейчас хочется поиграть, проще использовать нативные Hedgewars.

Спасибо. Согласен, что с вашим замечанием. Позже немного переделаю текст статьи.

Проблем нет, но с помощью этой утилиты можно выявить странное поведение у некоторых пользователей. Например, не так давно я выносил часть сайта своего на отдельный домен и какое-то время не мог понять почему у меня при входе на этот сайт идёт редирект на основной. Я уже было грешил на 301 редирект, который когда-то подхватился, но это оказался не он. На компьютере рядом всё открывается и отображается, а у меня редирект. А потом нашёл корень проблемы: мой браузер увидел, что у сайта есть HTTP/3 и начал заходить на сайт через него. А я забыл HTTP/3 прописать в nginx. Как результат - запрос падал на дефолтный хост, а там было прописано перебрасывать на основной сайт, благо, хотя бы не перманентно :-) Вот после этого я и задумался о подобной утилите.

А разные ос имеют разные приоритеты, через какой протокол пробовать, если есть и A, и AAAA записи для домена сайта.

У большинства ОС в приоритете IPv6. Но, например, в Linux можно накрутить в /etc/gai.conf и сделать приоритет для IPv4.

И таймауты при неудачном ipv6 - такие, что юзер минутами не понимает, почему все колом встало.

Чтобы с этим бороться, есть алгоритм Happy Eyeballs. Кстати, у моего провайдера есть обратная проблема со связностью через IPv4, что и показала моя утилита на моём сайте.

Обычно так и делают. Но первый раз запрос всё равно будет. Но новый тип записей в DNS убирает необходимость таких запросов даже первый раз. А этот тестер как раз покажет работает ли это у вас на сайте.

Теоретически можно и с помощью bash скрипта всё это проделать. Но я решил вот так попробовать. Если предложите свой вариант, буду только рад.

1
23 ...

Информация

В рейтинге
5 483-й
Откуда
Тавда, Свердловская обл., Россия
Дата рождения
Зарегистрирован
Активность