<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://juniper-exam.ru/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=%D0%92%D0%BB%D0%B0%D0%B4%D0%B8%D1%81%D0%BB%D0%B0%D0%B2+%D0%9F%D0%B0%D0%B2%D0%BA%D0%B8%D0%BD</id>
	<title>Juniper Exam Wiki - Вклад [ru]</title>
	<link rel="self" type="application/atom+xml" href="https://juniper-exam.ru/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=%D0%92%D0%BB%D0%B0%D0%B4%D0%B8%D1%81%D0%BB%D0%B0%D0%B2+%D0%9F%D0%B0%D0%B2%D0%BA%D0%B8%D0%BD"/>
	<link rel="alternate" type="text/html" href="https://juniper-exam.ru/wiki/%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%92%D0%BA%D0%BB%D0%B0%D0%B4/%D0%92%D0%BB%D0%B0%D0%B4%D0%B8%D1%81%D0%BB%D0%B0%D0%B2_%D0%9F%D0%B0%D0%B2%D0%BA%D0%B8%D0%BD"/>
	<updated>2026-04-11T10:33:37Z</updated>
	<subtitle>Вклад</subtitle>
	<generator>MediaWiki 1.36.0</generator>
	<entry>
		<id>https://juniper-exam.ru/index.php?title=OSPF&amp;diff=386</id>
		<title>OSPF</title>
		<link rel="alternate" type="text/html" href="https://juniper-exam.ru/index.php?title=OSPF&amp;diff=386"/>
		<updated>2017-01-04T15:27:45Z</updated>

		<summary type="html">&lt;p&gt;Владислав Павкин: /* Типы Area */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Типы пакетов==&lt;br /&gt;
'''Hello''' - используются для установления и поддержания соседства ospf. &lt;br /&gt;
Отправляются на адрес 224.0.0.5 каждые 10 сек. Содержит в себе поля: network mask, hello interval, dead interval, options, (router priority, designated router, backup designated router, neighbor).&lt;br /&gt;
&lt;br /&gt;
'''Description database (DD)''' - используется только во время установления соседства. Определяет кто отвечает за синхронизацию (выбирается с большим RID). Обменивается LSA до полной синхронизации. Содержит: ospf header, sequence number, lsa header.&lt;br /&gt;
&lt;br /&gt;
'''Link-state request''' - отправляется роутером, когда тот понимает, что LSBD устарела. Содержит: ospf header, link-state type, link-state ID, advertising router.&lt;br /&gt;
&lt;br /&gt;
'''Link-state update''' - отправляется на адрес: 224.0.0.5 (всем) или 225.0.0.6 (для DR). Отправляется либо в ответ на link-state request, либо если меняется информация о состоянии линка. Содержит: ospf header, numbers of advertisement, link-state avertisement.&lt;br /&gt;
&lt;br /&gt;
'''Link-state acknowledgment''' - ответ на link-state update. Содержит: ospf header, list of LSA headers.&lt;br /&gt;
&lt;br /&gt;
==Установление соседства==&lt;br /&gt;
== Стадии установления соседства (OSPF Adjacency): ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1. Down'''&lt;br /&gt;
&lt;br /&gt;
Самое начало, ничего не происходит.&lt;br /&gt;
&lt;br /&gt;
'''2. Init'''&lt;br /&gt;
&lt;br /&gt;
В hello-packet в списке соседей нет router-id маршрутизатора, получившего этот пакет.&lt;br /&gt;
&lt;br /&gt;
Если маршрутизатор не переходит в состояние 2-Way, а скачет - down-Init-down-init...&lt;br /&gt;
вероятно на маршрутизаторах не совпали параметры: &lt;br /&gt;
 Area ID&lt;br /&gt;
 Authentication&lt;br /&gt;
 Network Mask&lt;br /&gt;
 Hello Interva&lt;br /&gt;
 Router Dead Interval&lt;br /&gt;
 Options fields&lt;br /&gt;
 &lt;br /&gt;
либо до удаленного маршрутизатора не доходят ваши сообщения hello &lt;br /&gt;
(причиной могут быть неверно настроенные фаерволы)&lt;br /&gt;
&lt;br /&gt;
'''3. 2-Way'''&lt;br /&gt;
&lt;br /&gt;
В hello-packet в списке соседей появился router-id маршрутизатора, получившего этот пакет.&lt;br /&gt;
&lt;br /&gt;
'''4. ExStart'''&lt;br /&gt;
&lt;br /&gt;
Выборы DR и BDR маршрутизаторов производятся в момент первоначальной установки соседских отношений по следующим правилам:&lt;br /&gt;
&lt;br /&gt;
* Маршрутизатор с наибольшим приоритетом выбирается DR маршрутизатором;&lt;br /&gt;
* Маршрутизатор со вторым по величине приоритетом назначается BDR маршрутизатором;&lt;br /&gt;
* Если маршрутизаторы имеют равный приоритет, то в качестве DR маршрутизатора выбирается маршрутизатор с наибольшим RID, BDR маршрутизатором выбирается маршрутизатор со вторым по величине RID;&lt;br /&gt;
* Маршрутизатор, с приоритетом равным нулю, не принимает участия в выборах DR и BDR маршрутизаторов;&lt;br /&gt;
* Если после выбора DR и BDR маршрутизаторов в сегмент сети добавляется маршрутизатор с более высоким приоритетом или большим RID, то повторные выборы не производятся;&lt;br /&gt;
* Повторные выборы производятся только после того как DR или BDR маршрутизаторы становится недоступными.&lt;br /&gt;
&lt;br /&gt;
(Происходит обмен сообщениями DD (database descr), где заполнены только поля: router-id, neighbors, mtu.&lt;br /&gt;
&lt;br /&gt;
Если маршрутизатор не переходит в следующее состояние, то вероятнее всего&lt;br /&gt;
причина в несовпадении  mtu на физических интерфейсах маршрутизаторов.&lt;br /&gt;
&lt;br /&gt;
'''5. ExChange'''&lt;br /&gt;
&lt;br /&gt;
Процесс обмена LSDB с помощью сообщений DD (database descr)&lt;br /&gt;
(локальной базой маршрутов, их метриками, состояний линков)&lt;br /&gt;
&lt;br /&gt;
'''6. Loading'''&lt;br /&gt;
&lt;br /&gt;
Обмен сообщениями link-state request, link-state update. На каждом маршрутизаторе должна быть одинаковая LSDB.&lt;br /&gt;
(Каждый маршрутизатор восполняет недостающие знания о новых маршрутах)&lt;br /&gt;
&lt;br /&gt;
'''7. Full'''&lt;br /&gt;
&lt;br /&gt;
Соседство установлено, LSDB синхронизированы.&lt;br /&gt;
Последующие изменения в топологии передаются через сообщения link-state update,&lt;br /&gt;
в ответ приходят link-state acknowledgment (в кач-ве подтверждения о доставке).&lt;br /&gt;
&lt;br /&gt;
==Типы Area==&lt;br /&gt;
&lt;br /&gt;
===backbone===&lt;br /&gt;
&lt;br /&gt;
Area 0 (к ней в обязательном порядке должны подключаться остальные area).&lt;br /&gt;
&lt;br /&gt;
===stub area===&lt;br /&gt;
&lt;br /&gt;
Обменивается маршрутами по ospf с ABR, не содержит с себе external routes, не принимает от ABR external routes. (не принимает LSA 4,5). Доступность внешних маршрутов достигается анонсированием 0/0 со стороны ABS в сторону stub-area.&lt;br /&gt;
&lt;br /&gt;
 [edit protocols ospf area 0.0.0.1]&lt;br /&gt;
 vlad@mortlach# set stub &lt;br /&gt;
&lt;br /&gt;
===stub with no summaries===&lt;br /&gt;
&lt;br /&gt;
В неё не анонсируется вообще никаких LSA. Доступность маршрутов из остальных area достигается тем же анонсированием 0/0 со стороны ABS в сторону totally stub-area.&lt;br /&gt;
&lt;br /&gt;
 [edit protocols ospf area 0.0.0.1]&lt;br /&gt;
 vlad@mortlach# set stub no-summaries&lt;br /&gt;
&lt;br /&gt;
===not-so-stubby===&lt;br /&gt;
&lt;br /&gt;
Обменивается маршрутами по ospf с ABR, содержит external routes, НО не принимает external routes от ABR. (не принимает LSA 4,5)&lt;br /&gt;
&lt;br /&gt;
 [edit protocols ospf area 0.0.0.1]&lt;br /&gt;
 vlad@mortlach# set nssa&lt;br /&gt;
&lt;br /&gt;
==Типы LSA==&lt;br /&gt;
'''Type 1 LSA (Router)''' — Описывают сам маршрутизатор и его интерфейсы. Не передаются между Area.&lt;br /&gt;
&lt;br /&gt;
'''Type 2 LSA (Network)''' — Описывают сети, подключенные к маршрутизатору. Не передаются между Area.&lt;br /&gt;
&lt;br /&gt;
'''Type 3 LSA (Summary)''' — Описывают сети, которые маршрутизатор получил из предыдущих типов LSA, но передаются между Area.&lt;br /&gt;
&lt;br /&gt;
'''Type 4 LSA (ASBR Summary)''' — Генерируются маршрутизаторами (ASBR), в которые попадают маршруты из других протоколов, чтобы описать себя.&lt;br /&gt;
&lt;br /&gt;
'''Type 5 LSA (External)''' —  Описывают сети, полученные из других протоколов маршрутизации ASBR-ами. Рассылаются ими же.&lt;br /&gt;
&lt;br /&gt;
'''Type 6 LSA''' — Не используется, некогда планировался под MOSPF.&lt;br /&gt;
&lt;br /&gt;
'''Type 7 LSA (NSSA External)''' — Генерируются ASBR-ами в NSSA, на выходе из зоны транслируются ABR-ами в LSA Type 5.&lt;br /&gt;
&lt;br /&gt;
'''Type 10 LSA (Traffic Engineering)''' — Содержат информацию, которая в последствии находится в TED и используется при работе CSPF-алгоритма.&lt;br /&gt;
&lt;br /&gt;
==Типы интерфейсов==&lt;br /&gt;
*'''Broadcast''' - поведение аналогично тому, когда router включен в LAN сегмент. То ест дополнительно производится выбор DR, BDR среди роутеров. И если на интерфейсе висите несколько ip, то роутер сможет установить несколько соседств в каждой сети одновременно.&lt;br /&gt;
*'''Point to point (p2p)''' - соединение между одним source и одним destination. Возможно установление только '''одного''' соседства с такого типа интерфейса. Можно назначать на ethernet интерфейсы без IP адресов.&lt;br /&gt;
*'''Point to multipoint (p2mp)''' - соединение между одним source и несколькими destination. Сеть рассматривается как набор p2p линков. Т.к. нет autodiscovery механизма, от обязательно указывать соседа.&lt;br /&gt;
*'''Nonebroadcast multiaccess (NBMA)''' - работает как p2mp, но может взаимодействовать с другим оборудованием.&lt;br /&gt;
*'''Demand circuit''' - соединение на котором можно ограничить полосу или время доступа.&lt;br /&gt;
*'''Passive''' - передает свой адрес, но не участвует в установлении OSPF соседства и вообще не обменивается hello-сообщениями. Также в passive можно использовать инфо об интерейсе и его сетях для TE вычислений.&lt;br /&gt;
*'''Disable''' - не участвует в OSPF и не передает о себе инфо в LSDB&lt;br /&gt;
*'''Peer (для OSPFv2)''' - требуется GMPLS&lt;br /&gt;
&lt;br /&gt;
Если на маршрутизаторах указаны разные типы интерфейсов, то они между собой соседство не поднимут.&lt;br /&gt;
&lt;br /&gt;
==Другие фичи==&lt;br /&gt;
*Аутентификация: простая, MD5, IPSec.&lt;br /&gt;
*Суммирование маршрутов, прилетающих в update сообщениях от других area.&lt;br /&gt;
*Можно ограничить кол-во перфиксов, экспортируемых в OSPF.&lt;br /&gt;
*GRES возможен.&lt;br /&gt;
*BFD (Bidirectional Forwarding Detection) можно использовать для сокращения времени обнаружения аварии между роутерами.&lt;/div&gt;</summary>
		<author><name>Владислав Павкин</name></author>
	</entry>
	<entry>
		<id>https://juniper-exam.ru/index.php?title=BGP&amp;diff=213</id>
		<title>BGP</title>
		<link rel="alternate" type="text/html" href="https://juniper-exam.ru/index.php?title=BGP&amp;diff=213"/>
		<updated>2016-11-06T18:55:16Z</updated>

		<summary type="html">&lt;p&gt;Владислав Павкин: /* Операторы регулярных выражений */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Состояния соседства ==&lt;br /&gt;
http://habrastorage.org/getpro/habr/post_images/442/780/549/442780549c2f45cdda10773121b2800d.png&lt;br /&gt;
&lt;br /&gt;
== Сообщения ==&lt;br /&gt;
*Open - отправляется только на стадии установления соседства. Содержит параметры BGP соседа.&lt;br /&gt;
*Update - передает routing info между соседями. Атрибуты и список префиксов, подходящий под данные атрибуты.&lt;br /&gt;
*Keepalive - для удостоверения, что с соседством все ок.&lt;br /&gt;
*Notification - в случае если не прошел keepalive или update.&lt;br /&gt;
*Refresh - soft clearing BGP сессии.&lt;br /&gt;
&lt;br /&gt;
== Атрибуты пути (path attributes) ==&lt;br /&gt;
Атрибуты пути разделены на 4 категории:&lt;br /&gt;
# '''Well-known mandatory''' — все маршрутизаторы, работающие по протоколу BGP, должны распознавать эти атрибуты. Должны присутствовать во всех обновлениях (update).&lt;br /&gt;
# '''Well-known discretionary''' — все маршрутизаторы, работающие по протоколу BGP, должны распознавать эти атрибуты. Могут присутствовать в обновлениях (update), но их присутствие не обязательно.&lt;br /&gt;
# '''Optional transitive''' — могут не распознаваться всеми реализациями BGP. Если маршрутизатор не распознал атрибут, он помечает обновление как частичное (partial) и отправляет его дальше соседям, сохраняя не распознанный атрибут.&lt;br /&gt;
# '''Optional non-transitive''' — могут не распознаваться всеми реализациями BGP. Если маршрутизатор не распознал атрибут, то атрибут игнорируется и при передаче соседям отбрасывается.&lt;br /&gt;
&lt;br /&gt;
=== Autonomous system path ===&lt;br /&gt;
 '''✔️Well-known Mandatory'''&lt;br /&gt;
* Описывает через какие автономные системы надо пройти, чтобы дойти до сети назначения. &lt;br /&gt;
* Номер AS добавляется при передаче обновления из одной AS eBGP-соседу в другой AS.&lt;br /&gt;
&lt;br /&gt;
Используется для:&lt;br /&gt;
* обнаружения петель&lt;br /&gt;
* влияние на path selection с помощью prepending (делается через export policy)&lt;br /&gt;
&lt;br /&gt;
'''Обозначение:'''&lt;br /&gt;
* [] - local AS&lt;br /&gt;
* {} - AS sets - группы AS, порядок не имеет значение. Возникает при агрегировании маршрутов.&lt;br /&gt;
* () - confederation&lt;br /&gt;
* ([]) - confederation sets&lt;br /&gt;
&lt;br /&gt;
Каждый сегмент атрибута AS path представлен в виде поля TLV (path segment type, path segment length, path segment value):&lt;br /&gt;
* '''path segment type''' — поле размером 1 байт для которого определены такие значения:&lt;br /&gt;
** 1 — AS_SET: неупорядоченное множество автономных систем, через которые прошел маршрут в сообщении Update,&lt;br /&gt;
** 2 — AS_SEQUENCE: упорядоченное множество автономных систем, через которые прошел маршрут в сообщении Update&lt;br /&gt;
* '''path segment length''' — поле размером 1 байт. Указывает сколько автономных систем указано в поле path segment value&lt;br /&gt;
* '''path segment value''' — номера автономных систем, каждая представлена полем размером 2 байта.&lt;br /&gt;
&lt;br /&gt;
====Операторы регулярных выражений====&lt;br /&gt;
{{re|title=Список регулярных выражений для AS Path}}&lt;br /&gt;
&lt;br /&gt;
=== Next-hop ===&lt;br /&gt;
 '''✔️Well-known Mandatory'''&lt;br /&gt;
* Это IP-адрес eBGP-маршрутизатора, через который идет путь к сети назначения.&lt;br /&gt;
* Атрибут меняется при передаче префикса в другую AS (по-умолчанию подставляется ip-адрес bgp-соседа)&lt;br /&gt;
* Атрибут не меняется при передаче префикса в ту же AS&lt;br /&gt;
&lt;br /&gt;
====Next-hop resolution====&lt;br /&gt;
* '''Next-hop self'''&lt;br /&gt;
* '''Export direct into IGP:''' проанонсировать p2p сеть с EBGP peer, который прислал префикс.&lt;br /&gt;
* '''IGP passive interface:''' интерфейс в сторону EBGP соседа.&lt;br /&gt;
* '''Static routes:''' тут возникает проблема с тем, что придется на всех IBGP роутерах прописывать этот маршрут. Лучше выбрать другой способ.&lt;br /&gt;
* '''IGP adjacency on inter-AS links to EBGP peers:''' тоже плохой вариант. Опсано и зачем тогде вообще разные AS. Лучше выбрать другой способ.&lt;br /&gt;
&lt;br /&gt;
Можно изменить с помощью policy на выходе (в сторону своей AS):&lt;br /&gt;
 [edit policy-options policy-statement nexthop-self]&lt;br /&gt;
 R1# show &lt;br /&gt;
 term localpref {&lt;br /&gt;
     then {&lt;br /&gt;
         next-hop self;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Или же на входе (в сторону EBGP peer):&lt;br /&gt;
 [edit policy-options policy-statement nexthop-peer]&lt;br /&gt;
 R2# show &lt;br /&gt;
 term localpref {&lt;br /&gt;
     then {&lt;br /&gt;
         next-hop peer-address;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Origin ===&lt;br /&gt;
 '''✔️Well-known Mandatory'''&lt;br /&gt;
Атрибут '''Origin''' — указывает на то, каким образом был получен маршрут в обновлении.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Возможные значения атрибута&lt;br /&gt;
|-&lt;br /&gt;
|'''0'''&lt;br /&gt;
|IGP&lt;br /&gt;
|NLRI получена внутри исходной автономной системы&lt;br /&gt;
|-&lt;br /&gt;
|'''1'''&lt;br /&gt;
| EGP&lt;br /&gt;
| NLRI выучена по протоколу Exterior Gateway Protocol (EGP)&lt;br /&gt;
|-&lt;br /&gt;
|'''2'''&lt;br /&gt;
| Incomplete&lt;br /&gt;
| NLRI была выучена каким-то другим образом&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Local preference ===&lt;br /&gt;
 '''✔️Well-known Discretionary'''&lt;br /&gt;
* Указывает маршрутизаторам внутри автономной системы как выйти за её пределы. &lt;br /&gt;
* Выбирается та точка выхода у которой значение атрибута больше.&lt;br /&gt;
* Этот атрибут передается только в пределах одной автономной системы. &lt;br /&gt;
* На маршрутизаторах Cisco и Juniper по умолчанию значение атрибута — 100.&lt;br /&gt;
* Работает только между IBGP.&lt;br /&gt;
* Если EBGP-сосед получает обновление с выставленным значением local preference, он игнорирует этот атрибут.&lt;br /&gt;
* В Junos lpf можно задать через policy и в protocol bgp. Если задан обоими способами, то будет назначен lpf из policy.&lt;br /&gt;
* Обычно используется на бордерах.&lt;br /&gt;
{{note|text=Когда в сети есть 2 бордера, которые получают один и тот же маршрут извне, и бордеры навешивают одинаковый повышенный lpf через export policy, в таком случае  соседи IBGP получат маршрут с измененным lpf, но трафик не сможет по-правильному пути выйти из AS. Из-за того что бордеры тоже друг от друга будут получать маршрут с повышенным lpf. Решение: правильно менять lpf через import policy. }}&lt;br /&gt;
&lt;br /&gt;
=== Atomic aggregate ===&lt;br /&gt;
 '''✔️Well-known Discretionary'''&lt;br /&gt;
&lt;br /&gt;
=== Aggregator ===&lt;br /&gt;
 '''✔️Optional Transitive'''&lt;br /&gt;
&lt;br /&gt;
=== Communities ===&lt;br /&gt;
 '''✔️Optional Transitive'''&lt;br /&gt;
* Тегирование маршрутов&lt;br /&gt;
* Существуют предопределенные значения (well-known), которые не требуется определять локально на своем оборудовании&lt;br /&gt;
* По умолчанию не пересылаются соседям&lt;br /&gt;
* Одному маршруту может быть присвоено несколько communities&lt;br /&gt;
* Один из вариантов применения: передается соседней AS для управления входящим трафиком&lt;br /&gt;
&lt;br /&gt;
Значения от 0x00000000 до 0x0000FFFF и от 0xFFFF0000 до 0xFFFFFFFF зарезервированы.&lt;br /&gt;
&lt;br /&gt;
Как правило community отображаются в формате ASN:VALUE.&lt;br /&gt;
В таком формате, доступны для использования community от 1:0 до 65534:65535.&lt;br /&gt;
В первой части указывается номер автономной системы, а во второй значение community, которое определяет политику маршрутизации трафика.&lt;br /&gt;
&lt;br /&gt;
Некоторые значения communities предопределены. RFC1997 определяет три значения таких community. Эти значения должны одинаково распознаваться и обрабатываться всеми реализациями BGP, которые распознают атрибут community.&lt;br /&gt;
&lt;br /&gt;
Если маршрутизатор получает маршрут, в котором указано предопределенное значение communities, то он выполняет специфическое, предопределенное действие основанное на значении атрибута.&lt;br /&gt;
&lt;br /&gt;
Предопределенные значения communities (Well-known Communities):&lt;br /&gt;
&lt;br /&gt;
====no-export (0xFFFFFF01)====&lt;br /&gt;
Все маршруты которые передаются с таким значением атрибута community не должны анонсироваться за пределы AS.&lt;br /&gt;
То есть, маршруты не анонсируются EBGP-соседям, но анонсируются внешним соседям в конфедерации.&lt;br /&gt;
&lt;br /&gt;
'''Пример использования'''&lt;br /&gt;
{{note|text=AS1 подключена к AS2 двумя линками (multinoming). AS1 анонсирует '''172.17.0/16''' в AS2. Для оптимальной маршрутизации, AS1 хочет посылать некоторые более специфичные маршруты через один из этих линков, при этом остальному интернету вовсе не обязательно получать эти специфики. Для этой цели AS1 использует community no-export, и посылает '''172.17.0/17''' в один из стыков с AS2, и '''172.17.128/17''' во второй стык. AS2 видит эти маршруты и выбирает их как более специфичные. Кроме того, эти маршруты видят все iBGP-соседи в пределах AS2. Тем не менее, за пределы AS2 в Интернет анонсируется только '''172.17.0/16'''.}}&lt;br /&gt;
&lt;br /&gt;
{{note|text= AS customer имеет 2 ISP (AS1, AS2).  AS1 - основной. Если AS customer хочет получать выход в инет только через AS1, то в сторону AS2 можно просто посылать маршруты с no-export. Но при этом важно, что при падении AS1, AS customer будет доступна только локальным пользователям AS2, но не всему интернету.}}&lt;br /&gt;
====no-advertise (0xFFFFFF02)==== &lt;br /&gt;
Все маршруты которые передаются с таким значением атрибута community не должны анонсироваться другим BGP-соседям.&lt;br /&gt;
&lt;br /&gt;
====no-export-subconfed (0xFFFFFF03)====&lt;br /&gt;
Все маршруты которые передаются с таким значением атрибута community не должны анонсироваться внешним BGP-соседям (ни внешним для конфедерации, ни настоящим внешним соседям). В Cisco это значение встречается и под названием local-as.&lt;br /&gt;
{{note|text=Маршрутизаторы, которые не поддерживают атрибут community, будут передавать его далее, так как это transitive атрибут.}}&lt;br /&gt;
&lt;br /&gt;
 set policy-options policy-statement community ''test-community'' members ''[65510:555 65610:999]''     - [x and y]&lt;br /&gt;
 set policy-options policy-statement ''test'' term ''1'' then community (add|set|delete) ''test-community''&lt;br /&gt;
&lt;br /&gt;
 set policy-options policy-statement community ''all-community'' members '' &amp;quot;*:*&amp;quot; ''&lt;br /&gt;
&lt;br /&gt;
С communities широко используются регулярные выражения.&lt;br /&gt;
&lt;br /&gt;
====Примеры====&lt;br /&gt;
&lt;br /&gt;
100:* - all posible community values with AS 100.&lt;br /&gt;
&lt;br /&gt;
11.1:666 - 1101:666, 1111:666, 1121:666, etc.&lt;br /&gt;
&lt;br /&gt;
 show route community *:20&lt;br /&gt;
 show route community-name&lt;br /&gt;
&lt;br /&gt;
====Список операторов регулярных выражений для Community====&lt;br /&gt;
{{re|title=Список операторов регулярных выражений для Community}}&lt;br /&gt;
&lt;br /&gt;
=== Multi exit discriminator (MED)===&lt;br /&gt;
====В общем====&lt;br /&gt;
Атрибут '''MED''':&lt;br /&gt;
* Используется для информирования eBGP-соседей о том, какой путь в автономную систему более предпочтительный. &lt;br /&gt;
* Атрибут передается между автономными системами. &lt;br /&gt;
* Маршрутизаторы внутри соседней автономной системы используют этот атрибут, но, как только обновление выходит за пределы AS, атрибут MED отбрасывается.&lt;br /&gt;
* Чем меньше значение атрибута, тем более предпочтительна точка входа в автономную систему.&lt;br /&gt;
* Исходя из названия - используется только в тех случаях, когда между AS есть несколько линков.&lt;br /&gt;
&lt;br /&gt;
Сравнение MED (при прочих равных) происходит если один и тот же префикс приходит от одной AS. &lt;br /&gt;
&lt;br /&gt;
Если будет анонс этого префикса с более низким MED, но из другой AS, то он не будет рассматриваться как вероятный вариант для использования. &lt;br /&gt;
&lt;br /&gt;
Это дефолтное поведение, которое можно изменить с помощью:&lt;br /&gt;
*''always-compare-med'': при этом не будет иметь значение разные AS или одна, просто активным станет маршрут с самым низким MED.&lt;br /&gt;
*''cisco-non-determenistic'': выбор основан на том, когда маршрут пришел. Juniper не рекомендует использовать.&lt;br /&gt;
&lt;br /&gt;
====Возможные операции с MED====&lt;br /&gt;
Внутри policy ''metric'' - это обозначение MED атрибута.&lt;br /&gt;
&lt;br /&gt;
Можно использовать как в ''from'', так и в ''then''. ''Then'': назначение метки - ''metric 50'', добавить к существующей метки - ''metric add 50'', вычесть из ''metric subtract 50''.&lt;br /&gt;
&lt;br /&gt;
MED можно назначить внутри ''protocols bgp'':&lt;br /&gt;
&lt;br /&gt;
 [edit protocols bgp group AS-100]&lt;br /&gt;
    type external&lt;br /&gt;
    local-as 200&lt;br /&gt;
    neighbor 1.1.1.1 metric-out 50                    &amp;lt;= определенное значение&lt;br /&gt;
    neighbor 2.2.2.2 metric-out igp                   &amp;lt;= текущаф IGP метрика&lt;br /&gt;
    neighbor 3.3.3.3 metric-out minimum-igp           &amp;lt;= миимальная IGP мтерика, когда-либо изученная&lt;br /&gt;
    neighbor 4.4.4.4 metric-out igp 5                 &amp;lt;= добавит или вычесть из IGP метрики&lt;br /&gt;
&lt;br /&gt;
MED также можно назначить аналогичным образом через policy:&lt;br /&gt;
&lt;br /&gt;
 [edit policy-optinos policy-sttement new-metric]&lt;br /&gt;
    term IGP&lt;br /&gt;
       then metric igp ''offset''&lt;br /&gt;
    term minimum-igp&lt;br /&gt;
       then metric minimum-igp ''offset''&lt;br /&gt;
&lt;br /&gt;
При использовании ''metric igp'' на префикс вешается MED, равный IGP метрики до роутера, который прислал этот префикс. При изменениях IGP metric, будет меняться и MED.&lt;br /&gt;
&lt;br /&gt;
При использовании ''metric minimum-igp'' MED не будет меняться при изменениях IGP метрики.&lt;br /&gt;
&lt;br /&gt;
При агрегировании маршрутов - MED становится = 0.&lt;br /&gt;
&lt;br /&gt;
Если между роутерами передаются агрегированный маршрут и вложенный в него в MED, то вложенный будет передан с MED, а агрегированный - с MED = 0.&lt;br /&gt;
&lt;br /&gt;
Это дефолтное поведение и альтернатив этому нет.&lt;br /&gt;
&lt;br /&gt;
=== Weight (проприетарный атрибут Cisco) ===&lt;br /&gt;
Атрибут '''Weight''': &lt;br /&gt;
* Позволяет назначить &amp;quot;вес&amp;quot; различным путям локально на маршрутизаторе. &lt;br /&gt;
* Используется в тех случаях, когда у одного маршрутизатора есть несколько выходов из автономной системы (сам маршрутизатор является точкой выхода). &lt;br /&gt;
* Имеет значение только локально, в пределах маршрутизатора. &lt;br /&gt;
* Не передается в обновлениях.&lt;br /&gt;
* Чем больше значение атрибута, тем более предпочтителен путь выхода.&lt;br /&gt;
&lt;br /&gt;
== Касательно всех атрибутов ==&lt;br /&gt;
Атрибуты, при выборе best, считаются лучшими с наименьшими значением.&lt;br /&gt;
Это правило касается всех атрибутов, кроме Local Preference&lt;br /&gt;
&lt;br /&gt;
== Механизмы управления трафиком ==&lt;br /&gt;
===Входящим===&lt;br /&gt;
*AS path prepend&lt;br /&gt;
*Community (если поддерживает провайдер)&lt;br /&gt;
*MED (подключение к одной и той же AS)&lt;br /&gt;
*Анонс разных префиксов через разных ISP&lt;br /&gt;
&lt;br /&gt;
===Исходящим===&lt;br /&gt;
*Проприетарный атрибут Cisco weight (локально на маршрутизаторе)&lt;br /&gt;
*Атрибут Local Preference (локально в AS)&lt;br /&gt;
*Балансировка трафика {{чо?}}&lt;br /&gt;
&lt;br /&gt;
== Выбор лучшего пути (BGP Active Route Selection) ==&lt;br /&gt;
&lt;br /&gt;
* Juniper&lt;br /&gt;
# Prefer highest local preference value&lt;br /&gt;
# Prefer shortest AS-path length&lt;br /&gt;
# Prefer lowest Origin value&lt;br /&gt;
# Prefer lowest MED value&lt;br /&gt;
# Prefer routes learned from an EBGP peer over an IBGP peer&lt;br /&gt;
# If the remaining routes were learned through IBGP, use the path with the lowest IGP cost to the IBGP peer.&lt;br /&gt;
# For EBGP received routes, prefer the current active route; otherwise, prefer routes from the peer with the lowest RID&lt;br /&gt;
# Prefer paths with the shortest cluster length&lt;br /&gt;
# Prefer routes from the peer with the lowest peer ID&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Multipath ==&lt;br /&gt;
&lt;br /&gt;
===Link Bandwidth Extended Community===&lt;br /&gt;
При включенном multipath можно задать желаемую балансировку между линками через extended community.&lt;br /&gt;
Это механизм описан в draft-ietf-idr-link-bandwidth-06, и не является стандартизированным, следовательно,&lt;br /&gt;
возможно, он не будет работать с некоторыми вендорами. В JunOS поддерживается.&lt;br /&gt;
&lt;br /&gt;
Пример использования:&lt;br /&gt;
&lt;br /&gt;
R1 и R2 соединены напрямую через ва сабинтерфейса, на каждом из которых висит своя /30 сеть&lt;br /&gt;
&lt;br /&gt;
 |     | ge-0/0/0.10 ----- ge-0/0/0.10 R2 |    |&lt;br /&gt;
 |  R1 |                                  | R2 |&lt;br /&gt;
 |     | ge-0/0/0.20 ----- ge-0/0/0.20 R2 |    |&lt;br /&gt;
&lt;br /&gt;
Конфиг R1:&lt;br /&gt;
 R1&amp;gt; show configuration protocols bgp &lt;br /&gt;
 group ebgp {&lt;br /&gt;
     multipath;&lt;br /&gt;
     neighbor 10.1.0.2 {&lt;br /&gt;
         description R2;&lt;br /&gt;
         export from-direct;&lt;br /&gt;
         peer-as 2222;&lt;br /&gt;
     }&lt;br /&gt;
     neighbor 10.2.0.2 {&lt;br /&gt;
         description R2;&lt;br /&gt;
         export from-direct;&lt;br /&gt;
         peer-as 2222;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Конфиг R2:&lt;br /&gt;
 R2&amp;gt; show configuration interfaces lo0   &lt;br /&gt;
 unit 0 {&lt;br /&gt;
     family inet {&lt;br /&gt;
         address 2.2.2.2/32;&lt;br /&gt;
     }&lt;br /&gt;
     family mpls;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; show configuration policy-options &lt;br /&gt;
 policy-statement bw20 {&lt;br /&gt;
     then {&lt;br /&gt;
         community add bw20;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 policy-statement bw80 {&lt;br /&gt;
     then {&lt;br /&gt;
         community add bw80;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 policy-statement from-direct {&lt;br /&gt;
     term redistribute-direct {&lt;br /&gt;
         from protocol direct;&lt;br /&gt;
         then accept;&lt;br /&gt;
     }&lt;br /&gt;
     term default {&lt;br /&gt;
         then reject;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 community bw20 members bandwidth:2222:2500000; // 2500000 байт в секунду — это 20% от 100Мегабит&lt;br /&gt;
 community bw80 members bandwidth:2222:10000000; // 10000000 байт в секунду — это 80% от 100Мегабит&lt;br /&gt;
 &lt;br /&gt;
 R2&amp;gt; show configuration protocols bgp &lt;br /&gt;
 group ebgp {&lt;br /&gt;
     neighbor 10.1.0.1 {&lt;br /&gt;
         description R1;&lt;br /&gt;
         export [ bw20 from-direct ]; // На одно из  соседств навешивается community, отображающее, что линк загружен на 20%&lt;br /&gt;
         peer-as 1111;&lt;br /&gt;
     }&lt;br /&gt;
     neighbor 10.2.0.1 {&lt;br /&gt;
         description R1;&lt;br /&gt;
         export [ bw80 from-direct ];// На второе соседство навешивается community, отображающее, что линк загружен на 80%&lt;br /&gt;
         peer-as 1111;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Что получилось:&lt;br /&gt;
&lt;br /&gt;
 R1&amp;gt; show route 2.2.2.2 extensive        &lt;br /&gt;
 &lt;br /&gt;
 inet.0: 11 destinations, 19 routes (11 active, 0 holddown, 0 hidden)&lt;br /&gt;
 2.2.2.2/32 (2 entries, 1 announced)&lt;br /&gt;
 TSI:&lt;br /&gt;
 KRT in-kernel 2.2.2.2/32 -&amp;gt; {10.2.0.2, 10.1.0.2}&lt;br /&gt;
        *BGP    Preference: 170/-101&lt;br /&gt;
                Next hop type: Router, Next hop index: 262145&lt;br /&gt;
                Address: 0x9404010&lt;br /&gt;
                Next-hop reference count: 8&lt;br /&gt;
                Source: 10.1.0.2&lt;br /&gt;
                '''Next hop: 10.2.0.2 via ge-0/0/0.20 balance 80%'''&lt;br /&gt;
                '''Next hop: 10.1.0.2 via ge-0/0/0.10 balance 20%, selected'''&lt;br /&gt;
                State: &amp;lt;Active Ext&amp;gt;&lt;br /&gt;
                Local AS:  1111 Peer AS:  2222&lt;br /&gt;
                Age: 1:20:49 &lt;br /&gt;
                Task: BGP_2222.10.1.0.2+179&lt;br /&gt;
                Announcement bits (1): 0-KRT &lt;br /&gt;
                AS path: 2222 I&lt;br /&gt;
                '''Communities: bandwidth:2222:2500000'''&lt;br /&gt;
                '''Accepted Multipath'''&lt;br /&gt;
                Localpref: 100&lt;br /&gt;
                Router ID: 2.2.2.2&lt;br /&gt;
&lt;br /&gt;
==Modifying AS Path==&lt;br /&gt;
&lt;br /&gt;
===Option 1: remove-private===&lt;br /&gt;
&lt;br /&gt;
===Option 2: local-as===&lt;br /&gt;
&lt;br /&gt;
 [edit routing-options]&lt;br /&gt;
 R1# show &lt;br /&gt;
 autonomous-system 1111;&lt;br /&gt;
 &lt;br /&gt;
 [edit protocols bgp group ebgp]&lt;br /&gt;
 R1# show &lt;br /&gt;
 neighbor 10.1.0.2 {&lt;br /&gt;
     peer-as 2222;&lt;br /&gt;
     local-as 3333;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
При такой конфигурации R1, EBGP-сосед, который '''ожидает''', что у R1 будет AS3333 сможет установить соседство с R1, хотя, по факту R1 принадлежит AS1111.&lt;br /&gt;
Результат:&lt;br /&gt;
 R1&amp;gt; show bgp neighbor &lt;br /&gt;
 Peer: 10.1.0.2+179 AS 2222     Local: 10.1.0.1+62745 '''AS 3333''' &lt;br /&gt;
   Type: External    State: Established    Flags: &amp;lt;Sync&amp;gt;&lt;br /&gt;
   Last State: OpenConfirm   Last Event: RecvKeepAlive&lt;br /&gt;
   ...&lt;br /&gt;
   Holdtime: 90 Preference: 170 Localpref: 110 '''Local AS: 3333 Local System AS: 1111'''&lt;br /&gt;
   Number of flaps: 0&lt;br /&gt;
   Peer ID: 2.2.2.2         Local ID: 1.1.1.1           Active Holdtime: 90&lt;br /&gt;
   ...&lt;br /&gt;
&lt;br /&gt;
'''Зачем это нужно'''&lt;br /&gt;
&lt;br /&gt;
Предположим, оператор с AS1111 купил сеть оператора с AS3333. У AS3333 были свои клиенты, подключенные по BGP, которые не готовы или не хотят изменять конфигурацию на своих роутерах. В таком случае можно временно применить опцию local-as, чтобы выступить для них от лица предыдущей AS (в примере - 3333), но внутри сети перевести инфораструктуру на AS1111.&lt;br /&gt;
&lt;br /&gt;
Если добавить ключевое слово private:&lt;br /&gt;
 [edit protocols bgp group ebgp]&lt;br /&gt;
 R1# show &lt;br /&gt;
 neighbor 10.1.0.2 {&lt;br /&gt;
     peer-as 2222;&lt;br /&gt;
     local-as 3333 '''private''';&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
То R1 вообще не будет добавлять AS3333 при анонсе маршрутов, получаемых от 10.1.0.2 своим соседям.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Route Reflection==&lt;br /&gt;
Описан в RFC 4456&lt;br /&gt;
&lt;br /&gt;
'''Концепция'''&lt;br /&gt;
*Позволяет iBGP-спикеру анонсировать другим iBGP-маршрутизаторам маршруты, полученные через iBGP&lt;br /&gt;
*RR только пересылает активные маршруты клиентам (это соседи RR, которые не являются RR. Для настройки таких роутеров не требуется изменений в конфигурации соседства.)&lt;br /&gt;
*RR по умолчанию не меняет IBGP атрибуты.&lt;br /&gt;
*Для предотвращения петель существуют два новых атрибута: &lt;br /&gt;
:*'''Cluster List''' (1 или более cluster ID)&lt;br /&gt;
:*'''Originator ID''' - ID роутера, который первым переслал маршрут в AS.&lt;br /&gt;
&lt;br /&gt;
===Cluster List===&lt;br /&gt;
&lt;br /&gt;
Список, включающий ID всех RR, которые обрабатывали данный префикс.&lt;br /&gt;
Если RR получит маршрут, у которого в cluster list будет ID этого RR, то он его дропнет.&lt;br /&gt;
Участвует при выборе активного маршрута (активным становится с наименьшим cluster list).&lt;br /&gt;
Cluster ID добавляется к cluster list, когда маршрут отправляется. Cluster ID должен быть уникальным в рамках AS.&lt;br /&gt;
&lt;br /&gt;
'''Configuration'''&lt;br /&gt;
&lt;br /&gt;
Если на сет несколько RR, то соседство между ними может быть как в отдельной группе от RR-clients (IBGP), так и в той же группе что и клиенты. &lt;br /&gt;
Между RR - full-mesh.&lt;br /&gt;
&lt;br /&gt;
 set protocols bgp group RR type internal&lt;br /&gt;
 set protocols bgp group RR peer-as 65513&lt;br /&gt;
 set protocols bgp group RR neighbor 2.2.2.2&lt;br /&gt;
 set protocols bgp group RR neighbor 3.3.3.3&lt;br /&gt;
&lt;br /&gt;
RR-clients конфигурируются в отдельной группе, где должен быть включен: &amp;quot;cluster x.x.x.x&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 set protocols bgp group RR-clients cluster 1.1.1.1&lt;br /&gt;
&lt;br /&gt;
Со стороны клиентов конфигурация стандартная для IBGP - простое соседство с RR.&lt;br /&gt;
&lt;br /&gt;
'''Распространение маршрутов при использовании RR.'''&lt;br /&gt;
# Клиент -&amp;gt; cluster RR&lt;br /&gt;
# RR -&amp;gt; all clients and non-clients(other RR)&lt;br /&gt;
# Other RR -&amp;gt; all cluster clients.&lt;br /&gt;
При этом:  non-clients -&amp;gt; RR -&amp;gt; clients (only)&lt;br /&gt;
&lt;br /&gt;
При использовании нескольких RR, можно для на всех использовать одинаковый cluster ID.&lt;br /&gt;
+: в таблице будет меньше маршрутов и при такой схеме можно добиться хорошей отказоустойчивости в сети.&lt;br /&gt;
	&lt;br /&gt;
'''2 RR в кластере'''&lt;br /&gt;
&lt;br /&gt;
Соседство между RR можно устанавливать как внутри отдельной группы для кластера, так и в отдельной группе.&lt;br /&gt;
В обоих случаях при передаче маршрутов между RR петель не будет, т.к. cluster ID будет одинаковыми.&lt;br /&gt;
Каждый из RR в кластере устанавливает IBGP с другими RR, не входящих в кластер.&lt;br /&gt;
В подобных схемах все-таки тоже стараются использовать уникальные cluster ID.&lt;br /&gt;
&lt;br /&gt;
===Hierarchical Route Reflection===&lt;br /&gt;
&lt;br /&gt;
Отличие от предыдущих: в схеме появляются не только RR и client, но еще и роутеры, выполняющие обе функции в рамках разных кластеров.&lt;br /&gt;
Clients могут устанавливать IBPG между собой. Это удобно использовать, чтобы clients могли использовать маршруты от других clients нативно, без обработки RR. &lt;br /&gt;
Чтобы RR не флудил копиями маршрутов, на нем можно включить '''no-client-reflect''', это отключит пересылку маршрутов, полученных внутри кластера. Внешние маршруты при этом продолжают пересылаться.&lt;br /&gt;
&lt;br /&gt;
===Modifying Attributes on the RR===&lt;br /&gt;
&lt;br /&gt;
Все атрибуты BGP изменяются через policy.&lt;br /&gt;
Если на RR есть EBGP, то с большой вероятностью будет активна ф-ия: next-hop-self. При этом, у маршрутов, полученных от client, также next-hop будет меняться.&lt;br /&gt;
Что приведет к не оптимальному форвардингу трафика (должен идти напрямую к original роутеру, а будет идти через RR).&lt;br /&gt;
Чтобы менять next-hope только у external: в policy матчим по interface ли neighbor.&lt;br /&gt;
&lt;br /&gt;
 set policy-option policy-statement nhs term EBGP from protocol bgp&lt;br /&gt;
 set policy-option policy-statement nhs term EBGP from neighbor 2.2.2.2&lt;br /&gt;
 set policy-option policy-statement nhs term EBGP the next-hop self&lt;br /&gt;
&lt;br /&gt;
==Confederations==&lt;br /&gt;
 Описан в RFC 3065&lt;br /&gt;
&lt;br /&gt;
'''Принципы'''&lt;br /&gt;
&lt;br /&gt;
Цель: разбить global AS на sub-AS.&lt;br /&gt;
&lt;br /&gt;
Внутри sub-AS между роутерами: full-mesh. Если внутри sub-AS будет слишком большая сеть, то в нее можно внедрить RR.&lt;br /&gt;
&lt;br /&gt;
sub-AS должна иметь уникальный номер (зачастую берут приватные AS).&lt;br /&gt;
&lt;br /&gt;
Между sub-AS - EBGP = confederation BGP = CBGP.&lt;br /&gt;
&lt;br /&gt;
При прохождении маршрута через CBGP линк, роутер меняет AS path, включая sub-AS. Другие атрибуты BGP не меняются.&lt;br /&gt;
&lt;br /&gt;
Также в отличие от стандартного EBGP, в CBGP обычно соседство строится на loopback.&lt;br /&gt;
&lt;br /&gt;
===AS-path segment===&lt;br /&gt;
*AS Confederation Sequence&lt;br /&gt;
При прохождение через CBGP линк, роутер добавляет sub-AS к AS-path в &amp;quot;()&amp;quot; в последовательности, как шел маршрут по сети.&lt;br /&gt;
&lt;br /&gt;
AS Confederation Sequence не используется при выборе активного пути.&lt;br /&gt;
&lt;br /&gt;
Этот атрибут имеет type code 3.&lt;br /&gt;
&lt;br /&gt;
 AS-path: (65000 65001 65002) 100 200&lt;br /&gt;
&lt;br /&gt;
*AS Confederation Set&lt;br /&gt;
При агрегировании маршрутов внутри конфедерации, AS confederation sequence становится AS confederation set.&lt;br /&gt;
&lt;br /&gt;
Этот атрибут имеет type code 4.&lt;br /&gt;
&lt;br /&gt;
 10.10.10.0/24 (65000 65001) 100 &lt;br /&gt;
 10.10.20.0/24 (65000 65002) 100&lt;br /&gt;
 10.10.0.0/16 ({65000 65001 65002}) 100 &lt;br /&gt;
&lt;br /&gt;
Оба атрибута используются только для предотвращения петель внутри конфедерации.&lt;br /&gt;
&lt;br /&gt;
При анонсировании маршрутов из конфедерации дальше по сети по EBGP, private AS (sub-AS) стираются, поэтому все конфедерации извне видны как одна большая глобальная AS.&lt;br /&gt;
При этом не требуется отдельно включать (remove-private). В случае с конфедерациями, все приватные AS итак сотрутся итак.&lt;br /&gt;
&lt;br /&gt;
Но все роутеры внутри конфедерации обязательно должны знать номер глобальной AS.&lt;br /&gt;
&lt;br /&gt;
===Configuration===&lt;br /&gt;
Включение самой конфедерации на роутере - определяется в routing-options:&lt;br /&gt;
&lt;br /&gt;
 set routing-options autonomus-system 65000&lt;br /&gt;
 set routing-options confederation 100 members [65000 65001 65002]&lt;br /&gt;
&lt;br /&gt;
R1&lt;br /&gt;
 внутри конфедерации: &lt;br /&gt;
 set protocols bgp group sub-AS-65001 type internal&lt;br /&gt;
 set protocols bgp group sub-AS-65001 local-address 192.168.1.3&lt;br /&gt;
 set protocols bgp group sub-AS-65001 neighbor 192.168.1.1&lt;br /&gt;
 set protocols bgp group sub-AS-65001 neighbor 192.168.1.2&lt;br /&gt;
 set protocols bgp group sub-AS-65001 neighbor 192.168.1.4&lt;br /&gt;
&lt;br /&gt;
 CBGP-link 1:&lt;br /&gt;
 set protocols bgp group sub-AS-65000 type external&lt;br /&gt;
 set protocols bgp group sub-AS-65000 multihop&lt;br /&gt;
 set protocols bgp group sub-AS-65000 local-address 192.168.1.3&lt;br /&gt;
 set protocols bgp group sub-AS-65000 peer-as 65000&lt;br /&gt;
 set protocols bgp group sub-AS-65000 neighbor 192.168.0.3&lt;br /&gt;
&lt;br /&gt;
CBGP-link 2:&lt;br /&gt;
 set protocols bgp group sub-AS-65002 type external &lt;br /&gt;
 set protocols bgp group sub-AS-65002 multihop&lt;br /&gt;
 set protocols bgp group sub-AS-65002 local-address 192.168.1.3&lt;br /&gt;
 set protocols bgp group sub-AS-65002 peer-as 65002&lt;br /&gt;
 set protocols bgp group sub-AS-65002 neighbor 192.168.2.4&lt;/div&gt;</summary>
		<author><name>Владислав Павкин</name></author>
	</entry>
	<entry>
		<id>https://juniper-exam.ru/index.php?title=%D0%93%D0%BB%D0%B0%D0%B2%D0%B0_2._Label_Distribution_Protocols_(RSVP,_LDP)&amp;diff=184</id>
		<title>Глава 2. Label Distribution Protocols (RSVP, LDP)</title>
		<link rel="alternate" type="text/html" href="https://juniper-exam.ru/index.php?title=%D0%93%D0%BB%D0%B0%D0%B2%D0%B0_2._Label_Distribution_Protocols_(RSVP,_LDP)&amp;diff=184"/>
		<updated>2016-11-02T14:41:39Z</updated>

		<summary type="html">&lt;p&gt;Владислав Павкин: /* LDP runneling */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==RSVP==&lt;br /&gt;
'''RSVP''' - ''resource reservation protocol'' - требует больше конфигурации для работы, чем LPD, но зато имеет более полезных фич, таких как: TE, fast-failover, QoS, bandwidth reservation, LSP customization. &lt;br /&gt;
&lt;br /&gt;
LSP установлена и имеет свой ''record route'': список IP адресов интерфейсов, через которых проходит RSVP LSP, включая ingress и egress.&lt;br /&gt;
&lt;br /&gt;
Второй preference у RSVP: Когда внутри протокола требуется сравнение маршрутов. RSVP auto mesh - ''preference 2'' = 3. Если на сети будет построен RSVP туннель статический и auto-mesh, то предпочтительней будет статический. (preference 2: 1 &amp;lt; 3).&lt;br /&gt;
{{note| text=В LDP нет требования добавлять интерфейсы в protocols mpls, но family mpls включать нужно.}}&lt;br /&gt;
===Configuration===&lt;br /&gt;
1. Включаем family mpls на интерфейсах, смотрящих в ядро. Эта настройка позволяет отправлять и получать пакеты с метками.&lt;br /&gt;
 [edit interfaces]&lt;br /&gt;
    set ge-0/0/2.0 family mpls&lt;br /&gt;
    set ge-0/0/3.0 family mpls&lt;br /&gt;
&lt;br /&gt;
2. Настраиваем LSP. И добавляем нужные интерфейсы в protocols mpls. Это позволяет запустить на указанных интерфейсах mpls и появиться в TED, как возможный ресурс для использования.&lt;br /&gt;
 &lt;br /&gt;
 [edit protocols mpls]&lt;br /&gt;
 	set label-switched-path R1-to-R5 {&lt;br /&gt;
 		to 10.200.86.3;&lt;br /&gt;
 	}&lt;br /&gt;
 	interface ge-0/0/2.0;&lt;br /&gt;
 	interface ge-0/0/3.0;&lt;br /&gt;
&lt;br /&gt;
3. Добавляем в протокол RSVP нужные интерфейсы.&lt;br /&gt;
 [edit protocols rsvp]&lt;br /&gt;
 	set interface ge-0/0/2.0&lt;br /&gt;
 	set interface ge-0/0/3.0&lt;br /&gt;
&lt;br /&gt;
4. На остальных роутерах требуется включить family mpls и добавить интерфейсы в protocols rsvp.&lt;br /&gt;
&lt;br /&gt;
==LDP==&lt;br /&gt;
'''LDP''' - ''label distribution protocol'' - намного более простой в настройке, но малофункциональный сигнальный протокол, по сравнению с RSVP.&lt;br /&gt;
&lt;br /&gt;
===Соседство===&lt;br /&gt;
При включении LDP на роутере, он пытается установить соседство. Mulicast на '''UDP 646''' шлют hello пакеты (раз в 5 сек, dead interval = 15 сек). Другой роутер слушает hello на этом же порту, отвечает hello, т.о. устанавливается соседство.&lt;br /&gt;
&lt;br /&gt;
После этого устанавливается TCP сессия. По этой сессии начинается обмен метками и пакетами по unicast. &lt;br /&gt;
&lt;br /&gt;
Инициатором построения туннелей выступает egress роутер. &lt;br /&gt;
&lt;br /&gt;
Роутер (A) анонсирует свой Lo соседнему роутеру (В). Этот анонс попадает в inet.3. Т.к. B - прямой сосед А, и между ними однохоповый туннель, то анонс от А придет с меткой 3. &lt;br /&gt;
&lt;br /&gt;
Роутер B начинает анонсировать Lo роутера А остальным своим соседям (C,D), чтобы те начали строить туннели до роутера А. На роутерах C,D анонс от B поместится в inet.3, с ''push'' метка. А на роутере B в таблице mpls.0 - появляется запись для туннеля с ''swap''.&lt;br /&gt;
&lt;br /&gt;
В итоге - full mesh на сети. На всех роутерах в inet.3 будет Lo роутера А.&lt;br /&gt;
{{note|text=Установление LDP LSP нельзя контролировать, они следуют кратчайшему пути по IGP.}}&lt;br /&gt;
&lt;br /&gt;
'''Для исключения петель: '''&lt;br /&gt;
&lt;br /&gt;
* На каждом роутере для каждого соседа создается 2 LDP database: на вход и на выход. LDP database, поступившая на вход, сравнивается с топологией IGP. В inet.3 попадает тот анонс, который пришел с того же next-hop, что указан для пришедшего Lo.&lt;br /&gt;
* То, что пришло и не совпало с IGP - сохраняется, но не используется. ''Liberal protection''.&lt;br /&gt;
&lt;br /&gt;
'''Без настроенного link-state IGP (OSPF или ISIS) LDP работать не будет!''' Скорость перестроения - зависит от перестроения по IGP. &lt;br /&gt;
&lt;br /&gt;
===Cisco===&lt;br /&gt;
В Cisco дефолтное поведение немного другое. Анонсируются не только Lo, а полностью таблица маршрутизации и сразу вставляется в GRT (global routing table).&lt;br /&gt;
&lt;br /&gt;
Чтобы на Juniper получить такое же поведение: &lt;br /&gt;
# Пишем egress-policy: где указано что требуется анонсировать из таблицы маршрутизации по протоколу LDP. Policy применяется как egress policy к протоколу LDP.&lt;br /&gt;
# На всех остальных роутерах требуется перенести inet.3 в inet.0.&lt;br /&gt;
&lt;br /&gt;
Это может понадобиться только в случае, если мы делаем редистрибьюцию внешних префиксов во внутренний протокол. '''- чего провайдер делать не должен.'''&lt;br /&gt;
&lt;br /&gt;
===Configuration===&lt;br /&gt;
&lt;br /&gt;
1. Включаем family mpls:&lt;br /&gt;
 [edit interfaces]&lt;br /&gt;
 set ge-0/0/2.0 family mpls&lt;br /&gt;
 set ge-0/0/3.0 family mpls&lt;br /&gt;
&lt;br /&gt;
2. Добавляем интерфейсы в protocols ldp&lt;br /&gt;
 [edit protocols ldp]&lt;br /&gt;
 	set interface ge-0/0/2.0&lt;br /&gt;
 	set interface ge-0/0/3.0&lt;br /&gt;
&lt;br /&gt;
3. На остальных роутерах в mpls домене делаем все тоже самое.&lt;br /&gt;
&lt;br /&gt;
Можно проверить что будет происходить с меткой на каждом хопе LDP LSP:&lt;br /&gt;
 show route protocol ldp 10.200.86.7&lt;br /&gt;
 show ldp router&lt;br /&gt;
 show route table inet.3  - если нет Lo нужного нам роутера, то проверяем есть ли Lo в inet.0 (IGP)&lt;br /&gt;
&lt;br /&gt;
'''Обычно не стоит вопрос о том какой протокол использовать. Оба протокола друг друга просто дополняют.''' У двух протоколов разные preference, поэтому BGP будет выбирать RSVP, как более приоритетный.&lt;br /&gt;
&lt;br /&gt;
==LDP tunneling==&lt;br /&gt;
Комбинация LDP и RSVP. Core - RSVP + TE, доступ - LDP.&lt;br /&gt;
&lt;br /&gt;
* Роутер A - LDP. начинает анонсировать себя. B - '''inet.3''': LoA, pop.&lt;br /&gt;
* Роутер B - LDP + RSVP. анонс LoA с меткой 100. B: '''mpls.0''': LoA 100 pop -&amp;gt; A&lt;br /&gt;
* Роутер C - RSVP (с LDP-tunneling). Анонс LoA с меткой 150, UDP 646 на LoA (''берется из конфигурации туннеля''), соседство по LDP A&amp;lt;&amp;gt;C (''не hello механизм, но тоже работает’’). С: '''mpls.0''': LoA 150 swap 100 -&amp;gt; B.&lt;br /&gt;
* Роутер E - LDP + RSVP. Анонс LoA с меткой 200. E: '''mpls.0''': LoA 200 swap 150 -&amp;gt; C. Но C не direct connected. C доступен чере туннель =&amp;gt; идем смотреть в inet.3. E: '''inet.3''': LoC push 1000 -&amp;gt; D. =&amp;gt; E; '''mpls.0''': LoA 200 swap 150 push 1000&lt;br /&gt;
* Роутер F - LDP. Ingress: '''inet.3''': LoA push 200 -&amp;gt; E.&lt;br /&gt;
&lt;br /&gt;
В обратную сторону строится точно также.&lt;br /&gt;
Обязательно на core роутерах (C) включить в LDP LoC, чтобы поднялся туннель C - A.&lt;br /&gt;
Схема работает только в пределах области.&lt;br /&gt;
При включенном LDP tunneling будут видны скрытые маршруты в inet.3&lt;/div&gt;</summary>
		<author><name>Владислав Павкин</name></author>
	</entry>
	<entry>
		<id>https://juniper-exam.ru/index.php?title=%D0%93%D0%BB%D0%B0%D0%B2%D0%B0_2._Label_Distribution_Protocols_(RSVP,_LDP)&amp;diff=183</id>
		<title>Глава 2. Label Distribution Protocols (RSVP, LDP)</title>
		<link rel="alternate" type="text/html" href="https://juniper-exam.ru/index.php?title=%D0%93%D0%BB%D0%B0%D0%B2%D0%B0_2._Label_Distribution_Protocols_(RSVP,_LDP)&amp;diff=183"/>
		<updated>2016-11-02T14:41:26Z</updated>

		<summary type="html">&lt;p&gt;Владислав Павкин: /* Configuration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==RSVP==&lt;br /&gt;
'''RSVP''' - ''resource reservation protocol'' - требует больше конфигурации для работы, чем LPD, но зато имеет более полезных фич, таких как: TE, fast-failover, QoS, bandwidth reservation, LSP customization. &lt;br /&gt;
&lt;br /&gt;
LSP установлена и имеет свой ''record route'': список IP адресов интерфейсов, через которых проходит RSVP LSP, включая ingress и egress.&lt;br /&gt;
&lt;br /&gt;
Второй preference у RSVP: Когда внутри протокола требуется сравнение маршрутов. RSVP auto mesh - ''preference 2'' = 3. Если на сети будет построен RSVP туннель статический и auto-mesh, то предпочтительней будет статический. (preference 2: 1 &amp;lt; 3).&lt;br /&gt;
{{note| text=В LDP нет требования добавлять интерфейсы в protocols mpls, но family mpls включать нужно.}}&lt;br /&gt;
===Configuration===&lt;br /&gt;
1. Включаем family mpls на интерфейсах, смотрящих в ядро. Эта настройка позволяет отправлять и получать пакеты с метками.&lt;br /&gt;
 [edit interfaces]&lt;br /&gt;
    set ge-0/0/2.0 family mpls&lt;br /&gt;
    set ge-0/0/3.0 family mpls&lt;br /&gt;
&lt;br /&gt;
2. Настраиваем LSP. И добавляем нужные интерфейсы в protocols mpls. Это позволяет запустить на указанных интерфейсах mpls и появиться в TED, как возможный ресурс для использования.&lt;br /&gt;
 &lt;br /&gt;
 [edit protocols mpls]&lt;br /&gt;
 	set label-switched-path R1-to-R5 {&lt;br /&gt;
 		to 10.200.86.3;&lt;br /&gt;
 	}&lt;br /&gt;
 	interface ge-0/0/2.0;&lt;br /&gt;
 	interface ge-0/0/3.0;&lt;br /&gt;
&lt;br /&gt;
3. Добавляем в протокол RSVP нужные интерфейсы.&lt;br /&gt;
 [edit protocols rsvp]&lt;br /&gt;
 	set interface ge-0/0/2.0&lt;br /&gt;
 	set interface ge-0/0/3.0&lt;br /&gt;
&lt;br /&gt;
4. На остальных роутерах требуется включить family mpls и добавить интерфейсы в protocols rsvp.&lt;br /&gt;
&lt;br /&gt;
==LDP==&lt;br /&gt;
'''LDP''' - ''label distribution protocol'' - намного более простой в настройке, но малофункциональный сигнальный протокол, по сравнению с RSVP.&lt;br /&gt;
&lt;br /&gt;
===Соседство===&lt;br /&gt;
При включении LDP на роутере, он пытается установить соседство. Mulicast на '''UDP 646''' шлют hello пакеты (раз в 5 сек, dead interval = 15 сек). Другой роутер слушает hello на этом же порту, отвечает hello, т.о. устанавливается соседство.&lt;br /&gt;
&lt;br /&gt;
После этого устанавливается TCP сессия. По этой сессии начинается обмен метками и пакетами по unicast. &lt;br /&gt;
&lt;br /&gt;
Инициатором построения туннелей выступает egress роутер. &lt;br /&gt;
&lt;br /&gt;
Роутер (A) анонсирует свой Lo соседнему роутеру (В). Этот анонс попадает в inet.3. Т.к. B - прямой сосед А, и между ними однохоповый туннель, то анонс от А придет с меткой 3. &lt;br /&gt;
&lt;br /&gt;
Роутер B начинает анонсировать Lo роутера А остальным своим соседям (C,D), чтобы те начали строить туннели до роутера А. На роутерах C,D анонс от B поместится в inet.3, с ''push'' метка. А на роутере B в таблице mpls.0 - появляется запись для туннеля с ''swap''.&lt;br /&gt;
&lt;br /&gt;
В итоге - full mesh на сети. На всех роутерах в inet.3 будет Lo роутера А.&lt;br /&gt;
{{note|text=Установление LDP LSP нельзя контролировать, они следуют кратчайшему пути по IGP.}}&lt;br /&gt;
&lt;br /&gt;
'''Для исключения петель: '''&lt;br /&gt;
&lt;br /&gt;
* На каждом роутере для каждого соседа создается 2 LDP database: на вход и на выход. LDP database, поступившая на вход, сравнивается с топологией IGP. В inet.3 попадает тот анонс, который пришел с того же next-hop, что указан для пришедшего Lo.&lt;br /&gt;
* То, что пришло и не совпало с IGP - сохраняется, но не используется. ''Liberal protection''.&lt;br /&gt;
&lt;br /&gt;
'''Без настроенного link-state IGP (OSPF или ISIS) LDP работать не будет!''' Скорость перестроения - зависит от перестроения по IGP. &lt;br /&gt;
&lt;br /&gt;
===Cisco===&lt;br /&gt;
В Cisco дефолтное поведение немного другое. Анонсируются не только Lo, а полностью таблица маршрутизации и сразу вставляется в GRT (global routing table).&lt;br /&gt;
&lt;br /&gt;
Чтобы на Juniper получить такое же поведение: &lt;br /&gt;
# Пишем egress-policy: где указано что требуется анонсировать из таблицы маршрутизации по протоколу LDP. Policy применяется как egress policy к протоколу LDP.&lt;br /&gt;
# На всех остальных роутерах требуется перенести inet.3 в inet.0.&lt;br /&gt;
&lt;br /&gt;
Это может понадобиться только в случае, если мы делаем редистрибьюцию внешних префиксов во внутренний протокол. '''- чего провайдер делать не должен.'''&lt;br /&gt;
&lt;br /&gt;
===Configuration===&lt;br /&gt;
&lt;br /&gt;
1. Включаем family mpls:&lt;br /&gt;
 [edit interfaces]&lt;br /&gt;
 set ge-0/0/2.0 family mpls&lt;br /&gt;
 set ge-0/0/3.0 family mpls&lt;br /&gt;
&lt;br /&gt;
2. Добавляем интерфейсы в protocols ldp&lt;br /&gt;
 [edit protocols ldp]&lt;br /&gt;
 	set interface ge-0/0/2.0&lt;br /&gt;
 	set interface ge-0/0/3.0&lt;br /&gt;
&lt;br /&gt;
3. На остальных роутерах в mpls домене делаем все тоже самое.&lt;br /&gt;
&lt;br /&gt;
Можно проверить что будет происходить с меткой на каждом хопе LDP LSP:&lt;br /&gt;
 show route protocol ldp 10.200.86.7&lt;br /&gt;
 show ldp router&lt;br /&gt;
 show route table inet.3  - если нет Lo нужного нам роутера, то проверяем есть ли Lo в inet.0 (IGP)&lt;br /&gt;
&lt;br /&gt;
'''Обычно не стоит вопрос о том какой протокол использовать. Оба протокола друг друга просто дополняют.''' У двух протоколов разные preference, поэтому BGP будет выбирать RSVP, как более приоритетный.&lt;br /&gt;
&lt;br /&gt;
==LDP runneling==&lt;br /&gt;
Комбинация LDP и RSVP. Core - RSVP + TE, доступ - LDP.&lt;br /&gt;
&lt;br /&gt;
* Роутер A - LDP. начинает анонсировать себя. B - '''inet.3''': LoA, pop.&lt;br /&gt;
* Роутер B - LDP + RSVP. анонс LoA с меткой 100. B: '''mpls.0''': LoA 100 pop -&amp;gt; A&lt;br /&gt;
* Роутер C - RSVP (с LDP-tunneling). Анонс LoA с меткой 150, UDP 646 на LoA (''берется из конфигурации туннеля''), соседство по LDP A&amp;lt;&amp;gt;C (''не hello механизм, но тоже работает’’). С: '''mpls.0''': LoA 150 swap 100 -&amp;gt; B.&lt;br /&gt;
* Роутер E - LDP + RSVP. Анонс LoA с меткой 200. E: '''mpls.0''': LoA 200 swap 150 -&amp;gt; C. Но C не direct connected. C доступен чере туннель =&amp;gt; идем смотреть в inet.3. E: '''inet.3''': LoC push 1000 -&amp;gt; D. =&amp;gt; E; '''mpls.0''': LoA 200 swap 150 push 1000&lt;br /&gt;
* Роутер F - LDP. Ingress: '''inet.3''': LoA push 200 -&amp;gt; E.&lt;br /&gt;
&lt;br /&gt;
В обратную сторону строится точно также.&lt;br /&gt;
Обязательно на core роутерах (C) включить в LDP LoC, чтобы поднялся туннель C - A.&lt;br /&gt;
Схема работает только в пределах области.&lt;br /&gt;
При включенном LDP tunneling будут видны скрытые маршруты в inet.3&lt;/div&gt;</summary>
		<author><name>Владислав Павкин</name></author>
	</entry>
	<entry>
		<id>https://juniper-exam.ru/index.php?title=%D0%93%D0%BB%D0%B0%D0%B2%D0%B0_1._%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D1%8B_MPLS_%D0%B8_VPN&amp;diff=182</id>
		<title>Глава 1. Основы MPLS и VPN</title>
		<link rel="alternate" type="text/html" href="https://juniper-exam.ru/index.php?title=%D0%93%D0%BB%D0%B0%D0%B2%D0%B0_1._%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D1%8B_MPLS_%D0%B8_VPN&amp;diff=182"/>
		<updated>2016-11-02T13:38:21Z</updated>

		<summary type="html">&lt;p&gt;Владислав Павкин: /* inet.3 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Причины появления и плюсы использования MPLS===&lt;br /&gt;
* Уменьшилось время route lookup, за счет использования меток для передачи трафика.&lt;br /&gt;
* Улучшилась масштабируемость сети.&lt;br /&gt;
* Использование traffic engineering (TE) дает дополнительную возможность управлять трафиком.&lt;br /&gt;
* На одном и том же оборудовании можно обеспечить работу разных технологий: Ethernet, ATM, Frame Relay, IPSec.&lt;br /&gt;
&lt;br /&gt;
===Метки, LSP===&lt;br /&gt;
LSP - однонаправленные.&lt;br /&gt;
&lt;br /&gt;
Для LSP требуется, чтобы  MPLS был включен на каждом роутере, через который проходит LSP.&lt;br /&gt;
MPLS позволяет роутеру завести локальную DB, в которой будут метки с назначением и другими метками, обмен метками с соседними роутерами и отправка и получение пакетов, отмеченных метками.&lt;br /&gt;
&lt;br /&gt;
LSP обеспечивает маршрут через сеть для пакета с меткой. В отличие от маршрутизации по dest IP, пакет с меткой маршрутизируется по сети основываясь на значении метки. &lt;br /&gt;
&lt;br /&gt;
'''Заголовок MPLS''' - 32 bit (8bytes). Добавляется сразу после L2 заголовка.&lt;br /&gt;
&lt;br /&gt;
Заголовок содержит: метку, CoS, Stack bit, TTL.&lt;br /&gt;
&lt;br /&gt;
Метки MPLS уникальны в рамках роутера. На каждом роутере в MPLS домене, через который проходит LSP, метка обязательно будет меняться.&lt;br /&gt;
&lt;br /&gt;
* 0 - Explicit null (IPv4)&lt;br /&gt;
* 1 - Router alter label (IP router alert)&lt;br /&gt;
* 2 - Explicit null (IPv6)&lt;br /&gt;
* 3 - Implicit null&lt;br /&gt;
* 4-15 - for future use&lt;br /&gt;
&lt;br /&gt;
Таблица '''mps.0''' - для хранения информации о метках. Для транзитных роутеров, для принятия решений - куда передавать трафик. При включении MPLS, в ней сразу появляется информаци о 0,1,2 метках.&lt;br /&gt;
&lt;br /&gt;
===Терминология===&lt;br /&gt;
'''LSP''' labe switched path -  однонаправленный поток трафика.&lt;br /&gt;
&lt;br /&gt;
'''LSR''' label switching router = роутер, использующий MPLS, который участвует в построении LSP.&lt;br /&gt;
&lt;br /&gt;
Бывает нескольких типов: &lt;br /&gt;
* '''Ingress'''&lt;br /&gt;
:- Пакеты входят в LSP на ingress роутере&lt;br /&gt;
:- Делает push метки&lt;br /&gt;
:- Для отдельной LSP может быть только 1 ingress роутер&lt;br /&gt;
:- Upstream для остальных роутеров в рамках LSP&lt;br /&gt;
* '''Transit'''&lt;br /&gt;
:- Для LSP может быть 0 или более transit роутеров&lt;br /&gt;
:- Делает swap метки&lt;br /&gt;
:- Передает трафик следующему хопу LSP&lt;br /&gt;
* '''Penultimate'''&lt;br /&gt;
:- Предпоследний для LSP роутер&lt;br /&gt;
:- По дефолту делает pop метки и пакет без метки отправляет последнему egress роутеру.&lt;br /&gt;
* '''Egress'''&lt;br /&gt;
:- Пакеты выходят из LSP на egress роутере&lt;br /&gt;
:- Передает пакет дальше, основываясь на IP&lt;br /&gt;
:- Downstream для других роутеров в рамках LSP&lt;br /&gt;
&lt;br /&gt;
===PHP, UHP===&lt;br /&gt;
&lt;br /&gt;
'''PHP''' - ''penultimate hop popping'' - снятие метки на предпоследнем роутере. В таком случае egress роутер будет освобожден от этой функции и будет делает стандартный lookup по адресу назначения в таблице inet.0. Для реализации этой процедуры egress при установлении LSP отправляет предпоследнему роутеру метку 3. &lt;br /&gt;
&lt;br /&gt;
'''UHP''' - ''ultimate hop popping'' - предпоследний роутер передает последнему пакет с меткой. Метка снимается на последнем роутере. Такое поведение требуется, например, для корректной работы CoS. Для реализации такого поведения нужно включить: &lt;br /&gt;
&lt;br /&gt;
 set protocols mpls explicit-null&lt;br /&gt;
&lt;br /&gt;
При этом egress роутер при создании LPS будет отправлять предпоследнему роутеру метку 0.&lt;br /&gt;
&lt;br /&gt;
===inet.3===&lt;br /&gt;
Маршруты вставляются в таблицу inet.3, в которую залезает BGP, перед тем как отрезолвить next-hop для префикса. Если удалось найти next-hop в inet.3, то BGP вставляет LSP в inet.0 в качестве физического next-hop. Если не удалось, то BGP идет в inet.0 и пытается отрезолвить там.&lt;br /&gt;
&lt;br /&gt;
Если мы резолвим next-hop для Lo интерфейса удаленного маршрутизатора, что в inet.0 он будет виден как доступный через IGP протокол и трафик будет передаваться в соответствие с IGP, то есть в p2p интерфейс с соседним маршрутизатором.&lt;br /&gt;
&lt;br /&gt;
Если же мы будем резолвить next-hop для префикса, находящегося за пределами IGP домена (клиентский), который будет известен по BGP (а такое будет обязательно, т.к. обычно для распространения подобных маршрутов используется next-hop self, подставляется Lo удалённого маршрутизатора), то BGP залезет в inet.3, увидит в качестве next-hop LSP до Lo удалённого маршрутизатора и подставит эту запись в inet.0!! Вот и вся магия.&lt;br /&gt;
&lt;br /&gt;
То есть вся разница в том, что транзитный трафик, через роутер, участвующий в LSP, будет идти через LSP. А трафик направленный к самому роутеру (Lo интерфейсу), будут опираться на IGP.&lt;br /&gt;
&lt;br /&gt;
inet.3 строится только на ingress роутерах. На транзитных - только mpls.0.&lt;/div&gt;</summary>
		<author><name>Владислав Павкин</name></author>
	</entry>
	<entry>
		<id>https://juniper-exam.ru/index.php?title=%D0%93%D0%BB%D0%B0%D0%B2%D0%B0_1._%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D1%8B_MPLS_%D0%B8_VPN&amp;diff=181</id>
		<title>Глава 1. Основы MPLS и VPN</title>
		<link rel="alternate" type="text/html" href="https://juniper-exam.ru/index.php?title=%D0%93%D0%BB%D0%B0%D0%B2%D0%B0_1._%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D1%8B_MPLS_%D0%B8_VPN&amp;diff=181"/>
		<updated>2016-11-02T13:38:07Z</updated>

		<summary type="html">&lt;p&gt;Владислав Павкин: /* inet.3 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Причины появления и плюсы использования MPLS===&lt;br /&gt;
* Уменьшилось время route lookup, за счет использования меток для передачи трафика.&lt;br /&gt;
* Улучшилась масштабируемость сети.&lt;br /&gt;
* Использование traffic engineering (TE) дает дополнительную возможность управлять трафиком.&lt;br /&gt;
* На одном и том же оборудовании можно обеспечить работу разных технологий: Ethernet, ATM, Frame Relay, IPSec.&lt;br /&gt;
&lt;br /&gt;
===Метки, LSP===&lt;br /&gt;
LSP - однонаправленные.&lt;br /&gt;
&lt;br /&gt;
Для LSP требуется, чтобы  MPLS был включен на каждом роутере, через который проходит LSP.&lt;br /&gt;
MPLS позволяет роутеру завести локальную DB, в которой будут метки с назначением и другими метками, обмен метками с соседними роутерами и отправка и получение пакетов, отмеченных метками.&lt;br /&gt;
&lt;br /&gt;
LSP обеспечивает маршрут через сеть для пакета с меткой. В отличие от маршрутизации по dest IP, пакет с меткой маршрутизируется по сети основываясь на значении метки. &lt;br /&gt;
&lt;br /&gt;
'''Заголовок MPLS''' - 32 bit (8bytes). Добавляется сразу после L2 заголовка.&lt;br /&gt;
&lt;br /&gt;
Заголовок содержит: метку, CoS, Stack bit, TTL.&lt;br /&gt;
&lt;br /&gt;
Метки MPLS уникальны в рамках роутера. На каждом роутере в MPLS домене, через который проходит LSP, метка обязательно будет меняться.&lt;br /&gt;
&lt;br /&gt;
* 0 - Explicit null (IPv4)&lt;br /&gt;
* 1 - Router alter label (IP router alert)&lt;br /&gt;
* 2 - Explicit null (IPv6)&lt;br /&gt;
* 3 - Implicit null&lt;br /&gt;
* 4-15 - for future use&lt;br /&gt;
&lt;br /&gt;
Таблица '''mps.0''' - для хранения информации о метках. Для транзитных роутеров, для принятия решений - куда передавать трафик. При включении MPLS, в ней сразу появляется информаци о 0,1,2 метках.&lt;br /&gt;
&lt;br /&gt;
===Терминология===&lt;br /&gt;
'''LSP''' labe switched path -  однонаправленный поток трафика.&lt;br /&gt;
&lt;br /&gt;
'''LSR''' label switching router = роутер, использующий MPLS, который участвует в построении LSP.&lt;br /&gt;
&lt;br /&gt;
Бывает нескольких типов: &lt;br /&gt;
* '''Ingress'''&lt;br /&gt;
:- Пакеты входят в LSP на ingress роутере&lt;br /&gt;
:- Делает push метки&lt;br /&gt;
:- Для отдельной LSP может быть только 1 ingress роутер&lt;br /&gt;
:- Upstream для остальных роутеров в рамках LSP&lt;br /&gt;
* '''Transit'''&lt;br /&gt;
:- Для LSP может быть 0 или более transit роутеров&lt;br /&gt;
:- Делает swap метки&lt;br /&gt;
:- Передает трафик следующему хопу LSP&lt;br /&gt;
* '''Penultimate'''&lt;br /&gt;
:- Предпоследний для LSP роутер&lt;br /&gt;
:- По дефолту делает pop метки и пакет без метки отправляет последнему egress роутеру.&lt;br /&gt;
* '''Egress'''&lt;br /&gt;
:- Пакеты выходят из LSP на egress роутере&lt;br /&gt;
:- Передает пакет дальше, основываясь на IP&lt;br /&gt;
:- Downstream для других роутеров в рамках LSP&lt;br /&gt;
&lt;br /&gt;
===PHP, UHP===&lt;br /&gt;
&lt;br /&gt;
'''PHP''' - ''penultimate hop popping'' - снятие метки на предпоследнем роутере. В таком случае egress роутер будет освобожден от этой функции и будет делает стандартный lookup по адресу назначения в таблице inet.0. Для реализации этой процедуры egress при установлении LSP отправляет предпоследнему роутеру метку 3. &lt;br /&gt;
&lt;br /&gt;
'''UHP''' - ''ultimate hop popping'' - предпоследний роутер передает последнему пакет с меткой. Метка снимается на последнем роутере. Такое поведение требуется, например, для корректной работы CoS. Для реализации такого поведения нужно включить: &lt;br /&gt;
&lt;br /&gt;
 set protocols mpls explicit-null&lt;br /&gt;
&lt;br /&gt;
При этом egress роутер при создании LPS будет отправлять предпоследнему роутеру метку 0.&lt;br /&gt;
&lt;br /&gt;
===inet.3===&lt;br /&gt;
Маршруты вставляются в таблицу inet.3, в которую залезает BGP, перед тем как отрезолвить next-hop для префикса. Если удалось найти next-hop в inet.3, то BGP вставляет LSP в inet.0 в качестве физического next-hop. Если не удалось, то BGP идет в inet.0 и пытается отрезолвить там.&lt;br /&gt;
&lt;br /&gt;
Если мы резолвим next-hop для Lo интерфейса удаленного маршрутизатора, что в inet.0 он будет виден как доступный через IGP протокол и трафик будет передаваться в соответствие с IGP, то есть в p2p интерфейс с соседним маршрутизатором.&lt;br /&gt;
&lt;br /&gt;
Если же мы будем резолвить next-hop для префикса, находящегося за пределами IGP домена (клиентский), который будет известен по BGP (а такое будет обязательно, т.к. обычно для распространения подобных маршрутов используется next-hop self, подставляется Lo удалённого маршрутизатора), то BGP залезет в inet.3, увидит в качестве next-hop LSP до Lo удалённого маршрутизатора и подставит эту запись в inet.0!! Вот и вся магия.&lt;br /&gt;
&lt;br /&gt;
То есть вся разница в том, что транзитный трафик, через роутер, участвующий в LSP, будет идти через LSP. А трафик направленный к самому роутеру (Lo интерфейсу), будут опираться на IGP.&lt;br /&gt;
&lt;br /&gt;
LDP полностью опирается на IGP. inet.3 строится только на ingress роутерах. На транзитных - только mpls.0.&lt;/div&gt;</summary>
		<author><name>Владислав Павкин</name></author>
	</entry>
	<entry>
		<id>https://juniper-exam.ru/index.php?title=%D0%93%D0%BB%D0%B0%D0%B2%D0%B0_2._Label_Distribution_Protocols_(RSVP,_LDP)&amp;diff=180</id>
		<title>Глава 2. Label Distribution Protocols (RSVP, LDP)</title>
		<link rel="alternate" type="text/html" href="https://juniper-exam.ru/index.php?title=%D0%93%D0%BB%D0%B0%D0%B2%D0%B0_2._Label_Distribution_Protocols_(RSVP,_LDP)&amp;diff=180"/>
		<updated>2016-11-02T13:36:15Z</updated>

		<summary type="html">&lt;p&gt;Владислав Павкин: /* RSVP */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==RSVP==&lt;br /&gt;
'''RSVP''' - ''resource reservation protocol'' - требует больше конфигурации для работы, чем LPD, но зато имеет более полезных фич, таких как: TE, fast-failover, QoS, bandwidth reservation, LSP customization. &lt;br /&gt;
&lt;br /&gt;
LSP установлена и имеет свой ''record route'': список IP адресов интерфейсов, через которых проходит RSVP LSP, включая ingress и egress.&lt;br /&gt;
&lt;br /&gt;
Второй preference у RSVP: Когда внутри протокола требуется сравнение маршрутов. RSVP auto mesh - ''preference 2'' = 3. Если на сети будет построен RSVP туннель статический и auto-mesh, то предпочтительней будет статический. (preference 2: 1 &amp;lt; 3).&lt;br /&gt;
{{note| text=В LDP нет требования добавлять интерфейсы в protocols mpls, но family mpls включать нужно.}}&lt;br /&gt;
===Configuration===&lt;br /&gt;
1. Включаем family mpls на интерфейсах, смотрящих в ядро. Эта настройка позволяет отправлять и получать пакеты с метками.&lt;br /&gt;
 [edit interfaces]&lt;br /&gt;
    set ge-0/0/2.0 family mpls&lt;br /&gt;
    set ge-0/0/3.0 family mpls&lt;br /&gt;
&lt;br /&gt;
2. Настраиваем LSP. И добавляем нужные интерфейсы в protocols mpls. Это позволяет запустить на указанных интерфейсах mpls и появиться в TED, как возможный ресурс для использования.&lt;br /&gt;
 &lt;br /&gt;
 [edit protocols mpls]&lt;br /&gt;
 	set label-switched-path R1-to-R5 {&lt;br /&gt;
 		to 10.200.86.3;&lt;br /&gt;
 	}&lt;br /&gt;
 	interface ge-0/0/2.0;&lt;br /&gt;
 	interface ge-0/0/3.0;&lt;br /&gt;
&lt;br /&gt;
3. Добавляем в протокол RSVP нужные интерфейсы.&lt;br /&gt;
 [edit protocols rsvp]&lt;br /&gt;
 	set interface ge-0/0/2.0&lt;br /&gt;
 	set interface ge-0/0/3.0&lt;br /&gt;
&lt;br /&gt;
4. На остальных роутерах требуется включить family mpls и добавить интерфейсы в protocols rsvp.&lt;br /&gt;
&lt;br /&gt;
==LDP==&lt;br /&gt;
'''LDP''' - ''label distribution protocol'' - намного более простой в настройке, но малофункциональный сигнальный протокол, по сравнению с RSVP.&lt;br /&gt;
&lt;br /&gt;
===Соседство===&lt;br /&gt;
При включении LDP на роутере, он пытается установить соседство. Mulicast на '''UDP 646''' шлют hello пакеты (раз в 5 сек, dead interval = 15 сек). Другой роутер слушает hello на этом же порту, отвечает hello, т.о. устанавливается соседство.&lt;br /&gt;
&lt;br /&gt;
После этого устанавливается TCP сессия. По этой сессии начинается обмен метками и пакетами по unicast. &lt;br /&gt;
&lt;br /&gt;
Инициатором построения туннелей выступает egress роутер. &lt;br /&gt;
&lt;br /&gt;
Роутер (A) анонсирует свой Lo соседнему роутеру (В). Этот анонс попадает в inet.3. Т.к. B - прямой сосед А, и между ними однохоповый туннель, то анонс от А придет с меткой 3. &lt;br /&gt;
&lt;br /&gt;
Роутер B начинает анонсировать Lo роутера А остальным своим соседям (C,D), чтобы те начали строить туннели до роутера А. На роутерах C,D анонс от B поместится в inet.3, с ''push'' метка. А на роутере B в таблице mpls.0 - появляется запись для туннеля с ''swap''.&lt;br /&gt;
&lt;br /&gt;
В итоге - full mesh на сети. На всех роутерах в inet.3 будет Lo роутера А.&lt;br /&gt;
{{note|text=Установление LDP LSP нельзя контролировать, они следуют кратчайшему пути по IGP.}}&lt;br /&gt;
&lt;br /&gt;
'''Для исключения петель: '''&lt;br /&gt;
&lt;br /&gt;
* На каждом роутере для каждого соседа создается 2 LDP database: на вход и на выход. LDP database, поступившая на вход, сравнивается с топологией IGP. В inet.3 попадает тот анонс, который пришел с того же next-hop, что указан для пришедшего Lo.&lt;br /&gt;
* То, что пришло и не совпало с IGP - сохраняется, но не используется. ''Liberal protection''.&lt;br /&gt;
&lt;br /&gt;
'''Без настроенного link-state IGP (OSPF или ISIS) LDP работать не будет!''' Скорость перестроения - зависит от перестроения по IGP. &lt;br /&gt;
&lt;br /&gt;
===Cisco===&lt;br /&gt;
В Cisco дефолтное поведение немного другое. Анонсируются не только Lo, а полностью таблица маршрутизации и сразу вставляется в GRT (global routing table).&lt;br /&gt;
&lt;br /&gt;
Чтобы на Juniper получить такое же поведение: &lt;br /&gt;
# Пишем egress-policy: где указано что требуется анонсировать из таблицы маршрутизации по протоколу LDP. Policy применяется как egress policy к протоколу LDP.&lt;br /&gt;
# На всех остальных роутерах требуется перенести inet.3 в inet.0.&lt;br /&gt;
&lt;br /&gt;
Это может понадобиться только в случае, если мы делаем редистрибьюцию внешних префиксов во внутренний протокол. '''- чего провайдер делать не должен.'''&lt;br /&gt;
&lt;br /&gt;
===Configuration===&lt;br /&gt;
&lt;br /&gt;
1. Включаем family mpls:&lt;br /&gt;
 [edit interfaces]&lt;br /&gt;
 set ge-0/0/2.0 family mpls&lt;br /&gt;
 set ge-0/0/3.0 family mpls&lt;br /&gt;
&lt;br /&gt;
2. Добавляем интерфейсы в protocols ldp&lt;br /&gt;
 [edit protocols ldp]&lt;br /&gt;
 	set interface ge-0/0/2.0&lt;br /&gt;
 	set interface ge-0/0/3.0&lt;br /&gt;
&lt;br /&gt;
3. На остальных роутерах в mpls домене делаем все тоже самое.&lt;br /&gt;
&lt;br /&gt;
Можно проверить что будет происходить с меткой на каждом хопе LDP LSP:&lt;br /&gt;
 show route protocol ldp 10.200.86.7&lt;br /&gt;
 show ldp router&lt;br /&gt;
 show route table inet.3  - если нет Lo нужного нам роутера, то проверяем есть ли Lo в inet.0 (IGP)&lt;br /&gt;
&lt;br /&gt;
'''Обычно не стоит вопрос о том какой протокол использовать. Оба протокола друг друга просто дополняют.''' У двух протоколов разные preference, поэтому BGP будет выбирать RSVP, как более приоритетный.&lt;/div&gt;</summary>
		<author><name>Владислав Павкин</name></author>
	</entry>
	<entry>
		<id>https://juniper-exam.ru/index.php?title=%D0%93%D0%BB%D0%B0%D0%B2%D0%B0_2._Label_Distribution_Protocols_(RSVP,_LDP)&amp;diff=179</id>
		<title>Глава 2. Label Distribution Protocols (RSVP, LDP)</title>
		<link rel="alternate" type="text/html" href="https://juniper-exam.ru/index.php?title=%D0%93%D0%BB%D0%B0%D0%B2%D0%B0_2._Label_Distribution_Protocols_(RSVP,_LDP)&amp;diff=179"/>
		<updated>2016-11-02T13:35:24Z</updated>

		<summary type="html">&lt;p&gt;Владислав Павкин: /* RSVP */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==RSVP==&lt;br /&gt;
'''RSVP''' - ''resource reservation protocol'' - требует больше конфигурации для работы, чем LPD, но зато имеет более полезных фич, таких как: TE, fast-failover, QoS, bandwidth reservation, LSP customization. &lt;br /&gt;
&lt;br /&gt;
LSP установлена и имеет свой ''record route'': список IP адресов интерфейсов, через которых проходит RSVP LSP, включая ingress и egress.&lt;br /&gt;
&lt;br /&gt;
Второй preference у RSVP: Когда внутри протокола требуется сравнение маршрутов. RSVP auto mesh - preference 2 = 3. Если на сети будет построен туннель статический, и auto-mesh, то предпочтительней будет статический. (preference 2: 1 &amp;lt; 3).&lt;br /&gt;
{{note| text=В LDP нет требования добавлять интерфейсы в protocols mpls, но family mpls включать нужно.}}&lt;br /&gt;
===Configuration===&lt;br /&gt;
1. Включаем family mpls на интерфейсах, смотрящих в ядро. Эта настройка позволяет отправлять и получать пакеты с метками.&lt;br /&gt;
 [edit interfaces]&lt;br /&gt;
    set ge-0/0/2.0 family mpls&lt;br /&gt;
    set ge-0/0/3.0 family mpls&lt;br /&gt;
&lt;br /&gt;
2. Настраиваем LSP. И добавляем нужные интерфейсы в protocols mpls. Это позволяет запустить на указанных интерфейсах mpls и появиться в TED, как возможный ресурс для использования.&lt;br /&gt;
 &lt;br /&gt;
 [edit protocols mpls]&lt;br /&gt;
 	set label-switched-path R1-to-R5 {&lt;br /&gt;
 		to 10.200.86.3;&lt;br /&gt;
 	}&lt;br /&gt;
 	interface ge-0/0/2.0;&lt;br /&gt;
 	interface ge-0/0/3.0;&lt;br /&gt;
&lt;br /&gt;
3. Добавляем в протокол RSVP нужные интерфейсы.&lt;br /&gt;
 [edit protocols rsvp]&lt;br /&gt;
 	set interface ge-0/0/2.0&lt;br /&gt;
 	set interface ge-0/0/3.0&lt;br /&gt;
&lt;br /&gt;
4. На остальных роутерах требуется включить family mpls и добавить интерфейсы в protocols rsvp.&lt;br /&gt;
&lt;br /&gt;
==LDP==&lt;br /&gt;
'''LDP''' - ''label distribution protocol'' - намного более простой в настройке, но малофункциональный сигнальный протокол, по сравнению с RSVP.&lt;br /&gt;
&lt;br /&gt;
===Соседство===&lt;br /&gt;
При включении LDP на роутере, он пытается установить соседство. Mulicast на '''UDP 646''' шлют hello пакеты (раз в 5 сек, dead interval = 15 сек). Другой роутер слушает hello на этом же порту, отвечает hello, т.о. устанавливается соседство.&lt;br /&gt;
&lt;br /&gt;
После этого устанавливается TCP сессия. По этой сессии начинается обмен метками и пакетами по unicast. &lt;br /&gt;
&lt;br /&gt;
Инициатором построения туннелей выступает egress роутер. &lt;br /&gt;
&lt;br /&gt;
Роутер (A) анонсирует свой Lo соседнему роутеру (В). Этот анонс попадает в inet.3. Т.к. B - прямой сосед А, и между ними однохоповый туннель, то анонс от А придет с меткой 3. &lt;br /&gt;
&lt;br /&gt;
Роутер B начинает анонсировать Lo роутера А остальным своим соседям (C,D), чтобы те начали строить туннели до роутера А. На роутерах C,D анонс от B поместится в inet.3, с ''push'' метка. А на роутере B в таблице mpls.0 - появляется запись для туннеля с ''swap''.&lt;br /&gt;
&lt;br /&gt;
В итоге - full mesh на сети. На всех роутерах в inet.3 будет Lo роутера А.&lt;br /&gt;
{{note|text=Установление LDP LSP нельзя контролировать, они следуют кратчайшему пути по IGP.}}&lt;br /&gt;
&lt;br /&gt;
'''Для исключения петель: '''&lt;br /&gt;
&lt;br /&gt;
* На каждом роутере для каждого соседа создается 2 LDP database: на вход и на выход. LDP database, поступившая на вход, сравнивается с топологией IGP. В inet.3 попадает тот анонс, который пришел с того же next-hop, что указан для пришедшего Lo.&lt;br /&gt;
* То, что пришло и не совпало с IGP - сохраняется, но не используется. ''Liberal protection''.&lt;br /&gt;
&lt;br /&gt;
'''Без настроенного link-state IGP (OSPF или ISIS) LDP работать не будет!''' Скорость перестроения - зависит от перестроения по IGP. &lt;br /&gt;
&lt;br /&gt;
===Cisco===&lt;br /&gt;
В Cisco дефолтное поведение немного другое. Анонсируются не только Lo, а полностью таблица маршрутизации и сразу вставляется в GRT (global routing table).&lt;br /&gt;
&lt;br /&gt;
Чтобы на Juniper получить такое же поведение: &lt;br /&gt;
# Пишем egress-policy: где указано что требуется анонсировать из таблицы маршрутизации по протоколу LDP. Policy применяется как egress policy к протоколу LDP.&lt;br /&gt;
# На всех остальных роутерах требуется перенести inet.3 в inet.0.&lt;br /&gt;
&lt;br /&gt;
Это может понадобиться только в случае, если мы делаем редистрибьюцию внешних префиксов во внутренний протокол. '''- чего провайдер делать не должен.'''&lt;br /&gt;
&lt;br /&gt;
===Configuration===&lt;br /&gt;
&lt;br /&gt;
1. Включаем family mpls:&lt;br /&gt;
 [edit interfaces]&lt;br /&gt;
 set ge-0/0/2.0 family mpls&lt;br /&gt;
 set ge-0/0/3.0 family mpls&lt;br /&gt;
&lt;br /&gt;
2. Добавляем интерфейсы в protocols ldp&lt;br /&gt;
 [edit protocols ldp]&lt;br /&gt;
 	set interface ge-0/0/2.0&lt;br /&gt;
 	set interface ge-0/0/3.0&lt;br /&gt;
&lt;br /&gt;
3. На остальных роутерах в mpls домене делаем все тоже самое.&lt;br /&gt;
&lt;br /&gt;
Можно проверить что будет происходить с меткой на каждом хопе LDP LSP:&lt;br /&gt;
 show route protocol ldp 10.200.86.7&lt;br /&gt;
 show ldp router&lt;br /&gt;
 show route table inet.3  - если нет Lo нужного нам роутера, то проверяем есть ли Lo в inet.0 (IGP)&lt;br /&gt;
&lt;br /&gt;
'''Обычно не стоит вопрос о том какой протокол использовать. Оба протокола друг друга просто дополняют.''' У двух протоколов разные preference, поэтому BGP будет выбирать RSVP, как более приоритетный.&lt;/div&gt;</summary>
		<author><name>Владислав Павкин</name></author>
	</entry>
	<entry>
		<id>https://juniper-exam.ru/index.php?title=%D0%93%D0%BB%D0%B0%D0%B2%D0%B0_2._Label_Distribution_Protocols_(RSVP,_LDP)&amp;diff=178</id>
		<title>Глава 2. Label Distribution Protocols (RSVP, LDP)</title>
		<link rel="alternate" type="text/html" href="https://juniper-exam.ru/index.php?title=%D0%93%D0%BB%D0%B0%D0%B2%D0%B0_2._Label_Distribution_Protocols_(RSVP,_LDP)&amp;diff=178"/>
		<updated>2016-11-02T13:32:11Z</updated>

		<summary type="html">&lt;p&gt;Владислав Павкин: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==RSVP==&lt;br /&gt;
'''RSVP''' - ''resource reservation protocol'' - требует больше конфигурации для работы, чем LPD, но зато имеет более полезных фич, таких как: TE, fast-failover, QoS, bandwidth reservation, LSP customization. &lt;br /&gt;
&lt;br /&gt;
Второй preference у RSVP: Когда внутри протокола требуется сравнение маршрутов. RSVP auto mesh - preference 2 = 3. Если на сети будет построен туннель статический, и auto-mesh, то предпочтительней будет статический. (preference 2: 1 &amp;lt; 3).&lt;br /&gt;
&lt;br /&gt;
===Configuration===&lt;br /&gt;
1. Включаем family mpls на интерфейсах, смотрящих в ядро. Эта настройка позволяет отправлять и получать пакеты с метками.&lt;br /&gt;
 [edit interfaces]&lt;br /&gt;
    set ge-0/0/2.0 family mpls&lt;br /&gt;
    set ge-0/0/3.0 family mpls&lt;br /&gt;
&lt;br /&gt;
2. Настраиваем LSP. И добавляем нужные интерфейсы в protocols mpls. Это позволяет запустить на указанных интерфейсах mpls и появиться в TED, как возможный ресурс для использования.&lt;br /&gt;
 &lt;br /&gt;
 [edit protocols mpls]&lt;br /&gt;
 	set label-switched-path R1-to-R5 {&lt;br /&gt;
 		to 10.200.86.3;&lt;br /&gt;
 	}&lt;br /&gt;
 	interface ge-0/0/2.0;&lt;br /&gt;
 	interface ge-0/0/3.0;&lt;br /&gt;
&lt;br /&gt;
3. Добавляем в протокол RSVP нужные интерфейсы.&lt;br /&gt;
 [edit protocols rsvp]&lt;br /&gt;
 	set interface ge-0/0/2.0&lt;br /&gt;
 	set interface ge-0/0/3.0&lt;br /&gt;
&lt;br /&gt;
4. На остальных роутерах требуется включить family mpls и добавить интерфейсы в protocols rsvp.&lt;br /&gt;
&lt;br /&gt;
{{note| text=В LDP нет требования добавлять интерфейсы в protocols mpls, но family mpls включать нужно.}}&lt;br /&gt;
&lt;br /&gt;
LSP установлена и имеет свой ''record route'': список IP адресов интерфейсов, через которых проходит RSVP LSP, включая ingress и egress.&lt;br /&gt;
&lt;br /&gt;
==LDP==&lt;br /&gt;
'''LDP''' - ''label distribution protocol'' - намного более простой в настройке, но малофункциональный сигнальный протокол, по сравнению с RSVP.&lt;br /&gt;
&lt;br /&gt;
===Соседство===&lt;br /&gt;
При включении LDP на роутере, он пытается установить соседство. Mulicast на '''UDP 646''' шлют hello пакеты (раз в 5 сек, dead interval = 15 сек). Другой роутер слушает hello на этом же порту, отвечает hello, т.о. устанавливается соседство.&lt;br /&gt;
&lt;br /&gt;
После этого устанавливается TCP сессия. По этой сессии начинается обмен метками и пакетами по unicast. &lt;br /&gt;
&lt;br /&gt;
Инициатором построения туннелей выступает egress роутер. &lt;br /&gt;
&lt;br /&gt;
Роутер (A) анонсирует свой Lo соседнему роутеру (В). Этот анонс попадает в inet.3. Т.к. B - прямой сосед А, и между ними однохоповый туннель, то анонс от А придет с меткой 3. &lt;br /&gt;
&lt;br /&gt;
Роутер B начинает анонсировать Lo роутера А остальным своим соседям (C,D), чтобы те начали строить туннели до роутера А. На роутерах C,D анонс от B поместится в inet.3, с ''push'' метка. А на роутере B в таблице mpls.0 - появляется запись для туннеля с ''swap''.&lt;br /&gt;
&lt;br /&gt;
В итоге - full mesh на сети. На всех роутерах в inet.3 будет Lo роутера А.&lt;br /&gt;
{{note|text=Установление LDP LSP нельзя контролировать, они следуют кратчайшему пути по IGP.}}&lt;br /&gt;
&lt;br /&gt;
'''Для исключения петель: '''&lt;br /&gt;
&lt;br /&gt;
* На каждом роутере для каждого соседа создается 2 LDP database: на вход и на выход. LDP database, поступившая на вход, сравнивается с топологией IGP. В inet.3 попадает тот анонс, который пришел с того же next-hop, что указан для пришедшего Lo.&lt;br /&gt;
* То, что пришло и не совпало с IGP - сохраняется, но не используется. ''Liberal protection''.&lt;br /&gt;
&lt;br /&gt;
'''Без настроенного link-state IGP (OSPF или ISIS) LDP работать не будет!''' Скорость перестроения - зависит от перестроения по IGP. &lt;br /&gt;
&lt;br /&gt;
===Cisco===&lt;br /&gt;
В Cisco дефолтное поведение немного другое. Анонсируются не только Lo, а полностью таблица маршрутизации и сразу вставляется в GRT (global routing table).&lt;br /&gt;
&lt;br /&gt;
Чтобы на Juniper получить такое же поведение: &lt;br /&gt;
# Пишем egress-policy: где указано что требуется анонсировать из таблицы маршрутизации по протоколу LDP. Policy применяется как egress policy к протоколу LDP.&lt;br /&gt;
# На всех остальных роутерах требуется перенести inet.3 в inet.0.&lt;br /&gt;
&lt;br /&gt;
Это может понадобиться только в случае, если мы делаем редистрибьюцию внешних префиксов во внутренний протокол. '''- чего провайдер делать не должен.'''&lt;br /&gt;
&lt;br /&gt;
===Configuration===&lt;br /&gt;
&lt;br /&gt;
1. Включаем family mpls:&lt;br /&gt;
 [edit interfaces]&lt;br /&gt;
 set ge-0/0/2.0 family mpls&lt;br /&gt;
 set ge-0/0/3.0 family mpls&lt;br /&gt;
&lt;br /&gt;
2. Добавляем интерфейсы в protocols ldp&lt;br /&gt;
 [edit protocols ldp]&lt;br /&gt;
 	set interface ge-0/0/2.0&lt;br /&gt;
 	set interface ge-0/0/3.0&lt;br /&gt;
&lt;br /&gt;
3. На остальных роутерах в mpls домене делаем все тоже самое.&lt;br /&gt;
&lt;br /&gt;
Можно проверить что будет происходить с меткой на каждом хопе LDP LSP:&lt;br /&gt;
 show route protocol ldp 10.200.86.7&lt;br /&gt;
 show ldp router&lt;br /&gt;
 show route table inet.3  - если нет Lo нужного нам роутера, то проверяем есть ли Lo в inet.0 (IGP)&lt;br /&gt;
&lt;br /&gt;
'''Обычно не стоит вопрос о том какой протокол использовать. Оба протокола друг друга просто дополняют.''' У двух протоколов разные preference, поэтому BGP будет выбирать RSVP, как более приоритетный.&lt;/div&gt;</summary>
		<author><name>Владислав Павкин</name></author>
	</entry>
	<entry>
		<id>https://juniper-exam.ru/index.php?title=%D0%93%D0%BB%D0%B0%D0%B2%D0%B0_2._Label_Distribution_Protocols_(RSVP,_LDP)&amp;diff=177</id>
		<title>Глава 2. Label Distribution Protocols (RSVP, LDP)</title>
		<link rel="alternate" type="text/html" href="https://juniper-exam.ru/index.php?title=%D0%93%D0%BB%D0%B0%D0%B2%D0%B0_2._Label_Distribution_Protocols_(RSVP,_LDP)&amp;diff=177"/>
		<updated>2016-11-02T13:30:02Z</updated>

		<summary type="html">&lt;p&gt;Владислав Павкин: /* LDP */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===RSVP===&lt;br /&gt;
'''RSVP''' - ''resource reservation protocol'' - требует больше конфигурации для работы, чем LPD, но зато имеет более полезных фич, таких как: TE, fast-failover, QoS, bandwidth reservation, LSP customization. &lt;br /&gt;
&lt;br /&gt;
====Configuration====&lt;br /&gt;
1. Включаем family mpls на интерфейсах, смотрящих в ядро. Эта настройка позволяет отправлять и получать пакеты с метками.&lt;br /&gt;
 [edit interfaces]&lt;br /&gt;
    set ge-0/0/2.0 family mpls&lt;br /&gt;
    set ge-0/0/3.0 family mpls&lt;br /&gt;
&lt;br /&gt;
2. Настраиваем LSP. И добавляем нужные интерфейсы в protocols mpls. Это позволяет запустить на указанных интерфейсах mpls и появиться в TED, как возможный ресурс для использования.&lt;br /&gt;
 &lt;br /&gt;
 [edit protocols mpls]&lt;br /&gt;
 	set label-switched-path R1-to-R5 {&lt;br /&gt;
 		to 10.200.86.3;&lt;br /&gt;
 	}&lt;br /&gt;
 	interface ge-0/0/2.0;&lt;br /&gt;
 	interface ge-0/0/3.0;&lt;br /&gt;
&lt;br /&gt;
3. Добавляем в протокол RSVP нужные интерфейсы.&lt;br /&gt;
 [edit protocols rsvp]&lt;br /&gt;
 	set interface ge-0/0/2.0&lt;br /&gt;
 	set interface ge-0/0/3.0&lt;br /&gt;
&lt;br /&gt;
4. На остальных роутерах требуется включить family mpls и добавить интерфейсы в protocols rsvp.&lt;br /&gt;
&lt;br /&gt;
{{note| text=В LDP нет требования добавлять интерфейсы в protocols mpls, но family mpls включать нужно.}}&lt;br /&gt;
&lt;br /&gt;
LSP установлена и имеет свой ''record route'': список IP адресов интерфейсов, через которых проходит RSVP LSP, включая ingress и egress.&lt;br /&gt;
&lt;br /&gt;
===LDP===&lt;br /&gt;
'''LDP''' - ''label distribution protocol'' - намного более простой в настройке, но малофункциональный сигнальный протокол, по сравнению с RSVP.&lt;br /&gt;
&lt;br /&gt;
====Соседство====&lt;br /&gt;
При включении LDP на роутере, он пытается установить соседство. Mulicast на '''UDP 646''' шлют hello пакеты (раз в 5 сек, dead interval = 15 сек). Другой роутер слушает hello на этом же порту, отвечает hello, т.о. устанавливается соседство.&lt;br /&gt;
&lt;br /&gt;
После этого устанавливается TCP сессия. По этой сессии начинается обмен метками и пакетами по unicast. &lt;br /&gt;
&lt;br /&gt;
Инициатором построения туннелей выступает egress роутер. &lt;br /&gt;
&lt;br /&gt;
Роутер (A) анонсирует свой Lo соседнему роутеру (В). Этот анонс попадает в inet.3. Т.к. B - прямой сосед А, и между ними однохоповый туннель, то анонс от А придет с меткой 3. &lt;br /&gt;
&lt;br /&gt;
Роутер B начинает анонсировать Lo роутера А остальным своим соседям (C,D), чтобы те начали строить туннели до роутера А. На роутерах C,D анонс от B поместится в inet.3, с ''push'' метка. А на роутере B в таблице mpls.0 - появляется запись для туннеля с ''swap''.&lt;br /&gt;
&lt;br /&gt;
В итоге - full mesh на сети. На всех роутерах в inet.3 будет Lo роутера А.&lt;br /&gt;
{{note|text=Установление LDP LSP нельзя контролировать, они следуют кратчайшему пути по IGP.}}&lt;br /&gt;
&lt;br /&gt;
'''Для исключения петель: '''&lt;br /&gt;
&lt;br /&gt;
* На каждом роутере для каждого соседа создается 2 LDP database: на вход и на выход. LDP database, поступившая на вход, сравнивается с топологией IGP. В inet.3 попадает тот анонс, который пришел с того же next-hop, что указан для пришедшего Lo.&lt;br /&gt;
&lt;br /&gt;
* То, что пришло и не совпало с IGP - сохраняется, но не используется. ''Liberal protection''.&lt;br /&gt;
&lt;br /&gt;
'''Без настроенного link-state IGP (OSPF или ISIS) LDP работать не будет!''' Скорость перестроения - зависит от перестроения по IGP. &lt;br /&gt;
&lt;br /&gt;
====Cisco====&lt;br /&gt;
&lt;br /&gt;
В Cisco дефолтное поведение немного другое. Анонсируются не только Lo, а полностью таблица маршрутизации и сразу вставляется в GRT (global routing table).&lt;br /&gt;
&lt;br /&gt;
Чтобы на Juniper получить такое же поведение: &lt;br /&gt;
# Пишем egress-policy: где указано что требуется анонсировать из таблицы маршрутизации по протоколу LDP. Policy применяется как egress policy к протоколу LDP.&lt;br /&gt;
# На всех остальных роутерах требуется перенести inet.3 в inet.0.&lt;br /&gt;
&lt;br /&gt;
Это может понадобиться только в случае, если мы делаем редистрибьюцию внешних префиксов во внутренний протокол. '''- чего провайдер делать не должен.'''&lt;br /&gt;
&lt;br /&gt;
====Configuration====&lt;br /&gt;
&lt;br /&gt;
1. Включаем family mpls:&lt;br /&gt;
 [edit interfaces]&lt;br /&gt;
 set ge-0/0/2.0 family mpls&lt;br /&gt;
 set ge-0/0/3.0 family mpls&lt;br /&gt;
&lt;br /&gt;
2. Добавляем интерфейсы в protocols ldp&lt;br /&gt;
 [edit protocols ldp]&lt;br /&gt;
 	set interface ge-0/0/2.0&lt;br /&gt;
 	set interface ge-0/0/3.0&lt;br /&gt;
&lt;br /&gt;
3. На остальных роутерах в mpls домене делаем все тоже самое.&lt;br /&gt;
&lt;br /&gt;
Можно проверить что будет происходить с меткой на каждом хопе LDP LSP:&lt;br /&gt;
 show route protocol ldp 10.200.86.7&lt;br /&gt;
 show ldp router&lt;br /&gt;
 show route table inet.3  - если нет Lo нужного нам роутера, то проверяем есть ли Lo в inet.0 (IGP)&lt;br /&gt;
&lt;br /&gt;
'''Обычно не стоит вопрос о том какой протокол использовать. Оба протокола друг друга просто дополняют.''' У двух протоколов разные preference, поэтому BGP будет выбирать RSVP, как более приоритетный.&lt;br /&gt;
&lt;br /&gt;
Второй preference у RSVP: Когда внутри протокола требуется сравнение маршрутов. RSVP auto mesh - preference 2 = 3. Если на сети будет построен туннель статический, и auto-mesh, то предпочтительней будет статический. (preference 2: 1 &amp;lt; 3).&lt;/div&gt;</summary>
		<author><name>Владислав Павкин</name></author>
	</entry>
	<entry>
		<id>https://juniper-exam.ru/index.php?title=Route_Table_and_LSP_Integration&amp;diff=150</id>
		<title>Route Table and LSP Integration</title>
		<link rel="alternate" type="text/html" href="https://juniper-exam.ru/index.php?title=Route_Table_and_LSP_Integration&amp;diff=150"/>
		<updated>2016-10-28T18:16:32Z</updated>

		<summary type="html">&lt;p&gt;Владислав Павкин: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Traffic-engineering bgp-igp=&lt;br /&gt;
'''Перенесет''' все маршруты из inet.3 в inet.0. Новые маршруты из inet.3 перекроют старые маршруты из inet.0, т.к. протоколы LDP и RSVP имеют лучший преференс.&lt;br /&gt;
Этот делается в целях обеспечения всей маршрутизации в сети по mpls-lsp (LDP и RSVP signalled). Но в этом варианте не работают VPN, основанные на MPLS,&lt;br /&gt;
потому, что таблица Inet3 останется пуста.&lt;br /&gt;
&lt;br /&gt;
=Traffic-engineering bgp-igp-both-ribs=&lt;br /&gt;
'''Скопирует''' маршруты из inet.3 в inet.0. Новые маршруты из inet.3, опять же, перекроют старые маршруты из inet.0,&lt;br /&gt;
но старые маршруты в inet3 останутся, поэтому этот способ годится, если в сети нужны VPN-сервисы.&lt;br /&gt;
&lt;br /&gt;
=Traffic-engineering mpls-forwarding=&lt;br /&gt;
'''Скопирует''' все маршруты из inet.3 в inet.0, но и старые маршруты в inet.0 оставит для совместимости с некоторыми политиками маршрутизации. Однако, фактически, форвардинг будет происходить по новым маршрутам.&lt;br /&gt;
Для индикации итого, какие маршруты в inet.0 для форвардинга трафика, а какие чисто инфомративные, есть дополнительные обозначения (#|@) в выводе show route:&lt;br /&gt;
 &amp;gt; show route 10.200.86.3           &lt;br /&gt;
 inet.0: 29 destinations, 38 routes (29 active, 1 holddown, 0 hidden)&lt;br /&gt;
 @ = Routing Use Only, # = Forwarding Use Only&lt;br /&gt;
 + = Active Route, - = Last Active, * = Both&lt;br /&gt;
 &lt;br /&gt;
 10.200.86.3/32     @[OSPF/10] 00:25:58, metric 3&lt;br /&gt;
                     &amp;gt; to 192.168.86.5 via ge-0/0/0.20&lt;br /&gt;
                    #[RSVP/7/1] 00:20:06, metric 3&lt;br /&gt;
                     &amp;gt; to 192.168.86.5 via ge-0/0/0.20, label-switched-path dalwhinnie-to-oban&lt;br /&gt;
                     [LDP/9] 00:02:30, metric 1&lt;br /&gt;
                     &amp;gt; to 192.168.86.5 via ge-0/0/0.20, Push 300288&lt;/div&gt;</summary>
		<author><name>Владислав Павкин</name></author>
	</entry>
	<entry>
		<id>https://juniper-exam.ru/index.php?title=%D0%9E%D1%82%D0%BA%D0%B0%D0%B7%D0%BE%D1%83%D1%81%D1%82%D0%BE%D0%B9%D1%87%D0%B8%D0%B2%D0%BE%D1%81%D1%82%D1%8C_%D0%B8_%D0%BE%D0%BF%D1%82%D0%B8%D0%BC%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F_%D0%B2_MPLS&amp;diff=149</id>
		<title>Отказоустойчивость и оптимизация в MPLS</title>
		<link rel="alternate" type="text/html" href="https://juniper-exam.ru/index.php?title=%D0%9E%D1%82%D0%BA%D0%B0%D0%B7%D0%BE%D1%83%D1%81%D1%82%D0%BE%D0%B9%D1%87%D0%B8%D0%B2%D0%BE%D1%81%D1%82%D1%8C_%D0%B8_%D0%BE%D0%BF%D1%82%D0%B8%D0%BC%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F_%D0%B2_MPLS&amp;diff=149"/>
		<updated>2016-10-28T18:16:03Z</updated>

		<summary type="html">&lt;p&gt;Владислав Павкин: Добавил страницу Failover&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Fast Reroute=&lt;br /&gt;
На каждом промежуточном LSR создается LSP для обхода линка до следующей ноды и самой следующей ноды. Это проприетарный механизм Juniper.&lt;br /&gt;
&lt;br /&gt;
Отличия от node-link-protection:&lt;br /&gt;
* При работе механизма frr лейбл не добавляется в стек к пакету. Вместо этого PLR производит swap на другой лейбл.&lt;br /&gt;
* Каждый detour защищает только свою конкретную LSP&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Secondary path=&lt;br /&gt;
Конфигурация:&lt;br /&gt;
&lt;br /&gt;
 [edit protocols mpls]  R1# show  label-switched-path R1-to-R4 { &lt;br /&gt;
 	to 10.0.0.3; &lt;br /&gt;
 	primary via-R2; &lt;br /&gt;
 	secondary via-R3 { &lt;br /&gt;
 		standby; &lt;br /&gt;
 	}	 &lt;br /&gt;
 } &lt;br /&gt;
 path via-tormore { &lt;br /&gt;
 	10.200.86.9 loose; &lt;br /&gt;
 }  path via-blair { &lt;br /&gt;
 	192.168.10.15 strict; &lt;br /&gt;
 	192.168.10.4 strict; &lt;br /&gt;
 	192.168.10.55 strict; &lt;br /&gt;
 } &lt;br /&gt;
&lt;br /&gt;
Primary path считается основным path. Если один из линков или роутеров на основном пути упадет, трафик пойдет по secondary. Но как только primary path станет доступным, трафик вернется обратно на primary. Чтобы избежать возвращения трафика на primary path, можно настроить два или более secondary путей, не настраивая ни одного primary.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Loop-Free Alternates in IGPs=&lt;br /&gt;
Подробно не рассматривается в книге. Этот метод может сделать привлекательным использование LDP для сети, которой нужны MPLS-службы (L2VPN, L3VPN, VPLS), но нет необходимости в Traffic Engineering.&lt;br /&gt;
Конфигурируется добавлением опций «link-protection» или «node-link protection» в настройку интерфейса в протоколе ospf или IS-IS. Добавлением же опции «no-eligible-backup» можно предотвратить интерфейс от обслуживания бэкапного трафика.&lt;/div&gt;</summary>
		<author><name>Владислав Павкин</name></author>
	</entry>
	<entry>
		<id>https://juniper-exam.ru/index.php?title=%D0%97%D0%B0%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0&amp;diff=148</id>
		<title>Заглавная страница</title>
		<link rel="alternate" type="text/html" href="https://juniper-exam.ru/index.php?title=%D0%97%D0%B0%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0&amp;diff=148"/>
		<updated>2016-10-28T18:14:47Z</updated>

		<summary type="html">&lt;p&gt;Владислав Павкин: /* Deploying MPLS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Сертификация Juniper=&lt;br /&gt;
==JNCIS-SP==&lt;br /&gt;
&lt;br /&gt;
===Книга 1 (Routing, tunneling)===&lt;br /&gt;
&lt;br /&gt;
====[[Глава 1-6. High Availability]]====&lt;br /&gt;
&lt;br /&gt;
===Книга 2 (Switching)===&lt;br /&gt;
&lt;br /&gt;
====[[Глава 2-4. Provider bridging]]====&lt;br /&gt;
&lt;br /&gt;
====[[Глава 2-7. ERP (Ethernet Ring Protection)]]====&lt;br /&gt;
&lt;br /&gt;
====!!!Эту главу основательно отредактировать[[Глава 2-7. LAG]]====&lt;br /&gt;
&lt;br /&gt;
===Книга 3 (MPLS)===&lt;br /&gt;
&lt;br /&gt;
====[[Глава 2. RSVP]]====&lt;br /&gt;
&lt;br /&gt;
====[[Глава 5. MPLS Features]]====&lt;br /&gt;
&lt;br /&gt;
====[[Глава 6. VPN]]====&lt;br /&gt;
&lt;br /&gt;
====[[Глава 8. L3VPN Configuration]]====&lt;br /&gt;
&lt;br /&gt;
====[[Глава 9. Полезности по траблшутингу L3VPN]]====&lt;br /&gt;
&lt;br /&gt;
====[[Глава 10. L3VPN Scaling and Internet Access]]====&lt;br /&gt;
&lt;br /&gt;
====[[Глава 11. L3VPN Advanced topics]]====&lt;br /&gt;
&lt;br /&gt;
====[[Глава 12. Multicast VPNs]]====&lt;br /&gt;
&lt;br /&gt;
====[[Главы 16-17. VPLS]]====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==JNCIP-SP==&lt;br /&gt;
&lt;br /&gt;
===Advanced routing===&lt;br /&gt;
&lt;br /&gt;
====[[OSPF]]====&lt;br /&gt;
&lt;br /&gt;
====[[BGP]]====&lt;br /&gt;
&lt;br /&gt;
====[[IS-IS]]====&lt;br /&gt;
&lt;br /&gt;
===JCOS===&lt;br /&gt;
&lt;br /&gt;
====[[Глава 2. Qos]]====&lt;br /&gt;
&lt;br /&gt;
====[[Глава 3. Packet classification]]====&lt;br /&gt;
&lt;br /&gt;
====[[Глава 4. Policing]]====&lt;br /&gt;
&lt;br /&gt;
====[[Глава 5. Scheduling]]====&lt;br /&gt;
&lt;br /&gt;
====[[Глава 6. Hierarchical scheduling]]====&lt;br /&gt;
&lt;br /&gt;
====[[Глава 7. Rewrite rules]]====&lt;br /&gt;
&lt;br /&gt;
====[[Глава 8. CoS-based forwarding]]====&lt;br /&gt;
&lt;br /&gt;
===JMR===&lt;br /&gt;
&lt;br /&gt;
====[[Глава 2. Multicast]]====&lt;br /&gt;
&lt;br /&gt;
====[[Глава 3. Routing protocols]]====&lt;br /&gt;
&lt;br /&gt;
====[[Глава 4. MSDP]]====&lt;br /&gt;
&lt;br /&gt;
====[[Глава 5. SSM]]====&lt;br /&gt;
&lt;br /&gt;
====[[Глава 6. Multicast and Policy]]====&lt;br /&gt;
&lt;br /&gt;
====[[Глава 7. IPv6]]====&lt;br /&gt;
&lt;br /&gt;
===JMV===&lt;br /&gt;
&lt;br /&gt;
====[[Глава 1. Fundamentals]]====&lt;br /&gt;
&lt;br /&gt;
====[[Глава 2. LDP]]====&lt;br /&gt;
&lt;br /&gt;
===Deploying MPLS===&lt;br /&gt;
====[[Failover]]====&lt;br /&gt;
====[[Route Table and LSP Integration]]====&lt;/div&gt;</summary>
		<author><name>Владислав Павкин</name></author>
	</entry>
	<entry>
		<id>https://juniper-exam.ru/index.php?title=Route_Table_and_LSP_Integration&amp;diff=147</id>
		<title>Route Table and LSP Integration</title>
		<link rel="alternate" type="text/html" href="https://juniper-exam.ru/index.php?title=Route_Table_and_LSP_Integration&amp;diff=147"/>
		<updated>2016-10-28T18:12:26Z</updated>

		<summary type="html">&lt;p&gt;Владислав Павкин: Новая страница: «=BGP Next-hop Installation=  ==Traffic-engineering bgp-igp== '''Перенесет''' все маршруты из inet.3 в inet.0. Новые маршруты…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=BGP Next-hop Installation=&lt;br /&gt;
&lt;br /&gt;
==Traffic-engineering bgp-igp==&lt;br /&gt;
'''Перенесет''' все маршруты из inet.3 в inet.0. Новые маршруты из inet.3 перекроют старые маршруты из inet.0, т.к. протоколы LDP и RSVP имеют лучший преференс.&lt;br /&gt;
Этот делается в целях обеспечения всей маршрутизации в сети по mpls-lsp (LDP и RSVP signalled). Но в этом варианте не работают VPN, основанные на MPLS,&lt;br /&gt;
потому, что таблица Inet3 останется пуста.&lt;br /&gt;
&lt;br /&gt;
==Traffic-engineering bgp-igp-both-ribs==&lt;br /&gt;
'''Скопирует''' маршруты из inet.3 в inet.0. Новые маршруты из inet.3, опять же, перекроют старые маршруты из inet.0,&lt;br /&gt;
но старые маршруты в inet3 останутся, поэтому этот способ годится, если в сети нужны VPN-сервисы.&lt;br /&gt;
&lt;br /&gt;
==Traffic-engineering mpls-forwarding==&lt;br /&gt;
'''Скопирует''' все маршруты из inet.3 в inet.0, но и старые маршруты в inet.0 оставит для совместимости с некоторыми политиками маршрутизации. Однако, фактически, форвардинг будет происходить по новым маршрутам.&lt;br /&gt;
Для индикации итого, какие маршруты в inet.0 для форвардинга трафика, а какие чисто инфомративные, есть дополнительные обозначения (#|@) в выводе show route:&lt;br /&gt;
 &amp;gt; show route 10.200.86.3           &lt;br /&gt;
 inet.0: 29 destinations, 38 routes (29 active, 1 holddown, 0 hidden)&lt;br /&gt;
 @ = Routing Use Only, # = Forwarding Use Only&lt;br /&gt;
 + = Active Route, - = Last Active, * = Both&lt;br /&gt;
 &lt;br /&gt;
 10.200.86.3/32     @[OSPF/10] 00:25:58, metric 3&lt;br /&gt;
                     &amp;gt; to 192.168.86.5 via ge-0/0/0.20&lt;br /&gt;
                    #[RSVP/7/1] 00:20:06, metric 3&lt;br /&gt;
                     &amp;gt; to 192.168.86.5 via ge-0/0/0.20, label-switched-path dalwhinnie-to-oban&lt;br /&gt;
                     [LDP/9] 00:02:30, metric 1&lt;br /&gt;
                     &amp;gt; to 192.168.86.5 via ge-0/0/0.20, Push 300288&lt;/div&gt;</summary>
		<author><name>Владислав Павкин</name></author>
	</entry>
	<entry>
		<id>https://juniper-exam.ru/index.php?title=%D0%97%D0%B0%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0&amp;diff=146</id>
		<title>Заглавная страница</title>
		<link rel="alternate" type="text/html" href="https://juniper-exam.ru/index.php?title=%D0%97%D0%B0%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0&amp;diff=146"/>
		<updated>2016-10-28T18:08:33Z</updated>

		<summary type="html">&lt;p&gt;Владислав Павкин: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Сертификация Juniper=&lt;br /&gt;
==JNCIS-SP==&lt;br /&gt;
&lt;br /&gt;
===Книга 1 (Routing, tunneling)===&lt;br /&gt;
&lt;br /&gt;
====[[Глава 1-6. High Availability]]====&lt;br /&gt;
&lt;br /&gt;
===Книга 2 (Switching)===&lt;br /&gt;
&lt;br /&gt;
====[[Глава 2-4. Provider bridging]]====&lt;br /&gt;
&lt;br /&gt;
====[[Глава 2-7. ERP (Ethernet Ring Protection)]]====&lt;br /&gt;
&lt;br /&gt;
====!!!Эту главу основательно отредактировать[[Глава 2-7. LAG]]====&lt;br /&gt;
&lt;br /&gt;
===Книга 3 (MPLS)===&lt;br /&gt;
&lt;br /&gt;
====[[Глава 2. RSVP]]====&lt;br /&gt;
&lt;br /&gt;
====[[Глава 5. MPLS Features]]====&lt;br /&gt;
&lt;br /&gt;
====[[Глава 6. VPN]]====&lt;br /&gt;
&lt;br /&gt;
====[[Глава 8. L3VPN Configuration]]====&lt;br /&gt;
&lt;br /&gt;
====[[Глава 9. Полезности по траблшутингу L3VPN]]====&lt;br /&gt;
&lt;br /&gt;
====[[Глава 10. L3VPN Scaling and Internet Access]]====&lt;br /&gt;
&lt;br /&gt;
====[[Глава 11. L3VPN Advanced topics]]====&lt;br /&gt;
&lt;br /&gt;
====[[Глава 12. Multicast VPNs]]====&lt;br /&gt;
&lt;br /&gt;
====[[Главы 16-17. VPLS]]====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==JNCIP-SP==&lt;br /&gt;
&lt;br /&gt;
===Advanced routing===&lt;br /&gt;
&lt;br /&gt;
====[[OSPF]]====&lt;br /&gt;
&lt;br /&gt;
====[[BGP]]====&lt;br /&gt;
&lt;br /&gt;
====[[IS-IS]]====&lt;br /&gt;
&lt;br /&gt;
===JCOS===&lt;br /&gt;
&lt;br /&gt;
====[[Глава 2. Qos]]====&lt;br /&gt;
&lt;br /&gt;
====[[Глава 3. Packet classification]]====&lt;br /&gt;
&lt;br /&gt;
====[[Глава 4. Policing]]====&lt;br /&gt;
&lt;br /&gt;
====[[Глава 5. Scheduling]]====&lt;br /&gt;
&lt;br /&gt;
====[[Глава 6. Hierarchical scheduling]]====&lt;br /&gt;
&lt;br /&gt;
====[[Глава 7. Rewrite rules]]====&lt;br /&gt;
&lt;br /&gt;
====[[Глава 8. CoS-based forwarding]]====&lt;br /&gt;
&lt;br /&gt;
===JMR===&lt;br /&gt;
&lt;br /&gt;
====[[Глава 2. Multicast]]====&lt;br /&gt;
&lt;br /&gt;
====[[Глава 3. Routing protocols]]====&lt;br /&gt;
&lt;br /&gt;
====[[Глава 4. MSDP]]====&lt;br /&gt;
&lt;br /&gt;
====[[Глава 5. SSM]]====&lt;br /&gt;
&lt;br /&gt;
====[[Глава 6. Multicast and Policy]]====&lt;br /&gt;
&lt;br /&gt;
====[[Глава 7. IPv6]]====&lt;br /&gt;
&lt;br /&gt;
===JMV===&lt;br /&gt;
&lt;br /&gt;
====[[Глава 1. Fundamentals]]====&lt;br /&gt;
&lt;br /&gt;
====[[Глава 2. LDP]]====&lt;br /&gt;
&lt;br /&gt;
===Deploying MPLS===&lt;br /&gt;
&lt;br /&gt;
====[[Route Table and LSP Integration]]====&lt;/div&gt;</summary>
		<author><name>Владислав Павкин</name></author>
	</entry>
	<entry>
		<id>https://juniper-exam.ru/index.php?title=%D0%97%D0%B0%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0&amp;diff=145</id>
		<title>Заглавная страница</title>
		<link rel="alternate" type="text/html" href="https://juniper-exam.ru/index.php?title=%D0%97%D0%B0%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0&amp;diff=145"/>
		<updated>2016-10-28T18:04:45Z</updated>

		<summary type="html">&lt;p&gt;Владислав Павкин: /* JNCIP-SP */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Сертификация Juniper=&lt;br /&gt;
==JNCIS-SP==&lt;br /&gt;
&lt;br /&gt;
===Книга 1 (Routing, tunneling)===&lt;br /&gt;
&lt;br /&gt;
====[[Глава 1-6. High Availability]]====&lt;br /&gt;
&lt;br /&gt;
===Книга 2 (Switching)===&lt;br /&gt;
&lt;br /&gt;
====[[Глава 2-4. Provider bridging]]====&lt;br /&gt;
&lt;br /&gt;
====[[Глава 2-7. ERP (Ethernet Ring Protection)]]====&lt;br /&gt;
&lt;br /&gt;
====!!!Эту главу основательно отредактировать[[Глава 2-7. LAG]]====&lt;br /&gt;
&lt;br /&gt;
===Книга 3 (MPLS)===&lt;br /&gt;
&lt;br /&gt;
====[[Глава 2. RSVP]]====&lt;br /&gt;
&lt;br /&gt;
====[[Глава 5. MPLS Features]]====&lt;br /&gt;
&lt;br /&gt;
====[[Глава 6. VPN]]====&lt;br /&gt;
&lt;br /&gt;
====[[Глава 8. L3VPN Configuration]]====&lt;br /&gt;
&lt;br /&gt;
====[[Глава 9. Полезности по траблшутингу L3VPN]]====&lt;br /&gt;
&lt;br /&gt;
====[[Глава 10. L3VPN Scaling and Internet Access]]====&lt;br /&gt;
&lt;br /&gt;
====[[Глава 11. L3VPN Advanced topics]]====&lt;br /&gt;
&lt;br /&gt;
====[[Глава 12. Multicast VPNs]]====&lt;br /&gt;
&lt;br /&gt;
====[[Главы 16-17. VPLS]]====&lt;br /&gt;
&lt;br /&gt;
==JNCIP-SP==&lt;br /&gt;
&lt;br /&gt;
===Advanced routing===&lt;br /&gt;
&lt;br /&gt;
====[[OSPF]]====&lt;br /&gt;
&lt;br /&gt;
====[[BGP]]====&lt;br /&gt;
&lt;br /&gt;
====[[IS-IS]]====&lt;br /&gt;
&lt;br /&gt;
===JCOS===&lt;br /&gt;
&lt;br /&gt;
====[[Глава 2. Qos]]====&lt;br /&gt;
&lt;br /&gt;
====[[Глава 3. Packet classification]]====&lt;br /&gt;
&lt;br /&gt;
====[[Глава 4. Policing]]====&lt;br /&gt;
&lt;br /&gt;
====[[Глава 5. Scheduling]]====&lt;br /&gt;
&lt;br /&gt;
====[[Глава 6. Hierarchical scheduling]]====&lt;br /&gt;
&lt;br /&gt;
====[[Глава 7. Rewrite rules]]====&lt;br /&gt;
&lt;br /&gt;
====[[Глава 8. CoS-based forwarding]]====&lt;br /&gt;
&lt;br /&gt;
===JMR===&lt;br /&gt;
&lt;br /&gt;
====[[Глава 2. Multicast]]====&lt;br /&gt;
&lt;br /&gt;
====[[Глава 3. Routing protocols]]====&lt;br /&gt;
&lt;br /&gt;
====[[Глава 4. MSDP]]====&lt;br /&gt;
&lt;br /&gt;
====[[Глава 5. SSM]]====&lt;br /&gt;
&lt;br /&gt;
====[[Глава 6. Multicast and Policy]]====&lt;br /&gt;
&lt;br /&gt;
====[[Глава 7. IPv6]]====&lt;br /&gt;
&lt;br /&gt;
===JMV===&lt;br /&gt;
&lt;br /&gt;
====[[Глава 1. Fundamentals]]====&lt;br /&gt;
&lt;br /&gt;
====[[Глава 2. LDP]]====&lt;br /&gt;
&lt;br /&gt;
===MPLS===&lt;br /&gt;
&lt;br /&gt;
====Deploying MPLS====&lt;/div&gt;</summary>
		<author><name>Владислав Павкин</name></author>
	</entry>
	<entry>
		<id>https://juniper-exam.ru/index.php?title=BGP&amp;diff=135</id>
		<title>BGP</title>
		<link rel="alternate" type="text/html" href="https://juniper-exam.ru/index.php?title=BGP&amp;diff=135"/>
		<updated>2016-10-23T22:42:57Z</updated>

		<summary type="html">&lt;p&gt;Владислав Павкин: /* Autonomous system path */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Состояния соседства ==&lt;br /&gt;
http://habrastorage.org/getpro/habr/post_images/442/780/549/442780549c2f45cdda10773121b2800d.png&lt;br /&gt;
&lt;br /&gt;
== Сообщения ==&lt;br /&gt;
*Open - отправляется только на стадии установления соседства. Содержит параметры BGP соседа.&lt;br /&gt;
*Update - передает routing info между соседями. Атрибуты и список префиксов, подходящий под данные атрибуты.&lt;br /&gt;
*Keepalive - для удостоверения, что с соседством все ок.&lt;br /&gt;
*Notification - в случае если не прошел keepalive или update.&lt;br /&gt;
*Refresh - soft clearing BGP сессии.&lt;br /&gt;
&lt;br /&gt;
== Атрибуты пути (path attributes) ==&lt;br /&gt;
Атрибуты пути разделены на 4 категории:&lt;br /&gt;
# '''Well-known mandatory''' — все маршрутизаторы, работающие по протоколу BGP, должны распознавать эти атрибуты. Должны присутствовать во всех обновлениях (update).&lt;br /&gt;
# '''Well-known discretionary''' — все маршрутизаторы, работающие по протоколу BGP, должны распознавать эти атрибуты. Могут присутствовать в обновлениях (update), но их присутствие не обязательно.&lt;br /&gt;
# '''Optional transitive''' — могут не распознаваться всеми реализациями BGP. Если маршрутизатор не распознал атрибут, он помечает обновление как частичное (partial) и отправляет его дальше соседям, сохраняя не распознанный атрибут.&lt;br /&gt;
# '''Optional non-transitive''' — могут не распознаваться всеми реализациями BGP. Если маршрутизатор не распознал атрибут, то атрибут игнорируется и при передаче соседям отбрасывается.&lt;br /&gt;
&lt;br /&gt;
=== Autonomous system path ===&lt;br /&gt;
 '''✔️Well-known Mandatory'''&lt;br /&gt;
* Описывает через какие автономные системы надо пройти, чтобы дойти до сети назначения. &lt;br /&gt;
* Номер AS добавляется при передаче обновления из одной AS eBGP-соседу в другой AS.&lt;br /&gt;
&lt;br /&gt;
Используется для:&lt;br /&gt;
* обнаружения петель&lt;br /&gt;
* применения политик&lt;br /&gt;
&lt;br /&gt;
Каждый сегмент атрибута AS path представлен в виде поля TLV (path segment type, path segment length, path segment value):&lt;br /&gt;
* '''path segment type''' — поле размером 1 байт для которого определены такие значения:&lt;br /&gt;
** 1 — AS_SET: неупорядоченное множество автономных систем, через которые прошел маршрут в сообщении Update,&lt;br /&gt;
** 2 — AS_SEQUENCE: упорядоченное множество автономных систем, через которые прошел маршрут в сообщении Update&lt;br /&gt;
* '''path segment length''' — поле размером 1 байт. Указывает сколько автономных систем указано в поле path segment value&lt;br /&gt;
* '''path segment value''' — номера автономных систем, каждая представлена полем размером 2 байта.&lt;br /&gt;
&lt;br /&gt;
====Операторы регулярных выражений====&lt;br /&gt;
{{re|title=Список регулярный выражений для AS Path}}&lt;br /&gt;
&lt;br /&gt;
=== Next-hop ===&lt;br /&gt;
 '''✔️Well-known Mandatory'''&lt;br /&gt;
* IP-адрес следующей AS для достижения сети назначения. &lt;br /&gt;
* Это IP-адрес eBGP-маршрутизатора, через который идет путь к сети назначения.&lt;br /&gt;
* Атрибут меняется при передаче префикса в другую AS (по-умолчанию подставляется ip-адрес bgp-соседа)&lt;br /&gt;
* Атрибут не меняется при передаче префикса в ту же AS&lt;br /&gt;
&lt;br /&gt;
Можно изменить с помощью policy на выходе:&lt;br /&gt;
 [edit policy-options policy-statement nexthop-self]&lt;br /&gt;
 R1# show &lt;br /&gt;
 term localpref {&lt;br /&gt;
     then {&lt;br /&gt;
         next-hop self;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Или же на входе:&lt;br /&gt;
 [edit policy-options policy-statement nexthop-peer]&lt;br /&gt;
 R2# show &lt;br /&gt;
 term localpref {&lt;br /&gt;
     then {&lt;br /&gt;
         next-hop peer-address;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Origin ===&lt;br /&gt;
 '''✔️Well-known Mandatory'''&lt;br /&gt;
Атрибут '''Origin''' — указывает на то, каким образом был получен маршрут в обновлении.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Возможные значения атрибута&lt;br /&gt;
|-&lt;br /&gt;
|'''0'''&lt;br /&gt;
|IGP&lt;br /&gt;
|NLRI получена внутри исходной автономной системы&lt;br /&gt;
|-&lt;br /&gt;
|'''1'''&lt;br /&gt;
| EGP&lt;br /&gt;
| NLRI выучена по протоколу Exterior Gateway Protocol (EGP)&lt;br /&gt;
|-&lt;br /&gt;
|'''2'''&lt;br /&gt;
| Incomplete&lt;br /&gt;
| NLRI была выучена каким-то другим образом&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Local preference ===&lt;br /&gt;
 '''✔️Well-known Discretionary'''&lt;br /&gt;
* Указывает маршрутизаторам внутри автономной системы как выйти за её пределы. &lt;br /&gt;
* Выбирается та точка выхода у которой значение атрибута больше.&lt;br /&gt;
* Этот атрибут передается только в пределах одной автономной системы. &lt;br /&gt;
* На маршрутизаторах Cisco и Juniper по умолчанию значение атрибута — 100.&lt;br /&gt;
* Работает только между IBGP.&lt;br /&gt;
* Если EBGP-сосед получает обновление с выставленным значением local preference, он игнорирует этот атрибут.&lt;br /&gt;
* В Junos lpf можно задать через policy и в protocol bgp. Если задан обоими способами, то будет назначен lpf из policy.&lt;br /&gt;
* Обычно используется на бордерах.&lt;br /&gt;
{{note|text=Когда в сети есть 2 бордера, которые получают один и тот же маршрут извне, и бордеры навешивают одинаковый повышенный lpf через export policy, в таком случае  соседи IBGP получат маршрут с измененным lpf, но трафик не сможет по-правильному пути выйти из AS. Из-за того что бордеры тоже друг от друга будут получать маршрут с повышенным lpf. Решение: правильно менять lpf через import policy. }}&lt;br /&gt;
&lt;br /&gt;
=== Atomic aggregate ===&lt;br /&gt;
 '''✔️Well-known Discretionary'''&lt;br /&gt;
&lt;br /&gt;
=== Aggregator ===&lt;br /&gt;
 '''✔️Optional Transitive'''&lt;br /&gt;
&lt;br /&gt;
=== Communities ===&lt;br /&gt;
 '''✔️Optional Transitive'''&lt;br /&gt;
* Тегирование маршрутов&lt;br /&gt;
* Существуют предопределенные значения (well-known), которые не требуется определять локально на своем оборудовании&lt;br /&gt;
* По умолчанию не пересылаются соседям&lt;br /&gt;
* Одному маршруту может быть присвоено несколько communities&lt;br /&gt;
* Один из вариантов применения: передается соседней AS для управления входящим трафиком&lt;br /&gt;
&lt;br /&gt;
Значения от 0x00000000 до 0x0000FFFF и от 0xFFFF0000 до 0xFFFFFFFF зарезервированы.&lt;br /&gt;
&lt;br /&gt;
Как правило community отображаются в формате ASN:VALUE.&lt;br /&gt;
В таком формате, доступны для использования community от 1:0 до 65534:65535.&lt;br /&gt;
В первой части указывается номер автономной системы, а во второй значение community, которое определяет политику маршрутизации трафика.&lt;br /&gt;
&lt;br /&gt;
Некоторые значения communities предопределены. RFC1997 определяет три значения таких community. Эти значения должны одинаково распознаваться и обрабатываться всеми реализациями BGP, которые распознают атрибут community.&lt;br /&gt;
&lt;br /&gt;
Если маршрутизатор получает маршрут, в котором указано предопределенное значение communities, то он выполняет специфическое, предопределенное действие основанное на значении атрибута.&lt;br /&gt;
&lt;br /&gt;
Предопределенные значения communities (Well-known Communities):&lt;br /&gt;
&lt;br /&gt;
====no-export (0xFFFFFF01)====&lt;br /&gt;
Все маршруты которые передаются с таким значением атрибута community не должны анонсироваться за пределы AS.&lt;br /&gt;
То есть, маршруты не анонсируются EBGP-соседям, но анонсируются внешним соседям в конфедерации.&lt;br /&gt;
&lt;br /&gt;
'''Пример использования'''&lt;br /&gt;
{{note|text=AS1 подключена к AS2 двумя линками (multinoming). AS1 анонсирует '''172.17.0/16''' в AS2. Для оптимальной маршрутизации, AS1 хочет посылать некоторые более специфичные маршруты через один из этих линков, при этом остальному интернету вовсе не обязательно получать эти специфики. Для этой цели AS1 использует community no-export, и посылает '''172.17.0/17''' в один из стыков с AS2, и '''172.17.128/17''' во второй стык. AS2 видит эти маршруты и выбирает их как более специфичные. Кроме того, эти маршруты видят все iBGP-соседи в пределах AS2. Тем не менее, за пределы AS2 в Интернет анонсируется только '''172.17.0/16'''.}}&lt;br /&gt;
&lt;br /&gt;
{{note|text= AS customer имеет 2 ISP (AS1, AS2).  AS1 - основной. Если AS customer хочет получать выход в инет только через AS1, то в сторону AS2 можно просто посылать маршруты с no-export. Но при этом важно, что при падении AS1, AS customer будет доступна только локальным пользователям AS2, но не всему интернету.}}&lt;br /&gt;
====no-advertise (0xFFFFFF02)==== &lt;br /&gt;
Все маршруты которые передаются с таким значением атрибута community не должны анонсироваться другим BGP-соседям.&lt;br /&gt;
&lt;br /&gt;
====no-export-subconfed (0xFFFFFF03)====&lt;br /&gt;
Все маршруты которые передаются с таким значением атрибута community не должны анонсироваться внешним BGP-соседям (ни внешним для конфедерации, ни настоящим внешним соседям). В Cisco это значение встречается и под названием local-as.&lt;br /&gt;
{{note|text=Маршрутизаторы, которые не поддерживают атрибут community, будут передавать его далее, так как это transitive атрибут.}}&lt;br /&gt;
&lt;br /&gt;
 set policy-options policy-statement community ''test-community'' members ''[65510:555 65610:999]''     - [x and y]&lt;br /&gt;
 set policy-options policy-statement ''test'' term ''1'' then community (add|set|delete) ''test-community''&lt;br /&gt;
&lt;br /&gt;
 set policy-options policy-statement community ''all-community'' members '' &amp;quot;*:*&amp;quot; ''&lt;br /&gt;
&lt;br /&gt;
С communities широко используются регулярные выражения.&lt;br /&gt;
&lt;br /&gt;
====Примеры====&lt;br /&gt;
&lt;br /&gt;
100:* - all posible community values with AS 100.&lt;br /&gt;
&lt;br /&gt;
11.1:666 - 1101:666, 1111:666, 1121:666, etc.&lt;br /&gt;
&lt;br /&gt;
 show route community *:20&lt;br /&gt;
 show route community-name&lt;br /&gt;
&lt;br /&gt;
====Список операторов регулярных выражений для Community====&lt;br /&gt;
{{re|title=Список операторов регулярных выражений для Community}}&lt;br /&gt;
&lt;br /&gt;
=== Multi exit discriminator (MED)===&lt;br /&gt;
Атрибут '''MED''':&lt;br /&gt;
* Используется для информирования eBGP-соседей о том, какой путь в автономную систему более предпочтительный. &lt;br /&gt;
* Атрибут передается между автономными системами. &lt;br /&gt;
* Маршрутизаторы внутри соседней автономной системы используют этот атрибут, но, как только обновление выходит за пределы AS, атрибут MED отбрасывается.&lt;br /&gt;
* Чем меньше значение атрибута, тем более предпочтительна точка входа в автономную систему.&lt;br /&gt;
&lt;br /&gt;
=== Weight (проприетарный атрибут Cisco) ===&lt;br /&gt;
Атрибут '''Weight''': &lt;br /&gt;
* Позволяет назначить &amp;quot;вес&amp;quot; различным путям локально на маршрутизаторе. &lt;br /&gt;
* Используется в тех случаях, когда у одного маршрутизатора есть несколько выходов из автономной системы (сам маршрутизатор является точкой выхода). &lt;br /&gt;
* Имеет значение только локально, в пределах маршрутизатора. &lt;br /&gt;
* Не передается в обновлениях.&lt;br /&gt;
* Чем больше значение атрибута, тем более предпочтителен путь выхода.&lt;br /&gt;
&lt;br /&gt;
== Касательно всех атрибутов ==&lt;br /&gt;
Атрибуты, при выборе best, считаются лучшими с наименьшими значением.&lt;br /&gt;
Это правило касается всех атрибутов, кроме Local Preference&lt;br /&gt;
&lt;br /&gt;
== Механизмы управления трафиком ==&lt;br /&gt;
===Входящим===&lt;br /&gt;
*AS path prepend&lt;br /&gt;
*Community (если поддерживает провайдер)&lt;br /&gt;
*MED (подключение к одной и той же AS)&lt;br /&gt;
*Анонс разных префиксов через разных ISP&lt;br /&gt;
&lt;br /&gt;
===Исходящим===&lt;br /&gt;
*Проприетарный атрибут Cisco weight (локально на маршрутизаторе)&lt;br /&gt;
*Атрибут Local Preference (локально в AS)&lt;br /&gt;
*Балансировка трафика {{чо?}}&lt;br /&gt;
&lt;br /&gt;
== Выбор лучшего пути (BGP Active Route Selection) ==&lt;br /&gt;
&lt;br /&gt;
* Juniper&lt;br /&gt;
# Prefer highest local preference value&lt;br /&gt;
# Prefer shortest AS-path length&lt;br /&gt;
# Prefer lowest Origin value&lt;br /&gt;
# Prefer lowest MED value&lt;br /&gt;
# Prefer routes learned from an EBGP peer over an IBGP peer&lt;br /&gt;
# If the remaining routes were learned through IBGP, use the path with the lowest IGP cost to the IBGP peer.&lt;br /&gt;
# For EBGP received routes, prefer the current active route; otherwise, prefer routes from the peer with the lowest RID&lt;br /&gt;
# Prefer paths with the shortest cluster length&lt;br /&gt;
# Prefer routes from the peer with the lowest peer ID&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Multipath ==&lt;br /&gt;
&lt;br /&gt;
===Link Bandwidth Extended Community===&lt;br /&gt;
При включенном multipath можно задать желаемую балансировку между линками через extended community.&lt;br /&gt;
Это механизм описан в draft-ietf-idr-link-bandwidth-06, и не является стандартизированным, следовательно,&lt;br /&gt;
возможно, он не будет работать с некоторыми вендорами. В JunOS поддерживается.&lt;br /&gt;
&lt;br /&gt;
Пример использования:&lt;br /&gt;
&lt;br /&gt;
R1 и R2 соединены напрямую через ва сабинтерфейса, на каждом из которых висит своя /30 сеть&lt;br /&gt;
&lt;br /&gt;
 |     | ge-0/0/0.10 ----- ge-0/0/0.10 R2 |    |&lt;br /&gt;
 |  R1 |                                  | R2 |&lt;br /&gt;
 |     | ge-0/0/0.20 ----- ge-0/0/0.20 R2 |    |&lt;br /&gt;
&lt;br /&gt;
Конфиг R1:&lt;br /&gt;
 R1&amp;gt; show configuration protocols bgp &lt;br /&gt;
 group ebgp {&lt;br /&gt;
     multipath;&lt;br /&gt;
     neighbor 10.1.0.2 {&lt;br /&gt;
         description R2;&lt;br /&gt;
         export from-direct;&lt;br /&gt;
         peer-as 2222;&lt;br /&gt;
     }&lt;br /&gt;
     neighbor 10.2.0.2 {&lt;br /&gt;
         description R2;&lt;br /&gt;
         export from-direct;&lt;br /&gt;
         peer-as 2222;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Конфиг R2:&lt;br /&gt;
 R2&amp;gt; show configuration interfaces lo0   &lt;br /&gt;
 unit 0 {&lt;br /&gt;
     family inet {&lt;br /&gt;
         address 2.2.2.2/32;&lt;br /&gt;
     }&lt;br /&gt;
     family mpls;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; show configuration policy-options &lt;br /&gt;
 policy-statement bw20 {&lt;br /&gt;
     then {&lt;br /&gt;
         community add bw20;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 policy-statement bw80 {&lt;br /&gt;
     then {&lt;br /&gt;
         community add bw80;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 policy-statement from-direct {&lt;br /&gt;
     term redistribute-direct {&lt;br /&gt;
         from protocol direct;&lt;br /&gt;
         then accept;&lt;br /&gt;
     }&lt;br /&gt;
     term default {&lt;br /&gt;
         then reject;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 community bw20 members bandwidth:2222:2500000; // 2500000 байт в секунду — это 20% от 100Мегабит&lt;br /&gt;
 community bw80 members bandwidth:2222:10000000; // 10000000 байт в секунду — это 80% от 100Мегабит&lt;br /&gt;
 &lt;br /&gt;
 R2&amp;gt; show configuration protocols bgp &lt;br /&gt;
 group ebgp {&lt;br /&gt;
     neighbor 10.1.0.1 {&lt;br /&gt;
         description R1;&lt;br /&gt;
         export [ bw20 from-direct ]; // На одно из  соседств навешивается community, отображающее, что линк загружен на 20%&lt;br /&gt;
         peer-as 1111;&lt;br /&gt;
     }&lt;br /&gt;
     neighbor 10.2.0.1 {&lt;br /&gt;
         description R1;&lt;br /&gt;
         export [ bw80 from-direct ];// На второе соседство навешивается community, отображающее, что линк загружен на 80%&lt;br /&gt;
         peer-as 1111;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Что получилось:&lt;br /&gt;
&lt;br /&gt;
 R1&amp;gt; show route 2.2.2.2 extensive        &lt;br /&gt;
 &lt;br /&gt;
 inet.0: 11 destinations, 19 routes (11 active, 0 holddown, 0 hidden)&lt;br /&gt;
 2.2.2.2/32 (2 entries, 1 announced)&lt;br /&gt;
 TSI:&lt;br /&gt;
 KRT in-kernel 2.2.2.2/32 -&amp;gt; {10.2.0.2, 10.1.0.2}&lt;br /&gt;
        *BGP    Preference: 170/-101&lt;br /&gt;
                Next hop type: Router, Next hop index: 262145&lt;br /&gt;
                Address: 0x9404010&lt;br /&gt;
                Next-hop reference count: 8&lt;br /&gt;
                Source: 10.1.0.2&lt;br /&gt;
                '''Next hop: 10.2.0.2 via ge-0/0/0.20 balance 80%'''&lt;br /&gt;
                '''Next hop: 10.1.0.2 via ge-0/0/0.10 balance 20%, selected'''&lt;br /&gt;
                State: &amp;lt;Active Ext&amp;gt;&lt;br /&gt;
                Local AS:  1111 Peer AS:  2222&lt;br /&gt;
                Age: 1:20:49 &lt;br /&gt;
                Task: BGP_2222.10.1.0.2+179&lt;br /&gt;
                Announcement bits (1): 0-KRT &lt;br /&gt;
                AS path: 2222 I&lt;br /&gt;
                '''Communities: bandwidth:2222:2500000'''&lt;br /&gt;
                '''Accepted Multipath'''&lt;br /&gt;
                Localpref: 100&lt;br /&gt;
                Router ID: 2.2.2.2&lt;br /&gt;
&lt;br /&gt;
==Modifying AS Path==&lt;br /&gt;
&lt;br /&gt;
===Option 1: remove-private===&lt;br /&gt;
&lt;br /&gt;
===Option 2: local-as===&lt;br /&gt;
&lt;br /&gt;
 [edit routing-options]&lt;br /&gt;
 R1# show &lt;br /&gt;
 autonomous-system 1111;&lt;br /&gt;
 &lt;br /&gt;
 [edit protocols bgp group ebgp]&lt;br /&gt;
 R1# show &lt;br /&gt;
 neighbor 10.1.0.2 {&lt;br /&gt;
     peer-as 2222;&lt;br /&gt;
     local-as 3333;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
При такой конфигурации R1, EBGP-сосед, который '''ожидает''', что у R1 будет AS3333 сможет установить соседство с R1, хотя, по факту R1 принадлежит AS1111.&lt;br /&gt;
Результат:&lt;br /&gt;
 R1&amp;gt; show bgp neighbor &lt;br /&gt;
 Peer: 10.1.0.2+179 AS 2222     Local: 10.1.0.1+62745 '''AS 3333''' &lt;br /&gt;
   Type: External    State: Established    Flags: &amp;lt;Sync&amp;gt;&lt;br /&gt;
   Last State: OpenConfirm   Last Event: RecvKeepAlive&lt;br /&gt;
   ...&lt;br /&gt;
   Holdtime: 90 Preference: 170 Localpref: 110 '''Local AS: 3333 Local System AS: 1111'''&lt;br /&gt;
   Number of flaps: 0&lt;br /&gt;
   Peer ID: 2.2.2.2         Local ID: 1.1.1.1           Active Holdtime: 90&lt;br /&gt;
   ...&lt;br /&gt;
&lt;br /&gt;
'''Зачем это нужно'''&lt;br /&gt;
&lt;br /&gt;
Предположим, оператор с AS1111 купил сеть оператора с AS3333. У AS3333 были свои клиенты, подключенные по BGP, которые не готовы или не хотят изменять конфигурацию на своих роутерах. В таком случае можно временно применить опцию local-as, чтобы выступить для них от лица предыдущей AS (в примере - 3333), но внутри сети перевести инфораструктуру на AS1111.&lt;br /&gt;
&lt;br /&gt;
Если добавить ключевое слово private:&lt;br /&gt;
 [edit protocols bgp group ebgp]&lt;br /&gt;
 R1# show &lt;br /&gt;
 neighbor 10.1.0.2 {&lt;br /&gt;
     peer-as 2222;&lt;br /&gt;
     local-as 3333 '''private''';&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
То R1 вообще не будет добавлять AS3333 при анонсе маршрутов, получаемых от 10.1.0.2 своим соседям.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Route Reflection==&lt;br /&gt;
Описан в RFC 4456&lt;br /&gt;
&lt;br /&gt;
'''Концепция'''&lt;br /&gt;
*Позволяет iBGP-спикеру анонсировать другим iBGP-маршрутизаторам маршруты, полученные через iBGP&lt;br /&gt;
*RR только пересылает активные маршруты клиентам (это соседи RR, которые не являются RR. Для настройки таких роутеров не требуется изменений в конфигурации соседства.)&lt;br /&gt;
*RR по умолчанию не меняет IBGP атрибуты.&lt;br /&gt;
*Для предотвращения петель существуют два новых атрибута: &lt;br /&gt;
:*'''Cluster List''' (1 или более cluster ID)&lt;br /&gt;
:*'''Originator ID''' - ID роутера, который первым переслал маршрут в AS.&lt;br /&gt;
&lt;br /&gt;
===Cluster List===&lt;br /&gt;
&lt;br /&gt;
Список, включающий ID всех RR, которые обрабатывали данный префикс.&lt;br /&gt;
Если RR получит маршрут, у которого в cluster list будет ID этого RR, то он его дропнет.&lt;br /&gt;
Участвует при выборе активного маршрута (активным становится с наименьшим cluster list).&lt;br /&gt;
Cluster ID добавляется к cluster list, когда маршрут отправляется. Cluster ID должен быть уникальным в рамках AS.&lt;br /&gt;
&lt;br /&gt;
'''Configuration'''&lt;br /&gt;
&lt;br /&gt;
Если на сет несколько RR, то соседство между ними может быть как в отдельной группе от RR-clients (IBGP), так и в той же группе что и клиенты. &lt;br /&gt;
Между RR - full-mesh.&lt;br /&gt;
&lt;br /&gt;
 set protocols bgp group RR type internal&lt;br /&gt;
 set protocols bgp group RR peer-as 65513&lt;br /&gt;
 set protocols bgp group RR neighbor 2.2.2.2&lt;br /&gt;
 set protocols bgp group RR neighbor 3.3.3.3&lt;br /&gt;
&lt;br /&gt;
RR-clients конфигурируются в отдельной группе, где должен быть включен: &amp;quot;cluster x.x.x.x&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 set protocols bgp group RR-clients cluster 1.1.1.1&lt;br /&gt;
&lt;br /&gt;
Со стороны клиентов конфигурация стандартная для IBGP - простое соседство с RR.&lt;br /&gt;
&lt;br /&gt;
'''Распространение маршрутов при использовании RR.'''&lt;br /&gt;
# Клиент -&amp;gt; cluster RR&lt;br /&gt;
# RR -&amp;gt; all clients and non-clients(other RR)&lt;br /&gt;
# Other RR -&amp;gt; all cluster clients.&lt;br /&gt;
При этом:  non-clients -&amp;gt; RR -&amp;gt; clients (only)&lt;br /&gt;
&lt;br /&gt;
При использовании нескольких RR, можно для на всех использовать одинаковый cluster ID.&lt;br /&gt;
+: в таблице будет меньше маршрутов и при такой схеме можно добиться хорошей отказоустойчивости в сети.&lt;br /&gt;
	&lt;br /&gt;
'''2 RR в кластере'''&lt;br /&gt;
&lt;br /&gt;
Соседство между RR можно устанавливать как внутри отдельной группы для кластера, так и в отдельной группе.&lt;br /&gt;
В обоих случаях при передаче маршрутов между RR петель не будет, т.к. cluster ID будет одинаковыми.&lt;br /&gt;
Каждый из RR в кластере устанавливает IBGP с другими RR, не входящих в кластер.&lt;br /&gt;
В подобных схемах все-таки тоже стараются использовать уникальные cluster ID.&lt;br /&gt;
&lt;br /&gt;
===Hierarchical Route Reflection===&lt;br /&gt;
&lt;br /&gt;
Отличие от предыдущих: в схеме появляются не только RR и client, но еще и роутеры, выполняющие обе функции в рамках разных кластеров.&lt;br /&gt;
Clients могут устанавливать IBPG между собой. Это удобно использовать, чтобы clients могли использовать маршруты от других clients нативно, без обработки RR. &lt;br /&gt;
Чтобы RR не флудил копиями маршрутов, на нем можно включить '''no-client-reflect''', это отключит пересылку маршрутов, полученных внутри кластера. Внешние маршруты при этом продолжают пересылаться.&lt;br /&gt;
&lt;br /&gt;
===Modifying Attributes on the RR===&lt;br /&gt;
&lt;br /&gt;
Все атрибуты BGP изменяются через policy.&lt;br /&gt;
Если на RR есть EBGP, то с большой вероятностью будет активна ф-ия: next-hop-self. При этом, у маршрутов, полученных от client, также next-hop будет меняться.&lt;br /&gt;
Что приведет к не оптимальному форвардингу трафика (должен идти напрямую к original роутеру, а будет идти через RR).&lt;br /&gt;
Чтобы менять next-hope только у external: в policy матчим по interface ли neighbor.&lt;br /&gt;
&lt;br /&gt;
 set policy-option policy-statement nhs term EBGP from protocol bgp&lt;br /&gt;
 set policy-option policy-statement nhs term EBGP from neighbor 2.2.2.2&lt;br /&gt;
 set policy-option policy-statement nhs term EBGP the next-hop self&lt;br /&gt;
&lt;br /&gt;
==Confederations==&lt;br /&gt;
 Описан в RFC 3065&lt;br /&gt;
&lt;br /&gt;
'''Принципы'''&lt;br /&gt;
&lt;br /&gt;
Цель: разбить global AS на sub-AS.&lt;br /&gt;
&lt;br /&gt;
Внутри sub-AS между роутерами: full-mesh. Если внутри sub-AS будет слишком большая сеть, то в нее можно внедрить RR.&lt;br /&gt;
&lt;br /&gt;
sub-AS должна иметь уникальный номер (зачастую берут приватные AS).&lt;br /&gt;
&lt;br /&gt;
Между sub-AS - EBGP = confederation BGP = CBGP.&lt;br /&gt;
&lt;br /&gt;
При прохождении маршрута через CBGP линк, роутер меняет AS path, включая sub-AS. Другие атрибуты BGP не меняются.&lt;br /&gt;
&lt;br /&gt;
Также в отличие от стандартного EBGP, в CBGP обычно соседство строится на loopback.&lt;br /&gt;
&lt;br /&gt;
===AS-path segment===&lt;br /&gt;
*AS Confederation Sequence&lt;br /&gt;
При прохождение через CBGP линк, роутер добавляет sub-AS к AS-path в &amp;quot;()&amp;quot; в последовательности, как шел маршрут по сети.&lt;br /&gt;
&lt;br /&gt;
AS Confederation Sequence не используется при выборе активного пути.&lt;br /&gt;
&lt;br /&gt;
Этот атрибут имеет type code 3.&lt;br /&gt;
&lt;br /&gt;
 AS-path: (65000 65001 65002) 100 200&lt;br /&gt;
&lt;br /&gt;
*AS Confederation Set&lt;br /&gt;
При агрегировании маршрутов внутри конфедерации, AS confederation sequence становится AS confederation set.&lt;br /&gt;
&lt;br /&gt;
Этот атрибут имеет type code 4.&lt;br /&gt;
&lt;br /&gt;
 10.10.10.0/24 (65000 65001) 100 &lt;br /&gt;
 10.10.20.0/24 (65000 65002) 100&lt;br /&gt;
 10.10.0.0/16 ({65000 65001 65002}) 100 &lt;br /&gt;
&lt;br /&gt;
Оба атрибута используются только для предотвращения петель внутри конфедерации.&lt;br /&gt;
&lt;br /&gt;
При анонсировании маршрутов из конфедерации дальше по сети по EBGP, private AS (sub-AS) стираются, поэтому все конфедерации извне видны как одна большая глобальная AS.&lt;br /&gt;
При этом не требуется отдельно включать (remove-private). В случае с конфедерациями, все приватные AS итак сотрутся итак.&lt;br /&gt;
&lt;br /&gt;
Но все роутеры внутри конфедерации обязательно должны знать номер глобальной AS.&lt;br /&gt;
&lt;br /&gt;
===Configuration===&lt;br /&gt;
Включение самой конфедерации на роутере - определяется в routing-options:&lt;br /&gt;
&lt;br /&gt;
 set routing-options autonomus-system 65000&lt;br /&gt;
 set routing-options confederation 100 members [65000 65001 65002]&lt;br /&gt;
&lt;br /&gt;
R1&lt;br /&gt;
 внутри конфедерации: &lt;br /&gt;
 set protocols bgp group sub-AS-65001 type internal&lt;br /&gt;
 set protocols bgp group sub-AS-65001 local-address 192.168.1.3&lt;br /&gt;
 set protocols bgp group sub-AS-65001 neighbor 192.168.1.1&lt;br /&gt;
 set protocols bgp group sub-AS-65001 neighbor 192.168.1.2&lt;br /&gt;
 set protocols bgp group sub-AS-65001 neighbor 192.168.1.4&lt;br /&gt;
&lt;br /&gt;
 CBGP-link 1:&lt;br /&gt;
 set protocols bgp group sub-AS-65000 type external&lt;br /&gt;
 set protocols bgp group sub-AS-65000 multihop&lt;br /&gt;
 set protocols bgp group sub-AS-65000 local-address 192.168.1.3&lt;br /&gt;
 set protocols bgp group sub-AS-65000 peer-as 65000&lt;br /&gt;
 set protocols bgp group sub-AS-65000 neighbor 192.168.0.3&lt;br /&gt;
&lt;br /&gt;
CBGP-link 2:&lt;br /&gt;
 set protocols bgp group sub-AS-65002 type external &lt;br /&gt;
 set protocols bgp group sub-AS-65002 multihop&lt;br /&gt;
 set protocols bgp group sub-AS-65002 local-address 192.168.1.3&lt;br /&gt;
 set protocols bgp group sub-AS-65002 peer-as 65002&lt;br /&gt;
 set protocols bgp group sub-AS-65002 neighbor 192.168.2.4&lt;/div&gt;</summary>
		<author><name>Владислав Павкин</name></author>
	</entry>
	<entry>
		<id>https://juniper-exam.ru/index.php?title=%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD:Re&amp;diff=134</id>
		<title>Шаблон:Re</title>
		<link rel="alternate" type="text/html" href="https://juniper-exam.ru/index.php?title=%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD:Re&amp;diff=134"/>
		<updated>2016-10-23T22:41:43Z</updated>

		<summary type="html">&lt;p&gt;Владислав Павкин: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+{{{title}}}&lt;br /&gt;
|-&lt;br /&gt;
|'''{m,n}'''&lt;br /&gt;
|От m до n&lt;br /&gt;
|-&lt;br /&gt;
|'''{m}'''&lt;br /&gt;
| m&lt;br /&gt;
|-&lt;br /&gt;
|'''{m,}'''&lt;br /&gt;
| m или более&lt;br /&gt;
|-&lt;br /&gt;
|'''*'''&lt;br /&gt;
|Все&lt;br /&gt;
|-&lt;br /&gt;
|'''+'''&lt;br /&gt;
|1 или более&lt;br /&gt;
|-&lt;br /&gt;
|'''?'''&lt;br /&gt;
|0 или 1&lt;br /&gt;
|-&lt;br /&gt;
|'''&amp;amp;#124;'''&lt;br /&gt;
|Один из двух&lt;br /&gt;
|-&lt;br /&gt;
|'''^'''&lt;br /&gt;
|Начало community&lt;br /&gt;
|-&lt;br /&gt;
|'''$'''&lt;br /&gt;
|Конец community&lt;br /&gt;
|-&lt;br /&gt;
|'''[]'''&lt;br /&gt;
|Список или массив букв или цифр&lt;br /&gt;
|-&lt;br /&gt;
|'''( )'''&lt;br /&gt;
|Группирует символы&lt;br /&gt;
|-&lt;br /&gt;
|'''()'''&lt;br /&gt;
|Ничего (null)&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Владислав Павкин</name></author>
	</entry>
	<entry>
		<id>https://juniper-exam.ru/index.php?title=%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD:Re&amp;diff=133</id>
		<title>Шаблон:Re</title>
		<link rel="alternate" type="text/html" href="https://juniper-exam.ru/index.php?title=%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD:Re&amp;diff=133"/>
		<updated>2016-10-23T22:41:03Z</updated>

		<summary type="html">&lt;p&gt;Владислав Павкин: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+title&lt;br /&gt;
|-&lt;br /&gt;
|'''{m,n}'''&lt;br /&gt;
|От m до n&lt;br /&gt;
|-&lt;br /&gt;
|'''{m}'''&lt;br /&gt;
| m&lt;br /&gt;
|-&lt;br /&gt;
|'''{m,}'''&lt;br /&gt;
| m или более&lt;br /&gt;
|-&lt;br /&gt;
|'''*'''&lt;br /&gt;
|Все&lt;br /&gt;
|-&lt;br /&gt;
|'''+'''&lt;br /&gt;
|1 или более&lt;br /&gt;
|-&lt;br /&gt;
|'''?'''&lt;br /&gt;
|0 или 1&lt;br /&gt;
|-&lt;br /&gt;
|'''&amp;amp;#124;'''&lt;br /&gt;
|Один из двух&lt;br /&gt;
|-&lt;br /&gt;
|'''^'''&lt;br /&gt;
|Начало community&lt;br /&gt;
|-&lt;br /&gt;
|'''$'''&lt;br /&gt;
|Конец community&lt;br /&gt;
|-&lt;br /&gt;
|'''[]'''&lt;br /&gt;
|Список или массив букв или цифр&lt;br /&gt;
|-&lt;br /&gt;
|'''( )'''&lt;br /&gt;
|Группирует символы&lt;br /&gt;
|-&lt;br /&gt;
|'''()'''&lt;br /&gt;
|Ничего (null)&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Владислав Павкин</name></author>
	</entry>
	<entry>
		<id>https://juniper-exam.ru/index.php?title=BGP&amp;diff=132</id>
		<title>BGP</title>
		<link rel="alternate" type="text/html" href="https://juniper-exam.ru/index.php?title=BGP&amp;diff=132"/>
		<updated>2016-10-23T22:40:30Z</updated>

		<summary type="html">&lt;p&gt;Владислав Павкин: /* Список операторов регулярных выражений для Community */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Состояния соседства ==&lt;br /&gt;
http://habrastorage.org/getpro/habr/post_images/442/780/549/442780549c2f45cdda10773121b2800d.png&lt;br /&gt;
&lt;br /&gt;
== Сообщения ==&lt;br /&gt;
*Open - отправляется только на стадии установления соседства. Содержит параметры BGP соседа.&lt;br /&gt;
*Update - передает routing info между соседями. Атрибуты и список префиксов, подходящий под данные атрибуты.&lt;br /&gt;
*Keepalive - для удостоверения, что с соседством все ок.&lt;br /&gt;
*Notification - в случае если не прошел keepalive или update.&lt;br /&gt;
*Refresh - soft clearing BGP сессии.&lt;br /&gt;
&lt;br /&gt;
== Атрибуты пути (path attributes) ==&lt;br /&gt;
Атрибуты пути разделены на 4 категории:&lt;br /&gt;
# '''Well-known mandatory''' — все маршрутизаторы, работающие по протоколу BGP, должны распознавать эти атрибуты. Должны присутствовать во всех обновлениях (update).&lt;br /&gt;
# '''Well-known discretionary''' — все маршрутизаторы, работающие по протоколу BGP, должны распознавать эти атрибуты. Могут присутствовать в обновлениях (update), но их присутствие не обязательно.&lt;br /&gt;
# '''Optional transitive''' — могут не распознаваться всеми реализациями BGP. Если маршрутизатор не распознал атрибут, он помечает обновление как частичное (partial) и отправляет его дальше соседям, сохраняя не распознанный атрибут.&lt;br /&gt;
# '''Optional non-transitive''' — могут не распознаваться всеми реализациями BGP. Если маршрутизатор не распознал атрибут, то атрибут игнорируется и при передаче соседям отбрасывается.&lt;br /&gt;
&lt;br /&gt;
=== Autonomous system path ===&lt;br /&gt;
 '''✔️Well-known Mandatory'''&lt;br /&gt;
* Описывает через какие автономные системы надо пройти, чтобы дойти до сети назначения. &lt;br /&gt;
* Номер AS добавляется при передаче обновления из одной AS eBGP-соседу в другой AS.&lt;br /&gt;
&lt;br /&gt;
Используется для:&lt;br /&gt;
* обнаружения петель&lt;br /&gt;
* применения политик&lt;br /&gt;
&lt;br /&gt;
Каждый сегмент атрибута AS path представлен в виде поля TLV (path segment type, path segment length, path segment value):&lt;br /&gt;
* '''path segment type''' — поле размером 1 байт для которого определены такие значения:&lt;br /&gt;
** 1 — AS_SET: неупорядоченное множество автономных систем, через которые прошел маршрут в сообщении Update,&lt;br /&gt;
** 2 — AS_SEQUENCE: упорядоченное множество автономных систем, через которые прошел маршрут в сообщении Update&lt;br /&gt;
* '''path segment length''' — поле размером 1 байт. Указывает сколько автономных систем указано в поле path segment value&lt;br /&gt;
* '''path segment value''' — номера автономных систем, каждая представлена полем размером 2 байта.&lt;br /&gt;
&lt;br /&gt;
=== Next-hop ===&lt;br /&gt;
 '''✔️Well-known Mandatory'''&lt;br /&gt;
* IP-адрес следующей AS для достижения сети назначения. &lt;br /&gt;
* Это IP-адрес eBGP-маршрутизатора, через который идет путь к сети назначения.&lt;br /&gt;
* Атрибут меняется при передаче префикса в другую AS (по-умолчанию подставляется ip-адрес bgp-соседа)&lt;br /&gt;
* Атрибут не меняется при передаче префикса в ту же AS&lt;br /&gt;
&lt;br /&gt;
Можно изменить с помощью policy на выходе:&lt;br /&gt;
 [edit policy-options policy-statement nexthop-self]&lt;br /&gt;
 R1# show &lt;br /&gt;
 term localpref {&lt;br /&gt;
     then {&lt;br /&gt;
         next-hop self;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Или же на входе:&lt;br /&gt;
 [edit policy-options policy-statement nexthop-peer]&lt;br /&gt;
 R2# show &lt;br /&gt;
 term localpref {&lt;br /&gt;
     then {&lt;br /&gt;
         next-hop peer-address;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Origin ===&lt;br /&gt;
 '''✔️Well-known Mandatory'''&lt;br /&gt;
Атрибут '''Origin''' — указывает на то, каким образом был получен маршрут в обновлении.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Возможные значения атрибута&lt;br /&gt;
|-&lt;br /&gt;
|'''0'''&lt;br /&gt;
|IGP&lt;br /&gt;
|NLRI получена внутри исходной автономной системы&lt;br /&gt;
|-&lt;br /&gt;
|'''1'''&lt;br /&gt;
| EGP&lt;br /&gt;
| NLRI выучена по протоколу Exterior Gateway Protocol (EGP)&lt;br /&gt;
|-&lt;br /&gt;
|'''2'''&lt;br /&gt;
| Incomplete&lt;br /&gt;
| NLRI была выучена каким-то другим образом&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Local preference ===&lt;br /&gt;
 '''✔️Well-known Discretionary'''&lt;br /&gt;
* Указывает маршрутизаторам внутри автономной системы как выйти за её пределы. &lt;br /&gt;
* Выбирается та точка выхода у которой значение атрибута больше.&lt;br /&gt;
* Этот атрибут передается только в пределах одной автономной системы. &lt;br /&gt;
* На маршрутизаторах Cisco и Juniper по умолчанию значение атрибута — 100.&lt;br /&gt;
* Работает только между IBGP.&lt;br /&gt;
* Если EBGP-сосед получает обновление с выставленным значением local preference, он игнорирует этот атрибут.&lt;br /&gt;
* В Junos lpf можно задать через policy и в protocol bgp. Если задан обоими способами, то будет назначен lpf из policy.&lt;br /&gt;
* Обычно используется на бордерах.&lt;br /&gt;
{{note|text=Когда в сети есть 2 бордера, которые получают один и тот же маршрут извне, и бордеры навешивают одинаковый повышенный lpf через export policy, в таком случае  соседи IBGP получат маршрут с измененным lpf, но трафик не сможет по-правильному пути выйти из AS. Из-за того что бордеры тоже друг от друга будут получать маршрут с повышенным lpf. Решение: правильно менять lpf через import policy. }}&lt;br /&gt;
&lt;br /&gt;
=== Atomic aggregate ===&lt;br /&gt;
 '''✔️Well-known Discretionary'''&lt;br /&gt;
&lt;br /&gt;
=== Aggregator ===&lt;br /&gt;
 '''✔️Optional Transitive'''&lt;br /&gt;
&lt;br /&gt;
=== Communities ===&lt;br /&gt;
 '''✔️Optional Transitive'''&lt;br /&gt;
* Тегирование маршрутов&lt;br /&gt;
* Существуют предопределенные значения (well-known), которые не требуется определять локально на своем оборудовании&lt;br /&gt;
* По умолчанию не пересылаются соседям&lt;br /&gt;
* Одному маршруту может быть присвоено несколько communities&lt;br /&gt;
* Один из вариантов применения: передается соседней AS для управления входящим трафиком&lt;br /&gt;
&lt;br /&gt;
Значения от 0x00000000 до 0x0000FFFF и от 0xFFFF0000 до 0xFFFFFFFF зарезервированы.&lt;br /&gt;
&lt;br /&gt;
Как правило community отображаются в формате ASN:VALUE.&lt;br /&gt;
В таком формате, доступны для использования community от 1:0 до 65534:65535.&lt;br /&gt;
В первой части указывается номер автономной системы, а во второй значение community, которое определяет политику маршрутизации трафика.&lt;br /&gt;
&lt;br /&gt;
Некоторые значения communities предопределены. RFC1997 определяет три значения таких community. Эти значения должны одинаково распознаваться и обрабатываться всеми реализациями BGP, которые распознают атрибут community.&lt;br /&gt;
&lt;br /&gt;
Если маршрутизатор получает маршрут, в котором указано предопределенное значение communities, то он выполняет специфическое, предопределенное действие основанное на значении атрибута.&lt;br /&gt;
&lt;br /&gt;
Предопределенные значения communities (Well-known Communities):&lt;br /&gt;
&lt;br /&gt;
====no-export (0xFFFFFF01)====&lt;br /&gt;
Все маршруты которые передаются с таким значением атрибута community не должны анонсироваться за пределы AS.&lt;br /&gt;
То есть, маршруты не анонсируются EBGP-соседям, но анонсируются внешним соседям в конфедерации.&lt;br /&gt;
&lt;br /&gt;
'''Пример использования'''&lt;br /&gt;
{{note|text=AS1 подключена к AS2 двумя линками (multinoming). AS1 анонсирует '''172.17.0/16''' в AS2. Для оптимальной маршрутизации, AS1 хочет посылать некоторые более специфичные маршруты через один из этих линков, при этом остальному интернету вовсе не обязательно получать эти специфики. Для этой цели AS1 использует community no-export, и посылает '''172.17.0/17''' в один из стыков с AS2, и '''172.17.128/17''' во второй стык. AS2 видит эти маршруты и выбирает их как более специфичные. Кроме того, эти маршруты видят все iBGP-соседи в пределах AS2. Тем не менее, за пределы AS2 в Интернет анонсируется только '''172.17.0/16'''.}}&lt;br /&gt;
&lt;br /&gt;
{{note|text= AS customer имеет 2 ISP (AS1, AS2).  AS1 - основной. Если AS customer хочет получать выход в инет только через AS1, то в сторону AS2 можно просто посылать маршруты с no-export. Но при этом важно, что при падении AS1, AS customer будет доступна только локальным пользователям AS2, но не всему интернету.}}&lt;br /&gt;
====no-advertise (0xFFFFFF02)==== &lt;br /&gt;
Все маршруты которые передаются с таким значением атрибута community не должны анонсироваться другим BGP-соседям.&lt;br /&gt;
&lt;br /&gt;
====no-export-subconfed (0xFFFFFF03)====&lt;br /&gt;
Все маршруты которые передаются с таким значением атрибута community не должны анонсироваться внешним BGP-соседям (ни внешним для конфедерации, ни настоящим внешним соседям). В Cisco это значение встречается и под названием local-as.&lt;br /&gt;
{{note|text=Маршрутизаторы, которые не поддерживают атрибут community, будут передавать его далее, так как это transitive атрибут.}}&lt;br /&gt;
&lt;br /&gt;
 set policy-options policy-statement community ''test-community'' members ''[65510:555 65610:999]''     - [x and y]&lt;br /&gt;
 set policy-options policy-statement ''test'' term ''1'' then community (add|set|delete) ''test-community''&lt;br /&gt;
&lt;br /&gt;
 set policy-options policy-statement community ''all-community'' members '' &amp;quot;*:*&amp;quot; ''&lt;br /&gt;
&lt;br /&gt;
С communities широко используются регулярные выражения.&lt;br /&gt;
&lt;br /&gt;
====Примеры====&lt;br /&gt;
&lt;br /&gt;
100:* - all posible community values with AS 100.&lt;br /&gt;
&lt;br /&gt;
11.1:666 - 1101:666, 1111:666, 1121:666, etc.&lt;br /&gt;
&lt;br /&gt;
 show route community *:20&lt;br /&gt;
 show route community-name&lt;br /&gt;
&lt;br /&gt;
====Список операторов регулярных выражений для Community====&lt;br /&gt;
{{re|title=Список операторов регулярных выражений для Community}}&lt;br /&gt;
&lt;br /&gt;
=== Multi exit discriminator (MED)===&lt;br /&gt;
Атрибут '''MED''':&lt;br /&gt;
* Используется для информирования eBGP-соседей о том, какой путь в автономную систему более предпочтительный. &lt;br /&gt;
* Атрибут передается между автономными системами. &lt;br /&gt;
* Маршрутизаторы внутри соседней автономной системы используют этот атрибут, но, как только обновление выходит за пределы AS, атрибут MED отбрасывается.&lt;br /&gt;
* Чем меньше значение атрибута, тем более предпочтительна точка входа в автономную систему.&lt;br /&gt;
&lt;br /&gt;
=== Weight (проприетарный атрибут Cisco) ===&lt;br /&gt;
Атрибут '''Weight''': &lt;br /&gt;
* Позволяет назначить &amp;quot;вес&amp;quot; различным путям локально на маршрутизаторе. &lt;br /&gt;
* Используется в тех случаях, когда у одного маршрутизатора есть несколько выходов из автономной системы (сам маршрутизатор является точкой выхода). &lt;br /&gt;
* Имеет значение только локально, в пределах маршрутизатора. &lt;br /&gt;
* Не передается в обновлениях.&lt;br /&gt;
* Чем больше значение атрибута, тем более предпочтителен путь выхода.&lt;br /&gt;
&lt;br /&gt;
== Касательно всех атрибутов ==&lt;br /&gt;
Атрибуты, при выборе best, считаются лучшими с наименьшими значением.&lt;br /&gt;
Это правило касается всех атрибутов, кроме Local Preference&lt;br /&gt;
&lt;br /&gt;
== Механизмы управления трафиком ==&lt;br /&gt;
===Входящим===&lt;br /&gt;
*AS path prepend&lt;br /&gt;
*Community (если поддерживает провайдер)&lt;br /&gt;
*MED (подключение к одной и той же AS)&lt;br /&gt;
*Анонс разных префиксов через разных ISP&lt;br /&gt;
&lt;br /&gt;
===Исходящим===&lt;br /&gt;
*Проприетарный атрибут Cisco weight (локально на маршрутизаторе)&lt;br /&gt;
*Атрибут Local Preference (локально в AS)&lt;br /&gt;
*Балансировка трафика {{чо?}}&lt;br /&gt;
&lt;br /&gt;
== Выбор лучшего пути (BGP Active Route Selection) ==&lt;br /&gt;
&lt;br /&gt;
* Juniper&lt;br /&gt;
# Prefer highest local preference value&lt;br /&gt;
# Prefer shortest AS-path length&lt;br /&gt;
# Prefer lowest Origin value&lt;br /&gt;
# Prefer lowest MED value&lt;br /&gt;
# Prefer routes learned from an EBGP peer over an IBGP peer&lt;br /&gt;
# If the remaining routes were learned through IBGP, use the path with the lowest IGP cost to the IBGP peer.&lt;br /&gt;
# For EBGP received routes, prefer the current active route; otherwise, prefer routes from the peer with the lowest RID&lt;br /&gt;
# Prefer paths with the shortest cluster length&lt;br /&gt;
# Prefer routes from the peer with the lowest peer ID&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Multipath ==&lt;br /&gt;
&lt;br /&gt;
===Link Bandwidth Extended Community===&lt;br /&gt;
При включенном multipath можно задать желаемую балансировку между линками через extended community.&lt;br /&gt;
Это механизм описан в draft-ietf-idr-link-bandwidth-06, и не является стандартизированным, следовательно,&lt;br /&gt;
возможно, он не будет работать с некоторыми вендорами. В JunOS поддерживается.&lt;br /&gt;
&lt;br /&gt;
Пример использования:&lt;br /&gt;
&lt;br /&gt;
R1 и R2 соединены напрямую через ва сабинтерфейса, на каждом из которых висит своя /30 сеть&lt;br /&gt;
&lt;br /&gt;
 |     | ge-0/0/0.10 ----- ge-0/0/0.10 R2 |    |&lt;br /&gt;
 |  R1 |                                  | R2 |&lt;br /&gt;
 |     | ge-0/0/0.20 ----- ge-0/0/0.20 R2 |    |&lt;br /&gt;
&lt;br /&gt;
Конфиг R1:&lt;br /&gt;
 R1&amp;gt; show configuration protocols bgp &lt;br /&gt;
 group ebgp {&lt;br /&gt;
     multipath;&lt;br /&gt;
     neighbor 10.1.0.2 {&lt;br /&gt;
         description R2;&lt;br /&gt;
         export from-direct;&lt;br /&gt;
         peer-as 2222;&lt;br /&gt;
     }&lt;br /&gt;
     neighbor 10.2.0.2 {&lt;br /&gt;
         description R2;&lt;br /&gt;
         export from-direct;&lt;br /&gt;
         peer-as 2222;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Конфиг R2:&lt;br /&gt;
 R2&amp;gt; show configuration interfaces lo0   &lt;br /&gt;
 unit 0 {&lt;br /&gt;
     family inet {&lt;br /&gt;
         address 2.2.2.2/32;&lt;br /&gt;
     }&lt;br /&gt;
     family mpls;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; show configuration policy-options &lt;br /&gt;
 policy-statement bw20 {&lt;br /&gt;
     then {&lt;br /&gt;
         community add bw20;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 policy-statement bw80 {&lt;br /&gt;
     then {&lt;br /&gt;
         community add bw80;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 policy-statement from-direct {&lt;br /&gt;
     term redistribute-direct {&lt;br /&gt;
         from protocol direct;&lt;br /&gt;
         then accept;&lt;br /&gt;
     }&lt;br /&gt;
     term default {&lt;br /&gt;
         then reject;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 community bw20 members bandwidth:2222:2500000; // 2500000 байт в секунду — это 20% от 100Мегабит&lt;br /&gt;
 community bw80 members bandwidth:2222:10000000; // 10000000 байт в секунду — это 80% от 100Мегабит&lt;br /&gt;
 &lt;br /&gt;
 R2&amp;gt; show configuration protocols bgp &lt;br /&gt;
 group ebgp {&lt;br /&gt;
     neighbor 10.1.0.1 {&lt;br /&gt;
         description R1;&lt;br /&gt;
         export [ bw20 from-direct ]; // На одно из  соседств навешивается community, отображающее, что линк загружен на 20%&lt;br /&gt;
         peer-as 1111;&lt;br /&gt;
     }&lt;br /&gt;
     neighbor 10.2.0.1 {&lt;br /&gt;
         description R1;&lt;br /&gt;
         export [ bw80 from-direct ];// На второе соседство навешивается community, отображающее, что линк загружен на 80%&lt;br /&gt;
         peer-as 1111;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Что получилось:&lt;br /&gt;
&lt;br /&gt;
 R1&amp;gt; show route 2.2.2.2 extensive        &lt;br /&gt;
 &lt;br /&gt;
 inet.0: 11 destinations, 19 routes (11 active, 0 holddown, 0 hidden)&lt;br /&gt;
 2.2.2.2/32 (2 entries, 1 announced)&lt;br /&gt;
 TSI:&lt;br /&gt;
 KRT in-kernel 2.2.2.2/32 -&amp;gt; {10.2.0.2, 10.1.0.2}&lt;br /&gt;
        *BGP    Preference: 170/-101&lt;br /&gt;
                Next hop type: Router, Next hop index: 262145&lt;br /&gt;
                Address: 0x9404010&lt;br /&gt;
                Next-hop reference count: 8&lt;br /&gt;
                Source: 10.1.0.2&lt;br /&gt;
                '''Next hop: 10.2.0.2 via ge-0/0/0.20 balance 80%'''&lt;br /&gt;
                '''Next hop: 10.1.0.2 via ge-0/0/0.10 balance 20%, selected'''&lt;br /&gt;
                State: &amp;lt;Active Ext&amp;gt;&lt;br /&gt;
                Local AS:  1111 Peer AS:  2222&lt;br /&gt;
                Age: 1:20:49 &lt;br /&gt;
                Task: BGP_2222.10.1.0.2+179&lt;br /&gt;
                Announcement bits (1): 0-KRT &lt;br /&gt;
                AS path: 2222 I&lt;br /&gt;
                '''Communities: bandwidth:2222:2500000'''&lt;br /&gt;
                '''Accepted Multipath'''&lt;br /&gt;
                Localpref: 100&lt;br /&gt;
                Router ID: 2.2.2.2&lt;br /&gt;
&lt;br /&gt;
==Modifying AS Path==&lt;br /&gt;
&lt;br /&gt;
===Option 1: remove-private===&lt;br /&gt;
&lt;br /&gt;
===Option 2: local-as===&lt;br /&gt;
&lt;br /&gt;
 [edit routing-options]&lt;br /&gt;
 R1# show &lt;br /&gt;
 autonomous-system 1111;&lt;br /&gt;
 &lt;br /&gt;
 [edit protocols bgp group ebgp]&lt;br /&gt;
 R1# show &lt;br /&gt;
 neighbor 10.1.0.2 {&lt;br /&gt;
     peer-as 2222;&lt;br /&gt;
     local-as 3333;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
При такой конфигурации R1, EBGP-сосед, который '''ожидает''', что у R1 будет AS3333 сможет установить соседство с R1, хотя, по факту R1 принадлежит AS1111.&lt;br /&gt;
Результат:&lt;br /&gt;
 R1&amp;gt; show bgp neighbor &lt;br /&gt;
 Peer: 10.1.0.2+179 AS 2222     Local: 10.1.0.1+62745 '''AS 3333''' &lt;br /&gt;
   Type: External    State: Established    Flags: &amp;lt;Sync&amp;gt;&lt;br /&gt;
   Last State: OpenConfirm   Last Event: RecvKeepAlive&lt;br /&gt;
   ...&lt;br /&gt;
   Holdtime: 90 Preference: 170 Localpref: 110 '''Local AS: 3333 Local System AS: 1111'''&lt;br /&gt;
   Number of flaps: 0&lt;br /&gt;
   Peer ID: 2.2.2.2         Local ID: 1.1.1.1           Active Holdtime: 90&lt;br /&gt;
   ...&lt;br /&gt;
&lt;br /&gt;
'''Зачем это нужно'''&lt;br /&gt;
&lt;br /&gt;
Предположим, оператор с AS1111 купил сеть оператора с AS3333. У AS3333 были свои клиенты, подключенные по BGP, которые не готовы или не хотят изменять конфигурацию на своих роутерах. В таком случае можно временно применить опцию local-as, чтобы выступить для них от лица предыдущей AS (в примере - 3333), но внутри сети перевести инфораструктуру на AS1111.&lt;br /&gt;
&lt;br /&gt;
Если добавить ключевое слово private:&lt;br /&gt;
 [edit protocols bgp group ebgp]&lt;br /&gt;
 R1# show &lt;br /&gt;
 neighbor 10.1.0.2 {&lt;br /&gt;
     peer-as 2222;&lt;br /&gt;
     local-as 3333 '''private''';&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
То R1 вообще не будет добавлять AS3333 при анонсе маршрутов, получаемых от 10.1.0.2 своим соседям.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Route Reflection==&lt;br /&gt;
Описан в RFC 4456&lt;br /&gt;
&lt;br /&gt;
'''Концепция'''&lt;br /&gt;
*Позволяет iBGP-спикеру анонсировать другим iBGP-маршрутизаторам маршруты, полученные через iBGP&lt;br /&gt;
*RR только пересылает активные маршруты клиентам (это соседи RR, которые не являются RR. Для настройки таких роутеров не требуется изменений в конфигурации соседства.)&lt;br /&gt;
*RR по умолчанию не меняет IBGP атрибуты.&lt;br /&gt;
*Для предотвращения петель существуют два новых атрибута: &lt;br /&gt;
:*'''Cluster List''' (1 или более cluster ID)&lt;br /&gt;
:*'''Originator ID''' - ID роутера, который первым переслал маршрут в AS.&lt;br /&gt;
&lt;br /&gt;
===Cluster List===&lt;br /&gt;
&lt;br /&gt;
Список, включающий ID всех RR, которые обрабатывали данный префикс.&lt;br /&gt;
Если RR получит маршрут, у которого в cluster list будет ID этого RR, то он его дропнет.&lt;br /&gt;
Участвует при выборе активного маршрута (активным становится с наименьшим cluster list).&lt;br /&gt;
Cluster ID добавляется к cluster list, когда маршрут отправляется. Cluster ID должен быть уникальным в рамках AS.&lt;br /&gt;
&lt;br /&gt;
'''Configuration'''&lt;br /&gt;
&lt;br /&gt;
Если на сет несколько RR, то соседство между ними может быть как в отдельной группе от RR-clients (IBGP), так и в той же группе что и клиенты. &lt;br /&gt;
Между RR - full-mesh.&lt;br /&gt;
&lt;br /&gt;
 set protocols bgp group RR type internal&lt;br /&gt;
 set protocols bgp group RR peer-as 65513&lt;br /&gt;
 set protocols bgp group RR neighbor 2.2.2.2&lt;br /&gt;
 set protocols bgp group RR neighbor 3.3.3.3&lt;br /&gt;
&lt;br /&gt;
RR-clients конфигурируются в отдельной группе, где должен быть включен: &amp;quot;cluster x.x.x.x&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 set protocols bgp group RR-clients cluster 1.1.1.1&lt;br /&gt;
&lt;br /&gt;
Со стороны клиентов конфигурация стандартная для IBGP - простое соседство с RR.&lt;br /&gt;
&lt;br /&gt;
'''Распространение маршрутов при использовании RR.'''&lt;br /&gt;
# Клиент -&amp;gt; cluster RR&lt;br /&gt;
# RR -&amp;gt; all clients and non-clients(other RR)&lt;br /&gt;
# Other RR -&amp;gt; all cluster clients.&lt;br /&gt;
При этом:  non-clients -&amp;gt; RR -&amp;gt; clients (only)&lt;br /&gt;
&lt;br /&gt;
При использовании нескольких RR, можно для на всех использовать одинаковый cluster ID.&lt;br /&gt;
+: в таблице будет меньше маршрутов и при такой схеме можно добиться хорошей отказоустойчивости в сети.&lt;br /&gt;
	&lt;br /&gt;
'''2 RR в кластере'''&lt;br /&gt;
&lt;br /&gt;
Соседство между RR можно устанавливать как внутри отдельной группы для кластера, так и в отдельной группе.&lt;br /&gt;
В обоих случаях при передаче маршрутов между RR петель не будет, т.к. cluster ID будет одинаковыми.&lt;br /&gt;
Каждый из RR в кластере устанавливает IBGP с другими RR, не входящих в кластер.&lt;br /&gt;
В подобных схемах все-таки тоже стараются использовать уникальные cluster ID.&lt;br /&gt;
&lt;br /&gt;
===Hierarchical Route Reflection===&lt;br /&gt;
&lt;br /&gt;
Отличие от предыдущих: в схеме появляются не только RR и client, но еще и роутеры, выполняющие обе функции в рамках разных кластеров.&lt;br /&gt;
Clients могут устанавливать IBPG между собой. Это удобно использовать, чтобы clients могли использовать маршруты от других clients нативно, без обработки RR. &lt;br /&gt;
Чтобы RR не флудил копиями маршрутов, на нем можно включить '''no-client-reflect''', это отключит пересылку маршрутов, полученных внутри кластера. Внешние маршруты при этом продолжают пересылаться.&lt;br /&gt;
&lt;br /&gt;
===Modifying Attributes on the RR===&lt;br /&gt;
&lt;br /&gt;
Все атрибуты BGP изменяются через policy.&lt;br /&gt;
Если на RR есть EBGP, то с большой вероятностью будет активна ф-ия: next-hop-self. При этом, у маршрутов, полученных от client, также next-hop будет меняться.&lt;br /&gt;
Что приведет к не оптимальному форвардингу трафика (должен идти напрямую к original роутеру, а будет идти через RR).&lt;br /&gt;
Чтобы менять next-hope только у external: в policy матчим по interface ли neighbor.&lt;br /&gt;
&lt;br /&gt;
 set policy-option policy-statement nhs term EBGP from protocol bgp&lt;br /&gt;
 set policy-option policy-statement nhs term EBGP from neighbor 2.2.2.2&lt;br /&gt;
 set policy-option policy-statement nhs term EBGP the next-hop self&lt;br /&gt;
&lt;br /&gt;
==Confederations==&lt;br /&gt;
 Описан в RFC 3065&lt;br /&gt;
&lt;br /&gt;
'''Принципы'''&lt;br /&gt;
&lt;br /&gt;
Цель: разбить global AS на sub-AS.&lt;br /&gt;
&lt;br /&gt;
Внутри sub-AS между роутерами: full-mesh. Если внутри sub-AS будет слишком большая сеть, то в нее можно внедрить RR.&lt;br /&gt;
&lt;br /&gt;
sub-AS должна иметь уникальный номер (зачастую берут приватные AS).&lt;br /&gt;
&lt;br /&gt;
Между sub-AS - EBGP = confederation BGP = CBGP.&lt;br /&gt;
&lt;br /&gt;
При прохождении маршрута через CBGP линк, роутер меняет AS path, включая sub-AS. Другие атрибуты BGP не меняются.&lt;br /&gt;
&lt;br /&gt;
Также в отличие от стандартного EBGP, в CBGP обычно соседство строится на loopback.&lt;br /&gt;
&lt;br /&gt;
===AS-path segment===&lt;br /&gt;
*AS Confederation Sequence&lt;br /&gt;
При прохождение через CBGP линк, роутер добавляет sub-AS к AS-path в &amp;quot;()&amp;quot; в последовательности, как шел маршрут по сети.&lt;br /&gt;
&lt;br /&gt;
AS Confederation Sequence не используется при выборе активного пути.&lt;br /&gt;
&lt;br /&gt;
Этот атрибут имеет type code 3.&lt;br /&gt;
&lt;br /&gt;
 AS-path: (65000 65001 65002) 100 200&lt;br /&gt;
&lt;br /&gt;
*AS Confederation Set&lt;br /&gt;
При агрегировании маршрутов внутри конфедерации, AS confederation sequence становится AS confederation set.&lt;br /&gt;
&lt;br /&gt;
Этот атрибут имеет type code 4.&lt;br /&gt;
&lt;br /&gt;
 10.10.10.0/24 (65000 65001) 100 &lt;br /&gt;
 10.10.20.0/24 (65000 65002) 100&lt;br /&gt;
 10.10.0.0/16 ({65000 65001 65002}) 100 &lt;br /&gt;
&lt;br /&gt;
Оба атрибута используются только для предотвращения петель внутри конфедерации.&lt;br /&gt;
&lt;br /&gt;
При анонсировании маршрутов из конфедерации дальше по сети по EBGP, private AS (sub-AS) стираются, поэтому все конфедерации извне видны как одна большая глобальная AS.&lt;br /&gt;
При этом не требуется отдельно включать (remove-private). В случае с конфедерациями, все приватные AS итак сотрутся итак.&lt;br /&gt;
&lt;br /&gt;
Но все роутеры внутри конфедерации обязательно должны знать номер глобальной AS.&lt;br /&gt;
&lt;br /&gt;
===Configuration===&lt;br /&gt;
Включение самой конфедерации на роутере - определяется в routing-options:&lt;br /&gt;
&lt;br /&gt;
 set routing-options autonomus-system 65000&lt;br /&gt;
 set routing-options confederation 100 members [65000 65001 65002]&lt;br /&gt;
&lt;br /&gt;
R1&lt;br /&gt;
 внутри конфедерации: &lt;br /&gt;
 set protocols bgp group sub-AS-65001 type internal&lt;br /&gt;
 set protocols bgp group sub-AS-65001 local-address 192.168.1.3&lt;br /&gt;
 set protocols bgp group sub-AS-65001 neighbor 192.168.1.1&lt;br /&gt;
 set protocols bgp group sub-AS-65001 neighbor 192.168.1.2&lt;br /&gt;
 set protocols bgp group sub-AS-65001 neighbor 192.168.1.4&lt;br /&gt;
&lt;br /&gt;
 CBGP-link 1:&lt;br /&gt;
 set protocols bgp group sub-AS-65000 type external&lt;br /&gt;
 set protocols bgp group sub-AS-65000 multihop&lt;br /&gt;
 set protocols bgp group sub-AS-65000 local-address 192.168.1.3&lt;br /&gt;
 set protocols bgp group sub-AS-65000 peer-as 65000&lt;br /&gt;
 set protocols bgp group sub-AS-65000 neighbor 192.168.0.3&lt;br /&gt;
&lt;br /&gt;
CBGP-link 2:&lt;br /&gt;
 set protocols bgp group sub-AS-65002 type external &lt;br /&gt;
 set protocols bgp group sub-AS-65002 multihop&lt;br /&gt;
 set protocols bgp group sub-AS-65002 local-address 192.168.1.3&lt;br /&gt;
 set protocols bgp group sub-AS-65002 peer-as 65002&lt;br /&gt;
 set protocols bgp group sub-AS-65002 neighbor 192.168.2.4&lt;/div&gt;</summary>
		<author><name>Владислав Павкин</name></author>
	</entry>
	<entry>
		<id>https://juniper-exam.ru/index.php?title=%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD:Re&amp;diff=131</id>
		<title>Шаблон:Re</title>
		<link rel="alternate" type="text/html" href="https://juniper-exam.ru/index.php?title=%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD:Re&amp;diff=131"/>
		<updated>2016-10-23T22:39:53Z</updated>

		<summary type="html">&lt;p&gt;Владислав Павкин: Новая страница: «{| class=&amp;quot;wikitable&amp;quot; |+Операторы регулярных выражений |- |'''{m,n}''' |От m до n |- |'''{m}''' | m |- |'''{m,}''' | m или бо…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Операторы регулярных выражений&lt;br /&gt;
|-&lt;br /&gt;
|'''{m,n}'''&lt;br /&gt;
|От m до n&lt;br /&gt;
|-&lt;br /&gt;
|'''{m}'''&lt;br /&gt;
| m&lt;br /&gt;
|-&lt;br /&gt;
|'''{m,}'''&lt;br /&gt;
| m или более&lt;br /&gt;
|-&lt;br /&gt;
|'''*'''&lt;br /&gt;
|Все&lt;br /&gt;
|-&lt;br /&gt;
|'''+'''&lt;br /&gt;
|1 или более&lt;br /&gt;
|-&lt;br /&gt;
|'''?'''&lt;br /&gt;
|0 или 1&lt;br /&gt;
|-&lt;br /&gt;
|'''&amp;amp;#124;'''&lt;br /&gt;
|Один из двух&lt;br /&gt;
|-&lt;br /&gt;
|'''^'''&lt;br /&gt;
|Начало community&lt;br /&gt;
|-&lt;br /&gt;
|'''$'''&lt;br /&gt;
|Конец community&lt;br /&gt;
|-&lt;br /&gt;
|'''[]'''&lt;br /&gt;
|Список или массив букв или цифр&lt;br /&gt;
|-&lt;br /&gt;
|'''( )'''&lt;br /&gt;
|Группирует символы&lt;br /&gt;
|-&lt;br /&gt;
|'''()'''&lt;br /&gt;
|Ничего (null)&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Владислав Павкин</name></author>
	</entry>
	<entry>
		<id>https://juniper-exam.ru/index.php?title=BGP&amp;diff=130</id>
		<title>BGP</title>
		<link rel="alternate" type="text/html" href="https://juniper-exam.ru/index.php?title=BGP&amp;diff=130"/>
		<updated>2016-10-23T22:39:46Z</updated>

		<summary type="html">&lt;p&gt;Владислав Павкин: /* no-export-subconfed (0xFFFFFF03) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Состояния соседства ==&lt;br /&gt;
http://habrastorage.org/getpro/habr/post_images/442/780/549/442780549c2f45cdda10773121b2800d.png&lt;br /&gt;
&lt;br /&gt;
== Сообщения ==&lt;br /&gt;
*Open - отправляется только на стадии установления соседства. Содержит параметры BGP соседа.&lt;br /&gt;
*Update - передает routing info между соседями. Атрибуты и список префиксов, подходящий под данные атрибуты.&lt;br /&gt;
*Keepalive - для удостоверения, что с соседством все ок.&lt;br /&gt;
*Notification - в случае если не прошел keepalive или update.&lt;br /&gt;
*Refresh - soft clearing BGP сессии.&lt;br /&gt;
&lt;br /&gt;
== Атрибуты пути (path attributes) ==&lt;br /&gt;
Атрибуты пути разделены на 4 категории:&lt;br /&gt;
# '''Well-known mandatory''' — все маршрутизаторы, работающие по протоколу BGP, должны распознавать эти атрибуты. Должны присутствовать во всех обновлениях (update).&lt;br /&gt;
# '''Well-known discretionary''' — все маршрутизаторы, работающие по протоколу BGP, должны распознавать эти атрибуты. Могут присутствовать в обновлениях (update), но их присутствие не обязательно.&lt;br /&gt;
# '''Optional transitive''' — могут не распознаваться всеми реализациями BGP. Если маршрутизатор не распознал атрибут, он помечает обновление как частичное (partial) и отправляет его дальше соседям, сохраняя не распознанный атрибут.&lt;br /&gt;
# '''Optional non-transitive''' — могут не распознаваться всеми реализациями BGP. Если маршрутизатор не распознал атрибут, то атрибут игнорируется и при передаче соседям отбрасывается.&lt;br /&gt;
&lt;br /&gt;
=== Autonomous system path ===&lt;br /&gt;
 '''✔️Well-known Mandatory'''&lt;br /&gt;
* Описывает через какие автономные системы надо пройти, чтобы дойти до сети назначения. &lt;br /&gt;
* Номер AS добавляется при передаче обновления из одной AS eBGP-соседу в другой AS.&lt;br /&gt;
&lt;br /&gt;
Используется для:&lt;br /&gt;
* обнаружения петель&lt;br /&gt;
* применения политик&lt;br /&gt;
&lt;br /&gt;
Каждый сегмент атрибута AS path представлен в виде поля TLV (path segment type, path segment length, path segment value):&lt;br /&gt;
* '''path segment type''' — поле размером 1 байт для которого определены такие значения:&lt;br /&gt;
** 1 — AS_SET: неупорядоченное множество автономных систем, через которые прошел маршрут в сообщении Update,&lt;br /&gt;
** 2 — AS_SEQUENCE: упорядоченное множество автономных систем, через которые прошел маршрут в сообщении Update&lt;br /&gt;
* '''path segment length''' — поле размером 1 байт. Указывает сколько автономных систем указано в поле path segment value&lt;br /&gt;
* '''path segment value''' — номера автономных систем, каждая представлена полем размером 2 байта.&lt;br /&gt;
&lt;br /&gt;
=== Next-hop ===&lt;br /&gt;
 '''✔️Well-known Mandatory'''&lt;br /&gt;
* IP-адрес следующей AS для достижения сети назначения. &lt;br /&gt;
* Это IP-адрес eBGP-маршрутизатора, через который идет путь к сети назначения.&lt;br /&gt;
* Атрибут меняется при передаче префикса в другую AS (по-умолчанию подставляется ip-адрес bgp-соседа)&lt;br /&gt;
* Атрибут не меняется при передаче префикса в ту же AS&lt;br /&gt;
&lt;br /&gt;
Можно изменить с помощью policy на выходе:&lt;br /&gt;
 [edit policy-options policy-statement nexthop-self]&lt;br /&gt;
 R1# show &lt;br /&gt;
 term localpref {&lt;br /&gt;
     then {&lt;br /&gt;
         next-hop self;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Или же на входе:&lt;br /&gt;
 [edit policy-options policy-statement nexthop-peer]&lt;br /&gt;
 R2# show &lt;br /&gt;
 term localpref {&lt;br /&gt;
     then {&lt;br /&gt;
         next-hop peer-address;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Origin ===&lt;br /&gt;
 '''✔️Well-known Mandatory'''&lt;br /&gt;
Атрибут '''Origin''' — указывает на то, каким образом был получен маршрут в обновлении.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Возможные значения атрибута&lt;br /&gt;
|-&lt;br /&gt;
|'''0'''&lt;br /&gt;
|IGP&lt;br /&gt;
|NLRI получена внутри исходной автономной системы&lt;br /&gt;
|-&lt;br /&gt;
|'''1'''&lt;br /&gt;
| EGP&lt;br /&gt;
| NLRI выучена по протоколу Exterior Gateway Protocol (EGP)&lt;br /&gt;
|-&lt;br /&gt;
|'''2'''&lt;br /&gt;
| Incomplete&lt;br /&gt;
| NLRI была выучена каким-то другим образом&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Local preference ===&lt;br /&gt;
 '''✔️Well-known Discretionary'''&lt;br /&gt;
* Указывает маршрутизаторам внутри автономной системы как выйти за её пределы. &lt;br /&gt;
* Выбирается та точка выхода у которой значение атрибута больше.&lt;br /&gt;
* Этот атрибут передается только в пределах одной автономной системы. &lt;br /&gt;
* На маршрутизаторах Cisco и Juniper по умолчанию значение атрибута — 100.&lt;br /&gt;
* Работает только между IBGP.&lt;br /&gt;
* Если EBGP-сосед получает обновление с выставленным значением local preference, он игнорирует этот атрибут.&lt;br /&gt;
* В Junos lpf можно задать через policy и в protocol bgp. Если задан обоими способами, то будет назначен lpf из policy.&lt;br /&gt;
* Обычно используется на бордерах.&lt;br /&gt;
{{note|text=Когда в сети есть 2 бордера, которые получают один и тот же маршрут извне, и бордеры навешивают одинаковый повышенный lpf через export policy, в таком случае  соседи IBGP получат маршрут с измененным lpf, но трафик не сможет по-правильному пути выйти из AS. Из-за того что бордеры тоже друг от друга будут получать маршрут с повышенным lpf. Решение: правильно менять lpf через import policy. }}&lt;br /&gt;
&lt;br /&gt;
=== Atomic aggregate ===&lt;br /&gt;
 '''✔️Well-known Discretionary'''&lt;br /&gt;
&lt;br /&gt;
=== Aggregator ===&lt;br /&gt;
 '''✔️Optional Transitive'''&lt;br /&gt;
&lt;br /&gt;
=== Communities ===&lt;br /&gt;
 '''✔️Optional Transitive'''&lt;br /&gt;
* Тегирование маршрутов&lt;br /&gt;
* Существуют предопределенные значения (well-known), которые не требуется определять локально на своем оборудовании&lt;br /&gt;
* По умолчанию не пересылаются соседям&lt;br /&gt;
* Одному маршруту может быть присвоено несколько communities&lt;br /&gt;
* Один из вариантов применения: передается соседней AS для управления входящим трафиком&lt;br /&gt;
&lt;br /&gt;
Значения от 0x00000000 до 0x0000FFFF и от 0xFFFF0000 до 0xFFFFFFFF зарезервированы.&lt;br /&gt;
&lt;br /&gt;
Как правило community отображаются в формате ASN:VALUE.&lt;br /&gt;
В таком формате, доступны для использования community от 1:0 до 65534:65535.&lt;br /&gt;
В первой части указывается номер автономной системы, а во второй значение community, которое определяет политику маршрутизации трафика.&lt;br /&gt;
&lt;br /&gt;
Некоторые значения communities предопределены. RFC1997 определяет три значения таких community. Эти значения должны одинаково распознаваться и обрабатываться всеми реализациями BGP, которые распознают атрибут community.&lt;br /&gt;
&lt;br /&gt;
Если маршрутизатор получает маршрут, в котором указано предопределенное значение communities, то он выполняет специфическое, предопределенное действие основанное на значении атрибута.&lt;br /&gt;
&lt;br /&gt;
Предопределенные значения communities (Well-known Communities):&lt;br /&gt;
&lt;br /&gt;
====no-export (0xFFFFFF01)====&lt;br /&gt;
Все маршруты которые передаются с таким значением атрибута community не должны анонсироваться за пределы AS.&lt;br /&gt;
То есть, маршруты не анонсируются EBGP-соседям, но анонсируются внешним соседям в конфедерации.&lt;br /&gt;
&lt;br /&gt;
'''Пример использования'''&lt;br /&gt;
{{note|text=AS1 подключена к AS2 двумя линками (multinoming). AS1 анонсирует '''172.17.0/16''' в AS2. Для оптимальной маршрутизации, AS1 хочет посылать некоторые более специфичные маршруты через один из этих линков, при этом остальному интернету вовсе не обязательно получать эти специфики. Для этой цели AS1 использует community no-export, и посылает '''172.17.0/17''' в один из стыков с AS2, и '''172.17.128/17''' во второй стык. AS2 видит эти маршруты и выбирает их как более специфичные. Кроме того, эти маршруты видят все iBGP-соседи в пределах AS2. Тем не менее, за пределы AS2 в Интернет анонсируется только '''172.17.0/16'''.}}&lt;br /&gt;
&lt;br /&gt;
{{note|text= AS customer имеет 2 ISP (AS1, AS2).  AS1 - основной. Если AS customer хочет получать выход в инет только через AS1, то в сторону AS2 можно просто посылать маршруты с no-export. Но при этом важно, что при падении AS1, AS customer будет доступна только локальным пользователям AS2, но не всему интернету.}}&lt;br /&gt;
====no-advertise (0xFFFFFF02)==== &lt;br /&gt;
Все маршруты которые передаются с таким значением атрибута community не должны анонсироваться другим BGP-соседям.&lt;br /&gt;
&lt;br /&gt;
====no-export-subconfed (0xFFFFFF03)====&lt;br /&gt;
Все маршруты которые передаются с таким значением атрибута community не должны анонсироваться внешним BGP-соседям (ни внешним для конфедерации, ни настоящим внешним соседям). В Cisco это значение встречается и под названием local-as.&lt;br /&gt;
{{note|text=Маршрутизаторы, которые не поддерживают атрибут community, будут передавать его далее, так как это transitive атрибут.}}&lt;br /&gt;
&lt;br /&gt;
 set policy-options policy-statement community ''test-community'' members ''[65510:555 65610:999]''     - [x and y]&lt;br /&gt;
 set policy-options policy-statement ''test'' term ''1'' then community (add|set|delete) ''test-community''&lt;br /&gt;
&lt;br /&gt;
 set policy-options policy-statement community ''all-community'' members '' &amp;quot;*:*&amp;quot; ''&lt;br /&gt;
&lt;br /&gt;
С communities широко используются регулярные выражения.&lt;br /&gt;
&lt;br /&gt;
====Примеры====&lt;br /&gt;
&lt;br /&gt;
100:* - all posible community values with AS 100.&lt;br /&gt;
&lt;br /&gt;
11.1:666 - 1101:666, 1111:666, 1121:666, etc.&lt;br /&gt;
&lt;br /&gt;
 show route community *:20&lt;br /&gt;
 show route community-name&lt;br /&gt;
&lt;br /&gt;
====Список операторов регулярных выражений для Community====&lt;br /&gt;
{{re}}&lt;br /&gt;
&lt;br /&gt;
=== Multi exit discriminator (MED)===&lt;br /&gt;
Атрибут '''MED''':&lt;br /&gt;
* Используется для информирования eBGP-соседей о том, какой путь в автономную систему более предпочтительный. &lt;br /&gt;
* Атрибут передается между автономными системами. &lt;br /&gt;
* Маршрутизаторы внутри соседней автономной системы используют этот атрибут, но, как только обновление выходит за пределы AS, атрибут MED отбрасывается.&lt;br /&gt;
* Чем меньше значение атрибута, тем более предпочтительна точка входа в автономную систему.&lt;br /&gt;
&lt;br /&gt;
=== Weight (проприетарный атрибут Cisco) ===&lt;br /&gt;
Атрибут '''Weight''': &lt;br /&gt;
* Позволяет назначить &amp;quot;вес&amp;quot; различным путям локально на маршрутизаторе. &lt;br /&gt;
* Используется в тех случаях, когда у одного маршрутизатора есть несколько выходов из автономной системы (сам маршрутизатор является точкой выхода). &lt;br /&gt;
* Имеет значение только локально, в пределах маршрутизатора. &lt;br /&gt;
* Не передается в обновлениях.&lt;br /&gt;
* Чем больше значение атрибута, тем более предпочтителен путь выхода.&lt;br /&gt;
&lt;br /&gt;
== Касательно всех атрибутов ==&lt;br /&gt;
Атрибуты, при выборе best, считаются лучшими с наименьшими значением.&lt;br /&gt;
Это правило касается всех атрибутов, кроме Local Preference&lt;br /&gt;
&lt;br /&gt;
== Механизмы управления трафиком ==&lt;br /&gt;
===Входящим===&lt;br /&gt;
*AS path prepend&lt;br /&gt;
*Community (если поддерживает провайдер)&lt;br /&gt;
*MED (подключение к одной и той же AS)&lt;br /&gt;
*Анонс разных префиксов через разных ISP&lt;br /&gt;
&lt;br /&gt;
===Исходящим===&lt;br /&gt;
*Проприетарный атрибут Cisco weight (локально на маршрутизаторе)&lt;br /&gt;
*Атрибут Local Preference (локально в AS)&lt;br /&gt;
*Балансировка трафика {{чо?}}&lt;br /&gt;
&lt;br /&gt;
== Выбор лучшего пути (BGP Active Route Selection) ==&lt;br /&gt;
&lt;br /&gt;
* Juniper&lt;br /&gt;
# Prefer highest local preference value&lt;br /&gt;
# Prefer shortest AS-path length&lt;br /&gt;
# Prefer lowest Origin value&lt;br /&gt;
# Prefer lowest MED value&lt;br /&gt;
# Prefer routes learned from an EBGP peer over an IBGP peer&lt;br /&gt;
# If the remaining routes were learned through IBGP, use the path with the lowest IGP cost to the IBGP peer.&lt;br /&gt;
# For EBGP received routes, prefer the current active route; otherwise, prefer routes from the peer with the lowest RID&lt;br /&gt;
# Prefer paths with the shortest cluster length&lt;br /&gt;
# Prefer routes from the peer with the lowest peer ID&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Multipath ==&lt;br /&gt;
&lt;br /&gt;
===Link Bandwidth Extended Community===&lt;br /&gt;
При включенном multipath можно задать желаемую балансировку между линками через extended community.&lt;br /&gt;
Это механизм описан в draft-ietf-idr-link-bandwidth-06, и не является стандартизированным, следовательно,&lt;br /&gt;
возможно, он не будет работать с некоторыми вендорами. В JunOS поддерживается.&lt;br /&gt;
&lt;br /&gt;
Пример использования:&lt;br /&gt;
&lt;br /&gt;
R1 и R2 соединены напрямую через ва сабинтерфейса, на каждом из которых висит своя /30 сеть&lt;br /&gt;
&lt;br /&gt;
 |     | ge-0/0/0.10 ----- ge-0/0/0.10 R2 |    |&lt;br /&gt;
 |  R1 |                                  | R2 |&lt;br /&gt;
 |     | ge-0/0/0.20 ----- ge-0/0/0.20 R2 |    |&lt;br /&gt;
&lt;br /&gt;
Конфиг R1:&lt;br /&gt;
 R1&amp;gt; show configuration protocols bgp &lt;br /&gt;
 group ebgp {&lt;br /&gt;
     multipath;&lt;br /&gt;
     neighbor 10.1.0.2 {&lt;br /&gt;
         description R2;&lt;br /&gt;
         export from-direct;&lt;br /&gt;
         peer-as 2222;&lt;br /&gt;
     }&lt;br /&gt;
     neighbor 10.2.0.2 {&lt;br /&gt;
         description R2;&lt;br /&gt;
         export from-direct;&lt;br /&gt;
         peer-as 2222;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Конфиг R2:&lt;br /&gt;
 R2&amp;gt; show configuration interfaces lo0   &lt;br /&gt;
 unit 0 {&lt;br /&gt;
     family inet {&lt;br /&gt;
         address 2.2.2.2/32;&lt;br /&gt;
     }&lt;br /&gt;
     family mpls;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; show configuration policy-options &lt;br /&gt;
 policy-statement bw20 {&lt;br /&gt;
     then {&lt;br /&gt;
         community add bw20;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 policy-statement bw80 {&lt;br /&gt;
     then {&lt;br /&gt;
         community add bw80;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 policy-statement from-direct {&lt;br /&gt;
     term redistribute-direct {&lt;br /&gt;
         from protocol direct;&lt;br /&gt;
         then accept;&lt;br /&gt;
     }&lt;br /&gt;
     term default {&lt;br /&gt;
         then reject;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 community bw20 members bandwidth:2222:2500000; // 2500000 байт в секунду — это 20% от 100Мегабит&lt;br /&gt;
 community bw80 members bandwidth:2222:10000000; // 10000000 байт в секунду — это 80% от 100Мегабит&lt;br /&gt;
 &lt;br /&gt;
 R2&amp;gt; show configuration protocols bgp &lt;br /&gt;
 group ebgp {&lt;br /&gt;
     neighbor 10.1.0.1 {&lt;br /&gt;
         description R1;&lt;br /&gt;
         export [ bw20 from-direct ]; // На одно из  соседств навешивается community, отображающее, что линк загружен на 20%&lt;br /&gt;
         peer-as 1111;&lt;br /&gt;
     }&lt;br /&gt;
     neighbor 10.2.0.1 {&lt;br /&gt;
         description R1;&lt;br /&gt;
         export [ bw80 from-direct ];// На второе соседство навешивается community, отображающее, что линк загружен на 80%&lt;br /&gt;
         peer-as 1111;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Что получилось:&lt;br /&gt;
&lt;br /&gt;
 R1&amp;gt; show route 2.2.2.2 extensive        &lt;br /&gt;
 &lt;br /&gt;
 inet.0: 11 destinations, 19 routes (11 active, 0 holddown, 0 hidden)&lt;br /&gt;
 2.2.2.2/32 (2 entries, 1 announced)&lt;br /&gt;
 TSI:&lt;br /&gt;
 KRT in-kernel 2.2.2.2/32 -&amp;gt; {10.2.0.2, 10.1.0.2}&lt;br /&gt;
        *BGP    Preference: 170/-101&lt;br /&gt;
                Next hop type: Router, Next hop index: 262145&lt;br /&gt;
                Address: 0x9404010&lt;br /&gt;
                Next-hop reference count: 8&lt;br /&gt;
                Source: 10.1.0.2&lt;br /&gt;
                '''Next hop: 10.2.0.2 via ge-0/0/0.20 balance 80%'''&lt;br /&gt;
                '''Next hop: 10.1.0.2 via ge-0/0/0.10 balance 20%, selected'''&lt;br /&gt;
                State: &amp;lt;Active Ext&amp;gt;&lt;br /&gt;
                Local AS:  1111 Peer AS:  2222&lt;br /&gt;
                Age: 1:20:49 &lt;br /&gt;
                Task: BGP_2222.10.1.0.2+179&lt;br /&gt;
                Announcement bits (1): 0-KRT &lt;br /&gt;
                AS path: 2222 I&lt;br /&gt;
                '''Communities: bandwidth:2222:2500000'''&lt;br /&gt;
                '''Accepted Multipath'''&lt;br /&gt;
                Localpref: 100&lt;br /&gt;
                Router ID: 2.2.2.2&lt;br /&gt;
&lt;br /&gt;
==Modifying AS Path==&lt;br /&gt;
&lt;br /&gt;
===Option 1: remove-private===&lt;br /&gt;
&lt;br /&gt;
===Option 2: local-as===&lt;br /&gt;
&lt;br /&gt;
 [edit routing-options]&lt;br /&gt;
 R1# show &lt;br /&gt;
 autonomous-system 1111;&lt;br /&gt;
 &lt;br /&gt;
 [edit protocols bgp group ebgp]&lt;br /&gt;
 R1# show &lt;br /&gt;
 neighbor 10.1.0.2 {&lt;br /&gt;
     peer-as 2222;&lt;br /&gt;
     local-as 3333;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
При такой конфигурации R1, EBGP-сосед, который '''ожидает''', что у R1 будет AS3333 сможет установить соседство с R1, хотя, по факту R1 принадлежит AS1111.&lt;br /&gt;
Результат:&lt;br /&gt;
 R1&amp;gt; show bgp neighbor &lt;br /&gt;
 Peer: 10.1.0.2+179 AS 2222     Local: 10.1.0.1+62745 '''AS 3333''' &lt;br /&gt;
   Type: External    State: Established    Flags: &amp;lt;Sync&amp;gt;&lt;br /&gt;
   Last State: OpenConfirm   Last Event: RecvKeepAlive&lt;br /&gt;
   ...&lt;br /&gt;
   Holdtime: 90 Preference: 170 Localpref: 110 '''Local AS: 3333 Local System AS: 1111'''&lt;br /&gt;
   Number of flaps: 0&lt;br /&gt;
   Peer ID: 2.2.2.2         Local ID: 1.1.1.1           Active Holdtime: 90&lt;br /&gt;
   ...&lt;br /&gt;
&lt;br /&gt;
'''Зачем это нужно'''&lt;br /&gt;
&lt;br /&gt;
Предположим, оператор с AS1111 купил сеть оператора с AS3333. У AS3333 были свои клиенты, подключенные по BGP, которые не готовы или не хотят изменять конфигурацию на своих роутерах. В таком случае можно временно применить опцию local-as, чтобы выступить для них от лица предыдущей AS (в примере - 3333), но внутри сети перевести инфораструктуру на AS1111.&lt;br /&gt;
&lt;br /&gt;
Если добавить ключевое слово private:&lt;br /&gt;
 [edit protocols bgp group ebgp]&lt;br /&gt;
 R1# show &lt;br /&gt;
 neighbor 10.1.0.2 {&lt;br /&gt;
     peer-as 2222;&lt;br /&gt;
     local-as 3333 '''private''';&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
То R1 вообще не будет добавлять AS3333 при анонсе маршрутов, получаемых от 10.1.0.2 своим соседям.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Route Reflection==&lt;br /&gt;
Описан в RFC 4456&lt;br /&gt;
&lt;br /&gt;
'''Концепция'''&lt;br /&gt;
*Позволяет iBGP-спикеру анонсировать другим iBGP-маршрутизаторам маршруты, полученные через iBGP&lt;br /&gt;
*RR только пересылает активные маршруты клиентам (это соседи RR, которые не являются RR. Для настройки таких роутеров не требуется изменений в конфигурации соседства.)&lt;br /&gt;
*RR по умолчанию не меняет IBGP атрибуты.&lt;br /&gt;
*Для предотвращения петель существуют два новых атрибута: &lt;br /&gt;
:*'''Cluster List''' (1 или более cluster ID)&lt;br /&gt;
:*'''Originator ID''' - ID роутера, который первым переслал маршрут в AS.&lt;br /&gt;
&lt;br /&gt;
===Cluster List===&lt;br /&gt;
&lt;br /&gt;
Список, включающий ID всех RR, которые обрабатывали данный префикс.&lt;br /&gt;
Если RR получит маршрут, у которого в cluster list будет ID этого RR, то он его дропнет.&lt;br /&gt;
Участвует при выборе активного маршрута (активным становится с наименьшим cluster list).&lt;br /&gt;
Cluster ID добавляется к cluster list, когда маршрут отправляется. Cluster ID должен быть уникальным в рамках AS.&lt;br /&gt;
&lt;br /&gt;
'''Configuration'''&lt;br /&gt;
&lt;br /&gt;
Если на сет несколько RR, то соседство между ними может быть как в отдельной группе от RR-clients (IBGP), так и в той же группе что и клиенты. &lt;br /&gt;
Между RR - full-mesh.&lt;br /&gt;
&lt;br /&gt;
 set protocols bgp group RR type internal&lt;br /&gt;
 set protocols bgp group RR peer-as 65513&lt;br /&gt;
 set protocols bgp group RR neighbor 2.2.2.2&lt;br /&gt;
 set protocols bgp group RR neighbor 3.3.3.3&lt;br /&gt;
&lt;br /&gt;
RR-clients конфигурируются в отдельной группе, где должен быть включен: &amp;quot;cluster x.x.x.x&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 set protocols bgp group RR-clients cluster 1.1.1.1&lt;br /&gt;
&lt;br /&gt;
Со стороны клиентов конфигурация стандартная для IBGP - простое соседство с RR.&lt;br /&gt;
&lt;br /&gt;
'''Распространение маршрутов при использовании RR.'''&lt;br /&gt;
# Клиент -&amp;gt; cluster RR&lt;br /&gt;
# RR -&amp;gt; all clients and non-clients(other RR)&lt;br /&gt;
# Other RR -&amp;gt; all cluster clients.&lt;br /&gt;
При этом:  non-clients -&amp;gt; RR -&amp;gt; clients (only)&lt;br /&gt;
&lt;br /&gt;
При использовании нескольких RR, можно для на всех использовать одинаковый cluster ID.&lt;br /&gt;
+: в таблице будет меньше маршрутов и при такой схеме можно добиться хорошей отказоустойчивости в сети.&lt;br /&gt;
	&lt;br /&gt;
'''2 RR в кластере'''&lt;br /&gt;
&lt;br /&gt;
Соседство между RR можно устанавливать как внутри отдельной группы для кластера, так и в отдельной группе.&lt;br /&gt;
В обоих случаях при передаче маршрутов между RR петель не будет, т.к. cluster ID будет одинаковыми.&lt;br /&gt;
Каждый из RR в кластере устанавливает IBGP с другими RR, не входящих в кластер.&lt;br /&gt;
В подобных схемах все-таки тоже стараются использовать уникальные cluster ID.&lt;br /&gt;
&lt;br /&gt;
===Hierarchical Route Reflection===&lt;br /&gt;
&lt;br /&gt;
Отличие от предыдущих: в схеме появляются не только RR и client, но еще и роутеры, выполняющие обе функции в рамках разных кластеров.&lt;br /&gt;
Clients могут устанавливать IBPG между собой. Это удобно использовать, чтобы clients могли использовать маршруты от других clients нативно, без обработки RR. &lt;br /&gt;
Чтобы RR не флудил копиями маршрутов, на нем можно включить '''no-client-reflect''', это отключит пересылку маршрутов, полученных внутри кластера. Внешние маршруты при этом продолжают пересылаться.&lt;br /&gt;
&lt;br /&gt;
===Modifying Attributes on the RR===&lt;br /&gt;
&lt;br /&gt;
Все атрибуты BGP изменяются через policy.&lt;br /&gt;
Если на RR есть EBGP, то с большой вероятностью будет активна ф-ия: next-hop-self. При этом, у маршрутов, полученных от client, также next-hop будет меняться.&lt;br /&gt;
Что приведет к не оптимальному форвардингу трафика (должен идти напрямую к original роутеру, а будет идти через RR).&lt;br /&gt;
Чтобы менять next-hope только у external: в policy матчим по interface ли neighbor.&lt;br /&gt;
&lt;br /&gt;
 set policy-option policy-statement nhs term EBGP from protocol bgp&lt;br /&gt;
 set policy-option policy-statement nhs term EBGP from neighbor 2.2.2.2&lt;br /&gt;
 set policy-option policy-statement nhs term EBGP the next-hop self&lt;br /&gt;
&lt;br /&gt;
==Confederations==&lt;br /&gt;
 Описан в RFC 3065&lt;br /&gt;
&lt;br /&gt;
'''Принципы'''&lt;br /&gt;
&lt;br /&gt;
Цель: разбить global AS на sub-AS.&lt;br /&gt;
&lt;br /&gt;
Внутри sub-AS между роутерами: full-mesh. Если внутри sub-AS будет слишком большая сеть, то в нее можно внедрить RR.&lt;br /&gt;
&lt;br /&gt;
sub-AS должна иметь уникальный номер (зачастую берут приватные AS).&lt;br /&gt;
&lt;br /&gt;
Между sub-AS - EBGP = confederation BGP = CBGP.&lt;br /&gt;
&lt;br /&gt;
При прохождении маршрута через CBGP линк, роутер меняет AS path, включая sub-AS. Другие атрибуты BGP не меняются.&lt;br /&gt;
&lt;br /&gt;
Также в отличие от стандартного EBGP, в CBGP обычно соседство строится на loopback.&lt;br /&gt;
&lt;br /&gt;
===AS-path segment===&lt;br /&gt;
*AS Confederation Sequence&lt;br /&gt;
При прохождение через CBGP линк, роутер добавляет sub-AS к AS-path в &amp;quot;()&amp;quot; в последовательности, как шел маршрут по сети.&lt;br /&gt;
&lt;br /&gt;
AS Confederation Sequence не используется при выборе активного пути.&lt;br /&gt;
&lt;br /&gt;
Этот атрибут имеет type code 3.&lt;br /&gt;
&lt;br /&gt;
 AS-path: (65000 65001 65002) 100 200&lt;br /&gt;
&lt;br /&gt;
*AS Confederation Set&lt;br /&gt;
При агрегировании маршрутов внутри конфедерации, AS confederation sequence становится AS confederation set.&lt;br /&gt;
&lt;br /&gt;
Этот атрибут имеет type code 4.&lt;br /&gt;
&lt;br /&gt;
 10.10.10.0/24 (65000 65001) 100 &lt;br /&gt;
 10.10.20.0/24 (65000 65002) 100&lt;br /&gt;
 10.10.0.0/16 ({65000 65001 65002}) 100 &lt;br /&gt;
&lt;br /&gt;
Оба атрибута используются только для предотвращения петель внутри конфедерации.&lt;br /&gt;
&lt;br /&gt;
При анонсировании маршрутов из конфедерации дальше по сети по EBGP, private AS (sub-AS) стираются, поэтому все конфедерации извне видны как одна большая глобальная AS.&lt;br /&gt;
При этом не требуется отдельно включать (remove-private). В случае с конфедерациями, все приватные AS итак сотрутся итак.&lt;br /&gt;
&lt;br /&gt;
Но все роутеры внутри конфедерации обязательно должны знать номер глобальной AS.&lt;br /&gt;
&lt;br /&gt;
===Configuration===&lt;br /&gt;
Включение самой конфедерации на роутере - определяется в routing-options:&lt;br /&gt;
&lt;br /&gt;
 set routing-options autonomus-system 65000&lt;br /&gt;
 set routing-options confederation 100 members [65000 65001 65002]&lt;br /&gt;
&lt;br /&gt;
R1&lt;br /&gt;
 внутри конфедерации: &lt;br /&gt;
 set protocols bgp group sub-AS-65001 type internal&lt;br /&gt;
 set protocols bgp group sub-AS-65001 local-address 192.168.1.3&lt;br /&gt;
 set protocols bgp group sub-AS-65001 neighbor 192.168.1.1&lt;br /&gt;
 set protocols bgp group sub-AS-65001 neighbor 192.168.1.2&lt;br /&gt;
 set protocols bgp group sub-AS-65001 neighbor 192.168.1.4&lt;br /&gt;
&lt;br /&gt;
 CBGP-link 1:&lt;br /&gt;
 set protocols bgp group sub-AS-65000 type external&lt;br /&gt;
 set protocols bgp group sub-AS-65000 multihop&lt;br /&gt;
 set protocols bgp group sub-AS-65000 local-address 192.168.1.3&lt;br /&gt;
 set protocols bgp group sub-AS-65000 peer-as 65000&lt;br /&gt;
 set protocols bgp group sub-AS-65000 neighbor 192.168.0.3&lt;br /&gt;
&lt;br /&gt;
CBGP-link 2:&lt;br /&gt;
 set protocols bgp group sub-AS-65002 type external &lt;br /&gt;
 set protocols bgp group sub-AS-65002 multihop&lt;br /&gt;
 set protocols bgp group sub-AS-65002 local-address 192.168.1.3&lt;br /&gt;
 set protocols bgp group sub-AS-65002 peer-as 65002&lt;br /&gt;
 set protocols bgp group sub-AS-65002 neighbor 192.168.2.4&lt;/div&gt;</summary>
		<author><name>Владислав Павкин</name></author>
	</entry>
	<entry>
		<id>https://juniper-exam.ru/index.php?title=BGP&amp;diff=121</id>
		<title>BGP</title>
		<link rel="alternate" type="text/html" href="https://juniper-exam.ru/index.php?title=BGP&amp;diff=121"/>
		<updated>2016-10-22T18:43:53Z</updated>

		<summary type="html">&lt;p&gt;Владислав Павкин: /* Route Reflection */ Раздел добавлен.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Состояния соседства ==&lt;br /&gt;
http://habrastorage.org/getpro/habr/post_images/442/780/549/442780549c2f45cdda10773121b2800d.png&lt;br /&gt;
&lt;br /&gt;
== Сообщения ==&lt;br /&gt;
*Open - отправляется только на стадии установления соседства. Содержит параметры BGP соседа.&lt;br /&gt;
*Update - передает routing info между соседями. Атрибуты и список префиксов, подходящий под данные атрибуты.&lt;br /&gt;
*Keepalive - для удостоверения, что с соседством все ок.&lt;br /&gt;
*Notification - в случае если не прошел keepalive или update.&lt;br /&gt;
*Refresh - soft clearing BGP сессии.&lt;br /&gt;
&lt;br /&gt;
== Атрибуты пути (path attributes) ==&lt;br /&gt;
Атрибуты пути разделены на 4 категории:&lt;br /&gt;
# '''Well-known mandatory''' — все маршрутизаторы, работающие по протоколу BGP, должны распознавать эти атрибуты. Должны присутствовать во всех обновлениях (update).&lt;br /&gt;
# '''Well-known discretionary''' — все маршрутизаторы, работающие по протоколу BGP, должны распознавать эти атрибуты. Могут присутствовать в обновлениях (update), но их присутствие не обязательно.&lt;br /&gt;
# '''Optional transitive''' — могут не распознаваться всеми реализациями BGP. Если маршрутизатор не распознал атрибут, он помечает обновление как частичное (partial) и отправляет его дальше соседям, сохраняя не распознанный атрибут.&lt;br /&gt;
# '''Optional non-transitive''' — могут не распознаваться всеми реализациями BGP. Если маршрутизатор не распознал атрибут, то атрибут игнорируется и при передаче соседям отбрасывается.&lt;br /&gt;
&lt;br /&gt;
=== Autonomous system path ===&lt;br /&gt;
 '''✔️Well-known Mandatory'''&lt;br /&gt;
* Описывает через какие автономные системы надо пройти, чтобы дойти до сети назначения. &lt;br /&gt;
* Номер AS добавляется при передаче обновления из одной AS eBGP-соседу в другой AS.&lt;br /&gt;
&lt;br /&gt;
Используется для:&lt;br /&gt;
* обнаружения петель&lt;br /&gt;
* применения политик&lt;br /&gt;
&lt;br /&gt;
Каждый сегмент атрибута AS path представлен в виде поля TLV (path segment type, path segment length, path segment value):&lt;br /&gt;
* '''path segment type''' — поле размером 1 байт для которого определены такие значения:&lt;br /&gt;
** 1 — AS_SET: неупорядоченное множество автономных систем, через которые прошел маршрут в сообщении Update,&lt;br /&gt;
** 2 — AS_SEQUENCE: упорядоченное множество автономных систем, через которые прошел маршрут в сообщении Update&lt;br /&gt;
* '''path segment length''' — поле размером 1 байт. Указывает сколько автономных систем указано в поле path segment value&lt;br /&gt;
* '''path segment value''' — номера автономных систем, каждая представлена полем размером 2 байта.&lt;br /&gt;
&lt;br /&gt;
=== Next-hop ===&lt;br /&gt;
 '''✔️Well-known Mandatory'''&lt;br /&gt;
* IP-адрес следующей AS для достижения сети назначения. &lt;br /&gt;
* Это IP-адрес eBGP-маршрутизатора, через который идет путь к сети назначения.&lt;br /&gt;
* Атрибут меняется при передаче префикса в другую AS (по-умолчанию подставляется ip-адрес bgp-соседа)&lt;br /&gt;
* Атрибут не меняется при передаче префикса в ту же AS&lt;br /&gt;
&lt;br /&gt;
Можно изменить с помощью policy на выходе:&lt;br /&gt;
 [edit policy-options policy-statement nexthop-self]&lt;br /&gt;
 R1# show &lt;br /&gt;
 term localpref {&lt;br /&gt;
     then {&lt;br /&gt;
         next-hop self;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Или же на входе:&lt;br /&gt;
 [edit policy-options policy-statement nexthop-peer]&lt;br /&gt;
 R2# show &lt;br /&gt;
 term localpref {&lt;br /&gt;
     then {&lt;br /&gt;
         next-hop peer-address;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Third party next hop:&lt;br /&gt;
[[Изображение:Next-hop3.png|300px]]&lt;br /&gt;
&lt;br /&gt;
=== Origin ===&lt;br /&gt;
 '''✔️Well-known Mandatory'''&lt;br /&gt;
Атрибут '''Origin''' — указывает на то, каким образом был получен маршрут в обновлении.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Возможные значения атрибута&lt;br /&gt;
|-&lt;br /&gt;
|'''0'''&lt;br /&gt;
|IGP&lt;br /&gt;
|NLRI получена внутри исходной автономной системы&lt;br /&gt;
|-&lt;br /&gt;
|'''1'''&lt;br /&gt;
| EGP&lt;br /&gt;
| NLRI выучена по протоколу Exterior Gateway Protocol (EGP)&lt;br /&gt;
|-&lt;br /&gt;
|'''2'''&lt;br /&gt;
| Incomplete&lt;br /&gt;
| NLRI была выучена каким-то другим образом&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Local preference ===&lt;br /&gt;
 '''✔️Well-known Discretionary'''&lt;br /&gt;
* Указывает маршрутизаторам внутри автономной системы как выйти за её пределы. &lt;br /&gt;
* Этот атрибут передается только в пределах одной автономной системы. &lt;br /&gt;
* На маршрутизаторах Cisco и Juniper по умолчанию значение атрибута — 100.&lt;br /&gt;
* Выбирается та точка выхода у которой значение атрибута больше.&lt;br /&gt;
* Если eBGP-сосед получает обновление с выставленным значением local preference, он игнорирует этот атрибут.&lt;br /&gt;
* В Junos lpf можно задать через policy и в protocol bgp. Если задан обоими способами, то будет назначен lpf из policy.&lt;br /&gt;
&lt;br /&gt;
=== Atomic aggregate ===&lt;br /&gt;
 '''✔️Well-known Discretionary'''&lt;br /&gt;
&lt;br /&gt;
=== Aggregator ===&lt;br /&gt;
 '''✔️Optional Transitive'''&lt;br /&gt;
&lt;br /&gt;
=== Communities ===&lt;br /&gt;
 '''✔️Optional Transitive'''&lt;br /&gt;
* Тегирование маршрутов&lt;br /&gt;
* Существуют предопределенные значения&lt;br /&gt;
* По умолчанию не пересылаются соседям&lt;br /&gt;
* Один из вариантов применения: передается соседней AS для управления входящим трафиком&lt;br /&gt;
&lt;br /&gt;
Значения от 0x00000000 до 0x0000FFFF и от 0xFFFF0000 до 0xFFFFFFFF зарезервированы.&lt;br /&gt;
&lt;br /&gt;
Как правило community отображаются в формате ASN:VALUE.&lt;br /&gt;
В таком формате, доступны для использования community от 1:0 до 65534:65535.&lt;br /&gt;
В первой части указывается номер автономной системы, а во второй значение community, которое определяет политику маршрутизации трафика.&lt;br /&gt;
&lt;br /&gt;
Некоторые значения communities предопределены. RFC1997 определяет три значения таких community. Эти значения должны одинаково распознаваться и обрабатываться всеми реализациями BGP, которые распознают атрибут community.&lt;br /&gt;
&lt;br /&gt;
Если маршрутизатор получает маршрут, в котором указано предопределенное значение communities, то он выполняет специфическое, предопределенное действие основанное на значении атрибута.&lt;br /&gt;
&lt;br /&gt;
Предопределенные значения communities (Well-known Communities):&lt;br /&gt;
&lt;br /&gt;
====no-export (0xFFFFFF01)====&lt;br /&gt;
Все маршруты которые передаются с таким значением атрибута community не должны анонсироваться за пределы конфедерации (автономная система, которая не является частью конфедерации считается конфедерацией). То есть, маршруты не анонсируются EBGP-соседям, но анонсируются внешним соседям в конфедерации,&lt;br /&gt;
&lt;br /&gt;
'''Пример использования'''&lt;br /&gt;
{{note|text=AS1 подключена к AS2 двумя линками (multinoming). AS1 анонсирует '''172.17.0/16''' в AS2. Для оптимальной маршрутизации, AS1 хочет посылать некоторые более специфичные маршруты через один из этих линков, при этом остальному интернету вовсе не обязательно получать эти специфики. Для этой цели AS1 использует community no-export, и посылает '''172.17.0/17''' в один из стыков с AS2, и '''172.17.128/17''' во второй стык. AS2 видит эти маршруты и выбирает их как более специфичные. Кроме того, эти маршруты видят все iBGP-соседи в пределах AS2. Тем не менее, за пределы AS2 в Интернет анонсируется только '''172.17.0/16'''.}}&lt;br /&gt;
&lt;br /&gt;
====no-advertise (0xFFFFFF02)==== &lt;br /&gt;
Все маршруты которые передаются с таким значением атрибута community не должны анонсироваться другим BGP-соседям.&lt;br /&gt;
&lt;br /&gt;
====no-export-subconfed (0xFFFFFF03)====&lt;br /&gt;
Все маршруты которые передаются с таким значением атрибута community не должны анонсироваться внешним BGP-соседям (ни внешним в конфедерации, ни настоящим внешним соседям). В Cisco это значение встречается и под названием local-as.&lt;br /&gt;
{{note|text=&lt;br /&gt;
Маршрутизаторы, которые не поддерживают атрибут community, будут передавать его далее, так как это transitive атрибут.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Multi exit discriminator (MED)===&lt;br /&gt;
Атрибут '''MED''':&lt;br /&gt;
* Используется для информирования eBGP-соседей о том, какой путь в автономную систему более предпочтительный. &lt;br /&gt;
* Атрибут передается между автономными системами. &lt;br /&gt;
* Маршрутизаторы внутри соседней автономной системы используют этот атрибут, но, как только обновление выходит за пределы AS, атрибут MED отбрасывается.&lt;br /&gt;
* Чем меньше значение атрибута, тем более предпочтительна точка входа в автономную систему.&lt;br /&gt;
&lt;br /&gt;
=== Weight (проприетарный атрибут Cisco) ===&lt;br /&gt;
Атрибут '''Weight''': &lt;br /&gt;
* Позволяет назначить &amp;quot;вес&amp;quot; различным путям локально на маршрутизаторе. &lt;br /&gt;
* Используется в тех случаях, когда у одного маршрутизатора есть несколько выходов из автономной системы (сам маршрутизатор является точкой выхода). &lt;br /&gt;
* Имеет значение только локально, в пределах маршрутизатора. &lt;br /&gt;
* Не передается в обновлениях.&lt;br /&gt;
* Чем больше значение атрибута, тем более предпочтителен путь выхода.&lt;br /&gt;
&lt;br /&gt;
== Касательно всех атрибутов ==&lt;br /&gt;
Атрибуты, при выборе best, считаются лучшими с наименьшими значением.&lt;br /&gt;
Это правило касается всех атрибутов, кроме Local Preference&lt;br /&gt;
&lt;br /&gt;
== Механизмы управления входящим трафиком: ==&lt;br /&gt;
*AS path prepend&lt;br /&gt;
*Community (если поддерживает провайдер)&lt;br /&gt;
*MED (подключение к одной и той же AS)&lt;br /&gt;
*Анонс разных префиксов через разных ISP&lt;br /&gt;
&lt;br /&gt;
== Механизмы управления исходящим трафиком: ==&lt;br /&gt;
*Проприетарный атрибут Cisco weight (локально на маршрутизаторе)&lt;br /&gt;
*Атрибут Local Preference (локально в AS)&lt;br /&gt;
*Балансировка трафика {{чо?}}&lt;br /&gt;
&lt;br /&gt;
== Выбор лучшего пути (BGP Active Route Selection) ==&lt;br /&gt;
&lt;br /&gt;
* Juniper&lt;br /&gt;
# Prefer highest local preference value&lt;br /&gt;
# Prefer shortest AS-path length&lt;br /&gt;
# Prefer lowest Origin value&lt;br /&gt;
# Prefer lowest MED value&lt;br /&gt;
# Prefer routes learned from an EBGP peer over an IBGP peer&lt;br /&gt;
# If the remaining routes were learned through IBGP, use the path with the lowest IGP cost to the IBGP peer.&lt;br /&gt;
# For EBGP received routes, prefer the current active route; otherwise, prefer routes from the peer with the lowest RID&lt;br /&gt;
#Prefer paths with the shortest cluster length&lt;br /&gt;
# Prefer routes from the peer with the lowest peer ID&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Multipath ==&lt;br /&gt;
&lt;br /&gt;
===Link Bandwidth Extended Community===&lt;br /&gt;
При включенном multipath можно задать желаемую балансировку между линками через extended community.&lt;br /&gt;
Это механизм описан в draft-ietf-idr-link-bandwidth-06, и не является стандартизированным, следовательно,&lt;br /&gt;
возможно, он не будет работать с некоторыми вендорами. В JunOS поддерживается.&lt;br /&gt;
&lt;br /&gt;
Пример использования:&lt;br /&gt;
&lt;br /&gt;
R1 и R2 соединены напрямую через ва сабинтерфейса, на каждом из которых висит своя /30 сеть&lt;br /&gt;
&lt;br /&gt;
 |     | ge-0/0/0.10 ----- ge-0/0/0.10 R2 |    |&lt;br /&gt;
 |  R1 |                                  | R2 |&lt;br /&gt;
 |     | ge-0/0/0.20 ----- ge-0/0/0.20 R2 |    |&lt;br /&gt;
&lt;br /&gt;
Конфиг R1:&lt;br /&gt;
 R1&amp;gt; show configuration protocols bgp &lt;br /&gt;
 group ebgp {&lt;br /&gt;
     multipath;&lt;br /&gt;
     neighbor 10.1.0.2 {&lt;br /&gt;
         description R2;&lt;br /&gt;
         export from-direct;&lt;br /&gt;
         peer-as 2222;&lt;br /&gt;
     }&lt;br /&gt;
     neighbor 10.2.0.2 {&lt;br /&gt;
         description R2;&lt;br /&gt;
         export from-direct;&lt;br /&gt;
         peer-as 2222;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Конфиг R2:&lt;br /&gt;
 R2&amp;gt; show configuration interfaces lo0   &lt;br /&gt;
 unit 0 {&lt;br /&gt;
     family inet {&lt;br /&gt;
         address 2.2.2.2/32;&lt;br /&gt;
     }&lt;br /&gt;
     family mpls;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; show configuration policy-options &lt;br /&gt;
 policy-statement bw20 {&lt;br /&gt;
     then {&lt;br /&gt;
         community add bw20;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 policy-statement bw80 {&lt;br /&gt;
     then {&lt;br /&gt;
         community add bw80;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 policy-statement from-direct {&lt;br /&gt;
     term redistribute-direct {&lt;br /&gt;
         from protocol direct;&lt;br /&gt;
         then accept;&lt;br /&gt;
     }&lt;br /&gt;
     term default {&lt;br /&gt;
         then reject;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 community bw20 members bandwidth:2222:2500000; // 2500000 байт в секунду — это 20% от 100Мегабит&lt;br /&gt;
 community bw80 members bandwidth:2222:10000000; // 10000000 байт в секунду — это 80% от 100Мегабит&lt;br /&gt;
 &lt;br /&gt;
 R2&amp;gt; show configuration protocols bgp &lt;br /&gt;
 group ebgp {&lt;br /&gt;
     neighbor 10.1.0.1 {&lt;br /&gt;
         description R1;&lt;br /&gt;
         export [ bw20 from-direct ]; // На одно из  соседств навешивается community, отображающее, что линк загружен на 20%&lt;br /&gt;
         peer-as 1111;&lt;br /&gt;
     }&lt;br /&gt;
     neighbor 10.2.0.1 {&lt;br /&gt;
         description R1;&lt;br /&gt;
         export [ bw80 from-direct ];// На второе соседство навешивается community, отображающее, что линк загружен на 80%&lt;br /&gt;
         peer-as 1111;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Что получилось:&lt;br /&gt;
&lt;br /&gt;
 R1&amp;gt; show route 2.2.2.2 extensive        &lt;br /&gt;
 &lt;br /&gt;
 inet.0: 11 destinations, 19 routes (11 active, 0 holddown, 0 hidden)&lt;br /&gt;
 2.2.2.2/32 (2 entries, 1 announced)&lt;br /&gt;
 TSI:&lt;br /&gt;
 KRT in-kernel 2.2.2.2/32 -&amp;gt; {10.2.0.2, 10.1.0.2}&lt;br /&gt;
        *BGP    Preference: 170/-101&lt;br /&gt;
                Next hop type: Router, Next hop index: 262145&lt;br /&gt;
                Address: 0x9404010&lt;br /&gt;
                Next-hop reference count: 8&lt;br /&gt;
                Source: 10.1.0.2&lt;br /&gt;
                '''Next hop: 10.2.0.2 via ge-0/0/0.20 balance 80%'''&lt;br /&gt;
                '''Next hop: 10.1.0.2 via ge-0/0/0.10 balance 20%, selected'''&lt;br /&gt;
                State: &amp;lt;Active Ext&amp;gt;&lt;br /&gt;
                Local AS:  1111 Peer AS:  2222&lt;br /&gt;
                Age: 1:20:49 &lt;br /&gt;
                Task: BGP_2222.10.1.0.2+179&lt;br /&gt;
                Announcement bits (1): 0-KRT &lt;br /&gt;
                AS path: 2222 I&lt;br /&gt;
                '''Communities: bandwidth:2222:2500000'''&lt;br /&gt;
                '''Accepted Multipath'''&lt;br /&gt;
                Localpref: 100&lt;br /&gt;
                Router ID: 2.2.2.2&lt;br /&gt;
&lt;br /&gt;
==Modifying AS Path==&lt;br /&gt;
&lt;br /&gt;
===Option 1: remove-private===&lt;br /&gt;
&lt;br /&gt;
===Option 2: local-as===&lt;br /&gt;
&lt;br /&gt;
 [edit routing-options]&lt;br /&gt;
 R1# show &lt;br /&gt;
 autonomous-system 1111;&lt;br /&gt;
 &lt;br /&gt;
 [edit protocols bgp group ebgp]&lt;br /&gt;
 R1# show &lt;br /&gt;
 neighbor 10.1.0.2 {&lt;br /&gt;
     peer-as 2222;&lt;br /&gt;
     local-as 3333;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
При такой конфигурации R1, EBGP-сосед, который '''ожидает''', что у R1 будет AS3333 сможет установить соседство с R1, хотя, по факту R1 принадлежит AS1111.&lt;br /&gt;
Результат:&lt;br /&gt;
 R1&amp;gt; show bgp neighbor &lt;br /&gt;
 Peer: 10.1.0.2+179 AS 2222     Local: 10.1.0.1+62745 '''AS 3333''' &lt;br /&gt;
   Type: External    State: Established    Flags: &amp;lt;Sync&amp;gt;&lt;br /&gt;
   Last State: OpenConfirm   Last Event: RecvKeepAlive&lt;br /&gt;
   ...&lt;br /&gt;
   Holdtime: 90 Preference: 170 Localpref: 110 '''Local AS: 3333 Local System AS: 1111'''&lt;br /&gt;
   Number of flaps: 0&lt;br /&gt;
   Peer ID: 2.2.2.2         Local ID: 1.1.1.1           Active Holdtime: 90&lt;br /&gt;
   ...&lt;br /&gt;
&lt;br /&gt;
'''Зачем это нужно'''&lt;br /&gt;
&lt;br /&gt;
Предположим, оператор с AS1111 купил сеть оператора с AS3333. У AS3333 были свои клиенты, подключенные по BGP, которые не готовы или не хотят изменять конфигурацию на своих роутерах. В таком случае можно временно применить опцию local-as, чтобы выступить для них от лица предыдущей AS (в примере - 3333), но внутри сети перевести инфораструктуру на AS1111.&lt;br /&gt;
&lt;br /&gt;
Если добавить ключевое слово private:&lt;br /&gt;
 [edit protocols bgp group ebgp]&lt;br /&gt;
 R1# show &lt;br /&gt;
 neighbor 10.1.0.2 {&lt;br /&gt;
     peer-as 2222;&lt;br /&gt;
     local-as 3333 '''private''';&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
То R1 вообще не будет добавлять AS3333 при анонсе маршрутов, получаемых от 10.1.0.2 своим соседям.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Route Reflection==&lt;br /&gt;
 Описан в RFC 4456&lt;br /&gt;
&lt;br /&gt;
Позволяет iBGP-спикеру анонсировать другим iBGP-маршрутизаторам маршруты, полученные через iBGP&lt;br /&gt;
&lt;br /&gt;
Для предотвращения петель существуют два новых атрибута: '''Cluster List''' и '''Originator ID'''&lt;br /&gt;
===Cluster List===&lt;br /&gt;
&lt;br /&gt;
===Originator ID===&lt;br /&gt;
&lt;br /&gt;
==Confederations==&lt;br /&gt;
 Описан в RFC 3065&lt;/div&gt;</summary>
		<author><name>Владислав Павкин</name></author>
	</entry>
	<entry>
		<id>https://juniper-exam.ru/index.php?title=BGP&amp;diff=120</id>
		<title>BGP</title>
		<link rel="alternate" type="text/html" href="https://juniper-exam.ru/index.php?title=BGP&amp;diff=120"/>
		<updated>2016-10-22T18:38:14Z</updated>

		<summary type="html">&lt;p&gt;Владислав Павкин: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Состояния соседства ==&lt;br /&gt;
http://habrastorage.org/getpro/habr/post_images/442/780/549/442780549c2f45cdda10773121b2800d.png&lt;br /&gt;
&lt;br /&gt;
== Сообщения ==&lt;br /&gt;
*Open - отправляется только на стадии установления соседства. Содержит параметры BGP соседа.&lt;br /&gt;
*Update - передает routing info между соседями. Атрибуты и список префиксов, подходящий под данные атрибуты.&lt;br /&gt;
*Keepalive - для удостоверения, что с соседством все ок.&lt;br /&gt;
*Notification - в случае если не прошел keepalive или update.&lt;br /&gt;
*Refresh - soft clearing BGP сессии.&lt;br /&gt;
&lt;br /&gt;
== Атрибуты пути (path attributes) ==&lt;br /&gt;
Атрибуты пути разделены на 4 категории:&lt;br /&gt;
# '''Well-known mandatory''' — все маршрутизаторы, работающие по протоколу BGP, должны распознавать эти атрибуты. Должны присутствовать во всех обновлениях (update).&lt;br /&gt;
# '''Well-known discretionary''' — все маршрутизаторы, работающие по протоколу BGP, должны распознавать эти атрибуты. Могут присутствовать в обновлениях (update), но их присутствие не обязательно.&lt;br /&gt;
# '''Optional transitive''' — могут не распознаваться всеми реализациями BGP. Если маршрутизатор не распознал атрибут, он помечает обновление как частичное (partial) и отправляет его дальше соседям, сохраняя не распознанный атрибут.&lt;br /&gt;
# '''Optional non-transitive''' — могут не распознаваться всеми реализациями BGP. Если маршрутизатор не распознал атрибут, то атрибут игнорируется и при передаче соседям отбрасывается.&lt;br /&gt;
&lt;br /&gt;
=== Autonomous system path ===&lt;br /&gt;
 '''✔️Well-known Mandatory'''&lt;br /&gt;
* Описывает через какие автономные системы надо пройти, чтобы дойти до сети назначения. &lt;br /&gt;
* Номер AS добавляется при передаче обновления из одной AS eBGP-соседу в другой AS.&lt;br /&gt;
&lt;br /&gt;
Используется для:&lt;br /&gt;
* обнаружения петель&lt;br /&gt;
* применения политик&lt;br /&gt;
&lt;br /&gt;
Каждый сегмент атрибута AS path представлен в виде поля TLV (path segment type, path segment length, path segment value):&lt;br /&gt;
* '''path segment type''' — поле размером 1 байт для которого определены такие значения:&lt;br /&gt;
** 1 — AS_SET: неупорядоченное множество автономных систем, через которые прошел маршрут в сообщении Update,&lt;br /&gt;
** 2 — AS_SEQUENCE: упорядоченное множество автономных систем, через которые прошел маршрут в сообщении Update&lt;br /&gt;
* '''path segment length''' — поле размером 1 байт. Указывает сколько автономных систем указано в поле path segment value&lt;br /&gt;
* '''path segment value''' — номера автономных систем, каждая представлена полем размером 2 байта.&lt;br /&gt;
&lt;br /&gt;
=== Next-hop ===&lt;br /&gt;
 '''✔️Well-known Mandatory'''&lt;br /&gt;
* IP-адрес следующей AS для достижения сети назначения. &lt;br /&gt;
* Это IP-адрес eBGP-маршрутизатора, через который идет путь к сети назначения.&lt;br /&gt;
* Атрибут меняется при передаче префикса в другую AS (по-умолчанию подставляется ip-адрес bgp-соседа)&lt;br /&gt;
* Атрибут не меняется при передаче префикса в ту же AS&lt;br /&gt;
&lt;br /&gt;
Можно изменить с помощью policy на выходе:&lt;br /&gt;
 [edit policy-options policy-statement nexthop-self]&lt;br /&gt;
 R1# show &lt;br /&gt;
 term localpref {&lt;br /&gt;
     then {&lt;br /&gt;
         next-hop self;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Или же на входе:&lt;br /&gt;
 [edit policy-options policy-statement nexthop-peer]&lt;br /&gt;
 R2# show &lt;br /&gt;
 term localpref {&lt;br /&gt;
     then {&lt;br /&gt;
         next-hop peer-address;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Third party next hop:&lt;br /&gt;
[[Изображение:Next-hop3.png|300px]]&lt;br /&gt;
&lt;br /&gt;
=== Origin ===&lt;br /&gt;
 '''✔️Well-known Mandatory'''&lt;br /&gt;
Атрибут '''Origin''' — указывает на то, каким образом был получен маршрут в обновлении.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Возможные значения атрибута&lt;br /&gt;
|-&lt;br /&gt;
|'''0'''&lt;br /&gt;
|IGP&lt;br /&gt;
|NLRI получена внутри исходной автономной системы&lt;br /&gt;
|-&lt;br /&gt;
|'''1'''&lt;br /&gt;
| EGP&lt;br /&gt;
| NLRI выучена по протоколу Exterior Gateway Protocol (EGP)&lt;br /&gt;
|-&lt;br /&gt;
|'''2'''&lt;br /&gt;
| Incomplete&lt;br /&gt;
| NLRI была выучена каким-то другим образом&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Local preference ===&lt;br /&gt;
 '''✔️Well-known Discretionary'''&lt;br /&gt;
* Указывает маршрутизаторам внутри автономной системы как выйти за её пределы. &lt;br /&gt;
* Этот атрибут передается только в пределах одной автономной системы. &lt;br /&gt;
* На маршрутизаторах Cisco и Juniper по умолчанию значение атрибута — 100.&lt;br /&gt;
* Выбирается та точка выхода у которой значение атрибута больше.&lt;br /&gt;
* Если eBGP-сосед получает обновление с выставленным значением local preference, он игнорирует этот атрибут.&lt;br /&gt;
* В Junos lpf можно задать через policy и в protocol bgp. Если задан обоими способами, то будет назначен lpf из policy.&lt;br /&gt;
&lt;br /&gt;
=== Atomic aggregate ===&lt;br /&gt;
 '''✔️Well-known Discretionary'''&lt;br /&gt;
&lt;br /&gt;
=== Aggregator ===&lt;br /&gt;
 '''✔️Optional Transitive'''&lt;br /&gt;
&lt;br /&gt;
=== Communities ===&lt;br /&gt;
 '''✔️Optional Transitive'''&lt;br /&gt;
* Тегирование маршрутов&lt;br /&gt;
* Существуют предопределенные значения&lt;br /&gt;
* По умолчанию не пересылаются соседям&lt;br /&gt;
* Один из вариантов применения: передается соседней AS для управления входящим трафиком&lt;br /&gt;
&lt;br /&gt;
Значения от 0x00000000 до 0x0000FFFF и от 0xFFFF0000 до 0xFFFFFFFF зарезервированы.&lt;br /&gt;
&lt;br /&gt;
Как правило community отображаются в формате ASN:VALUE.&lt;br /&gt;
В таком формате, доступны для использования community от 1:0 до 65534:65535.&lt;br /&gt;
В первой части указывается номер автономной системы, а во второй значение community, которое определяет политику маршрутизации трафика.&lt;br /&gt;
&lt;br /&gt;
Некоторые значения communities предопределены. RFC1997 определяет три значения таких community. Эти значения должны одинаково распознаваться и обрабатываться всеми реализациями BGP, которые распознают атрибут community.&lt;br /&gt;
&lt;br /&gt;
Если маршрутизатор получает маршрут, в котором указано предопределенное значение communities, то он выполняет специфическое, предопределенное действие основанное на значении атрибута.&lt;br /&gt;
&lt;br /&gt;
Предопределенные значения communities (Well-known Communities):&lt;br /&gt;
&lt;br /&gt;
====no-export (0xFFFFFF01)====&lt;br /&gt;
Все маршруты которые передаются с таким значением атрибута community не должны анонсироваться за пределы конфедерации (автономная система, которая не является частью конфедерации считается конфедерацией). То есть, маршруты не анонсируются EBGP-соседям, но анонсируются внешним соседям в конфедерации,&lt;br /&gt;
&lt;br /&gt;
'''Пример использования'''&lt;br /&gt;
{{note|text=AS1 подключена к AS2 двумя линками (multinoming). AS1 анонсирует '''172.17.0/16''' в AS2. Для оптимальной маршрутизации, AS1 хочет посылать некоторые более специфичные маршруты через один из этих линков, при этом остальному интернету вовсе не обязательно получать эти специфики. Для этой цели AS1 использует community no-export, и посылает '''172.17.0/17''' в один из стыков с AS2, и '''172.17.128/17''' во второй стык. AS2 видит эти маршруты и выбирает их как более специфичные. Кроме того, эти маршруты видят все iBGP-соседи в пределах AS2. Тем не менее, за пределы AS2 в Интернет анонсируется только '''172.17.0/16'''.}}&lt;br /&gt;
&lt;br /&gt;
====no-advertise (0xFFFFFF02)==== &lt;br /&gt;
Все маршруты которые передаются с таким значением атрибута community не должны анонсироваться другим BGP-соседям.&lt;br /&gt;
&lt;br /&gt;
====no-export-subconfed (0xFFFFFF03)====&lt;br /&gt;
Все маршруты которые передаются с таким значением атрибута community не должны анонсироваться внешним BGP-соседям (ни внешним в конфедерации, ни настоящим внешним соседям). В Cisco это значение встречается и под названием local-as.&lt;br /&gt;
{{note|text=&lt;br /&gt;
Маршрутизаторы, которые не поддерживают атрибут community, будут передавать его далее, так как это transitive атрибут.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Multi exit discriminator (MED)===&lt;br /&gt;
Атрибут '''MED''':&lt;br /&gt;
* Используется для информирования eBGP-соседей о том, какой путь в автономную систему более предпочтительный. &lt;br /&gt;
* Атрибут передается между автономными системами. &lt;br /&gt;
* Маршрутизаторы внутри соседней автономной системы используют этот атрибут, но, как только обновление выходит за пределы AS, атрибут MED отбрасывается.&lt;br /&gt;
* Чем меньше значение атрибута, тем более предпочтительна точка входа в автономную систему.&lt;br /&gt;
&lt;br /&gt;
=== Weight (проприетарный атрибут Cisco) ===&lt;br /&gt;
Атрибут '''Weight''': &lt;br /&gt;
* Позволяет назначить &amp;quot;вес&amp;quot; различным путям локально на маршрутизаторе. &lt;br /&gt;
* Используется в тех случаях, когда у одного маршрутизатора есть несколько выходов из автономной системы (сам маршрутизатор является точкой выхода). &lt;br /&gt;
* Имеет значение только локально, в пределах маршрутизатора. &lt;br /&gt;
* Не передается в обновлениях.&lt;br /&gt;
* Чем больше значение атрибута, тем более предпочтителен путь выхода.&lt;br /&gt;
&lt;br /&gt;
== Касательно всех атрибутов ==&lt;br /&gt;
Атрибуты, при выборе best, считаются лучшими с наименьшими значением.&lt;br /&gt;
Это правило касается всех атрибутов, кроме Local Preference&lt;br /&gt;
&lt;br /&gt;
== Механизмы управления входящим трафиком: ==&lt;br /&gt;
*AS path prepend&lt;br /&gt;
*Community (если поддерживает провайдер)&lt;br /&gt;
*MED (подключение к одной и той же AS)&lt;br /&gt;
*Анонс разных префиксов через разных ISP&lt;br /&gt;
&lt;br /&gt;
== Механизмы управления исходящим трафиком: ==&lt;br /&gt;
*Проприетарный атрибут Cisco weight (локально на маршрутизаторе)&lt;br /&gt;
*Атрибут Local Preference (локально в AS)&lt;br /&gt;
*Балансировка трафика {{чо?}}&lt;br /&gt;
&lt;br /&gt;
== Выбор лучшего пути (BGP Active Route Selection) ==&lt;br /&gt;
&lt;br /&gt;
* Juniper&lt;br /&gt;
# Prefer highest local preference value&lt;br /&gt;
# Prefer shortest AS-path length&lt;br /&gt;
# Prefer lowest Origin value&lt;br /&gt;
# Prefer lowest MED value&lt;br /&gt;
# Prefer routes learned from an EBGP peer over an IBGP peer&lt;br /&gt;
# If the remaining routes were learned through IBGP, use the path with the lowest IGP cost to the IBGP peer.&lt;br /&gt;
# For EBGP received routes, prefer the current active route; otherwise, prefer routes from the peer with the lowest RID&lt;br /&gt;
#Prefer paths with the shortest cluster length&lt;br /&gt;
# Prefer routes from the peer with the lowest peer ID&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Multipath ==&lt;br /&gt;
&lt;br /&gt;
===Link Bandwidth Extended Community===&lt;br /&gt;
При включенном multipath можно задать желаемую балансировку между линками через extended community.&lt;br /&gt;
Это механизм описан в draft-ietf-idr-link-bandwidth-06, и не является стандартизированным, следовательно,&lt;br /&gt;
возможно, он не будет работать с некоторыми вендорами. В JunOS поддерживается.&lt;br /&gt;
&lt;br /&gt;
Пример использования:&lt;br /&gt;
&lt;br /&gt;
R1 и R2 соединены напрямую через ва сабинтерфейса, на каждом из которых висит своя /30 сеть&lt;br /&gt;
&lt;br /&gt;
 |     | ge-0/0/0.10 ----- ge-0/0/0.10 R2 |    |&lt;br /&gt;
 |  R1 |                                  | R2 |&lt;br /&gt;
 |     | ge-0/0/0.20 ----- ge-0/0/0.20 R2 |    |&lt;br /&gt;
&lt;br /&gt;
Конфиг R1:&lt;br /&gt;
 R1&amp;gt; show configuration protocols bgp &lt;br /&gt;
 group ebgp {&lt;br /&gt;
     multipath;&lt;br /&gt;
     neighbor 10.1.0.2 {&lt;br /&gt;
         description R2;&lt;br /&gt;
         export from-direct;&lt;br /&gt;
         peer-as 2222;&lt;br /&gt;
     }&lt;br /&gt;
     neighbor 10.2.0.2 {&lt;br /&gt;
         description R2;&lt;br /&gt;
         export from-direct;&lt;br /&gt;
         peer-as 2222;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Конфиг R2:&lt;br /&gt;
 R2&amp;gt; show configuration interfaces lo0   &lt;br /&gt;
 unit 0 {&lt;br /&gt;
     family inet {&lt;br /&gt;
         address 2.2.2.2/32;&lt;br /&gt;
     }&lt;br /&gt;
     family mpls;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; show configuration policy-options &lt;br /&gt;
 policy-statement bw20 {&lt;br /&gt;
     then {&lt;br /&gt;
         community add bw20;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 policy-statement bw80 {&lt;br /&gt;
     then {&lt;br /&gt;
         community add bw80;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 policy-statement from-direct {&lt;br /&gt;
     term redistribute-direct {&lt;br /&gt;
         from protocol direct;&lt;br /&gt;
         then accept;&lt;br /&gt;
     }&lt;br /&gt;
     term default {&lt;br /&gt;
         then reject;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 community bw20 members bandwidth:2222:2500000; // 2500000 байт в секунду — это 20% от 100Мегабит&lt;br /&gt;
 community bw80 members bandwidth:2222:10000000; // 10000000 байт в секунду — это 80% от 100Мегабит&lt;br /&gt;
 &lt;br /&gt;
 R2&amp;gt; show configuration protocols bgp &lt;br /&gt;
 group ebgp {&lt;br /&gt;
     neighbor 10.1.0.1 {&lt;br /&gt;
         description R1;&lt;br /&gt;
         export [ bw20 from-direct ]; // На одно из  соседств навешивается community, отображающее, что линк загружен на 20%&lt;br /&gt;
         peer-as 1111;&lt;br /&gt;
     }&lt;br /&gt;
     neighbor 10.2.0.1 {&lt;br /&gt;
         description R1;&lt;br /&gt;
         export [ bw80 from-direct ];// На второе соседство навешивается community, отображающее, что линк загружен на 80%&lt;br /&gt;
         peer-as 1111;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Что получилось:&lt;br /&gt;
&lt;br /&gt;
 R1&amp;gt; show route 2.2.2.2 extensive        &lt;br /&gt;
 &lt;br /&gt;
 inet.0: 11 destinations, 19 routes (11 active, 0 holddown, 0 hidden)&lt;br /&gt;
 2.2.2.2/32 (2 entries, 1 announced)&lt;br /&gt;
 TSI:&lt;br /&gt;
 KRT in-kernel 2.2.2.2/32 -&amp;gt; {10.2.0.2, 10.1.0.2}&lt;br /&gt;
        *BGP    Preference: 170/-101&lt;br /&gt;
                Next hop type: Router, Next hop index: 262145&lt;br /&gt;
                Address: 0x9404010&lt;br /&gt;
                Next-hop reference count: 8&lt;br /&gt;
                Source: 10.1.0.2&lt;br /&gt;
                '''Next hop: 10.2.0.2 via ge-0/0/0.20 balance 80%'''&lt;br /&gt;
                '''Next hop: 10.1.0.2 via ge-0/0/0.10 balance 20%, selected'''&lt;br /&gt;
                State: &amp;lt;Active Ext&amp;gt;&lt;br /&gt;
                Local AS:  1111 Peer AS:  2222&lt;br /&gt;
                Age: 1:20:49 &lt;br /&gt;
                Task: BGP_2222.10.1.0.2+179&lt;br /&gt;
                Announcement bits (1): 0-KRT &lt;br /&gt;
                AS path: 2222 I&lt;br /&gt;
                '''Communities: bandwidth:2222:2500000'''&lt;br /&gt;
                '''Accepted Multipath'''&lt;br /&gt;
                Localpref: 100&lt;br /&gt;
                Router ID: 2.2.2.2&lt;br /&gt;
&lt;br /&gt;
==Modifying AS Path==&lt;br /&gt;
&lt;br /&gt;
===Option 1: remove-private===&lt;br /&gt;
&lt;br /&gt;
===Option 2: local-as===&lt;br /&gt;
&lt;br /&gt;
 [edit routing-options]&lt;br /&gt;
 R1# show &lt;br /&gt;
 autonomous-system 1111;&lt;br /&gt;
 &lt;br /&gt;
 [edit protocols bgp group ebgp]&lt;br /&gt;
 R1# show &lt;br /&gt;
 neighbor 10.1.0.2 {&lt;br /&gt;
     peer-as 2222;&lt;br /&gt;
     local-as 3333;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
При такой конфигурации R1, EBGP-сосед, который '''ожидает''', что у R1 будет AS3333 сможет установить соседство с R1, хотя, по факту R1 принадлежит AS1111.&lt;br /&gt;
Результат:&lt;br /&gt;
 R1&amp;gt; show bgp neighbor &lt;br /&gt;
 Peer: 10.1.0.2+179 AS 2222     Local: 10.1.0.1+62745 '''AS 3333''' &lt;br /&gt;
   Type: External    State: Established    Flags: &amp;lt;Sync&amp;gt;&lt;br /&gt;
   Last State: OpenConfirm   Last Event: RecvKeepAlive&lt;br /&gt;
   ...&lt;br /&gt;
   Holdtime: 90 Preference: 170 Localpref: 110 '''Local AS: 3333 Local System AS: 1111'''&lt;br /&gt;
   Number of flaps: 0&lt;br /&gt;
   Peer ID: 2.2.2.2         Local ID: 1.1.1.1           Active Holdtime: 90&lt;br /&gt;
   ...&lt;br /&gt;
&lt;br /&gt;
'''Зачем это нужно'''&lt;br /&gt;
&lt;br /&gt;
Предположим, оператор с AS1111 купил сеть оператора с AS3333. У AS3333 были свои клиенты, подключенные по BGP, которые не готовы или не хотят изменять конфигурацию на своих роутерах. В таком случае можно временно применить опцию local-as, чтобы выступить для них от лица предыдущей AS (в примере - 3333), но внутри сети перевести инфораструктуру на AS1111.&lt;br /&gt;
&lt;br /&gt;
Если добавить ключевое слово private:&lt;br /&gt;
 [edit protocols bgp group ebgp]&lt;br /&gt;
 R1# show &lt;br /&gt;
 neighbor 10.1.0.2 {&lt;br /&gt;
     peer-as 2222;&lt;br /&gt;
     local-as 3333 '''private''';&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
То R1 вообще не будет добавлять AS3333 при анонсе маршрутов, получаемых от 10.1.0.2 своим соседям.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Route Reflection==&lt;br /&gt;
 Описан в RFC 4456&lt;br /&gt;
&lt;br /&gt;
==Confederations==&lt;br /&gt;
 Описан в RFC 3065&lt;/div&gt;</summary>
		<author><name>Владислав Павкин</name></author>
	</entry>
	<entry>
		<id>https://juniper-exam.ru/index.php?title=BGP&amp;diff=119</id>
		<title>BGP</title>
		<link rel="alternate" type="text/html" href="https://juniper-exam.ru/index.php?title=BGP&amp;diff=119"/>
		<updated>2016-10-22T14:33:28Z</updated>

		<summary type="html">&lt;p&gt;Владислав Павкин: /* Атрибуты пути (path attributes) */ Расставил свойства атрибутов для каждого атрибута, поэтому удаляю примеры свойст атрибутов.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Состояния соседства ==&lt;br /&gt;
http://habrastorage.org/getpro/habr/post_images/442/780/549/442780549c2f45cdda10773121b2800d.png&lt;br /&gt;
&lt;br /&gt;
== Сообщения ==&lt;br /&gt;
*Open - отправляется только на стадии установления соседства. Содержит параметры BGP соседа.&lt;br /&gt;
*Update - передает routing info между соседями. Атрибуты и список префиксов, подходящий под данные атрибуты.&lt;br /&gt;
*Keepalive - для удостоверения, что с соседством все ок.&lt;br /&gt;
*Notification - в случае если не прошел keepalive или update.&lt;br /&gt;
*Refresh - soft clearing BGP сессии.&lt;br /&gt;
&lt;br /&gt;
== Атрибуты пути (path attributes) ==&lt;br /&gt;
Атрибуты пути разделены на 4 категории:&lt;br /&gt;
# '''Well-known mandatory''' — все маршрутизаторы, работающие по протоколу BGP, должны распознавать эти атрибуты. Должны присутствовать во всех обновлениях (update).&lt;br /&gt;
# '''Well-known discretionary''' — все маршрутизаторы, работающие по протоколу BGP, должны распознавать эти атрибуты. Могут присутствовать в обновлениях (update), но их присутствие не обязательно.&lt;br /&gt;
# '''Optional transitive''' — могут не распознаваться всеми реализациями BGP. Если маршрутизатор не распознал атрибут, он помечает обновление как частичное (partial) и отправляет его дальше соседям, сохраняя не распознанный атрибут.&lt;br /&gt;
# '''Optional non-transitive''' — могут не распознаваться всеми реализациями BGP. Если маршрутизатор не распознал атрибут, то атрибут игнорируется и при передаче соседям отбрасывается.&lt;br /&gt;
&lt;br /&gt;
=== Autonomous system path ===&lt;br /&gt;
 '''✔️Well-known Mandatory'''&lt;br /&gt;
* Описывает через какие автономные системы надо пройти, чтобы дойти до сети назначения. &lt;br /&gt;
* Номер AS добавляется при передаче обновления из одной AS eBGP-соседу в другой AS.&lt;br /&gt;
&lt;br /&gt;
Используется для:&lt;br /&gt;
* обнаружения петель&lt;br /&gt;
* применения политик&lt;br /&gt;
&lt;br /&gt;
Каждый сегмент атрибута AS path представлен в виде поля TLV (path segment type, path segment length, path segment value):&lt;br /&gt;
* '''path segment type''' — поле размером 1 байт для которого определены такие значения:&lt;br /&gt;
** 1 — AS_SET: неупорядоченное множество автономных систем, через которые прошел маршрут в сообщении Update,&lt;br /&gt;
** 2 — AS_SEQUENCE: упорядоченное множество автономных систем, через которые прошел маршрут в сообщении Update&lt;br /&gt;
* '''path segment length''' — поле размером 1 байт. Указывает сколько автономных систем указано в поле path segment value&lt;br /&gt;
* '''path segment value''' — номера автономных систем, каждая представлена полем размером 2 байта.&lt;br /&gt;
&lt;br /&gt;
=== Next-hop ===&lt;br /&gt;
 '''✔️Well-known Mandatory'''&lt;br /&gt;
* IP-адрес следующей AS для достижения сети назначения. &lt;br /&gt;
* Это IP-адрес eBGP-маршрутизатора, через который идет путь к сети назначения.&lt;br /&gt;
* Атрибут меняется при передаче префикса в другую AS (по-умолчанию подставляется ip-адрес bgp-соседа)&lt;br /&gt;
* Атрибут не меняется при передаче префикса в ту же AS&lt;br /&gt;
&lt;br /&gt;
Можно изменить с помощью policy на выходе:&lt;br /&gt;
 [edit policy-options policy-statement nexthop-self]&lt;br /&gt;
 R1# show &lt;br /&gt;
 term localpref {&lt;br /&gt;
     then {&lt;br /&gt;
         next-hop self;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Или же на входе:&lt;br /&gt;
 [edit policy-options policy-statement nexthop-peer]&lt;br /&gt;
 R2# show &lt;br /&gt;
 term localpref {&lt;br /&gt;
     then {&lt;br /&gt;
         next-hop peer-address;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Third party next hop:&lt;br /&gt;
[[Изображение:Next-hop3.png|300px]]&lt;br /&gt;
&lt;br /&gt;
=== Origin ===&lt;br /&gt;
 '''✔️Well-known Mandatory'''&lt;br /&gt;
Атрибут '''Origin''' — указывает на то, каким образом был получен маршрут в обновлении.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Возможные значения атрибута&lt;br /&gt;
|-&lt;br /&gt;
|'''0'''&lt;br /&gt;
|IGP&lt;br /&gt;
|NLRI получена внутри исходной автономной системы&lt;br /&gt;
|-&lt;br /&gt;
|'''1'''&lt;br /&gt;
| EGP&lt;br /&gt;
| NLRI выучена по протоколу Exterior Gateway Protocol (EGP)&lt;br /&gt;
|-&lt;br /&gt;
|'''2'''&lt;br /&gt;
| Incomplete&lt;br /&gt;
| NLRI была выучена каким-то другим образом&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Local preference ===&lt;br /&gt;
 '''✔️Well-known Discretionary'''&lt;br /&gt;
* Указывает маршрутизаторам внутри автономной системы как выйти за её пределы. &lt;br /&gt;
* Этот атрибут передается только в пределах одной автономной системы. &lt;br /&gt;
* На маршрутизаторах Cisco и Juniper по умолчанию значение атрибута — 100.&lt;br /&gt;
* Выбирается та точка выхода у которой значение атрибута больше.&lt;br /&gt;
* Если eBGP-сосед получает обновление с выставленным значением local preference, он игнорирует этот атрибут.&lt;br /&gt;
* В Junos lpf можно задать через policy и в protocol bgp. Если задан обоими способами, то будет назначен lpf из policy.&lt;br /&gt;
&lt;br /&gt;
=== Atomic aggregate ===&lt;br /&gt;
 '''✔️Well-known Discretionary'''&lt;br /&gt;
&lt;br /&gt;
=== Aggregator ===&lt;br /&gt;
 '''✔️Optional Transitive'''&lt;br /&gt;
&lt;br /&gt;
=== Communities ===&lt;br /&gt;
 '''✔️Optional Transitive'''&lt;br /&gt;
* Тегирование маршрутов&lt;br /&gt;
* Существуют предопределенные значения&lt;br /&gt;
* По умолчанию не пересылаются соседям&lt;br /&gt;
* Один из вариантов применения: передается соседней AS для управления входящим трафиком&lt;br /&gt;
&lt;br /&gt;
Значения от 0x00000000 до 0x0000FFFF и от 0xFFFF0000 до 0xFFFFFFFF зарезервированы.&lt;br /&gt;
&lt;br /&gt;
Как правило community отображаются в формате ASN:VALUE.&lt;br /&gt;
В таком формате, доступны для использования community от 1:0 до 65534:65535.&lt;br /&gt;
В первой части указывается номер автономной системы, а во второй значение community, которое определяет политику маршрутизации трафика.&lt;br /&gt;
&lt;br /&gt;
Некоторые значения communities предопределены. RFC1997 определяет три значения таких community. Эти значения должны одинаково распознаваться и обрабатываться всеми реализациями BGP, которые распознают атрибут community.&lt;br /&gt;
&lt;br /&gt;
Если маршрутизатор получает маршрут, в котором указано предопределенное значение communities, то он выполняет специфическое, предопределенное действие основанное на значении атрибута.&lt;br /&gt;
&lt;br /&gt;
Предопределенные значения communities (Well-known Communities):&lt;br /&gt;
&lt;br /&gt;
====no-export (0xFFFFFF01)====&lt;br /&gt;
Все маршруты которые передаются с таким значением атрибута community не должны анонсироваться за пределы конфедерации (автономная система, которая не является частью конфедерации считается конфедерацией). То есть, маршруты не анонсируются EBGP-соседям, но анонсируются внешним соседям в конфедерации,&lt;br /&gt;
&lt;br /&gt;
'''Пример использования'''&lt;br /&gt;
{{note|text=AS1 подключена к AS2 двумя линками (multinoming). AS1 анонсирует '''172.17.0/16''' в AS2. Для оптимальной маршрутизации, AS1 хочет посылать некоторые более специфичные маршруты через один из этих линков, при этом остальному интернету вовсе не обязательно получать эти специфики. Для этой цели AS1 использует community no-export, и посылает '''172.17.0/17''' в один из стыков с AS2, и '''172.17.128/17''' во второй стык. AS2 видит эти маршруты и выбирает их как более специфичные. Кроме того, эти маршруты видят все iBGP-соседи в пределах AS2. Тем не менее, за пределы AS2 в Интернет анонсируется только '''172.17.0/16'''.}}&lt;br /&gt;
&lt;br /&gt;
====no-advertise (0xFFFFFF02)==== &lt;br /&gt;
Все маршруты которые передаются с таким значением атрибута community не должны анонсироваться другим BGP-соседям.&lt;br /&gt;
&lt;br /&gt;
====no-export-subconfed (0xFFFFFF03)====&lt;br /&gt;
Все маршруты которые передаются с таким значением атрибута community не должны анонсироваться внешним BGP-соседям (ни внешним в конфедерации, ни настоящим внешним соседям). В Cisco это значение встречается и под названием local-as.&lt;br /&gt;
{{note|text=&lt;br /&gt;
Маршрутизаторы, которые не поддерживают атрибут community, будут передавать его далее, так как это transitive атрибут.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Multi exit discriminator (MED)===&lt;br /&gt;
Атрибут '''MED''':&lt;br /&gt;
* Используется для информирования eBGP-соседей о том, какой путь в автономную систему более предпочтительный. &lt;br /&gt;
* Атрибут передается между автономными системами. &lt;br /&gt;
* Маршрутизаторы внутри соседней автономной системы используют этот атрибут, но, как только обновление выходит за пределы AS, атрибут MED отбрасывается.&lt;br /&gt;
* Чем меньше значение атрибута, тем более предпочтительна точка входа в автономную систему.&lt;br /&gt;
&lt;br /&gt;
=== Weight (проприетарный атрибут Cisco) ===&lt;br /&gt;
Атрибут '''Weight''': &lt;br /&gt;
* Позволяет назначить &amp;quot;вес&amp;quot; различным путям локально на маршрутизаторе. &lt;br /&gt;
* Используется в тех случаях, когда у одного маршрутизатора есть несколько выходов из автономной системы (сам маршрутизатор является точкой выхода). &lt;br /&gt;
* Имеет значение только локально, в пределах маршрутизатора. &lt;br /&gt;
* Не передается в обновлениях.&lt;br /&gt;
* Чем больше значение атрибута, тем более предпочтителен путь выхода.&lt;br /&gt;
&lt;br /&gt;
== Касательно всех атрибутов ==&lt;br /&gt;
Атрибуты, при выборе best, считаются лучшими с наименьшими значением.&lt;br /&gt;
Это правило касается всех атрибутов, кроме Local Preference&lt;br /&gt;
&lt;br /&gt;
== Механизмы управления входящим трафиком: ==&lt;br /&gt;
*AS path prepend&lt;br /&gt;
*Community (если поддерживает провайдер)&lt;br /&gt;
*MED (подключение к одной и той же AS)&lt;br /&gt;
*Анонс разных префиксов через разных ISP&lt;br /&gt;
&lt;br /&gt;
== Механизмы управления исходящим трафиком: ==&lt;br /&gt;
*Проприетарный атрибут Cisco weight (локально на маршрутизаторе)&lt;br /&gt;
*Атрибут Local Preference (локально в AS)&lt;br /&gt;
*Балансировка трафика {{чо?}}&lt;br /&gt;
&lt;br /&gt;
== Выбор лучшего пути (BGP Active Route Selection) ==&lt;br /&gt;
&lt;br /&gt;
* Juniper&lt;br /&gt;
# Prefer highest local preference value&lt;br /&gt;
# Prefer shortest AS-path length&lt;br /&gt;
# Prefer lowest Origin value&lt;br /&gt;
# Prefer lowest MED value&lt;br /&gt;
# Prefer routes learned from an EBGP peer over an IBGP peer&lt;br /&gt;
# If the remaining routes were learned through IBGP, use the path with the lowest IGP cost to the IBGP peer.&lt;br /&gt;
# For EBGP received routes, prefer the current active route; otherwise, prefer routes from the peer with the lowest RID&lt;br /&gt;
#Prefer paths with the shortest cluster length&lt;br /&gt;
# Prefer routes from the peer with the lowest peer ID&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Multipath ==&lt;br /&gt;
&lt;br /&gt;
===Link Bandwidth Extended Community===&lt;br /&gt;
При включенном multipath можно задать желаемую балансировку между линками через extended community.&lt;br /&gt;
Это механизм описан в draft-ietf-idr-link-bandwidth-06, и не является стандартизированным, следовательно,&lt;br /&gt;
возможно, он не будет работать с некоторыми вендорами. В JunOS поддерживается.&lt;br /&gt;
&lt;br /&gt;
Пример использования:&lt;br /&gt;
&lt;br /&gt;
R1 и R2 соединены напрямую через ва сабинтерфейса, на каждом из которых висит своя /30 сеть&lt;br /&gt;
&lt;br /&gt;
 |     | ge-0/0/0.10 ----- ge-0/0/0.10 R2 |    |&lt;br /&gt;
 |  R1 |                                  | R2 |&lt;br /&gt;
 |     | ge-0/0/0.20 ----- ge-0/0/0.20 R2 |    |&lt;br /&gt;
&lt;br /&gt;
Конфиг R1:&lt;br /&gt;
 R1&amp;gt; show configuration protocols bgp &lt;br /&gt;
 group ebgp {&lt;br /&gt;
     multipath;&lt;br /&gt;
     neighbor 10.1.0.2 {&lt;br /&gt;
         description R2;&lt;br /&gt;
         export from-direct;&lt;br /&gt;
         peer-as 2222;&lt;br /&gt;
     }&lt;br /&gt;
     neighbor 10.2.0.2 {&lt;br /&gt;
         description R2;&lt;br /&gt;
         export from-direct;&lt;br /&gt;
         peer-as 2222;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Конфиг R2:&lt;br /&gt;
 R2&amp;gt; show configuration interfaces lo0   &lt;br /&gt;
 unit 0 {&lt;br /&gt;
     family inet {&lt;br /&gt;
         address 2.2.2.2/32;&lt;br /&gt;
     }&lt;br /&gt;
     family mpls;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; show configuration policy-options &lt;br /&gt;
 policy-statement bw20 {&lt;br /&gt;
     then {&lt;br /&gt;
         community add bw20;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 policy-statement bw80 {&lt;br /&gt;
     then {&lt;br /&gt;
         community add bw80;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 policy-statement from-direct {&lt;br /&gt;
     term redistribute-direct {&lt;br /&gt;
         from protocol direct;&lt;br /&gt;
         then accept;&lt;br /&gt;
     }&lt;br /&gt;
     term default {&lt;br /&gt;
         then reject;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 community bw20 members bandwidth:2222:2500000; // 2500000 байт в секунду — это 20% от 100Мегабит&lt;br /&gt;
 community bw80 members bandwidth:2222:10000000; // 10000000 байт в секунду — это 80% от 100Мегабит&lt;br /&gt;
 &lt;br /&gt;
 R2&amp;gt; show configuration protocols bgp &lt;br /&gt;
 group ebgp {&lt;br /&gt;
     neighbor 10.1.0.1 {&lt;br /&gt;
         description R1;&lt;br /&gt;
         export [ bw20 from-direct ]; // На одно из  соседств навешивается community, отображающее, что линк загружен на 20%&lt;br /&gt;
         peer-as 1111;&lt;br /&gt;
     }&lt;br /&gt;
     neighbor 10.2.0.1 {&lt;br /&gt;
         description R1;&lt;br /&gt;
         export [ bw80 from-direct ];// На второе соседство навешивается community, отображающее, что линк загружен на 80%&lt;br /&gt;
         peer-as 1111;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Что получилось:&lt;br /&gt;
&lt;br /&gt;
 R1&amp;gt; show route 2.2.2.2 extensive        &lt;br /&gt;
 &lt;br /&gt;
 inet.0: 11 destinations, 19 routes (11 active, 0 holddown, 0 hidden)&lt;br /&gt;
 2.2.2.2/32 (2 entries, 1 announced)&lt;br /&gt;
 TSI:&lt;br /&gt;
 KRT in-kernel 2.2.2.2/32 -&amp;gt; {10.2.0.2, 10.1.0.2}&lt;br /&gt;
        *BGP    Preference: 170/-101&lt;br /&gt;
                Next hop type: Router, Next hop index: 262145&lt;br /&gt;
                Address: 0x9404010&lt;br /&gt;
                Next-hop reference count: 8&lt;br /&gt;
                Source: 10.1.0.2&lt;br /&gt;
                '''Next hop: 10.2.0.2 via ge-0/0/0.20 balance 80%'''&lt;br /&gt;
                '''Next hop: 10.1.0.2 via ge-0/0/0.10 balance 20%, selected'''&lt;br /&gt;
                State: &amp;lt;Active Ext&amp;gt;&lt;br /&gt;
                Local AS:  1111 Peer AS:  2222&lt;br /&gt;
                Age: 1:20:49 &lt;br /&gt;
                Task: BGP_2222.10.1.0.2+179&lt;br /&gt;
                Announcement bits (1): 0-KRT &lt;br /&gt;
                AS path: 2222 I&lt;br /&gt;
                '''Communities: bandwidth:2222:2500000'''&lt;br /&gt;
                '''Accepted Multipath'''&lt;br /&gt;
                Localpref: 100&lt;br /&gt;
                Router ID: 2.2.2.2&lt;br /&gt;
&lt;br /&gt;
==Modifying AS Path==&lt;br /&gt;
&lt;br /&gt;
===Option 1: remove-private===&lt;br /&gt;
&lt;br /&gt;
===Option 2: local-as===&lt;br /&gt;
&lt;br /&gt;
 [edit routing-options]&lt;br /&gt;
 R1# show &lt;br /&gt;
 autonomous-system 1111;&lt;br /&gt;
 &lt;br /&gt;
 [edit protocols bgp group ebgp]&lt;br /&gt;
 R1# show &lt;br /&gt;
 neighbor 10.1.0.2 {&lt;br /&gt;
     peer-as 2222;&lt;br /&gt;
     local-as 3333;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
При такой конфигурации R1, EBGP-сосед, который '''ожидает''', что у R1 будет AS3333 сможет установить соседство с R1, хотя, по факту R1 принадлежит AS1111.&lt;br /&gt;
Результат:&lt;br /&gt;
 R1&amp;gt; show bgp neighbor &lt;br /&gt;
 Peer: 10.1.0.2+179 AS 2222     Local: 10.1.0.1+62745 '''AS 3333''' &lt;br /&gt;
   Type: External    State: Established    Flags: &amp;lt;Sync&amp;gt;&lt;br /&gt;
   Last State: OpenConfirm   Last Event: RecvKeepAlive&lt;br /&gt;
   ...&lt;br /&gt;
   Holdtime: 90 Preference: 170 Localpref: 110 '''Local AS: 3333 Local System AS: 1111'''&lt;br /&gt;
   Number of flaps: 0&lt;br /&gt;
   Peer ID: 2.2.2.2         Local ID: 1.1.1.1           Active Holdtime: 90&lt;br /&gt;
   ...&lt;br /&gt;
&lt;br /&gt;
'''Зачем это нужно'''&lt;br /&gt;
&lt;br /&gt;
Предположим, оператор с AS1111 купил сеть оператора с AS3333. У AS3333 были свои клиенты, подключенные по BGP, которые не готовы или не хотят изменять конфигурацию на своих роутерах. В таком случае можно временно применить опцию local-as, чтобы выступить для них от лица предыдущей AS (в примере - 3333), но внутри сети перевести инфораструктуру на AS1111.&lt;br /&gt;
&lt;br /&gt;
Если добавить ключевое слово private:&lt;br /&gt;
 [edit protocols bgp group ebgp]&lt;br /&gt;
 R1# show &lt;br /&gt;
 neighbor 10.1.0.2 {&lt;br /&gt;
     peer-as 2222;&lt;br /&gt;
     local-as 3333 '''private''';&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
То R1 вообще не будет добавлять AS3333 при анонсе маршрутов, получаемых от 10.1.0.2 своим соседям.&lt;/div&gt;</summary>
		<author><name>Владислав Павкин</name></author>
	</entry>
	<entry>
		<id>https://juniper-exam.ru/index.php?title=%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD:%D0%A7%D0%BE%3F&amp;diff=117</id>
		<title>Шаблон:Чо?</title>
		<link rel="alternate" type="text/html" href="https://juniper-exam.ru/index.php?title=%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD:%D0%A7%D0%BE%3F&amp;diff=117"/>
		<updated>2016-10-22T14:30:57Z</updated>

		<summary type="html">&lt;p&gt;Владислав Павкин: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;span style=&amp;quot;color: orange;&amp;gt;''← Чоо? O_o''&amp;lt;/span&amp;gt;&lt;/div&gt;</summary>
		<author><name>Владислав Павкин</name></author>
	</entry>
	<entry>
		<id>https://juniper-exam.ru/index.php?title=%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD:%D0%A7%D0%BE%3F&amp;diff=116</id>
		<title>Шаблон:Чо?</title>
		<link rel="alternate" type="text/html" href="https://juniper-exam.ru/index.php?title=%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD:%D0%A7%D0%BE%3F&amp;diff=116"/>
		<updated>2016-10-22T14:27:59Z</updated>

		<summary type="html">&lt;p&gt;Владислав Павкин: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''← Чоо? O_o''&lt;/div&gt;</summary>
		<author><name>Владислав Павкин</name></author>
	</entry>
	<entry>
		<id>https://juniper-exam.ru/index.php?title=BGP&amp;diff=115</id>
		<title>BGP</title>
		<link rel="alternate" type="text/html" href="https://juniper-exam.ru/index.php?title=BGP&amp;diff=115"/>
		<updated>2016-10-22T14:27:19Z</updated>

		<summary type="html">&lt;p&gt;Владислав Павкин: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Состояния соседства ==&lt;br /&gt;
http://habrastorage.org/getpro/habr/post_images/442/780/549/442780549c2f45cdda10773121b2800d.png&lt;br /&gt;
&lt;br /&gt;
== Сообщения ==&lt;br /&gt;
*Open - отправляется только на стадии установления соседства. Содержит параметры BGP соседа.&lt;br /&gt;
*Update - передает routing info между соседями. Атрибуты и список префиксов, подходящий под данные атрибуты.&lt;br /&gt;
*Keepalive - для удостоверения, что с соседством все ок.&lt;br /&gt;
*Notification - в случае если не прошел keepalive или update.&lt;br /&gt;
*Refresh - soft clearing BGP сессии.&lt;br /&gt;
&lt;br /&gt;
== Атрибуты пути (path attributes) ==&lt;br /&gt;
Атрибуты пути разделены на 4 категории:&lt;br /&gt;
# '''Well-known mandatory''' — все маршрутизаторы, работающие по протоколу BGP, должны распознавать эти атрибуты. Должны присутствовать во всех обновлениях (update).&lt;br /&gt;
# '''Well-known discretionary''' — все маршрутизаторы, работающие по протоколу BGP, должны распознавать эти атрибуты. Могут присутствовать в обновлениях (update), но их присутствие не обязательно.&lt;br /&gt;
# '''Optional transitive''' — могут не распознаваться всеми реализациями BGP. Если маршрутизатор не распознал атрибут, он помечает обновление как частичное (partial) и отправляет его дальше соседям, сохраняя не распознанный атрибут.&lt;br /&gt;
# '''Optional non-transitive''' — могут не распознаваться всеми реализациями BGP. Если маршрутизатор не распознал атрибут, то атрибут игнорируется и при передаче соседям отбрасывается.&lt;br /&gt;
&lt;br /&gt;
Примеры атрибутов BGP:&lt;br /&gt;
* Well-known mandatory:&lt;br /&gt;
** Autonomous system path&lt;br /&gt;
** Next-hop&lt;br /&gt;
** Origin&lt;br /&gt;
* Well-known discretionary:&lt;br /&gt;
** Local preference&lt;br /&gt;
** Atomic aggregate&lt;br /&gt;
* Optional transitive:&lt;br /&gt;
** Aggregator&lt;br /&gt;
** Communities&lt;br /&gt;
*  Optional non-transitive:&lt;br /&gt;
** Multi-exit discriminator (MED)&lt;br /&gt;
&lt;br /&gt;
=== Autonomous system path ===&lt;br /&gt;
 '''✔️Well-known Mandatory'''&lt;br /&gt;
* Описывает через какие автономные системы надо пройти, чтобы дойти до сети назначения. &lt;br /&gt;
* Номер AS добавляется при передаче обновления из одной AS eBGP-соседу в другой AS.&lt;br /&gt;
&lt;br /&gt;
Используется для:&lt;br /&gt;
* обнаружения петель&lt;br /&gt;
* применения политик&lt;br /&gt;
&lt;br /&gt;
Каждый сегмент атрибута AS path представлен в виде поля TLV (path segment type, path segment length, path segment value):&lt;br /&gt;
* '''path segment type''' — поле размером 1 байт для которого определены такие значения:&lt;br /&gt;
** 1 — AS_SET: неупорядоченное множество автономных систем, через которые прошел маршрут в сообщении Update,&lt;br /&gt;
** 2 — AS_SEQUENCE: упорядоченное множество автономных систем, через которые прошел маршрут в сообщении Update&lt;br /&gt;
* '''path segment length''' — поле размером 1 байт. Указывает сколько автономных систем указано в поле path segment value&lt;br /&gt;
* '''path segment value''' — номера автономных систем, каждая представлена полем размером 2 байта.&lt;br /&gt;
&lt;br /&gt;
=== Next-hop ===&lt;br /&gt;
 '''✔️Well-known Mandatory'''&lt;br /&gt;
* IP-адрес следующей AS для достижения сети назначения. &lt;br /&gt;
* Это IP-адрес eBGP-маршрутизатора, через который идет путь к сети назначения.&lt;br /&gt;
* Атрибут меняется при передаче префикса в другую AS (по-умолчанию подставляется ip-адрес bgp-соседа)&lt;br /&gt;
* Атрибут не меняется при передаче префикса в ту же AS&lt;br /&gt;
&lt;br /&gt;
Можно изменить с помощью policy на выходе:&lt;br /&gt;
 [edit policy-options policy-statement nexthop-self]&lt;br /&gt;
 R1# show &lt;br /&gt;
 term localpref {&lt;br /&gt;
     then {&lt;br /&gt;
         next-hop self;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Или же на входе:&lt;br /&gt;
 [edit policy-options policy-statement nexthop-peer]&lt;br /&gt;
 R2# show &lt;br /&gt;
 term localpref {&lt;br /&gt;
     then {&lt;br /&gt;
         next-hop peer-address;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Third party next hop:&lt;br /&gt;
[[Изображение:Next-hop3.png|300px]]&lt;br /&gt;
&lt;br /&gt;
=== Origin ===&lt;br /&gt;
 '''✔️Well-known Mandatory'''&lt;br /&gt;
Атрибут '''Origin''' — указывает на то, каким образом был получен маршрут в обновлении.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Возможные значения атрибута&lt;br /&gt;
|-&lt;br /&gt;
|'''0'''&lt;br /&gt;
|IGP&lt;br /&gt;
|NLRI получена внутри исходной автономной системы&lt;br /&gt;
|-&lt;br /&gt;
|'''1'''&lt;br /&gt;
| EGP&lt;br /&gt;
| NLRI выучена по протоколу Exterior Gateway Protocol (EGP)&lt;br /&gt;
|-&lt;br /&gt;
|'''2'''&lt;br /&gt;
| Incomplete&lt;br /&gt;
| NLRI была выучена каким-то другим образом&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Local preference ===&lt;br /&gt;
 '''✔️Well-known Discretionary'''&lt;br /&gt;
* Указывает маршрутизаторам внутри автономной системы как выйти за её пределы. &lt;br /&gt;
* Этот атрибут передается только в пределах одной автономной системы. &lt;br /&gt;
* На маршрутизаторах Cisco и Juniper по умолчанию значение атрибута — 100.&lt;br /&gt;
* Выбирается та точка выхода у которой значение атрибута больше.&lt;br /&gt;
* Если eBGP-сосед получает обновление с выставленным значением local preference, он игнорирует этот атрибут.&lt;br /&gt;
* В Junos lpf можно задать через policy и в protocol bgp. Если задан обоими способами, то будет назначен lpf из policy.&lt;br /&gt;
&lt;br /&gt;
=== Atomic aggregate ===&lt;br /&gt;
 '''✔️Well-known Discretionary'''&lt;br /&gt;
&lt;br /&gt;
=== Aggregator ===&lt;br /&gt;
 '''✔️Optional Transitive'''&lt;br /&gt;
&lt;br /&gt;
=== Communities ===&lt;br /&gt;
 '''✔️Optional Transitive'''&lt;br /&gt;
* Тегирование маршрутов&lt;br /&gt;
* Существуют предопределенные значения&lt;br /&gt;
* По умолчанию не пересылаются соседям&lt;br /&gt;
* Один из вариантов применения: передается соседней AS для управления входящим трафиком&lt;br /&gt;
&lt;br /&gt;
Значения от 0x00000000 до 0x0000FFFF и от 0xFFFF0000 до 0xFFFFFFFF зарезервированы.&lt;br /&gt;
&lt;br /&gt;
Как правило community отображаются в формате ASN:VALUE.&lt;br /&gt;
В таком формате, доступны для использования community от 1:0 до 65534:65535.&lt;br /&gt;
В первой части указывается номер автономной системы, а во второй значение community, которое определяет политику маршрутизации трафика.&lt;br /&gt;
&lt;br /&gt;
Некоторые значения communities предопределены. RFC1997 определяет три значения таких community. Эти значения должны одинаково распознаваться и обрабатываться всеми реализациями BGP, которые распознают атрибут community.&lt;br /&gt;
&lt;br /&gt;
Если маршрутизатор получает маршрут, в котором указано предопределенное значение communities, то он выполняет специфическое, предопределенное действие основанное на значении атрибута.&lt;br /&gt;
&lt;br /&gt;
Предопределенные значения communities (Well-known Communities):&lt;br /&gt;
&lt;br /&gt;
====no-export (0xFFFFFF01)====&lt;br /&gt;
Все маршруты которые передаются с таким значением атрибута community не должны анонсироваться за пределы конфедерации (автономная система, которая не является частью конфедерации считается конфедерацией). То есть, маршруты не анонсируются EBGP-соседям, но анонсируются внешним соседям в конфедерации,&lt;br /&gt;
&lt;br /&gt;
'''Пример использования'''&lt;br /&gt;
{{note|text=AS1 подключена к AS2 двумя линками (multinoming). AS1 анонсирует '''172.17.0/16''' в AS2. Для оптимальной маршрутизации, AS1 хочет посылать некоторые более специфичные маршруты через один из этих линков, при этом остальному интернету вовсе не обязательно получать эти специфики. Для этой цели AS1 использует community no-export, и посылает '''172.17.0/17''' в один из стыков с AS2, и '''172.17.128/17''' во второй стык. AS2 видит эти маршруты и выбирает их как более специфичные. Кроме того, эти маршруты видят все iBGP-соседи в пределах AS2. Тем не менее, за пределы AS2 в Интернет анонсируется только '''172.17.0/16'''.}}&lt;br /&gt;
&lt;br /&gt;
====no-advertise (0xFFFFFF02)==== &lt;br /&gt;
Все маршруты которые передаются с таким значением атрибута community не должны анонсироваться другим BGP-соседям.&lt;br /&gt;
&lt;br /&gt;
====no-export-subconfed (0xFFFFFF03)====&lt;br /&gt;
Все маршруты которые передаются с таким значением атрибута community не должны анонсироваться внешним BGP-соседям (ни внешним в конфедерации, ни настоящим внешним соседям). В Cisco это значение встречается и под названием local-as.&lt;br /&gt;
{{note|text=&lt;br /&gt;
Маршрутизаторы, которые не поддерживают атрибут community, будут передавать его далее, так как это transitive атрибут.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Multi exit discriminator (MED)===&lt;br /&gt;
Атрибут '''MED''':&lt;br /&gt;
* Используется для информирования eBGP-соседей о том, какой путь в автономную систему более предпочтительный. &lt;br /&gt;
* Атрибут передается между автономными системами. &lt;br /&gt;
* Маршрутизаторы внутри соседней автономной системы используют этот атрибут, но, как только обновление выходит за пределы AS, атрибут MED отбрасывается.&lt;br /&gt;
* Чем меньше значение атрибута, тем более предпочтительна точка входа в автономную систему.&lt;br /&gt;
&lt;br /&gt;
=== Weight (проприетарный атрибут Cisco) ===&lt;br /&gt;
Атрибут '''Weight''': &lt;br /&gt;
* Позволяет назначить &amp;quot;вес&amp;quot; различным путям локально на маршрутизаторе. &lt;br /&gt;
* Используется в тех случаях, когда у одного маршрутизатора есть несколько выходов из автономной системы (сам маршрутизатор является точкой выхода). &lt;br /&gt;
* Имеет значение только локально, в пределах маршрутизатора. &lt;br /&gt;
* Не передается в обновлениях.&lt;br /&gt;
* Чем больше значение атрибута, тем более предпочтителен путь выхода.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Касательно всех атрибутов ==&lt;br /&gt;
Атрибуты, при выборе best, считаются лучшими с наименьшими значением.&lt;br /&gt;
Это правило касается всех атрибутов, кроме Local Preference&lt;br /&gt;
&lt;br /&gt;
== Механизмы управления входящим трафиком: ==&lt;br /&gt;
*AS path prepend&lt;br /&gt;
*Community (если поддерживает провайдер)&lt;br /&gt;
*MED (подключение к одной и той же AS)&lt;br /&gt;
*Анонс разных префиксов через разных ISP&lt;br /&gt;
&lt;br /&gt;
== Механизмы управления исходящим трафиком: ==&lt;br /&gt;
*Проприетарный атрибут Cisco weight (локально на маршрутизаторе)&lt;br /&gt;
*Атрибут Local Preference (локально в AS)&lt;br /&gt;
*Балансировка трафика {{чо?}}&lt;br /&gt;
&lt;br /&gt;
== Выбор лучшего пути (BGP Active Route Selection) ==&lt;br /&gt;
&lt;br /&gt;
* Juniper&lt;br /&gt;
# Prefer highest local preference value&lt;br /&gt;
# Prefer shortest AS-path length&lt;br /&gt;
# Prefer lowest Origin value&lt;br /&gt;
# Prefer lowest MED value&lt;br /&gt;
# Prefer routes learned from an EBGP peer over an IBGP peer&lt;br /&gt;
# If the remaining routes were learned through IBGP, use the path with the lowest IGP cost to the IBGP peer.&lt;br /&gt;
# For EBGP received routes, prefer the current active route; otherwise, prefer routes from the peer with the lowest RID&lt;br /&gt;
#Prefer paths with the shortest cluster length&lt;br /&gt;
# Prefer routes from the peer with the lowest peer ID&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Multipath ==&lt;br /&gt;
&lt;br /&gt;
===Link Bandwidth Extended Community===&lt;br /&gt;
При включенном multipath можно задать желаемую балансировку между линками через extended community.&lt;br /&gt;
Это механизм описан в draft-ietf-idr-link-bandwidth-06, и не является стандартизированным, следовательно,&lt;br /&gt;
возможно, он не будет работать с некоторыми вендорами. В JunOS поддерживается.&lt;br /&gt;
&lt;br /&gt;
Пример использования:&lt;br /&gt;
&lt;br /&gt;
R1 и R2 соединены напрямую через ва сабинтерфейса, на каждом из которых висит своя /30 сеть&lt;br /&gt;
&lt;br /&gt;
 |     | ge-0/0/0.10 ----- ge-0/0/0.10 R2 |    |&lt;br /&gt;
 |  R1 |                                  | R2 |&lt;br /&gt;
 |     | ge-0/0/0.20 ----- ge-0/0/0.20 R2 |    |&lt;br /&gt;
&lt;br /&gt;
Конфиг R1:&lt;br /&gt;
 R1&amp;gt; show configuration protocols bgp &lt;br /&gt;
 group ebgp {&lt;br /&gt;
     multipath;&lt;br /&gt;
     neighbor 10.1.0.2 {&lt;br /&gt;
         description R2;&lt;br /&gt;
         export from-direct;&lt;br /&gt;
         peer-as 2222;&lt;br /&gt;
     }&lt;br /&gt;
     neighbor 10.2.0.2 {&lt;br /&gt;
         description R2;&lt;br /&gt;
         export from-direct;&lt;br /&gt;
         peer-as 2222;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Конфиг R2:&lt;br /&gt;
 R2&amp;gt; show configuration interfaces lo0   &lt;br /&gt;
 unit 0 {&lt;br /&gt;
     family inet {&lt;br /&gt;
         address 2.2.2.2/32;&lt;br /&gt;
     }&lt;br /&gt;
     family mpls;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; show configuration policy-options &lt;br /&gt;
 policy-statement bw20 {&lt;br /&gt;
     then {&lt;br /&gt;
         community add bw20;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 policy-statement bw80 {&lt;br /&gt;
     then {&lt;br /&gt;
         community add bw80;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 policy-statement from-direct {&lt;br /&gt;
     term redistribute-direct {&lt;br /&gt;
         from protocol direct;&lt;br /&gt;
         then accept;&lt;br /&gt;
     }&lt;br /&gt;
     term default {&lt;br /&gt;
         then reject;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 community bw20 members bandwidth:2222:2500000; // 2500000 байт в секунду — это 20% от 100Мегабит&lt;br /&gt;
 community bw80 members bandwidth:2222:10000000; // 10000000 байт в секунду — это 80% от 100Мегабит&lt;br /&gt;
 &lt;br /&gt;
 R2&amp;gt; show configuration protocols bgp &lt;br /&gt;
 group ebgp {&lt;br /&gt;
     neighbor 10.1.0.1 {&lt;br /&gt;
         description R1;&lt;br /&gt;
         export [ bw20 from-direct ]; // На одно из  соседств навешивается community, отображающее, что линк загружен на 20%&lt;br /&gt;
         peer-as 1111;&lt;br /&gt;
     }&lt;br /&gt;
     neighbor 10.2.0.1 {&lt;br /&gt;
         description R1;&lt;br /&gt;
         export [ bw80 from-direct ];// На второе соседство навешивается community, отображающее, что линк загружен на 80%&lt;br /&gt;
         peer-as 1111;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Что получилось:&lt;br /&gt;
&lt;br /&gt;
 R1&amp;gt; show route 2.2.2.2 extensive        &lt;br /&gt;
 &lt;br /&gt;
 inet.0: 11 destinations, 19 routes (11 active, 0 holddown, 0 hidden)&lt;br /&gt;
 2.2.2.2/32 (2 entries, 1 announced)&lt;br /&gt;
 TSI:&lt;br /&gt;
 KRT in-kernel 2.2.2.2/32 -&amp;gt; {10.2.0.2, 10.1.0.2}&lt;br /&gt;
        *BGP    Preference: 170/-101&lt;br /&gt;
                Next hop type: Router, Next hop index: 262145&lt;br /&gt;
                Address: 0x9404010&lt;br /&gt;
                Next-hop reference count: 8&lt;br /&gt;
                Source: 10.1.0.2&lt;br /&gt;
                '''Next hop: 10.2.0.2 via ge-0/0/0.20 balance 80%'''&lt;br /&gt;
                '''Next hop: 10.1.0.2 via ge-0/0/0.10 balance 20%, selected'''&lt;br /&gt;
                State: &amp;lt;Active Ext&amp;gt;&lt;br /&gt;
                Local AS:  1111 Peer AS:  2222&lt;br /&gt;
                Age: 1:20:49 &lt;br /&gt;
                Task: BGP_2222.10.1.0.2+179&lt;br /&gt;
                Announcement bits (1): 0-KRT &lt;br /&gt;
                AS path: 2222 I&lt;br /&gt;
                '''Communities: bandwidth:2222:2500000'''&lt;br /&gt;
                '''Accepted Multipath'''&lt;br /&gt;
                Localpref: 100&lt;br /&gt;
                Router ID: 2.2.2.2&lt;br /&gt;
&lt;br /&gt;
==Modifying AS Path==&lt;br /&gt;
&lt;br /&gt;
===Option 1: remove-private===&lt;br /&gt;
&lt;br /&gt;
===Option 2: local-as===&lt;br /&gt;
&lt;br /&gt;
 [edit routing-options]&lt;br /&gt;
 R1# show &lt;br /&gt;
 autonomous-system 1111;&lt;br /&gt;
 &lt;br /&gt;
 [edit protocols bgp group ebgp]&lt;br /&gt;
 R1# show &lt;br /&gt;
 neighbor 10.1.0.2 {&lt;br /&gt;
     peer-as 2222;&lt;br /&gt;
     local-as 3333;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
При такой конфигурации R1, EBGP-сосед, который '''ожидает''', что у R1 будет AS3333 сможет установить соседство с R1, хотя, по факту R1 принадлежит AS1111.&lt;br /&gt;
Результат:&lt;br /&gt;
 R1&amp;gt; show bgp neighbor &lt;br /&gt;
 Peer: 10.1.0.2+179 AS 2222     Local: 10.1.0.1+62745 '''AS 3333''' &lt;br /&gt;
   Type: External    State: Established    Flags: &amp;lt;Sync&amp;gt;&lt;br /&gt;
   Last State: OpenConfirm   Last Event: RecvKeepAlive&lt;br /&gt;
   ...&lt;br /&gt;
   Holdtime: 90 Preference: 170 Localpref: 110 '''Local AS: 3333 Local System AS: 1111'''&lt;br /&gt;
   Number of flaps: 0&lt;br /&gt;
   Peer ID: 2.2.2.2         Local ID: 1.1.1.1           Active Holdtime: 90&lt;br /&gt;
   ...&lt;br /&gt;
&lt;br /&gt;
'''Зачем это нужно'''&lt;br /&gt;
&lt;br /&gt;
Предположим, оператор с AS1111 купил сеть оператора с AS3333. У AS3333 были свои клиенты, подключенные по BGP, которые не готовы или не хотят изменять конфигурацию на своих роутерах. В таком случае можно временно применить опцию local-as, чтобы выступить для них от лица предыдущей AS (в примере - 3333), но внутри сети перевести инфораструктуру на AS1111.&lt;br /&gt;
&lt;br /&gt;
Если добавить ключевое слово private:&lt;br /&gt;
 [edit protocols bgp group ebgp]&lt;br /&gt;
 R1# show &lt;br /&gt;
 neighbor 10.1.0.2 {&lt;br /&gt;
     peer-as 2222;&lt;br /&gt;
     local-as 3333 '''private''';&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
То R1 вообще не будет добавлять AS3333 при анонсе маршрутов, получаемых от 10.1.0.2 своим соседям.&lt;/div&gt;</summary>
		<author><name>Владислав Павкин</name></author>
	</entry>
	<entry>
		<id>https://juniper-exam.ru/index.php?title=%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD:%D0%A7%D0%BE%3F&amp;diff=114</id>
		<title>Шаблон:Чо?</title>
		<link rel="alternate" type="text/html" href="https://juniper-exam.ru/index.php?title=%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD:%D0%A7%D0%BE%3F&amp;diff=114"/>
		<updated>2016-10-22T14:26:39Z</updated>

		<summary type="html">&lt;p&gt;Владислав Павкин: Новая страница: «''&amp;lt;- Чоо? O_o''»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''&amp;lt;- Чоо? O_o''&lt;/div&gt;</summary>
		<author><name>Владислав Павкин</name></author>
	</entry>
	<entry>
		<id>https://juniper-exam.ru/index.php?title=BGP&amp;diff=113</id>
		<title>BGP</title>
		<link rel="alternate" type="text/html" href="https://juniper-exam.ru/index.php?title=BGP&amp;diff=113"/>
		<updated>2016-10-22T14:07:01Z</updated>

		<summary type="html">&lt;p&gt;Владислав Павкин: /* Origin */ Добавил свойств атрибутов&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Состояния соседства ==&lt;br /&gt;
http://habrastorage.org/getpro/habr/post_images/442/780/549/442780549c2f45cdda10773121b2800d.png&lt;br /&gt;
&lt;br /&gt;
== Сообщения ==&lt;br /&gt;
*Open - отправляется только на стадии установления соседства. Содержит параметры BGP соседа.&lt;br /&gt;
*Update - передает routing info между соседями. Атрибуты и список префиксов, подходящий под данные атрибуты.&lt;br /&gt;
*Keepalive - для удостоверения, что с соседством все ок.&lt;br /&gt;
*Notification - в случае если не прошел keepalive или update.&lt;br /&gt;
*Refresh - soft clearing BGP сессии.&lt;br /&gt;
&lt;br /&gt;
== Атрибуты пути (path attributes) ==&lt;br /&gt;
Атрибуты пути разделены на 4 категории:&lt;br /&gt;
# '''Well-known mandatory''' — все маршрутизаторы, работающие по протоколу BGP, должны распознавать эти атрибуты. Должны присутствовать во всех обновлениях (update).&lt;br /&gt;
# '''Well-known discretionary''' — все маршрутизаторы, работающие по протоколу BGP, должны распознавать эти атрибуты. Могут присутствовать в обновлениях (update), но их присутствие не обязательно.&lt;br /&gt;
# '''Optional transitive''' — могут не распознаваться всеми реализациями BGP. Если маршрутизатор не распознал атрибут, он помечает обновление как частичное (partial) и отправляет его дальше соседям, сохраняя не распознанный атрибут.&lt;br /&gt;
# '''Optional non-transitive''' — могут не распознаваться всеми реализациями BGP. Если маршрутизатор не распознал атрибут, то атрибут игнорируется и при передаче соседям отбрасывается.&lt;br /&gt;
&lt;br /&gt;
Примеры атрибутов BGP:&lt;br /&gt;
* Well-known mandatory:&lt;br /&gt;
** Autonomous system path&lt;br /&gt;
** Next-hop&lt;br /&gt;
** Origin&lt;br /&gt;
* Well-known discretionary:&lt;br /&gt;
** Local preference&lt;br /&gt;
** Atomic aggregate&lt;br /&gt;
* Optional transitive:&lt;br /&gt;
** Aggregator&lt;br /&gt;
** Communities&lt;br /&gt;
*  Optional non-transitive:&lt;br /&gt;
** Multi-exit discriminator (MED)&lt;br /&gt;
&lt;br /&gt;
=== Autonomous system path ===&lt;br /&gt;
[[Изображение:AS_path.png|400px|right]]&lt;br /&gt;
&lt;br /&gt;
Атрибут Autonomous system path (AS Path):&lt;br /&gt;
* Описывает через какие автономные системы надо пройти, чтобы дойти до сети назначения. &lt;br /&gt;
* Номер AS добавляется при передаче обновления из одной AS eBGP-соседу в другой AS.&lt;br /&gt;
&lt;br /&gt;
Используется для:&lt;br /&gt;
* обнаружения петель&lt;br /&gt;
* применения политик&lt;br /&gt;
&lt;br /&gt;
Каждый сегмент атрибута AS path представлен в виде поля TLV (path segment type, path segment length, path segment value):&lt;br /&gt;
* '''path segment type''' — поле размером 1 байт для которого определены такие значения:&lt;br /&gt;
** 1 — AS_SET: неупорядоченное множество автономных систем, через которые прошел маршрут в сообщении Update,&lt;br /&gt;
** 2 — AS_SEQUENCE: упорядоченное множество автономных систем, через которые прошел маршрут в сообщении Update&lt;br /&gt;
* '''path segment length''' — поле размером 1 байт. Указывает сколько автономных систем указано в поле path segment value&lt;br /&gt;
* '''path segment value''' — номера автономных систем, каждая представлена полем размером 2 байта.&lt;br /&gt;
&lt;br /&gt;
=== Next-hop ===&lt;br /&gt;
[[Изображение:Next-hop.png|400px|right]]&lt;br /&gt;
&lt;br /&gt;
Атрибут '''Next-hop''' &lt;br /&gt;
* IP-адрес следующей AS для достижения сети назначения. &lt;br /&gt;
* Это IP-адрес eBGP-маршрутизатора, через который идет путь к сети назначения.&lt;br /&gt;
* Атрибут меняется при передаче префикса в другую AS (по-умолчанию подставляется ip-адрес bgp-соседа)&lt;br /&gt;
* Атрибут не меняется при передаче префикса в ту же AS&lt;br /&gt;
&lt;br /&gt;
Можно изменить с помощью policy на выходе:&lt;br /&gt;
 [edit policy-options policy-statement nexthop-self]&lt;br /&gt;
 R1# show &lt;br /&gt;
 term localpref {&lt;br /&gt;
     then {&lt;br /&gt;
         next-hop self;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Или же на входе:&lt;br /&gt;
 [edit policy-options policy-statement nexthop-peer]&lt;br /&gt;
 R2# show &lt;br /&gt;
 term localpref {&lt;br /&gt;
     then {&lt;br /&gt;
         next-hop peer-address;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Third party next hop:&lt;br /&gt;
[[Изображение:Next-hop3.png|300px]]&lt;br /&gt;
&lt;br /&gt;
=== Origin ===&lt;br /&gt;
'''✔️Well-known''', '''✔️Mandatory'''&lt;br /&gt;
&lt;br /&gt;
Атрибут '''Origin''' — указывает на то, каким образом был получен маршрут в обновлении.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Возможные значения атрибута&lt;br /&gt;
|-&lt;br /&gt;
|'''0'''&lt;br /&gt;
|IGP&lt;br /&gt;
|NLRI получена внутри исходной автономной системы&lt;br /&gt;
|-&lt;br /&gt;
|'''1'''&lt;br /&gt;
| EGP&lt;br /&gt;
| NLRI выучена по протоколу Exterior Gateway Protocol (EGP)&lt;br /&gt;
|-&lt;br /&gt;
|'''2'''&lt;br /&gt;
| Incomplete&lt;br /&gt;
| NLRI была выучена каким-то другим образом&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Local preference ===&lt;br /&gt;
Атрибут '''Local preference''':&lt;br /&gt;
* Указывает маршрутизаторам внутри автономной системы как выйти за её пределы. &lt;br /&gt;
* Этот атрибут передается только в пределах одной автономной системы. &lt;br /&gt;
* На маршрутизаторах Cisco и Juniper по умолчанию значение атрибута — 100.&lt;br /&gt;
* Выбирается та точка выхода у которой значение атрибута больше.&lt;br /&gt;
* Если eBGP-сосед получает обновление с выставленным значением local preference, он игнорирует этот атрибут.&lt;br /&gt;
* В Junos lpf можно задать через policy и в protocol bgp. Если задан обоими способами, то будет назначен lpf из policy.&lt;br /&gt;
&lt;br /&gt;
=== Atomic aggregate ===&lt;br /&gt;
=== Aggregator ===&lt;br /&gt;
&lt;br /&gt;
=== Communities ===&lt;br /&gt;
Атрибут community:&lt;br /&gt;
* Тегирование маршрутов&lt;br /&gt;
* Существуют предопределенные значения&lt;br /&gt;
* По умолчанию не пересылаются соседям&lt;br /&gt;
* Один из вариантов применения: передается соседней AS для управления входящим трафиком&lt;br /&gt;
&lt;br /&gt;
Значения от 0x00000000 до 0x0000FFFF и от 0xFFFF0000 до 0xFFFFFFFF зарезервированы.&lt;br /&gt;
&lt;br /&gt;
Как правило community отображаются в формате ASN:VALUE.&lt;br /&gt;
В таком формате, доступны для использования community от 1:0 до 65534:65535.&lt;br /&gt;
В первой части указывается номер автономной системы, а во второй значение community, которое определяет политику маршрутизации трафика.&lt;br /&gt;
&lt;br /&gt;
Некоторые значения communities предопределены. RFC1997 определяет три значения таких community. Эти значения должны одинаково распознаваться и обрабатываться всеми реализациями BGP, которые распознают атрибут community.&lt;br /&gt;
&lt;br /&gt;
Если маршрутизатор получает маршрут, в котором указано предопределенное значение communities, то он выполняет специфическое, предопределенное действие основанное на значении атрибута.&lt;br /&gt;
&lt;br /&gt;
Предопределенные значения communities (Well-known Communities):&lt;br /&gt;
&lt;br /&gt;
====no-export (0xFFFFFF01)====&lt;br /&gt;
Все маршруты которые передаются с таким значением атрибута community не должны анонсироваться за пределы конфедерации (автономная система, которая не является частью конфедерации считается конфедерацией). То есть, маршруты не анонсируются EBGP-соседям, но анонсируются внешним соседям в конфедерации,&lt;br /&gt;
&lt;br /&gt;
'''Пример использования'''&lt;br /&gt;
{{note|text=AS1 подключена к AS2 двумя линками (multinoming). AS1 анонсирует '''172.17.0/16''' в AS2. Для оптимальной маршрутизации, AS1 хочет посылать некоторые более специфичные маршруты через один из этих линков, при этом остальному интернету вовсе не обязательно получать эти специфики. Для этой цели AS1 использует community no-export, и посылает '''172.17.0/17''' в один из стыков с AS2, и '''172.17.128/17''' во второй стык. AS2 видит эти маршруты и выбирает их как более специфичные. Кроме того, эти маршруты видят все iBGP-соседи в пределах AS2. Тем не менее, за пределы AS2 в Интернет анонсируется только '''172.17.0/16'''.}}&lt;br /&gt;
&lt;br /&gt;
====no-advertise (0xFFFFFF02)==== &lt;br /&gt;
Все маршруты которые передаются с таким значением атрибута community не должны анонсироваться другим BGP-соседям.&lt;br /&gt;
&lt;br /&gt;
====no-export-subconfed (0xFFFFFF03)====&lt;br /&gt;
Все маршруты которые передаются с таким значением атрибута community не должны анонсироваться внешним BGP-соседям (ни внешним в конфедерации, ни настоящим внешним соседям). В Cisco это значение встречается и под названием local-as.&lt;br /&gt;
{{note|text=&lt;br /&gt;
Маршрутизаторы, которые не поддерживают атрибут community, будут передавать его далее, так как это transitive атрибут.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Multi exit discriminator (MED)===&lt;br /&gt;
Атрибут '''MED''':&lt;br /&gt;
* Используется для информирования eBGP-соседей о том, какой путь в автономную систему более предпочтительный. &lt;br /&gt;
* Атрибут передается между автономными системами. &lt;br /&gt;
* Маршрутизаторы внутри соседней автономной системы используют этот атрибут, но, как только обновление выходит за пределы AS, атрибут MED отбрасывается.&lt;br /&gt;
* Чем меньше значение атрибута, тем более предпочтительна точка входа в автономную систему.&lt;br /&gt;
&lt;br /&gt;
=== Weight (проприетарный атрибут Cisco) ===&lt;br /&gt;
Атрибут '''Weight''': &lt;br /&gt;
* Позволяет назначить &amp;quot;вес&amp;quot; различным путям локально на маршрутизаторе. &lt;br /&gt;
* Используется в тех случаях, когда у одного маршрутизатора есть несколько выходов из автономной системы (сам маршрутизатор является точкой выхода). &lt;br /&gt;
* Имеет значение только локально, в пределах маршрутизатора. &lt;br /&gt;
* Не передается в обновлениях.&lt;br /&gt;
* Чем больше значение атрибута, тем более предпочтителен путь выхода.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Касательно всех атрибутов ==&lt;br /&gt;
Атрибуты, при выборе best, считаются лучшими с наименьшими значением.&lt;br /&gt;
Это правило касается всех атрибутов, кроме Local Preference&lt;br /&gt;
&lt;br /&gt;
== Механизмы управления входящим трафиком: ==&lt;br /&gt;
*AS path prepend&lt;br /&gt;
*Community (если поддерживает провайдер)&lt;br /&gt;
*MED (подключение к одной и той же AS)&lt;br /&gt;
*Анонс разных префиксов через разных ISP&lt;br /&gt;
&lt;br /&gt;
== Механизмы управления исходящим трафиком: ==&lt;br /&gt;
*Проприетарный атрибут Cisco weight (локально на маршрутизаторе)&lt;br /&gt;
*Атрибут Local Preference (локально в AS)&lt;br /&gt;
*Балансировка трафика&lt;br /&gt;
&lt;br /&gt;
== Выбор лучшего пути (BGP Active Route Selection) ==&lt;br /&gt;
&lt;br /&gt;
* Juniper&lt;br /&gt;
# Prefer highest local preference value&lt;br /&gt;
# Prefer shortest AS-path length&lt;br /&gt;
# Prefer lowest Origin value&lt;br /&gt;
# Prefer lowest MED value&lt;br /&gt;
# Prefer routes learned from an EBGP peer over an IBGP peer&lt;br /&gt;
# If the remaining routes were learned through IBGP, use the path with the lowest IGP cost to the IBGP peer.&lt;br /&gt;
# For EBGP received routes, prefer the current active route; otherwise, prefer routes from the peer with the lowest RID&lt;br /&gt;
#Prefer paths with the shortest cluster length&lt;br /&gt;
# Prefer routes from the peer with the lowest peer ID&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Multipath ==&lt;br /&gt;
&lt;br /&gt;
===Link Bandwidth Extended Community===&lt;br /&gt;
При включенном multipath можно задать желаемую балансировку между линками через extended community.&lt;br /&gt;
Это механизм описан в draft-ietf-idr-link-bandwidth-06, и не является стандартизированным, следовательно,&lt;br /&gt;
возможно, он не будет работать с некоторыми вендорами. В JunOS поддерживается.&lt;br /&gt;
&lt;br /&gt;
Пример использования:&lt;br /&gt;
&lt;br /&gt;
R1 и R2 соединены напрямую через ва сабинтерфейса, на каждом из которых висит своя /30 сеть&lt;br /&gt;
&lt;br /&gt;
 |     | ge-0/0/0.10 ----- ge-0/0/0.10 R2 |    |&lt;br /&gt;
 |  R1 |                                  | R2 |&lt;br /&gt;
 |     | ge-0/0/0.20 ----- ge-0/0/0.20 R2 |    |&lt;br /&gt;
&lt;br /&gt;
Конфиг R1:&lt;br /&gt;
 R1&amp;gt; show configuration protocols bgp &lt;br /&gt;
 group ebgp {&lt;br /&gt;
     multipath;&lt;br /&gt;
     neighbor 10.1.0.2 {&lt;br /&gt;
         description R2;&lt;br /&gt;
         export from-direct;&lt;br /&gt;
         peer-as 2222;&lt;br /&gt;
     }&lt;br /&gt;
     neighbor 10.2.0.2 {&lt;br /&gt;
         description R2;&lt;br /&gt;
         export from-direct;&lt;br /&gt;
         peer-as 2222;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Конфиг R2:&lt;br /&gt;
 R2&amp;gt; show configuration interfaces lo0   &lt;br /&gt;
 unit 0 {&lt;br /&gt;
     family inet {&lt;br /&gt;
         address 2.2.2.2/32;&lt;br /&gt;
     }&lt;br /&gt;
     family mpls;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; show configuration policy-options &lt;br /&gt;
 policy-statement bw20 {&lt;br /&gt;
     then {&lt;br /&gt;
         community add bw20;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 policy-statement bw80 {&lt;br /&gt;
     then {&lt;br /&gt;
         community add bw80;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 policy-statement from-direct {&lt;br /&gt;
     term redistribute-direct {&lt;br /&gt;
         from protocol direct;&lt;br /&gt;
         then accept;&lt;br /&gt;
     }&lt;br /&gt;
     term default {&lt;br /&gt;
         then reject;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 community bw20 members bandwidth:2222:2500000; // 2500000 байт в секунду — это 20% от 100Мегабит&lt;br /&gt;
 community bw80 members bandwidth:2222:10000000; // 10000000 байт в секунду — это 80% от 100Мегабит&lt;br /&gt;
 &lt;br /&gt;
 R2&amp;gt; show configuration protocols bgp &lt;br /&gt;
 group ebgp {&lt;br /&gt;
     neighbor 10.1.0.1 {&lt;br /&gt;
         description R1;&lt;br /&gt;
         export [ bw20 from-direct ]; // На одно из  соседств навешивается community, отображающее, что линк загружен на 20%&lt;br /&gt;
         peer-as 1111;&lt;br /&gt;
     }&lt;br /&gt;
     neighbor 10.2.0.1 {&lt;br /&gt;
         description R1;&lt;br /&gt;
         export [ bw80 from-direct ];// На второе соседство навешивается community, отображающее, что линк загружен на 80%&lt;br /&gt;
         peer-as 1111;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Что получилось:&lt;br /&gt;
&lt;br /&gt;
 R1&amp;gt; show route 2.2.2.2 extensive        &lt;br /&gt;
 &lt;br /&gt;
 inet.0: 11 destinations, 19 routes (11 active, 0 holddown, 0 hidden)&lt;br /&gt;
 2.2.2.2/32 (2 entries, 1 announced)&lt;br /&gt;
 TSI:&lt;br /&gt;
 KRT in-kernel 2.2.2.2/32 -&amp;gt; {10.2.0.2, 10.1.0.2}&lt;br /&gt;
        *BGP    Preference: 170/-101&lt;br /&gt;
                Next hop type: Router, Next hop index: 262145&lt;br /&gt;
                Address: 0x9404010&lt;br /&gt;
                Next-hop reference count: 8&lt;br /&gt;
                Source: 10.1.0.2&lt;br /&gt;
                '''Next hop: 10.2.0.2 via ge-0/0/0.20 balance 80%'''&lt;br /&gt;
                '''Next hop: 10.1.0.2 via ge-0/0/0.10 balance 20%, selected'''&lt;br /&gt;
                State: &amp;lt;Active Ext&amp;gt;&lt;br /&gt;
                Local AS:  1111 Peer AS:  2222&lt;br /&gt;
                Age: 1:20:49 &lt;br /&gt;
                Task: BGP_2222.10.1.0.2+179&lt;br /&gt;
                Announcement bits (1): 0-KRT &lt;br /&gt;
                AS path: 2222 I&lt;br /&gt;
                '''Communities: bandwidth:2222:2500000'''&lt;br /&gt;
                '''Accepted Multipath'''&lt;br /&gt;
                Localpref: 100&lt;br /&gt;
                Router ID: 2.2.2.2&lt;br /&gt;
&lt;br /&gt;
==Modifying AS Path==&lt;br /&gt;
&lt;br /&gt;
===Option 1: remove-private===&lt;br /&gt;
&lt;br /&gt;
===Option 2: local-as===&lt;br /&gt;
&lt;br /&gt;
 [edit routing-options]&lt;br /&gt;
 R1# show &lt;br /&gt;
 autonomous-system 1111;&lt;br /&gt;
 &lt;br /&gt;
 [edit protocols bgp group ebgp]&lt;br /&gt;
 R1# show &lt;br /&gt;
 neighbor 10.1.0.2 {&lt;br /&gt;
     peer-as 2222;&lt;br /&gt;
     local-as 3333;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
При такой конфигурации R1, EBGP-сосед, который '''ожидает''', что у R1 будет AS3333 сможет установить соседство с R1, хотя, по факту R1 принадлежит AS1111.&lt;br /&gt;
Результат:&lt;br /&gt;
 R1&amp;gt; show bgp neighbor &lt;br /&gt;
 Peer: 10.1.0.2+179 AS 2222     Local: 10.1.0.1+62745 '''AS 3333''' &lt;br /&gt;
   Type: External    State: Established    Flags: &amp;lt;Sync&amp;gt;&lt;br /&gt;
   Last State: OpenConfirm   Last Event: RecvKeepAlive&lt;br /&gt;
   ...&lt;br /&gt;
   Holdtime: 90 Preference: 170 Localpref: 110 '''Local AS: 3333 Local System AS: 1111'''&lt;br /&gt;
   Number of flaps: 0&lt;br /&gt;
   Peer ID: 2.2.2.2         Local ID: 1.1.1.1           Active Holdtime: 90&lt;br /&gt;
   ...&lt;br /&gt;
&lt;br /&gt;
'''Зачем это нужно'''&lt;br /&gt;
&lt;br /&gt;
Предположим, оператор с AS1111 купил сеть оператора с AS3333. У AS3333 были свои клиенты, подключенные по BGP, которые не готовы или не хотят изменять конфигурацию на своих роутерах. В таком случае можно временно применить опцию local-as, чтобы выступить для них от лица предыдущей AS (в примере - 3333), но внутри сети перевести инфораструктуру на AS1111.&lt;br /&gt;
&lt;br /&gt;
Если добавить ключевое слово private:&lt;br /&gt;
 [edit protocols bgp group ebgp]&lt;br /&gt;
 R1# show &lt;br /&gt;
 neighbor 10.1.0.2 {&lt;br /&gt;
     peer-as 2222;&lt;br /&gt;
     local-as 3333 '''private''';&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
То R1 вообще не будет добавлять AS3333 при анонсе маршрутов, получаемых от 10.1.0.2 своим соседям.&lt;/div&gt;</summary>
		<author><name>Владислав Павкин</name></author>
	</entry>
	<entry>
		<id>https://juniper-exam.ru/index.php?title=BGP&amp;diff=112</id>
		<title>BGP</title>
		<link rel="alternate" type="text/html" href="https://juniper-exam.ru/index.php?title=BGP&amp;diff=112"/>
		<updated>2016-10-22T14:03:06Z</updated>

		<summary type="html">&lt;p&gt;Владислав Павкин: /* Origin */ Поправил внешний вид&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Состояния соседства ==&lt;br /&gt;
http://habrastorage.org/getpro/habr/post_images/442/780/549/442780549c2f45cdda10773121b2800d.png&lt;br /&gt;
&lt;br /&gt;
== Сообщения ==&lt;br /&gt;
*Open - отправляется только на стадии установления соседства. Содержит параметры BGP соседа.&lt;br /&gt;
*Update - передает routing info между соседями. Атрибуты и список префиксов, подходящий под данные атрибуты.&lt;br /&gt;
*Keepalive - для удостоверения, что с соседством все ок.&lt;br /&gt;
*Notification - в случае если не прошел keepalive или update.&lt;br /&gt;
*Refresh - soft clearing BGP сессии.&lt;br /&gt;
&lt;br /&gt;
== Атрибуты пути (path attributes) ==&lt;br /&gt;
Атрибуты пути разделены на 4 категории:&lt;br /&gt;
# '''Well-known mandatory''' — все маршрутизаторы, работающие по протоколу BGP, должны распознавать эти атрибуты. Должны присутствовать во всех обновлениях (update).&lt;br /&gt;
# '''Well-known discretionary''' — все маршрутизаторы, работающие по протоколу BGP, должны распознавать эти атрибуты. Могут присутствовать в обновлениях (update), но их присутствие не обязательно.&lt;br /&gt;
# '''Optional transitive''' — могут не распознаваться всеми реализациями BGP. Если маршрутизатор не распознал атрибут, он помечает обновление как частичное (partial) и отправляет его дальше соседям, сохраняя не распознанный атрибут.&lt;br /&gt;
# '''Optional non-transitive''' — могут не распознаваться всеми реализациями BGP. Если маршрутизатор не распознал атрибут, то атрибут игнорируется и при передаче соседям отбрасывается.&lt;br /&gt;
&lt;br /&gt;
Примеры атрибутов BGP:&lt;br /&gt;
* Well-known mandatory:&lt;br /&gt;
** Autonomous system path&lt;br /&gt;
** Next-hop&lt;br /&gt;
** Origin&lt;br /&gt;
* Well-known discretionary:&lt;br /&gt;
** Local preference&lt;br /&gt;
** Atomic aggregate&lt;br /&gt;
* Optional transitive:&lt;br /&gt;
** Aggregator&lt;br /&gt;
** Communities&lt;br /&gt;
*  Optional non-transitive:&lt;br /&gt;
** Multi-exit discriminator (MED)&lt;br /&gt;
&lt;br /&gt;
=== Autonomous system path ===&lt;br /&gt;
[[Изображение:AS_path.png|400px|right]]&lt;br /&gt;
&lt;br /&gt;
Атрибут Autonomous system path (AS Path):&lt;br /&gt;
* Описывает через какие автономные системы надо пройти, чтобы дойти до сети назначения. &lt;br /&gt;
* Номер AS добавляется при передаче обновления из одной AS eBGP-соседу в другой AS.&lt;br /&gt;
&lt;br /&gt;
Используется для:&lt;br /&gt;
* обнаружения петель&lt;br /&gt;
* применения политик&lt;br /&gt;
&lt;br /&gt;
Каждый сегмент атрибута AS path представлен в виде поля TLV (path segment type, path segment length, path segment value):&lt;br /&gt;
* '''path segment type''' — поле размером 1 байт для которого определены такие значения:&lt;br /&gt;
** 1 — AS_SET: неупорядоченное множество автономных систем, через которые прошел маршрут в сообщении Update,&lt;br /&gt;
** 2 — AS_SEQUENCE: упорядоченное множество автономных систем, через которые прошел маршрут в сообщении Update&lt;br /&gt;
* '''path segment length''' — поле размером 1 байт. Указывает сколько автономных систем указано в поле path segment value&lt;br /&gt;
* '''path segment value''' — номера автономных систем, каждая представлена полем размером 2 байта.&lt;br /&gt;
&lt;br /&gt;
=== Next-hop ===&lt;br /&gt;
[[Изображение:Next-hop.png|400px|right]]&lt;br /&gt;
&lt;br /&gt;
Атрибут '''Next-hop''' &lt;br /&gt;
* IP-адрес следующей AS для достижения сети назначения. &lt;br /&gt;
* Это IP-адрес eBGP-маршрутизатора, через который идет путь к сети назначения.&lt;br /&gt;
* Атрибут меняется при передаче префикса в другую AS (по-умолчанию подставляется ip-адрес bgp-соседа)&lt;br /&gt;
* Атрибут не меняется при передаче префикса в ту же AS&lt;br /&gt;
&lt;br /&gt;
Можно изменить с помощью policy на выходе:&lt;br /&gt;
 [edit policy-options policy-statement nexthop-self]&lt;br /&gt;
 R1# show &lt;br /&gt;
 term localpref {&lt;br /&gt;
     then {&lt;br /&gt;
         next-hop self;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Или же на входе:&lt;br /&gt;
 [edit policy-options policy-statement nexthop-peer]&lt;br /&gt;
 R2# show &lt;br /&gt;
 term localpref {&lt;br /&gt;
     then {&lt;br /&gt;
         next-hop peer-address;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Third party next hop:&lt;br /&gt;
[[Изображение:Next-hop3.png|300px]]&lt;br /&gt;
&lt;br /&gt;
=== Origin ===&lt;br /&gt;
Атрибут '''Origin''' — указывает на то, каким образом был получен маршрут в обновлении.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Возможные значения атрибута&lt;br /&gt;
|-&lt;br /&gt;
|'''0'''&lt;br /&gt;
|IGP&lt;br /&gt;
|NLRI получена внутри исходной автономной системы&lt;br /&gt;
|-&lt;br /&gt;
|'''1'''&lt;br /&gt;
| EGP&lt;br /&gt;
| NLRI выучена по протоколу Exterior Gateway Protocol (EGP)&lt;br /&gt;
|-&lt;br /&gt;
|'''2'''&lt;br /&gt;
| Incomplete&lt;br /&gt;
| NLRI была выучена каким-то другим образом&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Local preference ===&lt;br /&gt;
Атрибут '''Local preference''':&lt;br /&gt;
* Указывает маршрутизаторам внутри автономной системы как выйти за её пределы. &lt;br /&gt;
* Этот атрибут передается только в пределах одной автономной системы. &lt;br /&gt;
* На маршрутизаторах Cisco и Juniper по умолчанию значение атрибута — 100.&lt;br /&gt;
* Выбирается та точка выхода у которой значение атрибута больше.&lt;br /&gt;
* Если eBGP-сосед получает обновление с выставленным значением local preference, он игнорирует этот атрибут.&lt;br /&gt;
* В Junos lpf можно задать через policy и в protocol bgp. Если задан обоими способами, то будет назначен lpf из policy.&lt;br /&gt;
&lt;br /&gt;
=== Atomic aggregate ===&lt;br /&gt;
=== Aggregator ===&lt;br /&gt;
&lt;br /&gt;
=== Communities ===&lt;br /&gt;
Атрибут community:&lt;br /&gt;
* Тегирование маршрутов&lt;br /&gt;
* Существуют предопределенные значения&lt;br /&gt;
* По умолчанию не пересылаются соседям&lt;br /&gt;
* Один из вариантов применения: передается соседней AS для управления входящим трафиком&lt;br /&gt;
&lt;br /&gt;
Значения от 0x00000000 до 0x0000FFFF и от 0xFFFF0000 до 0xFFFFFFFF зарезервированы.&lt;br /&gt;
&lt;br /&gt;
Как правило community отображаются в формате ASN:VALUE.&lt;br /&gt;
В таком формате, доступны для использования community от 1:0 до 65534:65535.&lt;br /&gt;
В первой части указывается номер автономной системы, а во второй значение community, которое определяет политику маршрутизации трафика.&lt;br /&gt;
&lt;br /&gt;
Некоторые значения communities предопределены. RFC1997 определяет три значения таких community. Эти значения должны одинаково распознаваться и обрабатываться всеми реализациями BGP, которые распознают атрибут community.&lt;br /&gt;
&lt;br /&gt;
Если маршрутизатор получает маршрут, в котором указано предопределенное значение communities, то он выполняет специфическое, предопределенное действие основанное на значении атрибута.&lt;br /&gt;
&lt;br /&gt;
Предопределенные значения communities (Well-known Communities):&lt;br /&gt;
&lt;br /&gt;
====no-export (0xFFFFFF01)====&lt;br /&gt;
Все маршруты которые передаются с таким значением атрибута community не должны анонсироваться за пределы конфедерации (автономная система, которая не является частью конфедерации считается конфедерацией). То есть, маршруты не анонсируются EBGP-соседям, но анонсируются внешним соседям в конфедерации,&lt;br /&gt;
&lt;br /&gt;
'''Пример использования'''&lt;br /&gt;
{{note|text=AS1 подключена к AS2 двумя линками (multinoming). AS1 анонсирует '''172.17.0/16''' в AS2. Для оптимальной маршрутизации, AS1 хочет посылать некоторые более специфичные маршруты через один из этих линков, при этом остальному интернету вовсе не обязательно получать эти специфики. Для этой цели AS1 использует community no-export, и посылает '''172.17.0/17''' в один из стыков с AS2, и '''172.17.128/17''' во второй стык. AS2 видит эти маршруты и выбирает их как более специфичные. Кроме того, эти маршруты видят все iBGP-соседи в пределах AS2. Тем не менее, за пределы AS2 в Интернет анонсируется только '''172.17.0/16'''.}}&lt;br /&gt;
&lt;br /&gt;
====no-advertise (0xFFFFFF02)==== &lt;br /&gt;
Все маршруты которые передаются с таким значением атрибута community не должны анонсироваться другим BGP-соседям.&lt;br /&gt;
&lt;br /&gt;
====no-export-subconfed (0xFFFFFF03)====&lt;br /&gt;
Все маршруты которые передаются с таким значением атрибута community не должны анонсироваться внешним BGP-соседям (ни внешним в конфедерации, ни настоящим внешним соседям). В Cisco это значение встречается и под названием local-as.&lt;br /&gt;
{{note|text=&lt;br /&gt;
Маршрутизаторы, которые не поддерживают атрибут community, будут передавать его далее, так как это transitive атрибут.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Multi exit discriminator (MED)===&lt;br /&gt;
Атрибут '''MED''':&lt;br /&gt;
* Используется для информирования eBGP-соседей о том, какой путь в автономную систему более предпочтительный. &lt;br /&gt;
* Атрибут передается между автономными системами. &lt;br /&gt;
* Маршрутизаторы внутри соседней автономной системы используют этот атрибут, но, как только обновление выходит за пределы AS, атрибут MED отбрасывается.&lt;br /&gt;
* Чем меньше значение атрибута, тем более предпочтительна точка входа в автономную систему.&lt;br /&gt;
&lt;br /&gt;
=== Weight (проприетарный атрибут Cisco) ===&lt;br /&gt;
Атрибут '''Weight''': &lt;br /&gt;
* Позволяет назначить &amp;quot;вес&amp;quot; различным путям локально на маршрутизаторе. &lt;br /&gt;
* Используется в тех случаях, когда у одного маршрутизатора есть несколько выходов из автономной системы (сам маршрутизатор является точкой выхода). &lt;br /&gt;
* Имеет значение только локально, в пределах маршрутизатора. &lt;br /&gt;
* Не передается в обновлениях.&lt;br /&gt;
* Чем больше значение атрибута, тем более предпочтителен путь выхода.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Касательно всех атрибутов ==&lt;br /&gt;
Атрибуты, при выборе best, считаются лучшими с наименьшими значением.&lt;br /&gt;
Это правило касается всех атрибутов, кроме Local Preference&lt;br /&gt;
&lt;br /&gt;
== Механизмы управления входящим трафиком: ==&lt;br /&gt;
*AS path prepend&lt;br /&gt;
*Community (если поддерживает провайдер)&lt;br /&gt;
*MED (подключение к одной и той же AS)&lt;br /&gt;
*Анонс разных префиксов через разных ISP&lt;br /&gt;
&lt;br /&gt;
== Механизмы управления исходящим трафиком: ==&lt;br /&gt;
*Проприетарный атрибут Cisco weight (локально на маршрутизаторе)&lt;br /&gt;
*Атрибут Local Preference (локально в AS)&lt;br /&gt;
*Балансировка трафика&lt;br /&gt;
&lt;br /&gt;
== Выбор лучшего пути (BGP Active Route Selection) ==&lt;br /&gt;
&lt;br /&gt;
* Juniper&lt;br /&gt;
# Prefer highest local preference value&lt;br /&gt;
# Prefer shortest AS-path length&lt;br /&gt;
# Prefer lowest Origin value&lt;br /&gt;
# Prefer lowest MED value&lt;br /&gt;
# Prefer routes learned from an EBGP peer over an IBGP peer&lt;br /&gt;
# If the remaining routes were learned through IBGP, use the path with the lowest IGP cost to the IBGP peer.&lt;br /&gt;
# For EBGP received routes, prefer the current active route; otherwise, prefer routes from the peer with the lowest RID&lt;br /&gt;
#Prefer paths with the shortest cluster length&lt;br /&gt;
# Prefer routes from the peer with the lowest peer ID&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Multipath ==&lt;br /&gt;
&lt;br /&gt;
===Link Bandwidth Extended Community===&lt;br /&gt;
При включенном multipath можно задать желаемую балансировку между линками через extended community.&lt;br /&gt;
Это механизм описан в draft-ietf-idr-link-bandwidth-06, и не является стандартизированным, следовательно,&lt;br /&gt;
возможно, он не будет работать с некоторыми вендорами. В JunOS поддерживается.&lt;br /&gt;
&lt;br /&gt;
Пример использования:&lt;br /&gt;
&lt;br /&gt;
R1 и R2 соединены напрямую через ва сабинтерфейса, на каждом из которых висит своя /30 сеть&lt;br /&gt;
&lt;br /&gt;
 |     | ge-0/0/0.10 ----- ge-0/0/0.10 R2 |    |&lt;br /&gt;
 |  R1 |                                  | R2 |&lt;br /&gt;
 |     | ge-0/0/0.20 ----- ge-0/0/0.20 R2 |    |&lt;br /&gt;
&lt;br /&gt;
Конфиг R1:&lt;br /&gt;
 R1&amp;gt; show configuration protocols bgp &lt;br /&gt;
 group ebgp {&lt;br /&gt;
     multipath;&lt;br /&gt;
     neighbor 10.1.0.2 {&lt;br /&gt;
         description R2;&lt;br /&gt;
         export from-direct;&lt;br /&gt;
         peer-as 2222;&lt;br /&gt;
     }&lt;br /&gt;
     neighbor 10.2.0.2 {&lt;br /&gt;
         description R2;&lt;br /&gt;
         export from-direct;&lt;br /&gt;
         peer-as 2222;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Конфиг R2:&lt;br /&gt;
 R2&amp;gt; show configuration interfaces lo0   &lt;br /&gt;
 unit 0 {&lt;br /&gt;
     family inet {&lt;br /&gt;
         address 2.2.2.2/32;&lt;br /&gt;
     }&lt;br /&gt;
     family mpls;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; show configuration policy-options &lt;br /&gt;
 policy-statement bw20 {&lt;br /&gt;
     then {&lt;br /&gt;
         community add bw20;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 policy-statement bw80 {&lt;br /&gt;
     then {&lt;br /&gt;
         community add bw80;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 policy-statement from-direct {&lt;br /&gt;
     term redistribute-direct {&lt;br /&gt;
         from protocol direct;&lt;br /&gt;
         then accept;&lt;br /&gt;
     }&lt;br /&gt;
     term default {&lt;br /&gt;
         then reject;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 community bw20 members bandwidth:2222:2500000; // 2500000 байт в секунду — это 20% от 100Мегабит&lt;br /&gt;
 community bw80 members bandwidth:2222:10000000; // 10000000 байт в секунду — это 80% от 100Мегабит&lt;br /&gt;
 &lt;br /&gt;
 R2&amp;gt; show configuration protocols bgp &lt;br /&gt;
 group ebgp {&lt;br /&gt;
     neighbor 10.1.0.1 {&lt;br /&gt;
         description R1;&lt;br /&gt;
         export [ bw20 from-direct ]; // На одно из  соседств навешивается community, отображающее, что линк загружен на 20%&lt;br /&gt;
         peer-as 1111;&lt;br /&gt;
     }&lt;br /&gt;
     neighbor 10.2.0.1 {&lt;br /&gt;
         description R1;&lt;br /&gt;
         export [ bw80 from-direct ];// На второе соседство навешивается community, отображающее, что линк загружен на 80%&lt;br /&gt;
         peer-as 1111;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Что получилось:&lt;br /&gt;
&lt;br /&gt;
 R1&amp;gt; show route 2.2.2.2 extensive        &lt;br /&gt;
 &lt;br /&gt;
 inet.0: 11 destinations, 19 routes (11 active, 0 holddown, 0 hidden)&lt;br /&gt;
 2.2.2.2/32 (2 entries, 1 announced)&lt;br /&gt;
 TSI:&lt;br /&gt;
 KRT in-kernel 2.2.2.2/32 -&amp;gt; {10.2.0.2, 10.1.0.2}&lt;br /&gt;
        *BGP    Preference: 170/-101&lt;br /&gt;
                Next hop type: Router, Next hop index: 262145&lt;br /&gt;
                Address: 0x9404010&lt;br /&gt;
                Next-hop reference count: 8&lt;br /&gt;
                Source: 10.1.0.2&lt;br /&gt;
                '''Next hop: 10.2.0.2 via ge-0/0/0.20 balance 80%'''&lt;br /&gt;
                '''Next hop: 10.1.0.2 via ge-0/0/0.10 balance 20%, selected'''&lt;br /&gt;
                State: &amp;lt;Active Ext&amp;gt;&lt;br /&gt;
                Local AS:  1111 Peer AS:  2222&lt;br /&gt;
                Age: 1:20:49 &lt;br /&gt;
                Task: BGP_2222.10.1.0.2+179&lt;br /&gt;
                Announcement bits (1): 0-KRT &lt;br /&gt;
                AS path: 2222 I&lt;br /&gt;
                '''Communities: bandwidth:2222:2500000'''&lt;br /&gt;
                '''Accepted Multipath'''&lt;br /&gt;
                Localpref: 100&lt;br /&gt;
                Router ID: 2.2.2.2&lt;br /&gt;
&lt;br /&gt;
==Modifying AS Path==&lt;br /&gt;
&lt;br /&gt;
===Option 1: remove-private===&lt;br /&gt;
&lt;br /&gt;
===Option 2: local-as===&lt;br /&gt;
&lt;br /&gt;
 [edit routing-options]&lt;br /&gt;
 R1# show &lt;br /&gt;
 autonomous-system 1111;&lt;br /&gt;
 &lt;br /&gt;
 [edit protocols bgp group ebgp]&lt;br /&gt;
 R1# show &lt;br /&gt;
 neighbor 10.1.0.2 {&lt;br /&gt;
     peer-as 2222;&lt;br /&gt;
     local-as 3333;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
При такой конфигурации R1, EBGP-сосед, который '''ожидает''', что у R1 будет AS3333 сможет установить соседство с R1, хотя, по факту R1 принадлежит AS1111.&lt;br /&gt;
Результат:&lt;br /&gt;
 R1&amp;gt; show bgp neighbor &lt;br /&gt;
 Peer: 10.1.0.2+179 AS 2222     Local: 10.1.0.1+62745 '''AS 3333''' &lt;br /&gt;
   Type: External    State: Established    Flags: &amp;lt;Sync&amp;gt;&lt;br /&gt;
   Last State: OpenConfirm   Last Event: RecvKeepAlive&lt;br /&gt;
   ...&lt;br /&gt;
   Holdtime: 90 Preference: 170 Localpref: 110 '''Local AS: 3333 Local System AS: 1111'''&lt;br /&gt;
   Number of flaps: 0&lt;br /&gt;
   Peer ID: 2.2.2.2         Local ID: 1.1.1.1           Active Holdtime: 90&lt;br /&gt;
   ...&lt;br /&gt;
&lt;br /&gt;
'''Зачем это нужно'''&lt;br /&gt;
&lt;br /&gt;
Предположим, оператор с AS1111 купил сеть оператора с AS3333. У AS3333 были свои клиенты, подключенные по BGP, которые не готовы или не хотят изменять конфигурацию на своих роутерах. В таком случае можно временно применить опцию local-as, чтобы выступить для них от лица предыдущей AS (в примере - 3333), но внутри сети перевести инфораструктуру на AS1111.&lt;br /&gt;
&lt;br /&gt;
Если добавить ключевое слово private:&lt;br /&gt;
 [edit protocols bgp group ebgp]&lt;br /&gt;
 R1# show &lt;br /&gt;
 neighbor 10.1.0.2 {&lt;br /&gt;
     peer-as 2222;&lt;br /&gt;
     local-as 3333 '''private''';&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
То R1 вообще не будет добавлять AS3333 при анонсе маршрутов, получаемых от 10.1.0.2 своим соседям.&lt;/div&gt;</summary>
		<author><name>Владислав Павкин</name></author>
	</entry>
	<entry>
		<id>https://juniper-exam.ru/index.php?title=BGP&amp;diff=111</id>
		<title>BGP</title>
		<link rel="alternate" type="text/html" href="https://juniper-exam.ru/index.php?title=BGP&amp;diff=111"/>
		<updated>2016-10-22T13:56:25Z</updated>

		<summary type="html">&lt;p&gt;Владислав Павкин: /* Next-hop */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Состояния соседства ==&lt;br /&gt;
http://habrastorage.org/getpro/habr/post_images/442/780/549/442780549c2f45cdda10773121b2800d.png&lt;br /&gt;
&lt;br /&gt;
== Сообщения ==&lt;br /&gt;
*Open - отправляется только на стадии установления соседства. Содержит параметры BGP соседа.&lt;br /&gt;
*Update - передает routing info между соседями. Атрибуты и список префиксов, подходящий под данные атрибуты.&lt;br /&gt;
*Keepalive - для удостоверения, что с соседством все ок.&lt;br /&gt;
*Notification - в случае если не прошел keepalive или update.&lt;br /&gt;
*Refresh - soft clearing BGP сессии.&lt;br /&gt;
&lt;br /&gt;
== Атрибуты пути (path attributes) ==&lt;br /&gt;
Атрибуты пути разделены на 4 категории:&lt;br /&gt;
# '''Well-known mandatory''' — все маршрутизаторы, работающие по протоколу BGP, должны распознавать эти атрибуты. Должны присутствовать во всех обновлениях (update).&lt;br /&gt;
# '''Well-known discretionary''' — все маршрутизаторы, работающие по протоколу BGP, должны распознавать эти атрибуты. Могут присутствовать в обновлениях (update), но их присутствие не обязательно.&lt;br /&gt;
# '''Optional transitive''' — могут не распознаваться всеми реализациями BGP. Если маршрутизатор не распознал атрибут, он помечает обновление как частичное (partial) и отправляет его дальше соседям, сохраняя не распознанный атрибут.&lt;br /&gt;
# '''Optional non-transitive''' — могут не распознаваться всеми реализациями BGP. Если маршрутизатор не распознал атрибут, то атрибут игнорируется и при передаче соседям отбрасывается.&lt;br /&gt;
&lt;br /&gt;
Примеры атрибутов BGP:&lt;br /&gt;
* Well-known mandatory:&lt;br /&gt;
** Autonomous system path&lt;br /&gt;
** Next-hop&lt;br /&gt;
** Origin&lt;br /&gt;
* Well-known discretionary:&lt;br /&gt;
** Local preference&lt;br /&gt;
** Atomic aggregate&lt;br /&gt;
* Optional transitive:&lt;br /&gt;
** Aggregator&lt;br /&gt;
** Communities&lt;br /&gt;
*  Optional non-transitive:&lt;br /&gt;
** Multi-exit discriminator (MED)&lt;br /&gt;
&lt;br /&gt;
=== Autonomous system path ===&lt;br /&gt;
[[Изображение:AS_path.png|400px|right]]&lt;br /&gt;
&lt;br /&gt;
Атрибут Autonomous system path (AS Path):&lt;br /&gt;
* Описывает через какие автономные системы надо пройти, чтобы дойти до сети назначения. &lt;br /&gt;
* Номер AS добавляется при передаче обновления из одной AS eBGP-соседу в другой AS.&lt;br /&gt;
&lt;br /&gt;
Используется для:&lt;br /&gt;
* обнаружения петель&lt;br /&gt;
* применения политик&lt;br /&gt;
&lt;br /&gt;
Каждый сегмент атрибута AS path представлен в виде поля TLV (path segment type, path segment length, path segment value):&lt;br /&gt;
* '''path segment type''' — поле размером 1 байт для которого определены такие значения:&lt;br /&gt;
** 1 — AS_SET: неупорядоченное множество автономных систем, через которые прошел маршрут в сообщении Update,&lt;br /&gt;
** 2 — AS_SEQUENCE: упорядоченное множество автономных систем, через которые прошел маршрут в сообщении Update&lt;br /&gt;
* '''path segment length''' — поле размером 1 байт. Указывает сколько автономных систем указано в поле path segment value&lt;br /&gt;
* '''path segment value''' — номера автономных систем, каждая представлена полем размером 2 байта.&lt;br /&gt;
&lt;br /&gt;
=== Next-hop ===&lt;br /&gt;
[[Изображение:Next-hop.png|400px|right]]&lt;br /&gt;
&lt;br /&gt;
Атрибут '''Next-hop''' &lt;br /&gt;
* IP-адрес следующей AS для достижения сети назначения. &lt;br /&gt;
* Это IP-адрес eBGP-маршрутизатора, через который идет путь к сети назначения.&lt;br /&gt;
* Атрибут меняется при передаче префикса в другую AS (по-умолчанию подставляется ip-адрес bgp-соседа)&lt;br /&gt;
* Атрибут не меняется при передаче префикса в ту же AS&lt;br /&gt;
&lt;br /&gt;
Можно изменить с помощью policy на выходе:&lt;br /&gt;
 [edit policy-options policy-statement nexthop-self]&lt;br /&gt;
 R1# show &lt;br /&gt;
 term localpref {&lt;br /&gt;
     then {&lt;br /&gt;
         next-hop self;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Или же на входе:&lt;br /&gt;
 [edit policy-options policy-statement nexthop-peer]&lt;br /&gt;
 R2# show &lt;br /&gt;
 term localpref {&lt;br /&gt;
     then {&lt;br /&gt;
         next-hop peer-address;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Third party next hop:&lt;br /&gt;
[[Изображение:Next-hop3.png|300px]]&lt;br /&gt;
&lt;br /&gt;
=== Origin ===&lt;br /&gt;
Атрибут '''Origin''' — указывает на то, каким образом был получен маршрут в обновлении.&lt;br /&gt;
&lt;br /&gt;
Возможные значения атрибута:&lt;br /&gt;
* '''0''' — IGP: NLRI получена внутри исходной автономной системы;&lt;br /&gt;
* '''1''' — EGP: NLRI выучена по протоколу Exterior Gateway Protocol (EGP). Предшественник BGP, не используется&lt;br /&gt;
* '''2''' — Incomplete: NLRI была выучена каким-то другим образом&lt;br /&gt;
&lt;br /&gt;
=== Local preference ===&lt;br /&gt;
Атрибут '''Local preference''':&lt;br /&gt;
* Указывает маршрутизаторам внутри автономной системы как выйти за её пределы. &lt;br /&gt;
* Этот атрибут передается только в пределах одной автономной системы. &lt;br /&gt;
* На маршрутизаторах Cisco и Juniper по умолчанию значение атрибута — 100.&lt;br /&gt;
* Выбирается та точка выхода у которой значение атрибута больше.&lt;br /&gt;
* Если eBGP-сосед получает обновление с выставленным значением local preference, он игнорирует этот атрибут.&lt;br /&gt;
* В Junos lpf можно задать через policy и в protocol bgp. Если задан обоими способами, то будет назначен lpf из policy.&lt;br /&gt;
&lt;br /&gt;
=== Atomic aggregate ===&lt;br /&gt;
=== Aggregator ===&lt;br /&gt;
&lt;br /&gt;
=== Communities ===&lt;br /&gt;
Атрибут community:&lt;br /&gt;
* Тегирование маршрутов&lt;br /&gt;
* Существуют предопределенные значения&lt;br /&gt;
* По умолчанию не пересылаются соседям&lt;br /&gt;
* Один из вариантов применения: передается соседней AS для управления входящим трафиком&lt;br /&gt;
&lt;br /&gt;
Значения от 0x00000000 до 0x0000FFFF и от 0xFFFF0000 до 0xFFFFFFFF зарезервированы.&lt;br /&gt;
&lt;br /&gt;
Как правило community отображаются в формате ASN:VALUE.&lt;br /&gt;
В таком формате, доступны для использования community от 1:0 до 65534:65535.&lt;br /&gt;
В первой части указывается номер автономной системы, а во второй значение community, которое определяет политику маршрутизации трафика.&lt;br /&gt;
&lt;br /&gt;
Некоторые значения communities предопределены. RFC1997 определяет три значения таких community. Эти значения должны одинаково распознаваться и обрабатываться всеми реализациями BGP, которые распознают атрибут community.&lt;br /&gt;
&lt;br /&gt;
Если маршрутизатор получает маршрут, в котором указано предопределенное значение communities, то он выполняет специфическое, предопределенное действие основанное на значении атрибута.&lt;br /&gt;
&lt;br /&gt;
Предопределенные значения communities (Well-known Communities):&lt;br /&gt;
&lt;br /&gt;
====no-export (0xFFFFFF01)====&lt;br /&gt;
Все маршруты которые передаются с таким значением атрибута community не должны анонсироваться за пределы конфедерации (автономная система, которая не является частью конфедерации считается конфедерацией). То есть, маршруты не анонсируются EBGP-соседям, но анонсируются внешним соседям в конфедерации,&lt;br /&gt;
&lt;br /&gt;
'''Пример использования'''&lt;br /&gt;
{{note|text=AS1 подключена к AS2 двумя линками (multinoming). AS1 анонсирует '''172.17.0/16''' в AS2. Для оптимальной маршрутизации, AS1 хочет посылать некоторые более специфичные маршруты через один из этих линков, при этом остальному интернету вовсе не обязательно получать эти специфики. Для этой цели AS1 использует community no-export, и посылает '''172.17.0/17''' в один из стыков с AS2, и '''172.17.128/17''' во второй стык. AS2 видит эти маршруты и выбирает их как более специфичные. Кроме того, эти маршруты видят все iBGP-соседи в пределах AS2. Тем не менее, за пределы AS2 в Интернет анонсируется только '''172.17.0/16'''.}}&lt;br /&gt;
&lt;br /&gt;
====no-advertise (0xFFFFFF02)==== &lt;br /&gt;
Все маршруты которые передаются с таким значением атрибута community не должны анонсироваться другим BGP-соседям.&lt;br /&gt;
&lt;br /&gt;
====no-export-subconfed (0xFFFFFF03)====&lt;br /&gt;
Все маршруты которые передаются с таким значением атрибута community не должны анонсироваться внешним BGP-соседям (ни внешним в конфедерации, ни настоящим внешним соседям). В Cisco это значение встречается и под названием local-as.&lt;br /&gt;
{{note|text=&lt;br /&gt;
Маршрутизаторы, которые не поддерживают атрибут community, будут передавать его далее, так как это transitive атрибут.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Multi exit discriminator (MED)===&lt;br /&gt;
Атрибут '''MED''':&lt;br /&gt;
* Используется для информирования eBGP-соседей о том, какой путь в автономную систему более предпочтительный. &lt;br /&gt;
* Атрибут передается между автономными системами. &lt;br /&gt;
* Маршрутизаторы внутри соседней автономной системы используют этот атрибут, но, как только обновление выходит за пределы AS, атрибут MED отбрасывается.&lt;br /&gt;
* Чем меньше значение атрибута, тем более предпочтительна точка входа в автономную систему.&lt;br /&gt;
&lt;br /&gt;
=== Weight (проприетарный атрибут Cisco) ===&lt;br /&gt;
Атрибут '''Weight''': &lt;br /&gt;
* Позволяет назначить &amp;quot;вес&amp;quot; различным путям локально на маршрутизаторе. &lt;br /&gt;
* Используется в тех случаях, когда у одного маршрутизатора есть несколько выходов из автономной системы (сам маршрутизатор является точкой выхода). &lt;br /&gt;
* Имеет значение только локально, в пределах маршрутизатора. &lt;br /&gt;
* Не передается в обновлениях.&lt;br /&gt;
* Чем больше значение атрибута, тем более предпочтителен путь выхода.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Касательно всех атрибутов ==&lt;br /&gt;
Атрибуты, при выборе best, считаются лучшими с наименьшими значением.&lt;br /&gt;
Это правило касается всех атрибутов, кроме Local Preference&lt;br /&gt;
&lt;br /&gt;
== Механизмы управления входящим трафиком: ==&lt;br /&gt;
*AS path prepend&lt;br /&gt;
*Community (если поддерживает провайдер)&lt;br /&gt;
*MED (подключение к одной и той же AS)&lt;br /&gt;
*Анонс разных префиксов через разных ISP&lt;br /&gt;
&lt;br /&gt;
== Механизмы управления исходящим трафиком: ==&lt;br /&gt;
*Проприетарный атрибут Cisco weight (локально на маршрутизаторе)&lt;br /&gt;
*Атрибут Local Preference (локально в AS)&lt;br /&gt;
*Балансировка трафика&lt;br /&gt;
&lt;br /&gt;
== Выбор лучшего пути (BGP Active Route Selection) ==&lt;br /&gt;
&lt;br /&gt;
* Juniper&lt;br /&gt;
# Prefer highest local preference value&lt;br /&gt;
# Prefer shortest AS-path length&lt;br /&gt;
# Prefer lowest Origin value&lt;br /&gt;
# Prefer lowest MED value&lt;br /&gt;
# Prefer routes learned from an EBGP peer over an IBGP peer&lt;br /&gt;
# If the remaining routes were learned through IBGP, use the path with the lowest IGP cost to the IBGP peer.&lt;br /&gt;
# For EBGP received routes, prefer the current active route; otherwise, prefer routes from the peer with the lowest RID&lt;br /&gt;
#Prefer paths with the shortest cluster length&lt;br /&gt;
# Prefer routes from the peer with the lowest peer ID&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Multipath ==&lt;br /&gt;
&lt;br /&gt;
===Link Bandwidth Extended Community===&lt;br /&gt;
При включенном multipath можно задать желаемую балансировку между линками через extended community.&lt;br /&gt;
Это механизм описан в draft-ietf-idr-link-bandwidth-06, и не является стандартизированным, следовательно,&lt;br /&gt;
возможно, он не будет работать с некоторыми вендорами. В JunOS поддерживается.&lt;br /&gt;
&lt;br /&gt;
Пример использования:&lt;br /&gt;
&lt;br /&gt;
R1 и R2 соединены напрямую через ва сабинтерфейса, на каждом из которых висит своя /30 сеть&lt;br /&gt;
&lt;br /&gt;
 |     | ge-0/0/0.10 ----- ge-0/0/0.10 R2 |    |&lt;br /&gt;
 |  R1 |                                  | R2 |&lt;br /&gt;
 |     | ge-0/0/0.20 ----- ge-0/0/0.20 R2 |    |&lt;br /&gt;
&lt;br /&gt;
Конфиг R1:&lt;br /&gt;
 R1&amp;gt; show configuration protocols bgp &lt;br /&gt;
 group ebgp {&lt;br /&gt;
     multipath;&lt;br /&gt;
     neighbor 10.1.0.2 {&lt;br /&gt;
         description R2;&lt;br /&gt;
         export from-direct;&lt;br /&gt;
         peer-as 2222;&lt;br /&gt;
     }&lt;br /&gt;
     neighbor 10.2.0.2 {&lt;br /&gt;
         description R2;&lt;br /&gt;
         export from-direct;&lt;br /&gt;
         peer-as 2222;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Конфиг R2:&lt;br /&gt;
 R2&amp;gt; show configuration interfaces lo0   &lt;br /&gt;
 unit 0 {&lt;br /&gt;
     family inet {&lt;br /&gt;
         address 2.2.2.2/32;&lt;br /&gt;
     }&lt;br /&gt;
     family mpls;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; show configuration policy-options &lt;br /&gt;
 policy-statement bw20 {&lt;br /&gt;
     then {&lt;br /&gt;
         community add bw20;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 policy-statement bw80 {&lt;br /&gt;
     then {&lt;br /&gt;
         community add bw80;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 policy-statement from-direct {&lt;br /&gt;
     term redistribute-direct {&lt;br /&gt;
         from protocol direct;&lt;br /&gt;
         then accept;&lt;br /&gt;
     }&lt;br /&gt;
     term default {&lt;br /&gt;
         then reject;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 community bw20 members bandwidth:2222:2500000; // 2500000 байт в секунду — это 20% от 100Мегабит&lt;br /&gt;
 community bw80 members bandwidth:2222:10000000; // 10000000 байт в секунду — это 80% от 100Мегабит&lt;br /&gt;
 &lt;br /&gt;
 R2&amp;gt; show configuration protocols bgp &lt;br /&gt;
 group ebgp {&lt;br /&gt;
     neighbor 10.1.0.1 {&lt;br /&gt;
         description R1;&lt;br /&gt;
         export [ bw20 from-direct ]; // На одно из  соседств навешивается community, отображающее, что линк загружен на 20%&lt;br /&gt;
         peer-as 1111;&lt;br /&gt;
     }&lt;br /&gt;
     neighbor 10.2.0.1 {&lt;br /&gt;
         description R1;&lt;br /&gt;
         export [ bw80 from-direct ];// На второе соседство навешивается community, отображающее, что линк загружен на 80%&lt;br /&gt;
         peer-as 1111;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Что получилось:&lt;br /&gt;
&lt;br /&gt;
 R1&amp;gt; show route 2.2.2.2 extensive        &lt;br /&gt;
 &lt;br /&gt;
 inet.0: 11 destinations, 19 routes (11 active, 0 holddown, 0 hidden)&lt;br /&gt;
 2.2.2.2/32 (2 entries, 1 announced)&lt;br /&gt;
 TSI:&lt;br /&gt;
 KRT in-kernel 2.2.2.2/32 -&amp;gt; {10.2.0.2, 10.1.0.2}&lt;br /&gt;
        *BGP    Preference: 170/-101&lt;br /&gt;
                Next hop type: Router, Next hop index: 262145&lt;br /&gt;
                Address: 0x9404010&lt;br /&gt;
                Next-hop reference count: 8&lt;br /&gt;
                Source: 10.1.0.2&lt;br /&gt;
                '''Next hop: 10.2.0.2 via ge-0/0/0.20 balance 80%'''&lt;br /&gt;
                '''Next hop: 10.1.0.2 via ge-0/0/0.10 balance 20%, selected'''&lt;br /&gt;
                State: &amp;lt;Active Ext&amp;gt;&lt;br /&gt;
                Local AS:  1111 Peer AS:  2222&lt;br /&gt;
                Age: 1:20:49 &lt;br /&gt;
                Task: BGP_2222.10.1.0.2+179&lt;br /&gt;
                Announcement bits (1): 0-KRT &lt;br /&gt;
                AS path: 2222 I&lt;br /&gt;
                '''Communities: bandwidth:2222:2500000'''&lt;br /&gt;
                '''Accepted Multipath'''&lt;br /&gt;
                Localpref: 100&lt;br /&gt;
                Router ID: 2.2.2.2&lt;br /&gt;
&lt;br /&gt;
==Modifying AS Path==&lt;br /&gt;
&lt;br /&gt;
===Option 1: remove-private===&lt;br /&gt;
&lt;br /&gt;
===Option 2: local-as===&lt;br /&gt;
&lt;br /&gt;
 [edit routing-options]&lt;br /&gt;
 R1# show &lt;br /&gt;
 autonomous-system 1111;&lt;br /&gt;
 &lt;br /&gt;
 [edit protocols bgp group ebgp]&lt;br /&gt;
 R1# show &lt;br /&gt;
 neighbor 10.1.0.2 {&lt;br /&gt;
     peer-as 2222;&lt;br /&gt;
     local-as 3333;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
При такой конфигурации R1, EBGP-сосед, который '''ожидает''', что у R1 будет AS3333 сможет установить соседство с R1, хотя, по факту R1 принадлежит AS1111.&lt;br /&gt;
Результат:&lt;br /&gt;
 R1&amp;gt; show bgp neighbor &lt;br /&gt;
 Peer: 10.1.0.2+179 AS 2222     Local: 10.1.0.1+62745 '''AS 3333''' &lt;br /&gt;
   Type: External    State: Established    Flags: &amp;lt;Sync&amp;gt;&lt;br /&gt;
   Last State: OpenConfirm   Last Event: RecvKeepAlive&lt;br /&gt;
   ...&lt;br /&gt;
   Holdtime: 90 Preference: 170 Localpref: 110 '''Local AS: 3333 Local System AS: 1111'''&lt;br /&gt;
   Number of flaps: 0&lt;br /&gt;
   Peer ID: 2.2.2.2         Local ID: 1.1.1.1           Active Holdtime: 90&lt;br /&gt;
   ...&lt;br /&gt;
&lt;br /&gt;
'''Зачем это нужно'''&lt;br /&gt;
&lt;br /&gt;
Предположим, оператор с AS1111 купил сеть оператора с AS3333. У AS3333 были свои клиенты, подключенные по BGP, которые не готовы или не хотят изменять конфигурацию на своих роутерах. В таком случае можно временно применить опцию local-as, чтобы выступить для них от лица предыдущей AS (в примере - 3333), но внутри сети перевести инфораструктуру на AS1111.&lt;br /&gt;
&lt;br /&gt;
Если добавить ключевое слово private:&lt;br /&gt;
 [edit protocols bgp group ebgp]&lt;br /&gt;
 R1# show &lt;br /&gt;
 neighbor 10.1.0.2 {&lt;br /&gt;
     peer-as 2222;&lt;br /&gt;
     local-as 3333 '''private''';&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
То R1 вообще не будет добавлять AS3333 при анонсе маршрутов, получаемых от 10.1.0.2 своим соседям.&lt;/div&gt;</summary>
		<author><name>Владислав Павкин</name></author>
	</entry>
	<entry>
		<id>https://juniper-exam.ru/index.php?title=BGP&amp;diff=110</id>
		<title>BGP</title>
		<link rel="alternate" type="text/html" href="https://juniper-exam.ru/index.php?title=BGP&amp;diff=110"/>
		<updated>2016-10-21T23:44:49Z</updated>

		<summary type="html">&lt;p&gt;Владислав Павкин: /* no-export-subconfed (0xFFFFFF03) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Состояния соседства ==&lt;br /&gt;
http://habrastorage.org/getpro/habr/post_images/442/780/549/442780549c2f45cdda10773121b2800d.png&lt;br /&gt;
&lt;br /&gt;
== Сообщения ==&lt;br /&gt;
*Open - отправляется только на стадии установления соседства. Содержит параметры BGP соседа.&lt;br /&gt;
*Update - передает routing info между соседями. Атрибуты и список префиксов, подходящий под данные атрибуты.&lt;br /&gt;
*Keepalive - для удостоверения, что с соседством все ок.&lt;br /&gt;
*Notification - в случае если не прошел keepalive или update.&lt;br /&gt;
*Refresh - soft clearing BGP сессии.&lt;br /&gt;
&lt;br /&gt;
== Атрибуты пути (path attributes) ==&lt;br /&gt;
Атрибуты пути разделены на 4 категории:&lt;br /&gt;
# '''Well-known mandatory''' — все маршрутизаторы, работающие по протоколу BGP, должны распознавать эти атрибуты. Должны присутствовать во всех обновлениях (update).&lt;br /&gt;
# '''Well-known discretionary''' — все маршрутизаторы, работающие по протоколу BGP, должны распознавать эти атрибуты. Могут присутствовать в обновлениях (update), но их присутствие не обязательно.&lt;br /&gt;
# '''Optional transitive''' — могут не распознаваться всеми реализациями BGP. Если маршрутизатор не распознал атрибут, он помечает обновление как частичное (partial) и отправляет его дальше соседям, сохраняя не распознанный атрибут.&lt;br /&gt;
# '''Optional non-transitive''' — могут не распознаваться всеми реализациями BGP. Если маршрутизатор не распознал атрибут, то атрибут игнорируется и при передаче соседям отбрасывается.&lt;br /&gt;
&lt;br /&gt;
Примеры атрибутов BGP:&lt;br /&gt;
* Well-known mandatory:&lt;br /&gt;
** Autonomous system path&lt;br /&gt;
** Next-hop&lt;br /&gt;
** Origin&lt;br /&gt;
* Well-known discretionary:&lt;br /&gt;
** Local preference&lt;br /&gt;
** Atomic aggregate&lt;br /&gt;
* Optional transitive:&lt;br /&gt;
** Aggregator&lt;br /&gt;
** Communities&lt;br /&gt;
*  Optional non-transitive:&lt;br /&gt;
** Multi-exit discriminator (MED)&lt;br /&gt;
&lt;br /&gt;
=== Autonomous system path ===&lt;br /&gt;
[[Изображение:AS_path.png|400px|right]]&lt;br /&gt;
&lt;br /&gt;
Атрибут Autonomous system path (AS Path):&lt;br /&gt;
* Описывает через какие автономные системы надо пройти, чтобы дойти до сети назначения. &lt;br /&gt;
* Номер AS добавляется при передаче обновления из одной AS eBGP-соседу в другой AS.&lt;br /&gt;
&lt;br /&gt;
Используется для:&lt;br /&gt;
* обнаружения петель&lt;br /&gt;
* применения политик&lt;br /&gt;
&lt;br /&gt;
Каждый сегмент атрибута AS path представлен в виде поля TLV (path segment type, path segment length, path segment value):&lt;br /&gt;
* '''path segment type''' — поле размером 1 байт для которого определены такие значения:&lt;br /&gt;
** 1 — AS_SET: неупорядоченное множество автономных систем, через которые прошел маршрут в сообщении Update,&lt;br /&gt;
** 2 — AS_SEQUENCE: упорядоченное множество автономных систем, через которые прошел маршрут в сообщении Update&lt;br /&gt;
* '''path segment length''' — поле размером 1 байт. Указывает сколько автономных систем указано в поле path segment value&lt;br /&gt;
* '''path segment value''' — номера автономных систем, каждая представлена полем размером 2 байта.&lt;br /&gt;
&lt;br /&gt;
=== Next-hop ===&lt;br /&gt;
[[Изображение:Next-hop.png|400px|right]]&lt;br /&gt;
&lt;br /&gt;
Атрибут '''Next-hop''' &lt;br /&gt;
* IP-адрес следующей AS для достижения сети назначения. &lt;br /&gt;
* Это IP-адрес eBGP-маршрутизатора, через который идет путь к сети назначения.&lt;br /&gt;
* Атрибут меняется при передаче префикса в другую AS&lt;br /&gt;
* Атрибут не меняется при передаче префикса в ту же AS&lt;br /&gt;
&lt;br /&gt;
Third party next hop:&lt;br /&gt;
[[Изображение:Next-hop3.png|300px]]&lt;br /&gt;
&lt;br /&gt;
=== Origin ===&lt;br /&gt;
Атрибут '''Origin''' — указывает на то, каким образом был получен маршрут в обновлении.&lt;br /&gt;
&lt;br /&gt;
Возможные значения атрибута:&lt;br /&gt;
* '''0''' — IGP: NLRI получена внутри исходной автономной системы;&lt;br /&gt;
* '''1''' — EGP: NLRI выучена по протоколу Exterior Gateway Protocol (EGP). Предшественник BGP, не используется&lt;br /&gt;
* '''2''' — Incomplete: NLRI была выучена каким-то другим образом&lt;br /&gt;
&lt;br /&gt;
=== Local preference ===&lt;br /&gt;
Атрибут '''Local preference''':&lt;br /&gt;
* Указывает маршрутизаторам внутри автономной системы как выйти за её пределы. &lt;br /&gt;
* Этот атрибут передается только в пределах одной автономной системы. &lt;br /&gt;
* На маршрутизаторах Cisco и Juniper по умолчанию значение атрибута — 100.&lt;br /&gt;
* Выбирается та точка выхода у которой значение атрибута больше.&lt;br /&gt;
* Если eBGP-сосед получает обновление с выставленным значением local preference, он игнорирует этот атрибут.&lt;br /&gt;
* В Junos lpf можно задать через policy и в protocol bgp. Если задан обоими способами, то будет назначен lpf из policy.&lt;br /&gt;
&lt;br /&gt;
=== Atomic aggregate ===&lt;br /&gt;
=== Aggregator ===&lt;br /&gt;
&lt;br /&gt;
=== Communities ===&lt;br /&gt;
Атрибут community:&lt;br /&gt;
* Тегирование маршрутов&lt;br /&gt;
* Существуют предопределенные значения&lt;br /&gt;
* По умолчанию не пересылаются соседям&lt;br /&gt;
* Один из вариантов применения: передается соседней AS для управления входящим трафиком&lt;br /&gt;
&lt;br /&gt;
Значения от 0x00000000 до 0x0000FFFF и от 0xFFFF0000 до 0xFFFFFFFF зарезервированы.&lt;br /&gt;
&lt;br /&gt;
Как правило community отображаются в формате ASN:VALUE.&lt;br /&gt;
В таком формате, доступны для использования community от 1:0 до 65534:65535.&lt;br /&gt;
В первой части указывается номер автономной системы, а во второй значение community, которое определяет политику маршрутизации трафика.&lt;br /&gt;
&lt;br /&gt;
Некоторые значения communities предопределены. RFC1997 определяет три значения таких community. Эти значения должны одинаково распознаваться и обрабатываться всеми реализациями BGP, которые распознают атрибут community.&lt;br /&gt;
&lt;br /&gt;
Если маршрутизатор получает маршрут, в котором указано предопределенное значение communities, то он выполняет специфическое, предопределенное действие основанное на значении атрибута.&lt;br /&gt;
&lt;br /&gt;
Предопределенные значения communities (Well-known Communities):&lt;br /&gt;
&lt;br /&gt;
====no-export (0xFFFFFF01)====&lt;br /&gt;
Все маршруты которые передаются с таким значением атрибута community не должны анонсироваться за пределы конфедерации (автономная система, которая не является частью конфедерации считается конфедерацией). То есть, маршруты не анонсируются EBGP-соседям, но анонсируются внешним соседям в конфедерации,&lt;br /&gt;
&lt;br /&gt;
'''Пример использования'''&lt;br /&gt;
{{note|text=AS1 подключена к AS2 двумя линками (multinoming). AS1 анонсирует '''172.17.0/16''' в AS2. Для оптимальной маршрутизации, AS1 хочет посылать некоторые более специфичные маршруты через один из этих линков, при этом остальному интернету вовсе не обязательно получать эти специфики. Для этой цели AS1 использует community no-export, и посылает '''172.17.0/17''' в один из стыков с AS2, и '''172.17.128/17''' во второй стык. AS2 видит эти маршруты и выбирает их как более специфичные. Кроме того, эти маршруты видят все iBGP-соседи в пределах AS2. Тем не менее, за пределы AS2 в Интернет анонсируется только '''172.17.0/16'''.}}&lt;br /&gt;
&lt;br /&gt;
====no-advertise (0xFFFFFF02)==== &lt;br /&gt;
Все маршруты которые передаются с таким значением атрибута community не должны анонсироваться другим BGP-соседям.&lt;br /&gt;
&lt;br /&gt;
====no-export-subconfed (0xFFFFFF03)====&lt;br /&gt;
Все маршруты которые передаются с таким значением атрибута community не должны анонсироваться внешним BGP-соседям (ни внешним в конфедерации, ни настоящим внешним соседям). В Cisco это значение встречается и под названием local-as.&lt;br /&gt;
{{note|text=&lt;br /&gt;
Маршрутизаторы, которые не поддерживают атрибут community, будут передавать его далее, так как это transitive атрибут.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Multi exit discriminator (MED)===&lt;br /&gt;
Атрибут '''MED''':&lt;br /&gt;
* Используется для информирования eBGP-соседей о том, какой путь в автономную систему более предпочтительный. &lt;br /&gt;
* Атрибут передается между автономными системами. &lt;br /&gt;
* Маршрутизаторы внутри соседней автономной системы используют этот атрибут, но, как только обновление выходит за пределы AS, атрибут MED отбрасывается.&lt;br /&gt;
* Чем меньше значение атрибута, тем более предпочтительна точка входа в автономную систему.&lt;br /&gt;
&lt;br /&gt;
=== Weight (проприетарный атрибут Cisco) ===&lt;br /&gt;
Атрибут '''Weight''': &lt;br /&gt;
* Позволяет назначить &amp;quot;вес&amp;quot; различным путям локально на маршрутизаторе. &lt;br /&gt;
* Используется в тех случаях, когда у одного маршрутизатора есть несколько выходов из автономной системы (сам маршрутизатор является точкой выхода). &lt;br /&gt;
* Имеет значение только локально, в пределах маршрутизатора. &lt;br /&gt;
* Не передается в обновлениях.&lt;br /&gt;
* Чем больше значение атрибута, тем более предпочтителен путь выхода.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Касательно всех атрибутов ==&lt;br /&gt;
Атрибуты, при выборе best, считаются лучшими с наименьшими значением.&lt;br /&gt;
Это правило касается всех атрибутов, кроме Local Preference&lt;br /&gt;
&lt;br /&gt;
== Механизмы управления входящим трафиком: ==&lt;br /&gt;
*AS path prepend&lt;br /&gt;
*Community (если поддерживает провайдер)&lt;br /&gt;
*MED (подключение к одной и той же AS)&lt;br /&gt;
*Анонс разных префиксов через разных ISP&lt;br /&gt;
&lt;br /&gt;
== Механизмы управления исходящим трафиком: ==&lt;br /&gt;
*Проприетарный атрибут Cisco weight (локально на маршрутизаторе)&lt;br /&gt;
*Атрибут Local Preference (локально в AS)&lt;br /&gt;
*Балансировка трафика&lt;br /&gt;
&lt;br /&gt;
== Выбор лучшего пути (BGP Active Route Selection) ==&lt;br /&gt;
&lt;br /&gt;
* Juniper&lt;br /&gt;
# Prefer highest local preference value&lt;br /&gt;
# Prefer shortest AS-path length&lt;br /&gt;
# Prefer lowest Origin value&lt;br /&gt;
# Prefer lowest MED value&lt;br /&gt;
# Prefer routes learned from an EBGP peer over an IBGP peer&lt;br /&gt;
# If the remaining routes were learned through IBGP, use the path with the lowest IGP cost to the IBGP peer.&lt;br /&gt;
# For EBGP received routes, prefer the current active route; otherwise, prefer routes from the peer with the lowest RID&lt;br /&gt;
#Prefer paths with the shortest cluster length&lt;br /&gt;
# Prefer routes from the peer with the lowest peer ID&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Multipath ==&lt;br /&gt;
&lt;br /&gt;
===Link Bandwidth Extended Community===&lt;br /&gt;
При включенном multipath можно задать желаемую балансировку между линками через extended community.&lt;br /&gt;
Это механизм описан в draft-ietf-idr-link-bandwidth-06, и не является стандартизированным, следовательно,&lt;br /&gt;
возможно, он не будет работать с некоторыми вендорами. В JunOS поддерживается.&lt;br /&gt;
&lt;br /&gt;
Пример использования:&lt;br /&gt;
&lt;br /&gt;
R1 и R2 соединены напрямую через ва сабинтерфейса, на каждом из которых висит своя /30 сеть&lt;br /&gt;
&lt;br /&gt;
 |     | ge-0/0/0.10 ----- ge-0/0/0.10 R2 |    |&lt;br /&gt;
 |  R1 |                                  | R2 |&lt;br /&gt;
 |     | ge-0/0/0.20 ----- ge-0/0/0.20 R2 |    |&lt;br /&gt;
&lt;br /&gt;
Конфиг R1:&lt;br /&gt;
 R1&amp;gt; show configuration protocols bgp &lt;br /&gt;
 group ebgp {&lt;br /&gt;
     multipath;&lt;br /&gt;
     neighbor 10.1.0.2 {&lt;br /&gt;
         description R2;&lt;br /&gt;
         export from-direct;&lt;br /&gt;
         peer-as 2222;&lt;br /&gt;
     }&lt;br /&gt;
     neighbor 10.2.0.2 {&lt;br /&gt;
         description R2;&lt;br /&gt;
         export from-direct;&lt;br /&gt;
         peer-as 2222;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Конфиг R2:&lt;br /&gt;
 R2&amp;gt; show configuration interfaces lo0   &lt;br /&gt;
 unit 0 {&lt;br /&gt;
     family inet {&lt;br /&gt;
         address 2.2.2.2/32;&lt;br /&gt;
     }&lt;br /&gt;
     family mpls;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; show configuration policy-options &lt;br /&gt;
 policy-statement bw20 {&lt;br /&gt;
     then {&lt;br /&gt;
         community add bw20;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 policy-statement bw80 {&lt;br /&gt;
     then {&lt;br /&gt;
         community add bw80;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 policy-statement from-direct {&lt;br /&gt;
     term redistribute-direct {&lt;br /&gt;
         from protocol direct;&lt;br /&gt;
         then accept;&lt;br /&gt;
     }&lt;br /&gt;
     term default {&lt;br /&gt;
         then reject;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 community bw20 members bandwidth:2222:2500000; // 2500000 байт в секунду — это 20% от 100Мегабит&lt;br /&gt;
 community bw80 members bandwidth:2222:10000000; // 10000000 байт в секунду — это 80% от 100Мегабит&lt;br /&gt;
 &lt;br /&gt;
 R2&amp;gt; show configuration protocols bgp &lt;br /&gt;
 group ebgp {&lt;br /&gt;
     neighbor 10.1.0.1 {&lt;br /&gt;
         description R1;&lt;br /&gt;
         export [ bw20 from-direct ]; // На одно из  соседств навешивается community, отображающее, что линк загружен на 20%&lt;br /&gt;
         peer-as 1111;&lt;br /&gt;
     }&lt;br /&gt;
     neighbor 10.2.0.1 {&lt;br /&gt;
         description R1;&lt;br /&gt;
         export [ bw80 from-direct ];// На второе соседство навешивается community, отображающее, что линк загружен на 80%&lt;br /&gt;
         peer-as 1111;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Что получилось:&lt;br /&gt;
&lt;br /&gt;
 R1&amp;gt; show route 2.2.2.2 extensive        &lt;br /&gt;
 &lt;br /&gt;
 inet.0: 11 destinations, 19 routes (11 active, 0 holddown, 0 hidden)&lt;br /&gt;
 2.2.2.2/32 (2 entries, 1 announced)&lt;br /&gt;
 TSI:&lt;br /&gt;
 KRT in-kernel 2.2.2.2/32 -&amp;gt; {10.2.0.2, 10.1.0.2}&lt;br /&gt;
        *BGP    Preference: 170/-101&lt;br /&gt;
                Next hop type: Router, Next hop index: 262145&lt;br /&gt;
                Address: 0x9404010&lt;br /&gt;
                Next-hop reference count: 8&lt;br /&gt;
                Source: 10.1.0.2&lt;br /&gt;
                '''Next hop: 10.2.0.2 via ge-0/0/0.20 balance 80%'''&lt;br /&gt;
                '''Next hop: 10.1.0.2 via ge-0/0/0.10 balance 20%, selected'''&lt;br /&gt;
                State: &amp;lt;Active Ext&amp;gt;&lt;br /&gt;
                Local AS:  1111 Peer AS:  2222&lt;br /&gt;
                Age: 1:20:49 &lt;br /&gt;
                Task: BGP_2222.10.1.0.2+179&lt;br /&gt;
                Announcement bits (1): 0-KRT &lt;br /&gt;
                AS path: 2222 I&lt;br /&gt;
                '''Communities: bandwidth:2222:2500000'''&lt;br /&gt;
                '''Accepted Multipath'''&lt;br /&gt;
                Localpref: 100&lt;br /&gt;
                Router ID: 2.2.2.2&lt;br /&gt;
&lt;br /&gt;
==Modifying AS Path==&lt;br /&gt;
&lt;br /&gt;
===Option 1: remove-private===&lt;br /&gt;
&lt;br /&gt;
===Option 2: local-as===&lt;br /&gt;
&lt;br /&gt;
 [edit routing-options]&lt;br /&gt;
 R1# show &lt;br /&gt;
 autonomous-system 1111;&lt;br /&gt;
 &lt;br /&gt;
 [edit protocols bgp group ebgp]&lt;br /&gt;
 R1# show &lt;br /&gt;
 neighbor 10.1.0.2 {&lt;br /&gt;
     peer-as 2222;&lt;br /&gt;
     local-as 3333;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
При такой конфигурации R1, EBGP-сосед, который '''ожидает''', что у R1 будет AS3333 сможет установить соседство с R1, хотя, по факту R1 принадлежит AS1111.&lt;br /&gt;
Результат:&lt;br /&gt;
 R1&amp;gt; show bgp neighbor &lt;br /&gt;
 Peer: 10.1.0.2+179 AS 2222     Local: 10.1.0.1+62745 '''AS 3333''' &lt;br /&gt;
   Type: External    State: Established    Flags: &amp;lt;Sync&amp;gt;&lt;br /&gt;
   Last State: OpenConfirm   Last Event: RecvKeepAlive&lt;br /&gt;
   ...&lt;br /&gt;
   Holdtime: 90 Preference: 170 Localpref: 110 '''Local AS: 3333 Local System AS: 1111'''&lt;br /&gt;
   Number of flaps: 0&lt;br /&gt;
   Peer ID: 2.2.2.2         Local ID: 1.1.1.1           Active Holdtime: 90&lt;br /&gt;
   ...&lt;br /&gt;
&lt;br /&gt;
'''Зачем это нужно'''&lt;br /&gt;
&lt;br /&gt;
Предположим, оператор с AS1111 купил сеть оператора с AS3333. У AS3333 были свои клиенты, подключенные по BGP, которые не готовы или не хотят изменять конфигурацию на своих роутерах. В таком случае можно временно применить опцию local-as, чтобы выступить для них от лица предыдущей AS (в примере - 3333), но внутри сети перевести инфораструктуру на AS1111.&lt;br /&gt;
&lt;br /&gt;
Если добавить ключевое слово private:&lt;br /&gt;
 [edit protocols bgp group ebgp]&lt;br /&gt;
 R1# show &lt;br /&gt;
 neighbor 10.1.0.2 {&lt;br /&gt;
     peer-as 2222;&lt;br /&gt;
     local-as 3333 '''private''';&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
То R1 вообще не будет добавлять AS3333 при анонсе маршрутов, получаемых от 10.1.0.2 своим соседям.&lt;/div&gt;</summary>
		<author><name>Владислав Павкин</name></author>
	</entry>
	<entry>
		<id>https://juniper-exam.ru/index.php?title=BGP&amp;diff=109</id>
		<title>BGP</title>
		<link rel="alternate" type="text/html" href="https://juniper-exam.ru/index.php?title=BGP&amp;diff=109"/>
		<updated>2016-10-21T23:44:40Z</updated>

		<summary type="html">&lt;p&gt;Владислав Павкин: /* no-export (0xFFFFFF01) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Состояния соседства ==&lt;br /&gt;
http://habrastorage.org/getpro/habr/post_images/442/780/549/442780549c2f45cdda10773121b2800d.png&lt;br /&gt;
&lt;br /&gt;
== Сообщения ==&lt;br /&gt;
*Open - отправляется только на стадии установления соседства. Содержит параметры BGP соседа.&lt;br /&gt;
*Update - передает routing info между соседями. Атрибуты и список префиксов, подходящий под данные атрибуты.&lt;br /&gt;
*Keepalive - для удостоверения, что с соседством все ок.&lt;br /&gt;
*Notification - в случае если не прошел keepalive или update.&lt;br /&gt;
*Refresh - soft clearing BGP сессии.&lt;br /&gt;
&lt;br /&gt;
== Атрибуты пути (path attributes) ==&lt;br /&gt;
Атрибуты пути разделены на 4 категории:&lt;br /&gt;
# '''Well-known mandatory''' — все маршрутизаторы, работающие по протоколу BGP, должны распознавать эти атрибуты. Должны присутствовать во всех обновлениях (update).&lt;br /&gt;
# '''Well-known discretionary''' — все маршрутизаторы, работающие по протоколу BGP, должны распознавать эти атрибуты. Могут присутствовать в обновлениях (update), но их присутствие не обязательно.&lt;br /&gt;
# '''Optional transitive''' — могут не распознаваться всеми реализациями BGP. Если маршрутизатор не распознал атрибут, он помечает обновление как частичное (partial) и отправляет его дальше соседям, сохраняя не распознанный атрибут.&lt;br /&gt;
# '''Optional non-transitive''' — могут не распознаваться всеми реализациями BGP. Если маршрутизатор не распознал атрибут, то атрибут игнорируется и при передаче соседям отбрасывается.&lt;br /&gt;
&lt;br /&gt;
Примеры атрибутов BGP:&lt;br /&gt;
* Well-known mandatory:&lt;br /&gt;
** Autonomous system path&lt;br /&gt;
** Next-hop&lt;br /&gt;
** Origin&lt;br /&gt;
* Well-known discretionary:&lt;br /&gt;
** Local preference&lt;br /&gt;
** Atomic aggregate&lt;br /&gt;
* Optional transitive:&lt;br /&gt;
** Aggregator&lt;br /&gt;
** Communities&lt;br /&gt;
*  Optional non-transitive:&lt;br /&gt;
** Multi-exit discriminator (MED)&lt;br /&gt;
&lt;br /&gt;
=== Autonomous system path ===&lt;br /&gt;
[[Изображение:AS_path.png|400px|right]]&lt;br /&gt;
&lt;br /&gt;
Атрибут Autonomous system path (AS Path):&lt;br /&gt;
* Описывает через какие автономные системы надо пройти, чтобы дойти до сети назначения. &lt;br /&gt;
* Номер AS добавляется при передаче обновления из одной AS eBGP-соседу в другой AS.&lt;br /&gt;
&lt;br /&gt;
Используется для:&lt;br /&gt;
* обнаружения петель&lt;br /&gt;
* применения политик&lt;br /&gt;
&lt;br /&gt;
Каждый сегмент атрибута AS path представлен в виде поля TLV (path segment type, path segment length, path segment value):&lt;br /&gt;
* '''path segment type''' — поле размером 1 байт для которого определены такие значения:&lt;br /&gt;
** 1 — AS_SET: неупорядоченное множество автономных систем, через которые прошел маршрут в сообщении Update,&lt;br /&gt;
** 2 — AS_SEQUENCE: упорядоченное множество автономных систем, через которые прошел маршрут в сообщении Update&lt;br /&gt;
* '''path segment length''' — поле размером 1 байт. Указывает сколько автономных систем указано в поле path segment value&lt;br /&gt;
* '''path segment value''' — номера автономных систем, каждая представлена полем размером 2 байта.&lt;br /&gt;
&lt;br /&gt;
=== Next-hop ===&lt;br /&gt;
[[Изображение:Next-hop.png|400px|right]]&lt;br /&gt;
&lt;br /&gt;
Атрибут '''Next-hop''' &lt;br /&gt;
* IP-адрес следующей AS для достижения сети назначения. &lt;br /&gt;
* Это IP-адрес eBGP-маршрутизатора, через который идет путь к сети назначения.&lt;br /&gt;
* Атрибут меняется при передаче префикса в другую AS&lt;br /&gt;
* Атрибут не меняется при передаче префикса в ту же AS&lt;br /&gt;
&lt;br /&gt;
Third party next hop:&lt;br /&gt;
[[Изображение:Next-hop3.png|300px]]&lt;br /&gt;
&lt;br /&gt;
=== Origin ===&lt;br /&gt;
Атрибут '''Origin''' — указывает на то, каким образом был получен маршрут в обновлении.&lt;br /&gt;
&lt;br /&gt;
Возможные значения атрибута:&lt;br /&gt;
* '''0''' — IGP: NLRI получена внутри исходной автономной системы;&lt;br /&gt;
* '''1''' — EGP: NLRI выучена по протоколу Exterior Gateway Protocol (EGP). Предшественник BGP, не используется&lt;br /&gt;
* '''2''' — Incomplete: NLRI была выучена каким-то другим образом&lt;br /&gt;
&lt;br /&gt;
=== Local preference ===&lt;br /&gt;
Атрибут '''Local preference''':&lt;br /&gt;
* Указывает маршрутизаторам внутри автономной системы как выйти за её пределы. &lt;br /&gt;
* Этот атрибут передается только в пределах одной автономной системы. &lt;br /&gt;
* На маршрутизаторах Cisco и Juniper по умолчанию значение атрибута — 100.&lt;br /&gt;
* Выбирается та точка выхода у которой значение атрибута больше.&lt;br /&gt;
* Если eBGP-сосед получает обновление с выставленным значением local preference, он игнорирует этот атрибут.&lt;br /&gt;
* В Junos lpf можно задать через policy и в protocol bgp. Если задан обоими способами, то будет назначен lpf из policy.&lt;br /&gt;
&lt;br /&gt;
=== Atomic aggregate ===&lt;br /&gt;
=== Aggregator ===&lt;br /&gt;
&lt;br /&gt;
=== Communities ===&lt;br /&gt;
Атрибут community:&lt;br /&gt;
* Тегирование маршрутов&lt;br /&gt;
* Существуют предопределенные значения&lt;br /&gt;
* По умолчанию не пересылаются соседям&lt;br /&gt;
* Один из вариантов применения: передается соседней AS для управления входящим трафиком&lt;br /&gt;
&lt;br /&gt;
Значения от 0x00000000 до 0x0000FFFF и от 0xFFFF0000 до 0xFFFFFFFF зарезервированы.&lt;br /&gt;
&lt;br /&gt;
Как правило community отображаются в формате ASN:VALUE.&lt;br /&gt;
В таком формате, доступны для использования community от 1:0 до 65534:65535.&lt;br /&gt;
В первой части указывается номер автономной системы, а во второй значение community, которое определяет политику маршрутизации трафика.&lt;br /&gt;
&lt;br /&gt;
Некоторые значения communities предопределены. RFC1997 определяет три значения таких community. Эти значения должны одинаково распознаваться и обрабатываться всеми реализациями BGP, которые распознают атрибут community.&lt;br /&gt;
&lt;br /&gt;
Если маршрутизатор получает маршрут, в котором указано предопределенное значение communities, то он выполняет специфическое, предопределенное действие основанное на значении атрибута.&lt;br /&gt;
&lt;br /&gt;
Предопределенные значения communities (Well-known Communities):&lt;br /&gt;
&lt;br /&gt;
====no-export (0xFFFFFF01)====&lt;br /&gt;
Все маршруты которые передаются с таким значением атрибута community не должны анонсироваться за пределы конфедерации (автономная система, которая не является частью конфедерации считается конфедерацией). То есть, маршруты не анонсируются EBGP-соседям, но анонсируются внешним соседям в конфедерации,&lt;br /&gt;
&lt;br /&gt;
'''Пример использования'''&lt;br /&gt;
{{note|text=AS1 подключена к AS2 двумя линками (multinoming). AS1 анонсирует '''172.17.0/16''' в AS2. Для оптимальной маршрутизации, AS1 хочет посылать некоторые более специфичные маршруты через один из этих линков, при этом остальному интернету вовсе не обязательно получать эти специфики. Для этой цели AS1 использует community no-export, и посылает '''172.17.0/17''' в один из стыков с AS2, и '''172.17.128/17''' во второй стык. AS2 видит эти маршруты и выбирает их как более специфичные. Кроме того, эти маршруты видят все iBGP-соседи в пределах AS2. Тем не менее, за пределы AS2 в Интернет анонсируется только '''172.17.0/16'''.}}&lt;br /&gt;
&lt;br /&gt;
====no-advertise (0xFFFFFF02)==== &lt;br /&gt;
Все маршруты которые передаются с таким значением атрибута community не должны анонсироваться другим BGP-соседям.&lt;br /&gt;
&lt;br /&gt;
====no-export-subconfed (0xFFFFFF03)====&lt;br /&gt;
Все маршруты которые передаются с таким значением атрибута community не должны анонсироваться внешним BGP-соседям (ни внешним в конфедерации, ни настоящим внешним соседям). В Cisco это значение встречается и под названием local-as.&lt;br /&gt;
&lt;br /&gt;
{{note|text=&lt;br /&gt;
Маршрутизаторы, которые не поддерживают атрибут community, будут передавать его далее, так как это transitive атрибут.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Multi exit discriminator (MED)===&lt;br /&gt;
Атрибут '''MED''':&lt;br /&gt;
* Используется для информирования eBGP-соседей о том, какой путь в автономную систему более предпочтительный. &lt;br /&gt;
* Атрибут передается между автономными системами. &lt;br /&gt;
* Маршрутизаторы внутри соседней автономной системы используют этот атрибут, но, как только обновление выходит за пределы AS, атрибут MED отбрасывается.&lt;br /&gt;
* Чем меньше значение атрибута, тем более предпочтительна точка входа в автономную систему.&lt;br /&gt;
&lt;br /&gt;
=== Weight (проприетарный атрибут Cisco) ===&lt;br /&gt;
Атрибут '''Weight''': &lt;br /&gt;
* Позволяет назначить &amp;quot;вес&amp;quot; различным путям локально на маршрутизаторе. &lt;br /&gt;
* Используется в тех случаях, когда у одного маршрутизатора есть несколько выходов из автономной системы (сам маршрутизатор является точкой выхода). &lt;br /&gt;
* Имеет значение только локально, в пределах маршрутизатора. &lt;br /&gt;
* Не передается в обновлениях.&lt;br /&gt;
* Чем больше значение атрибута, тем более предпочтителен путь выхода.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Касательно всех атрибутов ==&lt;br /&gt;
Атрибуты, при выборе best, считаются лучшими с наименьшими значением.&lt;br /&gt;
Это правило касается всех атрибутов, кроме Local Preference&lt;br /&gt;
&lt;br /&gt;
== Механизмы управления входящим трафиком: ==&lt;br /&gt;
*AS path prepend&lt;br /&gt;
*Community (если поддерживает провайдер)&lt;br /&gt;
*MED (подключение к одной и той же AS)&lt;br /&gt;
*Анонс разных префиксов через разных ISP&lt;br /&gt;
&lt;br /&gt;
== Механизмы управления исходящим трафиком: ==&lt;br /&gt;
*Проприетарный атрибут Cisco weight (локально на маршрутизаторе)&lt;br /&gt;
*Атрибут Local Preference (локально в AS)&lt;br /&gt;
*Балансировка трафика&lt;br /&gt;
&lt;br /&gt;
== Выбор лучшего пути (BGP Active Route Selection) ==&lt;br /&gt;
&lt;br /&gt;
* Juniper&lt;br /&gt;
# Prefer highest local preference value&lt;br /&gt;
# Prefer shortest AS-path length&lt;br /&gt;
# Prefer lowest Origin value&lt;br /&gt;
# Prefer lowest MED value&lt;br /&gt;
# Prefer routes learned from an EBGP peer over an IBGP peer&lt;br /&gt;
# If the remaining routes were learned through IBGP, use the path with the lowest IGP cost to the IBGP peer.&lt;br /&gt;
# For EBGP received routes, prefer the current active route; otherwise, prefer routes from the peer with the lowest RID&lt;br /&gt;
#Prefer paths with the shortest cluster length&lt;br /&gt;
# Prefer routes from the peer with the lowest peer ID&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Multipath ==&lt;br /&gt;
&lt;br /&gt;
===Link Bandwidth Extended Community===&lt;br /&gt;
При включенном multipath можно задать желаемую балансировку между линками через extended community.&lt;br /&gt;
Это механизм описан в draft-ietf-idr-link-bandwidth-06, и не является стандартизированным, следовательно,&lt;br /&gt;
возможно, он не будет работать с некоторыми вендорами. В JunOS поддерживается.&lt;br /&gt;
&lt;br /&gt;
Пример использования:&lt;br /&gt;
&lt;br /&gt;
R1 и R2 соединены напрямую через ва сабинтерфейса, на каждом из которых висит своя /30 сеть&lt;br /&gt;
&lt;br /&gt;
 |     | ge-0/0/0.10 ----- ge-0/0/0.10 R2 |    |&lt;br /&gt;
 |  R1 |                                  | R2 |&lt;br /&gt;
 |     | ge-0/0/0.20 ----- ge-0/0/0.20 R2 |    |&lt;br /&gt;
&lt;br /&gt;
Конфиг R1:&lt;br /&gt;
 R1&amp;gt; show configuration protocols bgp &lt;br /&gt;
 group ebgp {&lt;br /&gt;
     multipath;&lt;br /&gt;
     neighbor 10.1.0.2 {&lt;br /&gt;
         description R2;&lt;br /&gt;
         export from-direct;&lt;br /&gt;
         peer-as 2222;&lt;br /&gt;
     }&lt;br /&gt;
     neighbor 10.2.0.2 {&lt;br /&gt;
         description R2;&lt;br /&gt;
         export from-direct;&lt;br /&gt;
         peer-as 2222;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Конфиг R2:&lt;br /&gt;
 R2&amp;gt; show configuration interfaces lo0   &lt;br /&gt;
 unit 0 {&lt;br /&gt;
     family inet {&lt;br /&gt;
         address 2.2.2.2/32;&lt;br /&gt;
     }&lt;br /&gt;
     family mpls;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; show configuration policy-options &lt;br /&gt;
 policy-statement bw20 {&lt;br /&gt;
     then {&lt;br /&gt;
         community add bw20;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 policy-statement bw80 {&lt;br /&gt;
     then {&lt;br /&gt;
         community add bw80;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 policy-statement from-direct {&lt;br /&gt;
     term redistribute-direct {&lt;br /&gt;
         from protocol direct;&lt;br /&gt;
         then accept;&lt;br /&gt;
     }&lt;br /&gt;
     term default {&lt;br /&gt;
         then reject;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 community bw20 members bandwidth:2222:2500000; // 2500000 байт в секунду — это 20% от 100Мегабит&lt;br /&gt;
 community bw80 members bandwidth:2222:10000000; // 10000000 байт в секунду — это 80% от 100Мегабит&lt;br /&gt;
 &lt;br /&gt;
 R2&amp;gt; show configuration protocols bgp &lt;br /&gt;
 group ebgp {&lt;br /&gt;
     neighbor 10.1.0.1 {&lt;br /&gt;
         description R1;&lt;br /&gt;
         export [ bw20 from-direct ]; // На одно из  соседств навешивается community, отображающее, что линк загружен на 20%&lt;br /&gt;
         peer-as 1111;&lt;br /&gt;
     }&lt;br /&gt;
     neighbor 10.2.0.1 {&lt;br /&gt;
         description R1;&lt;br /&gt;
         export [ bw80 from-direct ];// На второе соседство навешивается community, отображающее, что линк загружен на 80%&lt;br /&gt;
         peer-as 1111;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Что получилось:&lt;br /&gt;
&lt;br /&gt;
 R1&amp;gt; show route 2.2.2.2 extensive        &lt;br /&gt;
 &lt;br /&gt;
 inet.0: 11 destinations, 19 routes (11 active, 0 holddown, 0 hidden)&lt;br /&gt;
 2.2.2.2/32 (2 entries, 1 announced)&lt;br /&gt;
 TSI:&lt;br /&gt;
 KRT in-kernel 2.2.2.2/32 -&amp;gt; {10.2.0.2, 10.1.0.2}&lt;br /&gt;
        *BGP    Preference: 170/-101&lt;br /&gt;
                Next hop type: Router, Next hop index: 262145&lt;br /&gt;
                Address: 0x9404010&lt;br /&gt;
                Next-hop reference count: 8&lt;br /&gt;
                Source: 10.1.0.2&lt;br /&gt;
                '''Next hop: 10.2.0.2 via ge-0/0/0.20 balance 80%'''&lt;br /&gt;
                '''Next hop: 10.1.0.2 via ge-0/0/0.10 balance 20%, selected'''&lt;br /&gt;
                State: &amp;lt;Active Ext&amp;gt;&lt;br /&gt;
                Local AS:  1111 Peer AS:  2222&lt;br /&gt;
                Age: 1:20:49 &lt;br /&gt;
                Task: BGP_2222.10.1.0.2+179&lt;br /&gt;
                Announcement bits (1): 0-KRT &lt;br /&gt;
                AS path: 2222 I&lt;br /&gt;
                '''Communities: bandwidth:2222:2500000'''&lt;br /&gt;
                '''Accepted Multipath'''&lt;br /&gt;
                Localpref: 100&lt;br /&gt;
                Router ID: 2.2.2.2&lt;br /&gt;
&lt;br /&gt;
==Modifying AS Path==&lt;br /&gt;
&lt;br /&gt;
===Option 1: remove-private===&lt;br /&gt;
&lt;br /&gt;
===Option 2: local-as===&lt;br /&gt;
&lt;br /&gt;
 [edit routing-options]&lt;br /&gt;
 R1# show &lt;br /&gt;
 autonomous-system 1111;&lt;br /&gt;
 &lt;br /&gt;
 [edit protocols bgp group ebgp]&lt;br /&gt;
 R1# show &lt;br /&gt;
 neighbor 10.1.0.2 {&lt;br /&gt;
     peer-as 2222;&lt;br /&gt;
     local-as 3333;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
При такой конфигурации R1, EBGP-сосед, который '''ожидает''', что у R1 будет AS3333 сможет установить соседство с R1, хотя, по факту R1 принадлежит AS1111.&lt;br /&gt;
Результат:&lt;br /&gt;
 R1&amp;gt; show bgp neighbor &lt;br /&gt;
 Peer: 10.1.0.2+179 AS 2222     Local: 10.1.0.1+62745 '''AS 3333''' &lt;br /&gt;
   Type: External    State: Established    Flags: &amp;lt;Sync&amp;gt;&lt;br /&gt;
   Last State: OpenConfirm   Last Event: RecvKeepAlive&lt;br /&gt;
   ...&lt;br /&gt;
   Holdtime: 90 Preference: 170 Localpref: 110 '''Local AS: 3333 Local System AS: 1111'''&lt;br /&gt;
   Number of flaps: 0&lt;br /&gt;
   Peer ID: 2.2.2.2         Local ID: 1.1.1.1           Active Holdtime: 90&lt;br /&gt;
   ...&lt;br /&gt;
&lt;br /&gt;
'''Зачем это нужно'''&lt;br /&gt;
&lt;br /&gt;
Предположим, оператор с AS1111 купил сеть оператора с AS3333. У AS3333 были свои клиенты, подключенные по BGP, которые не готовы или не хотят изменять конфигурацию на своих роутерах. В таком случае можно временно применить опцию local-as, чтобы выступить для них от лица предыдущей AS (в примере - 3333), но внутри сети перевести инфораструктуру на AS1111.&lt;br /&gt;
&lt;br /&gt;
Если добавить ключевое слово private:&lt;br /&gt;
 [edit protocols bgp group ebgp]&lt;br /&gt;
 R1# show &lt;br /&gt;
 neighbor 10.1.0.2 {&lt;br /&gt;
     peer-as 2222;&lt;br /&gt;
     local-as 3333 '''private''';&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
То R1 вообще не будет добавлять AS3333 при анонсе маршрутов, получаемых от 10.1.0.2 своим соседям.&lt;/div&gt;</summary>
		<author><name>Владислав Павкин</name></author>
	</entry>
	<entry>
		<id>https://juniper-exam.ru/index.php?title=%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD:Note&amp;diff=108</id>
		<title>Шаблон:Note</title>
		<link rel="alternate" type="text/html" href="https://juniper-exam.ru/index.php?title=%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD:Note&amp;diff=108"/>
		<updated>2016-10-21T23:44:12Z</updated>

		<summary type="html">&lt;p&gt;Владислав Павкин: Обновление шаблона Note&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
{|style=&amp;quot;border-style: solid; border-width: 0 0 0 3px;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;color: #666666;&amp;quot;&amp;gt;{{{text}}}&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Владислав Павкин</name></author>
	</entry>
	<entry>
		<id>https://juniper-exam.ru/index.php?title=BGP&amp;diff=107</id>
		<title>BGP</title>
		<link rel="alternate" type="text/html" href="https://juniper-exam.ru/index.php?title=BGP&amp;diff=107"/>
		<updated>2016-10-21T23:40:13Z</updated>

		<summary type="html">&lt;p&gt;Владислав Павкин: /* Communities */ Пример использования no-export&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Состояния соседства ==&lt;br /&gt;
http://habrastorage.org/getpro/habr/post_images/442/780/549/442780549c2f45cdda10773121b2800d.png&lt;br /&gt;
&lt;br /&gt;
== Сообщения ==&lt;br /&gt;
*Open - отправляется только на стадии установления соседства. Содержит параметры BGP соседа.&lt;br /&gt;
*Update - передает routing info между соседями. Атрибуты и список префиксов, подходящий под данные атрибуты.&lt;br /&gt;
*Keepalive - для удостоверения, что с соседством все ок.&lt;br /&gt;
*Notification - в случае если не прошел keepalive или update.&lt;br /&gt;
*Refresh - soft clearing BGP сессии.&lt;br /&gt;
&lt;br /&gt;
== Атрибуты пути (path attributes) ==&lt;br /&gt;
Атрибуты пути разделены на 4 категории:&lt;br /&gt;
# '''Well-known mandatory''' — все маршрутизаторы, работающие по протоколу BGP, должны распознавать эти атрибуты. Должны присутствовать во всех обновлениях (update).&lt;br /&gt;
# '''Well-known discretionary''' — все маршрутизаторы, работающие по протоколу BGP, должны распознавать эти атрибуты. Могут присутствовать в обновлениях (update), но их присутствие не обязательно.&lt;br /&gt;
# '''Optional transitive''' — могут не распознаваться всеми реализациями BGP. Если маршрутизатор не распознал атрибут, он помечает обновление как частичное (partial) и отправляет его дальше соседям, сохраняя не распознанный атрибут.&lt;br /&gt;
# '''Optional non-transitive''' — могут не распознаваться всеми реализациями BGP. Если маршрутизатор не распознал атрибут, то атрибут игнорируется и при передаче соседям отбрасывается.&lt;br /&gt;
&lt;br /&gt;
Примеры атрибутов BGP:&lt;br /&gt;
* Well-known mandatory:&lt;br /&gt;
** Autonomous system path&lt;br /&gt;
** Next-hop&lt;br /&gt;
** Origin&lt;br /&gt;
* Well-known discretionary:&lt;br /&gt;
** Local preference&lt;br /&gt;
** Atomic aggregate&lt;br /&gt;
* Optional transitive:&lt;br /&gt;
** Aggregator&lt;br /&gt;
** Communities&lt;br /&gt;
*  Optional non-transitive:&lt;br /&gt;
** Multi-exit discriminator (MED)&lt;br /&gt;
&lt;br /&gt;
=== Autonomous system path ===&lt;br /&gt;
[[Изображение:AS_path.png|400px|right]]&lt;br /&gt;
&lt;br /&gt;
Атрибут Autonomous system path (AS Path):&lt;br /&gt;
* Описывает через какие автономные системы надо пройти, чтобы дойти до сети назначения. &lt;br /&gt;
* Номер AS добавляется при передаче обновления из одной AS eBGP-соседу в другой AS.&lt;br /&gt;
&lt;br /&gt;
Используется для:&lt;br /&gt;
* обнаружения петель&lt;br /&gt;
* применения политик&lt;br /&gt;
&lt;br /&gt;
Каждый сегмент атрибута AS path представлен в виде поля TLV (path segment type, path segment length, path segment value):&lt;br /&gt;
* '''path segment type''' — поле размером 1 байт для которого определены такие значения:&lt;br /&gt;
** 1 — AS_SET: неупорядоченное множество автономных систем, через которые прошел маршрут в сообщении Update,&lt;br /&gt;
** 2 — AS_SEQUENCE: упорядоченное множество автономных систем, через которые прошел маршрут в сообщении Update&lt;br /&gt;
* '''path segment length''' — поле размером 1 байт. Указывает сколько автономных систем указано в поле path segment value&lt;br /&gt;
* '''path segment value''' — номера автономных систем, каждая представлена полем размером 2 байта.&lt;br /&gt;
&lt;br /&gt;
=== Next-hop ===&lt;br /&gt;
[[Изображение:Next-hop.png|400px|right]]&lt;br /&gt;
&lt;br /&gt;
Атрибут '''Next-hop''' &lt;br /&gt;
* IP-адрес следующей AS для достижения сети назначения. &lt;br /&gt;
* Это IP-адрес eBGP-маршрутизатора, через который идет путь к сети назначения.&lt;br /&gt;
* Атрибут меняется при передаче префикса в другую AS&lt;br /&gt;
* Атрибут не меняется при передаче префикса в ту же AS&lt;br /&gt;
&lt;br /&gt;
Third party next hop:&lt;br /&gt;
[[Изображение:Next-hop3.png|300px]]&lt;br /&gt;
&lt;br /&gt;
=== Origin ===&lt;br /&gt;
Атрибут '''Origin''' — указывает на то, каким образом был получен маршрут в обновлении.&lt;br /&gt;
&lt;br /&gt;
Возможные значения атрибута:&lt;br /&gt;
* '''0''' — IGP: NLRI получена внутри исходной автономной системы;&lt;br /&gt;
* '''1''' — EGP: NLRI выучена по протоколу Exterior Gateway Protocol (EGP). Предшественник BGP, не используется&lt;br /&gt;
* '''2''' — Incomplete: NLRI была выучена каким-то другим образом&lt;br /&gt;
&lt;br /&gt;
=== Local preference ===&lt;br /&gt;
Атрибут '''Local preference''':&lt;br /&gt;
* Указывает маршрутизаторам внутри автономной системы как выйти за её пределы. &lt;br /&gt;
* Этот атрибут передается только в пределах одной автономной системы. &lt;br /&gt;
* На маршрутизаторах Cisco и Juniper по умолчанию значение атрибута — 100.&lt;br /&gt;
* Выбирается та точка выхода у которой значение атрибута больше.&lt;br /&gt;
* Если eBGP-сосед получает обновление с выставленным значением local preference, он игнорирует этот атрибут.&lt;br /&gt;
* В Junos lpf можно задать через policy и в protocol bgp. Если задан обоими способами, то будет назначен lpf из policy.&lt;br /&gt;
&lt;br /&gt;
=== Atomic aggregate ===&lt;br /&gt;
=== Aggregator ===&lt;br /&gt;
&lt;br /&gt;
=== Communities ===&lt;br /&gt;
Атрибут community:&lt;br /&gt;
* Тегирование маршрутов&lt;br /&gt;
* Существуют предопределенные значения&lt;br /&gt;
* По умолчанию не пересылаются соседям&lt;br /&gt;
* Один из вариантов применения: передается соседней AS для управления входящим трафиком&lt;br /&gt;
&lt;br /&gt;
Значения от 0x00000000 до 0x0000FFFF и от 0xFFFF0000 до 0xFFFFFFFF зарезервированы.&lt;br /&gt;
&lt;br /&gt;
Как правило community отображаются в формате ASN:VALUE.&lt;br /&gt;
В таком формате, доступны для использования community от 1:0 до 65534:65535.&lt;br /&gt;
В первой части указывается номер автономной системы, а во второй значение community, которое определяет политику маршрутизации трафика.&lt;br /&gt;
&lt;br /&gt;
Некоторые значения communities предопределены. RFC1997 определяет три значения таких community. Эти значения должны одинаково распознаваться и обрабатываться всеми реализациями BGP, которые распознают атрибут community.&lt;br /&gt;
&lt;br /&gt;
Если маршрутизатор получает маршрут, в котором указано предопределенное значение communities, то он выполняет специфическое, предопределенное действие основанное на значении атрибута.&lt;br /&gt;
&lt;br /&gt;
Предопределенные значения communities (Well-known Communities):&lt;br /&gt;
&lt;br /&gt;
====no-export (0xFFFFFF01)====&lt;br /&gt;
Все маршруты которые передаются с таким значением атрибута community не должны анонсироваться за пределы конфедерации (автономная система, которая не является частью конфедерации считается конфедерацией). То есть, маршруты не анонсируются EBGP-соседям, но анонсируются внешним соседям в конфедерации,&lt;br /&gt;
&lt;br /&gt;
'''Пример использования'''&lt;br /&gt;
&lt;br /&gt;
{{note|text=AS1 подключена к AS2 двумя линками (multinoming). AS1 анонсирует '''172.17.0/16''' в AS2. Для оптимальной маршрутизации, AS1 хочет посылать некоторые более специфичные маршруты через один из этих линков, при этом остальному интернету вовсе не обязательно получать эти специфики. Для этой цели AS1 использует community no-export, и посылает '''172.17.0/17''' в один из стыков с AS2, и '''172.17.128/17''' во второй стык. AS2 видит эти маршруты и выбирает их как более специфичные. Кроме того, эти маршруты видят все iBGP-соседи в пределах AS2. Тем не менее, за пределы AS2 в Интернет анонсируется только '''172.17.0/16'''.}}&lt;br /&gt;
&lt;br /&gt;
====no-advertise (0xFFFFFF02)==== &lt;br /&gt;
Все маршруты которые передаются с таким значением атрибута community не должны анонсироваться другим BGP-соседям.&lt;br /&gt;
&lt;br /&gt;
====no-export-subconfed (0xFFFFFF03)====&lt;br /&gt;
Все маршруты которые передаются с таким значением атрибута community не должны анонсироваться внешним BGP-соседям (ни внешним в конфедерации, ни настоящим внешним соседям). В Cisco это значение встречается и под названием local-as.&lt;br /&gt;
&lt;br /&gt;
{{note|text=&lt;br /&gt;
Маршрутизаторы, которые не поддерживают атрибут community, будут передавать его далее, так как это transitive атрибут.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Multi exit discriminator (MED)===&lt;br /&gt;
Атрибут '''MED''':&lt;br /&gt;
* Используется для информирования eBGP-соседей о том, какой путь в автономную систему более предпочтительный. &lt;br /&gt;
* Атрибут передается между автономными системами. &lt;br /&gt;
* Маршрутизаторы внутри соседней автономной системы используют этот атрибут, но, как только обновление выходит за пределы AS, атрибут MED отбрасывается.&lt;br /&gt;
* Чем меньше значение атрибута, тем более предпочтительна точка входа в автономную систему.&lt;br /&gt;
&lt;br /&gt;
=== Weight (проприетарный атрибут Cisco) ===&lt;br /&gt;
Атрибут '''Weight''': &lt;br /&gt;
* Позволяет назначить &amp;quot;вес&amp;quot; различным путям локально на маршрутизаторе. &lt;br /&gt;
* Используется в тех случаях, когда у одного маршрутизатора есть несколько выходов из автономной системы (сам маршрутизатор является точкой выхода). &lt;br /&gt;
* Имеет значение только локально, в пределах маршрутизатора. &lt;br /&gt;
* Не передается в обновлениях.&lt;br /&gt;
* Чем больше значение атрибута, тем более предпочтителен путь выхода.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Касательно всех атрибутов ==&lt;br /&gt;
Атрибуты, при выборе best, считаются лучшими с наименьшими значением.&lt;br /&gt;
Это правило касается всех атрибутов, кроме Local Preference&lt;br /&gt;
&lt;br /&gt;
== Механизмы управления входящим трафиком: ==&lt;br /&gt;
*AS path prepend&lt;br /&gt;
*Community (если поддерживает провайдер)&lt;br /&gt;
*MED (подключение к одной и той же AS)&lt;br /&gt;
*Анонс разных префиксов через разных ISP&lt;br /&gt;
&lt;br /&gt;
== Механизмы управления исходящим трафиком: ==&lt;br /&gt;
*Проприетарный атрибут Cisco weight (локально на маршрутизаторе)&lt;br /&gt;
*Атрибут Local Preference (локально в AS)&lt;br /&gt;
*Балансировка трафика&lt;br /&gt;
&lt;br /&gt;
== Выбор лучшего пути (BGP Active Route Selection) ==&lt;br /&gt;
&lt;br /&gt;
* Juniper&lt;br /&gt;
# Prefer highest local preference value&lt;br /&gt;
# Prefer shortest AS-path length&lt;br /&gt;
# Prefer lowest Origin value&lt;br /&gt;
# Prefer lowest MED value&lt;br /&gt;
# Prefer routes learned from an EBGP peer over an IBGP peer&lt;br /&gt;
# If the remaining routes were learned through IBGP, use the path with the lowest IGP cost to the IBGP peer.&lt;br /&gt;
# For EBGP received routes, prefer the current active route; otherwise, prefer routes from the peer with the lowest RID&lt;br /&gt;
#Prefer paths with the shortest cluster length&lt;br /&gt;
# Prefer routes from the peer with the lowest peer ID&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Multipath ==&lt;br /&gt;
&lt;br /&gt;
===Link Bandwidth Extended Community===&lt;br /&gt;
При включенном multipath можно задать желаемую балансировку между линками через extended community.&lt;br /&gt;
Это механизм описан в draft-ietf-idr-link-bandwidth-06, и не является стандартизированным, следовательно,&lt;br /&gt;
возможно, он не будет работать с некоторыми вендорами. В JunOS поддерживается.&lt;br /&gt;
&lt;br /&gt;
Пример использования:&lt;br /&gt;
&lt;br /&gt;
R1 и R2 соединены напрямую через ва сабинтерфейса, на каждом из которых висит своя /30 сеть&lt;br /&gt;
&lt;br /&gt;
 |     | ge-0/0/0.10 ----- ge-0/0/0.10 R2 |    |&lt;br /&gt;
 |  R1 |                                  | R2 |&lt;br /&gt;
 |     | ge-0/0/0.20 ----- ge-0/0/0.20 R2 |    |&lt;br /&gt;
&lt;br /&gt;
Конфиг R1:&lt;br /&gt;
 R1&amp;gt; show configuration protocols bgp &lt;br /&gt;
 group ebgp {&lt;br /&gt;
     multipath;&lt;br /&gt;
     neighbor 10.1.0.2 {&lt;br /&gt;
         description R2;&lt;br /&gt;
         export from-direct;&lt;br /&gt;
         peer-as 2222;&lt;br /&gt;
     }&lt;br /&gt;
     neighbor 10.2.0.2 {&lt;br /&gt;
         description R2;&lt;br /&gt;
         export from-direct;&lt;br /&gt;
         peer-as 2222;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Конфиг R2:&lt;br /&gt;
 R2&amp;gt; show configuration interfaces lo0   &lt;br /&gt;
 unit 0 {&lt;br /&gt;
     family inet {&lt;br /&gt;
         address 2.2.2.2/32;&lt;br /&gt;
     }&lt;br /&gt;
     family mpls;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; show configuration policy-options &lt;br /&gt;
 policy-statement bw20 {&lt;br /&gt;
     then {&lt;br /&gt;
         community add bw20;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 policy-statement bw80 {&lt;br /&gt;
     then {&lt;br /&gt;
         community add bw80;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 policy-statement from-direct {&lt;br /&gt;
     term redistribute-direct {&lt;br /&gt;
         from protocol direct;&lt;br /&gt;
         then accept;&lt;br /&gt;
     }&lt;br /&gt;
     term default {&lt;br /&gt;
         then reject;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 community bw20 members bandwidth:2222:2500000; // 2500000 байт в секунду — это 20% от 100Мегабит&lt;br /&gt;
 community bw80 members bandwidth:2222:10000000; // 10000000 байт в секунду — это 80% от 100Мегабит&lt;br /&gt;
 &lt;br /&gt;
 R2&amp;gt; show configuration protocols bgp &lt;br /&gt;
 group ebgp {&lt;br /&gt;
     neighbor 10.1.0.1 {&lt;br /&gt;
         description R1;&lt;br /&gt;
         export [ bw20 from-direct ]; // На одно из  соседств навешивается community, отображающее, что линк загружен на 20%&lt;br /&gt;
         peer-as 1111;&lt;br /&gt;
     }&lt;br /&gt;
     neighbor 10.2.0.1 {&lt;br /&gt;
         description R1;&lt;br /&gt;
         export [ bw80 from-direct ];// На второе соседство навешивается community, отображающее, что линк загружен на 80%&lt;br /&gt;
         peer-as 1111;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Что получилось:&lt;br /&gt;
&lt;br /&gt;
 R1&amp;gt; show route 2.2.2.2 extensive        &lt;br /&gt;
 &lt;br /&gt;
 inet.0: 11 destinations, 19 routes (11 active, 0 holddown, 0 hidden)&lt;br /&gt;
 2.2.2.2/32 (2 entries, 1 announced)&lt;br /&gt;
 TSI:&lt;br /&gt;
 KRT in-kernel 2.2.2.2/32 -&amp;gt; {10.2.0.2, 10.1.0.2}&lt;br /&gt;
        *BGP    Preference: 170/-101&lt;br /&gt;
                Next hop type: Router, Next hop index: 262145&lt;br /&gt;
                Address: 0x9404010&lt;br /&gt;
                Next-hop reference count: 8&lt;br /&gt;
                Source: 10.1.0.2&lt;br /&gt;
                '''Next hop: 10.2.0.2 via ge-0/0/0.20 balance 80%'''&lt;br /&gt;
                '''Next hop: 10.1.0.2 via ge-0/0/0.10 balance 20%, selected'''&lt;br /&gt;
                State: &amp;lt;Active Ext&amp;gt;&lt;br /&gt;
                Local AS:  1111 Peer AS:  2222&lt;br /&gt;
                Age: 1:20:49 &lt;br /&gt;
                Task: BGP_2222.10.1.0.2+179&lt;br /&gt;
                Announcement bits (1): 0-KRT &lt;br /&gt;
                AS path: 2222 I&lt;br /&gt;
                '''Communities: bandwidth:2222:2500000'''&lt;br /&gt;
                '''Accepted Multipath'''&lt;br /&gt;
                Localpref: 100&lt;br /&gt;
                Router ID: 2.2.2.2&lt;br /&gt;
&lt;br /&gt;
==Modifying AS Path==&lt;br /&gt;
&lt;br /&gt;
===Option 1: remove-private===&lt;br /&gt;
&lt;br /&gt;
===Option 2: local-as===&lt;br /&gt;
&lt;br /&gt;
 [edit routing-options]&lt;br /&gt;
 R1# show &lt;br /&gt;
 autonomous-system 1111;&lt;br /&gt;
 &lt;br /&gt;
 [edit protocols bgp group ebgp]&lt;br /&gt;
 R1# show &lt;br /&gt;
 neighbor 10.1.0.2 {&lt;br /&gt;
     peer-as 2222;&lt;br /&gt;
     local-as 3333;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
При такой конфигурации R1, EBGP-сосед, который '''ожидает''', что у R1 будет AS3333 сможет установить соседство с R1, хотя, по факту R1 принадлежит AS1111.&lt;br /&gt;
Результат:&lt;br /&gt;
 R1&amp;gt; show bgp neighbor &lt;br /&gt;
 Peer: 10.1.0.2+179 AS 2222     Local: 10.1.0.1+62745 '''AS 3333''' &lt;br /&gt;
   Type: External    State: Established    Flags: &amp;lt;Sync&amp;gt;&lt;br /&gt;
   Last State: OpenConfirm   Last Event: RecvKeepAlive&lt;br /&gt;
   ...&lt;br /&gt;
   Holdtime: 90 Preference: 170 Localpref: 110 '''Local AS: 3333 Local System AS: 1111'''&lt;br /&gt;
   Number of flaps: 0&lt;br /&gt;
   Peer ID: 2.2.2.2         Local ID: 1.1.1.1           Active Holdtime: 90&lt;br /&gt;
   ...&lt;br /&gt;
&lt;br /&gt;
'''Зачем это нужно'''&lt;br /&gt;
&lt;br /&gt;
Предположим, оператор с AS1111 купил сеть оператора с AS3333. У AS3333 были свои клиенты, подключенные по BGP, которые не готовы или не хотят изменять конфигурацию на своих роутерах. В таком случае можно временно применить опцию local-as, чтобы выступить для них от лица предыдущей AS (в примере - 3333), но внутри сети перевести инфораструктуру на AS1111.&lt;br /&gt;
&lt;br /&gt;
Если добавить ключевое слово private:&lt;br /&gt;
 [edit protocols bgp group ebgp]&lt;br /&gt;
 R1# show &lt;br /&gt;
 neighbor 10.1.0.2 {&lt;br /&gt;
     peer-as 2222;&lt;br /&gt;
     local-as 3333 '''private''';&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
То R1 вообще не будет добавлять AS3333 при анонсе маршрутов, получаемых от 10.1.0.2 своим соседям.&lt;/div&gt;</summary>
		<author><name>Владислав Павкин</name></author>
	</entry>
	<entry>
		<id>https://juniper-exam.ru/index.php?title=%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD:Note&amp;diff=106</id>
		<title>Шаблон:Note</title>
		<link rel="alternate" type="text/html" href="https://juniper-exam.ru/index.php?title=%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD:Note&amp;diff=106"/>
		<updated>2016-10-21T23:39:05Z</updated>

		<summary type="html">&lt;p&gt;Владислав Павкин: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;blockquote style=&amp;quot;color: #666666;&amp;quot;&amp;gt;{{{text}}}&amp;lt;/blockquote&amp;gt;&lt;/div&gt;</summary>
		<author><name>Владислав Павкин</name></author>
	</entry>
	<entry>
		<id>https://juniper-exam.ru/index.php?title=%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD:Note&amp;diff=105</id>
		<title>Шаблон:Note</title>
		<link rel="alternate" type="text/html" href="https://juniper-exam.ru/index.php?title=%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD:Note&amp;diff=105"/>
		<updated>2016-10-21T23:37:17Z</updated>

		<summary type="html">&lt;p&gt;Владислав Павкин: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Заметка!&lt;br /&gt;
{{{text}}}&lt;/div&gt;</summary>
		<author><name>Владислав Павкин</name></author>
	</entry>
	<entry>
		<id>https://juniper-exam.ru/index.php?title=%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD:Note&amp;diff=104</id>
		<title>Шаблон:Note</title>
		<link rel="alternate" type="text/html" href="https://juniper-exam.ru/index.php?title=%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD:Note&amp;diff=104"/>
		<updated>2016-10-21T23:36:40Z</updated>

		<summary type="html">&lt;p&gt;Владислав Павкин: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Заметка!&lt;br /&gt;
{{{1}}}&lt;/div&gt;</summary>
		<author><name>Владислав Павкин</name></author>
	</entry>
	<entry>
		<id>https://juniper-exam.ru/index.php?title=%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD:Note&amp;diff=103</id>
		<title>Шаблон:Note</title>
		<link rel="alternate" type="text/html" href="https://juniper-exam.ru/index.php?title=%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD:Note&amp;diff=103"/>
		<updated>2016-10-21T23:35:20Z</updated>

		<summary type="html">&lt;p&gt;Владислав Павкин: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Заметка!&lt;/div&gt;</summary>
		<author><name>Владислав Павкин</name></author>
	</entry>
	<entry>
		<id>https://juniper-exam.ru/index.php?title=%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD:Note&amp;diff=101</id>
		<title>Шаблон:Note</title>
		<link rel="alternate" type="text/html" href="https://juniper-exam.ru/index.php?title=%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD:Note&amp;diff=101"/>
		<updated>2016-10-21T23:33:03Z</updated>

		<summary type="html">&lt;p&gt;Владислав Павкин: Новая страница: «{{Заметка: 1}}»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Заметка: 1}}&lt;/div&gt;</summary>
		<author><name>Владислав Павкин</name></author>
	</entry>
	<entry>
		<id>https://juniper-exam.ru/index.php?title=BGP&amp;diff=100</id>
		<title>BGP</title>
		<link rel="alternate" type="text/html" href="https://juniper-exam.ru/index.php?title=BGP&amp;diff=100"/>
		<updated>2016-10-21T20:33:11Z</updated>

		<summary type="html">&lt;p&gt;Владислав Павкин: /* Option 2: local-as */ Еще уточнение&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Состояния соседства ==&lt;br /&gt;
http://habrastorage.org/getpro/habr/post_images/442/780/549/442780549c2f45cdda10773121b2800d.png&lt;br /&gt;
&lt;br /&gt;
== Сообщения ==&lt;br /&gt;
*Open - отправляется только на стадии установления соседства. Содержит параметры BGP соседа.&lt;br /&gt;
*Update - передает routing info между соседями. Атрибуты и список префиксов, подходящий под данные атрибуты.&lt;br /&gt;
*Keepalive - для удостоверения, что с соседством все ок.&lt;br /&gt;
*Notification - в случае если не прошел keepalive или update.&lt;br /&gt;
*Refresh - soft clearing BGP сессии.&lt;br /&gt;
&lt;br /&gt;
== Атрибуты пути (path attributes) ==&lt;br /&gt;
Атрибуты пути разделены на 4 категории:&lt;br /&gt;
# '''Well-known mandatory''' — все маршрутизаторы, работающие по протоколу BGP, должны распознавать эти атрибуты. Должны присутствовать во всех обновлениях (update).&lt;br /&gt;
# '''Well-known discretionary''' — все маршрутизаторы, работающие по протоколу BGP, должны распознавать эти атрибуты. Могут присутствовать в обновлениях (update), но их присутствие не обязательно.&lt;br /&gt;
# '''Optional transitive''' — могут не распознаваться всеми реализациями BGP. Если маршрутизатор не распознал атрибут, он помечает обновление как частичное (partial) и отправляет его дальше соседям, сохраняя не распознанный атрибут.&lt;br /&gt;
# '''Optional non-transitive''' — могут не распознаваться всеми реализациями BGP. Если маршрутизатор не распознал атрибут, то атрибут игнорируется и при передаче соседям отбрасывается.&lt;br /&gt;
&lt;br /&gt;
Примеры атрибутов BGP:&lt;br /&gt;
* Well-known mandatory:&lt;br /&gt;
** Autonomous system path&lt;br /&gt;
** Next-hop&lt;br /&gt;
** Origin&lt;br /&gt;
* Well-known discretionary:&lt;br /&gt;
** Local preference&lt;br /&gt;
** Atomic aggregate&lt;br /&gt;
* Optional transitive:&lt;br /&gt;
** Aggregator&lt;br /&gt;
** Communities&lt;br /&gt;
*  Optional non-transitive:&lt;br /&gt;
** Multi-exit discriminator (MED)&lt;br /&gt;
&lt;br /&gt;
=== Autonomous system path ===&lt;br /&gt;
[[Изображение:AS_path.png|400px|right]]&lt;br /&gt;
&lt;br /&gt;
Атрибут Autonomous system path (AS Path):&lt;br /&gt;
* Описывает через какие автономные системы надо пройти, чтобы дойти до сети назначения. &lt;br /&gt;
* Номер AS добавляется при передаче обновления из одной AS eBGP-соседу в другой AS.&lt;br /&gt;
&lt;br /&gt;
Используется для:&lt;br /&gt;
* обнаружения петель&lt;br /&gt;
* применения политик&lt;br /&gt;
&lt;br /&gt;
Каждый сегмент атрибута AS path представлен в виде поля TLV (path segment type, path segment length, path segment value):&lt;br /&gt;
* '''path segment type''' — поле размером 1 байт для которого определены такие значения:&lt;br /&gt;
** 1 — AS_SET: неупорядоченное множество автономных систем, через которые прошел маршрут в сообщении Update,&lt;br /&gt;
** 2 — AS_SEQUENCE: упорядоченное множество автономных систем, через которые прошел маршрут в сообщении Update&lt;br /&gt;
* '''path segment length''' — поле размером 1 байт. Указывает сколько автономных систем указано в поле path segment value&lt;br /&gt;
* '''path segment value''' — номера автономных систем, каждая представлена полем размером 2 байта.&lt;br /&gt;
&lt;br /&gt;
=== Next-hop ===&lt;br /&gt;
[[Изображение:Next-hop.png|400px|right]]&lt;br /&gt;
&lt;br /&gt;
Атрибут '''Next-hop''' &lt;br /&gt;
* IP-адрес следующей AS для достижения сети назначения. &lt;br /&gt;
* Это IP-адрес eBGP-маршрутизатора, через который идет путь к сети назначения.&lt;br /&gt;
* Атрибут меняется при передаче префикса в другую AS&lt;br /&gt;
* Атрибут не меняется при передаче префикса в ту же AS&lt;br /&gt;
&lt;br /&gt;
Third party next hop:&lt;br /&gt;
[[Изображение:Next-hop3.png|300px]]&lt;br /&gt;
&lt;br /&gt;
=== Origin ===&lt;br /&gt;
Атрибут '''Origin''' — указывает на то, каким образом был получен маршрут в обновлении.&lt;br /&gt;
&lt;br /&gt;
Возможные значения атрибута:&lt;br /&gt;
* '''0''' — IGP: NLRI получена внутри исходной автономной системы;&lt;br /&gt;
* '''1''' — EGP: NLRI выучена по протоколу Exterior Gateway Protocol (EGP). Предшественник BGP, не используется&lt;br /&gt;
* '''2''' — Incomplete: NLRI была выучена каким-то другим образом&lt;br /&gt;
&lt;br /&gt;
=== Local preference ===&lt;br /&gt;
Атрибут '''Local preference''':&lt;br /&gt;
* Указывает маршрутизаторам внутри автономной системы как выйти за её пределы. &lt;br /&gt;
* Этот атрибут передается только в пределах одной автономной системы. &lt;br /&gt;
* На маршрутизаторах Cisco и Juniper по умолчанию значение атрибута — 100.&lt;br /&gt;
* Выбирается та точка выхода у которой значение атрибута больше.&lt;br /&gt;
* Если eBGP-сосед получает обновление с выставленным значением local preference, он игнорирует этот атрибут.&lt;br /&gt;
* В Junos lpf можно задать через policy и в protocol bgp. Если задан обоими способами, то будет назначен lpf из policy.&lt;br /&gt;
&lt;br /&gt;
=== Atomic aggregate ===&lt;br /&gt;
=== Aggregator ===&lt;br /&gt;
&lt;br /&gt;
=== Communities ===&lt;br /&gt;
Атрибут community:&lt;br /&gt;
* Тегирование маршрутов&lt;br /&gt;
* Существуют предопределенные значения&lt;br /&gt;
* По умолчанию не пересылаются соседям&lt;br /&gt;
* Один из вариантов применения: передается соседней AS для управления входящим трафиком&lt;br /&gt;
&lt;br /&gt;
Значения от 0x00000000 до 0x0000FFFF и от 0xFFFF0000 до 0xFFFFFFFF зарезервированы.&lt;br /&gt;
&lt;br /&gt;
Как правило community отображаются в формате ASN:VALUE.&lt;br /&gt;
В таком формате, доступны для использования community от 1:0 до 65534:65535.&lt;br /&gt;
В первой части указывается номер автономной системы, а во второй значение community, которое определяет политику маршрутизации трафика.&lt;br /&gt;
&lt;br /&gt;
Некоторые значения communities предопределены. RFC1997 определяет три значения таких community. Эти значения должны одинаково распознаваться и обрабатываться всеми реализациями BGP, которые распознают атрибут community.&lt;br /&gt;
&lt;br /&gt;
Если маршрутизатор получает маршрут, в котором указано предопределенное значение communities, то он выполняет специфическое, предопределенное действие основанное на значении атрибута.&lt;br /&gt;
&lt;br /&gt;
Предопределенные значения communities (Well-known Communities):&lt;br /&gt;
* '''no-export (0xFFFFFF01)''' — Все маршруты которые передаются с таким значением атрибута community не должны анонсироваться за пределы конфедерации (автономная система, которая не является частью конфедерации считается конфедерацией). То есть, маршруты не анонсируются EBGP-соседям, но анонсируются внешним соседям в конфедерации,&lt;br /&gt;
* '''no-advertise (0xFFFFFF02)''' — Все маршруты которые передаются с таким значением атрибута community не должны анонсироваться другим BGP-соседям,&lt;br /&gt;
* '''no-export-subconfed (0xFFFFFF03)''' — Все маршруты которые передаются с таким значением атрибута community не должны анонсироваться внешним BGP-соседям (ни внешним в конфедерации, ни настоящим внешним соседям). В Cisco это значение встречается и под названием local-as.&lt;br /&gt;
&lt;br /&gt;
{{note|text=&lt;br /&gt;
Маршрутизаторы, которые не поддерживают атрибут community, будут передавать его далее, так как это transitive атрибут.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Multi exit discriminator (MED)===&lt;br /&gt;
Атрибут '''MED''':&lt;br /&gt;
* Используется для информирования eBGP-соседей о том, какой путь в автономную систему более предпочтительный. &lt;br /&gt;
* Атрибут передается между автономными системами. &lt;br /&gt;
* Маршрутизаторы внутри соседней автономной системы используют этот атрибут, но, как только обновление выходит за пределы AS, атрибут MED отбрасывается.&lt;br /&gt;
* Чем меньше значение атрибута, тем более предпочтительна точка входа в автономную систему.&lt;br /&gt;
&lt;br /&gt;
=== Weight (проприетарный атрибут Cisco) ===&lt;br /&gt;
Атрибут '''Weight''': &lt;br /&gt;
* Позволяет назначить &amp;quot;вес&amp;quot; различным путям локально на маршрутизаторе. &lt;br /&gt;
* Используется в тех случаях, когда у одного маршрутизатора есть несколько выходов из автономной системы (сам маршрутизатор является точкой выхода). &lt;br /&gt;
* Имеет значение только локально, в пределах маршрутизатора. &lt;br /&gt;
* Не передается в обновлениях.&lt;br /&gt;
* Чем больше значение атрибута, тем более предпочтителен путь выхода.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Касательно всех атрибутов ==&lt;br /&gt;
Атрибуты, при выборе best, считаются лучшими с наименьшими значением.&lt;br /&gt;
Это правило касается всех атрибутов, кроме Local Preference&lt;br /&gt;
&lt;br /&gt;
== Механизмы управления входящим трафиком: ==&lt;br /&gt;
*AS path prepend&lt;br /&gt;
*Community (если поддерживает провайдер)&lt;br /&gt;
*MED (подключение к одной и той же AS)&lt;br /&gt;
*Анонс разных префиксов через разных ISP&lt;br /&gt;
&lt;br /&gt;
== Механизмы управления исходящим трафиком: ==&lt;br /&gt;
*Проприетарный атрибут Cisco weight (локально на маршрутизаторе)&lt;br /&gt;
*Атрибут Local Preference (локально в AS)&lt;br /&gt;
*Балансировка трафика&lt;br /&gt;
&lt;br /&gt;
== Выбор лучшего пути (BGP Active Route Selection) ==&lt;br /&gt;
&lt;br /&gt;
* Juniper&lt;br /&gt;
# Prefer highest local preference value&lt;br /&gt;
# Prefer shortest AS-path length&lt;br /&gt;
# Prefer lowest Origin value&lt;br /&gt;
# Prefer lowest MED value&lt;br /&gt;
# Prefer routes learned from an EBGP peer over an IBGP peer&lt;br /&gt;
# If the remaining routes were learned through IBGP, use the path with the lowest IGP cost to the IBGP peer.&lt;br /&gt;
# For EBGP received routes, prefer the current active route; otherwise, prefer routes from the peer with the lowest RID&lt;br /&gt;
#Prefer paths with the shortest cluster length&lt;br /&gt;
# Prefer routes from the peer with the lowest peer ID&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Multipath ==&lt;br /&gt;
&lt;br /&gt;
===Link Bandwidth Extended Community===&lt;br /&gt;
При включенном multipath можно задать желаемую балансировку между линками через extended community.&lt;br /&gt;
Это механизм описан в draft-ietf-idr-link-bandwidth-06, и не является стандартизированным, следовательно,&lt;br /&gt;
возможно, он не будет работать с некоторыми вендорами. В JunOS поддерживается.&lt;br /&gt;
&lt;br /&gt;
Пример использования:&lt;br /&gt;
&lt;br /&gt;
R1 и R2 соединены напрямую через ва сабинтерфейса, на каждом из которых висит своя /30 сеть&lt;br /&gt;
&lt;br /&gt;
 |     | ge-0/0/0.10 ----- ge-0/0/0.10 R2 |    |&lt;br /&gt;
 |  R1 |                                  | R2 |&lt;br /&gt;
 |     | ge-0/0/0.20 ----- ge-0/0/0.20 R2 |    |&lt;br /&gt;
&lt;br /&gt;
Конфиг R1:&lt;br /&gt;
 R1&amp;gt; show configuration protocols bgp &lt;br /&gt;
 group ebgp {&lt;br /&gt;
     multipath;&lt;br /&gt;
     neighbor 10.1.0.2 {&lt;br /&gt;
         description R2;&lt;br /&gt;
         export from-direct;&lt;br /&gt;
         peer-as 2222;&lt;br /&gt;
     }&lt;br /&gt;
     neighbor 10.2.0.2 {&lt;br /&gt;
         description R2;&lt;br /&gt;
         export from-direct;&lt;br /&gt;
         peer-as 2222;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Конфиг R2:&lt;br /&gt;
 R2&amp;gt; show configuration interfaces lo0   &lt;br /&gt;
 unit 0 {&lt;br /&gt;
     family inet {&lt;br /&gt;
         address 2.2.2.2/32;&lt;br /&gt;
     }&lt;br /&gt;
     family mpls;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; show configuration policy-options &lt;br /&gt;
 policy-statement bw20 {&lt;br /&gt;
     then {&lt;br /&gt;
         community add bw20;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 policy-statement bw80 {&lt;br /&gt;
     then {&lt;br /&gt;
         community add bw80;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 policy-statement from-direct {&lt;br /&gt;
     term redistribute-direct {&lt;br /&gt;
         from protocol direct;&lt;br /&gt;
         then accept;&lt;br /&gt;
     }&lt;br /&gt;
     term default {&lt;br /&gt;
         then reject;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 community bw20 members bandwidth:2222:2500000; // 2500000 байт в секунду — это 20% от 100Мегабит&lt;br /&gt;
 community bw80 members bandwidth:2222:10000000; // 10000000 байт в секунду — это 80% от 100Мегабит&lt;br /&gt;
 &lt;br /&gt;
 R2&amp;gt; show configuration protocols bgp &lt;br /&gt;
 group ebgp {&lt;br /&gt;
     neighbor 10.1.0.1 {&lt;br /&gt;
         description R1;&lt;br /&gt;
         export [ bw20 from-direct ]; // На одно из  соседств навешивается community, отображающее, что линк загружен на 20%&lt;br /&gt;
         peer-as 1111;&lt;br /&gt;
     }&lt;br /&gt;
     neighbor 10.2.0.1 {&lt;br /&gt;
         description R1;&lt;br /&gt;
         export [ bw80 from-direct ];// На второе соседство навешивается community, отображающее, что линк загружен на 80%&lt;br /&gt;
         peer-as 1111;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Что получилось:&lt;br /&gt;
&lt;br /&gt;
 R1&amp;gt; show route 2.2.2.2 extensive        &lt;br /&gt;
 &lt;br /&gt;
 inet.0: 11 destinations, 19 routes (11 active, 0 holddown, 0 hidden)&lt;br /&gt;
 2.2.2.2/32 (2 entries, 1 announced)&lt;br /&gt;
 TSI:&lt;br /&gt;
 KRT in-kernel 2.2.2.2/32 -&amp;gt; {10.2.0.2, 10.1.0.2}&lt;br /&gt;
        *BGP    Preference: 170/-101&lt;br /&gt;
                Next hop type: Router, Next hop index: 262145&lt;br /&gt;
                Address: 0x9404010&lt;br /&gt;
                Next-hop reference count: 8&lt;br /&gt;
                Source: 10.1.0.2&lt;br /&gt;
                '''Next hop: 10.2.0.2 via ge-0/0/0.20 balance 80%'''&lt;br /&gt;
                '''Next hop: 10.1.0.2 via ge-0/0/0.10 balance 20%, selected'''&lt;br /&gt;
                State: &amp;lt;Active Ext&amp;gt;&lt;br /&gt;
                Local AS:  1111 Peer AS:  2222&lt;br /&gt;
                Age: 1:20:49 &lt;br /&gt;
                Task: BGP_2222.10.1.0.2+179&lt;br /&gt;
                Announcement bits (1): 0-KRT &lt;br /&gt;
                AS path: 2222 I&lt;br /&gt;
                '''Communities: bandwidth:2222:2500000'''&lt;br /&gt;
                '''Accepted Multipath'''&lt;br /&gt;
                Localpref: 100&lt;br /&gt;
                Router ID: 2.2.2.2&lt;br /&gt;
&lt;br /&gt;
==Modifying AS Path==&lt;br /&gt;
&lt;br /&gt;
===Option 1: remove-private===&lt;br /&gt;
&lt;br /&gt;
===Option 2: local-as===&lt;br /&gt;
&lt;br /&gt;
 [edit routing-options]&lt;br /&gt;
 R1# show &lt;br /&gt;
 autonomous-system 1111;&lt;br /&gt;
 &lt;br /&gt;
 [edit protocols bgp group ebgp]&lt;br /&gt;
 R1# show &lt;br /&gt;
 neighbor 10.1.0.2 {&lt;br /&gt;
     peer-as 2222;&lt;br /&gt;
     local-as 3333;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
При такой конфигурации R1, EBGP-сосед, который '''ожидает''', что у R1 будет AS3333 сможет установить соседство с R1, хотя, по факту R1 принадлежит AS1111.&lt;br /&gt;
Результат:&lt;br /&gt;
 R1&amp;gt; show bgp neighbor &lt;br /&gt;
 Peer: 10.1.0.2+179 AS 2222     Local: 10.1.0.1+62745 '''AS 3333''' &lt;br /&gt;
   Type: External    State: Established    Flags: &amp;lt;Sync&amp;gt;&lt;br /&gt;
   Last State: OpenConfirm   Last Event: RecvKeepAlive&lt;br /&gt;
   ...&lt;br /&gt;
   Holdtime: 90 Preference: 170 Localpref: 110 '''Local AS: 3333 Local System AS: 1111'''&lt;br /&gt;
   Number of flaps: 0&lt;br /&gt;
   Peer ID: 2.2.2.2         Local ID: 1.1.1.1           Active Holdtime: 90&lt;br /&gt;
   ...&lt;br /&gt;
&lt;br /&gt;
'''Зачем это нужно'''&lt;br /&gt;
&lt;br /&gt;
Предположим, оператор с AS1111 купил сеть оператора с AS3333. У AS3333 были свои клиенты, подключенные по BGP, которые не готовы или не хотят изменять конфигурацию на своих роутерах. В таком случае можно временно применить опцию local-as, чтобы выступить для них от лица предыдущей AS (в примере - 3333), но внутри сети перевести инфораструктуру на AS1111.&lt;br /&gt;
&lt;br /&gt;
Если добавить ключевое слово private:&lt;br /&gt;
 [edit protocols bgp group ebgp]&lt;br /&gt;
 R1# show &lt;br /&gt;
 neighbor 10.1.0.2 {&lt;br /&gt;
     peer-as 2222;&lt;br /&gt;
     local-as 3333 '''private''';&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
То R1 вообще не будет добавлять AS3333 при анонсе маршрутов, получаемых от 10.1.0.2 своим соседям.&lt;/div&gt;</summary>
		<author><name>Владислав Павкин</name></author>
	</entry>
	<entry>
		<id>https://juniper-exam.ru/index.php?title=BGP&amp;diff=99</id>
		<title>BGP</title>
		<link rel="alternate" type="text/html" href="https://juniper-exam.ru/index.php?title=BGP&amp;diff=99"/>
		<updated>2016-10-21T20:16:27Z</updated>

		<summary type="html">&lt;p&gt;Владислав Павкин: /* Multipath */ Убрал лишний вывод&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Состояния соседства ==&lt;br /&gt;
http://habrastorage.org/getpro/habr/post_images/442/780/549/442780549c2f45cdda10773121b2800d.png&lt;br /&gt;
&lt;br /&gt;
== Сообщения ==&lt;br /&gt;
*Open - отправляется только на стадии установления соседства. Содержит параметры BGP соседа.&lt;br /&gt;
*Update - передает routing info между соседями. Атрибуты и список префиксов, подходящий под данные атрибуты.&lt;br /&gt;
*Keepalive - для удостоверения, что с соседством все ок.&lt;br /&gt;
*Notification - в случае если не прошел keepalive или update.&lt;br /&gt;
*Refresh - soft clearing BGP сессии.&lt;br /&gt;
&lt;br /&gt;
== Атрибуты пути (path attributes) ==&lt;br /&gt;
Атрибуты пути разделены на 4 категории:&lt;br /&gt;
# '''Well-known mandatory''' — все маршрутизаторы, работающие по протоколу BGP, должны распознавать эти атрибуты. Должны присутствовать во всех обновлениях (update).&lt;br /&gt;
# '''Well-known discretionary''' — все маршрутизаторы, работающие по протоколу BGP, должны распознавать эти атрибуты. Могут присутствовать в обновлениях (update), но их присутствие не обязательно.&lt;br /&gt;
# '''Optional transitive''' — могут не распознаваться всеми реализациями BGP. Если маршрутизатор не распознал атрибут, он помечает обновление как частичное (partial) и отправляет его дальше соседям, сохраняя не распознанный атрибут.&lt;br /&gt;
# '''Optional non-transitive''' — могут не распознаваться всеми реализациями BGP. Если маршрутизатор не распознал атрибут, то атрибут игнорируется и при передаче соседям отбрасывается.&lt;br /&gt;
&lt;br /&gt;
Примеры атрибутов BGP:&lt;br /&gt;
* Well-known mandatory:&lt;br /&gt;
** Autonomous system path&lt;br /&gt;
** Next-hop&lt;br /&gt;
** Origin&lt;br /&gt;
* Well-known discretionary:&lt;br /&gt;
** Local preference&lt;br /&gt;
** Atomic aggregate&lt;br /&gt;
* Optional transitive:&lt;br /&gt;
** Aggregator&lt;br /&gt;
** Communities&lt;br /&gt;
*  Optional non-transitive:&lt;br /&gt;
** Multi-exit discriminator (MED)&lt;br /&gt;
&lt;br /&gt;
=== Autonomous system path ===&lt;br /&gt;
[[Изображение:AS_path.png|400px|right]]&lt;br /&gt;
&lt;br /&gt;
Атрибут Autonomous system path (AS Path):&lt;br /&gt;
* Описывает через какие автономные системы надо пройти, чтобы дойти до сети назначения. &lt;br /&gt;
* Номер AS добавляется при передаче обновления из одной AS eBGP-соседу в другой AS.&lt;br /&gt;
&lt;br /&gt;
Используется для:&lt;br /&gt;
* обнаружения петель&lt;br /&gt;
* применения политик&lt;br /&gt;
&lt;br /&gt;
Каждый сегмент атрибута AS path представлен в виде поля TLV (path segment type, path segment length, path segment value):&lt;br /&gt;
* '''path segment type''' — поле размером 1 байт для которого определены такие значения:&lt;br /&gt;
** 1 — AS_SET: неупорядоченное множество автономных систем, через которые прошел маршрут в сообщении Update,&lt;br /&gt;
** 2 — AS_SEQUENCE: упорядоченное множество автономных систем, через которые прошел маршрут в сообщении Update&lt;br /&gt;
* '''path segment length''' — поле размером 1 байт. Указывает сколько автономных систем указано в поле path segment value&lt;br /&gt;
* '''path segment value''' — номера автономных систем, каждая представлена полем размером 2 байта.&lt;br /&gt;
&lt;br /&gt;
=== Next-hop ===&lt;br /&gt;
[[Изображение:Next-hop.png|400px|right]]&lt;br /&gt;
&lt;br /&gt;
Атрибут '''Next-hop''' &lt;br /&gt;
* IP-адрес следующей AS для достижения сети назначения. &lt;br /&gt;
* Это IP-адрес eBGP-маршрутизатора, через который идет путь к сети назначения.&lt;br /&gt;
* Атрибут меняется при передаче префикса в другую AS&lt;br /&gt;
* Атрибут не меняется при передаче префикса в ту же AS&lt;br /&gt;
&lt;br /&gt;
Third party next hop:&lt;br /&gt;
[[Изображение:Next-hop3.png|300px]]&lt;br /&gt;
&lt;br /&gt;
=== Origin ===&lt;br /&gt;
Атрибут '''Origin''' — указывает на то, каким образом был получен маршрут в обновлении.&lt;br /&gt;
&lt;br /&gt;
Возможные значения атрибута:&lt;br /&gt;
* '''0''' — IGP: NLRI получена внутри исходной автономной системы;&lt;br /&gt;
* '''1''' — EGP: NLRI выучена по протоколу Exterior Gateway Protocol (EGP). Предшественник BGP, не используется&lt;br /&gt;
* '''2''' — Incomplete: NLRI была выучена каким-то другим образом&lt;br /&gt;
&lt;br /&gt;
=== Local preference ===&lt;br /&gt;
Атрибут '''Local preference''':&lt;br /&gt;
* Указывает маршрутизаторам внутри автономной системы как выйти за её пределы. &lt;br /&gt;
* Этот атрибут передается только в пределах одной автономной системы. &lt;br /&gt;
* На маршрутизаторах Cisco и Juniper по умолчанию значение атрибута — 100.&lt;br /&gt;
* Выбирается та точка выхода у которой значение атрибута больше.&lt;br /&gt;
* Если eBGP-сосед получает обновление с выставленным значением local preference, он игнорирует этот атрибут.&lt;br /&gt;
* В Junos lpf можно задать через policy и в protocol bgp. Если задан обоими способами, то будет назначен lpf из policy.&lt;br /&gt;
&lt;br /&gt;
=== Atomic aggregate ===&lt;br /&gt;
=== Aggregator ===&lt;br /&gt;
&lt;br /&gt;
=== Communities ===&lt;br /&gt;
Атрибут community:&lt;br /&gt;
* Тегирование маршрутов&lt;br /&gt;
* Существуют предопределенные значения&lt;br /&gt;
* По умолчанию не пересылаются соседям&lt;br /&gt;
* Один из вариантов применения: передается соседней AS для управления входящим трафиком&lt;br /&gt;
&lt;br /&gt;
Значения от 0x00000000 до 0x0000FFFF и от 0xFFFF0000 до 0xFFFFFFFF зарезервированы.&lt;br /&gt;
&lt;br /&gt;
Как правило community отображаются в формате ASN:VALUE.&lt;br /&gt;
В таком формате, доступны для использования community от 1:0 до 65534:65535.&lt;br /&gt;
В первой части указывается номер автономной системы, а во второй значение community, которое определяет политику маршрутизации трафика.&lt;br /&gt;
&lt;br /&gt;
Некоторые значения communities предопределены. RFC1997 определяет три значения таких community. Эти значения должны одинаково распознаваться и обрабатываться всеми реализациями BGP, которые распознают атрибут community.&lt;br /&gt;
&lt;br /&gt;
Если маршрутизатор получает маршрут, в котором указано предопределенное значение communities, то он выполняет специфическое, предопределенное действие основанное на значении атрибута.&lt;br /&gt;
&lt;br /&gt;
Предопределенные значения communities (Well-known Communities):&lt;br /&gt;
* '''no-export (0xFFFFFF01)''' — Все маршруты которые передаются с таким значением атрибута community не должны анонсироваться за пределы конфедерации (автономная система, которая не является частью конфедерации считается конфедерацией). То есть, маршруты не анонсируются EBGP-соседям, но анонсируются внешним соседям в конфедерации,&lt;br /&gt;
* '''no-advertise (0xFFFFFF02)''' — Все маршруты которые передаются с таким значением атрибута community не должны анонсироваться другим BGP-соседям,&lt;br /&gt;
* '''no-export-subconfed (0xFFFFFF03)''' — Все маршруты которые передаются с таким значением атрибута community не должны анонсироваться внешним BGP-соседям (ни внешним в конфедерации, ни настоящим внешним соседям). В Cisco это значение встречается и под названием local-as.&lt;br /&gt;
&lt;br /&gt;
{{note|text=&lt;br /&gt;
Маршрутизаторы, которые не поддерживают атрибут community, будут передавать его далее, так как это transitive атрибут.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Multi exit discriminator (MED)===&lt;br /&gt;
Атрибут '''MED''':&lt;br /&gt;
* Используется для информирования eBGP-соседей о том, какой путь в автономную систему более предпочтительный. &lt;br /&gt;
* Атрибут передается между автономными системами. &lt;br /&gt;
* Маршрутизаторы внутри соседней автономной системы используют этот атрибут, но, как только обновление выходит за пределы AS, атрибут MED отбрасывается.&lt;br /&gt;
* Чем меньше значение атрибута, тем более предпочтительна точка входа в автономную систему.&lt;br /&gt;
&lt;br /&gt;
=== Weight (проприетарный атрибут Cisco) ===&lt;br /&gt;
Атрибут '''Weight''': &lt;br /&gt;
* Позволяет назначить &amp;quot;вес&amp;quot; различным путям локально на маршрутизаторе. &lt;br /&gt;
* Используется в тех случаях, когда у одного маршрутизатора есть несколько выходов из автономной системы (сам маршрутизатор является точкой выхода). &lt;br /&gt;
* Имеет значение только локально, в пределах маршрутизатора. &lt;br /&gt;
* Не передается в обновлениях.&lt;br /&gt;
* Чем больше значение атрибута, тем более предпочтителен путь выхода.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Касательно всех атрибутов ==&lt;br /&gt;
Атрибуты, при выборе best, считаются лучшими с наименьшими значением.&lt;br /&gt;
Это правило касается всех атрибутов, кроме Local Preference&lt;br /&gt;
&lt;br /&gt;
== Механизмы управления входящим трафиком: ==&lt;br /&gt;
*AS path prepend&lt;br /&gt;
*Community (если поддерживает провайдер)&lt;br /&gt;
*MED (подключение к одной и той же AS)&lt;br /&gt;
*Анонс разных префиксов через разных ISP&lt;br /&gt;
&lt;br /&gt;
== Механизмы управления исходящим трафиком: ==&lt;br /&gt;
*Проприетарный атрибут Cisco weight (локально на маршрутизаторе)&lt;br /&gt;
*Атрибут Local Preference (локально в AS)&lt;br /&gt;
*Балансировка трафика&lt;br /&gt;
&lt;br /&gt;
== Выбор лучшего пути (BGP Active Route Selection) ==&lt;br /&gt;
&lt;br /&gt;
* Juniper&lt;br /&gt;
# Prefer highest local preference value&lt;br /&gt;
# Prefer shortest AS-path length&lt;br /&gt;
# Prefer lowest Origin value&lt;br /&gt;
# Prefer lowest MED value&lt;br /&gt;
# Prefer routes learned from an EBGP peer over an IBGP peer&lt;br /&gt;
# If the remaining routes were learned through IBGP, use the path with the lowest IGP cost to the IBGP peer.&lt;br /&gt;
# For EBGP received routes, prefer the current active route; otherwise, prefer routes from the peer with the lowest RID&lt;br /&gt;
#Prefer paths with the shortest cluster length&lt;br /&gt;
# Prefer routes from the peer with the lowest peer ID&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Multipath ==&lt;br /&gt;
&lt;br /&gt;
===Link Bandwidth Extended Community===&lt;br /&gt;
При включенном multipath можно задать желаемую балансировку между линками через extended community.&lt;br /&gt;
Это механизм описан в draft-ietf-idr-link-bandwidth-06, и не является стандартизированным, следовательно,&lt;br /&gt;
возможно, он не будет работать с некоторыми вендорами. В JunOS поддерживается.&lt;br /&gt;
&lt;br /&gt;
Пример использования:&lt;br /&gt;
&lt;br /&gt;
R1 и R2 соединены напрямую через ва сабинтерфейса, на каждом из которых висит своя /30 сеть&lt;br /&gt;
&lt;br /&gt;
 |     | ge-0/0/0.10 ----- ge-0/0/0.10 R2 |    |&lt;br /&gt;
 |  R1 |                                  | R2 |&lt;br /&gt;
 |     | ge-0/0/0.20 ----- ge-0/0/0.20 R2 |    |&lt;br /&gt;
&lt;br /&gt;
Конфиг R1:&lt;br /&gt;
 R1&amp;gt; show configuration protocols bgp &lt;br /&gt;
 group ebgp {&lt;br /&gt;
     multipath;&lt;br /&gt;
     neighbor 10.1.0.2 {&lt;br /&gt;
         description R2;&lt;br /&gt;
         export from-direct;&lt;br /&gt;
         peer-as 2222;&lt;br /&gt;
     }&lt;br /&gt;
     neighbor 10.2.0.2 {&lt;br /&gt;
         description R2;&lt;br /&gt;
         export from-direct;&lt;br /&gt;
         peer-as 2222;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Конфиг R2:&lt;br /&gt;
 R2&amp;gt; show configuration interfaces lo0   &lt;br /&gt;
 unit 0 {&lt;br /&gt;
     family inet {&lt;br /&gt;
         address 2.2.2.2/32;&lt;br /&gt;
     }&lt;br /&gt;
     family mpls;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; show configuration policy-options &lt;br /&gt;
 policy-statement bw20 {&lt;br /&gt;
     then {&lt;br /&gt;
         community add bw20;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 policy-statement bw80 {&lt;br /&gt;
     then {&lt;br /&gt;
         community add bw80;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 policy-statement from-direct {&lt;br /&gt;
     term redistribute-direct {&lt;br /&gt;
         from protocol direct;&lt;br /&gt;
         then accept;&lt;br /&gt;
     }&lt;br /&gt;
     term default {&lt;br /&gt;
         then reject;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 community bw20 members bandwidth:2222:2500000; // 2500000 байт в секунду — это 20% от 100Мегабит&lt;br /&gt;
 community bw80 members bandwidth:2222:10000000; // 10000000 байт в секунду — это 80% от 100Мегабит&lt;br /&gt;
 &lt;br /&gt;
 R2&amp;gt; show configuration protocols bgp &lt;br /&gt;
 group ebgp {&lt;br /&gt;
     neighbor 10.1.0.1 {&lt;br /&gt;
         description R1;&lt;br /&gt;
         export [ bw20 from-direct ]; // На одно из  соседств навешивается community, отображающее, что линк загружен на 20%&lt;br /&gt;
         peer-as 1111;&lt;br /&gt;
     }&lt;br /&gt;
     neighbor 10.2.0.1 {&lt;br /&gt;
         description R1;&lt;br /&gt;
         export [ bw80 from-direct ];// На второе соседство навешивается community, отображающее, что линк загружен на 80%&lt;br /&gt;
         peer-as 1111;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Что получилось:&lt;br /&gt;
&lt;br /&gt;
 R1&amp;gt; show route 2.2.2.2 extensive        &lt;br /&gt;
 &lt;br /&gt;
 inet.0: 11 destinations, 19 routes (11 active, 0 holddown, 0 hidden)&lt;br /&gt;
 2.2.2.2/32 (2 entries, 1 announced)&lt;br /&gt;
 TSI:&lt;br /&gt;
 KRT in-kernel 2.2.2.2/32 -&amp;gt; {10.2.0.2, 10.1.0.2}&lt;br /&gt;
        *BGP    Preference: 170/-101&lt;br /&gt;
                Next hop type: Router, Next hop index: 262145&lt;br /&gt;
                Address: 0x9404010&lt;br /&gt;
                Next-hop reference count: 8&lt;br /&gt;
                Source: 10.1.0.2&lt;br /&gt;
                '''Next hop: 10.2.0.2 via ge-0/0/0.20 balance 80%'''&lt;br /&gt;
                '''Next hop: 10.1.0.2 via ge-0/0/0.10 balance 20%, selected'''&lt;br /&gt;
                State: &amp;lt;Active Ext&amp;gt;&lt;br /&gt;
                Local AS:  1111 Peer AS:  2222&lt;br /&gt;
                Age: 1:20:49 &lt;br /&gt;
                Task: BGP_2222.10.1.0.2+179&lt;br /&gt;
                Announcement bits (1): 0-KRT &lt;br /&gt;
                AS path: 2222 I&lt;br /&gt;
                '''Communities: bandwidth:2222:2500000'''&lt;br /&gt;
                '''Accepted Multipath'''&lt;br /&gt;
                Localpref: 100&lt;br /&gt;
                Router ID: 2.2.2.2&lt;br /&gt;
&lt;br /&gt;
==Modifying AS Path==&lt;br /&gt;
&lt;br /&gt;
===Option 1: remove-private===&lt;br /&gt;
&lt;br /&gt;
===Option 2: local-as===&lt;br /&gt;
&lt;br /&gt;
 [edit routing-options]&lt;br /&gt;
 R1# show &lt;br /&gt;
 autonomous-system 1111;&lt;br /&gt;
 &lt;br /&gt;
 [edit protocols bgp group ebgp]&lt;br /&gt;
 R1# show &lt;br /&gt;
 neighbor 10.1.0.2 {&lt;br /&gt;
     peer-as 2222;&lt;br /&gt;
     local-as 3333;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
При такой конфигурации R1, EBGP-сосед, который '''ожидает''', что у R1 будет AS3333 сможет установить соседство с R1, хотя, по факту R1 принадлежит AS1111.&lt;br /&gt;
Результат:&lt;br /&gt;
 R1&amp;gt; show bgp neighbor &lt;br /&gt;
 Peer: 10.1.0.2+179 AS 2222     Local: 10.1.0.1+62745 '''AS 3333''' &lt;br /&gt;
   Type: External    State: Established    Flags: &amp;lt;Sync&amp;gt;&lt;br /&gt;
   Last State: OpenConfirm   Last Event: RecvKeepAlive&lt;br /&gt;
   ...&lt;br /&gt;
   Holdtime: 90 Preference: 170 Localpref: 110 '''Local AS: 3333 Local System AS: 1111'''&lt;br /&gt;
   Number of flaps: 0&lt;br /&gt;
   Peer ID: 2.2.2.2         Local ID: 1.1.1.1           Active Holdtime: 90&lt;br /&gt;
   ...&lt;br /&gt;
&lt;br /&gt;
'''Зачем это нужно'''&lt;br /&gt;
&lt;br /&gt;
Предположим, оператор с AS1111 купил сеть оператора с AS3333. У AS3333 были свои клиенты, подключенные по BGP, которые не готовы или не хотят изменять конфигурацию на своих роутерах. В таком случае можно временно применить опцию local-as, чтобы выступить для них от лица предыдущей AS (в примере - 3333), но внутри сети перевести инфораструктуру на AS1111.&lt;/div&gt;</summary>
		<author><name>Владислав Павкин</name></author>
	</entry>
	<entry>
		<id>https://juniper-exam.ru/index.php?title=BGP&amp;diff=98</id>
		<title>BGP</title>
		<link rel="alternate" type="text/html" href="https://juniper-exam.ru/index.php?title=BGP&amp;diff=98"/>
		<updated>2016-10-21T20:15:06Z</updated>

		<summary type="html">&lt;p&gt;Владислав Павкин: /* Option 2: local-as */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Состояния соседства ==&lt;br /&gt;
http://habrastorage.org/getpro/habr/post_images/442/780/549/442780549c2f45cdda10773121b2800d.png&lt;br /&gt;
&lt;br /&gt;
== Сообщения ==&lt;br /&gt;
*Open - отправляется только на стадии установления соседства. Содержит параметры BGP соседа.&lt;br /&gt;
*Update - передает routing info между соседями. Атрибуты и список префиксов, подходящий под данные атрибуты.&lt;br /&gt;
*Keepalive - для удостоверения, что с соседством все ок.&lt;br /&gt;
*Notification - в случае если не прошел keepalive или update.&lt;br /&gt;
*Refresh - soft clearing BGP сессии.&lt;br /&gt;
&lt;br /&gt;
== Атрибуты пути (path attributes) ==&lt;br /&gt;
Атрибуты пути разделены на 4 категории:&lt;br /&gt;
# '''Well-known mandatory''' — все маршрутизаторы, работающие по протоколу BGP, должны распознавать эти атрибуты. Должны присутствовать во всех обновлениях (update).&lt;br /&gt;
# '''Well-known discretionary''' — все маршрутизаторы, работающие по протоколу BGP, должны распознавать эти атрибуты. Могут присутствовать в обновлениях (update), но их присутствие не обязательно.&lt;br /&gt;
# '''Optional transitive''' — могут не распознаваться всеми реализациями BGP. Если маршрутизатор не распознал атрибут, он помечает обновление как частичное (partial) и отправляет его дальше соседям, сохраняя не распознанный атрибут.&lt;br /&gt;
# '''Optional non-transitive''' — могут не распознаваться всеми реализациями BGP. Если маршрутизатор не распознал атрибут, то атрибут игнорируется и при передаче соседям отбрасывается.&lt;br /&gt;
&lt;br /&gt;
Примеры атрибутов BGP:&lt;br /&gt;
* Well-known mandatory:&lt;br /&gt;
** Autonomous system path&lt;br /&gt;
** Next-hop&lt;br /&gt;
** Origin&lt;br /&gt;
* Well-known discretionary:&lt;br /&gt;
** Local preference&lt;br /&gt;
** Atomic aggregate&lt;br /&gt;
* Optional transitive:&lt;br /&gt;
** Aggregator&lt;br /&gt;
** Communities&lt;br /&gt;
*  Optional non-transitive:&lt;br /&gt;
** Multi-exit discriminator (MED)&lt;br /&gt;
&lt;br /&gt;
=== Autonomous system path ===&lt;br /&gt;
[[Изображение:AS_path.png|400px|right]]&lt;br /&gt;
&lt;br /&gt;
Атрибут Autonomous system path (AS Path):&lt;br /&gt;
* Описывает через какие автономные системы надо пройти, чтобы дойти до сети назначения. &lt;br /&gt;
* Номер AS добавляется при передаче обновления из одной AS eBGP-соседу в другой AS.&lt;br /&gt;
&lt;br /&gt;
Используется для:&lt;br /&gt;
* обнаружения петель&lt;br /&gt;
* применения политик&lt;br /&gt;
&lt;br /&gt;
Каждый сегмент атрибута AS path представлен в виде поля TLV (path segment type, path segment length, path segment value):&lt;br /&gt;
* '''path segment type''' — поле размером 1 байт для которого определены такие значения:&lt;br /&gt;
** 1 — AS_SET: неупорядоченное множество автономных систем, через которые прошел маршрут в сообщении Update,&lt;br /&gt;
** 2 — AS_SEQUENCE: упорядоченное множество автономных систем, через которые прошел маршрут в сообщении Update&lt;br /&gt;
* '''path segment length''' — поле размером 1 байт. Указывает сколько автономных систем указано в поле path segment value&lt;br /&gt;
* '''path segment value''' — номера автономных систем, каждая представлена полем размером 2 байта.&lt;br /&gt;
&lt;br /&gt;
=== Next-hop ===&lt;br /&gt;
[[Изображение:Next-hop.png|400px|right]]&lt;br /&gt;
&lt;br /&gt;
Атрибут '''Next-hop''' &lt;br /&gt;
* IP-адрес следующей AS для достижения сети назначения. &lt;br /&gt;
* Это IP-адрес eBGP-маршрутизатора, через который идет путь к сети назначения.&lt;br /&gt;
* Атрибут меняется при передаче префикса в другую AS&lt;br /&gt;
* Атрибут не меняется при передаче префикса в ту же AS&lt;br /&gt;
&lt;br /&gt;
Third party next hop:&lt;br /&gt;
[[Изображение:Next-hop3.png|300px]]&lt;br /&gt;
&lt;br /&gt;
=== Origin ===&lt;br /&gt;
Атрибут '''Origin''' — указывает на то, каким образом был получен маршрут в обновлении.&lt;br /&gt;
&lt;br /&gt;
Возможные значения атрибута:&lt;br /&gt;
* '''0''' — IGP: NLRI получена внутри исходной автономной системы;&lt;br /&gt;
* '''1''' — EGP: NLRI выучена по протоколу Exterior Gateway Protocol (EGP). Предшественник BGP, не используется&lt;br /&gt;
* '''2''' — Incomplete: NLRI была выучена каким-то другим образом&lt;br /&gt;
&lt;br /&gt;
=== Local preference ===&lt;br /&gt;
Атрибут '''Local preference''':&lt;br /&gt;
* Указывает маршрутизаторам внутри автономной системы как выйти за её пределы. &lt;br /&gt;
* Этот атрибут передается только в пределах одной автономной системы. &lt;br /&gt;
* На маршрутизаторах Cisco и Juniper по умолчанию значение атрибута — 100.&lt;br /&gt;
* Выбирается та точка выхода у которой значение атрибута больше.&lt;br /&gt;
* Если eBGP-сосед получает обновление с выставленным значением local preference, он игнорирует этот атрибут.&lt;br /&gt;
* В Junos lpf можно задать через policy и в protocol bgp. Если задан обоими способами, то будет назначен lpf из policy.&lt;br /&gt;
&lt;br /&gt;
=== Atomic aggregate ===&lt;br /&gt;
=== Aggregator ===&lt;br /&gt;
&lt;br /&gt;
=== Communities ===&lt;br /&gt;
Атрибут community:&lt;br /&gt;
* Тегирование маршрутов&lt;br /&gt;
* Существуют предопределенные значения&lt;br /&gt;
* По умолчанию не пересылаются соседям&lt;br /&gt;
* Один из вариантов применения: передается соседней AS для управления входящим трафиком&lt;br /&gt;
&lt;br /&gt;
Значения от 0x00000000 до 0x0000FFFF и от 0xFFFF0000 до 0xFFFFFFFF зарезервированы.&lt;br /&gt;
&lt;br /&gt;
Как правило community отображаются в формате ASN:VALUE.&lt;br /&gt;
В таком формате, доступны для использования community от 1:0 до 65534:65535.&lt;br /&gt;
В первой части указывается номер автономной системы, а во второй значение community, которое определяет политику маршрутизации трафика.&lt;br /&gt;
&lt;br /&gt;
Некоторые значения communities предопределены. RFC1997 определяет три значения таких community. Эти значения должны одинаково распознаваться и обрабатываться всеми реализациями BGP, которые распознают атрибут community.&lt;br /&gt;
&lt;br /&gt;
Если маршрутизатор получает маршрут, в котором указано предопределенное значение communities, то он выполняет специфическое, предопределенное действие основанное на значении атрибута.&lt;br /&gt;
&lt;br /&gt;
Предопределенные значения communities (Well-known Communities):&lt;br /&gt;
* '''no-export (0xFFFFFF01)''' — Все маршруты которые передаются с таким значением атрибута community не должны анонсироваться за пределы конфедерации (автономная система, которая не является частью конфедерации считается конфедерацией). То есть, маршруты не анонсируются EBGP-соседям, но анонсируются внешним соседям в конфедерации,&lt;br /&gt;
* '''no-advertise (0xFFFFFF02)''' — Все маршруты которые передаются с таким значением атрибута community не должны анонсироваться другим BGP-соседям,&lt;br /&gt;
* '''no-export-subconfed (0xFFFFFF03)''' — Все маршруты которые передаются с таким значением атрибута community не должны анонсироваться внешним BGP-соседям (ни внешним в конфедерации, ни настоящим внешним соседям). В Cisco это значение встречается и под названием local-as.&lt;br /&gt;
&lt;br /&gt;
{{note|text=&lt;br /&gt;
Маршрутизаторы, которые не поддерживают атрибут community, будут передавать его далее, так как это transitive атрибут.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Multi exit discriminator (MED)===&lt;br /&gt;
Атрибут '''MED''':&lt;br /&gt;
* Используется для информирования eBGP-соседей о том, какой путь в автономную систему более предпочтительный. &lt;br /&gt;
* Атрибут передается между автономными системами. &lt;br /&gt;
* Маршрутизаторы внутри соседней автономной системы используют этот атрибут, но, как только обновление выходит за пределы AS, атрибут MED отбрасывается.&lt;br /&gt;
* Чем меньше значение атрибута, тем более предпочтительна точка входа в автономную систему.&lt;br /&gt;
&lt;br /&gt;
=== Weight (проприетарный атрибут Cisco) ===&lt;br /&gt;
Атрибут '''Weight''': &lt;br /&gt;
* Позволяет назначить &amp;quot;вес&amp;quot; различным путям локально на маршрутизаторе. &lt;br /&gt;
* Используется в тех случаях, когда у одного маршрутизатора есть несколько выходов из автономной системы (сам маршрутизатор является точкой выхода). &lt;br /&gt;
* Имеет значение только локально, в пределах маршрутизатора. &lt;br /&gt;
* Не передается в обновлениях.&lt;br /&gt;
* Чем больше значение атрибута, тем более предпочтителен путь выхода.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Касательно всех атрибутов ==&lt;br /&gt;
Атрибуты, при выборе best, считаются лучшими с наименьшими значением.&lt;br /&gt;
Это правило касается всех атрибутов, кроме Local Preference&lt;br /&gt;
&lt;br /&gt;
== Механизмы управления входящим трафиком: ==&lt;br /&gt;
*AS path prepend&lt;br /&gt;
*Community (если поддерживает провайдер)&lt;br /&gt;
*MED (подключение к одной и той же AS)&lt;br /&gt;
*Анонс разных префиксов через разных ISP&lt;br /&gt;
&lt;br /&gt;
== Механизмы управления исходящим трафиком: ==&lt;br /&gt;
*Проприетарный атрибут Cisco weight (локально на маршрутизаторе)&lt;br /&gt;
*Атрибут Local Preference (локально в AS)&lt;br /&gt;
*Балансировка трафика&lt;br /&gt;
&lt;br /&gt;
== Выбор лучшего пути (BGP Active Route Selection) ==&lt;br /&gt;
&lt;br /&gt;
* Juniper&lt;br /&gt;
# Prefer highest local preference value&lt;br /&gt;
# Prefer shortest AS-path length&lt;br /&gt;
# Prefer lowest Origin value&lt;br /&gt;
# Prefer lowest MED value&lt;br /&gt;
# Prefer routes learned from an EBGP peer over an IBGP peer&lt;br /&gt;
# If the remaining routes were learned through IBGP, use the path with the lowest IGP cost to the IBGP peer.&lt;br /&gt;
# For EBGP received routes, prefer the current active route; otherwise, prefer routes from the peer with the lowest RID&lt;br /&gt;
#Prefer paths with the shortest cluster length&lt;br /&gt;
# Prefer routes from the peer with the lowest peer ID&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Multipath ==&lt;br /&gt;
&lt;br /&gt;
===Link Bandwidth Extended Community===&lt;br /&gt;
При включенном multipath можно задать желаемую балансировку между линками через extended community.&lt;br /&gt;
Это механизм описан в draft-ietf-idr-link-bandwidth-06, и не является стандартизированным, следовательно,&lt;br /&gt;
возможно, он не будет работать с некоторыми вендорами. В JunOS поддерживается.&lt;br /&gt;
&lt;br /&gt;
Пример использования:&lt;br /&gt;
&lt;br /&gt;
R1 и R2 соединены напрямую через ва сабинтерфейса, на каждом из которых висит своя /30 сеть&lt;br /&gt;
&lt;br /&gt;
 |     | ge-0/0/0.10 ----- ge-0/0/0.10 R2 |    |&lt;br /&gt;
 |  R1 |                                  | R2 |&lt;br /&gt;
 |     | ge-0/0/0.20 ----- ge-0/0/0.20 R2 |    |&lt;br /&gt;
&lt;br /&gt;
Конфиг R1:&lt;br /&gt;
 R1&amp;gt; show configuration protocols bgp &lt;br /&gt;
 group ebgp {&lt;br /&gt;
     multipath;&lt;br /&gt;
     neighbor 10.1.0.2 {&lt;br /&gt;
         description R2;&lt;br /&gt;
         export from-direct;&lt;br /&gt;
         peer-as 2222;&lt;br /&gt;
     }&lt;br /&gt;
     neighbor 10.2.0.2 {&lt;br /&gt;
         description R2;&lt;br /&gt;
         export from-direct;&lt;br /&gt;
         peer-as 2222;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Конфиг R2:&lt;br /&gt;
 R2&amp;gt; show configuration interfaces lo0   &lt;br /&gt;
 unit 0 {&lt;br /&gt;
     family inet {&lt;br /&gt;
         address 2.2.2.2/32;&lt;br /&gt;
     }&lt;br /&gt;
     family mpls;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; show configuration policy-options &lt;br /&gt;
 policy-statement bw20 {&lt;br /&gt;
     then {&lt;br /&gt;
         community add bw20;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 policy-statement bw80 {&lt;br /&gt;
     then {&lt;br /&gt;
         community add bw80;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 policy-statement from-direct {&lt;br /&gt;
     term redistribute-direct {&lt;br /&gt;
         from protocol direct;&lt;br /&gt;
         then accept;&lt;br /&gt;
     }&lt;br /&gt;
     term default {&lt;br /&gt;
         then reject;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 community bw20 members bandwidth:2222:2500000; // 2500000 байт в секунду — это 20% от 100Мегабит&lt;br /&gt;
 community bw80 members bandwidth:2222:10000000; // 10000000 байт в секунду — это 80% от 100Мегабит&lt;br /&gt;
 &lt;br /&gt;
 R2&amp;gt; show configuration protocols bgp &lt;br /&gt;
 group ebgp {&lt;br /&gt;
     neighbor 10.1.0.1 {&lt;br /&gt;
         description R1;&lt;br /&gt;
         export [ bw20 from-direct ]; // На одно из  соседств навешивается community, отображающее, что линк загружен на 20%&lt;br /&gt;
         peer-as 1111;&lt;br /&gt;
     }&lt;br /&gt;
     neighbor 10.2.0.1 {&lt;br /&gt;
         description R1;&lt;br /&gt;
         export [ bw80 from-direct ];// На второе соседство навешивается community, отображающее, что линк загружен на 80%&lt;br /&gt;
         peer-as 1111;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Что получилось:&lt;br /&gt;
&lt;br /&gt;
 R1&amp;gt; show route 2.2.2.2 extensive        &lt;br /&gt;
 &lt;br /&gt;
 inet.0: 11 destinations, 19 routes (11 active, 0 holddown, 0 hidden)&lt;br /&gt;
 2.2.2.2/32 (2 entries, 1 announced)&lt;br /&gt;
 TSI:&lt;br /&gt;
 KRT in-kernel 2.2.2.2/32 -&amp;gt; {10.2.0.2, 10.1.0.2}&lt;br /&gt;
        *BGP    Preference: 170/-101&lt;br /&gt;
                Next hop type: Router, Next hop index: 262145&lt;br /&gt;
                Address: 0x9404010&lt;br /&gt;
                Next-hop reference count: 8&lt;br /&gt;
                Source: 10.1.0.2&lt;br /&gt;
                '''Next hop: 10.2.0.2 via ge-0/0/0.20 balance 80%'''&lt;br /&gt;
                '''Next hop: 10.1.0.2 via ge-0/0/0.10 balance 20%, selected'''&lt;br /&gt;
                State: &amp;lt;Active Ext&amp;gt;&lt;br /&gt;
                Local AS:  1111 Peer AS:  2222&lt;br /&gt;
                Age: 1:20:49 &lt;br /&gt;
                Task: BGP_2222.10.1.0.2+179&lt;br /&gt;
                Announcement bits (1): 0-KRT &lt;br /&gt;
                AS path: 2222 I&lt;br /&gt;
                '''Communities: bandwidth:2222:2500000'''&lt;br /&gt;
                '''Accepted Multipath'''&lt;br /&gt;
                Localpref: 100&lt;br /&gt;
                Router ID: 2.2.2.2&lt;br /&gt;
         BGP    Preference: 170/-101&lt;br /&gt;
                Next hop type: Router&lt;br /&gt;
                Address: 0x934c520&lt;br /&gt;
                Next-hop reference count: 6&lt;br /&gt;
                Source: 10.2.0.2&lt;br /&gt;
                Next hop: 10.2.0.2 via ge-0/0/0.20, selected&lt;br /&gt;
                State: &amp;lt;NotBest Ext&amp;gt;&lt;br /&gt;
                Inactive reason: Not Best in its group - Update source&lt;br /&gt;
                Local AS:  1111 Peer AS:  2222&lt;br /&gt;
                Age: 1:18:58 &lt;br /&gt;
                Task: BGP_2222.10.2.0.2+55305&lt;br /&gt;
                AS path: 2222 I&lt;br /&gt;
                Communities: bandwidth:2222:10000000&lt;br /&gt;
                Accepted MultipathContrib&lt;br /&gt;
                Localpref: 100&lt;br /&gt;
                Router ID: 2.2.2.2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Modifying AS Path==&lt;br /&gt;
&lt;br /&gt;
===Option 1: remove-private===&lt;br /&gt;
&lt;br /&gt;
===Option 2: local-as===&lt;br /&gt;
&lt;br /&gt;
 [edit routing-options]&lt;br /&gt;
 R1# show &lt;br /&gt;
 autonomous-system 1111;&lt;br /&gt;
 &lt;br /&gt;
 [edit protocols bgp group ebgp]&lt;br /&gt;
 R1# show &lt;br /&gt;
 neighbor 10.1.0.2 {&lt;br /&gt;
     peer-as 2222;&lt;br /&gt;
     local-as 3333;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
При такой конфигурации R1, EBGP-сосед, который '''ожидает''', что у R1 будет AS3333 сможет установить соседство с R1, хотя, по факту R1 принадлежит AS1111.&lt;br /&gt;
Результат:&lt;br /&gt;
 R1&amp;gt; show bgp neighbor &lt;br /&gt;
 Peer: 10.1.0.2+179 AS 2222     Local: 10.1.0.1+62745 '''AS 3333''' &lt;br /&gt;
   Type: External    State: Established    Flags: &amp;lt;Sync&amp;gt;&lt;br /&gt;
   Last State: OpenConfirm   Last Event: RecvKeepAlive&lt;br /&gt;
   ...&lt;br /&gt;
   Holdtime: 90 Preference: 170 Localpref: 110 '''Local AS: 3333 Local System AS: 1111'''&lt;br /&gt;
   Number of flaps: 0&lt;br /&gt;
   Peer ID: 2.2.2.2         Local ID: 1.1.1.1           Active Holdtime: 90&lt;br /&gt;
   ...&lt;br /&gt;
&lt;br /&gt;
'''Зачем это нужно'''&lt;br /&gt;
&lt;br /&gt;
Предположим, оператор с AS1111 купил сеть оператора с AS3333. У AS3333 были свои клиенты, подключенные по BGP, которые не готовы или не хотят изменять конфигурацию на своих роутерах. В таком случае можно временно применить опцию local-as, чтобы выступить для них от лица предыдущей AS (в примере - 3333), но внутри сети перевести инфораструктуру на AS1111.&lt;/div&gt;</summary>
		<author><name>Владислав Павкин</name></author>
	</entry>
	<entry>
		<id>https://juniper-exam.ru/index.php?title=BGP&amp;diff=97</id>
		<title>BGP</title>
		<link rel="alternate" type="text/html" href="https://juniper-exam.ru/index.php?title=BGP&amp;diff=97"/>
		<updated>2016-10-21T20:14:03Z</updated>

		<summary type="html">&lt;p&gt;Владислав Павкин: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Состояния соседства ==&lt;br /&gt;
http://habrastorage.org/getpro/habr/post_images/442/780/549/442780549c2f45cdda10773121b2800d.png&lt;br /&gt;
&lt;br /&gt;
== Сообщения ==&lt;br /&gt;
*Open - отправляется только на стадии установления соседства. Содержит параметры BGP соседа.&lt;br /&gt;
*Update - передает routing info между соседями. Атрибуты и список префиксов, подходящий под данные атрибуты.&lt;br /&gt;
*Keepalive - для удостоверения, что с соседством все ок.&lt;br /&gt;
*Notification - в случае если не прошел keepalive или update.&lt;br /&gt;
*Refresh - soft clearing BGP сессии.&lt;br /&gt;
&lt;br /&gt;
== Атрибуты пути (path attributes) ==&lt;br /&gt;
Атрибуты пути разделены на 4 категории:&lt;br /&gt;
# '''Well-known mandatory''' — все маршрутизаторы, работающие по протоколу BGP, должны распознавать эти атрибуты. Должны присутствовать во всех обновлениях (update).&lt;br /&gt;
# '''Well-known discretionary''' — все маршрутизаторы, работающие по протоколу BGP, должны распознавать эти атрибуты. Могут присутствовать в обновлениях (update), но их присутствие не обязательно.&lt;br /&gt;
# '''Optional transitive''' — могут не распознаваться всеми реализациями BGP. Если маршрутизатор не распознал атрибут, он помечает обновление как частичное (partial) и отправляет его дальше соседям, сохраняя не распознанный атрибут.&lt;br /&gt;
# '''Optional non-transitive''' — могут не распознаваться всеми реализациями BGP. Если маршрутизатор не распознал атрибут, то атрибут игнорируется и при передаче соседям отбрасывается.&lt;br /&gt;
&lt;br /&gt;
Примеры атрибутов BGP:&lt;br /&gt;
* Well-known mandatory:&lt;br /&gt;
** Autonomous system path&lt;br /&gt;
** Next-hop&lt;br /&gt;
** Origin&lt;br /&gt;
* Well-known discretionary:&lt;br /&gt;
** Local preference&lt;br /&gt;
** Atomic aggregate&lt;br /&gt;
* Optional transitive:&lt;br /&gt;
** Aggregator&lt;br /&gt;
** Communities&lt;br /&gt;
*  Optional non-transitive:&lt;br /&gt;
** Multi-exit discriminator (MED)&lt;br /&gt;
&lt;br /&gt;
=== Autonomous system path ===&lt;br /&gt;
[[Изображение:AS_path.png|400px|right]]&lt;br /&gt;
&lt;br /&gt;
Атрибут Autonomous system path (AS Path):&lt;br /&gt;
* Описывает через какие автономные системы надо пройти, чтобы дойти до сети назначения. &lt;br /&gt;
* Номер AS добавляется при передаче обновления из одной AS eBGP-соседу в другой AS.&lt;br /&gt;
&lt;br /&gt;
Используется для:&lt;br /&gt;
* обнаружения петель&lt;br /&gt;
* применения политик&lt;br /&gt;
&lt;br /&gt;
Каждый сегмент атрибута AS path представлен в виде поля TLV (path segment type, path segment length, path segment value):&lt;br /&gt;
* '''path segment type''' — поле размером 1 байт для которого определены такие значения:&lt;br /&gt;
** 1 — AS_SET: неупорядоченное множество автономных систем, через которые прошел маршрут в сообщении Update,&lt;br /&gt;
** 2 — AS_SEQUENCE: упорядоченное множество автономных систем, через которые прошел маршрут в сообщении Update&lt;br /&gt;
* '''path segment length''' — поле размером 1 байт. Указывает сколько автономных систем указано в поле path segment value&lt;br /&gt;
* '''path segment value''' — номера автономных систем, каждая представлена полем размером 2 байта.&lt;br /&gt;
&lt;br /&gt;
=== Next-hop ===&lt;br /&gt;
[[Изображение:Next-hop.png|400px|right]]&lt;br /&gt;
&lt;br /&gt;
Атрибут '''Next-hop''' &lt;br /&gt;
* IP-адрес следующей AS для достижения сети назначения. &lt;br /&gt;
* Это IP-адрес eBGP-маршрутизатора, через который идет путь к сети назначения.&lt;br /&gt;
* Атрибут меняется при передаче префикса в другую AS&lt;br /&gt;
* Атрибут не меняется при передаче префикса в ту же AS&lt;br /&gt;
&lt;br /&gt;
Third party next hop:&lt;br /&gt;
[[Изображение:Next-hop3.png|300px]]&lt;br /&gt;
&lt;br /&gt;
=== Origin ===&lt;br /&gt;
Атрибут '''Origin''' — указывает на то, каким образом был получен маршрут в обновлении.&lt;br /&gt;
&lt;br /&gt;
Возможные значения атрибута:&lt;br /&gt;
* '''0''' — IGP: NLRI получена внутри исходной автономной системы;&lt;br /&gt;
* '''1''' — EGP: NLRI выучена по протоколу Exterior Gateway Protocol (EGP). Предшественник BGP, не используется&lt;br /&gt;
* '''2''' — Incomplete: NLRI была выучена каким-то другим образом&lt;br /&gt;
&lt;br /&gt;
=== Local preference ===&lt;br /&gt;
Атрибут '''Local preference''':&lt;br /&gt;
* Указывает маршрутизаторам внутри автономной системы как выйти за её пределы. &lt;br /&gt;
* Этот атрибут передается только в пределах одной автономной системы. &lt;br /&gt;
* На маршрутизаторах Cisco и Juniper по умолчанию значение атрибута — 100.&lt;br /&gt;
* Выбирается та точка выхода у которой значение атрибута больше.&lt;br /&gt;
* Если eBGP-сосед получает обновление с выставленным значением local preference, он игнорирует этот атрибут.&lt;br /&gt;
* В Junos lpf можно задать через policy и в protocol bgp. Если задан обоими способами, то будет назначен lpf из policy.&lt;br /&gt;
&lt;br /&gt;
=== Atomic aggregate ===&lt;br /&gt;
=== Aggregator ===&lt;br /&gt;
&lt;br /&gt;
=== Communities ===&lt;br /&gt;
Атрибут community:&lt;br /&gt;
* Тегирование маршрутов&lt;br /&gt;
* Существуют предопределенные значения&lt;br /&gt;
* По умолчанию не пересылаются соседям&lt;br /&gt;
* Один из вариантов применения: передается соседней AS для управления входящим трафиком&lt;br /&gt;
&lt;br /&gt;
Значения от 0x00000000 до 0x0000FFFF и от 0xFFFF0000 до 0xFFFFFFFF зарезервированы.&lt;br /&gt;
&lt;br /&gt;
Как правило community отображаются в формате ASN:VALUE.&lt;br /&gt;
В таком формате, доступны для использования community от 1:0 до 65534:65535.&lt;br /&gt;
В первой части указывается номер автономной системы, а во второй значение community, которое определяет политику маршрутизации трафика.&lt;br /&gt;
&lt;br /&gt;
Некоторые значения communities предопределены. RFC1997 определяет три значения таких community. Эти значения должны одинаково распознаваться и обрабатываться всеми реализациями BGP, которые распознают атрибут community.&lt;br /&gt;
&lt;br /&gt;
Если маршрутизатор получает маршрут, в котором указано предопределенное значение communities, то он выполняет специфическое, предопределенное действие основанное на значении атрибута.&lt;br /&gt;
&lt;br /&gt;
Предопределенные значения communities (Well-known Communities):&lt;br /&gt;
* '''no-export (0xFFFFFF01)''' — Все маршруты которые передаются с таким значением атрибута community не должны анонсироваться за пределы конфедерации (автономная система, которая не является частью конфедерации считается конфедерацией). То есть, маршруты не анонсируются EBGP-соседям, но анонсируются внешним соседям в конфедерации,&lt;br /&gt;
* '''no-advertise (0xFFFFFF02)''' — Все маршруты которые передаются с таким значением атрибута community не должны анонсироваться другим BGP-соседям,&lt;br /&gt;
* '''no-export-subconfed (0xFFFFFF03)''' — Все маршруты которые передаются с таким значением атрибута community не должны анонсироваться внешним BGP-соседям (ни внешним в конфедерации, ни настоящим внешним соседям). В Cisco это значение встречается и под названием local-as.&lt;br /&gt;
&lt;br /&gt;
{{note|text=&lt;br /&gt;
Маршрутизаторы, которые не поддерживают атрибут community, будут передавать его далее, так как это transitive атрибут.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Multi exit discriminator (MED)===&lt;br /&gt;
Атрибут '''MED''':&lt;br /&gt;
* Используется для информирования eBGP-соседей о том, какой путь в автономную систему более предпочтительный. &lt;br /&gt;
* Атрибут передается между автономными системами. &lt;br /&gt;
* Маршрутизаторы внутри соседней автономной системы используют этот атрибут, но, как только обновление выходит за пределы AS, атрибут MED отбрасывается.&lt;br /&gt;
* Чем меньше значение атрибута, тем более предпочтительна точка входа в автономную систему.&lt;br /&gt;
&lt;br /&gt;
=== Weight (проприетарный атрибут Cisco) ===&lt;br /&gt;
Атрибут '''Weight''': &lt;br /&gt;
* Позволяет назначить &amp;quot;вес&amp;quot; различным путям локально на маршрутизаторе. &lt;br /&gt;
* Используется в тех случаях, когда у одного маршрутизатора есть несколько выходов из автономной системы (сам маршрутизатор является точкой выхода). &lt;br /&gt;
* Имеет значение только локально, в пределах маршрутизатора. &lt;br /&gt;
* Не передается в обновлениях.&lt;br /&gt;
* Чем больше значение атрибута, тем более предпочтителен путь выхода.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Касательно всех атрибутов ==&lt;br /&gt;
Атрибуты, при выборе best, считаются лучшими с наименьшими значением.&lt;br /&gt;
Это правило касается всех атрибутов, кроме Local Preference&lt;br /&gt;
&lt;br /&gt;
== Механизмы управления входящим трафиком: ==&lt;br /&gt;
*AS path prepend&lt;br /&gt;
*Community (если поддерживает провайдер)&lt;br /&gt;
*MED (подключение к одной и той же AS)&lt;br /&gt;
*Анонс разных префиксов через разных ISP&lt;br /&gt;
&lt;br /&gt;
== Механизмы управления исходящим трафиком: ==&lt;br /&gt;
*Проприетарный атрибут Cisco weight (локально на маршрутизаторе)&lt;br /&gt;
*Атрибут Local Preference (локально в AS)&lt;br /&gt;
*Балансировка трафика&lt;br /&gt;
&lt;br /&gt;
== Выбор лучшего пути (BGP Active Route Selection) ==&lt;br /&gt;
&lt;br /&gt;
* Juniper&lt;br /&gt;
# Prefer highest local preference value&lt;br /&gt;
# Prefer shortest AS-path length&lt;br /&gt;
# Prefer lowest Origin value&lt;br /&gt;
# Prefer lowest MED value&lt;br /&gt;
# Prefer routes learned from an EBGP peer over an IBGP peer&lt;br /&gt;
# If the remaining routes were learned through IBGP, use the path with the lowest IGP cost to the IBGP peer.&lt;br /&gt;
# For EBGP received routes, prefer the current active route; otherwise, prefer routes from the peer with the lowest RID&lt;br /&gt;
#Prefer paths with the shortest cluster length&lt;br /&gt;
# Prefer routes from the peer with the lowest peer ID&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Multipath ==&lt;br /&gt;
&lt;br /&gt;
===Link Bandwidth Extended Community===&lt;br /&gt;
При включенном multipath можно задать желаемую балансировку между линками через extended community.&lt;br /&gt;
Это механизм описан в draft-ietf-idr-link-bandwidth-06, и не является стандартизированным, следовательно,&lt;br /&gt;
возможно, он не будет работать с некоторыми вендорами. В JunOS поддерживается.&lt;br /&gt;
&lt;br /&gt;
Пример использования:&lt;br /&gt;
&lt;br /&gt;
R1 и R2 соединены напрямую через ва сабинтерфейса, на каждом из которых висит своя /30 сеть&lt;br /&gt;
&lt;br /&gt;
 |     | ge-0/0/0.10 ----- ge-0/0/0.10 R2 |    |&lt;br /&gt;
 |  R1 |                                  | R2 |&lt;br /&gt;
 |     | ge-0/0/0.20 ----- ge-0/0/0.20 R2 |    |&lt;br /&gt;
&lt;br /&gt;
Конфиг R1:&lt;br /&gt;
 R1&amp;gt; show configuration protocols bgp &lt;br /&gt;
 group ebgp {&lt;br /&gt;
     multipath;&lt;br /&gt;
     neighbor 10.1.0.2 {&lt;br /&gt;
         description R2;&lt;br /&gt;
         export from-direct;&lt;br /&gt;
         peer-as 2222;&lt;br /&gt;
     }&lt;br /&gt;
     neighbor 10.2.0.2 {&lt;br /&gt;
         description R2;&lt;br /&gt;
         export from-direct;&lt;br /&gt;
         peer-as 2222;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Конфиг R2:&lt;br /&gt;
 R2&amp;gt; show configuration interfaces lo0   &lt;br /&gt;
 unit 0 {&lt;br /&gt;
     family inet {&lt;br /&gt;
         address 2.2.2.2/32;&lt;br /&gt;
     }&lt;br /&gt;
     family mpls;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; show configuration policy-options &lt;br /&gt;
 policy-statement bw20 {&lt;br /&gt;
     then {&lt;br /&gt;
         community add bw20;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 policy-statement bw80 {&lt;br /&gt;
     then {&lt;br /&gt;
         community add bw80;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 policy-statement from-direct {&lt;br /&gt;
     term redistribute-direct {&lt;br /&gt;
         from protocol direct;&lt;br /&gt;
         then accept;&lt;br /&gt;
     }&lt;br /&gt;
     term default {&lt;br /&gt;
         then reject;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 community bw20 members bandwidth:2222:2500000; // 2500000 байт в секунду — это 20% от 100Мегабит&lt;br /&gt;
 community bw80 members bandwidth:2222:10000000; // 10000000 байт в секунду — это 80% от 100Мегабит&lt;br /&gt;
 &lt;br /&gt;
 R2&amp;gt; show configuration protocols bgp &lt;br /&gt;
 group ebgp {&lt;br /&gt;
     neighbor 10.1.0.1 {&lt;br /&gt;
         description R1;&lt;br /&gt;
         export [ bw20 from-direct ]; // На одно из  соседств навешивается community, отображающее, что линк загружен на 20%&lt;br /&gt;
         peer-as 1111;&lt;br /&gt;
     }&lt;br /&gt;
     neighbor 10.2.0.1 {&lt;br /&gt;
         description R1;&lt;br /&gt;
         export [ bw80 from-direct ];// На второе соседство навешивается community, отображающее, что линк загружен на 80%&lt;br /&gt;
         peer-as 1111;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Что получилось:&lt;br /&gt;
&lt;br /&gt;
 R1&amp;gt; show route 2.2.2.2 extensive        &lt;br /&gt;
 &lt;br /&gt;
 inet.0: 11 destinations, 19 routes (11 active, 0 holddown, 0 hidden)&lt;br /&gt;
 2.2.2.2/32 (2 entries, 1 announced)&lt;br /&gt;
 TSI:&lt;br /&gt;
 KRT in-kernel 2.2.2.2/32 -&amp;gt; {10.2.0.2, 10.1.0.2}&lt;br /&gt;
        *BGP    Preference: 170/-101&lt;br /&gt;
                Next hop type: Router, Next hop index: 262145&lt;br /&gt;
                Address: 0x9404010&lt;br /&gt;
                Next-hop reference count: 8&lt;br /&gt;
                Source: 10.1.0.2&lt;br /&gt;
                '''Next hop: 10.2.0.2 via ge-0/0/0.20 balance 80%'''&lt;br /&gt;
                '''Next hop: 10.1.0.2 via ge-0/0/0.10 balance 20%, selected'''&lt;br /&gt;
                State: &amp;lt;Active Ext&amp;gt;&lt;br /&gt;
                Local AS:  1111 Peer AS:  2222&lt;br /&gt;
                Age: 1:20:49 &lt;br /&gt;
                Task: BGP_2222.10.1.0.2+179&lt;br /&gt;
                Announcement bits (1): 0-KRT &lt;br /&gt;
                AS path: 2222 I&lt;br /&gt;
                '''Communities: bandwidth:2222:2500000'''&lt;br /&gt;
                '''Accepted Multipath'''&lt;br /&gt;
                Localpref: 100&lt;br /&gt;
                Router ID: 2.2.2.2&lt;br /&gt;
         BGP    Preference: 170/-101&lt;br /&gt;
                Next hop type: Router&lt;br /&gt;
                Address: 0x934c520&lt;br /&gt;
                Next-hop reference count: 6&lt;br /&gt;
                Source: 10.2.0.2&lt;br /&gt;
                Next hop: 10.2.0.2 via ge-0/0/0.20, selected&lt;br /&gt;
                State: &amp;lt;NotBest Ext&amp;gt;&lt;br /&gt;
                Inactive reason: Not Best in its group - Update source&lt;br /&gt;
                Local AS:  1111 Peer AS:  2222&lt;br /&gt;
                Age: 1:18:58 &lt;br /&gt;
                Task: BGP_2222.10.2.0.2+55305&lt;br /&gt;
                AS path: 2222 I&lt;br /&gt;
                Communities: bandwidth:2222:10000000&lt;br /&gt;
                Accepted MultipathContrib&lt;br /&gt;
                Localpref: 100&lt;br /&gt;
                Router ID: 2.2.2.2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Modifying AS Path==&lt;br /&gt;
&lt;br /&gt;
===Option 1: remove-private===&lt;br /&gt;
&lt;br /&gt;
===Option 2: local-as===&lt;br /&gt;
&lt;br /&gt;
 [edit routing-options]&lt;br /&gt;
 R1# show &lt;br /&gt;
 autonomous-system 1111;&lt;br /&gt;
 &lt;br /&gt;
 [edit protocols bgp group ebgp]&lt;br /&gt;
 R1# show &lt;br /&gt;
 neighbor 10.1.0.2 {&lt;br /&gt;
     peer-as 2222;&lt;br /&gt;
     local-as 3333;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
При такой конфигурации R1, EBGP-сосед, который '''ожидает''', что у R1 будет AS3333 сможет установить соседство с R1, хотя, по факту R1 принадлежит AS1111.&lt;br /&gt;
Результат:&lt;br /&gt;
 R1&amp;gt; show bgp neighbor &lt;br /&gt;
 Peer: 10.1.0.2+179 AS 2222     Local: 10.1.0.1+62745 '''AS 3333''' &lt;br /&gt;
   Type: External    State: Established    Flags: &amp;lt;Sync&amp;gt;&lt;br /&gt;
   Last State: OpenConfirm   Last Event: RecvKeepAlive&lt;br /&gt;
   ...&lt;br /&gt;
   Holdtime: 90 Preference: 170 Localpref: 110 '''Local AS: 3333 Local System AS: 1111'''&lt;br /&gt;
   Number of flaps: 0&lt;br /&gt;
   Peer ID: 2.2.2.2         Local ID: 1.1.1.1           Active Holdtime: 90&lt;br /&gt;
   ...&lt;br /&gt;
&lt;br /&gt;
'''Зачем это нужно'''&lt;br /&gt;
Предположим, оператор с AS1111 купил сеть оператора с AS3333. У AS3333 были свои клиенты, подключенные по BGP, которые не готовы или не хотят изменять конфигурацию на своих роутерах. В таком случае можно временно применить опцию local-as, чтобы выступить для них от лица предыдущей AS (в примере - 3333), но внутри сети перевести инфораструктуру на AS1111.&lt;/div&gt;</summary>
		<author><name>Владислав Павкин</name></author>
	</entry>
	<entry>
		<id>https://juniper-exam.ru/index.php?title=BGP&amp;diff=96</id>
		<title>BGP</title>
		<link rel="alternate" type="text/html" href="https://juniper-exam.ru/index.php?title=BGP&amp;diff=96"/>
		<updated>2016-10-21T16:07:24Z</updated>

		<summary type="html">&lt;p&gt;Владислав Павкин: /* Link Bandwidth Extended Community */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Состояния соседства ==&lt;br /&gt;
http://habrastorage.org/getpro/habr/post_images/442/780/549/442780549c2f45cdda10773121b2800d.png&lt;br /&gt;
&lt;br /&gt;
== Сообщения ==&lt;br /&gt;
*Open - отправляется только на стадии установления соседства. Содержит параметры BGP соседа.&lt;br /&gt;
*Update - передает routing info между соседями. Атрибуты и список префиксов, подходящий под данные атрибуты.&lt;br /&gt;
*Keepalive - для удостоверения, что с соседством все ок.&lt;br /&gt;
*Notification - в случае если не прошел keepalive или update.&lt;br /&gt;
*Refresh - soft clearing BGP сессии.&lt;br /&gt;
&lt;br /&gt;
== Атрибуты пути (path attributes) ==&lt;br /&gt;
Атрибуты пути разделены на 4 категории:&lt;br /&gt;
# '''Well-known mandatory''' — все маршрутизаторы, работающие по протоколу BGP, должны распознавать эти атрибуты. Должны присутствовать во всех обновлениях (update).&lt;br /&gt;
# '''Well-known discretionary''' — все маршрутизаторы, работающие по протоколу BGP, должны распознавать эти атрибуты. Могут присутствовать в обновлениях (update), но их присутствие не обязательно.&lt;br /&gt;
# '''Optional transitive''' — могут не распознаваться всеми реализациями BGP. Если маршрутизатор не распознал атрибут, он помечает обновление как частичное (partial) и отправляет его дальше соседям, сохраняя не распознанный атрибут.&lt;br /&gt;
# '''Optional non-transitive''' — могут не распознаваться всеми реализациями BGP. Если маршрутизатор не распознал атрибут, то атрибут игнорируется и при передаче соседям отбрасывается.&lt;br /&gt;
&lt;br /&gt;
Примеры атрибутов BGP:&lt;br /&gt;
* Well-known mandatory:&lt;br /&gt;
** Autonomous system path&lt;br /&gt;
** Next-hop&lt;br /&gt;
** Origin&lt;br /&gt;
* Well-known discretionary:&lt;br /&gt;
** Local preference&lt;br /&gt;
** Atomic aggregate&lt;br /&gt;
* Optional transitive:&lt;br /&gt;
** Aggregator&lt;br /&gt;
** Communities&lt;br /&gt;
*  Optional non-transitive:&lt;br /&gt;
** Multi-exit discriminator (MED)&lt;br /&gt;
&lt;br /&gt;
=== Autonomous system path ===&lt;br /&gt;
[[Изображение:AS_path.png|400px|right]]&lt;br /&gt;
&lt;br /&gt;
Атрибут Autonomous system path (AS Path):&lt;br /&gt;
* Описывает через какие автономные системы надо пройти, чтобы дойти до сети назначения. &lt;br /&gt;
* Номер AS добавляется при передаче обновления из одной AS eBGP-соседу в другой AS.&lt;br /&gt;
&lt;br /&gt;
Используется для:&lt;br /&gt;
* обнаружения петель&lt;br /&gt;
* применения политик&lt;br /&gt;
&lt;br /&gt;
Каждый сегмент атрибута AS path представлен в виде поля TLV (path segment type, path segment length, path segment value):&lt;br /&gt;
* '''path segment type''' — поле размером 1 байт для которого определены такие значения:&lt;br /&gt;
** 1 — AS_SET: неупорядоченное множество автономных систем, через которые прошел маршрут в сообщении Update,&lt;br /&gt;
** 2 — AS_SEQUENCE: упорядоченное множество автономных систем, через которые прошел маршрут в сообщении Update&lt;br /&gt;
* '''path segment length''' — поле размером 1 байт. Указывает сколько автономных систем указано в поле path segment value&lt;br /&gt;
* '''path segment value''' — номера автономных систем, каждая представлена полем размером 2 байта.&lt;br /&gt;
&lt;br /&gt;
=== Next-hop ===&lt;br /&gt;
[[Изображение:Next-hop.png|400px|right]]&lt;br /&gt;
&lt;br /&gt;
Атрибут '''Next-hop''' &lt;br /&gt;
* IP-адрес следующей AS для достижения сети назначения. &lt;br /&gt;
* Это IP-адрес eBGP-маршрутизатора, через который идет путь к сети назначения.&lt;br /&gt;
* Атрибут меняется при передаче префикса в другую AS&lt;br /&gt;
* Атрибут не меняется при передаче префикса в ту же AS&lt;br /&gt;
&lt;br /&gt;
Third party next hop:&lt;br /&gt;
[[Изображение:Next-hop3.png|300px]]&lt;br /&gt;
&lt;br /&gt;
=== Origin ===&lt;br /&gt;
Атрибут '''Origin''' — указывает на то, каким образом был получен маршрут в обновлении.&lt;br /&gt;
&lt;br /&gt;
Возможные значения атрибута:&lt;br /&gt;
* '''0''' — IGP: NLRI получена внутри исходной автономной системы;&lt;br /&gt;
* '''1''' — EGP: NLRI выучена по протоколу Exterior Gateway Protocol (EGP). Предшественник BGP, не используется&lt;br /&gt;
* '''2''' — Incomplete: NLRI была выучена каким-то другим образом&lt;br /&gt;
&lt;br /&gt;
=== Local preference ===&lt;br /&gt;
Атрибут '''Local preference''':&lt;br /&gt;
* Указывает маршрутизаторам внутри автономной системы как выйти за её пределы. &lt;br /&gt;
* Этот атрибут передается только в пределах одной автономной системы. &lt;br /&gt;
* На маршрутизаторах Cisco и Juniper по умолчанию значение атрибута — 100.&lt;br /&gt;
* Выбирается та точка выхода у которой значение атрибута больше.&lt;br /&gt;
* Если eBGP-сосед получает обновление с выставленным значением local preference, он игнорирует этот атрибут.&lt;br /&gt;
* В Junos lpf можно задать через policy и в protocol bgp. Если задан обоими способами, то будет назначен lpf из policy.&lt;br /&gt;
&lt;br /&gt;
=== Atomic aggregate ===&lt;br /&gt;
=== Aggregator ===&lt;br /&gt;
&lt;br /&gt;
=== Communities ===&lt;br /&gt;
Атрибут community:&lt;br /&gt;
* Тегирование маршрутов&lt;br /&gt;
* Существуют предопределенные значения&lt;br /&gt;
* По умолчанию не пересылаются соседям&lt;br /&gt;
* Один из вариантов применения: передается соседней AS для управления входящим трафиком&lt;br /&gt;
&lt;br /&gt;
Значения от 0x00000000 до 0x0000FFFF и от 0xFFFF0000 до 0xFFFFFFFF зарезервированы.&lt;br /&gt;
&lt;br /&gt;
Как правило community отображаются в формате ASN:VALUE.&lt;br /&gt;
В таком формате, доступны для использования community от 1:0 до 65534:65535.&lt;br /&gt;
В первой части указывается номер автономной системы, а во второй значение community, которое определяет политику маршрутизации трафика.&lt;br /&gt;
&lt;br /&gt;
Некоторые значения communities предопределены. RFC1997 определяет три значения таких community. Эти значения должны одинаково распознаваться и обрабатываться всеми реализациями BGP, которые распознают атрибут community.&lt;br /&gt;
&lt;br /&gt;
Если маршрутизатор получает маршрут, в котором указано предопределенное значение communities, то он выполняет специфическое, предопределенное действие основанное на значении атрибута.&lt;br /&gt;
&lt;br /&gt;
Предопределенные значения communities (Well-known Communities):&lt;br /&gt;
* '''no-export (0xFFFFFF01)''' — Все маршруты которые передаются с таким значением атрибута community не должны анонсироваться за пределы конфедерации (автономная система, которая не является частью конфедерации считается конфедерацией). То есть, маршруты не анонсируются EBGP-соседям, но анонсируются внешним соседям в конфедерации,&lt;br /&gt;
* '''no-advertise (0xFFFFFF02)''' — Все маршруты которые передаются с таким значением атрибута community не должны анонсироваться другим BGP-соседям,&lt;br /&gt;
* '''no-export-subconfed (0xFFFFFF03)''' — Все маршруты которые передаются с таким значением атрибута community не должны анонсироваться внешним BGP-соседям (ни внешним в конфедерации, ни настоящим внешним соседям). В Cisco это значение встречается и под названием local-as.&lt;br /&gt;
&lt;br /&gt;
{{note|text=&lt;br /&gt;
Маршрутизаторы, которые не поддерживают атрибут community, будут передавать его далее, так как это transitive атрибут.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Multi exit discriminator (MED)===&lt;br /&gt;
Атрибут '''MED''':&lt;br /&gt;
* Используется для информирования eBGP-соседей о том, какой путь в автономную систему более предпочтительный. &lt;br /&gt;
* Атрибут передается между автономными системами. &lt;br /&gt;
* Маршрутизаторы внутри соседней автономной системы используют этот атрибут, но, как только обновление выходит за пределы AS, атрибут MED отбрасывается.&lt;br /&gt;
* Чем меньше значение атрибута, тем более предпочтительна точка входа в автономную систему.&lt;br /&gt;
&lt;br /&gt;
=== Weight (проприетарный атрибут Cisco) ===&lt;br /&gt;
Атрибут '''Weight''': &lt;br /&gt;
* Позволяет назначить &amp;quot;вес&amp;quot; различным путям локально на маршрутизаторе. &lt;br /&gt;
* Используется в тех случаях, когда у одного маршрутизатора есть несколько выходов из автономной системы (сам маршрутизатор является точкой выхода). &lt;br /&gt;
* Имеет значение только локально, в пределах маршрутизатора. &lt;br /&gt;
* Не передается в обновлениях.&lt;br /&gt;
* Чем больше значение атрибута, тем более предпочтителен путь выхода.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Касательно всех атрибутов ==&lt;br /&gt;
Атрибуты, при выборе best, считаются лучшими с наименьшими значением.&lt;br /&gt;
Это правило касается всех атрибутов, кроме Local Preference&lt;br /&gt;
&lt;br /&gt;
== Механизмы управления входящим трафиком: ==&lt;br /&gt;
*AS path prepend&lt;br /&gt;
*Community (если поддерживает провайдер)&lt;br /&gt;
*MED (подключение к одной и той же AS)&lt;br /&gt;
*Анонс разных префиксов через разных ISP&lt;br /&gt;
&lt;br /&gt;
== Механизмы управления исходящим трафиком: ==&lt;br /&gt;
*Проприетарный атрибут Cisco weight (локально на маршрутизаторе)&lt;br /&gt;
*Атрибут Local Preference (локально в AS)&lt;br /&gt;
*Балансировка трафика&lt;br /&gt;
&lt;br /&gt;
== Выбор лучшего пути (BGP Active Route Selection) ==&lt;br /&gt;
&lt;br /&gt;
* Juniper&lt;br /&gt;
# Prefer highest local preference value&lt;br /&gt;
# Prefer shortest AS-path length&lt;br /&gt;
# Prefer lowest Origin value&lt;br /&gt;
# Prefer lowest MED value&lt;br /&gt;
# Prefer routes learned from an EBGP peer over an IBGP peer&lt;br /&gt;
# If the remaining routes were learned through IBGP, use the path with the lowest IGP cost to the IBGP peer.&lt;br /&gt;
# For EBGP received routes, prefer the current active route; otherwise, prefer routes from the peer with the lowest RID&lt;br /&gt;
#Prefer paths with the shortest cluster length&lt;br /&gt;
# Prefer routes from the peer with the lowest peer ID&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Multipath ==&lt;br /&gt;
&lt;br /&gt;
===Link Bandwidth Extended Community===&lt;br /&gt;
При включенном multipath можно задать желаемую балансировку между линками через extended community.&lt;br /&gt;
Это механизм описан в draft-ietf-idr-link-bandwidth-06, и не является стандартизированным, следовательно,&lt;br /&gt;
возможно, он не будет работать с некоторыми вендорами. В JunOS поддерживается.&lt;br /&gt;
&lt;br /&gt;
Пример использования:&lt;br /&gt;
&lt;br /&gt;
R1 и R2 соединены напрямую через ва сабинтерфейса, на каждом из которых висит своя /30 сеть&lt;br /&gt;
&lt;br /&gt;
 |     | ge-0/0/0.10 ----- ge-0/0/0.10 R2 |    |&lt;br /&gt;
 |  R1 |                                  | R2 |&lt;br /&gt;
 |     | ge-0/0/0.20 ----- ge-0/0/0.20 R2 |    |&lt;br /&gt;
&lt;br /&gt;
Конфиг R1:&lt;br /&gt;
 R1&amp;gt; show configuration protocols bgp &lt;br /&gt;
 group ebgp {&lt;br /&gt;
     multipath;&lt;br /&gt;
     neighbor 10.1.0.2 {&lt;br /&gt;
         description R2;&lt;br /&gt;
         export from-direct;&lt;br /&gt;
         peer-as 2222;&lt;br /&gt;
     }&lt;br /&gt;
     neighbor 10.2.0.2 {&lt;br /&gt;
         description R2;&lt;br /&gt;
         export from-direct;&lt;br /&gt;
         peer-as 2222;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Конфиг R2:&lt;br /&gt;
 R2&amp;gt; show configuration interfaces lo0   &lt;br /&gt;
 unit 0 {&lt;br /&gt;
     family inet {&lt;br /&gt;
         address 2.2.2.2/32;&lt;br /&gt;
     }&lt;br /&gt;
     family mpls;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; show configuration policy-options &lt;br /&gt;
 policy-statement bw20 {&lt;br /&gt;
     then {&lt;br /&gt;
         community add bw20;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 policy-statement bw80 {&lt;br /&gt;
     then {&lt;br /&gt;
         community add bw80;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 policy-statement from-direct {&lt;br /&gt;
     term redistribute-direct {&lt;br /&gt;
         from protocol direct;&lt;br /&gt;
         then accept;&lt;br /&gt;
     }&lt;br /&gt;
     term default {&lt;br /&gt;
         then reject;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 community bw20 members bandwidth:2222:2500000; // 2500000 байт в секунду — это 20% от 100Мегабит&lt;br /&gt;
 community bw80 members bandwidth:2222:10000000; // 10000000 байт в секунду — это 80% от 100Мегабит&lt;br /&gt;
 &lt;br /&gt;
 R2&amp;gt; show configuration protocols bgp &lt;br /&gt;
 group ebgp {&lt;br /&gt;
     neighbor 10.1.0.1 {&lt;br /&gt;
         description R1;&lt;br /&gt;
         export [ bw20 from-direct ]; // На одно из  соседств навешивается community, отображающее, что линк загружен на 20%&lt;br /&gt;
         peer-as 1111;&lt;br /&gt;
     }&lt;br /&gt;
     neighbor 10.2.0.1 {&lt;br /&gt;
         description R1;&lt;br /&gt;
         export [ bw80 from-direct ];// На второе соседство навешивается community, отображающее, что линк загружен на 80%&lt;br /&gt;
         peer-as 1111;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Что получилось:&lt;br /&gt;
&lt;br /&gt;
 R1&amp;gt; show route 2.2.2.2 extensive        &lt;br /&gt;
 &lt;br /&gt;
 inet.0: 11 destinations, 19 routes (11 active, 0 holddown, 0 hidden)&lt;br /&gt;
 2.2.2.2/32 (2 entries, 1 announced)&lt;br /&gt;
 TSI:&lt;br /&gt;
 KRT in-kernel 2.2.2.2/32 -&amp;gt; {10.2.0.2, 10.1.0.2}&lt;br /&gt;
        *BGP    Preference: 170/-101&lt;br /&gt;
                Next hop type: Router, Next hop index: 262145&lt;br /&gt;
                Address: 0x9404010&lt;br /&gt;
                Next-hop reference count: 8&lt;br /&gt;
                Source: 10.1.0.2&lt;br /&gt;
                '''Next hop: 10.2.0.2 via ge-0/0/0.20 balance 80%'''&lt;br /&gt;
                '''Next hop: 10.1.0.2 via ge-0/0/0.10 balance 20%, selected'''&lt;br /&gt;
                State: &amp;lt;Active Ext&amp;gt;&lt;br /&gt;
                Local AS:  1111 Peer AS:  2222&lt;br /&gt;
                Age: 1:20:49 &lt;br /&gt;
                Task: BGP_2222.10.1.0.2+179&lt;br /&gt;
                Announcement bits (1): 0-KRT &lt;br /&gt;
                AS path: 2222 I&lt;br /&gt;
                '''Communities: bandwidth:2222:2500000'''&lt;br /&gt;
                '''Accepted Multipath'''&lt;br /&gt;
                Localpref: 100&lt;br /&gt;
                Router ID: 2.2.2.2&lt;br /&gt;
         BGP    Preference: 170/-101&lt;br /&gt;
                Next hop type: Router&lt;br /&gt;
                Address: 0x934c520&lt;br /&gt;
                Next-hop reference count: 6&lt;br /&gt;
                Source: 10.2.0.2&lt;br /&gt;
                Next hop: 10.2.0.2 via ge-0/0/0.20, selected&lt;br /&gt;
                State: &amp;lt;NotBest Ext&amp;gt;&lt;br /&gt;
                Inactive reason: Not Best in its group - Update source&lt;br /&gt;
                Local AS:  1111 Peer AS:  2222&lt;br /&gt;
                Age: 1:18:58 &lt;br /&gt;
                Task: BGP_2222.10.2.0.2+55305&lt;br /&gt;
                AS path: 2222 I&lt;br /&gt;
                Communities: bandwidth:2222:10000000&lt;br /&gt;
                Accepted MultipathContrib&lt;br /&gt;
                Localpref: 100&lt;br /&gt;
                Router ID: 2.2.2.2&lt;/div&gt;</summary>
		<author><name>Владислав Павкин</name></author>
	</entry>
	<entry>
		<id>https://juniper-exam.ru/index.php?title=BGP&amp;diff=95</id>
		<title>BGP</title>
		<link rel="alternate" type="text/html" href="https://juniper-exam.ru/index.php?title=BGP&amp;diff=95"/>
		<updated>2016-10-21T16:06:17Z</updated>

		<summary type="html">&lt;p&gt;Владислав Павкин: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Состояния соседства ==&lt;br /&gt;
http://habrastorage.org/getpro/habr/post_images/442/780/549/442780549c2f45cdda10773121b2800d.png&lt;br /&gt;
&lt;br /&gt;
== Сообщения ==&lt;br /&gt;
*Open - отправляется только на стадии установления соседства. Содержит параметры BGP соседа.&lt;br /&gt;
*Update - передает routing info между соседями. Атрибуты и список префиксов, подходящий под данные атрибуты.&lt;br /&gt;
*Keepalive - для удостоверения, что с соседством все ок.&lt;br /&gt;
*Notification - в случае если не прошел keepalive или update.&lt;br /&gt;
*Refresh - soft clearing BGP сессии.&lt;br /&gt;
&lt;br /&gt;
== Атрибуты пути (path attributes) ==&lt;br /&gt;
Атрибуты пути разделены на 4 категории:&lt;br /&gt;
# '''Well-known mandatory''' — все маршрутизаторы, работающие по протоколу BGP, должны распознавать эти атрибуты. Должны присутствовать во всех обновлениях (update).&lt;br /&gt;
# '''Well-known discretionary''' — все маршрутизаторы, работающие по протоколу BGP, должны распознавать эти атрибуты. Могут присутствовать в обновлениях (update), но их присутствие не обязательно.&lt;br /&gt;
# '''Optional transitive''' — могут не распознаваться всеми реализациями BGP. Если маршрутизатор не распознал атрибут, он помечает обновление как частичное (partial) и отправляет его дальше соседям, сохраняя не распознанный атрибут.&lt;br /&gt;
# '''Optional non-transitive''' — могут не распознаваться всеми реализациями BGP. Если маршрутизатор не распознал атрибут, то атрибут игнорируется и при передаче соседям отбрасывается.&lt;br /&gt;
&lt;br /&gt;
Примеры атрибутов BGP:&lt;br /&gt;
* Well-known mandatory:&lt;br /&gt;
** Autonomous system path&lt;br /&gt;
** Next-hop&lt;br /&gt;
** Origin&lt;br /&gt;
* Well-known discretionary:&lt;br /&gt;
** Local preference&lt;br /&gt;
** Atomic aggregate&lt;br /&gt;
* Optional transitive:&lt;br /&gt;
** Aggregator&lt;br /&gt;
** Communities&lt;br /&gt;
*  Optional non-transitive:&lt;br /&gt;
** Multi-exit discriminator (MED)&lt;br /&gt;
&lt;br /&gt;
=== Autonomous system path ===&lt;br /&gt;
[[Изображение:AS_path.png|400px|right]]&lt;br /&gt;
&lt;br /&gt;
Атрибут Autonomous system path (AS Path):&lt;br /&gt;
* Описывает через какие автономные системы надо пройти, чтобы дойти до сети назначения. &lt;br /&gt;
* Номер AS добавляется при передаче обновления из одной AS eBGP-соседу в другой AS.&lt;br /&gt;
&lt;br /&gt;
Используется для:&lt;br /&gt;
* обнаружения петель&lt;br /&gt;
* применения политик&lt;br /&gt;
&lt;br /&gt;
Каждый сегмент атрибута AS path представлен в виде поля TLV (path segment type, path segment length, path segment value):&lt;br /&gt;
* '''path segment type''' — поле размером 1 байт для которого определены такие значения:&lt;br /&gt;
** 1 — AS_SET: неупорядоченное множество автономных систем, через которые прошел маршрут в сообщении Update,&lt;br /&gt;
** 2 — AS_SEQUENCE: упорядоченное множество автономных систем, через которые прошел маршрут в сообщении Update&lt;br /&gt;
* '''path segment length''' — поле размером 1 байт. Указывает сколько автономных систем указано в поле path segment value&lt;br /&gt;
* '''path segment value''' — номера автономных систем, каждая представлена полем размером 2 байта.&lt;br /&gt;
&lt;br /&gt;
=== Next-hop ===&lt;br /&gt;
[[Изображение:Next-hop.png|400px|right]]&lt;br /&gt;
&lt;br /&gt;
Атрибут '''Next-hop''' &lt;br /&gt;
* IP-адрес следующей AS для достижения сети назначения. &lt;br /&gt;
* Это IP-адрес eBGP-маршрутизатора, через который идет путь к сети назначения.&lt;br /&gt;
* Атрибут меняется при передаче префикса в другую AS&lt;br /&gt;
* Атрибут не меняется при передаче префикса в ту же AS&lt;br /&gt;
&lt;br /&gt;
Third party next hop:&lt;br /&gt;
[[Изображение:Next-hop3.png|300px]]&lt;br /&gt;
&lt;br /&gt;
=== Origin ===&lt;br /&gt;
Атрибут '''Origin''' — указывает на то, каким образом был получен маршрут в обновлении.&lt;br /&gt;
&lt;br /&gt;
Возможные значения атрибута:&lt;br /&gt;
* '''0''' — IGP: NLRI получена внутри исходной автономной системы;&lt;br /&gt;
* '''1''' — EGP: NLRI выучена по протоколу Exterior Gateway Protocol (EGP). Предшественник BGP, не используется&lt;br /&gt;
* '''2''' — Incomplete: NLRI была выучена каким-то другим образом&lt;br /&gt;
&lt;br /&gt;
=== Local preference ===&lt;br /&gt;
Атрибут '''Local preference''':&lt;br /&gt;
* Указывает маршрутизаторам внутри автономной системы как выйти за её пределы. &lt;br /&gt;
* Этот атрибут передается только в пределах одной автономной системы. &lt;br /&gt;
* На маршрутизаторах Cisco и Juniper по умолчанию значение атрибута — 100.&lt;br /&gt;
* Выбирается та точка выхода у которой значение атрибута больше.&lt;br /&gt;
* Если eBGP-сосед получает обновление с выставленным значением local preference, он игнорирует этот атрибут.&lt;br /&gt;
* В Junos lpf можно задать через policy и в protocol bgp. Если задан обоими способами, то будет назначен lpf из policy.&lt;br /&gt;
&lt;br /&gt;
=== Atomic aggregate ===&lt;br /&gt;
=== Aggregator ===&lt;br /&gt;
&lt;br /&gt;
=== Communities ===&lt;br /&gt;
Атрибут community:&lt;br /&gt;
* Тегирование маршрутов&lt;br /&gt;
* Существуют предопределенные значения&lt;br /&gt;
* По умолчанию не пересылаются соседям&lt;br /&gt;
* Один из вариантов применения: передается соседней AS для управления входящим трафиком&lt;br /&gt;
&lt;br /&gt;
Значения от 0x00000000 до 0x0000FFFF и от 0xFFFF0000 до 0xFFFFFFFF зарезервированы.&lt;br /&gt;
&lt;br /&gt;
Как правило community отображаются в формате ASN:VALUE.&lt;br /&gt;
В таком формате, доступны для использования community от 1:0 до 65534:65535.&lt;br /&gt;
В первой части указывается номер автономной системы, а во второй значение community, которое определяет политику маршрутизации трафика.&lt;br /&gt;
&lt;br /&gt;
Некоторые значения communities предопределены. RFC1997 определяет три значения таких community. Эти значения должны одинаково распознаваться и обрабатываться всеми реализациями BGP, которые распознают атрибут community.&lt;br /&gt;
&lt;br /&gt;
Если маршрутизатор получает маршрут, в котором указано предопределенное значение communities, то он выполняет специфическое, предопределенное действие основанное на значении атрибута.&lt;br /&gt;
&lt;br /&gt;
Предопределенные значения communities (Well-known Communities):&lt;br /&gt;
* '''no-export (0xFFFFFF01)''' — Все маршруты которые передаются с таким значением атрибута community не должны анонсироваться за пределы конфедерации (автономная система, которая не является частью конфедерации считается конфедерацией). То есть, маршруты не анонсируются EBGP-соседям, но анонсируются внешним соседям в конфедерации,&lt;br /&gt;
* '''no-advertise (0xFFFFFF02)''' — Все маршруты которые передаются с таким значением атрибута community не должны анонсироваться другим BGP-соседям,&lt;br /&gt;
* '''no-export-subconfed (0xFFFFFF03)''' — Все маршруты которые передаются с таким значением атрибута community не должны анонсироваться внешним BGP-соседям (ни внешним в конфедерации, ни настоящим внешним соседям). В Cisco это значение встречается и под названием local-as.&lt;br /&gt;
&lt;br /&gt;
{{note|text=&lt;br /&gt;
Маршрутизаторы, которые не поддерживают атрибут community, будут передавать его далее, так как это transitive атрибут.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Multi exit discriminator (MED)===&lt;br /&gt;
Атрибут '''MED''':&lt;br /&gt;
* Используется для информирования eBGP-соседей о том, какой путь в автономную систему более предпочтительный. &lt;br /&gt;
* Атрибут передается между автономными системами. &lt;br /&gt;
* Маршрутизаторы внутри соседней автономной системы используют этот атрибут, но, как только обновление выходит за пределы AS, атрибут MED отбрасывается.&lt;br /&gt;
* Чем меньше значение атрибута, тем более предпочтительна точка входа в автономную систему.&lt;br /&gt;
&lt;br /&gt;
=== Weight (проприетарный атрибут Cisco) ===&lt;br /&gt;
Атрибут '''Weight''': &lt;br /&gt;
* Позволяет назначить &amp;quot;вес&amp;quot; различным путям локально на маршрутизаторе. &lt;br /&gt;
* Используется в тех случаях, когда у одного маршрутизатора есть несколько выходов из автономной системы (сам маршрутизатор является точкой выхода). &lt;br /&gt;
* Имеет значение только локально, в пределах маршрутизатора. &lt;br /&gt;
* Не передается в обновлениях.&lt;br /&gt;
* Чем больше значение атрибута, тем более предпочтителен путь выхода.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Касательно всех атрибутов ==&lt;br /&gt;
Атрибуты, при выборе best, считаются лучшими с наименьшими значением.&lt;br /&gt;
Это правило касается всех атрибутов, кроме Local Preference&lt;br /&gt;
&lt;br /&gt;
== Механизмы управления входящим трафиком: ==&lt;br /&gt;
*AS path prepend&lt;br /&gt;
*Community (если поддерживает провайдер)&lt;br /&gt;
*MED (подключение к одной и той же AS)&lt;br /&gt;
*Анонс разных префиксов через разных ISP&lt;br /&gt;
&lt;br /&gt;
== Механизмы управления исходящим трафиком: ==&lt;br /&gt;
*Проприетарный атрибут Cisco weight (локально на маршрутизаторе)&lt;br /&gt;
*Атрибут Local Preference (локально в AS)&lt;br /&gt;
*Балансировка трафика&lt;br /&gt;
&lt;br /&gt;
== Выбор лучшего пути (BGP Active Route Selection) ==&lt;br /&gt;
&lt;br /&gt;
* Juniper&lt;br /&gt;
# Prefer highest local preference value&lt;br /&gt;
# Prefer shortest AS-path length&lt;br /&gt;
# Prefer lowest Origin value&lt;br /&gt;
# Prefer lowest MED value&lt;br /&gt;
# Prefer routes learned from an EBGP peer over an IBGP peer&lt;br /&gt;
# If the remaining routes were learned through IBGP, use the path with the lowest IGP cost to the IBGP peer.&lt;br /&gt;
# For EBGP received routes, prefer the current active route; otherwise, prefer routes from the peer with the lowest RID&lt;br /&gt;
#Prefer paths with the shortest cluster length&lt;br /&gt;
# Prefer routes from the peer with the lowest peer ID&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Multipath ==&lt;br /&gt;
&lt;br /&gt;
===Link Bandwidth Extended Community===&lt;br /&gt;
При включенном multipath можно задать желаемую балансировку между линками через extended community.&lt;br /&gt;
Это механизм описан в draft-ietf-idr-link-bandwidth-06, и не является стандартизированным, следовательно,&lt;br /&gt;
возможно, он не будет работать с некоторыми вендорами. В JunOS поддерживается.&lt;br /&gt;
&lt;br /&gt;
Пример использования:&lt;br /&gt;
&lt;br /&gt;
R1 и R2 соединены напрямую через ва сабинтерфейса, на каждом из которых висит своя /30 сеть&lt;br /&gt;
&lt;br /&gt;
 |     | ge-0/0/0.10 ----- ge-0/0/0.10 R2 |    |&lt;br /&gt;
 |  R1 |                                  | R2 |&lt;br /&gt;
 |     | ge-0/0/0.20 ----- ge-0/0/0.20 R2 |    |&lt;br /&gt;
&lt;br /&gt;
Конфиг R1:&lt;br /&gt;
 R1&amp;gt; show configuration protocols bgp &lt;br /&gt;
 group ebgp {&lt;br /&gt;
     multipath;&lt;br /&gt;
     neighbor 10.1.0.2 {&lt;br /&gt;
         description vsrx2;&lt;br /&gt;
         export from-direct;&lt;br /&gt;
         peer-as 2222;&lt;br /&gt;
     }&lt;br /&gt;
     neighbor 10.2.0.2 {&lt;br /&gt;
         description vsrx2;&lt;br /&gt;
         export from-direct;&lt;br /&gt;
         peer-as 2222;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Конфиг R2:&lt;br /&gt;
 R2&amp;gt; show configuration interfaces lo0   &lt;br /&gt;
 unit 0 {&lt;br /&gt;
     family inet {&lt;br /&gt;
         address 2.2.2.2/32;&lt;br /&gt;
     }&lt;br /&gt;
     family mpls;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; show configuration policy-options &lt;br /&gt;
 policy-statement bw20 {&lt;br /&gt;
     then {&lt;br /&gt;
         community add bw20;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 policy-statement bw80 {&lt;br /&gt;
     then {&lt;br /&gt;
         community add bw80;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 policy-statement from-direct {&lt;br /&gt;
     term redistribute-direct {&lt;br /&gt;
         from protocol direct;&lt;br /&gt;
         then accept;&lt;br /&gt;
     }&lt;br /&gt;
     term default {&lt;br /&gt;
         then reject;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 community bw20 members bandwidth:2222:2500000; // 2500000 байт в секунду — это 20% от 100Мегабит&lt;br /&gt;
 community bw80 members bandwidth:2222:10000000; // 10000000 байт в секунду — это 80% от 100Мегабит&lt;br /&gt;
 &lt;br /&gt;
 R2&amp;gt; show configuration protocols bgp &lt;br /&gt;
 group ebgp {&lt;br /&gt;
     neighbor 10.1.0.1 {&lt;br /&gt;
         description Klagenfurt;&lt;br /&gt;
         export [ bw20 from-direct ]; // На одно из  соседств навешивается community, отображающее, что линк загружен на 20%&lt;br /&gt;
         peer-as 1111;&lt;br /&gt;
     }&lt;br /&gt;
     neighbor 10.2.0.1 {&lt;br /&gt;
         description Klagenfurt;&lt;br /&gt;
         export [ bw80 from-direct ];// На второе соседство навешивается community, отображающее, что линк загружен на 80%&lt;br /&gt;
         peer-as 1111;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Что получилось:&lt;br /&gt;
&lt;br /&gt;
 R1&amp;gt; show route 2.2.2.2 extensive        &lt;br /&gt;
 &lt;br /&gt;
 inet.0: 11 destinations, 19 routes (11 active, 0 holddown, 0 hidden)&lt;br /&gt;
 2.2.2.2/32 (2 entries, 1 announced)&lt;br /&gt;
 TSI:&lt;br /&gt;
 KRT in-kernel 2.2.2.2/32 -&amp;gt; {10.2.0.2, 10.1.0.2}&lt;br /&gt;
        *BGP    Preference: 170/-101&lt;br /&gt;
                Next hop type: Router, Next hop index: 262145&lt;br /&gt;
                Address: 0x9404010&lt;br /&gt;
                Next-hop reference count: 8&lt;br /&gt;
                Source: 10.1.0.2&lt;br /&gt;
                '''Next hop: 10.2.0.2 via ge-0/0/0.20 balance 80%'''&lt;br /&gt;
                '''Next hop: 10.1.0.2 via ge-0/0/0.10 balance 20%, selected'''&lt;br /&gt;
                State: &amp;lt;Active Ext&amp;gt;&lt;br /&gt;
                Local AS:  1111 Peer AS:  2222&lt;br /&gt;
                Age: 1:20:49 &lt;br /&gt;
                Task: BGP_2222.10.1.0.2+179&lt;br /&gt;
                Announcement bits (1): 0-KRT &lt;br /&gt;
                AS path: 2222 I&lt;br /&gt;
                Communities: bandwidth:2222:2500000&lt;br /&gt;
                Accepted Multipath&lt;br /&gt;
                Localpref: 100&lt;br /&gt;
                Router ID: 2.2.2.2&lt;br /&gt;
         BGP    Preference: 170/-101&lt;br /&gt;
                Next hop type: Router&lt;br /&gt;
                Address: 0x934c520&lt;br /&gt;
                Next-hop reference count: 6&lt;br /&gt;
                Source: 10.2.0.2&lt;br /&gt;
                Next hop: 10.2.0.2 via ge-0/0/0.20, selected&lt;br /&gt;
                State: &amp;lt;NotBest Ext&amp;gt;&lt;br /&gt;
                Inactive reason: Not Best in its group - Update source&lt;br /&gt;
                Local AS:  1111 Peer AS:  2222&lt;br /&gt;
                Age: 1:18:58 &lt;br /&gt;
                Task: BGP_2222.10.2.0.2+55305&lt;br /&gt;
                AS path: 2222 I&lt;br /&gt;
                Communities: bandwidth:2222:10000000&lt;br /&gt;
                Accepted MultipathContrib&lt;br /&gt;
                Localpref: 100&lt;br /&gt;
                Router ID: 2.2.2.2&lt;/div&gt;</summary>
		<author><name>Владислав Павкин</name></author>
	</entry>
	<entry>
		<id>https://juniper-exam.ru/index.php?title=%D0%97%D0%B0%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0&amp;diff=94</id>
		<title>Заглавная страница</title>
		<link rel="alternate" type="text/html" href="https://juniper-exam.ru/index.php?title=%D0%97%D0%B0%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0&amp;diff=94"/>
		<updated>2016-10-21T15:11:34Z</updated>

		<summary type="html">&lt;p&gt;Владислав Павкин: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Сертификация Juniper=&lt;br /&gt;
==JNCIS-SP==&lt;br /&gt;
&lt;br /&gt;
===Книга 1 (Routing, tunneling)===&lt;br /&gt;
&lt;br /&gt;
====[[Глава 1-6. High Availability]]====&lt;br /&gt;
&lt;br /&gt;
===Книга 2 (Switching)===&lt;br /&gt;
&lt;br /&gt;
====[[Глава 2-4. Provider bridging]]====&lt;br /&gt;
&lt;br /&gt;
====[[Глава 2-7. ERP (Ethernet Ring Protection)]]====&lt;br /&gt;
&lt;br /&gt;
====!!!Эту главу основательно отредактировать[[Глава 2-7. LAG]]====&lt;br /&gt;
&lt;br /&gt;
===Книга 3 (MPLS)===&lt;br /&gt;
&lt;br /&gt;
====[[Глава 2. RSVP]]====&lt;br /&gt;
&lt;br /&gt;
====[[Глава 5. MPLS Features]]====&lt;br /&gt;
&lt;br /&gt;
====[[Глава 6. VPN]]====&lt;br /&gt;
&lt;br /&gt;
====[[Глава 8. L3VPN Configuration]]====&lt;br /&gt;
&lt;br /&gt;
====[[Глава 9. Полезности по траблшутингу L3VPN]]====&lt;br /&gt;
&lt;br /&gt;
====[[Глава 10. L3VPN Scaling and Internet Access]]====&lt;br /&gt;
&lt;br /&gt;
====[[Глава 11. L3VPN Advanced topics]]====&lt;br /&gt;
&lt;br /&gt;
====[[Глава 12. Multicast VPNs]]====&lt;br /&gt;
&lt;br /&gt;
====[[Главы 16-17. VPLS]]====&lt;br /&gt;
&lt;br /&gt;
==JNCIP-SP==&lt;br /&gt;
&lt;br /&gt;
===Advanced routing===&lt;br /&gt;
&lt;br /&gt;
====[[OSPF]]====&lt;br /&gt;
&lt;br /&gt;
====[[BGP]]====&lt;br /&gt;
&lt;br /&gt;
====[[IS-IS]]====&lt;br /&gt;
&lt;br /&gt;
===JCOS===&lt;br /&gt;
&lt;br /&gt;
====[[Глава 2. Qos]]====&lt;br /&gt;
&lt;br /&gt;
====[[Глава 3. Packet classification]]====&lt;br /&gt;
&lt;br /&gt;
====[[Глава 4. Policing]]====&lt;br /&gt;
&lt;br /&gt;
====[[Глава 5. Scheduling]]====&lt;br /&gt;
&lt;br /&gt;
====[[Глава 6. Hierarchical scheduling]]====&lt;br /&gt;
&lt;br /&gt;
====[[Глава 7. Rewrite rules]]====&lt;br /&gt;
&lt;br /&gt;
====[[Глава 8. CoS-based forwarding]]====&lt;br /&gt;
&lt;br /&gt;
===JMR===&lt;br /&gt;
&lt;br /&gt;
====[[Глава 2. Multicast]]====&lt;br /&gt;
&lt;br /&gt;
====[[Глава 3. Routing protocols]]====&lt;br /&gt;
&lt;br /&gt;
====[[Глава 4. MSDP]]====&lt;br /&gt;
&lt;br /&gt;
====[[Глава 5. SSM]]====&lt;br /&gt;
&lt;br /&gt;
====[[Глава 6. Multicast and Policy]]====&lt;br /&gt;
&lt;br /&gt;
====[[Глава 7. IPv6]]====&lt;/div&gt;</summary>
		<author><name>Владислав Павкин</name></author>
	</entry>
</feed>