Лабораторная работа №2: Управление трафиком (BGP Policy)
Отредактирована 27.07.2026
- R1 (AS 65001) — пограничный маршрутизатор.
- R2 (AS 65002) — внешний провайдер №1 (ISP1).
- R4 (AS 65004) — внешний провайдер №2 (ISP2).
- R3 (AS 65001) — внутренний маршрутизатор.
- OSPF используется для связности Loopback-адресов внутри AS 65001.
R1(config)# interface Ethernet 1/2 R1(config-if)# ip address 10.0.0.9 255.255.255.252 R1(config-if)# no shutdown R1(config-if)# exit
R4(config)# interface Eth1/2 R4(config-if)# ip address 10.0.0.10 255.255.255.252 R4(config-if)# no shutdown R4(config-if)# exit R4(config)# interface loopback 0 R4(config-if)# ip address 4.4.4.4 255.255.255.255 R4(config-if)# exit
R1(config)# router bgp 65001 R1(config-router)# neighbor 10.0.0.10 remote-as 65004 R1(config-router)# neighbor 10.0.0.10 description ISP2_AS65004 R1(config-router)# exit
R4(config)# router bgp 65004 R4(config-router)# bgp router-id 4.4.4.4 R4(config-router)# network 4.4.4.4 mask 255.255.255.255 R4(config-router)# neighbor 10.0.0.9 remote-as 65001 R4(config-router)# neighbor 10.0.0.9 description Client_AS65001 R4(config-router)# exit
4. Шаг 3: Управление исходящим трафиком (Local Preference)
R1(config)# route-map SET_PREF_R4 permit 10 R1(config-route-map)# set local-preference 150 R1(config-route-map)# exit
R1(config)# router bgp 65001 R1(config-router)# neighbor 10.0.0.10 route-map SET_PREF_R4 in R1(config-router)# end
R1# clear ip bgp 10.0.0.10
5. Шаг 4: Управление входящим трафиком (AS_PATH Prepending)
R1(config)# route-map PREPEND_TO_R2 permit 10 R1(config-route-map)# set as-path prepend 65001 65001 R1(config-route-map)# exit
R1(config)# router bgp 65001 R1(config-router)# neighbor 10.0.0.2 route-map PREPEND_TO_R2 out R1(config-router)# end R1#copy running-config startup-config
R1# clear ip bgp 10.0.0.2
R1# show ip bgp
Network Next Hop Metric LocPrf Weight Path *> 4.4.4.4/32 10.0.0.10 0 150 0 65004 i *> 2.2.2.2/32 10.0.0.2 0 0 65002 i
R2# show ip bgp
Network Next Hop Metric LocPrf Weight Path *> 1.1.1.1/32 10.0.0.1 0 0 65001 65001 65001 i *> 3.3.3.3/32 10.0.0.1 0 65001 65001 65001 i
R3# show ip route bgp
B 2.2.2.2 [200/0] via 1.1.1.1, 00:15:13
r):| Проблема | Вероятная причина | Решение |
|---|---|---|
| На R1 нет маршрута до 4.4.4.4/32. | На R4 забыли настроить network 4.4.4.4 mask 255.255.255.255 или Loopback-интерфейс находится в состоянии shutdown. | Проверьте show ip route 4.4.4.4 на R4. Добавьте network и поднимите интерфейс (no shutdown). |
| После настройки Local Preference маршрут до 4.4.4.4 не имеет LocPrf 150. | Route-Map не применён к соседу R4 или не сброшена сессия. | Проверьте neighbor 10.0.0.10 route-map SET_PREF_R4 in. Выполните clear ip bgp 10.0.0.10. |
| На R2 не видно удлинённого AS_PATH. | Route-Map не применён к соседу R2 в направлении out. | Проверьте neighbor 10.0.0.2 route-map PREPEND_TO_R2 out. Выполните clear ip bgp 10.0.0.2. |
| BGP-сессия с R4 не устанавливается (Idle/Active). | Нет IP-связности между R1 и R4 или не совпадают номера AS. | Проверьте ping 10.0.0.10 с R1. Убедитесь, что на R1 указан remote-as 65004, а на R4 — remote-as 65001. |
| На R3 нет маршрута до внешней сети (2.2.2.2). | На R1 не настроен next-hop-self для iBGP-соседа R3. | На R1 добавьте neighbor 3.3.3.3 next-hop-self и выполните clear ip bgp 3.3.3.3. |
| Маршрут до 4.4.4.4 есть в BGP-таблице R1, но не в таблице маршрутизации R1. | Флаг r (RIB-failure) из-за отсутствия маршрута до Next-Hop (10.0.0.10). | Убедитесь, что физический интерфейс с R4 поднят (no shutdown) и IP-адрес настроен корректно. |
| Вопрос | Ответ |
|---|---|
| 1. Какое значение Local Preference присваивается маршрутам по умолчанию? | По умолчанию LocPrf = 100. |
| 2. Почему при настройке Local Preference мы использовали ключевое слово in, а при настройке Prepending — out? | Local Preference применяется к входящим маршрутам (мы получаем их от провайдера и назначаем приоритет). Prepending применяется к исходящим маршрутам (мы изменяем их перед отправкой провайдеру). |
| 3. Увидит ли R3 (внутренний роутер) изменённый AS_PATH, который мы применили к R2? Почему? | Нет, не увидит. Политика out применяется только к маршрутам, отправляемым конкретному внешнему соседу (R2). Внутри AS (по iBGP) маршруты передаются без изменений. |
- R4 отправляет R1 объявление о сети 4.4.4.4/32.
- Для R1 этот маршрут — входящий (он получает его от соседа).
- Чтобы R1 понял, что этот маршрут предпочтительнее других, мы должны изменить его атрибуты.
- Это можно сделать только в момент получения маршрута, пока он еще "сырой". Если мы попытаемся изменить его после того, как он уже попал в BGP-таблицу, это будет поздно (хотя есть механизмы, но это сложнее).
- LocPrf не передается за пределы AS. Он имеет смысл только внутри вашей сети.
- Когда R1 получает маршрут от R4, он назначает ему LocPrf и запоминает его.
- Затем R1 передает этот маршрут с LocPrf всем своим iBGP-соседям (например, R3).
R1(config-router)# neighbor 10.0.0.10 route-map SET_PREF_R4 out
- К вам приезжают фуры с товарами (маршрутами) от двух поставщиков (R2 и R4).
- Вы решаете, что товары от поставщика R4 должны проходить через границу быстрее (высокий LocPrf).
- Вы наклеиваете на фуры от R4 желтую наклейку (LocPrf = 150), а на фуры от R2 — зеленую (LocPrf = 100).
- Это можно сделать только когда фура въезжает ( in ). Вы не можете наклеить наклейку, когда фура уже уехала вглубь страны.
| Ключевое слово | Когда применяется | Для чего |
|---|---|---|
| in | К маршрутам, полученным от соседа. | Назначаем атрибуты (LocPrf, Weight, MED) в момент получения. |
| out | К маршрутам, отправляемым соседу. | Изменяем атрибуты (AS_PATH Prepending, MED) перед отправкой. |
- R1 собирается анонсировать свои сети (1.1.1.1/32 и 3.3.3.3/32) провайдеру R2.
- Для R1 эти маршруты — исходящие (он отправляет их соседу).
- Чтобы R2 (и другие внешние сети) считали этот маршрут менее привлекательным, мы должны искусственно удлинить AS_PATH.
- Это можно сделать только перед отправкой маршрута, пока он еще "в пути" к соседу. Если мы изменим его после отправки, это уже не имеет смысла.
- Prepending не влияет на маршруты внутри вашей AS. Он работает только для внешних соседей (eBGP).
- Когда R1 получает маршрут от R3 по iBGP, он видит оригинальный AS_PATH ( [65001] ).
- Только перед отправкой R2 R1 добавляет лишние номера AS ( [65001, 65001, 65001] ).
R1(config-router)# neighbor 10.0.0.2 route-map PREPEND_TO_R2 in
- Вы отправляете посылки (маршруты) двум курьерским службам (R2 и R4).
- Вы хотите, чтобы клиенты (внешний мир) реже заказывали доставку через службу R2.
- Чтобы это сделать, вы наклеиваете на посылки для R2 лишние наклейки с адресом (удлиняете путь).
- Это можно сделать только когда вы отдаете посылку курьеру ( out). Вы не можете наклеить наклейки на посылку, когда она уже уехала или когда вы получаете посылку от кого-то.
- R1 получает от R3 маршрут с AS_PATH = [65001] (оригинал).
- R1 применяет Prepending только для соседа R2 (направление out ).
- R1 хранит в своей BGP-таблице оригинальный маршрут (AS_PATH = [65001]).
- Когда R1 передает этот маршрут другим iBGP-соседям (например, обратно R3), он передает оригинал, а не измененную версию.
| Ключевое слово | Когда применяется | Для чего |
|---|---|---|
| in | К маршрутам, полученным от соседа. | Назначаем атрибуты (LocPrf, Weight, MED) в момент получения. |
| out | К маршрутам, отправляемым соседу. | Изменяем атрибуты (AS_PATH Prepending, MED) перед отправкой. |
| Атрибут | Направление | Почему |
|---|---|---|
| Local Preference | in | Назначается маршрутам при получении от eBGP-соседа. Используется внутри AS. |
| AS_PATH Prepending | out | Изменяет маршруты перед отправкой eBGP-соседу. Влияет на внешний мир. |