IPV6
С февраля 2008 г. начат массированный переход к масштабному использованию адресации и маршрутизации IPv6.
Основной причиной этого перехода является резкий рост пропускной способности сред передачи данных и производительности сетевого оборудования. Следует упомянуть также необходимость учета опыта эксплуатации IPv4, необходимость поддержки новых применений и исчерпание реальных адресов IPv4.
Для правильного понимания IPv6 необходимо рассмотреть «место» этого протокола в компьютерных сетях.
Подготовлен план перехода от IPv4-dominated Internet к IPv6-dominated Internet, предусматривающий несколько фаз (RFC 5211):
1. Preparation (подготовительная) – с декабря 2009 г.:
а) PREP1 – провайдерам рекомендуется предоставлять пробные сервисы IPv6 оконечным потребителям. Эти сервисы могут предоставляться как посредством IPv4/IPv6 преобразований, так и исконного IPv6.
б) PREP2 – организациям рекомендуется подготовить к подключению по IPv6 свои публичные серверы (web, e-mail, DNS и др.) На этих серверах рекомендуется использовать альтернативные имена сервисов во избежание конфликтов с сервисами IPv4 до полноценного подключения по IPv6.
в) PREP3 – организации могут предоставлять доступ к Internet по IPv6 своим пользователям.
2. Transition (собственно переходная) – январь 2010 г. – декабрь 2011 г.:
а) TRANS1 – провайдеры должны предоставлять сервисы IPv6 оконечным потребителям. Эти сервисы рекомендуется предоставлять посредством исконного IPv6, и лишь в исключительных случаях посредством IPv4/IPv6 преобразований.
б) TRANS2 – организации должны изначально готовить свои новые публичные серверы к подключению по IPv6. Такие серверы рекомендуется делать основными в своей деятельности (это касается и не Internet-организаций).
в) TRANS3 – организациям рекомендуется предоставлять своим пользователям доступ к Internet по IPv6, а также внедрять внутренние IPv6-серверы (DNS, DHCP и др.) Причем, доступ может быть как посредством исконного IPv6 так и посредством IPv4/IPv6 преобразований.
3. Post-Transition (пост-переходная) – с января 2012 г. (окончание не оговаривается):
а) POST1 – провайдеры должны предоставлять сервисы IPv6 оконечным потребителям. Эти сервисы должны предоставляться только посредством исконного IPv6.
б) POST2 – организации должны подключать свои публичные серверы по IPv6. Такие серверы должны быть основными во всех областях деятельности. Не Internet-организациям по прежнему рекомендуется делать такие серверы основными.
в) POST3 – организациям рекомендуется предоставлять своим пользователям по IPv6 доступ как к публичным, так и ко внутренним серверам. Доступ рекомендуется делать посредством исконного IPv6, но он м.б. и посредством IPv4/IPv6 преобразований.
г) POST4 – провайдерам и оконечным потребителям можно использовать IPv4.
Наряду с общим сохранением преемственности, технологии IPv6 все-таки существенно отличаются от технологий IPv4. Отличия заключаются в следующем:
1. Изменены как размер, так и формат адреса.
Формат представления.
Рисунок -- Формат представления и примеры адресов IPv6
Где Х – шестнадцатеричное (любой регистр) шестнадцатибитовое число. Т.е. общая длина адреса составляет 128 битов.
Поскольку часто встречаются длинные последовательности нулей, одно или более рядом стоящих нулевых чисел можно сокращать как два двоеточия. Также можно не писать «лидирующие» нули в тетрадах.
По причине применения двоеточий в адресах IPv6 возникает необходимость устранения конфликтов при разборе адресов с указанием портов.
Рисунок -- Формат адресов IPv6 c указанием портов и пример URL c цифровым адресом IPv6
2. Изменен формат заголовка пакета.
Вместо заголовка фиксированного размера с фиксированными полями применяется гибкий базовый заголовок плюс набор необязательных заголовков различного формата.
3. Изменена иерархия адресного пространства.
При адресации IPv6 механизм классов упразднен. Вместо классов широко применяется механизм адресных префиксов (address prefixes).
Имеются три базовых типа адресов:
а) Unicast;
б) Anycast;
в) Multicast.
Тип Unicast предназначен для адресации одиночного сетевого интерфейса. Пакет с таким адресом назначения должен быть доставлен соответствующему сетевому интерфейсу.
Тип Anycast предназначен для адресации набора сетевых интерфейсов. Пакет с таким адресом назначения должен быть доставлен одному из сетевых интерфейсов в группе.
Тип Multicast также предназначен для адресации набора сетевых интерфейсов. Пакет с таким адресом назначения должен быть доставлен всем сетевым интерфейсам в группе. Такие адреса заменяют широковещательные Broadcast-адреса (которые не используются вообще).
Базовые типы, как таковые, не используются. Они делятся на виды согласно специфике применения. Принадлежность к тому либо иному виду определяется по адресному префиксу – фиксированным начальным битам адреса. Для всех допустимых видов определены собственные форматы, выражающиеся в стандартных полях. Однозначно идентифицировать адрес можно только разобрав его полностью.
4. Изменен подход к назначению адресов сетевым интерфейсам.
Одному и тому же сетевому интерфейсу могут назначаться несколько адресов различных типов. Если по правилам IPv4 такой подход был скорей исключением, то здесь ситуация противоположная. При этом, также допускается и присвоение более одного адреса одного типа. Разные приложения могут использовать разные адреса одного сетевого интерфейса.
5. Модифицированы понятия сети и подсети.
Внедрение IPv6 проходит в контексте общей реструктуризации сети Internet.
Рисунок -- Иерархия Internet
Где: IANA – Internet Assigned Numbers Authority (Администрация по вопросам адресного пространства Internet) (находится под контролем ICANN), IR – Internet Registry, RIRs – Regional IRs, NIRs – National IR, LIR – Local IRs, EU - End Users.
Распределением адресов IPv6, также как и адресов IPv4, занимается организация ICANN (Internet Corporation for Assigned Names and Numbers).
Реструктуризация затрагивает как глобальные, так и локальные аспекты.
Если в случае с IPv4 предусматривалась только одна глобальная сеть, то на базе IPv6 предполагается возможность построения нескольких независимых глобальных сетей.
Понятие подсети расширено. Стандартизированы следующие виды подсетей, что, в частности, отражается в значениях специального для этого введенных полей Scope в форматах пакетов некоторых видов:
а) 0 – Reserved;
б) 1 – Interface-local;
в) 2 – Link-local;
г) 3 – Reserved;
д) 4 – Admin-local;
е) 5 – Site-local;
ж) 8 – Organization-local;
з) E – Global scope;
и) F – Reserved.
Оставшиеся значения можно использовать по своему усмотрению.
В данном случае, так определяется «диаметр», в пределах которого адрес применяется и валиден.
Link (линк) – это сегмент ЛКС, включающий в себя станции, непосредственно соединенные одной средой передачи данных. Т.о. все оконечные подсети являются линками, но не все линки оконечны.
6. Модифицировано понятие станции (узла).
Для ссылки на любой из видов пользовательских станций употребляется обобщенный термин хост (host). Вместо термина шлюз применяется обобщенный термин маршрутизатор (router).
7. Введены новые правила определения размера подсети.
Маска подсети аннулирована. Размер подсети определяется по еще одному варианту префикса – префиксу подсети (subnet prefix) – фиксированным начальным битам адресов в пределах описываемой подсети.
Рисунок -- Формат указания префикса IPv6 (например, префикса подсети) – не CIDR
Как и раньше, размер подсети может либо определяться автоматически, либо задаваться принудительно. Автоматическое определение осуществляется согласно полям соответствующего формата вида адреса.
В ряде случаев, когда поля допускают «разбежку» (например, при проектировании собственной инфраструктуры), задание префикса подсети обязательно.
При выборе размера подсетей настоятельно рекомендуется не отходить от стандартных правил. Например, минимальная физическая подсеть – линк – стандартизирован только с префиксом подсети 64.
8. Локальное адресное пространство.
При адресации IPv6 внутренние адреса, как таковые, не выделяются – обобщенно их заменяют локальные (Local) адреса.
Адрес вида Link Local Unicast (FE80::/10) предназначен для использования в пределах линка.
Рисунок --Формат адреса вида Link Local Unicast
Эти адреса автоматически генерируются на базе MAC–адресов следующим образом.
Рисунок -- Алгоритм и пример вычисления значения поля IPv6 Interface ID
От этого правила можно отступать, но это не рекомендуется.
Выход пакетов с адресами Link Local Unicast за пределы линков должен подавляться маршрутизаторами.
Для всех организаций, имеющих более или менее иерархичесую подсетевую структуру и не испытывающих потребность во внешнем трафике, в качестве основной замены внутренних адресов IPv4 позиционируются адреса вида Unique Local Unicast (FC00::/7).
Рисунок -- Формат адреса вида Unique Local Unicast
Как и в других адресах Unicast имеется четкое разделение на топологическую и интерфейсную части. Для всех адресов Unicast приемлема (но не всегда удобна) EUI-64-нотация интерфейсной части.
Пакеты с адресами Unique Local Unicast должны подавляться всеми маршрутизаторами кроме внутренних.
Одно время выделялись еще адреса вида Site Local Unicast (FEC0::/10), но теперь они отменены и считаются невалидными.
9. Глобальное адресное пространство.
В качестве основной замены реальных адресов IPv4 предлагаются адреса вида Global Unicast (2000::/3).
Рисунок -- Формат адреса вида Global Unicast
10. Мультикасты.
Адрес типа Multicast (FF00::/8) предназначен для использования в пределах подсети определенного вида и представляет собой уникальный в пределах таковой подсети групповой идентификатор.
Рисунок -- Формат адреса типа Multicast
Примеры стандартных видов: Link-local Scope All-nodes Multicast (FF02::1/128), Link-local Scope All-routers Multicast (FF02::2/128), Site-Local Scope All-routers Multicast (FF05::2/128).
В частности, применительно к линку, в качестве замены широковещательных адресов IPv4 позиционируются адреса вида Link-local Scope All-nodes Multicast.
Кроме того, при автоконфигурировании в пределах линка используются специальные адреса вида Solicited-node Multicast (FF02::1:FF00:0/104), строящиеся на основе адресов Link Local Unicast (из которых переносятся последние 24 бита).
Адреса типа Multicast могут присутствовать в пакетах только в поле Destination Address.
11. Эникасты.
Адрес типа Anycast предназначен для использования в пределах подсети и генерируется на основе префикса подсети.
Рисунок -- Формат адреса типа Anycast
Соответствующие приведенному выше формату виды адресов Anycast пока применения не нашли. Единственным используемым на практике видом является Subnet-router Anycast.
Рисунок -- Формат адреса вида Subnet-router Anycast
Такие адреса разрешены только применительно к сетевым интерфейсам маршрутизаторов и могут присутствовать в служебных пакетах, причем только в поле Destination Address.
12. Специальные адреса.
Соглашения в области адресации IPv6:
а) Unspecified (::/128) – все глобальные сети;
б) Loopback (::1/128) – сетевой интерфейс – заглушка.
13. Cледует учитывать факт наличия и специальных сетей IPv6.
Протокол IPv6 прошел две основные фазы тестирования: первую – собственно IPv6 Test Network (5F00::/8) – и вторую – очень известную в свое время экспериментальную IPv6 сеть 6Bone (3FFE::/16), интенсивно развивавшуюся в 2003 – 2004 гг. и свернутую 6 июня 2006 г.
Другие примеры: IPv6 Benchmarking (2001:0200::/48), IPv6 Documentation (2001:DB8::/32).
14. Введено понятие зоны (zone).
Новшеством IPv6, является возможность обеспечения взаимодействия между станциями с допускающими повторы локальными адресами. Это достигается за счет использования числовых идентификаторов зон – предназначенных для администрирования аналогов видов подсетей.
Рисунок -- Формат указания зоны
В реализациях идентификаторы зон обычно совпадают с индексами соответствующих сетевых интерфейсов.
15. Вопросы совместимости версий.
Все IP-станции делятся на следующие стандартные типы: IPv4-only, IPv6-only, IPv6/IPv4, IPv4 (IPv4-only либо IPv6/IPv4), IPv6 (IPv6-only либо IPv6/IPv4).
Одним из особых вариантов инкапсуляции является туннелирование, т.е. возможность передавать пакеты, относящиеся к некоторому протоколу некоторого (например, сетевого) уровня, вкладывая их в пакеты другого протокола того же уровня. Фактически туннели выражаются в виде отдельных специализированных сетевых интерфейсов на взаимодействующих станциях. Туннели могут конфигурироваться как вручную (manual tunnels), так и автоматически (automatic tunnels). Сама природа туннеля подразумевает наличие у него граничных точек (endpoints). Для manual tunnels граничные точки задаются вручную, для automatic tunnels – определяются автоматически с помощью скрытых механизмов (но это полностью не отменяет ручное конфигурирование других параметров). Использование туннеля предполагает определенность всех необходимых параметров на всех задействованных станциях. Туннельный интерфейс должен быть связан с физическим. Таким образом, туннельный интерфейс кроме собственного адреса в системе имеет еще адрес граничной точки-источника и, если туннель типа point-to-point, адрес граничной точки назначения.
Практический интерес представляет лишь возможность передавать трафик IPv6 посредством трафика IPv4, т.е. организовывать туннели IPv6-over-IPv4. Таковые туннели делятся на три типа:
а) router-to-router;
Рисунок -- Туннель IPv6-over-IPv4 типа host-to-host
б) host-to-router и router-to-host;
Рисунок -- Туннели IPv6-over-IPv4 типа host-to-router (слева направо) и router-to-host
в) router-to-router.
Рисунок -- Туннель IPv6-over-IPv4 типа router-to-router
Для использования в туннелях IPv6-over-IPv4 стандартизированы следующие виды адресов IPv6.
Адрес вида IPv4-compatible Unicast (::D.D.D.D/128). Включает реальный адрес IPv4. В настоящее время использование этих адресов не рекомендуется.
Адрес вида IPv4-mapped Unicast (::FFFF:D.D.D.D/128) предназначен для использования при работе с виртуальной станцией IPv4 внутри станции IPv6. В физических пакетах эти адреса недопустимы и в основных реализациях не поддерживаются.
Адрес вида ISATAP Unicast.
Рисунок -- Форматы представления адресов вида ISATAP Unicast
Предназначен для использования одноименным протоколом (Intra-Site Automatic Tunnel Addressing Protocol) при формировании автоматических туннелей типов host-to-host, host-to-router или router-to-host. Это один из видов туннельных адресов, поддерживаемый всеми основными реализациями.
Адрес вида 6to4 Unicast (2002::/16).
Рисунок -- Формат адреса вида 6to4 Unicast
Включает шестнадцатеричное представление реального адреса IPv4 и также предназначен для формирования автоматических туннелей типов host-to-host, host-to-router или router-to-host. Это второй вид туннельных адресов, поддерживаемый всеми основными реализациями.
Адрес вида Teredo Unicast (2001::/32) предназначен для реализации одноименной сложной клиент-серверной модели при формировании автоматических туннелей типа host-to-host, с учетом возможности многократной подмены самих адресов IPv4 (имеет сложный формат).
В свое время были стандартизированы и виды адресов IPv6 для туннелирования некоторых сторонних протоколов (например, IPX).
16. Замечание о стеках протоколов.
Вопросы совместимости IPv4 и IPv6 затрагивают работу всего семейства протоколов TCP/IPv6. В оптимальном случае, стек TCP/IPv6 полноценен и независим, т.е. трафик IPv6 полностью отделен от трафика IPv4.
17. Динамическая адресация.
В сравнении с IPv4, возможности динамической адресации IPv6 значительно расширены и усовершенствованы, вплоть до полного автоконфигурирования.
Предусмотрены две базовых модели:
а) stateless – распределенное управление, адрес и другие параметры конфигурируются с помощью служебных сообщений, базируется (в первую очередь) на ICMPv6;
б) stateful – централизованное управление, адрес и другие параметры передаются по специально протоколу, базируется (в первую очередь) на DHCPv6.
Причем, в качестве приоритетной модели рассматривается первая, а не вторая. ICMPv6 включает в себя два функционала:
а) Neighbor Discovery (ND) – граничное обнаружение;
б) Multicast Listener Discovery (MLD) – обнаружение multicast-станции-потребителя.
Ключевые задачи автоконфигурирования решаются с помощью ND (в пределах линка):
а) обнаружение соседних маршрутизаторов;
б) восстановление значения префикса подсети;
в) восстановление значений некоторых параметров (например, MTU);
г) автоконфигурирование адресов;
д) восстановление адресов соседних станций (вместо IPv4 ARP);
е) определение next-hop маршрутизатора;
ж) определение факта достижимости (reachability) соседних станций;
з) определение конфликтов адресов;
и) функции оптимизации маршрутов (вместо IPv4 ICMP Redirects).
В связи с автоконфигурированием, в реализациях некоторые адреса рассматриваются как временные (temporary).
В частности, автоконфигурирование сводится к обмену служебными сообщениями. При этом запросы бывают двух видов. Под адвертайзингом (advertising) понимается «предлагать услуги», а солиситингом (solicitising) – «спрашивать об услугах».
18. Изменения в маршрутизации.
IPv6-маршрутизация претерпела серьезные «количественные», но не «качественные изменения».
Закреплено понятие следующего в звене маршрутизатора (next-hop router). Значимость маршрутизатора по умолчанию (dafault router) снижена (связано с автоматизацией его нахождения). Также как и соседний маршрутизатор (neighbor router), он становится частным случаем следующего в звене маршрутизатора. Это отразилось в наборе полей таблиц маршрутизации реализаций.
Специальные соглашения:
а) ::/0 – маршрут по умолчанию.
б) X ... X/<64 – маршрут к большей чем линк подсети;
в) X:X:X:X/64 – маршрут к подсети (в том числе и оконечной) размером с линк;
г) X:X:X:X:X:X:X:X/128 – маршрут к одному сетевому интерфейсу.
С целью поддержки IPv6 разработаны новые версии протоколов маршрутизации либо дополнения к существующим версиям:
а) RIPng;
б) OSPFv3;
в) IS-IS for IPv6;
г) BGPv4+.
19. Замечание о DNS.
Поддержка IPv6-адресации службой DNS выражается в записях нового типа (AAAA) в базах DNS серверов.
20. Безопасность.
Еще одной серьезной (не новой) возможностью IPv6 является опциональная защита передаваемой информации с помощью IPsec-шифрования (как в транспортном так и в туннельном режимах). В пакет могут вставляться дополнительные заголовки Authentication Header (AH) и Encapsulation Security Payload (ESP).
21. Мобильность.
Новой возможностью IPv6 является заложенная целенаправленная поддержка адресации мобильных станций, которая выражается в особом заголовке пакета (Home Address). Кроме собственно мобильной (mobile node) еще одним новым типом станции является т.н. согласующая (corresponding node). Согласующая станция «отвечает» за подключение одной либо нескольких мобильных и имеет соответствующий кэш (binding cache). Возможна работа как в режиме прямой адресации, так и в туннельном режиме.
22. IPv6-адресация в Windows и Linux.
Linux- и Windows-станции с текущими реализациями IPv6 по умолчанию относятся к типу IPv4/IPv6 (можно скорректировать). Как и в случае с другими реализациями IPv6, соблюдаются правила назначения адресов сетевым интерфейсам.
Типичный хост имеет следующие адреса:
а) адреса Link Local Unicast каждого из сетевых интерфейсов;
б) дополнительные адреса Unicast (Unique Local Unicast и Global Unicast) каждого из сетевых интерфейсов;
в) адрес сетевого интерфейса – заглушки;
г) адреса Link-local Scope All-nodes Multicast для каждого из сетевых интерфейсов;
д) адреса Solicited-node Multicast для каждого из адресов Unicast;
е) дополнительные групповые адреса Multicast;
ж) адреса туннелей IPv6-over-IPv4.
Типичный маршрутизатор, в дополнение к указанным, имеет следующие адреса:
з) адреса Link-local Scope All-routers Multicast для каждого из сетевых интерфейсов;
и) адреса Site-local Scope All-routers для соответствующих сетевых интерфейсов;
к) адреса Subnet-router Anycast для каждой из подсетей.
Начиная с Windows XP SP2 и Server 2003 поддержка IPv6 уже интегрирована в составе Advanced Networking Pack и устанавливается как опциональный компонент с помощью графического интерфейса (свойства сетевых интерфейсов) либо командой netsh interface ipv6 install. Для работы с адресами используются только расширения команды netsh interface ipv6 (вместо отмененной команды ipv6).
Полноценная поддержка IPv6 доступна начиная с Windows Vista и Server 2008. Может быть задействован как графический интерфейс, так и расширения команды netsh interface ipv6.
Применительно к Linux поддержка IPv6 имеется в дистрибутивах с ядрами 2.2.х – 2.6.x. Задение IPv6-адресов сводится к работе с соответствующими конфигурационными файлами.
Рисунок -- Примеры IPv6-дополнений в соответствующих конфигурационных файлах
Управление автоконфигурированием в Windows.
Рисунок -- Примеры управления IPv6-автоконфигурированием в Windows
Управление автоконфигурированием в Linux.
Рисунок -- Примеры управления IPv6-автоконфигурированием в Linux
Управление совместимостью с IPv4 в Windows.
Рисунок -- Примеры управления совместимостью с IPv4 в Windows
Управление совместимостью с IPv4 в Linux.
Рисунок -- Примеры управления совместимостью с IPv4 в Linux
Некоторые новые и обновленные команды: ipconfig (Windows), netsh interface ipv6 show interface (Windows), ifconfig (Linux), ping (Windows), ping6 (Linux), netsh interface ipv6 show neighbors (Windows), ip -6 neigh show (Linux).
23. IPv6-маршрутизация в OC Windows и Linux.
Основными отличиями являются увеличение количества строк таблицы маршрутизации и изменение набора полей, что вполне адекватно ситуации.
В типичную таблицу маршрутизации включаются следующие маршруты:
а) к соседним подсетям размером с линк (для всех адресов Link Local Unicast, Unique Local Unicast, Global Unicast);
б) к собственным сетевым интерфейсам (для всех адресов Link Local Unicast, Unique Local Unicast, Global Unicast);
в) маршрут по умолчанию;
г) маршрут к сетевому интерфейсу – заглушке;
д) маршруты, связанные с адресами Multicast;
е) дополнительные статические и динамические маршруты;
ж) маршруты к туннелям IPv6-over-IPv4.
Как и в случае с IPv4, при выборе маршрута применяется правило наиболее точного соответствия. В первую очередь выбирается маршрут к сетевому интерфейсу, в последнюю – маршрут по умолчанию.
Некоторые новые и обновленные команды: route print (Windows), netsh interface ipv6 show route (Windows), netstat -nr -A inet6 (Linux), netsh interface ipv6 add route (Windows), route -A inet6 add (Linux), tracert (Windows), traceroute6 (Linux).
24. IPv6 Forwarding.
Рисунок -- Включение IPv6 Forwarding в Windows и Linux
Следует обратить внимание на возможность «привязки» не ко всем сетевым интерфейсам, а к конкретным.