Кратко

  • В classful-логике маршрут к одной подсети класса A мог стать маршрутом ко всему родителю и вытеснить default для остальных его частей.
  • Поэтому ввод адресного запаса требовал совместного перехода реестра, провайдера, клиентского IGP, соседей, агрегации и обработки незадействованных дыр.
  • RFC 2036 описывал условия и прогнозируемые риски, а не их частоту в реальных сетях и не доказанный успех развёртывания.

Запас в реестре ещё не был рабочим запасом

RFC 2036 комментировал возможную рекомендацию: IANA через делегированные реестры начинает выдавать нераспределённые части пространства класса A как classless-префиксы. До этого осторожные CIDR-выделения часто составлялись из совместимых суперблоков сетей класса C. Новая арифметика сосуществовала со старой интерпретацией.

Провайдер без полной таблицы мог получать только маршрут по умолчанию и оставаться classful внутри. Соседний провайдер выполнял proxy aggregation непрерывных классовых блоков. Пока граница выделения совпадала с границей класса, самая опасная неоднозначность не проявлялась.

Подпрефикс исторического Class A менял выбор. Увидев default и одну подсеть, classful-маршрутизатор мог распространить знание о ней на весь родительский блок. Адреса других компонентов уже не обязаны были следовать default. Резервный путь не исчезал; ошибочно расширенное знание делало его неприменимым.

Отсюда жёсткий вывод RFC: classless routing нужен даже провайдерам, которые зависят от default. Чужая proxy aggregation не восстанавливает потерянную длину префикса. Решение о гранулярности адресов стало требованием к исполняемой системе.

Subnet default пришлось развернуть

У нетранзитного клиента classful-исключение требовало противоположного направления. Для блоков, совпадающих с границами классов, явный subnet default не должен был вести к провайдеру, иначе на границе возникала петля. Для classless-компонента Class A RFC 2036 требовал направить этот default туда же, куда общий маршрут по умолчанию,— наружу.

Это сохраняло путь к другим частям родителя, но создавало новую поверхность риска. Подробные внутренние маршруты могли утечь провайдеру, который брал на себя правильный агрегат. Если proxy aggregation покрывала весь выделенный блок и трафик к незадействованной части возвращался клиенту, пакет ходил по петле на стыке. Если провайдер маршрутизировал лишь развёрнутые части, пакет к дыре следовал цепочкой default до первого узла без default и отбрасывался там.

Поэтому документ рекомендовал sink subnet routes для всех неразвёрнутых компонентов. Агрегат сокращает внешнюю таблицу, sink ограничивает обещание агрегата. Наличие обоих в конфигурации ещё не доказывает установку в FIB и реальный путь пакета.

Вторая связь делала условие транзитивным

Изолированный домен мог сохранить classful IGP. Клиент с одной связью к classless-провайдеру мог пользоваться узким исключением. При multi-homing разные провайдеры могли объявить разные части одного родителя, и внутренний протокол обязан был сохранить их маски.

Peer-связь переносила требование ещё дальше. В примере RFC classless-stub X и Y соединены через classful-домен Z, который служит транзитом. X сообщает один компонент; Z превращает его в полный Class A и объявляет Y. Этот маршрут перекрывает default, полученный Y от своего провайдера. Весь трафик родителя идёт через Z к X, где нетранзитный X отбрасывает нелокальные пакеты.

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

Порядок выделения стал инструментом миграции

RFC предлагал сначала выдавать адреса доменам с classless IGP, а также изолированным или односвязным classful-клиентам classless-провайдера, готовым направить subnet default наружу. Оборудование должно явно выбирать classless/classful режим и поведение подсетевого default: следовать общему маршруту или завершаться в sink. Хостам со временем требовалась настройка локального префикса, а не только класса, подсети и узла.

Опубликованный месяц спустя RFC 2050 утверждал, что выделения предполагают VLSM и classless-технологии, а заявки, основанные на classful-использовании, не рассматриваются. Это свидетельство административного условия, но не аудит его выполнения каждым получателем.

Контекст давления дал рабочий коллектив ALE. Его устав охватывал прогноз срока жизни IPv4, использование, правила выделения, число маршрутов, возврат и перенумерацию. RFC 2036 ссылался на опасение об исчерпании Class C-пула и на свободную верхнюю половину Class A, составлявшую тогда около четверти IPv4. Он не опубликовал исходные ряды ALE или статистику развёртываний.

Historic — итог, но не ретроспективная телеметрия

Документ вышел как Informational, сегодня имеет статус Historic и не имеет зарегистрированных errata. RFC 4632 в 2006 году объяснил это полным развёртыванием CIDR и более чем шестилетним опытом classless-выделений из исторического пространства Class A. Это поздняя оценка IETF, а не перечень операторов, версий и инцидентов.

RFC 4632 также закрепил общее правило: источник агрегата должен отправлять в null трафик, совпавший с агрегатом, но не с более точным маршрутом. Так проблема дыр из RFC 2036 вошла в позднюю архитектуру. Нынешний реестр IANA и документы о последних /8 закрывают историю прежнего пула, не измеряя переход.

Нужны шесть раздельных квитанций: точный префикс реестра; default и политика провайдера; IGP и subnet default клиента; условия появления агрегата и sinks; сохранение маски каждым peer; наблюдаемый next hop или discard. Принцип работающего кода Хэн Лу не отрицает запись. Он не позволяет административной координации автоматически доказывать forwarding.

Источники