Кратко

  • RFC 3147 определил недостающее обратное направление: IPv4 или IPv6 внутри GRE, а пакет GRE — в данных CLNP, чтобы пройти установленную сеть CLNS.
  • Предложенный N-SEL 47 выбирал GRE на конечной точке CLNS; GRE Protocol Type называл внутренний протокол. Эти поля не подтверждали выполнение операции на устройстве.
  • Сосуществование делало старую сеть зависимостью новой, поэтому отключение требовало отдельного доказательства альтернативного пути, размеров, защиты, результата и возврата.

Конечное устройство изменилось раньше пути

Сети управления SONET и SDH уже были крупной инфраструктурой. Bellcore GR-253-CORE и ITU-T G.784 предписывали CLNS для этой задачи. Когда новые элементы стали управляться по IP, это изменило протокол на краю, но не все промежуточные линии между центром управления и оборудованием.

Появились два зеркальных острова. Старый элемент CLNS за новой сетью IP можно было обслужить, перенося CLNP через GRE поверх IP. Новому элементу IP за старой сетью CLNS требовалось противоположное направление. Первый туннель не создавал второе автоматически.

RFC 3147 помещал пакет IPv4 или IPv6 в GRE, а весь пакет GRE — в поле данных CLNP Data Type PDU. CLNS переносила PDU через установленную сеть. Конечная точка снимала CLNP и GRE и выпускала внутренний пакет к IP-элементу.

Ядро CLNS не превращалось в IP-сеть. Управляемому элементу не обязательно было знать о туннеле. Возникал ограниченный проход между двумя концами, а не общая конверсия. Это отличало непрерывность от завершения.

Три заголовка подтверждали разные действия

Внутренний IP-заголовок описывал управленческий обмен. GRE сообщал тип заключённого сетевого протокола. CLNP давал адреса и маршрутизацию в реально пересекаемом домене. Каждая оболочка была отдельной квитанцией.

Приём CLNP PDU подтверждал доставку к концу туннеля. Корректный GRE подтверждал способ интерпретации. Вывод IPv6 подтверждал декапсуляцию. Оставалось доказать, что приложение приняло запрос, нужное устройство его выполнило, а наблюдаемое состояние изменилось.

Идентификаторы тоже различались. NSAP называл конец CLNS, IP-адрес — цель уровня IP, а операционная личность устройства могла определяться инвентарём, сертификатом или местом. Одно поле адреса стирало происхождение после первой замены.

Надёжная цепочка сохраняет намерение, внутренний пакет, GRE, CLNP, наблюдение пересылки, декапсуляцию, ответ приложения и независимое состояние. Успех раннего звена не подписывает позднее.

Число 47 открывало только вход GRE

CLNS различала пользователей Network Service последним октетом NSAP — N-selector, или N-SEL. Концам требовалось общее значение, означавшее, что данные CLNP начинаются с GRE. RFC 3147 предложил десятичное 47, совпадающее с номером GRE в пространстве IP-протоколов.

Совпадение было удобным, а не магическим. N-SEL 47 выбирал обработчик GRE. Затем GRE Protocol Type различал IPv4, IPv6 или другой протокол. Запись всего трафика 47 как IPv4 удаляла следующий слой смысла.

Значение оставалось рекомендацией. Согласие производителей делало совместимость возможной. Наличие номера в RFC не доказывало универсальную реализацию, одинаковые параметры или успешное применение конкретным оператором.

Квитанция должна хранить исходный и конечный NSAP, N-SEL, версию и флаги GRE, Protocol Type, внутренние адреса, отпечаток и время. Статуса «туннель поднят» недостаточно.

Маленькая проверка могла скрыть большой провал

Инкапсуляция увеличивала длину. Внутренняя линия CLNS могла иметь меньший предел PDU, неизвестный IP-источнику. RFC 3147 рекомендовал включать Segmentation Permitted. Без разрешения слишком большой PDU мог быть отброшен без полезного объяснения внутреннему отправителю.

Короткий ping или запрос проходил, а крупная передача конфигурации исчезала. После первого теста устройство считалось достижимым, а второй сбой приписывался приложению. На деле путь работал только для некоторых размеров.

На входе действовал IPv4 Path MTU Discovery. При сброшенном DF большой пакет можно было фрагментировать до инкапсуляции. При установленном DF его следовало отбросить и послать ICMP fragmentation-needed. Для ICMP также требовался обратный путь.

Исходная длина, DF, накладные байты, разрешение сегментации, предел линии, фрагменты, ICMP и точка наблюдения составляют одно доказательство. Без них размерная чёрная дыра выглядит случайной неисправностью устройства.

Инкапсуляция не обеспечивала безопасность

RFC 3147 прямо говорил: CLNS и GRE не дают здесь защиты. Если она нужна, другой механизм должен защищать содержимое до входа в GRE поверх CLNS. Туннель не аутентифицировал устройство, не шифровал команду и не давал полномочий оператору.

Пакет мог быть правильным на трёх сетевых уровнях и оставаться запрещённой командой. Конец мог точно воспроизвести байты, а приложение — отказаться. Ответ также не доказывал личность устройства без отдельного механизма.

Поздние расширения GRE и современные средства способны дополнить реализацию, но не становятся задним числом свойствами текста июля 2001 года. История должна называть реально наблюдавшуюся защиту.

Временный мост усилил старую сеть

Когда новое IP-оборудование зависело от GRE поверх CLNS, старая сеть перестала быть только наследуемой затратой. Она стала частью рабочего пути нового оборудования. Преждевременное отключение могло изолировать именно символы модернизации.

Это не делало CLNS вечной. Оно задавало условия выхода: проверенный альтернативный путь для каждой зависимости, испытания размеров, перенос защиты, отработанный возврат и подтверждённое состояние после переключения. Счётчика туннеля было мало.

Оператор CLNS контролировал маршруты и план NSAP; оператор IP — новую достижимость; поставщик — приложение; ответственный за сервис — переключение. IETF стандартизировал стык, не объединяя полномочия.

Исторически зависимости пересекались. CLNP поверх IP поддерживал старые элементы за новой сетью; IP поверх CLNS достигал новых элементов за старой. Минимальная спецификация решала только стык, оставляя политику вывода местной.

Работающий код сохранял право апелляции. Если оболочки пришли, а состояние не изменилось, управление не состоялось. Если проходили только малые пакеты, путь не был общепригодным. Если CLNS оставалась единственным возвратом, замена не завершилась. Туннель сохранял время, но не выдавал свидетельство об окончании.

Источники