Comments 41
Соответственно, адресов доступно 2^128. Это примерно по 100 адресов каждому атому на поверхности Земли.

Реальная цифра на много-много порядков ниже. Еще долго не будет подсетей на все 2^64 хостов…
Резко упростили задачу маршрутизаторам, ведь уже не надо пересчитывать контрольные суммы, и в итоге IPv6 обрабатывается быстрее, чем IPv4.

А на самом деле ничего особо и не изменилось. Расчет чексумм даже на конечных хостах обычно делают аппаратно, силами сетевухи. На нормальных железных маршрутизаторах, где нужна высокая скорость, весь цикл обработки и передачи пакета выполняется за детерминированное время и без задействования ЦП общего назначения.
И если можно отчасти понять используемый IPv4 телнет — например, ограниченная память или CPU не позволяют в полной мере использовать SSH

Ну не бывает такого в XXI веке.
Реальная причина:
1) Раньше для того, чтобы с железкой можно было работать по ssh, ей была нужна лицензия К9 (сложности с закупкой, согласования ФСБ и т.д.). Без нее только нешифрованные протоколы. Сейчас таких ограничений обычно уже нет.
2) Windows например из коробки не имеет ssh, но имеет telnet. Возможно, для кого-то это будет аргументом.
Во-первых, хороших IPv6-файрволов еще не так много, во-вторых, их еще нужно купить и настроить

Да тут и файрвол не нужен. Простой пакетный фильтр есть везде.
Единственный минус в том, что доступна такая фича только на определенном классе железок

Это если надо фильтровать RA.
В случае, если IPv6 в организации не используется, правильнее просто повесить на все аксессные порты коммутаторов ipv6 acl с «deny any any», это есть примерно везде. Всё, трафик IPv6 между различными конечными железками не пройдет. Желательно делать то же и на виртуальных свитчах гипервизоров. И вместе с этим отключать IPv6 на конечных системах, конечно. Но очень легко забыть это сделать, потому прикрывать хосты со стороны сети надо.
IPv6 делает некоторые вещи лучше, другие — хуже, но большинство вещей просто отличаются от того, к чему все успели привыкнуть.

Я бы сказал, что он делает всё в общем и целом приблизительно так же. Основное изменение — адресное пространство шире. Остальные изменения на бумаге выглядят круто (Никакого броадкаста, только мультикаст! Никаких лишних чексумм, экономия ресурсов! Встроенная поддержка IPSec — безопасность!), но по факту вообще ни черта не меняют..
Титанический материал, не для пятницы. В избранное однозначно!

Спасибо команде «Хакера», для такого хомяка как я очень интересно.
Вообще IPv6 выглядит немного странно. Я раньше не вдаваясь в подробности думал, что там реально 2^128 адресов. Реально /64 подсети выдают всем подряд, а многие провайдеры, например, раздают /48 подсети на простые VPS-ки. Т.е. реально адресов в сравнение с IPv4 больше в 32000 раз. Это неплохо, но экспоненциального роста не выдержит. Хотя на ближайшие десятки лет видимо хватит.
Это вам так кажется, потому что вы раннюю эпоху IPv4 не застали. В частности то, что вы сейчас наблюдаете — это повторение эпохи классовой адресации на новом витке спирали. Если сетей будет не хватать — перейдут к аналогу CIDR, делов-то.
Когда читаю фразы «Такой адрес всегда начинается с FE80, ну а последние 64 бита — это мак-адрес с FFFE, вставленными посередине, плюс один бит инвертируется», невольно задумываюсь — то ли я неманьяк, то ли авторы спецификации — маньяки.

Это как сказать что-то вроде «логин я тебе завел — твое имя латиницей, а пароль простой, это md5 от твоей фамилии, написанной на французский манер, при этом каждая четная буква фамилии взята заглавной, а в центре хеша от нее я вписал еще год твоего рождения». Т.е. умом понимаешь, что все логично, и что есть алгоритм, но в уме просчитать такое без серьезного опыта — вообще нереально.

Правда — за что такие извращения? Я еще понимаю, будь там «Такой адрес всегда начинается с FE80, ну а последние 64 бита — это мак-адрес», но зачем «посередине» что-то вставлять (и что значит середина), и зачем бит инвертировать?!
Это было сделано для того чтобы исключить возможность дубликатов таких адресов.
Затем уже стали добавлять различные секьюрити фичи, и количество таких адресов на интерфейсе стало расти.
Но ведь очевидно, что, если мы делаем из MAC-а что-то производное по статическим правилам, то при совпадении MAC-ов мы получим и совпадающие производные данные?

Я вот именно про это говорю. Понял бы, если бы сказали: берем FE80, дописываем сколько-там-нужно битов, порожденных из текущего таймстемпа, остальное заполняем MAC-ом машины, и это называем каким-то там «автоматическим» адресом. В таком случае глазами в списке IPv6 адресов хотя бы можно разобраться, что да как, просто глядя на концовки адресов.

А тут — «мы берем MAC, переставляем четные байты с нечетными, инвертируем 13 бит в безлунную ночь — и на выходе для одинаковых MAC-ов получаем одинаковые текстовые строки, караул, враги!»
На самом деле, поработав месяц — два со средней IPv6 сетью, уже начинаешь ориентироваться по адресам и они не вызывают такого отторжения, как в начале.
И разобраться получается без особых проблем.
Но протокол конечно же многократно допиливался и по прежнему далек от идеального.
Просто он вызывет стойкое чувство, будто его делал Microsoft после того, как какой-нибудь IPv4 сделал Apple. Просто в каждой строчке сквозит «мы сделали то же, но точно наоборот, чем у них!»

А если серьезно, то вот таких сложностей на ровном месте там столько, что невольно задумываешь, не они ли причина того, что протокол приходится насаждать в юзерах (как картошку на Руси), а не отдавать в радостные руки желающих что-то новое попробовать.

Грубо: даже если провайдер сделал IPv6, то вариантов, как он работает — масса, способов дружбы с IPv4 — масса, но по факту запуск сего чуда техники для любого желающего клиента провайдера превращается в рулетку. Сайтам тем же поддержка IPv6 тоже не дается легко, и комбинаций технологий IPv6, софта на серверах и у клиентов, всевозможных ошибок настройки и реализации — их столько, что проще не настраивать.
Согласен с тем, что определенные трудности IPv6 с собой приносит.
Но ситуация состоит в том, что переход на него неизбежен и этот переход уже идет полным ходом.
Если брать обычного клиента, то в случае нативного получения IPv6 от оператора проблем обычно не возникает.
Всё происходит прозрачно, так же как в IPv4, прилетит вся нужная информация и в большинстве случаев всё будет жужжать.
Если коснуться ситуации с различными IPv6 туннелями, то по статистике мирового IPv6 трафика они уже своё отжили, доля ничтожная, преобладает уже чистый IPv6.
Руки повырывать за всякие teredo и прочее счастье,
а что касается «само прилетит», то таки нет. Вам прислать скриншот какого-нибудь Длинка, его раздела про настройку IPv6? Это не одну бутылку надо выкурить и не один кальян выпить, чтобы понять, что ушлые китайцы имели в виду! Техподдержка провайдеров, ведая, что не всякий роутер хорошо и по стандарту работает с IPv6, обычно говорит, что «мы протестировать 8 моделей, которые нашли в продаже, вот их и покупайте, а 9-я и далее — х.з. как работает», и ведь они правы! И при этом глюки роутеров меняются от версий прошивки.

Но, повторюсь, протокол на взгляд новичков сделан неудобным и усложненным для понимания, на него долго переходили (сколько уже говорят про него?), но переход, увы, неизбежен, поскольку еще одно изобретение протокола просто уж очень тяжко будет. О том, что масса людей и компаний просто не обладают IPv6-enable устройствами — это вообще тема плача Ярославны всех провайдеров. О том, что кроме железа есть еще и биллинги и прочее ПО, тоже помолчим.

P.S. Я уже не говорю, какая «прелесть» найти провайдера, которые готов по BGP с IPv6 через туннель подключать. Приходится туннели через полмира тянуть: в he.net да вот (спасибо!) в МТУ дают, и это очень хорошо.

В общем
Грубо: даже если провайдер сделал IPv6, то вариантов, как он работает — масса
Ой, а IPv4 прямо не так. IPoE /30, IPoE PPP Unnumbered /24, всякие PPPoE, PPTP.

Сайтам тем же поддержка IPv6 тоже не дается легко, и комбинаций технологий IPv6, софта на серверах и у клиентов, всевозможных ошибок настройки и реализации — их столько, что проще не настраивать.
Э? Ну фиг знает, я использую IPv6 уже чуть ли не 5 лет везде где можно, и никаких особых трудностей не испытывал и не испытываю.
А тут — «мы берем MAC, переставляем четные байты с нечетными, инвертируем 13 бит в безлунную ночь — и на выходе для одинаковых MAC-ов получаем одинаковые текстовые строки, караул, враги!»
Если у вас карточки с одинаковыми MAC-адресами в одной сети, то ничего и не должно было работать. Правила были придуманы, чтобы уникальные адреса, порождённые из MAC'а не пересеклись с уникальными адресами, порождёнными другими способами, как я уже писал.
Правда — за что такие извращения?
Чтобы поддерживать не только MAC-адреса, но и полноценный EUI-64. В который MAC-адрес превращается вот таким вот способом.

Я еще понимаю, будь там «Такой адрес всегда начинается с FE80, ну а последние 64 бита — это мак-адрес», но зачем «посередине» что-то вставлять (и что значит середина),
Середина — это ровно середина. А технически — это старшие 16 бит дополнительно идентификатора (я надеюсь вы знаете что и в MACе и в EUI-64 первые 24 бита — это номер, выданный организации, а последние биты — организация решает как использовать внутри себя сама). Однако свобода у организации ограничена: старшие два байта не могут равны FFFF (используется для превращения EUI-48 в EUI-64) или FFFE (используется для превращения EUI-48 в MAC). Что запрещены самые старшие номера — логично? По моему — вполне.

и зачем бит инвертировать?!
А тут всё ещё проще: чтобы 0 стал 1, а 1 стала 0. Я не шучу. Дело в том, что в MAC-адресе есть поле, которое показывает — у нас глобально-уникальный адрес или локально управляемый (==выбираемый администратором). Если бит не инвертировать, то все выбираемые руками IPv6 адреса приходилось бы вводить с кучей нулей, для того, чтобы задать единичку в этом поле (которое будет находиться аккурат-таки посреди уже IPv6 адреса). Но поскольку бит инвертирован, то для «руками выбираемых адресов» можно использовать краткую запись с "::" — что удобно.

В общем эта. Вы в какой-то мере правы. Это действительно то, чем славится Microsoft — обратной совместимостью. То, что я нас в конторе проходит под названием «всюду лошади» из-за известной байки.Не уверен, что Apple подход «выкиньте нафиг всю ADB-периферию, мы переходим на USB!» был бы встречен с бо́льшей радостью.
стояли задачи сделать более быстрый протокол и с большим количеством адресов, а не более безопасный и защищенный


Неправда, одной из встроенных в протокол фич является, например, IPsec. Так что за безопасность разроботчики тоже думали.
Опишите, что изменилось по сравнению с IPv4 с точки зрения IPSec.
А конкретнее? Что изменилось-то? Я не понимаю, что значит «стал частью протокола». Вот есть IKE. Есть ESP инкапсуляция. Они стали частью IPv6? А поверх IPv4 они, значит, не работали?
«Cтал частью протокола» значит вендоры, которые под ipv6 девайсы разрабатывают должны реализовывать поддержку IPsec.
И чо? Везде, где он нужен, он и раньше был. Вон виндовая инфраструктура например умела это делать (довольно автоматически шифровать общение в пределах домена между хостами) как минимум во времена 2003, правда — никто этим не пользовался. Что изменилось-то? Опять же, клиентская часть давно реализована на всех возможных платформах.

Да и вообще, не могу сказать чтобы я сильно его любил. Сложный он. Много чего может пойти не так. Но вариантов нет.
Складывается впечатление, что не понимаем друг друга. Я-то про то, что создатели протокола заморочились и на безопасности протокола (вопреки тому, о чём говорится в цитате), а не только на количестве адресов и скорости. Поэтому и добавили IPsec в сам протокол.

А на счёт сложности и прочего и прочего, если вы не провайдер, то для вас вряд ли что-то поминяется. Вам ваш пров даст ип вы его в настройки wan пропишите и всё. Внутри сетки вольны использовать ipv4. Думаю, на внутреннюю сетку ип адресов хватит.
Поэтому и добавили IPsec в сам протокол.

Так я и говорю, что ничего не изменилось — в IPv4 он тоже был :) Серьезно — вы зациклились на паверпоинтовских презентациях. Подумайте с практической точки зрения. С этим изменением станет лучше жить? Нет, так как на практике не меняется ничего. Ну ок, стандартизировали нечто, что и так было у всех уже как лет 10-20. Офигеть, я счастлив.

А, нет, погодите, у нас в стране сильная криптография вообще на каком-то полулегальном положении в большинстве случаев.
а не только на количестве адресов и скорости

Так выигрыша в скорости тоже нет. За счет выросших заголовков будет скорее проигрыш даже. Больше пакетов на тот же объем данных. Вроде еще какие-то сложности были с v6 заголовками, но из головы вылетело.
А на счёт сложности и прочего и прочего, если вы не провайдер, то для вас вряд ли что-то поминяется.

Конечно. Я буду продолжать настраивать IPSec для IPv6 в точности как я это делаю сейчас для IPv4. Провайдеру проще, ему IPSec вообще не нужен.
Вам ваш пров даст ип вы его в настройки wan пропишите и всё.

Но конечно же такое если и будет, то только на самых первых порах и у самых некомпетентных провайдеров.
Внутри сетки вольны использовать ipv4. Думаю, на внутреннюю сетку ип адресов хватит.

Тут, уж простите, глупость сказана.
1) IPv4 не маршрутизируется по IPv6 сети без туннелирования. Нельзя просто так иметь снаружи v6 адрес и внутри v4 сеть. Транслировать адреса можно, но это — жуткий, отвратительный костыль.
2) Если бы внутренние сети по миру использовали глобально маршрутизируемые v4 адреса, они закончились бы еще лет 15 назад. Слава NAT, великому костылю, отодвинувшему глобальную задницу на какое-то время.
3) Провайдер может выдать клиенту не только адрес на внешний интерфейс, но и глобально маршрутизируемую внутреннюю сеть для назначения устройствам за роутером, причем всё это автоматически. Это — прикольное изменение. Но для хомячков снова ничего особо не изменится (была 192.168.0.0/24 с NAT, где тоже обычно никто ничего руками не менял, станет другая с незапоминаемыми адресами и без NAT), а корпоративные пользователи все равно сами будут нарезать блоки.
Ваш разговор похож немного на разговор глухого со слепым. Вы оба по своему правы.

С одной стороны. Разработчики IPv6 несомненно думали и о безопасности тоже — отсюда IPsec и многие другие фишки.

С другой стороны. Полезные вещи, которые не требуют наличия 128-битных адресов никто не запрещал «вынуть» из обоймы протоколов, разрабатывавшихся вместе с IPv6 и реализовать поверх IPv4. Что и было проделано, в частности, с IPsec'ом.

Разумеется в результате в момент перехода с IPv4 на IPv6 вы получаете, по большому счёту, только новые «большие» 128-битные адреса и некоторое количество плюшек, прямо опирающихся на то, что адреса — таки 128-битные.

Всё остальное уже было внедрено раньше.

Вот и всё. О чём тут спорить-то?
Что и было проделано, в частности, с IPsec'ом.

А откуда уверенность, что IPSec изначально разрабатывался под IPv6 и лишь потом был перенесен на IPv4? Что-то я не вижу такого в RFC2401…
А думать вас мама в детстве не учила? Конечно решение о том, что IPsec будет поддерживать не только IPv6, но и IPv4 было принято до полного окончания работы над IPsec'ом-для-IPv6, но они разрабатывались совместно, что как бы совершенно очевидно: как иначе мог в IPsec'овском RFC 2401, выпущенном в ноябре 1998 оказаться раздел, посвящённый IPv6, который получил свой RFC 2046 только в декабре 1998го? И в соответствующих исторических обзорах эта информация ест. Если не верите — можно поговорить с людьми, которые это всё разрабатывали, благо они, в большинстве своём, ещё живы.
но они разрабатывались совместно

Смотрим выше:
«никто не запрещал «вынуть» из обоймы протоколов, разрабатывавшихся вместе с IPv6 и реализовать поверх IPv4. Что и было проделано, в частности, с IPsec'ом.»
Вы уж определитесь, что там было — «одновременно» или «вынули и позже добавили в другой»…
как иначе мог в IPsec'овском RFC 2401, выпущенном в ноябре 1998 оказаться раздел, посвящённый IPv6, который получил свой RFC 2046 только в декабре 1998го?

Открою страшную тайну.
Даже две.

1) Над IPSec и IPv6 работали разные working group'ы.
2) Работа IETF над стандартизацией нового протокола обычно занимает годы, и проходит совершенно открыто. Например, прямо сейчас таких групп, наверное, под сотню наберется. Вы легко можете вступить в любую из них (бесплатно, без СМС и с самой базовой регистрацией) и поучаствовать в создании протокола, который через несколько начнет свое победоносное шествие по миру, когда его стандарт финализируют :) И из этого следует, что все знают, чем занимаются соседи, и по многим технологиям работа ведется параллельно в нескольких различных группах.

А с IPSec было довольно просто. Возникла потребность «здесь и сейчас». Создали протокол. Приблизительно все созданные в то время протоколы, которым есть дело до L3, разрабатывались с учетом IPv6 одновременно с IPv4.
Вы упорно отказываетесь меня понимать. Мой-то посыл прост (в сотый раз): разработчики думали и о безопасности протокола, в приведённой цитате это отрицается. То, что делается поверх, это уже тараканы каждого отдельного индивида. Тем более как там у вас IPSec через NAT работал, нормально?

Так выигрыша в скорости тоже нет.


jumbo пакеты?

Нельзя просто так иметь снаружи v6 адрес и внутри v4 сеть.


Прям смешно читать, особенно зная, что чёрная коробочка под столом так и настроена.
Мой-то посыл прост (в сотый раз): разработчики думали и о безопасности протокола, в приведённой цитате это отрицается.

Цитата:
«стояли задачи сделать более быстрый протокол и с большим количеством адресов, а не более безопасный и защищенный»

IPv6 стал более защищенным? Нет. Так что по этому пункту та цитата полностью верна. Неверна она по пункту «более быстрый».

Когда думают — что-то меняется. Но мы видим, что у IPv6 те же фичи и векторы атак, что и у IPv4.
jumbo пакеты?

А для IPv4 так сделать нельзя? Да и сложно пропустить пакет размером более 1500 байт через интернет…
Прям смешно читать, особенно зная, что чёрная коробочка под столом так и настроена.

На NAT46? А зачем?
Неверна она по пункту «более быстрый».

Напомню, что протокол появился в 1995м году, когда железок умеющих делать аппаратную проверку чексум и всего прочего еще не было в природе.
Поэтому задача увеличения скорости все же стояла у разработчиков.

разработчики думали и о безопасности протокола

О безопасности тогда не думали, в те времена всё было плейн текстом.
Именно по этому перекочевало множество старых и появились новые уязвимости в IPv6.
IPsec не является каким-либо обязательным к использованию элементом в IPv6.

Основной посыл, который я пробовал передать в этой статье, это то, что IPv6 уже пришел, его уже нужно знать и в том числе быть готовым к новым угрозам, которые он в себе несет.
О безопасности тогда не думали, в те времена всё было плейн текстом.
Это вы так перевели фразу Network security was a design requirement of the IPv6 architecture, and included the original specification of IPsec? Мне казалось, что она как-то по другому переводится.

IPsec не является каким-либо обязательным к использованию элементом в IPv6.
Не стоит мешать мухи с котлетами. IPsec являлся обязательным к использованию элементом как оно и разрабатывалось: в соответствующем разделе так просто и написано: The security features of IPv6 are described in the Security Architecture for the Internet Protocol [RFC-2401].

То, что после этого выяснилось, что всякие разные спецслужбы не допустят реализации IPv6 прямо в таком виде и потребовали сделать IPsec опциональным не означает, что «о безопасности тогда не думали», уж извините. Тем не менее и даже и сейчас в соответствующем RFC написано: Previously, IPv6 mandated implementation of IPsec and recommended the key management approach of IKE. This document updates that recommendation by making support of the IPsec Architecture [RFC4301]a SHOULD for all IPv6 nodes. Ну и всякие разные «buzzwords» объясняющие почему нужно MUST заменять на SHOULD.

Основной посыл, который я пробовал передать в этой статье, это то, что IPv6 уже пришел, его уже нужно знать и в том числе быть готовым к новым угрозам, которые он в себе несет.
Посыл хорош, но это не отменяет того факта, что в статье написана ложь, уж извините.
Тем более как там у вас IPSec через NAT работал, нормально?

Пропустил…

Если за NAT работает одна сторона, то проблем обычно нет.
Поправка, RIR'ам адреса были розданы уже фиг знает когда. Европа живёт в /8 — это следующий этап depletion. Сейчас плавно заканчиваются адреса у LIR'ов, которые хапали как не в себя в момент когда можно было, плюс идёт консолидация и подъедание sparse-диапазонов. Я знаю как минимум три сделки по покупке бизнеса, при котором бизнес покупался только за IP'шники.

Когда этот ресурс будет подъеден, наступит очередь локальной оптизимизации у конечных потребителей (не особо длинный). После этого начнётся настоящий дефицит с отказами по причине «нет свободных адресов».

По поводу «новый блок будет выдан». Не будет выдан. Всё. LIR может претендовать на /22 (я путаюсь — то ли /23, то ли /21), и больше никак и ни при каких условиях. Это называется last /8, и он уже года два.

Время LIR depletion очень трудно оценить, потому что LIRы отчаянно врали, хапая по максиму адреса на момент когда можно было.

По моим наблюдениям в перспективе пары лет адреса в нычках ещё есть.
Беларусь уже больше года, если не два сидит за NAT-ом. Это очень больно и неприятно, например, более половины суток забанен в гугле. Так что скорей бы уже эти «нычки» закончились и IPv6 пошло во все поля.
А туннель наружу и оттуда хоть IPv4, хоть v6? Или просто у tunnel broker-а взять IPv6 и уже сегодня радоваться?
сидит за NAT-ом

Tunnelbroker (который he.net) использует протокол SIP, а значит не работает за NAT. Для работы за NAT можно либо использовать брокера через протокол AYIYA (несколько брокеров), либо тех, у которых свой клиент.
Да, про he я погорячился, факт, привык с ними с белых ip работать. Но варианты-то за-NAT-ные есть, чем не способ получить нормальную связность?
UFO landed and left these words here
В IPv4 тоже нет проблем, даже в винде навешиваются десятки адресов стандартными средствами.

Тут есть еще интересные вещи, о которых не упоминают в статье. Например, параметр on-link у адреса. Грубо говоря, он указывает, как нужно маршрутизировать подсеть. Если у нас подсеть /64 и она on-link, то это означает, что все компьютеры доступны по мультикасту в пределах этой сети, и можно получать их MAC через NDP, а если нет on-link, то все запросы пойдут через gateway. Т.е., грубо говоря, в IPv4 вам для этого нужно бы было либо использовать /32 вместо /24 и бороться с неправильным source-адресом, когда запрос уходит на эту /24, в некоторых случаях, либо использовать arp proxy, а в IPv6 для этого свой такой вот удобный механизм.
Only those users with full accounts are able to leave comments. Log in, please.