Коротко — они не избыточны. Scope и target‑scope не влияют на выбор «лучшего» маршрута (distance / pref) — они используются на шаге рекурсивного разрешения next‑hop‑адреса, чтобы решить, какие именно маршруты можно использовать как «шаги» для достижения этого next‑hop и чтобы избежать нежелательной рекурсии/петель.
Что это значит на практике
- У вас есть маршрут вида 0.0.0.0/0 → 8.8.8.8 (gateway — IP). Роутеру надо «разрешить» 8.8.8.8: найти маршрут к этому IP. Это называется рекурсией.
- scope определяет «уровень» маршрута (насколько он «близкий»/доверенный для использования в рекурсии).
- target‑scope у маршрута с gateway говорит: разрешать ли использовать маршруты с какими‑то scope для нахождения этого gateway. Проще — target‑scope ограничивает, какие записи таблицы можно применять для поиска next‑hop.
Зачем это нужно (конкретные проблемы, которые решают)
- Предотвратить использование менее подходящих маршрутов для резолюции next‑hop (например, разрешать резолюцию только по напрямую подключённым маршрутам, а не по другим динамическим/дефолтным).
- Избежать рекурсии/петлей, когда next‑hop сам может быть разрешён через дефолтный маршрут (и тогда роутер «угадывает» сам и может попасть в бесконечный цикл).
- Контролировать поведение при мультипути/нескольких дефолтах, чтобы гарантировать, что gateway резолвится только через нужный интерфейс/канал.
Применение к вашему примеру
Маршруты у вас явно заданы, и при простом однозначном сценарии действительные значения scope/target‑scope по умолчанию вполне справятся. Но если появится перекрёстная зависимость (например, один gateway резолвится через другой дефолт, или оба gateway резолвятся через общую менее специфичную запись), без target‑scope роутер может:
- использовать неправильный путь для резолюции адреса next‑hop,
- попасть в рекурсию/петлю.
Рекомендации
- Для простой конфигурации ничего менять не нужно — дефолты обычно подходят.
- Если вы используете рекурсивные next‑hop (gateway — не напрямую подключённый IP), или наблюдаете странное поведение (резолюция next‑hop идёт через другой дефолт, петли), задавайте target‑scope/scope, чтобы ограничить, какие маршруты могут участвовать в рекурсии (обычно разрешают резолюцию только через напрямую подключённые/статические маршруты).
Итого: scope/target‑scope — инструмент для управления рекурсией и безопасности маршрутизации. Они не решают, какой маршрут «лучше» (это делает distance), но решают, можно ли вообще использовать конкретный маршрут как шаг для достижения next‑hop.