- •Стеки сетевых протоколов Семиуровневая модель osi
- •Уровни модели osi
- •Инкапсуляция и обработка пакетов
- •Стек протоколов tcp/ip
- •Уровень приложений
- •Транспортный уровень
- •Межсетевой уровень и протокол ip
- •Уровень доступа к среде передачи
- •Протокол ip Функции протокола ip
- •Классовая модель
- •Бесклассовая модель (cidr)
- •Запись адресов в бесклассовой модели
- •Маршрутизация
- •Пример маршрутизации
- •Пример подключения локальной сети организации к Интернет
- •Маршрутизатор или шлюз?
- •Создание статических маршрутов
- •Динамическая маршрутизация
- •Формат заголовка ip-дейтаграммы
- •Фрагментация дейтаграмм
- •Обсуждение фрагментации
- •Опции ip
- •Опции “Loose/Strict Source Routing”
- •Протокол icmp
- •Протокол arp
- •Arp для дейтаграмм, направленных в другую сеть
- •Протокол iPv6 (Internet Protocol Version 6)
- •Введение в iPv6
- •Узлы, маршрутизаторы хосты и интерфейсы
- •Связи, соседи, mtu канала и адреса уровня связи
- •Одноадресные (unicast), групповые (multicast) и адреса рассылки до первого получателя (anycast)
- •Адресация iPv6 Текстовое представление iPv6-адресов
- •Адреса одноадресной рассылки
- •Зарезервированные адреса одноадресной рассылки
- •Глобальные адреса провайдеров
- •Локальные адреса одноадресной рассылки
- •IPv6-адреса с вложенными iPv4-адресами
- •Адреса рассылки до первого получателя
- •Групповые адреса
- •Обнаружение соседа (neighbor discovery)
- •Методы обнаружения маршрутизаторов
- •Обнаружение хоста
- •Формат заголовка iPv6 и механизмы маршрутизации
- •Дополнительный заголовок Hop-by-Hop
- •Заголовок Destination Options
- •Заголовок Маршрутизации (Routing)
- •Заголовок Фрагмента (Fragment)
- •Заголовок Проверка подлинности (Authentication)
- •Механизмы перехода
- •Поддержка двух стеков протоколов
- •Туннелирование iPv6 через iPv4
Опции ip
Опции определяют дополнительные услуги протокола IP по обработке дейтаграмм. Опция состоит, как минимум, из октета “Тип опции”, за которым могут следовать октет “Длина опции” и октеты с данными для опции.
Структура октета “Тип опции”:
Значения бита С:
1 - опция копируется во все фрагменты;
0 - опция копируется только в первый фрагмент.
Определены два класса опций: 0 - “Управление” и 2 - “Измерение и отладка”. Внутри класса опция идентифицируется номером. Ниже приведены опции, описанные в стандарте протокола IP; знак “-” в столбце “Октет длины” означает, что опция состоит только из октета “Тип опции”, число рядом с плюсом означает, что опция имеет фиксированную длину (длина указывается в октетах).
Таблица 2.4.2
Опции IP
Класс |
Номер |
Октет длины |
Опция |
0 |
0 |
- |
Конец списка опций |
0 |
1 |
- |
Нет операции |
0 |
2 |
+ (11) |
Безопасность |
0 |
3 |
+ |
Loose Source Routing (свободное исполнение маршрута отправителя) |
0 |
9 |
+ |
Strict Source Routing (строгое исполнение маршрута отправителя) |
0 |
7 |
+ |
Запись маршрута |
0 |
8 |
+ (4) |
Stream ID |
2 |
4 |
+ |
Internet Timestamp (временной штамп) |
При обнаружении в списке опции “Конец списка опций” разбор опций прекращается, даже если длина заголовка (IHL) еще не исчерпана. Опция “Нет операции” обычно используется для выравнивания между опциями по границе 32 бит.
Большинство опций в настоящее время не используются. Опции “Stream ID” и “Безопасность” применялись в ограниченном круге экспериментов, функции опций “Запись маршрута” и “Internet Timestamp” выполняет программа traceroute. Определенный интерес представляют только опции “Loose/Strict Source Routing”, они рассмотрены в следующем пункте.
Применение опций в дейтаграммах замедляет их обработку. Поскольку большинство дейтаграмм не содержат опций, то есть имеют фиксированную длину заголовка, их обработка максимально оптимизирована именно для этого случая. Появление опции прерывает этот скоростной процесс и вызывает стандартный универсальный модуль IP, способный обработать любые стандартные опции, но за счет существенной потери в быстродействии.
Опции “Loose/Strict Source Routing”
Опции “Loose/Strict Source Routing” (класс 0, номера 3 и 9 соответственно) предназначены для указания дейтаграмме предопределенного отправителем маршрута следования.
Обе опции выглядят одинаково:
Тип опции |
Длина опции |
Указатель |
Данные |
1 октет |
1 октет |
1 октет |
(Длина - 3) октетов |
Поле “Данные” содержит список IP-адресов требуемого маршрута в порядке следования. Поле “Указатель” служит для определения очередного пункта маршрута, оно содержит номер первого октета IP-адреса этого пункта в поле “Данные”. Номера считаются от начала опции с единицы, начальное значение указателя - 4.
Опции работают следующим образом.
Предположим, дейтаграмма, посланная из A в B, должна проследовать через маршрутизаторы G1 и G2. На выходе из А поле “Destination Address” заголовка дейтаграммы содержит адрес G1, а поле данных опции - адреса G2 и В (указатель=4). По прибытии дейтаграммы в G1 из поля данных опции, начиная с октета, указанного указателем (октет 4), извлекается адрес следующего пункта (G2) и помещается в поле “Destination Address”, при этом значение указателя увеличивается на 4, а на место адреса G2 в поле данных опции помещается адрес того интерфейса маршрутизатора G1, через который дейтаграмма будет отправлена по новому месту назначения (то есть в G2). По прибытии дейтаграммы в G2 процедура повторяется и дейтаграмма отсылается в В. При обработке дейтаграммы в В обнаруживается, что значение указателя (12) превышает длину опции, это значит, что конечный пункт маршрута достигнут.
Отличия опций “Loose Source Routing” и “Strict Source Routing” друг от друга заключаются в следующем:
“Loose”: очередной пункт требуемого маршрута может быть достигнут за любое количество шагов (хопов);
“Strict”: очередной пункт требуемого маршрута должен быть достигнут за 1 шаг, то есть непосредственно.
Рассмотренные опции копируются во все фрагменты. В дейтаграмме может быть только одна такая опция.
Опции “Loose/Strict Source Routing” могут быть использованы в целях несанкционированного проникновения через контролирующий (фильтрующий) узел (в поле “Destination Address” устанавливается разрешенный адрес, дейтаграмма пропускается контролирующим узлом, далее из поля данных опции подставляется запрещенный адрес и дейтаграмма перенаправляется по этому адресу уже за пределами досягаемости контролирующего узла), поэтому в целях безопасности рекомендуется вообще запретить пропуск контролирующим узлом дейтаграмм с рассматриваемыми опциями.
Быстродействующей альтернативой использованию опции “Loose Source Routing” является IP-IP инкапсуляция: вложение IP-дейтаграммы внутрь IP-дейтаграммы (поле “Protocol” внешней дейтаграммы имеет значение 4, см. табл. 2.4.1). Например, требуется отправить некоторый TCP-сегмент из А в В через С. Из А в С отправляется дейтаграмма вида:
При обработке дейтаграммы в С обнаруживается, что данные дейтаграммы должны быть переданы для обработки протоколу IP и представляют собой, разумеется, также IP-дейтаграмму. Эта внутренняя дейтаграмма извлекается и отправляется в В.
При этом дополнительное время на обработку дейтаграммы потребовалось только в узле С (обработка двух заголовков вместо одного), но во всех остальных узлах маршрута никакой дополнительной обработки не потребовалось, в отличие от случая использования опций.
Применение IP-IP инкапсуляции также может вызвать описанные выше проблемы с безопасностью.
