Logo
  • ГЛАВНАЯ
  • ОБО МНЕ
  • СЕРТИФИКАТЫ
nocip.ssh@mail.ru
Главная  >  Cisco Routing

Лабораторная работа №5: BGP Community (массовое управление политиками)


Создана 06.10.2026
Отредактирована 07.10.2026
Цель работы: Научиться использовать атрибут Community для маркировки маршрутов внешней организации и применения к ним политик без необходимости перечислять каждый префикс вручную.

1. Теория: Что такое Community?

Community (сообщество) — это атрибут BGP, который представляет собой метку (число в формате  AS:значение ), присваиваемую маршруту. Эта метка передаётся между AS и позволяет применять политики к группе маршрутов.

community [kəˈmjuːnɪtɪ] сообщество

Свойство
Описание
Формат
AS:значение  (например,  65005:100 ) или просто число
Передача
По умолчанию не передаётся между eBGP-соседями, если не настроено  send-community 
Область действия
Может передаваться по iBGP и eBGP (при настройке)
Приоритет
Не влияет на выбор маршрута напрямую, только через политики

🎯 Зачем нужны Community?

Представьте, что у вас есть внешняя организация R5, которая анонсирует три сети. Вы хотите:
  • К одной сети применять Local Preference 150 (приоритетная).
  • К другой — Local Preference 120 (средняя).
  • К третьей — Local Preference 100 (стандартная).
Без Community вам пришлось бы создавать три отдельных Route-Map с  match ip address  для каждого префикса. С Community вы создаёте один Route-Map, который смотрит на метку и применяет политику.

📋 Известные (well-known) Community

Community
Значение
no-export 
Не передавать маршрут за пределы AS
no-advertise 
Не анонсировать маршрут никому (даже внутри AS)
local-as 
Не передавать маршрут за пределы AS (но передавать внутри) 
internet 
Маршрут доступен в Интернете (по умолчанию)
2. Топология
Используем ту же схему, что и в ЛР №3–4, и добавляем внешнюю организацию R5 (AS 65005), подключённую к R1.
Топология лабораторной работы №5 по BGP: пограничный маршрутизатор R1, провайдеры R2 и R4, внутренний R3 и внешняя организация R5 в AS 65005
Рис. 1. Топология сети для лабораторной работы №5: пограничный R1, провайдеры R2 и R4, внутренний R3 и внешняя организация R5
📋 Роли в топологии
Маршрутизатор
AS
Описание
R1
65001
Вы — пограничный роутер, применяете политики
R2
65002
ISP1 — внешний провайдер №1
R3
65004
ISP2 — внешний провайдер №2
R4
65001
Ваш внутренний роутер (iBGP)
R5
65005
Внешняя организация — подключается к вам, анонсирует свои сети
💡 А зачем здесь R5?
Это самый частый вопрос, который возникает при изучении этой лабораторной работы. Давайте разберёмся.
Почему R5 не является частью вашей AS (65001)?
  • R5 имеет собственную автономную систему (AS 65005), свою сетевую инфраструктуру и свои маршруты.
  • Юридически или организационно R5 может быть отдельной структурой (дочерняя компания, партнёр, присоединённая организация), которая взаимодействует с вашей компанией через eBGP.
  • Это классический сценарий для изучения  BGP Community : когда внешняя организация передаёт свои маршруты, помеченные метками, а вы применяете к ним политики.
Почему R5 подключён именно к R1?
  • R1 — пограничный маршрутизатор (border router) вашей сети. Именно он обеспечивает связь с внешним миром (провайдерами R2 и R4).
  • R3 — внутренний роутер, он не предназначен для подключения внешних организаций.
  • Подключение R5 к R1 — это стандартная архитектурная практика: внешние AS подключаются к пограничным роутерам.
Можно ли убрать R5 из схемы?
Технически — да, но тогда Лабораторная работа №5 теряет смысл.
Вариант
Можно?
ЛР №5 работает?
Почему
Убрать R5 полностью
✅ Да
❌ Нет
Некуда применять Community.
Заменить R5 на R3
✅ Да
❌ Нет
R3 — часть вашей AS, Community не нужны (используйте LocPrf).
Использовать R2/R4 как источник
✅ Да
❌ Нет
R2/R4 — провайдеры, вы не управляете их политикой.
Оставить R5
✅ Да
✅ Да
R5 — внешняя AS, Community работают по назначению.
Community — это инструмент управления политикой внешней AS. Чтобы его изучить, нужна внешняя AS, которая:
1. Анонсирует свои маршруты.
2. Помечает их Community.
3. Передаёт их вам через eBGP.
4. Вы применяете политики на основе этих меток.
Без R5 (внешней AS) вся цепочка рушится.
Что было бы, если R5 был частью вашей AS (65001)?
  • Он бы подключался к R1 или R3 через iBGP.
  • Вместо Community вы бы использовали Local Preference напрямую (так как это внутренний атрибут AS).
  • Но тогда терялся бы весь смысл лабораторной работы — изучение Community для управления политикой внешней AS.
3. Шаг 1: Добавление и базовая настройка R5 (внешней организации)
На R5 (AS 65005):
Настройка интерфейсов:

R5(config)#interface Ethernet 1/0 R5(config-if)#ip address 10.0.0.17 255.255.255.252 R5(config-if)#no shutdown R5(config-if)#exit R5(config)#interface loopback 0 R5(config-if)#ip address 5.5.5.5 255.255.255.255 R5(config-if)#exit R5(config)#interface loopback 1 R5(config-if)#ip address 5.5.5.1 255.255.255.0 R5(config-if)#exit R5(config)#interface loopback 2 R5(config-if)#ip address 5.5.6.1 255.255.255.0 R5(config-if)#exit R5(config)#interface loopback 3 R5(config-if)#ip address 5.5.7.1 255.255.255.0 R5(config-if)#exit

💡 Почему мы используем 4 loopback-интерфейса на R5?
Может показаться, что 4 loopback-интерфейса — это избыточно. На самом деле каждый из них выполняет свою задачу:
Интерфейс
IP-адрес
Назначение
Loopback 0
5.5.5.5/32
Router ID для BGP. Стандартная практика: Router ID должен быть стабильным.
Loopback 1
5.5.5.1/24
Сеть №1 — анонсируется с Community  65005:100 .
Loopback 2
5.5.6.1/24
Сеть №2 — анонсируется с Community  65005:200 .
Loopback 3
5.5.7.1/24
Сеть №3 — анонсируется с Community  65005:300 .
Зачем нужны три отдельные сети?
Community — это инструмент массового управления. Чтобы показать, как одна политика применяется к разным маршрутам, нам нужно три разные сети с разными метками. Тогда вы (R1) сможете применить к ним разные значения Local Preference (150, 120, 100) и наглядно увидеть результат.
Можно ли обойтись меньшим количеством?
Технически — да, но это усложнит понимание:
  • Одна сеть — не будет видно разницы между политиками.
  • Secondary IP на одном loopback — менее наглядно для начинающих сетевых администраторов.
  • Статические маршруты вместо loopback — сложнее для восприятия.
Вывод: 4 loopback-интерфейса — это осознанный выбор для наглядности лабораторной работы. Loopback 0 — для Router ID, Loopback 1–3 — для трёх сетей с разными Community.
Настройка BGP на R5:

R5(config)#router bgp 65005 R5(config-router)#bgp router-id 5.5.5.5 R5(config-router)#neighbor 10.0.0.18 remote-as 65001 R5(config-router)#neighbor 10.0.0.18 description Provider_AS65001 R5(config-router)#network 5.5.5.0 mask 255.255.255.0 R5(config-router)#network 5.5.6.0 mask 255.255.255.0 R5(config-router)#network 5.5.7.0 mask 255.255.255.0 R5(config-router)#end R5#copy running-config startup-config

На R1 (подключение к R5):

R1(config)#interface Ethernet 1/4 R1(config-if)#ip address 10.0.0.18 255.255.255.252 R1(config-if)#no shutdown R1(config-if)#exit R1(config)#router bgp 65001 R1(config-router)#neighbor 10.0.0.17 remote-as 65005 R1(config-router)#neighbor 10.0.0.17 description External_Org_AS65005 R1(config-router)#end R1#copy running-config startup-config

Проверка на R1:

R1#show ip bgp

Вы должны увидеть три маршрута от R5:  5.5.5.0/24 ,  5.5.6.0/24 ,  5.5.7.0/24  с AS_PATH =  65005 .
4. Шаг 2: Присвоение Community маршрутам внешней организации (на R5)
Задача: Пометить маршруты разными Community, чтобы вы (R1) могли применять к ним разные политики.
На R5:

R5(config)#ip prefix-list NET_5_5_5 permit 5.5.5.0/24 R5(config)#ip prefix-list NET_5_5_6 permit 5.5.6.0/24 R5(config)#ip prefix-list NET_5_5_7 permit 5.5.7.0/24 R5(config)#route-map SET_COMMUNITY permit 10 R5(config-route-map)#match ip address prefix-list NET_5_5_5 R5(config-route-map)#set community 65005:100 R5(config-route-map)#exit R5(config)#route-map SET_COMMUNITY permit 20 R5(config-route-map)#match ip address prefix-list NET_5_5_6 R5(config-route-map)#set community 65005:200 R5(config-route-map)#exit R5(config)#route-map SET_COMMUNITY permit 30 R5(config-route-map)#match ip address prefix-list NET_5_5_7 R5(config-route-map)#set community 65005:300 R5(config-route-map)#exit R5(config)#router bgp 65005 R5(config-router)#neighbor 10.0.0.18 send-community R5(config-router)#neighbor 10.0.0.18 route-map SET_COMMUNITY out R5(config-router)#end R5#clear ip bgp 10.0.0.18

Что мы сделали:
  • Создали Route-Map, который назначает разные Community для разных сетей.
  • Включили  send-community  — без этой команды метки не передаются eBGP-соседу!
  • Применили Route-Map на исходящие маршруты ( out ).
5. Шаг 3: Проверка, что Community передались на R1
На R1:

R1#show ip bgp 5.5.5.0

Ожидаемый результат:

BGP routing table entry for 5.5.5.0/24, version 4 Paths: (1 available, best #1) 65005 10.0.0.17 from 10.0.0.17 (5.5.5.5) Origin IGP, metric 0, localpref 100, valid, external, best Community: 65005:100

Пояснение: R1 видит метку  65005:100  для сети  5.5.5.0/24 . Аналогично для других сетей —  65005:200  и  65005:300 .
6. Шаг 4: Применение политики на основе Community (на R1)
Задача: Установить разные значения Local Preference для маршрутов внешней организации в зависимости от их Community.
На R1:

R1(config)#ip community-list standard ORG_HIGH permit 65005:100 R1(config)#ip community-list standard ORG_MED permit 65005:200 R1(config)#ip community-list standard ORG_LOW permit 65005:300 R1(config)#route-map SET_LOCAL_PREF permit 10 R1(config-route-map)#match community ORG_HIGH R1(config-route-map)# et local-preference 150 R1(config-route-map)#exit R1(config)#route-map SET_LOCAL_PREF permit 20 R1(config-route-map)#match community ORG_MED R1(config-route-map)#set local-preference 120 R1(config-route-map)#exit R1(config)#route-map SET_LOCAL_PREF permit 30 R1(config-route-map)#match community ORG_LOW R1(config-route-map)#set local-preference 100 R1(config-route-map)#exit R1(config)#router bgp 65001 R1(config-router)#neighbor 10.0.0.17 route-map SET_LOCAL_PREF in R1(config-router)#end R1#clear ip bgp 10.0.0.17

Что мы сделали:
  • Создали  community-list  — списки разрешённых Community.
  • Создали Route-Map, который сопоставляет Community с действиями.
  • Применили Route-Map на входящие маршруты ( in ).
7. Шаг 5: Проверка результата (Критерии успеха)
На R1:

R1#show ip bgp

Ожидаемый результат:

Network Next Hop Metric LocPrf Weight Path *> 5.5.5.0/24 10.0.0.17 0 150 0 65005 i *> 5.5.6.0/24 10.0.0.17 0 120 0 65005 i *> 5.5.7.0/24 10.0.0.17 0 100 0 65005 i

Пояснение:
  •  5.5.5.0/24  (Community  65005:100 ) → LocPrf = 150 (высокий приоритет).
  •  5.5.6.0/24  (Community  65005:200 ) → LocPrf = 120 (средний приоритет).
  •  5.5.7.0/24  (Community  65005:300 ) → LocPrf = 100 (стандартный приоритет).
Вывод: Вы применили разные политики к трём маршрутам внешней организации, не прописывая их по отдельности. Это и есть массовое управление через Community!
8. Шаг 6: Использование well-known Community (no-export)
Задача: Запретить анонс сети 5.5.7.0/24 за пределы AS 65001 (не экспортировать в Интернет).
На R1:

R1(config)#route-map NO_EXPORT permit 10 R1(config-route-map)#match community ORG_LOW R1(config-route-map)#set community no-export R1(config-route-map)#exit R1(config)#router bgp 65001 R1(config-router)#neighbor 10.0.0.5 route-map NO_EXPORT out R1(config-router)#end R1#clear ip bgp 10.0.0.5

Что это делает: R1 помечает маршрут  5.5.7.0/24  меткой  no-export . Когда R1 передаёт его R3 (внутреннему роутеру), R3 не будет анонсировать его дальше за пределы AS 65001.
9. Возможные проблемы и их решение
Проблема
Вероятная причина
Решение
R1 не видит Community.
На R5 не настроен  send-community .
Добавьте  neighbor 10.0.0.18 send-community  на R5.
Community не применяется.
Не сброшена BGP-сессия.
Выполните  clear ip bgp 10.0.0.18  на R5 и  clear ip bgp 10.0.0.17  на R1.
Route-Map не срабатывает.
Неправильный порядок строк (permit 10, 20, 30).
Убедитесь, что номера строк идут по возрастанию.
LocPrf не меняется.
Route-Map применён не в ту сторону ( out  вместо  in ).
Проверьте
 neighbor 10.0.0.17 route-map SET_LOCAL_PREF in 
no-export  не работает.
R3 не получает Community.
Убедитесь, что  send-community  настроен на R1 для соседа R3.
R5 не видит маршруты от R1.
Не настроен  network  на R5.
Добавьте
 network 5.5.5.0 mask 255.255.255.0 и т.д.
10. Итог лабораторной работы
1. Вы научились присваивать Community маршрутам внешней организации с помощью Route-Map.
2. Вы научились передавать Community между eBGP-соседями ( send-community ).
3. Вы научились применять политики на основе Community с помощью  community-list  и Route-Map.
4. Вы закрепили понимание массового управления — одна политика для группы маршрутов.
5. Вы познакомились с well-known Community ( no-export ).
11. Контрольные вопросы
Вопрос
Ответ
1. В каком формате записывается Community?
AS:значение  (например,  65005:100 ).
2. Передаётся ли Community по умолчанию между eBGP-соседями?
Нет, нужно явно настроить  send-community .
3. Влияет ли Community на выбор маршрута напрямую?
Нет, Community используется только для применения политик.
4. Что делает well-known Community  no-export ?
Запрещает анонс маршрута за пределы текущей AS.
5. Почему Community удобнее, чем перечисление префиксов?
Позволяет одной политикой управлять группой маршрутов без необходимости перечислять их вручную.
📝 Итоговый чек-лист
□ R5 добавлен в топологию и подключён к R1.
□ R5 анонсирует три сети (5.5.5.0/24, 5.5.6.0/24, 5.5.7.0/24).
□ На R5 настроен send-community для соседа R1.
□ На R5 созданы Route-Map для присвоения Community.
□ R1 видит Community в show ip bgp.
□ На R1 созданы community-list и Route-Map для применения LocPrf.
□ На R1 разные маршруты имеют разные LocPrf (150, 120, 100).
□ Настроен no-export для одной из сетей.
📊 Сравнение атрибутов BGP (обновлённая шпаргалка)
Атрибут
Приоритет
Область действия
Направление
Влияет на выбор?
Weight
1 (высший)
Локальный маршрутизатор
in 
✅ Да
Local Preference
2
Вся AS
in 
✅ Да
AS_PATH Prepending
3
Внешние соседи
out 
✅ Да
MED
4
Соседняя AS
out 
✅ Да
Community
—
Передаётся между AS
in/out 
❌ Нет (только для политик)

Приветствуем всех любителей ретро-игровой индустрии на канале RetraR
Сувенирная и брендированная продукция с персонажами из любимых игр.
RetraR — Компьютерные игры для Nintendo Game Boy
RetraR - Computer games for Nintendo Game Boy 🌌🛸👽👾☄️🤖
RetraR - 任天堂ゲームボーイ用コンピュータゲーム 🎮🕹️👾

RetraR в VK
Канал - RetraR в Telegram
Канал - RetraR в Telegram

Оформить заказ

Нажимая на кнопку, вы даете согласие на обработку персональных данных

Спасибо за заказ

Ваш заказ принят в обработку. 

Мы свяжемся с вами в ближайшее время.