BGP AS_PATH Prepending: Как управлять входящим трафиком
Создана 22.07.2026
Отредактирована 22.07.2026
Отредактирована 22.07.2026
AS_PATH Prepending (или просто "препендинг") — это техника управления трафиком, которая влияет на то, как внешние сети (Интернет) будут заходить к вам.
Если LocalPref был про то, «куда мы идем», то AS_PATH Prepending — это про то, «как к нам приходят».
Как это работает?
- Когда вы анонсируете свою сеть (например, 3.3.3.3) внешним провайдерам, вы добавляете в маршрут лишние копии номера своей AS.
- Для соседа (провайдера) ваш маршрут начинает выглядеть искусственно длиннее, чем он есть на самом деле.
- BGP всегда выбирает путь с самым коротким AS_PATH. Если у провайдера есть два пути к вам (прямой и через другого провайдера), он выберет тот, где AS_PATH короче.
Когда применяется?
- Балансировка входящего трафика: У вас два провайдера. Вы хотите, чтобы 70% пользователей заходили к вам через одного провайдера, а 30% — через другого (за счет "удлинения" менее приоритетного канала).
- Аварийное переключение: Вы делаете резервный канал "длиннее", чтобы трафик шел по нему, только если основной упал.
Как мы настраивали в лабораторной работе?
Мы поставили задачу: «Сделать так, чтобы внешний мир (например, провайдер R2) предпочитал заходить к нам в сеть 3.3.3.3 через R4, а не напрямую через R2».
Мы "испортили" маршрут для R2, вставив туда лишние AS.
Команды для настройки:
1. Создаем правило (Route-Map), которое добавляет два лишних номера нашей AS (65001) в путь:
R1(config)# route-map PREPEND_TO_R2 permit 10 R1(config-route-map)# set as-path prepend 65001 65001
2. Применяем это правило к маршрутам, исходящим в сторону провайдера R2:
R1(config)# router bgp 65001 R1(config-router)# neighbor 10.0.0.2 route-map PREPEND_TO_R2 out
3. Проверяем результат. На R2 (внешний провайдер) мы увидели, что AS_PATH превратился из [65001] в [65001, 65001, 65001].
*> 3.3.3.3/32 10.0.0.1 0 65001 65001 65001 i
Важный нюанс (Ваша подсказка!)
Когда мы делали это в лабораторной работе, мы заметили важную вещь:
Внутренний маршрутизатор R3 НЕ ВИДЕЛ этих лишних AS_PATH. Почему? Потому что мы применяли политику только в сторону внешнего соседа R2 (out). Внутри AS (по iBGP) маршруты передаются в оригинальном, неизменном виде.
Внутренний маршрутизатор R3 НЕ ВИДЕЛ этих лишних AS_PATH. Почему? Потому что мы применяли политику только в сторону внешнего соседа R2 (out). Внутри AS (по iBGP) маршруты передаются в оригинальном, неизменном виде.
Итог (Запомните!)
AS_PATH Prepending — это способ сделать свой маршрут менее привлекательным для внешнего мира, искусственно удлиняя его.
Правило: Больше номеров AS в пути — ниже приоритет для соседей. Не влияет на внутренние маршруты внутри вашей AS.
Правило: Больше номеров AS в пути — ниже приоритет для соседей. Не влияет на внутренние маршруты внутри вашей AS.