Тотальный ликбез по IPv6, где адресов хватит для интернета вещей и покорения Марса
30.05.2019
На 14-ой IT-пятнице hoster.by провёл тотальный ликбез по IPv6. Иван Семерник и Вадим Лаптенок сделали интро в дивный мир IPv6, где IP-адреса не закончатся в ближайшую сотню лет, а нули в адресе можно лихо сокращать на ::.
Если вы — системный администратор, работаете с сетями, пишете универсальные приложения (которые должны работать и в IPv4, и в IPv6), связаны с провайдингом интернета или просто любознательный юзер — читайте наше саммари.
Что такое IPv6 и зачем он нужен
IPv6 — это новая версия интернет протокола (IP), приходящая на смену пока ещё работающему IPv4. IPv6 призван решить проблемы предыдущей версии — в первую очередь, ограниченность адресного пространства. В IPv4 физически заканчиваются адреса. Чтобы места в сети хватило всем, ещё в 1996 году IETF выпустила протокол версии 6. Кстати, IPv5 существует, но это экспериментальный протокол для передачи исключительно видео и аудио потоков.
Адресов в IPv6 много (так кажется по крайней мере пока мы не подключили к сети все важные физические объекты и не построили глобальный интернет вещей): 5 x 10 ^ 28. Из этого количества на одного человека приходится 4,7 х 1028 (!) адресов. Тогда как в IPv4 примерно всего лишь 0,5 адреса.
Когда уже все перейдут на IPv6?
Перейдут, но не скоро и не сразу. Протоколу IPv6 уже 21 год, но активно внедрять его начали только с 2009 года. В 2011 году крупные операторы вроде Google заявили о поддержке IPv6 — с этого момента начался рост доли протокола v6 в мировом трафике. На сегодня это примерно 25% от глобального трафика. Неплохо, учитывая, что в 2012 году трафик по v6 составлял всего 1%.
Новый протокол, как наступившее будущее, пока распределён неравномерно: в Германии на Google по v6 заходит около 50% пользователей, в Эстонии — 30%, в Украине — около 15%, а в Беларуси пока только 0,03%.
Это постепенный процесс: о том, что все в мире резко откажутся от IPv4, речи не идёт. Но адресное пространство в IPv4 заканчивается, а доля IPv6 растёт. Скоро мы придём к параллельному использованию двух протоколов (dual stack) и постепенной замене устаревших устройств, не поддерживающих IPv6.
hoster.by начал внедрять IPv6 на своих серверах в 2017 году, столкнувшись с той самой проблемой нехватки IPv4 адресов. Ещё один важный мотив перехода на новый протокол — независимость ресурсов клиентов друг от друга. На одном IP-адресе в IPv4 обычно размещается много сайтов: если атакуют или блокируют один из них, трудности в работе могут испытывать и другие. Поэтому hoster.by заинтересован в том, чтобы у каждого клиента был свой отдельный IP-адрес.
Основные проблемы IPv6
Это не глобальные препятствия для работы с новым протоколом. Но они есть, и о них нужно знать.
Неустоявшаяся практика. Мир всё ещё решает, как будет развиваться технология. С 2009 года ряд сообществ и крупных компаний написали много протоколов (и часть из них отличные), но они не получили применения.
Отсутствие поддержки со стороны части ПО. Яркий пример — Android, часть версий прошивок которого поддерживает работу с IPv6, а часть — нет. Но есть прогресс: Skype уже полностью работает на IPv6, хотя два года назад нельзя было отправить даже текстовое сообщение, находясь в сети IPv6.
Отсутствие поддержки Dual Stack Fallback (параллельное использование IPv6 и IPv4 + откат к IPv4, если IPv6 не работает) в приложениях, некоторых функциях языков программирования.Также технологию не поддерживают старые версии браузеров.
Как выглядит IPv6 адрес и как к нему подключиться
IPv6 адрес 128-битный, отображается как восемь четырёхзначных групп символов, разделённых двоеточием. Адрес в IPv6 состоит из трёх частей:
1. site prefix (обычно обозначает назначение сети компании, клиента или организации).
2. subnet ID (входит в состав site prefix).
3. interface ID (то что присваивается конечному сетевому интерфейсу хоста, сервера, ноды, сервису и т.д.).
В Windows можно встретить форму записи, когда через % к адресу добавляется ID интерфейса. Например, 2001:0db8:11a3:09d7:1f34:8a2e:07a0:765d%17. В других ОС указание ID тоже можно встретить в другой форме, поскольку в IPv6 есть различные области видимости IP-адресов. Среди них — область link local, в которой IP-адрес может быть одинаковым на двух разных интерфейсах. В таких случаях нужно указывать ID интерфейса.
Если к ресурсу нужно обратиться по IPv6-адресу, он берётся в квадратные скобки. После скобок может указываться порт.
В DNS IPv6-адрес — это AAAA-запись (IPv4 указывается как A-запись). PTR-запись — это, в случае с IPv6, IP-адрес, разложенный в полной форме в обратном порядке. К нему добавляется домен «ip6.arpa».
IPv6 не работает без ICMP протокола. Если в файерволе вы не разрешите ICMP-протокол (хотя бы минимально необходимые типы ICMP сообщений), IPv6 работать должным образом не будет.
Как указывается адресация в IPv6
IPv6 адрес можно указывать в полной или сжатой форме. Полная — представление всех бит цифрами. Сжатая — тот же вариант с сокращёнными нулями. Важное правило: любое количество нулей, идущих подряд, можно сократить в один ноль, но только один раз. В адресе результат сокращения заменяется на два двоеточия — «::». Нули слева в каждом квартете (четырёхзначной группе символов) тоже можно сжать и заменить двоеточием. Если квартет начинается с другой цифры, то нули, идущие за ней, указываются полностью. Префикс указывается через /.
Если вы привыкли работать с IPv4, то для IPv6 вам придётся немного поменять своё мышление. В IPv6 нет понятия «маска подсети» в её классическом варианте с бродкастом и адресом сети. Префикс обозначает часть адреса, которая маршрутизируется. Всё остальное — адрес, который назначается на конкретный хост.
Есть проблема: приложения, написанные исключительно под IPv4, могут не работать в IPv6. Но их можно сделать универсальными, модифицировав код. Больше о портировании приложений и программировании сокетов IPv6 можно узнать здесь.
Из в 2128 адресов мировое сообщество пока решило использовать только 1/8 часть. IAAN зарезервировал первый блок 2000/3, чтобы раздать его региональным сообществам. Они будут назначать адреса провайдерам, а те, в свою очередь, конечным потребителям. Регистратору RIPE NCC (который обслуживает регион Европы, части Ближнего Востока и Азии) выделили блок … /12, из которого тот начал раздавать блоки локальным интернет-регистраторам (LIR’ам).
hoster.by получил блок 2a0a:7d80:/29. Из этого блока он назначает диапазоны адресов типа 2a0a:7d80:/48 себе, внутренним и внешним клиентам. Провайдер может выдавать адреса /56 (разного рода организациям) и /64 (конечному пользователю на сеть или конкретный L2-домен).
Региональные комьюнити не регулируют правила назначения IP-адресов внутри компании, но предлагают рекомендации. Опираясь на них, в hoster.by пришли к своей схеме назначения IP. Вот по каким принципам здесь раздают IP-адреса:
- используют адресацию из блока LIR 2a0a:7d80:/29;
- на каждый ЦОД добавляют свой блок /48. Это префикс, который транслируется в мир протоколами маршрутизации. Если его не хватает, можно добавить префиксы /48;
- на каждый L2-домен добавляют /64;
- на каждое наше юрлицо, большой проект или крупного клиента выделяют /80;
- далее в рамках этого /80 на каждую категорию (DNS / HOSTING) выделяют /96;
- далее на каждый наш сервер в категории или сервер / vps клиента выделяют /112 (что составляет 65535 адресов на сервер).
Новый протокол по умолчанию используется на всех DNS-серверах инфраструктуры TLD (обслуживание всех доменов в зонах BY и БЕЛ). По IPv6 работает «облако» hoster.by. Чтобы добавить его на виртуальный сервер, необходимо указать интерфейс v6 и прописать нужный IP-адрес. Либо не заполнять это поле и получить рандомный адрес из пула.
IPv6 поддерживают DNS-редакторы на hoster.by и Shared hosting. За последний год компания переключила на новый протокол около 30 серверов. В Беларуси более 50 000 сайтов только на хостинге от hoster’a поддерживают IPv6.
hoster выдаёт один IPv6 на аккаунт: если у клиента на хостинге размещено пять сайтов, все они будут принадлежать одному IP-адресу. При этом адреса выдаются в формате /112 на colocation, на услуги кластеров или крупных клиентов — /80 или /96, в зависимости от их потребностей.
Новый протокол доступен и для защищённого хостинга. Там его можно назначить самостоятельно в настройках, либо по запросу в техподдержку.
Прямо сейчас hoster переводит на протокол v6 почтовый сервис и услугу стриминга.
- Проверить корректность настройки IPv6: test-ipv6.com и ipv6-test.com;
- Вести учёт IP-адресации: Rack Tables, NetBox или другие IPAM;
- Узнать об IPv6 больше: видео и руководства от CBT Nuggets (Concepts, implementation and verification of IPv6), CiscoPress (IPv6 Fundamentals), RIPE, PluralSight (IPv6 and Microsoft Windows);
- Работать на переходных этапах от IPv4 к IPv6: 6in4, 6RD, NAT64 / DNS64, 464XLAT, DS-Lite, MAP-E / MAP-T, Dual Stack (вариант, при котором на хосте есть и IPv4, и IPv6). Если есть возможность использовать Dual Stack, делайте это. Он самый простой в настройке и эксплуатации.
***
IТ-пятницы в hoster.by проходят каждый месяц в формате открытых встреч для системных инженеров, разработчиков, ИT-директоров и специалистов по безопасности. Доклады, дискуссии и практические кейсы бесплатно проводят практикующие специалисты крупных компаний Беларуси, России и Украины. Профессиональное комьюнити собрало уже 400 специалистов.