# Теория 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).


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://linkmeup.gitbook.io/sdsm/8.1.-ibgp/3.-atributy-bgp/4.-community/0.-teoriya.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
