# Теория Community

Начнём с теории, Community, как было сказано выше, — это опциональный передаваемый атрибут (Optional Transitive) размером 4 байта. Он представляет из себя запись вида AA:NN, где AA — двухбайтовый номер AS, NN — номер коммьюнити (например, 64500:666).

Существует 4 так называемых **Well-Known community** (**хорошо известные**):\
\&#xNAN;***Internet*** — Нет никаких ограничений — передаётся всем.\
\&#xNAN;***No-export*** — Нельзя экспортировать маршрут в другие AS. При этом за пределы конфедерации передавать их можно.\
\&#xNAN;***No-export-subconfed*** (называется также ***Local AS***) — Как No-export, только добавляется ограничение и по конфедерациям — между ними уже тоже не передаётся.\
\&#xNAN;***No-advertise*** — Не передавать этот маршрут никому — только сосед будет знать о нём.

В сети тысячи примеров настройки таких базовых коммьюнити и крайне мало примеров реального использования.\
А меж тем одно из самых интересных применений этого атрибута — блэкхоулинг от старославянского black hole — способ борьбы с DoS-атаками. Очень подробно с примером настройки о нём уже [было](http://habrahabr.ru/post/91574/) рассказано на хабре.\
Суть в том, что когда началась атака на какой-то из адресов вашей AS, вы этот адрес передаёте вышестоящему провайдеру с комьюнити 666, и он отправляет такой маршрут в NULL — блэкхолит его. То есть до вас уже этот паразитный трафик не доходит. Провайдер может передать такой маршрут дальше, и так, шаг за шагом, трафик от злоумышленника или системы ботов будет отбрасываться уже на самых ранних этапах, не засоряя Интернет.\
Достигается такой эффект расширяющейся чёрной дыры именно благодаря коммьюнити. То есть в обычном случае вы анонсируете этот адрес в составе большой сети /22, например, а в случае DoS’а передаёте самый специфичный маршрут /32, который будет, естественно, более приоритетным.

> О таких атаках вы, кстати, можете послушать в [шестом выпуске](https://linkmeup.ru/blog/86.html) нашего подкаста linkmeup.

Другие примеры — управление атрибутом Local Preference в чужой AS, сообщать ему, что анонсу нужно увеличить AS-path (AS-path prepending) или не передавать маршрут каким-либо соседям.\
Насчёт последнего. Как, например, вы решите следующую задачу?\
Имеется сеть, представленная на рисунке ниже. Вы хотите отдавать свои маршруты соседям из AS 100 и 200 и не хотите 300.\
![](http://img-fotki.yandex.ru/get/9165/83739833.30/0_c72ea_96f67a37_XXL.png)\
Без использования коммьюнити силами только своей AS сделать это не представляется возможным.\
Кстати, как бы это ни было прискорбно, но такие ограничения реально используются в нашей жизни. Распространены ситуации, когда несколько провайдеров устанавливают между собой пиринговые отношения — трафик между их сетями не ходит через вышестоящих провайдеров, не даёт круг через пол-России, но кого-то не пускают — кому-то свои сети не анонсируют.\
Интереснейшие статьи об [Интернете и BGP](http://habrahabr.ru/post/186282/) и о [пиринговых войнах](http://nag.ru/articles/article/19954/depir-vo-imya-status-kvo-cdn-platejey-comcast-protiv-level3.html).
