Содержание
Ближайшие пару-тройку лет в глобальной сети Интернет грядут перемены. Революционные перемены. Всё дело в том, что дальнейшее развитие глобальной сети Интернет невозможно без расширения адресного пространства. А это возможно только в помощью перехода к протоколу IPv6 — основному протоколу будущего, призванному решить проблему масштабирования сетей и расширить функциональность современных сетевых устройств и приложений. Но, обо всем по порядку.
А зачем нам IPv6?
В первой половине 2011 года Европейским отделением RIPE NCC был продан последний свободный блок из 16 миллионов уже привычных нам IP-адресов 4-й версии — подсеть 185.0.0.0/8. То есть фактически глобальный пуль IP-адресов стал равен 0. Чем это грозит рядовому пользователю?! Начать думаю стоит с того, что сейчас сетевой модуль — LAN, Wi-Fi или 3G — присутствует практически в каждом компьютере, ноутбуке, планшете и смартфоне, число сетевых устройств в мире увеличивается в геометрической прогрессии. Даже если учитывать что подавляющее большинство этих устройств выходят в сеть Интернет через абонентские устройства доступа — роутеры, модемы, оптические терминалы используя технологию NAT либо прокси-серверы, то всё равно такой рост сетевых устройств приведет к тому, что у провайдеров закончатся (а у некоторых уже закончились) свободные IP-адреса. Что делать провайдерам? А провайдеры начнут применять различные ухищрения типа PG-NAT (NAT на уровне провайдера) с выдачей абонентам серых IP-адресов из внутренней локальной сети и т.п. И чем дальше — тем больше абонентов будут сидеть за NAT провайдера. После этого у абонентов могут начаться проблемы со скоростью (особенно через torrent-сети а силу их особенностей), с онлайн-играми и т.п. Как ни крути, выход один — переход на новый протокол IPv6. Конечно сразу одним махом перейти не получится при любом раскладе, но чем быстрее миграция начнется, тем быстрее проблема будет решаться, ведь по мере перехода будут освобождаться IPv4 адреса. Казалось бы — всё это проблемы провайдеров, а рядовому пользователю в чем польза? Конечно до конца ещё не известно в каком виде пользователю будет предоставляться IPv6 — в виде адреса или в виде целой подсети адресов (а подсетей в новом протоколе огромное количество). Но если будут предоставляться сразу подсети, то надобность в NAT’е на абонентских устройствах отпадет в принципе и пользователям не нужно будет в дальнейшем мучиться с пробросом портов на домашних роутерах — у всех компьютеров в домашней сети будут белые внешние адреса. Второй значительных плюс — увеличение скорости в файлообменных сетях, особенно через Torrent. Правда поддержка IPv6 обязательна и со стороны файлообменных серверов и трекеров. Третий значительные плюс — закрепление статически за пользователем определенной подсети адресов, которые не будут меняться динамически каждый раз при переподключении к провайдеру.
А разве IPv4 и IPv6 не похожи?
Нет. Совершенно не похожи. Уровень у протоколов один уровень — сетевой. На этом их сходство и заканчивается. IPv4 и IPv6 — это два совершенно разных протокола. Самое важное отличие протоколов, заметное даже визуально, заключается в длине адресного пространства. В то время как четвертая версия протокол использует 32-битные адреса в виде набора из четырех октетов, в шестой версии адрес имеет длину уже 128 бит. К тому же, IPv6 значительно более сложен и технологически сильно продвинут, вплоть до наличия элементов маршрутизации уже на уровне заголовков.
IP-адреса в IPv6.
IP-адрес в шестой версии имеет более сложную иерархическую структуру, нежели IPv4. Благодаря размеру адреса в 128 бит, для использования доступны 340.282.366.920.938.463.463.374.607.431.768.211.456 адресов. Согласитесь, огромная цифра. На текущий момент определены 3 формата IPv6-адресов:
1) Стандартный, основной формат IPv6-адреса. X:X:X:X:X:X:X:X, где каждое число X — это шестнадцатеричное 16-битное число, которое состоит из 4 символов в шестнадцатеричной системе. Пример IPv6 — адреса:21DA:7654:DE12:2F3B:02AA:EF98:FE28:9C5A
2) Сжатый формат IPv6-адреса. Если в адресе есть несколько групп, содержащие в себе только нулевые биты, то для удобства принят специальный тип сокращения вот такого вида «::». Выглядит это так: был EF98:3:0:0:0:0:2F3B:7654 стал EF98:3::2F3B:7654 или был FF01:0:0:0:0:0:0:1 стал FF01::1 При этом существует такое ограничение: через два двоеточия можно заменять только одну группу байт.
3) Альтернативный (переходный) формат. Так как полный переход с IPv4 на IPv6 дело не двух дней, и займет оно весьма длительное время, то для удобство миграции существует 2 варианта переходных адресов — совместимые и отображенные. Совместимые адреса предусмотрены для узлов сети, которые осуществляют туннелирование трафика из IPv6 в IPv4. Они будут широко применяться по перву на стыках сетей. Совместимые адреса имеют префикс ::/96 и выглядят так: 0:0:0:0:0:0:144.12.10.31 или сжато ::144.12.10.31 То есть из 128 бит адреса — 96 бит (6 октетов) нулей плюс 32 бита — IPv4-адрес. Второй тип придуман специально для хостов, которые IPv6 не поддерживают. Таких тоже будет немало. Называются они «отображенные». Префикс отображенного IPv6-адреса — ::ffff:0:0/96 и выглядит вот так: 0:0:0:0:0:ffff:88.147.129.15 или сжато ::ffff:88.147.129.15 Здесь из 128 бит адреса первые 80 бит (5 октетов) занимают нули, затем 16 единичных бит, а затем 32 бита занимает IPv4-адрес.
Состав IP-адреса в IPv6
В IPv6 IP-адрес можно разделить на три составные части: — глобальный префикс, — идентификатор подсети, — идентификатор интерфейса. Рассмотрим для примера адрес: 21DA:7654:DE12:2F3B:02AA:EF98:FE28:9C5A. В нем первые три поля в адресе протокола IPv6 указывают на префикс сайта — 21DA:7654:DE12. Глобальный префикс указывает в сети какого провайдера находится данный адрес. Четвертое поле — 2F3B — идентификатор подсети. Оставшиеся 4 поля — 02AA:EF98:FE28:9C5A — идентификатор интерфейса — аналогичен Host ID в IPv4 и определяет уникальный адрес хоста вашей сети.
А где в IPv6 маска подсети
В шестой версии протокола IP маска подсети не нужна как таковая. Её роль играет идентификатор подсети. Поля в 16 бит хватает для 65 535 подсетей.
Как работает IPv6
По умолчанию сетевой присваивается link-local адрес (fe80::/10), ну а затем хост используя этот адрес отправляет в сеть групповой ICMPv6-запрос — Router Solicitation — для поиска роутера. Если роутер в сети есть, то он ответит хосту ICMPv6-сообщением — Router Advertisement. В ответе помимо IPv6-префикса сети могут так же присутствовать адрес шлюза, адреса DNS-серверов, MTU и пр. Затем, если на роутере запущен DHCPv6-сервер, то далее все пройдет как в случае обычного DHCP-сервера — интерфейсу присвоется адрес, маска, шлюз и DNS-серверы. Если DHCP-сервера нет, то наш узел сам себе присвоит адрес с использованием этого префикса и своего физического MAC-адреса. Так же добавляется маршрут по умолчанию на найденный роутер.
Как использовать адреса IPv6 в URL
Каждому человеку, кто хотя бы раз настраивал роутер знакома ситуация, когда IP-адрес вводится в строке адреса браузера. Другой вариант, когда это приходится делать — в случае если кто-то запустил на компьютере веб-сервер без привязки доменного имени и Вам по какой-либо причине надо на него зайти. В случае IPv4 делается Вы просто пишете IP, например 192.168.0.1, в строке адреса и нажимаете кнопку Enter. Браузер преобразует IP-адрес в http, получаем такую строчку: http://192.168.0.1 По-умолчанию для Веб-сервера используется TCP-порт 80. Но иногда в настройках используют альтернативные порты, например 8080. В этом случае строка адреса будет выглядеть так: http://192.168.0.1:8080, т.е. порт указывается через двоеточие -:- после адреса. Но что же делать в случае, когда используется IPv6, ведь там все числа через двоеточие и браузер будет думать что это порт. Так вот в случае IPv6 IP-адрес в адресной строке браузера закрывается квадратными скобками. Выглядит это так:http://[21DA:7654:DE12:2F3B:02AA:EF98:FE28:9C5A]/ Если надо указать ещё и порт, то так:http://[21DA:7654:DE12:2F3B:02AA:EF98:FE28:9C5A]:8080/
IP-адрес (айпи-адрес, сокращение от англ. Internet Protocol Address) — уникальный сетевой адрес узла в компьютерной сети, построенной по протоколу IP. В сети Интернет требуется глобальная уникальность адреса; в случае работы в локальной сети требуется уникальность адреса в пределах сети. В версии протокола IPv4 IP-адрес имеет длину 4 байта.
IPv4 представляет собой 32-битовое двоичное число. Удобной формой записи IP-адреса (IPv4) является запись в виде четырёх десятичных чисел значением от 0 до 255, разделённых точками, например, 192.168.0.1, значение 255 не используется непосредственно в адресах, а является зарезервированным значением и используется для масок подсети.
В терминологии сетей TCP/IP маской подсети или маской сети называется битовая маска, определяющая, какая часть IP-адреса узла сети относится к адресу сети, а какая — к адресу самого узла в этой сети. Например, узел с IP-адресом 12.34.56.78 и маской подсети 255.255.255.0 находится в сети 12.34.56.0/24 с длиной префикса 24 бита.
Другой вариант определения — это определение подсети IP-адресов. Например, с помощью маски подсети можно сказать, что один диапазон IP-адресов будет в одной подсети, а другой диапазон соответственно в другой подсети.
Широковещательный адрес — условный (не присвоенный никакому устройству в сети) адрес, который используется для передачи широковещательных пакетов в компьютерных сетях.
Стек протоколов TCP/IP тесно связан с сетью Internet, ее историей и современностью. Создан он был в 1969 году, когда для сети ARPANET понадобился ряд стандартов для объединения в единую сеть компьютеров с различными архитектурами и операционными системами. На базе этих стандартов и был разработан набор протоколов, получивших название TCP/IP.
Вместе с ростом Internet протокол TCP/IP завоевывал позиции и в других сетях. На сегодняшний день этот сетевой протокол используется как для связи компьютеров всемирной сети, так и в подавляющем большинстве корпоративных сетей. В наши дни пока еще наиболее чаще используется версия протокола IP, известная как IPv4. Рационального использования адресного пространства, введенные в результате обнаруженных недостатков в реализации протокола IP.
Согласно спецификации протокола, каждому узлу, подсоединенному к IP-сети, присваивается уникальный номер. Узел может представлять собой компьютер, маршрутизатор, межсетевой экран и др. Если один узел имеет несколько физических подключений к сети, то каждому подключению должен быть присвоен свой уникальный номер. Этот номер, или по-другому IP-адрес, имеет длину в четыре октета, и состоит из двух частей. Первая часть определяет сеть, к которой принадлежит узел, а вторая – уникальный адрес самого узла внутри сети.
Номер сети Номер узла
11011100 11010111 00001110 00010110
В классической реализации протокола первую часть адреса называли «сетевым префиксом», поскольку она однозначно определяла сеть. Однако в современной реализации это уже не так и сеть идентифицируют другим образом, речь о чем пойдет ниже.
Классическая адресная схема протокола IP. Изначально все адресное пространство разделили на пять классов: A, B, C, D и E. Такая схема получила название «классовой». Каждый класс однозначно идентифицировался первыми битами левого байта адреса. Сами же классы отличались размерами сетевой и узловой частей. Зная класс адреса, вы могли определить границу между его сетевой и узловой частями. Кроме того, такая схема позволяла при маршрутизации не передавать вместе с пакетом информацию о длине сетевой части IP-адреса.
Структура IP-адреса и классы IP-сетей
Класс А ориентирован на очень большие сети. Все адреса, принадлежащие этому классу, имеют 8-битный сетевой префикс, на что указывает первый бит левого байта адреса установленный в нуль. Соответственно, на идентификацию узла отведено 24 бита и каждая сеть “восьмерка” может содержать до 224-2 узлов. Два адреса необходимо отнять, поскольку адреса, содержащие в правом октете вес нули (идентифицирует указанную сеть) и все единицы (широковещательный адрес) используются в служебных целях и не могут быть присвоены узлам.
Самих же сетей “восьмерок” может быть 27 -2. Снова мы вычитаем двойку, но это уже две служебных сети: 127/8 и 0/8 (по-старому: 127.0.0.0 и 0.0.0.0). Наконец, можно заметить, что класс А содержит всего 27 * 224 = 231 адресов, или половину всех возможных IP- адресов.
Класс В предназначен для сетей большого и среднего размеров. Адреса этого класса идентифицируются двумя старшими битами, равными соответственно 1 и 0. Сетевой префикс класса состоит из шестнадцати бит или первых двух октетов адреса. Поскольку два первых бита сетевого префикса заняты определяющим класс ключом, то можно задать лишь 214 различных сетей. Узлов же в каждой сети можно определить до 216-2. Проведя вычисления, аналогичные приведенным для класса А, мы увидим, что класс В занимает четверть адресного пространства протокола IP.
Наконец, самый употребляемый класс сетей класс С имеет 24 битный сетевой префикс, определяется старшими битами, установленными в 110, и может идентифицировать до 221 сетей. Соответственно, класс позволяет адресовать до 28 -2 узлов. Занимает восьмую часть адресного пространства протокола TCP/IP.
Последние два класса занимают оставшуюся восьмую часть в адресном пространстве и предназначены для служебного (класс D) и экспериментальною (класс Е) использования. Для класса D старшие четыре бита адреса установлены в 1110, для класса Е – 1111. Сегодня класс D используется для групповой передачи информации.
Поскольку длинные последовательности из единиц и нулей трудно запомнить, IP адреса обычно записывают в десятичной форме. Для этого каждый октет адреса представляется в виде десятичного числа. Между собой октеты отделяются точкой. Иногда октеты обозначаются как w.x.y.z и называются “z-октет”, “у-октет”, “х-октет” и “w-октет”.
Представление IP-адреса в виде четырех десятичных чисел разделенных точками и называется “точечно-десятичная нотация”.
Адрес 11011100 11010111 00001110 00010110
220 215 14 22
Точечно-десятичный формат 220.215.14.22
Нетрудно посчитать, что всего в пространстве адресов IP – 128 сетей по 16 777 216 адресов класса A, 16384 сети по 65536 адресов класса B и 2 097 152 сети по 256 адресов класса C, а также 268 435 456 адресов многоадресной рассылки и 134 317 728 зарезервированных адресов. С ростом сети Интернет эта система оказалась неэффективной и была дополнена CIDR (бесклассовой адресацией).
Организация подсетей. Очень редко в локальную вычислительную сеть входит более 100-200 узлов: даже если взять сеть с большим количеством узлов, многие сетевые среды накладывают ограничения, например, в 1024 узла. Исходя из этого, целесообразность использования сетей класса А и В весьма сомнительна. Да и использование класса С для сетей, состоящих из 20-30 узлов, тоже является расточительством.
Для решения этих проблем в двухуровневую иерархию IP-адресов (сеть – узел) была введена новая составляющая — подсеть. Идея заключается в “заимствовании” нескольких битов из узловой части адреса для определения подсети.
Как вы заметили – вся документация сугубо “не наша”. Многие материалы я взял с википедии, кое-что с других сайтов. Если охота почитать книжку, в которой все это есть, то рекомендую эту:
Общие сведения
Почитать: https://habrahabr.ru/post/253803/ Длина — 128 бит Предпочтительный формат: x:x:x:x:x:x:x:x, где x — четыре 16-ричных цифры («гекстет») Сокращение адреса:
- пропуск начальных нулей в гекстете: 01DB -> 1DB
- пропуск всех нулевых сегментов (один раз в адресе): 1234:0000:0000:0000:0000:ABCD:0000:3456 -> 1234::ABCD:0:3456
Типы IPv6-адресов
- Индивидуальный (или одноадресной рассылки, unicast): служит для однозначного определения интерфейса на устройстве под управлением протокола IPv6. Как показано на рисунке, IPv6-адрес источника должен быть индивидуальным.
- Групповой (или многоадресной рассылки, multicast): используется для отправки одного IPv6-пакета на несколько адресов назначения.
- Произвольный (или произвольной рассылки, anycast): любой индивидуальный IPv6-адрес, который может быть назначен нескольким устройствам. Пакет, отправляемый на адрес произвольной рассылки, направляется к ближайшему устройству с этим адресом.
В отличие от IPv4, в IPv6 нет широковещательных адресов. Однако существует групповой адрес Все узлы с IPv6, который дает аналогичный результат.
Loopback
Адрес loopback, любой адрес, не указанный адрес или IPv4-совместимый адрес. Первый гекстет: 0000 — 00FF.
Глобальный индивидуальный адрес
Global unicast addresses, GUA Аналогичен публичному IPv4-адресу. Эти адреса, к которым можно проложить маршрут по Интернету, являются уникальными по всему миру. Не является обязательным. ICANN, оператор IANA, выделяет блоки IPv6-адресов пяти региональным интернет-регистраторам (RIR). В настоящее время назначаются только глобальные индивидуальные адреса с первыми тремя битами 001 (2000 — 3FFF).
- Префикс глобальной маршрутизации — назначается RIR, в основном равен /48;
- Идентификатор подсети — 16 бит;
- Идентификатор интерфейса — 64 бит при подсети /64.
Идентификатор интерфейса может быть из одних 1 (в IPv6 нет широковещательных адресов) или из одних 0 (он зарезервирован в качестве адреса произвольной рассылки маршрутизатора подсети, следует назначать только маршрутизаторам). Автоматическое назначение: DHCPv6 или SLAAC. Тогда шлюз по-умолчанию — локальный адрес канала ближайшего маршрутизатора.SLAAC — каждые 200 сек. маршрутизатор (с настроенным ipv6 unicast-routing) отправляет ICMPv6-сообщение Router Advertisement (RA):
- Префикс сети и длину префикса: сообщают устройству, к какой сети оно относится.Клиент должен самостоятельно сгенерировать идентификатор интерфейса (MAC-адрес с инвертированным 7 битом + FFFE в середине или целиком случайный);
- Адрес шлюза по умолчанию: локальный IPv6-адрес канала, IPv6-адрес источника сообщения RA. Выдается только в RA;
- DNS-адрес и имя домена: адреса DNS-серверов и имя домена.
Локальный адрес канала
Используется для обмена данными с другими устройствами по одному локальному каналу. В протоколе IPv6 термин «канал» означает подсеть. Локальные адреса каналов ограничены одним каналом. Они должны быть уникальны только в рамках этого канала, поскольку вне канала к ним нельзя проложить маршрут. Каждый IPv6-совместимый сетевой интерфейс обязан иметь хотя бы один локальный адрес канала. Диапазон FE80::/10 (FE80:: — FEBF::) Если локальный адрес канала не настроен вручную на интерфейсе, устройство автоматически создает его самостоятельно, не обращаясь к DHCP-серверу (из MAC-адреса, как при SLAAC). Как правило, в качестве шлюза по умолчанию для других устройств в канале используется локальный адрес маршрутизатора. Последовательные интерфейсы не имеют МАС-адресов Ethernet, поэтому операционная система Cisco IOS для генерации локального адреса канала использует MAC-адрес первого доступного интерфейса Ethernet.
Уникальный локальный адрес
Имеет некоторые общие особенности с частными адресами RFC 1918 для IPv4, но при этом между ними имеются и значительные различия. ULA-адреса используются для локальной адресации в пределах площадки (организации) или между ограниченным количеством площадок. Эти адреса не следует маршрутизировать в глобальном протоколе IPv6 и преобразовывать в глобальный IPv6-адрес. Диапазон FC00::/7 — FDFF::7. Уникальные локальные адреса можно использовать для устройств, которым никогда не понадобится доступ в другие сети или доступ к ним из других сетей.
Присвоенный групповой адрес
Префикс FF00::/8FF02::1 — все устройства с включенным IPv6.FF02::2 — все IPv6-маршрутизаторы (на этот адрес отправляется RS ICMPv6).
Групповой адрес для поиска узла
(?) Аналогичен групповому адресу для всех узлов, соответствует специальному адресу многоадресной рассылки Ethernet. Используемые источники:
- https://nastroisam.ru/ipv6-dlya-chajnikov/
- https://litl-admin.ru/spravochnaya-informaciya/nemnogo-teorii-ob-ip-setyax.html
- http://dimsharav.blogspot.com/2016/09/ipv6.html