Кратко

  • LSRR и SSRR помещали промежуточные адреса в заголовок IPv4, а решение об обработке оставалось за каждым участвующим узлом.
  • Позднейшие стандарты сохранили формат, но сделали нелокальную пересылку по исходному маршруту отключённой по умолчанию и рекомендовали отбрасывать эти опции.

Обычно поле адреса назначения IPv4 указывает, куда направить пакет. При маршрутизации от источника этот ответ становился временным. Достигнув текущего адреса, система, согласившаяся участвовать, могла перенести следующий адрес из опции в поле назначения, записать адрес собственного исходящего интерфейса в освободившееся место и сдвинуть указатель на четыре октета. Маршрут был изменяемым состоянием внутри пакета, а не просто пометкой.

LSRR имела тип 131 и разрешала обычную маршрутизацию между перечисленными точками. SSRR имела тип 137 и требовала прямой достижимости следующей точки. Обе опции содержали длину, указатель и области для IPv4-адресов; эти поля следовало проверять до использования. Флаг копирования обеспечивал наличие опций во всех фрагментах, а максимальный размер заголовка IPv4 в 60 октетов ограничивал длину списка.

Это не давало отправителю безусловной власти. Каждый узел мог применять собственные фильтры и правила. SSRR могла завершиться ошибкой, если следующий адрес находился не в непосредственно подключённой сети. Записанные адреса показывали только системы, которые приняли и обработали опцию; они не подтверждали и не аутентифицировали весь путь.

RFC 1122 сделал пересылку вопросом политики хоста. Хост мог быть промежуточным узлом, но при поддержке нелокальной маршрутизации от источника должен был иметь переключатель отключения, изначально установленный в выключенное состояние. Правила фильтрации шлюзов также сохранялись. Если неполный маршрут нельзя было продолжить, об этом можно было сообщить через ICMP Destination Unreachable, код 5, Source Route Failed.

RFC 6274 описал риски обхода правил маршрутизации, доступа к системам через неожиданный интерфейс, раскрытия топологии и принудительного прохождения искусственного пути. Он также требовал проверять длину и указатель до чтения или записи адресных областей. Рекомендация заключалась в отбрасывании LSRR и SSRR по умолчанию при сохранении явного включения для действительно нуждающихся сред, например отдельных диагностических или пиринговых сценариев.

RFC 7126 различил три политики: отбросить пакет, проигнорировать опцию и пересылать обычно либо обработать её по RFC 791. Для обеих опций значением по умолчанию должно быть drop, причём это значение требовалось документировать. Игнорирование не равно отбрасыванию: пакет может попасть не на то устройство, которое отправитель ожидал на данном этапе.

Итак, речь идёт об утрате доверия по умолчанию, а не об удалении механизма. Маршрутизация от источника остаётся частью спецификации IPv4, но пакет больше не может рассчитывать на автоматическое сотрудничество сети.

Источники