Добралися ми до атрибута Community.
Якщо в кількох словах, для чого використовується community? Community використовується для маркування маршрутів (схоже на маркування в QOS) для того, щоб можна було в подальшому обробити ці маршрути по якимось спеціальним правилам.
Наприклад виділити мережі для ЦОД, виділити їх в окремий community і призначити їм привілейований маршрут.
Є зарезервовані Community, такі як:
NO_EXPORT (0xFFFFFF01) - community атрибут не надсилається між бенкетами зовнішніх AS (тобто між EBGP бенкетами)
NO_ADVERTISE (0xFFFFFF02) - при отриманні маршруту з атрибутом community no_advertise не надсилає цей атрибут не тільки EBGP але і IBGP бенкетів.
LOCAL_AS - розсилає тільки бенкетів своєї підсистеми.
INTERNET - розсилається всюди.
За замовчуванням community не посилаються.
Існує два види community:
Standart - назва ком'юніті словесно.
Extended - позначається як AS: N, де N номер компьюніті.
Зазвичай використовується стандартне компьюніті. У операторів найчастіше використовується розширене.
За замовчуванням як я вже сказав, community не надсилали, для того щоб community розсилався необхідно в секції BGP вказати це для сусіда, так:
neighbor 1.1.1.1 send-community
Де вказати вид community, буде це розширений або і стандартний і розширений ком'юніті.
Так само, для того щоб наш роутер міг працювати з новими розширеними компьюніті потрібно вказати глобально в настройках роутера: ip bgp-community new-format.
Далі на сусіда через route-map вішаємо той community, який нам потрібен, разом конфиг буде виглядати так:
ip bgp-community new-format
neighbor 1.1.1.1 remote-as 2
neighbor 1.1.1.1 send-community
neighbor 1.1.1.1 route-map SETCOMMUNITY out
route-map SETCOMMUNITY permit 10
set community no-export
Таким чином ми відправимо маршрути і до всіх прив'яжемо community no_export.
Хочеться відзначити ще ось що. У маршрутів може бути не одне community, а безліч. І так як ми з Вами в route-map прописали set, ми видалимо цей атрибут і пропишемо тільки no_export, тобто якщо інший роутер додавав свою ком'юніті. то вона загубиться.
Що б цього не відбувалося, потрібно додати ключ additive.
set community no-export additive
Є таке поняття як community-list, дуже схоже на access-list, тобто фільтрація на основі атрибута community.
Так само виділяють кілька типів таких листів:
- стандартний community-list, який створюється так:
ip community-list [0-99] value- розширений community-list має нумерацію від 100 до 199 і відрізняється від стандартних листів тим, що може використовувати регулярні вираження, як ми це робили в разі as-path листів.
ip community-list [100-199] regexp- іменовані community list
Думаю пояснень не потрібно, вид такої:
Є ще одна розширена Community, яка називається cost community, вона так само є не транзитивной, працює тільки всередині AS, або в конфедерації і використовується для маніпулювання маршрутами всередині IBGP. Найменший cost має найбільш високі пріоритет. Формат команди:
set ext community cost [igp] community-id [0-255] cost-value [0 4294967295]
В наступній замітці розглянемо приклади налаштування та використання community.