Опции “Loose/Strict Source Routing”
Опции “Loose/Strict Source Routing” (класс 0, номера 3 и 9 соответственно) предназначены для указания дейтаграмме предопределенного отправителем маршрута следования.
Обе опции выглядят одинаково:
Тип опции
1 октет
Поле “Данные” содержит список 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, см. ). Например, требуется отправить некоторый TCP-сегмент из А в В через С. Из А в С отправляется дейтаграмма вида:
При обработке дейтаграммы в С обнаруживается, что данные дейтаграммы должны быть переданы для обработки протоколу IP и представляют собой, разумеется, также IP-дейтаграмму. Эта внутренняя дейтаграмма извлекается и отправляется в В.
При этом дополнительное время на обработку дейтаграммы потребовалось только в узле С (обработка двух заголовков вместо одного), но во всех остальных узлах маршрута никакой дополнительной обработки не потребовалось, в отличие от случая использования опций.
Применение IP-IP инкапсуляции также может вызвать описанные выше проблемы с безопасностью.