Узел или сеть назначения могут быть недостижимы из-за временной неработоспособности аппаратуры, из-за того, что отправитель указал неверный адрес назначения, а также из-за того, что маршрутизатор не имеет данных о маршруте к сети назначения.
Недостижимость протокола и порта означают отсутствие реализации какого-либо протокола прикладного уровня в узле назначения или же отсутствие открытого порта протоколов UDP или TCP в узле назначения.
Ошибка фрагментации возникает тогда, когда отправитель послал в сеть пакет с признаком DF, запрещающим фрагментацию, а маршрутизатор столкнулся с необходимостью передачи этого пакета в сеть со значением MTU меньшим, чем размер пакета.
Маршрутные таблицы у компьютеров обычно являются статическими, так как конфигурируются администратором сети, а у маршрутизаторов – динамическими, формируемыми автоматически с помощью протоколов обмена маршрутной информации. Поэтому с течением времени при изменении топологии сети маршрутные таблицы компьютеров могут устаревать. Кроме того, эти таблицы обычно содержат минимум информации, например, только адреса нескольких маршрутизаторов.
Для корректировки поведения компьютеров маршрутизатор может использовать сообщение протокола ICMP, называемое «Перенаправление маршрута» (Redirect).
Это сообщение посылается в том случае, когда маршрутизатор видит, что компьютер отправляет пакет некоторой сети назначения нерациональным образом, то есть не тому маршрутизатору локальной сети, от которого начинается более короткий маршрут к сети назначения.
Механизм перенаправления протокола ICMP позволяет компьютерам содержать в конфигурационном файле только IP-адреса его локальных маршрутизаторов. С помощью сообщений о перенаправлении маршрутизаторы будут сообщать компьютеру всю необходимую ему информацию о том, какому маршрутизатору следует отправлять пакеты для той или иной сети назначения. То есть маршрутизаторы передадут компьютеру нужную ему часть их таблиц маршрутизации.
В сообщении «Перенаправление маршрута» маршрутизатор помещает IP-адрес маршрутизатора, которым нужно пользоваться в дальнейшем, и заголовок исходного пакета с первыми 64 битами его поля данных. Из заголовка пакета узел узнает, для какой сети необходимо пользоваться указанным маршрутизатором.
Пример:
Предположим, таблица маршрутов в начале выглядит следующим образом:
Таблица 3.
Таблица маршрутов в начале работы. | |||
Адрес назначения | Вид маршрутизации | Шлюз | Интерфейс |
127. 0. 0 | прямая | пусто | lo0 |
128. 6. 4 | прямая | пусто | pe1 |
default | косвенная | 128. 6. 4. 27 | pe0 |
Эта таблица содержит запись о локальной IP-сети 128.6.4 и маршрут по умолчанию, указывающий шлюз 128.6.4.27. Допустим, что существует шлюз 128.6.4.30, который является лучшим путем доступа к IP-сети 128.6.7.
Предположим, что нужно посылать IP-пакеты по IP – адресу 128.6.7.23. Первый IP-пакет пойдет на шлюз по умолчанию, так как это единственный подходящий маршрут, описанный в таблице. Однако шлюз 128.6.4.27 знает, что существует лучший маршрут, проходящий через шлюз 128.6.4.30. В этом случае шлюз 128.6.4.27 возвращает сообщение перенаправления, где указывает, что IP-пакеты для узла 128.6.7.23 должны посылаться через шлюз 128.6.4.30.
Модуль IP на машине-отправителе должен добавить запись в таблицу маршрутов:
Таблица 4.
Новая запись в таблице маршрутов. | |||
Адрес назначения | Вид маршрутизации | Шлюз | Интерфейс |
128. 6. 7. 23 | косвенная | 128. 6. 4. 30 | pe0 |
Все последующие IP-пакеты для узла 128.6.7.23 будут посланы прямо через указанный шлюз.
На первый взгляд, новый протокол обладает рядом существенных преимуществ перед IPv4. Однако до сих пор скорость его внедрения продолжает оставаться низкой. По данным Форума IPv6, только семь из 21 крупнейших интернет-провайдеров предпринимают шаги, необходимые для полноценного перехода к использованию новой технологии.
Необходимо исходить из того, что IPv6 является новой версией старого протокола, разработанной таким образом, чтобы обеспечить совместимость и «мягкий» переход, не приуроченный к конкретной дате и не требующий одновременных действий всех участников. По некоторым прогнозам, совместное существование двух протоколов будет продолжаться до десяти и более лет.
В спецификации RFC 1726 представлен набор функций, основными среди них являются:
· масштабируемость: идентификация и определение адресов как минимум 1012 конечных систем и 109 индивидуальных сетей;
· топологическая гибкость: архитектура маршрутизации и протокол должны работать в сетях с различной топологией;
· преемственность: обеспечение чёткого плана перехода от существующей версии IPv4;
· независимость от среды передачи: работа среди множества сетей с различными средами передачи данных со скоростями до сотен гигабит в секунду;
· автоматическое конфигурирование хостов и маршрутизаторов;
· безопасность на сетевом уровне;
· мобильность: обеспечение работы с мобильными пользователями, сетями и межсетевыми системами;
· расширяемость: возможность дальнейшего развития в соответствии с новыми потребностями.
В результате реализации заявленных функций важнейшие инновации IPv6 состоят в следующем:
· упрощен стандартный заголовок IP-пакета;
· изменено представление необязательных полей заголовка;
· расширено адресное пространство;
· улучшена поддержка иерархической адресации, агрегирования маршрутов и автоматического конфигурирования адресов;
· введены механизмы аутентификации и шифрования на уровне IP-пакетов;
· введены метки потоков данных.
Протокол IP v6 предполагает также значительные улучшения при работе в локальной сети. Единый протокол NDP (Neighbor Discovery Protocol – протокол распознавания соседей) заменяет применяемые в IP v4 протоколы ARP, ICMP и значительно расширяет их функциональные возможности. Вместо использующихся в протоколе ARP широковещательных пакетов канального уровня используются групповые сообщения (multicast), то есть адресованные всем членам подсети, притом, не на канальном, а на сетевом уровне, что должно значительно снизить широковещательный трафик, являющийся бичом локальных сетей Ethernet. Усовершенствованы функции протокола ICMP, облегчая работу разных подсетей в одном физическом сегменте. Включен механизм распознавания неисправных маршрутизаторов, что позволяет повысить устойчивость к сбоям оборудования.
IPv6 и DNS
Еще одна проблема, связанная с внедрением IPv6, – ее несовместимость с DNS, которая используется сегодня в Интернете.
Существование DNS (Domain Name System) избавляет рядового пользователя от необходимости задумываться о числовых IP-адресах. Она позволяет присваивать любому IP-адресу символьное имя (домен). Преобразование символьного имени в числовое и наоборот осуществляется DNS-серверами. На них содержится информация о каждом домене. Она представлена в виде ресурсных записей, каждая из которых принадлежит конкретному доменному имени и содержит ряд сведений о нем, в том числе его IP-адрес. До начала внедрения IPv6 существовало 20 типов таких записей. Они относились к 32-разрядным IP-адресам (так называемые записи «A»), что делало DNS и IPv6 несовместимыми.
Однако затем был определен новый тип ресурсной записи «AAAA», который служит для хранения 128-битного IPv6-адреса. Сам адрес определен в информационной части этой записи и в виде имени представляется в специально созданном домене ip6.int. Это имя выглядит как набор символов, разделенных точками, и заканчивается суффиксом ip6.int.
Клиент, направляющий с устройства запросы на DNS-сервер, должен уметь распознавать записи как об адресах IPv4, так и об адресах IPv6. Получив запрос, DNS-сервер определяет тип ресурсной записи (A или AAAA) и отправляет ее устройству. Распознав запись, устройство выбирает для передачи данных либо протокол IPv4, либо протокол IPv6.
При этом, когда IPv4-совместимый адрес назначается какому-либо узлу, в DNS создается две ресурсных записи: AAAA и A. Первая отображает этот адрес в 128-битном формате, а вторая – в 32-битном. Это позволяет устройствам, использующим только протокол IPv6, получать IPv6-адреса, а узлам, работающим только на IPv4 – IPv4 адреса.
Одним словом, для полной совместимости с IPv6 DNS требует серьезной перестройки.
Внедрение набора протоколов IP v6 и его преимущества перед IP v4
При рассмотрении возможностей, предоставляемые новым протоколом, может возникнуть вопрос, а зачем он все-таки нужен? Большинство функций либо уже имеются в IP v4, либо могут быть реализованы путем доработки соответствующих протоколов. Так, автоматическое выделение адресов производится при помощи протокола DHCP, адресный барьер преодолевается при помощи протокола NAT и т.д. и т.п. Однако разработка всех необходимых заплаток для протокола IP v4 потребовала бы затраты не меньших (а то и больших) усилий, чем создание нового протокола «с чистого листа». Разумеется, лист был не совсем чистым, поскольку вопросы совместимости и совместной работы обоих протоколов имелись в виду с самого начала проектирования. В конце концов Интернет все равно пришла бы к кризису дефицита адресов, так что заблаговременная разработка и постепенное внедрение протокола IP v6 были более чем уместны.