[Перевод] Тренинг Cisco 200-125 CCNA v3.0. День 24. Протокол IPv6

Сегодня мы будет изучать протокол IPv6. Предыдущая версия курса CCNA не требовала детального ознакомления с этим протоколом, однако в третьей версии 200–125 его углубленное изучение является обязательным для сдачи экзамена. Протокол IPv6 был разработан довольно давно, однако долгое время не находил широкого применения. Он очень важен для дальнейшего развития интернета, поскольку предназначен для устранения недостатков повсеместно распространенного протокола IPv4.

Так как протокол IPv6 — довольно обширная тема, я разбил ее на два видеоурока: День 24 и День 25. Первый день мы посвятим основным понятиям, а на второй рассмотрим настройку IP адресов по протоколу IPv6 для устройств Cisco. Сегодня мы как обычно рассмотрим три темы: необходимость IPv6, формат адресов IPv6 и типы адресов IPv6.

wzm54ammcpnftl9qkiqivaeuatk.jpeg

До сих пор на наших уроках мы пользовались IP-адресами по протоколу v4, и вы привыкли к тому, что они выглядят достаточно просто. Когда вы видели адрес, изображенный на этом слайде, то прекрасно понимали, о чем идет речь.

Однако IP-адреса v6 выглядят совсем по-другому. Если вы не знакомы с принципом создания адресов в этой версии интернет-протокола, в первую очередь вас удивит, что IP-адрес этого типа занимает очень много места. В четвертой версии протокола у нас было всего 4 десятичных числа, и с ними было все просто, но представьте себе, что вам понадобиться назвать некому мистеру X его новый IP-адрес типа 2001:0db8:85a3:0000:0000:8a2e:0370:7334.

mllew97xugdw16jlqzdefy_4ccu.jpeg

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

tosrnqfmzhspkjtoly3dwevmfdu.jpeg

Сегодня большинство людей пользуются IPv4 и вполне довольны. Зачем же понадобилось переходить на новую версию? Во-первых, IP-адреса 4-й версии состоят из 32 бит. Это позволяет создать в интернете примерно 4 миллиарда адресов, то есть точное число IP-адресов составляет 232. На момент создания IPv4 разработчики считали, что такого количества адресов более чем достаточно. Если вы помните, адреса этой версии делятся на 5 классов: действующие классы A, B, C и резервные классы D (мультикастинг) и E (исследования). Таким образом, хотя количество рабочих IP-адресов составляло всего 75% от 4-х миллиардов, создатели протокола были уверены, что их хватит на все человечество. Однако в связи со стремительным развитием интернета с каждым годом стала ощущаться нехватка свободных IP-адресов, и если бы не использование технологии NAT, свободные адреса IPv4 давно бы закончились. Фактически NAT стала спасителем этого интернет-протокола. Вот почему возникла необходимость в создании новой версии интернет — протокола, лишенного недостатков 4-й версии. Вы можете спросить, почему с четвертой версии перешли сразу к шестой. Это связано с тем, что версия 5, как и версии 1,2 и 3, были экспериментальными.

Итак, IP-адреса v6 имеют 128-битное адресное пространство. Как вы думаете, во сколько раз увеличилось количество возможных IP-адресов? Вероятно, вы скажете: «в 4 раза!». Но это не так, потому что 234 уже в 4 раза больше, чем 232. Так что значение 2128 является невероятно большим — оно равно 340282366920938463463374607431768211456. Таково количество IP-адресов, доступных по протоколу IPv6. Это значит, что вы можете присвоить IP-адрес всему, чему захотите: вашему автомобилю, телефону, наручным часам. Современный человек может иметь ноутбук, несколько смартфонов, умные часы, умный дом — телевизор, подсоединенный к интернету, стиральную машину, соединенную с интернетом, целый дом, подсоединенный к сети Интернет. Такое количество адресов позволяет осуществить концепцию «интернет вещей», которую поддерживает Cisco. Это означает, что в вашей жизни все вещи соединены с интернетом, и всем им нужен свой IP-адрес. С IPv6 это возможно! Каждый человек на Земле может использовать для своих устройств миллионы адресов этой версии, и все равно останется слишком много свободных. Мы не можем прогнозировать, как будут развиваться технологии, однако можно надеяться, что человечество не придет к тому времени, когда на Земле останется всего 1 компьютер. Можно предположить, что IPv6 просуществует еще долгое-долгое время. Давайте рассмотрим, что представляет собой формат IP-адреса шестой версии.

fxnjtxz8oyludl7gkeecnz4soui.jpeg

Эти адреса отображаются в виде 8 групп шестнадцатеричных чисел. Это значит, что каждый знак адреса имеет длину 4 бита, таким образом, каждая группа из 4-х таких знаков состоит из 16 битов, а весь адрес имеет длину 128 бит. Каждая группа из 4 знаков отделяется от следующей группы двоеточием, в отличие от адресов IPv4, где группы разделялись точками, потому что точка является десятичной формой представления чисел. Поскольку запомнить такой адрес нелегко, существует несколько правил, позволяющих его сократить. Первое правило гласит, что группы, состоящие из одних нулей, можно заменить двойным двоеточием. Подобную операцию можно проделать над каждым IP-адресом всего 1 раз. Рассмотрим, что это значит.

Как видите, в приведенном примере адреса имеется три группы по 4 нуля. Суммарное количество двоеточий, разделяющих эти группы 0000:0000:0000 равно 2. Таким образом, если использовать двойное двоеточие::, это будет означать, что в данном месте адреса расположены группы нулей. Как же узнать, сколько групп нулей обозначает это двойное двоеточие? Если посмотреть на сокращенную форму записи адреса, можно начитать 5 групп по 4 знака. Но поскольку мы знаем, что полный адрес состоит из 8 групп, значит, двойное двоеточие обозначает 3 группы по 4 нуля. Таково первое правило сокращенной формы адреса.

pid9fb4hkk6sdq8ln6ayulbhfic.jpeg

Второе правило гласит, что можно отбрасывать начальные нули в каждой группе знаков. Например, 6 группа полной формы адреса выглядит как 04FF, а ее сокращенная форма будет выглядеть как 4FF, потому что мы отбросили начальный нуль. Таким образом, запись 4FF означает не что иное, как 04FF.

Пользуясь этими правилами, можно сократить любой IP-адрес. Однако даже после сокращения этот адрес не выглядит действительно коротким. Позже мы рассмотрим, что с этим можно поделать, пока что просто запомните эти 2 правила.

Давайте рассмотрим, что представляют собой заголовки адресов версии IPv4 и IPv6.

2evayd0v0nafuynjetm8_9yquha.jpeg

Эта картинка, которую я взял из Интернета, очень хорошо объясняет разницу между двумя заголовками. Как видите, заголовок адреса IPv4 намного сложнее и содержит в себе больше информации, чем заголовок IPv6. Если заголовок сложный, то роутер затрачивает больше времени на его обработку для принятия решения маршрутизации, поэтому при использовании более простых IP-адресов шестой версии роутеры работают более эффективно. Вот почему IPv6 намного лучше IPv4.

Длина заголовка IPv4 от 0 до 31 бита занимает 32 бита. Без учета последней строки Options и Padding IP-адрес версии 4 представляет собой 20-байтовый адрес, то есть его минимальный размер равен 20 байтов. Длина адреса шестой версии не имеет минимального размера, и такой адрес имеет фиксированную длину 40 байтов.

В заголовке IPv4 сначала идет версия, затем указывается длина заголовка IHL. По умолчанию это 20 байт, но если в заголовке указывается дополнительная информация Options, он может иметь большую длину. Если использовать Wireshark, то можно прочитать значение Version, равное 4, и значение IHL, равное 5, что означает пять вертикальных блоков по 4 байта (32 бита) в каждом, не считая блока Options.

bvcjruc_vr2jx5ctzafypp6azz4.jpeg

Вид сервиса Type of Service указывает на характер пакета — например, голосовой пакет или пакет данных, потому что голосовой трафик имеет приоритет перед остальными видами трафика. Короче говоря, это поле указывает на приоритет трафика. Общая длина Total Length представляет собой сумму длины заголовка 20 байт плюс длину полезной нагрузки, которая представляет собой передаваемые данные. Если она равна 50 байтам, то общая длина будет иметь значение 70 байтов. Идентификация пакета Identification служит для проверки целостности пакета, используя параметр контрольной суммы заголовка Header Checksum. Если пакет фрагментирован на 5 частей, каждая из них должна иметь одинаковый идентификатор — смещение фрагмента Fragment Offset, которое может иметь значение от 0 до 4, при этом каждый фрагмент пакета должен иметь одинаковое значение смещения. Флаги показывают, допускается ли смещение фрагментов. Если вы не хотите, чтобы происходила фрагментация данных, вы устанавливаете флаг DF — don«t fragment. Существует флаг MF — more fragment. Это означает, что если первый пакет фрагментирован на 5 частей, то для второго пакета будет установлен 0, означающий — больше никаких фрагментов! При этом последний фрагмент первого пакета будет помечен 4, так что принимающее устройство сможет легко деассемблировать пакет, то есть применить дефрагментацию.

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

Поля Identification, Flags, Fragment Offset и Header Checksum были исключены по причине того, что в современных условиях передачи данных фрагментации не происходит и проверка контрольной суммы не требуется. Много лет назад, при медленной передаче данных, фрагментация была довольно частым явлением, но сегодня повсеместно используется Ethernet стандарта IEEE 802.3 c MTU размером 1500 байтов, и фрагментация больше не встречается.

TTL, или время жизни пакета, представляет собой счетчик с обратным отсчетом — когда время жизни достигает 0, пакет отбрасывается. Фактически это максимальное количество хопов, которые можно совершить в данной сети. Поле Protocol показывает, какой протокол, TCP или UDP, используется в сети.

Header Checksum является устаревшим параметром, поэтому он исключен из новой версии протокола. Далее располагаются поля 32-битного адреса источника и 32-битного адреса назначения. Если у нас имеется какая-то информация в строке Options, то величина IHL изменяется с 5 на 6, показывая, что в заголовке имеется дополнительное поле.
В заголовке IPv6 так же используется версия Version, а класс трафика Traffic Class соответствует полю Type of Service в заголовке IPv4. Метка потока Flow Label похожа на Traffic Class и служит для упрощения маршрутизации однородного потока пакетов. Payload Length означает длину полезной нагрузки, или размер поля данных, расположенных в поле ниже заголовка. Длина самого заголовка в 40 байт является постоянной и поэтому нигде не упоминается.

Поле «следующий заголовок», Next Header, указывает, какой тип заголовка будет иметь следующий пакет. Это очень полезная функция, которая задает тип следующего транспортного протокола — TCP, UDP и т.д, и которая будет очень востребована в последующих технологиях передачи данных. Даже если вы используете собственный протокол, то сможете узнать, какой протокол будет следующим.

Предельное число шагов, или Hop Limit, является аналогом TTL в заголовке IPv4, это механизм для предотвращения зацикливания маршрутизации. Далее располагаются поля 128-битного адреса источника и 128-битного адреса назначения. Весь заголовок имеет размер 40 байт. Как я сказал, IPv6 намного проще IPv4 и намного эффективнее для принятия роутером решений маршрутизации.
Рассмотрим типы адресов IPv6. Мы знаем, что такое unicast — это направленная передача, когда одно устройство напрямую связано с другим и оба устройства могут общаться только друг с другом. Мультикаст представляет собой широковещательную передачу и означает, что несколько устройств одновременно могут связаться с одним устройством, которое, в свою очередь, может одновременно поддерживать связь с несколькими устройствами. В этом смысле мультикаст похож на радиостанцию, сигналы которой распространяются повсюду. Если вы хотите услышать конкретный канал, то должны настроить свое радио на конкретную частоту. Если вы помните видеоурок о протоколе RIP, то знаете, что этот протокол для рассылки обновлений использует широковещательный домен 255.255.255.255, к которому подсоединены все подсети. Но эти обновления получат только те устройства, которые используют RIP протокол.

Ещё один тип вещания, который не встречался в IPv4, называется Anycast. Он используется в том случае, когда у вас имеется множество устройств с одним и тем же IP-адресом и позволяет рассылать пакеты ближайшему адресату из группы получателей.

blxdb6xgwmqbopujp-njgp6ktge.jpeg

В случае с Интернетом, где у нас имеются CDN-сети, можно привести пример сервиса YouTube. Этим сервисом пользуются множество людей в разных частях света, но это не означает, что все они подсоединяются напрямую к серверу компании в Калифорнии. Сервис YouTube имеет множество серверов по всему свету, например, сервер моего индийского YouTube расположен в Сингапуре. Аналогично протокол IPv6 имеет встроенный механизм для осуществления передачи по технологии CDN с помощью географически распределенной сетевой структуры, то есть использует Anycast.

Как вы заметили, здесь отсутствует ещё один тип вещания, Broadcast, потому что протокол IPv6 его не использует. Но Multicast в этом протоколе действует аналогично Broadcast в IPv4, только более эффективным способом.

Шестая версия протокола использует три типа адресов: Link Local, Unique Site Local и Global. Мы помним, что в IPv4 один интерфейс имеет только один IP-адрес. Предположим, что у нас есть два роутера, связанные друг с другом, так вот, каждый из интерфейсов подключения будет иметь только 1 IP-адрес. При использовании IPv6 каждый интерфейс автоматически получает IP-адрес типа Link Local. Эти адреса начинаются с FE80::/64.

7n9ecxdtmbcazut5gzcc6rvt4lg.jpeg

Данные IP-адреса используются только для локальных соединений. Люди, работающие с Windows, знают очень похожие адреса вида 169.254.Х.Х — это адреса, автоматически конфигурируемые по протоколу IPv4.

Если компьютер обращается к DHCP серверу за получением IP-адреса, но по какой-то причине не может установить с ним связь, в устройствах Microsoft имеется механизм, который позволяет компьютеру присвоить IP-адрес самому себе. При этом адрес будет примерно такой: 169.254.1.1. Аналогичная ситуация возникнет, если у нас имеется компьютер, свитч и роутер. Предположим, роутер не получил IP-адрес от DHCP-сервера и автоматически назначил сам себе такой же IP-адрес 169.254.1.1. После этого он через свитч разошлет по сети широковещательный ARP-запрос, в котором спросит, не имеет ли какое-то сетевое устройство этот адрес. Получив запрос, компьютер ответит ему: «Да, у меня точно такой же IP-адрес!», после чего роутер назначит себе новый случайный адрес, например, 169.254.10.10, и снова разошлет по сети ARP-запрос.

vi7xdyruw75xkyxsli7_lwfb25k.jpeg

Если никто не сообщит, что имеет такой же адрес, то он оставит адрес 169.254.10.10 себе. Таким образом, устройства в локальной сети могут вообще не использовать DHCP-сервер, пользуясь механизмом автоматического назначения IP-адресов самим себе, чтобы установить друг с другом связь. Вот в чем заключается автоконфигурация IP-адресов, с которой мы встречались много раз, но никогда не использовали.

Аналогичным образом в протоколе IPv6 имеется механизм назначения локальных IP-адресов Link Local, начинающихся с FE80::. Слеш 64 означает разделение адресов сети и адресов хоста. При этом первые 64 означают сеть, а вторые 64 — хост.

x0uy1ut2vl3dxlpfsjubjcibemq.jpeg

FE80:: означает адреса вида FE80.0.0.0/, где после слеша расположена часть адресов хоста. Эти адреса неодинаковы для нашего устройства и соединенного с ним интерфейса и конфигурируются автоматически. При этом часть хоста использует MAC-адрес. Как известно, MAC-адрес представляет собой 48-битный IP-адрес, состоящий из 6 блоков по 2 шестнадцатеричных числа. Такую систему использует Microsoft, у Cisco используется 3 блока по 4 шестнадцатеричных числа.

f5wn6daf8bk7jgi3gufoopti-58.jpeg

В нашем примере мы будем использовать последовательность Microsoft вида 11:22:33:44:55:66. Как же назначает MAC-адрес устройства? Эта последовательность чисел в адресе хоста, представляющая собой MAC-адрес, делится на две части: слева располагаются три группы 11:22:33, справа три группы 44:55:66, а между ними добавляется FF и FE. Таким образом, создается 64 битный блок IP-адреса хоста.

zyvuwnbvdplipp_s1cjavbbkz8i.jpeg

Как известно, последовательность вида 11:22:33:44:55:66 представляет собой MAC-адрес, уникальный для каждого устройства. Установив между двумя группами чисел MAC-адреса FF: FE, мы получаем уникальный IP-адрес данного устройства. Вот таким образом создается IP-адрес типа Local Link, который используется только для установления связи между соседями без специальной конфигурации и специальных серверов. Такой IP-адрес может использоваться только внутри одного сегмента сети и не может применяться для внешней коммуникации за пределами данного сегмента.

Следующим типом адреса является Unique Site Local Scope, которые соответствуют внутренним (private) IP-адресам протокола IPv4 типа 10.0.0.0/8, 172.16.0.0/12 и 192.168.0.0/16. Причина, по которой используют внутренние private и внешние public IP-адреса, заключается в технологии NAT, о которой мы говорили на предыдущих уроках. Unique Site Local Scope — это технология, создающая внутренние IP-адреса. Вы можете сказать: «Имран, ведь ты говорил, что каждое устройство может иметь свой IP-адрес, вот почему мы перешли на IPv6», и будете совершенно правы. Но некоторые люди предпочитают пользоваться концепцией внутренних IP-адресов из соображений безопасности. При этом NAT используется как файрвол, и внешние устройства не могут произвольно связываться с устройствами, расположенными внутри сети, потому что они имеют локальные IP-адреса, недоступные из внешней сети Интернет. Однако NAT создает множество проблем, касающихся VPN, например, для протокола ESP. Для обеспечения безопасности протокол IPv4 использовал IPSec, но в протоколе IPv6 имеется встроенный механизм безопасности, поэтому связь между внутренними и внешними IP-адресами устанавливается очень просто.

Для этого IPv6 имеет два различных типа адресов: если адреса Unique Local соответствуют внутренним IP-адресам IPv4, то адреса Global соответствуют внешним адресам IPv4. Многие люди предпочитают вообще не использовать адреса типа Unique Local, другие не могут без них обойтись, так что это является предметом постоянных споров. Я считаю, что вы получите намного больше преимуществ, если будете пользоваться только внешними IP-адресами, в первую очередь это касается мобильности. Например, мое устройство будет иметь один и тот же IP-адрес независимо от того, где я нахожусь — в Бангалоре или Нью-Йорке, так что я без проблем смогу использовать любое из своих устройств в любой точке мира.

Как я уже сказал, IPv6 имеет встроенный механизм безопасности, позволяющий создавать безопасный VPN-туннель между местом, в котором расположен ваш офис, и вашими устройствами. Раньше нам нужен был внешний механизм для создания такого VPN-туннеля, но в IPv6 это встроенный стандартный механизм.

Поскольку сегодня мы обсудили достаточно вопросов, я прерываю наш урок, чтобы продолжить обсуждение шестой версии интернет-протокола IP в следующем видео. В качестве домашнего задания я попрошу вас хорошо изучить, что представляет собой шестнадцатеричная система счисления, потому что для понимания IPv6 очень важно понимать преобразование двоичной системы счисления в шестнадцатеричную и обратно. Например, вы должны знать, что 1111=F, и так далее, просто обратитесь к Google, чтобы с этим разобраться. На следующем видеоуроке я постараюсь попрактиковаться с вами в таком преобразовании. Я рекомендую вам пересмотреть сегодняшний видеоурок несколько раз, чтобы у вас не оставалось никаких вопросов относительно затронутых тем.


Спасибо, что остаётесь с нами. Вам нравятся наши статьи? Хотите видеть больше интересных материалов? Поддержите нас оформив заказ или порекомендовав знакомым, 30% скидка для пользователей Хабра на уникальный аналог entry-level серверов, который был придуман нами для Вас: Вся правда о VPS (KVM) E5–2650 v4 (6 Cores) 10GB DDR4 240GB SSD 1Gbps от $20 или как правильно делить сервер? (доступны варианты с RAID1 и RAID10, до 24 ядер и до 40GB DDR4).

Dell R730xd в 2 раза дешевле? Только у нас 2 х Intel TetraDeca-Core Xeon 2x E5–2697v3 2.6GHz 14C 64GB DDR4 4×960GB SSD 1Gbps 100 ТВ от $199 в Нидерландах! Dell R420 — 2x E5–2430 2.2Ghz 6C 128GB DDR3 2×960GB SSD 1Gbps 100TB — от $99! Читайте о том Как построить инфраструктуру корп. класса c применением серверов Dell R730xd Е5–2650 v4 стоимостью 9000 евро за копейки?

© Habrahabr.ru