1. 1 История tcpIP
Скачать 340.83 Kb.
|
Варианты выполнения NAT Существует много вариантов выполнения преобразования адресов. Традиционный (или исходящий) NAT позволяет узлам частной сети прозрачно получать доступ к узлам во внешней сети. В традиционном NAT сессия может существовать только в одном направлении, исходящем из частной сети. Существует два варианта традиционного NAT, называемые базовым NAT и NAPT (Network Address Port Translation). При базовом NAT в исходящих из частной сети пакетах NAT-маршрутизатор заменяет частный IP-адрес источника на глобальный IP-адрес из пула адресов и вносит запись в таблицу NAT, где фиксируется соответствие IP-адресов. Затем он рассчитывает новую контрольную сумму для заголовка IP, и измененный пакет IP с новым заголовком передается адресату. Адрес получателя в пакете не изменяется. При получении пакета NAT-маршрутизатор сравнивает IP-адрес назначения с записями в таблице NAT, соответствующим образом изменяет глобальный адрес на частный, после чего создает новую контрольную сумму для заголовка IP и передает измененный пакет получателю во внутренней сети. NAPT (или Port Address Translation, PAT) дополнительно преобразует идентификатор транспорта, такой как номера портов ТСР и UDP. NAPT позволяет большому числу узлов частной сети разделять единственный глобальный адрес. Чтобы можно было отличить IP-пакеты различных отправителей, устройство NAPT заменяет (возможно, неоднозначный) номер порта TCP/UDP в заголовке TCP/UDP исходного пакета IP на другой, уникальный номер порта TCP/UDP и вносит соответствующую запись в таблицу NAT. При таком преобразовании система должна заново рассчитать контрольную сумму не только заголовка IP, но и заголовка TCP/UDP. После этого она создает новые заголовки TCP/UDP и IP и передает пакет IP соответствующему адресату. Заметим, что NAPT может быть скомбинирован с базовым NAT таким образом, чтобы использовался пул глобальных адресов совместно с преобразованием портов. Двунаправленный NAT обычно используется в том случае, если внешнему устройству надо обеспечить доступ к локальному серверу. При двунаправленном NAT сессии могут инициализировать как узлы из внешней сети (входящее преобразование), так и узлы из частной сети (исходящее преобразование). Выполнение входящих преобразований сложнее, чем исходящих. Устройства частной сети обычно знают IP-адреса внешних устройств. Например, устройство внутренней сети обращается к хорошо известному поисковому серверу. Внешние устройства при этом не знают частных IP-адресов внутри сети. Даже если бы они их знали, они не могли бы их указать в качестве адресов назначения, т. к. частные IP-адреса не маршрутизируются в Интернет. Прозрачная маршрутизация для сессий, начинающихся с узлов из внешней сети, может быть реализована несколькими способами. NAT должен быть сконфигурирован таким образом, чтобы отображать определенный порт получателя на конкретный узел и порт за NAT. Узлу в частной сети может быть назначен IP-адрес, доступный из внешней сети. Достоинства и недостатки NAT Технология NAT является одной из тех технологий, которые имеют примерно одинаковое количество достоинств и недостатков. К достоинствам технологии можно отнести: Использование большим количеством узлов частных IP-адресов. Простота расширения локальных сетей организаций. Больший локальный контроль, так как администратор получает возможность контролировать пакеты, передающиеся внутри локальной сети. Большая гибкость при изменении публичных адресов организаций. Провайдерам стало проще изменять публичные адреса, выделенные клиентам, так как количество этих адресов уменьшилось. Повышение защищенности, так как между локальной и публичной сетями создается межсетевой экран, не позволяющий злонамеренным пользователям подключаться к ресурсам локальной сети. NAT выполняется прозрачно для клиентов, то есть не требует от них выполнения никаких дополнительных действий. Все операции выполняет маршрутизатор. Недостатки технологии NAT следующие: Сложность в настройке и управлении. Проблемы совместимости с определенными приложениями, содержащими внутри себя информацию об IP-адресах. Проблемы с протоколами шифрования, такими как IPSec. Уменьшение производительности, так как на изменение пакетов требуется время. 3.1.11 Многоадресная передача пакетов IPv4 В современных IP-сетях существует три способа отправки пакетов от источника к приемнику: одноадресная передача (Unicast); широковещательная передача (Broadcast); многоадресная передача (Multicast). При одноадресной передаче поток данных передается от узла-отправителя на индивидуальный IP-адрес конкретного узла-получателя. Широковещательная передача предусматривает доставку потока данных от узла-отправителя — множеству узлов-получателей, подключенных к сети, используя широковещательный IP-адрес. Многоадресная передача обеспечивает доставку потока данных группе узлов на IP-адрес группы многоадресной рассылки (групповой IP-адрес). Многоадресная передача существовала с того момента, как протокол IPv4 был впервые официально определен, но долгие годы не получала широкого применения из-за отсутствия поддержки этого функционала в устройствах. Со временем появился интерес к многоадресной передаче, и ее поддержка стала частью стандарта IPv6. Многоадресная передача имеет ряд преимуществ при работе таких приложений как видеоконференции, корпоративная связь, дистанционное обучение, видео и аудио-трансляции, так как позволяет значительно повысить эффективность использования полосы пропускания и распределения информации среди больших групп получателей. Во-первых, отправитель может один раз передать единственную копию пакета данных всем членам группы, а не рассылать множество его копий. Во-вторых, благодаря передаче только одной копии пакета снижается нагрузка на канал связи. Многоадресная передача сложнее одноадресной или широковещательной. Она должны выполнять три основные функции: адресацию, управление группами многоадресной рассылки и обработку/маршрутизацию пакетов многоадресной рассылки. Адресация многоадресной передачи Для многоадресной передачи используются специальные IP-адреса. Источник многоадресного трафика направляет пакеты многоадресной рассылки не на индивидуальные IP-адреса каждого из узлов-получателей, а на групповой IP-адрес. Групповые адреса определяют произвольную группу IP-узлов, желающих получать адресованный ей трафик. Агентство IANA, которое управляет назначением групповых адресов, определило для многоадресной рассылки адреса IPv4 класса D в диапазоне от 224.0.0.0 до 239.255.255.255. Адреса, назначенные IANA, приведены в таблице ниже. Более подробную информацию о зарегистрированных адресах можно получить на сайте. Таблица 3.5. Назначенные IANA диапазоны адресов многоадресной рассылки IPv4
Использование групповых адресов IPv4 из блока с административным ограничением наиболее удобно при организации многоадресной рассылки в локальной сети предприятия или организации. В соответствии с RFC 2365 «Administratively Scoped IP Multicast» подсеть 239.192.0.0/14 выделена для частного использования и определена как локальная область организации (IPv4 Organization Local Scope). Управление группами многоадресной рассылки Управление группой многоадресной рассылки в сетях IPv4 выполняется с помощью протокола IGMP (Internet Group Management Protocol, Межсетевой протокол управления группами). Он используется для динамической регистрации отдельных узлов в многоадресной группе и определяет форматы сообщений, которые позволяют передавать информацию о группе и членах группы между устройствами и маршрутизаторами. В настоящее время существуют три версии протокола IGMP: IGMP версии 1 (IGMP v1, описан в RFC 1112); IGMP версии 2 (IGMP v2, описан в RFC 2236); IGMP версии 3 (IGMP v3, описан в RFC 3376). Протокол IGMP используется только в сетях с адресацией IPv4. В сетях с адресацией IPv6 групповая передача пакетов реализована на основе протокола MLD (Multicast Listener Discovery). Обработка и маршрутизация пакетов многоадресной рассылки Обработка и маршрутизация пакетов многоадресной рассылки является сложной задачей. Так как одно устройство отправляет пакет некоторому множеству устройств, должно быть создано несколько копий этого пакета. Маршрутизаторы должны понимать, когда они должны создавать эти копии. Также маршрутизаторы должны использовать специальные алгоритмы, которые позволяют определять маршруты отправки многоадресных пакетов. Поскольку создается несколько копий одного пакета, отправляемых в разные места, важно избежать создания избыточного объема трафика. Маршрутизаторы также должны уметь отправлять пакеты членам группы многоадресной рассылки даже в том случае, если источник не является ее членом. Маршрутизаторы, используемые для организации многоадресной рассылки, должны обладать расширенным функционалом и включать поддержку протоколов маршрутизации пакетов многоадресной рассылки, таких как DVMRP (Distance Vector Multicast Routing Protocol, Протокол дистанционно-векторной многоадресной маршрутизации) или PIM (Protocol Independent Multicasts, Многоадресная рассылка, независимая от протокола). Данные протоколы позволяют доставлять пакеты членам многоадресной группы независимо от их местонахождения, избегая при этом передачи избыточного трафика через составную сеть. 3.2 Протокол IP версии 6 Основную проблему протокола IPv4 — относительно небольшое адресное пространство, связанное с использованием адреса длиной 32 бита и его быстрое исчерпание, пытались решить разными способами: путем перехода на бесклассовую модель адресации, с помощью технологии NAT. Однако эти решения только замедлили на какое-то время стремительное исчерпание адресов IPv4. Стало понятно, что 32-х разрядное адресное пространство слишком мало для увеличивающейся в размерах сети Интернет. Это явилось основным фактором появления новой версии протокола IP — протокола IP версии 6 (IPv6). Основные операции IPv6 описаны в RFC 2460–2467, опубликованных в 1998 году. Наиболее значимые из них это RFC 2460 (Internet Protocol, Version 6 (IPv6) Specification) и два документа, описывающие протоколы-помощники IPv6: RFC 2461 (Neighbor Discovery for IP Version 6 (IPv6)) и RFC 2463 (Internet Control Message Protocol (ICMPv6) for the Internet Protocol Version 6 (IPv6) Specification). Адресацию IPv6 описывали опубликованные в 1998 году RFC 2373 (IP Version 6 Addressing Architecture) и RFC 2374 (An IPv6 Aggregatable Global Unicast Address Format). В 2003 году эти документы были обновлены RFC 3513 (Internet Protocol Version 6 (IPv6) Addressing Architecture) и RFC 3587 (IPv6 Global Unicast Address Format). В 2006 году RFC 3513 был заменен RFC 4291. Основные отличия IPv6 от IPv4 заключаются не только в увеличении адресного пространства. При разработке IPv6 ставились и другие не менее важные цели. Приведем основные отличия протокола IPv6 от IPv4: Большее адресное пространство. Размер адреса IPv6 увеличен до 128 битов. Это позволяет адресовать примерно 3,4х1038 интерфейсов устройств. Иерархическое назначение индивидуальных адресов. Был создан формат индивидуальных адресов Global Unicast, который используется для идентификации устройств в глобальной сети. С его помощью можно создавать множество уровней в иерархической структуре адресов, как провайдеров, так и организаций (то есть множество раз делить большие блоки адресов на меньшие). Расширена поддержка групповых адресов. Улучшена поддержка групповых адресов и добавлена поддержка нового типа адресации: альтернативная (anycast) адресация. Новый тип адресации позволяет доставлять сообщение ближайшему интерфейсу, входящему в группу интерфейсов, идентифицируемых одним адресом. Автоконфигурация. В протоколе IPv6 узел может практически самостоятельно сконфигурировать параметры своих интерфейсов. Новый формат дейтаграммы. Формат IP-дейтаграммы был переопределен. К основному (фиксированному) заголовку каждой дейтаграммы IPv6 может быть добавлено произвольное число расширенных заголовков, содержащих требуемую контрольную информацию. Поддержка качества обслуживания (QoS). Дейтаграмма IPv6 включает функции QoS, обеспечивающие поддержку трафика приложений, чувствительных к задержкам. Поддержка безопасности. Функции безопасности поддерживаются с помощью расширенных заголовков Authentication и Encapsulation Security Payload. Из-за множества отличий протоколов IPv4 и IPv6 и важности протокола IP для функционирования глобальной сети, был разработан план по переходу с протокола IPv4 на IPv6. IETF работала над методами, которые позволили бы плавно перейти с протокола версии 4 на протокол версии 6 и обеспечить возможность узлам IPv4 и IPv6 получать доступ друг к другу. Эти методы включают: Использование устройств «Dual Stack» (двойной стек): программное обеспечение устройств включает поддержку обеих версий IP (IPv4 и IPv6), что позволяет им взаимодействовать как с устройствами IPv4, так и с устройствами IPv6. Трансляцию IPv4/IPv6: программное обеспечение устройств «Dual Stack» может поддерживать функционал, который принимает запросы от узлов IPv6, преобразует их в дейтаграммы IPv4 и отправляет узлам-получателям с поддержкой IPv4. Дейтаграммы от узлов IPv4, предназначенные узлам IPv6, аналогичным образом преобразуются на устройствах «Dual Stack». Туннелирование IPv6 поверх IPv4: устройства IPv6, на пути между которыми отсутствуют маршрутизаторы IPv6, могут взаимодействовать друг с другом за счет инкапсуляции дейтаграмм IPv6 в дейтаграммы IPv4. Другими словами, они будут использовать два сетевых уровня: IPv6 будет находиться над IPv4. Инкапсулированная дейтаграмма IPv6 будет передаваться между маршрутизаторами IPv4, пока не достигнет адресата. 3.2.1 Формат заголовка IPv6 При разработке протокола IPv6 были внесены изменения в формат IP-пакета. Увеличение размера IP-адреса с 32 бит до 128 бит добавило 24 байта к заголовку пакета, что, в свою очередь, привело к попытке уменьшить его размер за счет исключения полей, связанных с фрагментацией, и поля контрольной суммы. В результате заголовок пакета IPv6 увеличился всего в два раза (с 20 до 40 байт). Пакет протокола IPv6 состоит из: фиксированного заголовка длиной 40 байт, содержащего адреса источника и приемника и всю требуемую для доставки любой дейтаграммы информацию; произвольного числа расширенных заголовков (extension header) переменной длины, каждый из которых содержит дополнительную информацию для поддержки таких функций как фрагментация, маршрутизация, аутентификация, безопасность и опции; поля данных переменной длины. Такой порядок способствует эффективной обработке пакетов на всем пути их следования. Формат фиксированного заголовка IPv6 показан на рисунке 3.26. Он состоит из следующих полей: Версия (Version) — для IPv6 значение поля должно быть равно 6; Класс трафика (Traffic Class) — поле используется для идентификации разных классов трафика или приоритетов для обеспечения дифференцированного обслуживания пакетов IPv6; Метка потока (Flow Label) — используется отправителем для обозначения последовательности пакетов, которые должны быть подвергнуты определенной обработке маршрутизаторами; Размер поля данных (Payload Length) — число, указывающее длину поля данных, идущего за заголовком пакета (с учетом расширенного заголовка); Следующий заголовок (Next Header) — задает тип расширенного заголовка IPv6, который следует за фиксированным; Предельное число шагов (Hop Limit) — уменьшается на 1 каждым маршрутизатором, через который передается пакет; при значении, равном 0, пакет отбрасывается; Адрес источника (Source Address) — 128-битный адрес отправителя пакета; Адрес назначения (Destination Address) — 128-битный адрес получателя пакета. Расширенные заголовки IPv6 используются для поддержки механизмов маршрутизации, безопасности, фрагментации, сетевого управления и расположены между фиксированным заголовком и заголовком протокола более высокого уровня. Пакет IPv6 может содержать 0, 1 или несколько расширенных заголовков, каждый из которых определяется значением поля Next Header предшествующего заголовка. Все существующие типы расширенных заголовков описаны в таблице 3.6. Таблица 3.6. Типы расширенных заголовков IPv6
Поле Next Header используется для логической связи всех заголовков пакета IPv6. Например, Next Header в фиксированном заголовке указывает тип первого расширенного заголовка, поле Next Header в первом расширенном заголовке содержит тип следующего расширенного заголовка и т. д. Поле Next Header последнего расширенного заголовка содержит номер протокола транспортного уровня (TCP или UDP) (рис. 3.28). Расширенные заголовки обрабатываются только узлом-получателем, за исключением заголовка Hop-By-Hop Options, который обрабатывается каждым промежуточным узлом на пути пакета, включая отправителя и получателя. Каждый расширенный заголовок может появляться в дейтаграмме IPv6 только один раз (за исключением Destination Options, который появляется дважды). Если в дейтаграмме имеется несколько расширенных заголовков, они должны следовать в определенном порядке: Hop-by-Hop Options Destination Options (для опций, которые должны быть обработаны получателем, указанным в поле Destination Address плюс последовательностью получателей, перечисленных в заголовке Routing) Routing Fragment Authentication Encapsulating Security Payload Destination Options (для опций, которые должны быть обработаны только последним получателем пакета) Подведем итог в сравнении заголовков пакетов IPv4 и IPv6: Неизменными остались поля Версия (Version), Адрес источника (Source Address) и Адрес назначения (Destination Address); Поле Длина заголовка (Internet Header Length) исчезло, так как фиксированный заголовок IPv6 имеет определенную длину (40 байт); Поле Тип сервиса (Type of Service) трансформировалось в заголовке IPv6 в поля Класс трафика (Traffic Class) и Метка потока (Flow Label); Поля Время жизни (Time to Live) и Протокол (Protocol) в заголовке IPv6 изменили названия, соответственно, на Предельное число шагов (Hop Limit) и Следующий заголовок (Next Header) с некоторым уточнением трактовки; Поле Контрольная сумма (Header Checksum) было ликвидировано, так как ее подсчет занимает некоторое время, что существенно снижает производительность узлов; Поля в заголовке IPv4, связанные с фрагментацией, были перенесены в расширенные заголовки IPv6. 3.2.2 Размер пакета IPv6 Для того чтобы отправить сообщение, используя протокол IP, данные, полученные от вышележащего уровня инкапсулируются в IP-пакет. Далее пакет опускается на уровень ниже и инкапсулируется в кадр канального уровня, который помещается в кадр физического уровня и передается по сети. Максимальный размер пакета, который может быть передан через физическую сеть, называется Maximum Transmission Unit (MTU). Обычно узлы стараются отправлять большие пакеты, так как это уменьшает издержки — например, количество служебной информации, такой как заголовки. Когда узел отправляет IP-пакет, он должен определить, не превышает ли размер пакета MTU нижележащего протокола. Если размер пакета больше, то он разбивается на фрагменты (fragments) и каждый фрагмент отправляется в виде отдельного пакета сетевого уровня. Пакет на своем пути от источника до приемника может пройти через множество сетей различных технологий, имеющих разные MTU. Поэтому его размер должен быть таким, чтобы вписаться в соответствующее поле протокола нижележащего уровня на каждом шаге маршрута. В целом механизм отправки пакетов IPv6 похож на процесс отправки пакетов IPv4. Основные различия заключаются в следующем: Минимальный размер пакета IPv4 (фрагментированного или целого), определенный в RFC 791, был 576 байтов. В IPv6 этот размер увеличился в два раза до 1280 байт. Это повысило эффективность передачи за счет увеличения доли содержащихся в пакете полезных данных. Пакеты IPv4 могли фрагментироваться или источником сообщения, или маршрутизаторами, находящимися на пути к получателю. В IPv6 фрагментировать пакеты могут только источники сообщений. Поэтому они должны выбирать такой размер фрагмента, чтобы он не превышал наименьший MTU на пути следования пакета. Для этого источник или использует MTU по умолчанию (1280 байт), или применяет механизм Path MTU discovery, аналогичный IPv4. Отражая уменьшающуюся важность фрагментации в IPv4, в IPv6 поля, связанные с фрагментацией, были перенесены из фиксированного в расширенный заголовок. 3.2.3 Представление и структура адреса IPv6 Увеличение длины адреса IPv6 до 128 бит значительно расширило доступное адресное пространство, но привело к неудобствам, связанным с его использованием. Адрес очень длинный, что приводит к трудностям при его запоминании и вводе. Для удобства восприятия и запоминания адреса IPv4 используется десятично-точечная нотация. Для того чтобы использовать десятично-точечную нотацию для представления адреса IPv6, его надо было бы разбить на 16 октетов и представить каждый из них десятичным числом от 0 до 255. Однако запоминать пришлось бы не 4 цифры как в IPv4, а 16. Запись и запоминание адреса IPv6 в двоичном виде еще сложнее, так как количество цифр в нем становится равным 128. Для того чтобы сделать адрес IPv6 короче, было принято решение использовать его шестнадцатеричное представление. Шестнадцатеричная нотация адреса IPv6 похожа на представление МАС-адреса в технологии Ethernet, где 48 битов представляются 6 октетами, разделенными знаком «-» или двоеточием. Например: 0x1A:С7:64:07:AF:D0 Так как адрес IPv6 длиннее, то он записывается как восемь групп по четыре шестнадцатеричные цифры, разделенные двоеточием: 705B:2D9D:DC28:0000:0000:FC57:D3F8:1CAF Существует несколько способов, которые позволяют сократить запись адреса IPv6: нули в начале группы можно заменить одним; одна или несколько идущих подряд групп, состоящих из нулей, может быть заменена знаком «::»; конечные нули в группе должны присутствовать. Рассмотрим приведенный ниже адрес. Цифры, выделенные жирным шрифтом, представляют позиции, в которых адрес может быть сокращен. 2001:1000:0000:0000:0000:ABCD:0000:0001 Варианты возможных сокращений: 2001:1000::ABCD:0:0001 2001:1000::ABCD:0:1
Альтернативной формой записи адреса, которая более удобна для использования в смешанной среде с узлами IPv4 и IPv6, является запись вида х:х:х:х:d.d.d.d, где х — шестнадцатеричное значение 6 первых групп адреса; d — десятичное значение 4 последних групп адреса (стандартное представление адреса IPv4). Например: 0:0:0:0:0:0:13.1.68.3 или в сокращенном виде ::13.1.68.3 0:0:0:0:0:FFFF:129.144.52.38 или в сокращенном виде ::FFFF:129.144.52.38 Аналогично классовым адресам IPv4, адреса IPv6 состоят из двух логических частей — битов идентификатора сети и следующими за ними битами идентификатора узла. Часть адреса, отведенная под идентификатор сети/подсети, называется префиксом (Prefix). Количество битов, отведенных под идентификатор сети, называется длиной префикса (Prefix length). Часть адреса, идентифицирующая интерфейс, называется идентификатором интерфейса (Interface ID). Он должен быть уникальным внутри сети/подсети. Представление префикса адреса IPv6 аналогично записи префикса адреса IPv4 в нотации CIDR. Он записывается в виде нотации «адрес IPv6/длина префикса», где «адрес IPv6» — адрес IPv6, записанный с помощью любой формы записи, «длина префикса» — десятичное число, показывающее, сколько битов адреса отведено под префикс. Для примера приведем запись 60-битного префикса 12AB00000000CD3 (аналогично записи номера сети/подсети в IPv4): 12AB:0000:0000:CD30:0000:0000:0000:0000/60 или 12AB::CD30:0:0:0:0/60 или 12AB:0:0:CD30::/60 Записать адрес узла, принадлежащего подсети 12AB:0:0:CD30::/60, можно следующим образом: 12AB:0:0:CD30:123:4567:89AB:CDEF/60 3.2.4 Типы адресов IPv6 Адресное пространство протокола IPv6 разделено на три типа адресов: индивидуальные (unicast) адреса; групповые (multicast) адреса; альтернативные (anycast) адреса. Индивидуальные адреса идентифицируют один интерфейс устройства. Пакеты, отправленные на этот адрес, доставляются только на этот интерфейс. Групповые адреса IPv6, подобно одноименным адресам IPv4, определяют группу интерфейсов. Пакеты, посылаемые на этот адрес, доставляются всем интерфейсам — участникам группы рассылки. Альтернативные адреса позволяют адресовать группу интерфейсов (обычно принадлежащих разным узлам). Однако в отличие от групповых адресов, пакеты, передаваемые на альтернативный адрес, доставляются на один из интерфейсов (обычно «ближайший», согласно метрике маршрутизации), определяемых этим адресом.
Широковещательные адреса (Broadcast), которые используются в IPv4, в IPv6 отсутствуют, что способствует уменьшению сетевого трафика и снижению нагрузки на большинство систем. Широковещательные адреса заменены групповыми. Типы адресов IPv6 определяются по их битам высокого порядка как показано в таблице 3.7. Таблица 3.7. Типы адресов IPv6
Альтернативные адреса берутся из адресного пространства индивидуальных адресов и поэтому синтаксически от них не отличаются. 3.2.5 Индивидуальные адреса Существует несколько типов индивидуальных адресов IPv6: Global Unicast; Unique-Local Unicast; Link-Local Unicast. Также имеется специальный подтип адресов Global Unicast: адреса IPv6 со встроенными адресами IPv4. Для каждого типа индивидуального адреса определен свой диапазон. 3.2.5.1 Идентификатор интерфейса Идентификатор интерфейса (Interface ID) в индивидуальных адресах IPv6, аналогично идентификатору узла адреса IPv4, используется для определения интерфейса в сегменте сети. Он должен быть уникальным внутри сети/подсети. При этом уникальность идентификатора интерфейса не зависит от уникальности адреса IPv6. Для всех индивидуальных адресов, за исключением тех, которые начинаются с 000, идентификатор интерфейса должен иметь длину 64 бита и быть сформирован в соответствии с форматом Modified EUI-64. Вместо того чтобы придумывать идентификаторы интерфейсов для узлов, их можно получать из адресов нижележащего канального уровня, так как их длина не превосходит 64 бита. В зависимости от нижележащей технологии канального уровня существует несколько методов формирования идентификатора интерфейса в соответствии с форматом Modified EUI-64. Наиболее распространенным типом адреса канального уровня является МАС-адрес, используемый технологиями IEEE 802. МАС-адрес, длина которого составляет 48 битов, разделен на две части. В первой части указывается уникальный идентификатор производителя оборудования (Organizationally Unique Identifier, OUI), который присваивается производителю институтом IEEE. Старшие 24 бита МАС-адреса назначаются непосредственно производителем и позволяют идентифицировать оборудование. IEEE также определил формат, который называется 64-bit Extended Unique Identifier (EUI-64). Он аналогичен формату МАС-адреса, но для идентификации оборудования используется 40 битов вместо 24. Идентификатор OUI остается без изменений. Модифицированный для использования в IPv6 вариант этого формата называется модифицированным EUI-64 (Modified EUI-64). Если на канальном уровне узел или линия связи используют адрес в формате EUI-64, то идентификатор интерфейса IPv6 получается из него очень просто. В 64-х битовом адресе значение 7-го бита слева (бит "u" (universal/local)) изменяется с «0» на «1». Большинство устройств используют МАС-адреса. Его преобразование в идентификатор интерфейса выполняется в два этапа. Сначала МАС-адрес преобразуется в формат EUI-64, из которого затем создается модифицированный EUI-64. Рассмотрим процесс получение идентификатора интерфейса из МАС-адреса узла. Преобразуем МАС-адрес в формат EUI-64. Так как МАС-адрес состоит из 48 битов, а для идентификатора интерфейса необходимо 64 бита, вставляем два октета со значениями 0xFF и 0xFE в середину МАС-адреса (между OUI и идентификатором, назначаемым производителем). В полученном адресе EUI-64 значение бита 7 (слева) изменяем с «0» на «1». При формировании идентификатора интерфейса из МАС-адреса существует возможность определения и отслеживания трафика конкретного узла, независимо от его префикса. Для обеспечения определенного уровня анонимности в документе RFC 3041 описан метод генерации узлом псевдослучайного идентификатора интерфейса IPv6, сменяемого с течением времени. Итоговый адрес IPv6, основанный на таком псевдослучайном идентификаторе интерфейса, называют временным адресом. Временные адреса рекомендуется создавать для префиксов глобальных адресов, используемых для подключения в Интернет. По умолчанию Windows Vista, Windows 7 и выше не используют технику генерации идентификатора интерфейса из МАС-адреса. Они генерируют псевдослучайные числа для использования в качестве идентификатора интерфейса, как для префиксов глобальных уникальных адресов, так и для адресов Link-Local Unicast. Адреса имеют неограниченное время жизни. |