Политики маршрутов для BGP сообществ
Понимание BGP сообществ, расширенных сообществ и больших сообществ как условия совпадения политики маршрутов
Сообщество BGP – это группа мест назначения, которые совместно имеют общее свойство. Информация сообщества включается в качестве атрибут пути сообщений BGP обновлений. Эта информация идентифицирует членов сообщества и позволяет выполнять действия в группе без необходимости подробной информации о каждом члене. Можно использовать атрибуты сообщества и расширенных сообществ для принятия решений о маршруте, таких как принятие, отклонение, предпочтение или перераспределение.
Можно назначить теги сообщества нестандартным маршрутам BGP конфигурацией (для статических, агрегированных или генерируемых маршрутов) или политики импортной маршрутации. Затем эти теги можно совмессировать при BGP экспорта маршрутов.
Значение сообщества - это 32-битное поле, разделенное на два основных раздела. Первые 16 бит значения закодируют НОМЕР AS сети, которая была инициатором сообщества, в то время как последние 16 битов несут уникальный номер, присвоенный AS. Эта система пытается гарантировать глобально уникальный набор значений сообщества для каждой AS в Интернете. Junos OS использует нотацию, as-number:community-value
где каждое значение является десятичной. As значения 0 и 65535 зарезервированы, как и все значения сообщества внутри этих номеров AS. Каждому сообществу или набору сообществ дается имя в [edit policy-options]
иерархии конфигурации. Имя сообщества однозначно идентифицирует его с устройством маршрутизации и служит методом классификации маршрутов. Например, маршрут со значением сообщества 64510:1111 может принадлежать именоваемой AS64510-routes
сообществу. Имя сообщества также используется в политике маршрутов как критерий совпадения или в качестве действия. Синтаксис команды для создания сообщества: параметры community name members [community-ids]
политик. Это одно или несколько значений community-ids
сообщества. Когда имени сообщества назначено более одного значения, устройство маршрутов интерпретирует это как логическое и значение сообщества. Другими словами, перед присвоением имени сообщества маршрут должен иметь все настроенные значения.
Атрибут обычного сообщества – 4 октета. Усовершенствования сети, такие как VPN, предъявляют требования к функциональности, которые могут быть удовлетворены таким атрибутом, как сообщество. Однако 4-октетное значение сообщества не обеспечивает достаточное расширение и гибкость для удовлетворения требований VPN. Это приводит к созданию расширенных сообществ. Расширенное сообщество имеет восьмиоктетное значение, которое также делится на два основных раздела. Первые 2 октета сообщества кодируют поле типа, в то время как последние 6 октетов несут уникальный набор данных в формате, определенном полем типа. Расширенные сообщества предоставляют больший диапазон для группизации или классификации сообществ.
Формат BGP атрибутов расширенных сообществ имеет три поля: type:administrator:assigned-number
. Устройство маршрутов ожидает, что вы будете использовать слова target
или представлять origin
поле типа. Поле администратора использует десятичной номер для AS или адреса IPv4, в то время как поле назначенного номера предполагает, что десятичной номер не больше, чем размер поля (65535 для 2 октетов или 4294967295 для 4 октетов).
При указании ID сообщества для стандартных и расширенных атрибутов сообщества можно использовать регулярные выражения в стиле UNIX. Исключением являются только политики импорта VPN (), которые не поддерживают регулярные выражения для vrf-import
атрибута extended communities.
Атрибуты BGP сообществ – это атрибут переменной длины, состоящий из набора одного или нескольких 4-byte-значений, разделенных на 16-битные значения. Наиболее важное слово интерпретируется как номер AS, а наименьшее значение - это локально определенное значение, назначенное оператором AS. Поскольку 4-byte ASNs были внедрены, 4-BGP и 6-byte BGP уже не могут поддерживать BGP сообществу. Операторы часто закодируют номер AS в локальной части BGP, что иногда означает, что формат сообщества – ASN:ASN. Для 4-byte ASN необходимо 8-bytes для его кодирования. Хотя BGP расширенное сообщество позволяет 4-byte AS закодироваться в качестве поля глобального администратора, в поле локального администратора доступно только 2-byte доступного пространства. Поэтому 6-byte расширенный атрибут сообщества также не подходит. Чтобы решить эту проблемы, Junos OS настроить дополнительные транзитивные атрибут пути — 12-BGP большое сообщество, которое предоставляет наиболее важное значение в 4-byte для кодирования автономной системы номером глобального администратора и оставшимися двумя 4-byte присвоенными номерами для кодирования локальных значений, определенных в RFC 8092. Можно настроить крупное BGP на уровне [edit policy-options community community-name members]
иерархии и на уровне [edit routing-options static route ip-address community]
иерархии. Формат BGP атрибутов большого сообщества имеет четыре поля: large
:global administrator:assigned number:assigned number
.
Длина атрибута больших BGP сообществ должна быть не нулем, кратным 12.
См. также
Примере: Настройка политики маршрутов для перераспределения BGP маршрутов с определенным тегом сообщества в IS-IS
В этом примере определяется политика, BGP маршрутов от сообщества, и помещает их в IS-IS с метрикой Edu
63.
Требования
Перед настройкой в этом примере не требуется специальная настройка после инициализации устройства.
Обзор
Рис. 1 показывает топологию, используемую в этом примере.

В данном примере устройство А, устройство B, Устройство C и устройство D находятся в автономной системе (AS) 1 и работают IS-IS. Все устройства AS 1, кроме устройства D, работают BGP (IBGP).
Устройство E находится в АС 2 и имеет внешнюю BGP (EBGP) одноранговую сессию с устройством C. Устройство E имеет два статических маршрута: 10.2.0.0/16 и 10.3.0.0/16. Эти маршруты помечаются атрибутом сообщества Edu 2:5 и объявляются через EBGP устройству C.
Устройство C принимает маршруты BGP, помеченные атрибутом сообщества Edu 2:5, перераспределяет маршруты в IS-IS и применяет к этим маршрутам метрику IS-IS, равной 63.
интерфейс командной строки быстрой конфигурации отображает конфигурацию всех устройств Рис. 1 в. В разделе #d243e62__d243e382 описаны действия устройств C и Устройства E.
Конфигурации
Процедуры
интерфейс командной строки быстрой конфигурации
Чтобы быстро настроить этот пример, скопировать следующие команды, ввести их в текстовый файл, удалить все разрывы строки, изменить все данные, необходимые для настройки сети, а затем скопировать и вкопировать команды в интерфейс командной строки на [edit]
иерархии.
Устройство A
set interfaces fe-1/2/0 unit 0 family inet address 10.0.0.5/30 set interfaces fe-1/2/0 unit 0 family iso set interfaces lo0 unit 0 family inet address 192.168.0.1/32 set interfaces lo0 unit 0 family iso address 49.0002.0192.0168.0001.00 set protocols bgp group int type internal set protocols bgp group int local-address 192.168.0.1 set protocols bgp group int neighbor 192.168.0.2 set protocols bgp group int neighbor 192.168.0.3 set protocols isis interface fe-1/2/0.0 level 1 disable set protocols isis interface lo0.0 set routing-options router-id 192.168.0.1 set routing-options autonomous-system 1
Устройство B
set interfaces fe-1/2/0 unit 0 family inet address 10.0.0.6/30 set interfaces fe-1/2/0 unit 0 family iso set interfaces fe-1/2/1 unit 0 family inet address 10.0.0.9/30 set interfaces fe-1/2/1 unit 0 family iso set interfaces lo0 unit 0 family inet address 192.168.0.2/32 set interfaces lo0 unit 0 family iso address 49.0002.0192.0168.0002.00 set protocols bgp group int type internal set protocols bgp group int local-address 192.168.0.2 set protocols bgp group int neighbor 192.168.0.1 set protocols bgp group int neighbor 192.168.0.3 set protocols isis interface fe-1/2/0.0 level 1 disable set protocols isis interface fe-1/2/1.0 level 1 disable set protocols isis interface lo0.0 set routing-options router-id 192.168.0.2 set routing-options autonomous-system 1
Устройство C
set interfaces fe-1/2/0 unit 0 family inet address 10.0.0.10/30 set interfaces fe-1/2/0 unit 0 family iso set interfaces fe-1/2/1 unit 0 family inet address 10.0.0.13/30 set interfaces fe-1/2/1 unit 0 family iso set interfaces fe-1/2/2 unit 0 family inet address 10.0.0.25/30 set interfaces fe-1/2/2 unit 0 family iso set interfaces lo0 unit 0 family inet address 192.168.0.3/32 set interfaces lo0 unit 0 family iso address 49.0002.0192.0168.0003.00 set protocols bgp group int type internal set protocols bgp group int local-address 192.168.0.3 set protocols bgp group int neighbor 192.168.0.1 set protocols bgp group int neighbor 192.168.0.2 set protocols bgp group external-peers type external set protocols bgp group external-peers export send-isis-and-direct set protocols bgp group external-peers peer-as 2 set protocols bgp group external-peers neighbor 10.0.0.26 set protocols isis export Edu-to-isis set protocols isis interface fe-1/2/0.0 level 1 disable set protocols isis interface fe-1/2/1.0 level 1 disable set protocols isis interface fe-1/2/2.0 level 1 disable set protocols isis interface fe-1/2/2.0 level 2 passive set protocols isis interface lo0.0 set policy-options policy-statement Edu-to-isis term 1 from protocol bgp set policy-options policy-statement Edu-to-isis term 1 from community Edu set policy-options policy-statement Edu-to-isis term 1 then metric 63 set policy-options policy-statement Edu-to-isis term 1 then accept set policy-options policy-statement send-isis-and-direct term 1 from protocol isis set policy-options policy-statement send-isis-and-direct term 1 from protocol direct set policy-options policy-statement send-isis-and-direct term 1 from route-filter 10.0.0.0/16 orlonger set policy-options policy-statement send-isis-and-direct term 1 from route-filter 192.168.0.0/16 orlonger set policy-options policy-statement send-isis-and-direct term 1 then accept set policy-options community Edu members 2:5 set routing-options router-id 192.168.0.3 set routing-options autonomous-system 1
Устройство D
set interfaces fe-1/2/0 unit 0 family inet address 10.0.0.14/30 set interfaces fe-1/2/0 unit 0 family iso set interfaces lo0 unit 0 family inet address 192.168.0.4/32 set interfaces lo0 unit 0 family iso address 49.0002.0192.0168.0004.00 set protocols isis interface fe-1/2/0.0 level 1 disable set protocols isis interface lo0.0 set routing-options router-id 192.168.0.4 set routing-options autonomous-system 1
Устройство E
set interfaces fe-1/2/0 unit 0 family inet address 10.0.0.26/30 set interfaces lo0 unit 7 family inet address 192.168.0.5/32 primary set interfaces lo0 unit 7 family inet address 10.2.0.1/32 set interfaces lo0 unit 7 family inet address 10.3.0.1/32 set protocols bgp group external-peers type external set protocols bgp group external-peers export statics set protocols bgp group external-peers peer-as 1 set protocols bgp group external-peers neighbor 10.0.0.25 set policy-options policy-statement statics from protocol static set policy-options policy-statement statics then community add Edu set policy-options policy-statement statics then accept set policy-options community Edu members 2:5 set routing-options static route 10.2.0.0/16 reject set routing-options static route 10.2.0.0/16 install set routing-options static route 10.3.0.0/16 reject set routing-options static route 10.3.0.0/16 install set routing-options router-id 192.168.0.5 set routing-options autonomous-system 2
Пошаговая процедура
В следующем примере необходимо провести различные уровни в иерархии конфигурации. Информацию о навигации по интерфейс командной строки см. в интерфейс командной строки редактора в режиме конфигурации в руководстве интерфейс командной строки пользователя.
Для настройки устройства E:
Настройте интерфейсы.
[edit interfaces] user@E# set fe-1/2/0 unit 0 family inet address 10.0.0.26/30 user@E# set lo0 unit 7 family inet address 192.168.0.5/32 primary user@E# set lo0 unit 7 family inet address 10.2.0.1/32 user@E# set lo0 unit 7 family inet address 10.3.0.1/32
Настройте
statics
политику, которая добавляет атрибутEdu
сообщества в статические маршруты.[edit policy-options] user@E# set policy-statement statics from protocol static user@E# set policy-statement statics then community add Edu user@E# set policy-statement statics then accept user@E# set community Edu members 2:5
Настройте EBGP и примените
statics
политику.[edit protocols bgp group external-peers] user@E# set type external user@E# set export statics user@E# set peer-as 1 user@E# set protocols bgp group external-peers neighbor 10.0.0.25
Настройте статические маршруты.
[edit routing-options static] user@E# set route 10.2.0.0/16 reject user@E# set route 10.2.0.0/16 install user@E# set route 10.3.0.0/16 reject user@E# set route 10.3.0.0/16 install
Настройте ID маршрутизатора и номер AS.
[edit routing-options] user@E# set router-id 192.168.0.5 user@E# set autonomous-system 2
Пошаговая процедура
В следующем примере необходимо провести различные уровни в иерархии конфигурации. Информацию о навигации по интерфейс командной строки см. в интерфейс командной строки редактора в режиме конфигурации в руководстве интерфейс командной строки пользователя.
Для настройки устройства C:
Настройте интерфейсы.
[edit interfaces] user@C# set fe-1/2/0 unit 0 family inet address 10.0.0.10/30 user@C# set fe-1/2/0 unit 0 family iso user@C# set fe-1/2/1 unit 0 family inet address 10.0.0.13/30 user@C# set fe-1/2/1 unit 0 family iso user@C# set fe-1/2/2 unit 0 family inet address 10.0.0.25/30 user@C# set fe-1/2/2 unit 0 family iso user@C# set lo0 unit 0 family inet address 192.168.0.3/32 user@C# set lo0 unit 0 family iso address 49.0002.0192.0168.0003.00
Настройка IBGP.
[edit protocols bgp group int] user@C# set type internal user@C# set local-address 192.168.0.3 user@C# set neighbor 192.168.0.1 user@C# set neighbor 192.168.0.2
Настройте политику Edu-to-isis, которая перераспределяет маршруты с BGP, помеченными Edu, и применяет метрику 63.
[edit policy-options] user@C# set policy-statement Edu-to-isis term 1 from protocol bgp user@C# set policy-statement Edu-to-isis term 1 from community Edu user@C# set policy-statement Edu-to-isis term 1 then metric 63 user@C# set policy-statement Edu-to-isis term 1 then accept user@C# set community Edu members 2:5
В IS-IS необходимо включить интерфейсы и применить политику Edu-to-isis.
[edit protocols isis] user@C# set export Edu-to-isis user@C# set interface fe-1/2/0.0 level 1 disable user@C# set interface fe-1/2/1.0 level 1 disable user@C# set interface fe-1/2/2.0 level 1 disable user@C# set interface fe-1/2/2.0 level 2 passive user@C# set interface lo0.0
Настройте политику send-isis-and-direct, которая перераспределяет маршруты устройству E через EBGP.
Без этой политики устройство E не будет иметь возможность подключаться к сетям в AS 1.
[edit policy-options policy-statement send-isis-and-direct term 1] user@C# set from protocol isis user@C# set from protocol direct user@C# set from route-filter 10.0.0.0/16 orlonger user@C# set from route-filter 192.168.0.0/16 orlonger user@C# set then accept
Настройте EBGP и примените политику send-isis-and-direct.
[edit protocols bgp group external-peers] user@C# set type external user@C# set export send-isis-and-direct user@C# set peer-as 2 user@C# set neighbor 10.0.0.26
Настройте ID маршрутизатора и номер автономной системы (AS).
[edit routing-options] user@C# set router-id 192.168.0.3 user@C# set autonomous-system 1
Результаты
В режиме конфигурации подтвердите конфигурацию путем ввода show interfaces
команд show protocols
и show policy-options
show routing-options
команд. Если в выходных данных не отображается указанная конфигурация, повторите инструкции, показанные в данном примере, чтобы исправить конфигурацию.
Устройство E
user@E# show interfaces
fe-1/2/0 {
unit 0 {
family inet {
address 10.0.0.26/30;
}
}
}
lo0 {
unit 0 {
family inet {
address 192.168.0.5/32 {
primary;
}
address 10.2.0.1/32;
address 10.3.0.1/32;
}
}
}
user@E# show protocols
bgp {
group external-peers {
type external;
export statics;
peer-as 1;
neighbor 10.0.0.25;
}
}
user@E# show policy-options
policy-statement statics {
from protocol static;
then {
community add Edu;
accept;
}
}
community Edu members 2:5;
user@E# show routing-options
static {
route 10.2.0.0/16 {
reject;
install;
}
route 10.3.0.0/16 {
reject;
install;
}
}
router-id 192.168.0.5;
autonomous-system 2;
Устройство C
user@C# show interfaces
fe-1/2/0 {
unit 0 {
family inet {
address 10.0.0.10/30;
}
family iso;
}
}
fe-1/2/1 {
unit 0 {
family inet {
address 10.0.0.13/30;
}
family iso;
}
}
fe-1/2/2 {
unit 0 {
family inet {
address 10.0.0.25/30;
}
family iso;
}
}
lo0 {
unit 0 {
family inet {
address 192.168.0.3/32;
}
family iso {
address 49.0002.0192.0168.0003.00;
}
}
}
user@C# show protocols
bgp {
group int {
type internal;
local-address 192.168.0.3;
neighbor 192.168.0.1;
neighbor 192.168.0.2;
}
group external-peers {
type external;
export send-isis-and-direct;
peer-as 2;
neighbor 10.0.0.26;
}
}
isis {
export Edu-to-isis;
interface fe-1/2/0.0 {
level 1 disable;
}
interface fe-1/2/1.0 {
level 1 disable;
}
interface fe-1/2/2.0 {
level 1 disable;
level 2 passive;
}
interface lo0.0;
}
user@C# show policy-options
policy-statement Edu-to-isis {
term 1 {
from {
protocol bgp;
community Edu;
}
then {
metric 63;
accept;
}
}
}
policy-statement send-isis-and-direct {
term 1 {
from {
protocol [ isis direct ];
route-filter 10.0.0.0/16 orlonger;
route-filter 192.168.0.0/16 orlonger;
}
then accept;
}
}
community Edu members 2:5;
user@C# show routing-options
router-id 192.168.0.3;
autonomous-system 1;
После настройки устройства войдите в commit
режим конфигурации.
Проверки
Подтвердим, что конфигурация работает правильно.
Проверка соседа IS-IS
Цель
Убедитесь, BGP маршруты от устройства E, IS-IS сети в АС 1.
Действий
В рабочем режиме введите show route protocol isis
команду.
user@D> show route protocol isis inet.0: 11 destinations, 11 routes (11 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 10.0.0.4/30 *[IS-IS/18] 22:30:53, metric 30 > to 10.0.0.13 via fe-1/2/0.0 10.0.0.8/30 *[IS-IS/18] 22:30:53, metric 20 > to 10.0.0.13 via fe-1/2/0.0 10.0.0.24/30 *[IS-IS/18] 03:31:21, metric 20 > to 10.0.0.13 via fe-1/2/0.0 10.2.0.0/16 *[IS-IS/165] 02:36:31, metric 73 > to 10.0.0.13 via fe-1/2/0.0 10.3.0.0/16 *[IS-IS/165] 02:36:31, metric 73 > to 10.0.0.13 via fe-1/2/0.0 192.168.0.1/32 *[IS-IS/18] 03:40:28, metric 30 > to 10.0.0.13 via fe-1/2/0.0 192.168.0.2/32 *[IS-IS/18] 22:30:53, metric 20 > to 10.0.0.13 via fe-1/2/0.0 192.168.0.3/32 *[IS-IS/18] 22:30:53, metric 10 > to 10.0.0.13 via fe-1/2/0.0 iso.0: 1 destinations, 1 routes (1 active, 0 holddown, 0 hidden)
Смысл
Как и ожидалось, маршруты 10.2.0.0/16 и 10.3.0.0/16 находятся в таблице маршрутов устройства D как IS-IS внешние маршруты с метрикой 73. Если устройство C не добавит 63 к метрике, устройство D будет иметь метрику 10 для этих маршрутов.
Примере: Настройка политики маршрутов, которая удаляет BGP сообщества
В этом примере показано, как создать политику, которая BGP маршруты, но удаляет BGP сообщества из маршрутов.
Требования
До настройки этого примера специальная настройка после инициализации устройства не требуется.
Обзор
В данном примере показаны два устройства маршрутки с внешним BGP (EBGP) соединением между ними. Устройство R2 использует BGP для отправки двух статических маршрутов устройству R1. На устройстве R1 политика импорта указывает, что BGP сообщества должны быть удалены из маршрутов.
По умолчанию, когда сообщества настраиваются на узлах EBGP, они отправляются и принимаются. Чтобы подавить принятие сообществ, полученных от соседа, можно удалить все сообщества или определенный набор сообществ. Если в результате политики пустой набор сообществ, атрибут сообщества не включается. Чтобы удалить все сообщества, сначала определите поддиансный набор сообществ (здесь именем сообщества wild
является):
[edit policy-options] community wild members "* : *";
Затем в утверждениях политики маршрутов укажите community delete
действие:
[edit policy-options] policy-statement policy-name { term term-name { then community delete wild; } }
Чтобы подавить конкретное сообщество из любой автономной системы (AS), определите сообщество как community wild members "*:community-value"
.
Конфигурации
интерфейс командной строки быстрой конфигурации
Чтобы быстро настроить этот пример, скопировать следующие команды, ввести их в текстовый файл, удалить все разрывы строки, изменить все данные, необходимые для настройки сети, а затем скопировать и вкопировать команды в интерфейс командной строки на [edit]
иерархии.
Устройство R1
set interfaces fe-1/1/0 unit 0 description to-R2 set interfaces fe-1/1/0 unit 0 family inet address 10.0.0.1/30 set interfaces lo0 unit 0 family inet address 192.168.0.1/32 set protocols bgp group external-peers type external set protocols bgp group external-peers peer-as 2 set protocols bgp group external-peers neighbor 10.0.0.2 import remove-communities set policy-options policy-statement remove-communities term 1 from protocol bgp set policy-options policy-statement remove-communities term 1 then community delete wild set policy-options policy-statement remove-communities term 1 then accept set policy-options policy-statement remove-communities term 2 then reject set policy-options community wild members *:* set routing-options router-id 192.168.0.1 set routing-options autonomous-system 1
Устройство R2
set interfaces fe-1/1/0 unit 0 description to-R1 set interfaces fe-1/1/0 unit 0 family inet address 10.0.0.2/30 set interfaces lo0 unit 0 family inet address 192.168.0.2/32 set protocols bgp group external-peers type external set protocols bgp group external-peers export statics set protocols bgp group external-peers peer-as 1 set protocols bgp group external-peers neighbor 10.0.0.1 set policy-options policy-statement statics from protocol static set policy-options policy-statement statics then community add 1 set policy-options policy-statement statics then accept set policy-options community 1 members 2:1 set policy-options community 1 members 2:2 set policy-options community 1 members 2:3 set policy-options community 1 members 2:4 set policy-options community 1 members 2:5 set policy-options community 1 members 2:6 set policy-options community 1 members 2:7 set policy-options community 1 members 2:8 set policy-options community 1 members 2:9 set policy-options community 1 members 2:10 set routing-options static route 10.2.0.0/16 reject set routing-options static route 10.2.0.0/16 install set routing-options static route 10.3.0.0/16 reject set routing-options static route 10.3.0.0/16 install set routing-options router-id 192.168.0.3 set routing-options autonomous-system 2
Процедуры
Пошаговая процедура
В следующем примере иерархия конфигурации требует перемещения по разным уровням. Для получения информации о навигации по интерфейс командной строки см. использование редактора интерфейс командной строки в режиме конфигурации в руководстве Junos OS интерфейс командной строки пользователя.
Настройка устройства R1:
Настройте интерфейсы.
[edit interfaces] user@R1# set fe-1/1/0 unit 0 description to-R2 user@R1# set fe-1/1/0 unit 0 family inet address 10.0.0.1/30 user@R1# set lo0 unit 0 family inet address 192.168.0.1/32
Настройте BGP.
Примените политику импорта к сеансу BGP пиринга с устройством R2.
[edit protocols bgp group external-peers] user@R1# set type external user@R1# set peer-as 2 user@R1# set neighbor 10.0.0.2 import remove-communities
Настройте политику маршрутов, которая удаляет сообщества.
[edit policy-options policy-statement remove-communities] user@R1# set term 1 from protocol bgp user@R1# set term 1 then community delete wild user@R1# set term 1 then accept user@R1# set term 2 then reject
Настройте номер автономной системы (AS) и ID маршрутизатора.
[edit routing-options ] user@R1# set router-id 192.168.0.1 user@R1# set autonomous-system 1
Пошаговая процедура
В следующем примере иерархия конфигурации требует перемещения по разным уровням. Для получения информации о навигации по интерфейс командной строки см. использование редактора интерфейс командной строки в режиме конфигурации в руководстве Junos OS интерфейс командной строки пользователя.
Настройка устройства R2:
Настройте интерфейсы.
[edit interfaces] user@R2# set fe-1/1/0 unit 0 description to-R1 user@R2# set fe-1/1/0 unit 0 family inet address 10.0.0.2/30 user@R2# set lo0 unit 0 family inet address 192.168.0.2/32
Настройте ID маршрутизатора и номер автономной системы (AS).
[edit routing-options] user@R2# set router-id 192.168.0.3 user@R2# set autonomous-system 2
Настройте BGP.
[edit protocols bgp group external-peers] user@R2# set type external user@R2# set peer-as 1 user@R2# set neighbor 10.0.0.1
Настройте несколько сообществ или настройте одно сообщество с несколькими участниками.
[edit policy-options community 1] user@R2# set members 2:1 user@R2# set members 2:2 user@R2# set members 2:3 user@R2# set members 2:4 user@R2# set members 2:5 user@R2# set members 2:6 user@R2# set members 2:7 user@R2# set members 2:8 user@R2# set members 2:9 user@R2# set members 2:10
Настройте статические маршруты.
[edit routing-options static] user@R2# set route 10.2.0.0/16 reject user@R2# set route 10.2.0.0/16 install user@R2# set route 10.3.0.0/16 reject user@R2# set route 10.3.0.0/16 install
Настройте политику маршрутов, которая объявляет статические маршруты BGP и добавляет BGP к маршрутам.
[edit policy-options policy-statement statics] user@R2# set from protocol static user@R2# set then community add 1 user@R2# set then accept
Примените политику экспорта.
[edit protocols bgp group external-peers] user@R2# set export statics
Результаты
В режиме конфигурации подтвердите конфигурацию путем ввода show interfaces
команд show protocols
и show policy-options
show routing-options
команд. Если в выходных данных не отображается указанная конфигурация, повторите инструкции, показанные в данном примере, чтобы исправить конфигурацию.
Устройство R1
user@R1# show interfaces fe-1/1/0 { unit 0{ description to-R2; family inet { address 10.0.0.1/30; } } } lo0 { unit 0 { family inet { address 192.168.0.1/32; } } }
user@R1# show protocols bgp { group external-peers { type external; peer-as 2; neighbor 10.0.0.2 { import remove-communities; } } }
user@R1# show policy-options policy-statement remove-communities { term 1 { from protocol bgp; then { community delete wild; accept; } } term 2 { then reject; } } community wild members *:*;
user@R1# show routing-options router-id 192.168.0.1; autonomous-system 1;
Устройство R2
user@R2# show interfaces fe-1/1/0 { unit 0 { description to-R1; family inet { address 10.0.0.2/30; } } } lo0 { unit 0 { family inet { address 192.168.0.2/32; } } }
user@R2# show protocols bgp { group external-peers { type external; export statics; peer-as 1; neighbor 10.0.0.1; } }
user@R2# show policy-options policy-statement statics { from protocol static; then { community add 1; accept; } } community 1 members [ 2:1 2:2 2:3 2:4 2:5 2:6 2:7 2:8 2:9 2:10 ];
user@R2# show routing-options static { route 10.2.0.0/16 { reject; install; } route 10.3.0.0/16 { reject; install; } } router-id 192.168.0.3; autonomous-system 2;
После настройки устройств перейдите из commit
режима конфигурирований.
Проверки
Подтвердим, что конфигурация работает правильно.
Проверка маршрутов BGP маршрутов
Цель
Убедитесь, что таблица маршрутов устройства М1 не содержит BGP сообществ.
Действий
На устройстве R1 запустите
show route protocols bgp extensive
команду.user@R1> show route protocols bgp extensive inet.0: 5 destinations, 5 routes (5 active, 0 holddown, 0 hidden) 10.2.0.0/16 (1 entry, 1 announced) TSI: KRT in-kernel 10.2.0.0/16 -> {10.0.0.2} *BGP Preference: 170/-101 Next hop type: Router, Next hop index: 671 Address: 0x9458270 Next-hop reference count: 4 Source: 10.0.0.2 Next hop: 10.0.0.2 via lt-1/1/0.5, selected Session Id: 0x100001 State: <Active Ext> Local AS: 1 Peer AS: 2 Age: 20:39:01 Validation State: unverified Task: BGP_2.10.0.0.2+179 Announcement bits (1): 0-KRT AS path: 2 I Accepted Localpref: 100 Router ID: 192.168.0.3 10.3.0.0/16 (1 entry, 1 announced) TSI: KRT in-kernel 10.3.0.0/16 -> {10.0.0.2} *BGP Preference: 170/-101 Next hop type: Router, Next hop index: 671 Address: 0x9458270 Next-hop reference count: 4 Source: 10.0.0.2 Next hop: 10.0.0.2 via lt-1/1/0.5, selected Session Id: 0x100001 State: <Active Ext> Local AS: 1 Peer AS: 2 Age: 20:39:01 Validation State: unverified Task: BGP_2.10.0.0.2+179 Announcement bits (1): 0-KRT AS path: 2 I Accepted Localpref: 100 Router ID: 192.168.0.3
На устройстве М1 деактивировать
community remove
конфигурацию в политике импорта.[edit policy-options policy-statement remove-communities term 1] user@R1# deactivate then community delete wild user@R1# commit
На устройстве R1 запустите
show route protocols bgp extensive
команду для просмотра объявленных сообществ.user@R1> show route protocols bgp extensive inet.0: 5 destinations, 5 routes (5 active, 0 holddown, 0 hidden) 10.2.0.0/16 (1 entry, 1 announced) TSI: KRT in-kernel 10.2.0.0/16 -> {10.0.0.2} *BGP Preference: 170/-101 Next hop type: Router, Next hop index: 671 Address: 0x9458270 Next-hop reference count: 4 Source: 10.0.0.2 Next hop: 10.0.0.2 via lt-1/1/0.5, selected Session Id: 0x100001 State: <Active Ext> Local AS: 1 Peer AS: 2 Age: 20:40:53 Validation State: unverified Task: BGP_2.10.0.0.2+179 Announcement bits (1): 0-KRT AS path: 2 I Communities: 2:1 2:2 2:3 2:4 2:5 2:6 2:7 2:8 2:9 2:10 Accepted Localpref: 100 Router ID: 192.168.0.3 10.3.0.0/16 (1 entry, 1 announced) TSI: KRT in-kernel 10.3.0.0/16 -> {10.0.0.2} *BGP Preference: 170/-101 Next hop type: Router, Next hop index: 671 Address: 0x9458270 Next-hop reference count: 4 Source: 10.0.0.2 Next hop: 10.0.0.2 via lt-1/1/0.5, selected Session Id: 0x100001 State: <Active Ext> Local AS: 1 Peer AS: 2 Age: 20:40:53 Validation State: unverified Task: BGP_2.10.0.0.2+179 Announcement bits (1): 0-KRT AS path: 2 I Communities: 2:1 2:2 2:3 2:4 2:5 2:6 2:7 2:8 2:9 2:10 Accepted Localpref: 100 Router ID: 192.168.0.3
Смысл
Выходные данные показывают, что в таблице маршрутов устройства R1 сообщества подавляются в BGP маршрутов, отправленных с устройства R2. Когда параметры в политике импорта устройства community remove
R1 деактивированы, сообщества больше не подавляются.
Примере: Настройка политики маршрутов на основе числа BGP сообществ
В данном примере показано, как создать политику, которая BGP маршрутов на основе числа BGP сообществ.
Требования
До настройки этого примера специальная настройка после инициализации устройства не требуется.
Обзор
В данном примере показаны два устройства маршрутки с внешним BGP (EBGP) соединением между ними. Устройство R2 использует BGP для отправки двух статических маршрутов устройству R1. На устройстве М1 политика импорта указывает, что полученные маршруты BGP могут содержать до пяти сообществ, которые считаются совпадать. Например, если маршрут содержит три сообщества, он считается совпадать и принимается. Если маршрут содержит шесть или более сообществ, он считается не несоответствием и отклоняется.
Важно помнить, что политика по умолчанию для EBGP – принять все маршруты. Чтобы гарантировать отклонение нестандартных маршрутов, необходимо включить действие в конце then reject
определения политики.
Конфигурации
интерфейс командной строки быстрой конфигурации
Чтобы быстро настроить этот пример, скопировать следующие команды, ввести их в текстовый файл, удалить все разрывы строки, изменить все данные, необходимые для настройки сети, а затем скопировать и вкопировать команды в интерфейс командной строки на [edit]
иерархии.
Устройство R1
set interfaces fe-1/1/0 unit 0 description to-R2 set interfaces fe-1/1/0 unit 0 family inet address 10.0.0.1/30 set interfaces lo0 unit 0 family inet address 192.168.0.1/32 set protocols bgp group external-peers type external set protocols bgp group external-peers peer-as 2 set protocols bgp group external-peers neighbor 10.0.0.2 import import-communities set policy-options policy-statement import-communities term 1 from protocol bgp set policy-options policy-statement import-communities term 1 from community-count 5 orlower set policy-options policy-statement import-communities term 1 then accept set policy-options policy-statement import-communities term 2 then reject set routing-options router-id 192.168.0.1 set routing-options autonomous-system 1
Устройство R2
set interfaces fe-1/1/0 unit 0 description to-R1 set interfaces fe-1/1/0 unit 0 family inet address 10.0.0.2/30 set interfaces lo0 unit 0 family inet address 192.168.0.2/32 set protocols bgp group external-peers type external set protocols bgp group external-peers export statics set protocols bgp group external-peers peer-as 1 set protocols bgp group external-peers neighbor 10.0.0.1 set policy-options policy-statement statics from protocol static set policy-options policy-statement statics then community add 1 set policy-options policy-statement statics then accept set policy-options community 1 members 2:1 set policy-options community 1 members 2:2 set policy-options community 1 members 2:3 set policy-options community 1 members 2:4 set policy-options community 1 members 2:5 set policy-options community 1 members 2:6 set policy-options community 1 members 2:7 set policy-options community 1 members 2:8 set policy-options community 1 members 2:9 set policy-options community 1 members 2:10 set routing-options static route 10.2.0.0/16 reject set routing-options static route 10.2.0.0/16 install set routing-options static route 10.3.0.0/16 reject set routing-options static route 10.3.0.0/16 install set routing-options router-id 192.168.0.3 set routing-options autonomous-system 2
Процедуры
Пошаговая процедура
В следующем примере иерархия конфигурации требует перемещения по разным уровням. Для получения информации о навигации по интерфейс командной строки см. использование редактора интерфейс командной строки в режиме конфигурации в руководстве Junos OS интерфейс командной строки пользователя.
Настройка устройства R1:
Настройте интерфейсы.
[edit interfaces] user@R1# set fe-1/1/0 unit 0 description to-R2 user@R1# set fe-1/1/0 unit 0 family inet address 10.0.0.1/30 user@R1# set lo0 unit 0 family inet address 192.168.0.1/32
Настройте BGP.
Примените политику импорта к сеансу BGP пиринга с устройством R2.
[edit protocols bgp group external-peers] user@R1# set type external user@R1# set peer-as 2 user@R1# set neighbor 10.0.0.2 import import-communities
Настройте политику маршрутов, которая отправляет прямые маршруты.
[edit policy-options policy-statement import-communities] user@R1# set term 1 from protocol bgp user@R1# set term 1 from community-count 5 orlower user@R1# set term 1 then accept user@R1# set term 2 then reject
Настройте номер автономной системы (AS) и ID маршрутизатора.
[edit routing-options ] user@R1# set router-id 192.168.0.1 user@R1# set autonomous-system 1
Пошаговая процедура
В следующем примере иерархия конфигурации требует перемещения по разным уровням. Для получения информации о навигации по интерфейс командной строки см. использование редактора интерфейс командной строки в режиме конфигурации в руководстве Junos OS интерфейс командной строки пользователя.
Настройка устройства R2:
Настройте интерфейсы.
[edit interfaces] user@R2# set fe-1/1/0 unit 0 description to-R1 user@R2# set fe-1/1/0 unit 0 family inet address 10.0.0.2/30 user@R2# set lo0 unit 0 family inet address 192.168.0.2/32
Настройте ID маршрутизатора и номер автономной системы (AS).
[edit routing-options] user@R2# set router-id 192.168.0.3 user@R2# set autonomous-system 2
Настройте BGP.
[edit protocols bgp group external-peers] user@R2# set type external user@R2# set peer-as 1 user@R2# set neighbor 10.0.0.1
Настройте несколько сообществ или настройте одно сообщество с несколькими участниками.
[edit policy-options community 1] user@R2# set members 2:1 user@R2# set members 2:2 user@R2# set members 2:3 user@R2# set members 2:4 user@R2# set members 2:5 user@R2# set members 2:6 user@R2# set members 2:7 user@R2# set members 2:8 user@R2# set members 2:9 user@R2# set members 2:10
Настройте статические маршруты.
[edit routing-options static] user@R2# set route 10.2.0.0/16 reject user@R2# set route 10.2.0.0/16 install user@R2# set route 10.3.0.0/16 reject user@R2# set route 10.3.0.0/16 install
Настройте политику маршрутов, которая объявляет статические маршруты BGP и добавляет BGP к маршрутам.
[edit policy-options policy-statement statics] user@R2# set from protocol static user@R2# set then community add 1 user@R2# set then accept
Примените политику экспорта.
[edit protocols bgp group external-peers] user@R2# set export statics
Результаты
В режиме конфигурации подтвердите конфигурацию путем ввода show interfaces
команд show protocols
и show policy-options
show routing-options
команд. Если в выходных данных не отображается указанная конфигурация, повторите инструкции, показанные в данном примере, чтобы исправить конфигурацию.
Устройство R1
user@R1# show interfaces fe-1/1/0 { unit 0{ description to-R2; family inet { address 10.0.0.1/30; } } } lo0 { unit 0 { family inet { address 192.168.0.1/32; } } } }
user@R1# show protocols bgp { group external-peers { type external; peer-as 2; neighbor 10.0.0.2 { import import-communities; } } }
user@R1# show policy-options policy-statement import-communities { term 1 { from { protocol bgp; community-count 5 orlower; } then accept; } term 2 { then reject; } }
user@R1# show routing-options router-id 192.168.0.1; autonomous-system 1;
Устройство R2
user@R2# show interfaces fe-1/1/0 { unit 0 { description to-R1; family inet { address 10.0.0.2/30; } } } lo0 { unit 0 { family inet { address 192.168.0.2/32; } } }
user@R2# show protocols bgp { group external-peers { type external; export statics; peer-as 1; neighbor 10.0.0.1; } }
user@R2# show policy-options policy-statement statics { from protocol static; then { community add 1; accept; } } community 1 members [ 2:1 2:2 2:3 2:4 2:5 2:6 2:7 2:8 2:9 2:10 ];
user@R2# show routing-options static { route 10.2.0.0/16 { reject; install; } route 10.3.0.0/16 { reject; install; } } router-id 192.168.0.3; autonomous-system 2;
После настройки устройств перейдите из commit
режима конфигурирований.
Проверки
Подтвердим, что конфигурация работает правильно.
Проверка маршрутов BGP маршрутов
Цель
Убедитесь, что таблица маршрутов устройства М1 содержит ожидаемые BGP маршруты.
Действий
На устройстве R1 запустите
show route protocols bgp
команду.user@R1> show route protocols bgp inet.0: 5 destinations, 5 routes (3 active, 0 holddown, 2 hidden)
На устройстве R1 измените
community-count
конфигурацию в политике импорта.[edit policy-options policy-statement import-communities term 1] user@R1# set from community-count 5 orhigher user@R1# commit
На устройстве R1 запустите
show route protocols bgp
команду.user@R1> show route protocols bgp inet.0: 5 destinations, 5 routes (5 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 10.2.0.0/16 *[BGP/170] 18:29:53, localpref 100 AS path: 2 I, validation-state: unverified > to 10.0.0.2 via fe-1/1/0.0 10.3.0.0/16 *[BGP/170] 18:29:53, localpref 100 AS path: 2 I, validation-state: unverified > to 10.0.0.2 via fe-1/1/0.0
На устройстве R1 запустите
show route protocols bgp extensive
команду для просмотра объявленных сообществ.user@R1> show route protocols bgp extensive inet.0: 5 destinations, 5 routes (5 active, 0 holddown, 0 hidden) 10.2.0.0/16 (1 entry, 1 announced) TSI: KRT in-kernel 10.2.0.0/16 -> {10.0.0.2} *BGP Preference: 170/-101 Next hop type: Router, Next hop index: 671 Address: 0x9458270 Next-hop reference count: 4 Source: 10.0.0.2 Next hop: 10.0.0.2 via fe-1/1/0.0, selected Session Id: 0x100001 State: <Active Ext> Local AS: 1 Peer AS: 2 Age: 18:56:10 Validation State: unverified Task: BGP_2.10.0.0.2+179 Announcement bits (1): 0-KRT AS path: 2 I Communities: 2:1 2:2 2:3 2:4 2:5 2:6 2:7 2:8 2:9 2:10 Accepted Localpref: 100 Router ID: 192.168.0.3 10.3.0.0/16 (1 entry, 1 announced) TSI: KRT in-kernel 10.3.0.0/16 -> {10.0.0.2} *BGP Preference: 170/-101 Next hop type: Router, Next hop index: 671 Address: 0x9458270 Next-hop reference count: 4 Source: 10.0.0.2 Next hop: 10.0.0.2 via fe-1/1/0.0, selected Session Id: 0x100001 State: <Active Ext> Local AS: 1 Peer AS: 2 Age: 18:56:10 Validation State: unverified Task: BGP_2.10.0.0.2+179 Announcement bits (1): 0-KRT AS path: 2 I Communities: 2:1 2:2 2:3 2:4 2:5 2:6 2:7 2:8 2:9 2:10 Accepted Localpref: 100 Router ID: 192.168.0.3
Смысл
Выходные данные показывают, что в таблице маршрутов устройства R1 BGP маршруты, отправленные с устройства R2, являются скрытыми. Если настройка политики импорта устройства R1 изменена, маршруты BGP уже community-count
не являются скрытыми.