Поделиться через


Маркировка маршрутов для состояния Hold-Down

Некоторые клиенты, например протоколы вектора расстояния, такие как RIP и DVMRP, требуют, чтобы назначения объявлялись как недоступные в течение определенного времени после удаления последнего маршрута к месту назначения. Последний удаленный маршрут должен быть объявлен как недостижимый, даже если в это время поступают новые маршруты. Последний удаленный маршрут помечается как нападающий на удержание. Процесс удержания предотвращает формирование циклов маршрутизации. Циклы маршрутизации возникают, когда протокол маршрутизации объявляет устаревшие сведения о маршрутизации. По истечении срока удержания эти протоколы возобновляют объявление с новым лучшим маршрутом.

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

Когда протокол объявляет назначение, используемые сведения о маршруте зависят от того, использует ли протокол состояния удержания и существует ли маршрут в состоянии удержания для назначения.

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

Пример кода, демонстрирующий использование этих функций, см. в разделе Использование состояния Hold-Down маршрута.