Когда IP-адресов будет хватать всем?

в 11:22, , рубрики: DualStack, IPv6, Pv4v6, Блог компании МТС, МТС, Тестирование IT-систем

Количество IP-адресов для устройств, доступных в глобальной сети по протоколу IPv4, достигло порядка 4,3 млрд и уже практически исчерпано из-за длины IP-адреса в 32 бита. В адресном пространстве IPv6 задействовано 128 бит, что делает практически бесконечным количество адресуемых устройств. Прямой и простой совместимости друг с другом у протоколов IPv4 и IPv6 нет. Именно из-за этого быстрого и дешевого перехода на IPv6 only не будет. Страшно? Да нет. Просто нужно вступить на эту дорогу — и рано или поздно мы войдем в эру «чистого» IPv6. Хорошо это или плохо?

image

Недавно у абонентов МТС Центрального федерального округа появилась возможность опробовать выход в интернет с использованием IPv6. За одну сессию по этому протоколу абоненту выдается адресация сразу в двух стандартах: IPv4 и IPv6. Такой режим называется Dual-Stack. Для того, чтобы ваше устройство работало с IPv6, необходимо подключить бесплатную услугу «Доступ к IPv6», а также произвести некоторые настройки на абонентском терминале. В этом посте подробнее о новой услуге расскажет наш специалист Олег Ермаков, его ник на Хабрхаб — eov. Передаем ему слово.

Всем привет! Мой рассказ будет состоять из двух частей. Первая описывает пользовательские настройки и способы контроля, что все у вас идет по плану. Вторая — уже дает краткий экскурс в технологию: как это сделано на сети сотового оператора в поле «3GPP-access». Сегмент «non-3GPP» затрагиваться не будет. Это тема для отдельной статьи.

Часть I

В результате перехода на новый протокол абонент имеет следующее:

1. Сервисы, которые работают с IPv6 адресацией, будут получать и передавать трафик БЕЗ использования NAT. Не знаю, все ли сталкивались с тем, что на поисковый запрос в Google иногда требуется ввести Captcha-код, или Google вообще отказывает в поиске. Причина в том, что Google считает, что с одного public IP идет слишком много запросов, и это воспринимается им как роботизированный опрос.

image image

2. Абонент получит public IPv6 адрес, и на него будет доступен «входящий» трафик из интернета. Сейчас же из-за применения NAT сделать это не просто.

3. Абонент, который «раздает» интернет, получит возможность на каждое устройство, которое находится за «раздающим», иметь свой IPv6 адрес. Предлагаю обсудить плюсы и минусы этого в комментариях…

Не скрою, что от перехода на IPv6 выигрываем и мы (оператор): чем больше абонентов перейдет на IPv6, тем меньше потребуется IPv4 адресов для NAT/PAT трансляций. Уверен, что 99% абонентов не задумывается о том, что в итоге финансовые затраты на закупку дополнительного пространства IPv4 понесут именно они.

Предвижу вопрос: «Когда данная услуга станет доступна абонентам всей страны»? Отвечаю. Мы работаем над этим и постараемся запустить на большей части сети доступ до конца лета этого года.

На нашем сайте есть инструкция настройки, там расписаны общие положения. Дополнительно хочу пояснить несколько моментов:

1. Пока Dual-Stack работает только на устройствах с ОС Android, Windows и на некоторых роутерах. В ближайшее время IPv6 можно будет включить и на мобильных устройствах Apple. Однако, для обеспечения работоспособности с устройствами на iOS нам нужно пройти ряд дополнительных тестов. Прошу отнестись к этому с пониманием и набраться терпения. Пока получить IPv6 на устройствах Apple можно путем подключения к «мобильной точке доступа» с работающей услугой IPv6 через Wi-Fi.

2. На текущем этапе услуга ориентирована в первую очередь на продвинутых пользователей, которые понимают, что и зачем делают. Вы приобщаетесь к высоким технологиям, а мы изучаем ваш клиентский опыт, что на данном этапе крайне важно. Мы рассчитываем получить отзыв пользователей, доработать и усовершенствовать услугу. В дальнейшем мы планируем упростить подключение и отказаться от «услуги» как таковой и сделать функционал IPv6 доступным в настройках телефонов по умолчанию «из коробки». В идеале переход на IPv6 в мобильных сетях МТС планируется бесшовным.

3. В настройках подключения в ОБЯЗАТЕЛЬНОМ порядке нужно указать APN internet.mts.ru и тип протокола IPv4v6 (это ВАЖНО). Основным признаком верного указания APN является то, что абоненту выдается IPv4 адрес из диапазона 10.0.0.0/8 RFC1918, а не из диапазона 100.64.0.0/10 RFC6598. Если же в настройках телефона выбран протокол IPv4 или IPv6, то сеть выдаст ровно то, что и запрошено (IPv4 ИЛИ IPv6). В первом случае все будет работать по IPv4, а во втором — бОльшая часть интернет-ресурсов станет недоступна просто потому, что далеко не все перешли на IPv6. Если все сделано правильно, то будет выдано два адреса IPv4 и IPv6 (Dual-Stack). Мы пока намеренно не планируем распространять решение на «неверные настройки» (с неверным APN). Поступая таким образом, мы исходим из принципа «не навреди».

4. Для доступа к интернет-ресурсам в IPv6-адресации необходимо, чтобы и система DNS работала как положено. Для абонентских сессий с IPv4v6 выдается и IPv6 DNS сервер. Наличие IPv6 DNS серверов не обязательно, потому что и IPv4 сервера успешно резолвят AAAA записи. При подключении к сети мы выдаем оба сервера исключительно для того, чтобы все было «по фэншую».

5. Обратите особое внимание на то, что абоненту выдается public IPv6 адрес (на самом деле блок адресов /64), который доступен из сети интернет! Не стоит пренебрегать элементарными мерами безопасности. Крайне желательно установить антивирус и Firewall.

Таким образом, абоненты имеют IPv4 и IPv6 адрес. Резолвинг интернет-ресурсов осуществляется и по IPv4, и по IPv6. Дело за приложениями. По нашему опыту, браузер Google Chrome в первую очередь использует протокол IPv6 для ресурсов, которые имеют возможность работать по IPv6. Например, такие популярные ресурсы как Yandex и Google уже давно работают по IPv6.

Для проверки можно использовать ресурс test-ipv6.com. Если все настроено верно, то тест покажет оценку 10 из 10.

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

image

Часть II

Здесь мы углубимся в профессиональную область. Те, кто предпочтет ограничиться прикладной частью повествования, прошу комментировать или писать в личку свои вопросы. Сразу скажу, что не смогу помочь всем, но готов рассмотреть особо интересные случаи. Спасибо за понимание.

IPv6 как таковой появился в 1998 году и описан в RFC2460, поддержка IPv6 в мобильных сетях появилась в рекомендациях 3GPP Rel99 (2000 г). Широкого распространения технология не получила. Вероятно, тогда мало кто в мире знал, что такое IPv6, а недостатка в IPv4 адресах не предвиделось. Спустя 10 лет острой необходимости так и не возникло, поэтому мы проводили внутреннее тестирование, но внедрять не стали.

Начиная с 3GPP Rel8 для сетей LTE возникает эпоха Dual-Stack. Преимущества — налицо. Dual-Stack делает ненужными такие технологии как NAT64 и DNS64, при сохранении «обратной совместимости» с сетями на IPv4, по сути, делая плавный переход между технологиями.

Стало лучше, и это уже можно было использовать. К сожалению, при установлении соединения сеть поднимает два PDP контекста и неэффективно использует ресурсы сети.

image

Дальнейшее развитие Dual-Stack получило в 3GPP Rel9. В нем появилась поддержка для сетей 2G/3G и в нем же появилась возможность выдавать IPv4 и IPv6 адрес в рамках одного PDP контекста (bearer-а). Именно эта технология и применяется на сети МТС.

image

Если заглянуть чуть глубже, можно сказать, что 3GPP Rel10 описывает технологию DHCPv6 Prefix Delegation (DHCPv6-PD). Сейчас необходимость ее использования в мобильной сети неочевидна. Если есть конкретные предложения — пишите в комментариях или в личку.

Для того чтобы технология заработала, была включена поддержка необходимого функционала на сетевых элементах HLR/HSS, SGSN/MME, GGSN/PGW, PCRF, OCS, CDR-коллектор, ну и, конечно, на транспортной сети.

image

HLR/HSS
Подключение услуги приводит к тому, что в HLR и в HSS меняется тип протокола в настройках APN-а с IPv4 на IPv4v6 (или both). В спецификации TS 29.272 (Rel9) дословно говорится следующее:

7.3.62 PDN-Type...

7.3.62 PDN-Type
The PDN-Type AVP is of type Enumerated and indicates the address type of PDN. The following values are defined:

IPv4 (0)
This value shall be used to indicate that the PDN can be accessed only in
IPv4 mode.

IPv6 (1)
This value shall be used to indicate that the PDN can be accessed only in IPv6 mode.

IPv4v6 (2)
This value shall be used to indicate that the PDN can be accessed both in IPv4 mode, in IPv6 mode, and also from UEs supporting dualstack IPv4v6.

IPv4_OR_IPv6 (3)
This value shall be used to indicate that the PDN can be accessed either in IPv4 mode, or in IPv6 mode, but not from UEs supporting dualstack IPv4v6. It should be noted that this value will never be used as a requested PDN Type from the UE, since UEs will only use one of their supported PDN Types, i.e., IPv4 only, IPv6 only or IPv4v6 (dualstack). This value is only used as part of the APN subscription context, as an authorization mechanism between HSS and MME.

Как Вы уже догадались, мы используем опцию 2.

SGSN/MME
Настройка этих устройств для поддержки IPv6 несложная, она, по сути, ограничивается активацией соответствующей лицензии и включением поддержки dual-address-pdp для сервисов SGSN и MME, а также в настройках RNC, подключенных к SGSN.

PGW/GGSN
Уже не все так просто. Модернизации подвергаются:
— интерфейсы в сторону транспортной сети (поднимается address-family ipv6), и прописывается IP маршрутизация;
— прописываются ip-pool, из которых абонентам выдаются адреса;
— активируется поддержка IPv6 на APN;
— прописывается IPv6 DNS, который будет выдаваться абоненту при подключении.

PCRF/OCS
Обмен PGW c PCRF и OCS производится по протоколу Diameter (интерфейсы Gx и Gy соответственно). Особенность активации IPv6 только в том, что в этом сигнальном обмене появляется AVP Framed-IPv6-Prefix и добавляется еще одна AVP PDP-Address c IPv6 адресом. Соответственно, PCRF и OCS должны их принимать и учитывать (сохранять).

CDR-коллектор
Ожидаемо, что изменился формат CDR записей. Абонентский IPv4 адрес переместился в новое поле servedPDPPDNAddressExt, а IPv6 адрес будет записываться в servedPDPPDNAddress (это поле изначально поддерживало и IPv4 и IPv6).

recordType...

recordType PGWRECORD
servedIMSI 25001**********
p-GWAddress 213.87.x.x
chargingID 15934348563
servingNodeAddress 213.87.x.x
accessPointNameNI internet.mts.ru
pdpPDNType IPV4+IPV6
servedPDPPDNAddress 2a00:1fa0:800::5c:7ef:201
servedPDPPDNAddressExt 10.21.12.11
servinggNodePLMNIdentifier 250, 01
servedIMEISV 35915***********
rATType eUTRAN
mSTimeZone +03:00,

Транспортная сеть
Поднимается address-family ipv6 и прописывается маршрутизация.

В заключение я хочу задать вам вопрос.

Автор: info_habr

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js