Nov 6, 2014

Особенности протокола IPv6

Казалось бы, зачем сейчас вообще вспоминать про IPv6? Ведь несмотря на то, что последние блоки IPv4 адресов были розданы региональным регистраторам, интернет работает без каких-либо изменений. Дело в том, что IPv6 впервые появился в 1995 году, а полностью его заголовок описали в RFC в 1998. Почему так? Да по той простой причине, что разрабатывался он без учёта угроз, с той же доверительной схемой, что и IPv4, и в процессе разработки стояли задачи сделать более быстрый протокол и с большим количеством адресов, а не более безопасный и защищенный.

Если изучать графики, которые предоставляет региональный регистратор IP-адресов и автономных систем, то можно обнаружить, что по состоянию на первое сентября 2014 года количество зарегистрированных IPv6 автономных систем уже перевалило за 20%. На первый взгляд, это серьёзная цифра, но если брать во внимание только реальное количество IPv6 трафика в мире, то сейчас это около 6% от всего мирового интернет-трафика, хотя буквально три года назад было всего 0,5%.

По самым скромным оценкам ожидается, что к концу 2015 года доля IPv6 трафика дойдёт как минимум до 10%. И рост будет продолжаться. Кроме того, недавно вступил в силу специальный протокол для региональных регистраторов. Теперь новый блок IPv4 адресов будет выдан только в том случае, если компания докажет, что внедрила у себя IPv6. Поэтому если кому-то потребуется подсеть белых IPv4 адресов - придётся внедрять IPv6. Этот факт также послужит дальнейшему росту IPv6 автономных систем и увеличению интернет-трафика. Что же касается рядовых пользователей, то уже по всему миру начали появляться провайдеры, которые предоставляют конечным абонентам живые IPv6 адреса, причём абсолютно бесплатно. Именно поэтому IPv6 будет встречаться всё чаще и чаще, и мы не можем оставить это без должного внимания.

ЧТО НОВОГО В IPV6?

Первое, что бросается в глаза, - это адреса. Они стали длиннее, записываются в шестнадцатеричном виде и сложно запоминаются. Хотя, поработав некоторое время с IPv6, обнаруживаешь, что адреса в целом запоминаемые, особенно если используются сокращённые формы записи. Напомню, что IPv4 использует 32-битные адреса, ограничивающие адресное пространство 4 294 967 296 (2^32) возможными уникальными адресами. В случае IPv6 под адрес выделено уже 128 бит. Соответственно, адресов доступно 2^128. Это примерно по 100 адресов каждому атому на поверхности Земли. То есть адресов должно хватить на достаточно длительное время.

Адрес записывается в виде восьми групп шестнадцатеричных значений. Например, IPv6 адрес может выглядеть как 2001:DB88:11::1. Важно отметить, что IPv6 адресов на одном интерфейсе может быть несколько, причём это стандартная ситуация. Например, на интерфейсе может быть частный адрес, белый адрес и ещё по DHCPv6 придёт дополнительный адрес. И всё будет штатно работать, для каждой задачи будет использоваться свой адрес. Если нужно выйти в интернет, то будет использоваться белый адрес. Нужно подключиться к соседнему серверу? - трафик пойдет через частный адрес. Всё это решается обычным анализом поля destination.

Все IPv6 адреса делятся на две группы: линк-локал и глобал юникаст. По названию очевидно, что Link local - это адрес, который используется только в пределах одного линка. Такие адреса в дальнейшем применяются для работы целого ряда механизмов вроде автоматической настройки адреса, обнаружения соседних хостов или при отсутствии маршрутизатора. Для выхода в интернет такие адреса использовать не допускается.

Link local адрес назначается автоматически, как только хост выходит в он-лайн, чем-то отдалённо такие адреса похожи на механизм APIPA в ОС Windows. Такой адрес всегда начинается с FE80, ну а последние 64 бита - это MAC адрес с FFFE, вставленным посередине, плюс один бит инвертируется. Механизм формирования такого адреса ещё называется EUI-64. В итоге адрес будет уникальный, так как MAC адреса обычно отличаются у всех хостов, но некоторые ОС используют случайный идентификатор вместо механизма EUI-64.
IPv6 transit AS

ЧТО ЕЩЁ НОВОГО

Только адресами изменения, естественно не заканчиваются, в IPv6 значительно упрощён заголовок:
сравнение заголовков IPv6 и IPv4
 
Теперь всё, что не является обязательным для маршрутизации пакета из точки А в точку Б, стало необязательным. А раз необязательное - значит, переезжает в extension header, который лежит между IPv6 заголовком и TCP/UDP данными. В этом самом extension-заголовке уже и проживают фрагментирование, IPSec, source routing и множество другого функционала.

Резко упростили задачу маршрутизаторам, ведь теперь не надо пересчитывать контрольные суммы, и в итоге IPv6 обрабатывается быстрее, чем IPv4. Контрольные суммы убрали вовсе. Во-первых, у фрейма на уровне L2 есть CRC, во-вторых, вышележащие протоколы (TCP и ему подобные) тоже будут обеспечивать целостность доставки. В итоге из заголовка выбросили все лишние поля, стало проще, быстрее и надёжнее.

Автоконфигурирование и служебные протоколы

Существует два основных варианта назначения IPv6 адресов: stateless autoconfiguration - это когда маршрутизатор отправляет клиентам адрес сети, шлюза по умолчанию и прочую необходимую информацию и statefull autoconfiguration - когда используется DHCPv6 сервер. Поэтому если раньше DHCP был единственным вариантом раздачи информации, то в IPv6 он стал дополнительным. ICMPv6 тоже не остался без внимания, в него было добавлено множество фич. Например, механизм Router discovery - клиенты могут слушать, что сообщает им маршрутизатор (сообщения ICMPv6 тип 134 router advertisement, которые приходят в рамках процесса stateless autoconfiguration), и при включении могут сразу звать маршрутизатор на помощь, мол помоги сконфигурироваться (сообщения ICMPv6 тип 133 router solicitation).

Ещё добавили механизм Neighbor discovery - можно сказать, что это своеобразная замена ARP, которая помогает находить MAC адреса соседних хостов, маршрутизаторы и даже обнаруживать дублирующиеся адреса в сегменте (duplicate address detection - DaD), работает исключительно в multicast. Чистого broadcast в IPv6 уже нет, но не нужно забывать, что глупые трёхкопеечные коммутаторы весь мультикаст рассылают широковещательно, в итоге часть новых механизмов сводится на нет. 

No comments:

Post a Comment

Что не так в рублёвом процессинге?

В августе 2010 года студия Paramount Pictures выпустила в прокат фильм Middle Men («Меж двух огней»). Действие этой трагикомедии происходи...

Search This Blog