...
| Информация | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Для VPNv4 маршрутов выбор лучшего маршрута происходит следующим образом: Сначала выбор лучшего маршрута происходит в рамках своего RD, затем в рамках VRF, куда он попадет в соответствии со своим RT.
|
Прежде всего проверяется доступность next-hop-a у маршрута. Next-hop считается доступным, если до него можно определить connected-маршрут.
...
- Если R2 содержит в BGP RIB маршрут 192.0.2.255/32, то R2 анонсирует в сторону R3 маршрут 198.51.100.0/24 (пример на рисунке ниже);
- Если R2 не содержит в BGP RIB маршрут 192.0.2.255/32, то анонсирование маршрута 198.51.100.0/24 соседу R3 не происходит.
| draw.io Diagram | ||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
| Блок кода |
|---|
route-map CONDITION
rule 1
match ip address 192.0.2.255/32
exit
exit
route-map ADVERTISE
rule 1
match ip address 198.51.100.0/24
exit
exit
router bgp 65540
neighbor R3
description "To R3"
address-family ipv4 unicast
advertise-map ADVERTISE exist-map CONDITION
enable
exit
|
...
- Если R2 содержит в BGP RIB маршрут 192.0.2.255/32, то анонсирование маршрута 198.51.100.0/24 соседу R3 не происходит;
- Если R2 не содержит в BGP RIB маршрут 192.0.2.255/32, то R2 анонсирует в сторону R3 маршрут 198.51.100.0/24 (пример на рисунке ниже).
| draw.io Diagram | ||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
| Блок кода |
|---|
route-map CONDITION
rule 1
match ip address 192.0.2.255/32
exit
exit
route-map ADVERTISE
rule 1
match ip address 198.51.100.0/24
exit
exit
router bgp 65540
neighbor R3
description "To R3"
address-family ipv4 unicast
advertise-map ADVERTISE not exist-map CONDITION
enable
exit
|
...
| Шаг | Описание | Команда | Ключ |
|---|---|---|---|
| 1 | Настроить протокол BGP (см. раздел Управление маршрутизацией#Настройка Настройка BGP). | ||
| 2 | Cоздать advertise-map, описав в нем список подсетей для дальнейшего анонсирования. | esr(config)# route-map <ADVERTISE> | <ADVERTISE> – имя конфигурируемых правил маршрутизации, задаётся строкой до 31 символа. |
| 3 | Создать condition-map, описав в нем список подсетей по которым будет осуществляться проверка. | esr(config)# route-map <CONDITION> | <CONDITION> – имя конфигурируемых правил маршрутизации, задаётся строкой до 31 символа. |
| 4 | В контексте настройки address-family заданного BGP соседа указать условие и созданные ранее маршрутные карты. | esr(config-bgp-neighbor-af)# advertise-map <ADVERTISE> {EXIST-MAP | NOT-EXIST-MAP} <CONDITION> | <ADVERTISE> – имя конфигурируемых правил маршрутизации, задаётся строкой до 31 символа. <CONDITION> – имя конфигурируемых правил маршрутизации, задаётся строкой до 31 символа. <EXIST-MAP> – условие проверки: если маршруты, описанные в condition-map, присутствуют в BGP RIB, то происходит анонсирование маршрутов, описанных в advertise-map. <NOT-EXIST-MAP> – условие проверки: если маршруты, описанные в condition-map, отсутствуют в BGP RIB, то происходит анонсирование маршрутов, описанных в advertise-map. |
...
Необходимо в случае присутствия маршрута 10.1.1.1/32 в BGP RIB анонсировать маршрут 198.51.100.0/24 провайдеру ISP «Zero», если маршрут 10.1.1.1/32 отсутствует в BGP RIB – анонсировать 198.51.100.0/24 провайдеру ISP «One».
| draw.io Diagram | ||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Решение:
Сконфигурируем необходимые сетевые интерфейсы на каждом устройстве в сети:
...
| Шаг | Описание | Команда | Ключи |
|---|---|---|---|
| 1 | Настроить протокол BGP (см. раздел Управление маршрутизацией#Настройка Настройка BGP). | ||
| 2 | Включить поддержку протокола BFD в контексте настройки пира или пир-группы | esr(config-bgp-neighbor)# fall-over bfd | |
...
| Шаг | Описание | Команда | Ключи |
|---|---|---|---|
| 1 | Настроить протокол BGP (см. раздел Управление маршрутизацией#Настройка Настройка BGP). | ||
| 2 | Описать в маршрутной карте подсеть, наличие которой будет отслеживаться в таблице маршрутизации (см. раздел Настройка Route-map). | ||
| 3 | Активировать функционал, привязав маршрутную карту в соответствующему пиру или пир-группе. | esr(config-bgp-neighbor)# fall-over route-map <NAME> | <NAME> – имя маршрутной карты, задается строкой до 31 символа. |
...
Задача:
Настроить механизм Fast Peer Deactivation Peer Deactivation между iBGP пирами R1 и R2.
| draw.io Diagram | ||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Решение:
Предварительно настроим связность между маршрутизаторами в схеме:
...
Route-map – это механизм, позволяющий применять условия (условные фильтры) и действия к маршрутам и ,соответственно, к трафику. Он используется для фильтрации, изменения и управления атрибутами протокола BGP, обеспечивая расширенные возможности по сравнению с Prefix-list. Подробная логика работы описана в разделе Управление маршрутизацией#Политика Политика фильтрации маршрутной информации.
...
| Название | Семейство адресов (AF) | Манипуляции | Поддержка регулярных выражений в классификации | |
|---|---|---|---|---|
| Тип действия | Поддержка трекинга | |||
| As-path | IPv4, IPv6, VPNv4, L2VPN, Flowspec | Prepend, Replace | | |
| Community | Pv4, IPv6, VPNv4, L2VPN, Flowspec | no-advertise, no-export, добавление в атрибута (add), создание списка (set) | ||
| Extended community | VPNv4, L2VPN | Добавление в список (add), создание списка (set) | ||
| Local preference | IPv4, IPv6, VPNv4, L2VPN, Flowspec | Установка атрибута, увеличение, уменьшение | ||
| MED (metric) | IPv4, IPv6, VPNv4, L2VPN, Flowspec | Установка атрибута, увеличение, уменьшение | ||
| Next-hop | IPv4, IPv6, VPNv4, L2VPN, Flowspec | Установка атрибута | ||
| Origin | IPv4, IPv6, VPNv4, L2VPN, Flowspec | Установка атрибута | ||
| Weight | IPv4, IPv6, VPNv4, L2VPN, Flowspec | Установка атрибута, увеличение, уменьшение | ||
Алгоритм настройки
| Шаг | Описание | Команда | Ключи |
|---|---|---|---|
| 1 | Создать маршрутную карту для фильтрации и модификации IP-маршрутов. | esr(config)# route-map <NAME> | <NAME> – имя маршрутной карты, задается строкой до 31 символа. |
| 2 | Создать правило маршрутной карты. | esr(config-route-map)# rule <ORDER> | <ORDER> – номер правила, принимает значения [1 .. 10000]. |
| 3 | Указать действие, которое должно быть применено для маршрутной информации. | esr(config-route-map-rule)# action <ACT> | <ACT> – назначаемое действие:
|
| 4 | Задать значение атрибута BGP AS-Path в маршруте, для которого должно срабатывать правило (необязательно). | esr(config-route-map-rule)# match as-path { [begin | contain | end ] <AS-PATH> | empty | regex <REGEX> } | <AS-PATH> – список номеров автономных систем, задается в виде AS,AS,AS, принимает значения [1..4294967295]. Опциональные параметры: <REGEX> – регулярное выражение, задаётся по стандарту POSIX-Extended Regular Expressions.
|
| 5 | Задать значение атрибута BGP Community, для которого должно срабатывать правило (необязательно). | esr(config-route-map-rule)# match community { <COMMUNITY-LIST> | regex <REGEX> } | <COMMUNITY-LIST> – список community, задается в виде AS:N,AS:N, принимает значения [1..4294967295]. Можно указать до 64 community.
<REGEX> – регулярное выражение, задаётся по стандарту POSIX-Extended Regular Expressions. |
| 6 | Задать значение атрибута BGP Extended Community, для которого должно срабатывать правило (необязательно). | esr(config-route-map-rule)# match extcommunity { <EXTCOMMUNITY-LIST> | regex <REGEX> } | <EXTCOMMUNITY-LIST> – список extcommunity, задается в виде KIND:AS:N, KIND:AS:N, где KIND – тип extcommunity:
N – номер extcommunity, принимает значения [1..65535].
<REGEX> – регулярное выражение, задаётся по стандарту POSIX-Extended Regular Expressions. |
| 7 | Задать профиль IP-адресов, содержащий значения подсетей назначения в маршруте (необязательно). | esr(config-route-map-rule)# match ip address object-group <OBJ-GROUP-NETWORK-NAME> | <OBJ-GROUP-NETWORK-NAME> – имя профиля IP-адресов, содержащего префиксы подсетей назначения, задаётся строкой до 31 символа. |
esr(config-route-map-rule)# match ipv6 address object-group <OBJ-GROUP-NETWORK-NAME> | |||
| 8 | Задать профиль IP-адресов, содержащий значения атрибута BGP Next-Hop в маршруте для которого должно срабатывать правило (необязательно). | esr(config-route-map-rule)# match ip bgp next-hop object-group <OBJ-GROUP-NETWORK-NAME> | <OBJ-GROUP-NETWORK-NAME> – имя профиля IP-адресов, содержащего префиксы подсетей назначения, задается строкой до 31 символа. |
esr(config-route-map-rule)# match ipv6 bgp next-hop object-group <OBJ-GROUP-NETWORK-NAME> | |||
| 9 | Задать профиль, содержащий IP-адреса маршрутизатора, анонсировавшего маршрут, для которого должно срабатывать правило (необязательно).
| esr(config-route-map-rule)# match ip route-source object-group <OBJ-GROUP-NETWORK-NAME> | <OBJ-GROUP-NETWORK-NAME> – имя профиля IP-адресов, содержащего префиксы подсетей назначения, задается строкой до 31 символа. |
esr(config-route-map-rule)# match ipv6 route-source object-group <OBJ-GROUP-NETWORK-NAME> | |||
| 10 | Задать ACL-группу, для которой должно срабатывать правило (необязательно). | esr(config-route-map-rule)# match access-group <NAME> | <NAME> – имя списка контроля доступа, задается строкой до 31 символа. |
| 11 | Задать значение атрибута BGP MED в маршруте для которого должно срабатывать правило (необязательно). | esr(config-route-map-rule)# match metric bgp <METRIC> | <METRIC> – значение атрибута BGPMED, принимает значения [0..4294967295]. |
| 12 | Задать значение атрибута BGP AS-Path, которое будет добавляться в начало списка AS-Path (необязательно). | esr(config-route-map-rule)# action set as-path | <AS-PATH> – список номеров автономных систем, который будет добавлен к текущему значению в маршруте. Задаётся в виде AS,AS,AS, принимает значения [1..4294967295]. <TCACK-ID> – идентификатор vrrp-tracking, при котором будет исполняться указанное действие. Изменяется в диапазоне [1..60]. |
| 13 | Заменять номер или последовательность номеров AS в атрибуте BGP AS-Path на номер локальной AS (необязательно). | esr(config-route-map-rule)# action set as-path | <AS-PATH> – список номеров автономных систем, который будет заменён на локальный номер AS. Задаётся в виде AS,AS,AS, принимает значения [1..4294967295].
|
| 14 | Задать значение атрибута BGP Community, которое будет установлено в маршруте (необязательно). | esr(config-route-map-rule)# action set community {COMMUNITY-LIST> | no-advertise | no-export } | <COMMUNITY-LIST> – список community, задается в виде AS:N,AS:N, где каждая часть принимает значения [1..65535];
|
| 15 | Задать значение атрибута BGP ExtCommunity, которое будет установлено в маршруте (необязательно). | esr(config-route-map-rule)# action set extcommunity <EXTCOMMUNITY-LIST> | <EXTCOMMUNITY-LIST> – список extcommunity, задается в виде KIND:AS:N, KIND:AS:N, где KIND – тип extcommunity:
N – номер extcommunity, принимает значения [1..65535]. |
| 16 | Задать атрибут BGP Next-Hop, который будет установлен в маршруте при анонсировании (необязательно). | esr(config-route-map-rule)# action set ip bgp-next-hop <ADDR> | <ADDR> – IP-адрес шлюза, задается в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255]. |
esr(config-route-map-rule)# action set ipv6 bgp-next-hop <IPV6-ADDR> | <IPV6-ADDR> – IPv6-адрес шлюза, задается в виде X:X:X:X::X, где каждая часть принимает значения в шестнадцатеричном формате [0..FFFF]. | ||
| 17 | Задать значение атрибута BGP Local Preference, который будет установлен в маршруте (необязательно). | esr(config-route-map-rule)# action set local-preference <PREFERENCE> | <PREFERENCE> – значение атрибута BGP Local Preference, принимает значения [0..255]. |
| 18 | Задать значение атрибута BGP Origin, которое будет установлено в маршруте (необязательно). | esr(config-route-map-rule)# action set origin <ORIGIN> | <ORIGIN> – значение атрибута BGP Origin:
|
| 19 | Задать значение BGP MED, которое будет установлено в маршруте | esr(config-route-map-rule)# action set metric bgp <METRIC> | <METRIC> – значение атрибута BGP MED, принимает значения [0..4294967295]. |
| 20 | Добавить фильтрацию и модификацию маршрутов во входящих или исходящих направлениях. | esr(config-bgp-neighbor)# route-map <NAME><DIRECTION> | <NAME> – имя сконфигурированной маршрутной карты; <DIRECTION> – направление:
|
esr(config-ipv6-bgp-neighbor)# route-map <NAME><DIRECTION> |
...
| Шаг | Описание | Команда | Ключи |
|---|---|---|---|
| 1 | Создать маршрутную карту для фильтрации и модификации IP-маршрутов. | esr(config)# route-map <NAME> | <NAME> – имя маршрутной карты, задается строкой до 31 символа. |
| 2 | Создать правило маршрутной карты. | esr(config-route-map)# rule <ORDER> | <ORDER> – номер правила, принимает значения [1 .. 10000]. |
| 3 | Указать действие, которое должно быть применено для маршрутной информации. | esr(config-route-map-rule)# action <ACT> | <ACT> – назначаемое действие:
|
| 4 | Задать значение BGP AS-Path, Community,Extended Community, Local-preference, Metric, Weight в маршруте, для которого должно срабатывать правило (необязательно). | esr(config-route-map-rule)# match as-path { [begin | contain | end ] <AS-PATH> | empty | regex <REGEX> } | regex – значение атрибута соответствует регулярному выражению. <REGEX> – регулярное выражение, задаётся по стандарту POSIX-Extended Regular Expressions.
|
| esr(config-route-map-rule)# match community { <COMMUNITY-LIST> | regex <REGEX> } | |||
| esr(config-route-map-rule)# match extcommunity { <EXTCOMMUNITY-LIST> | regex <REGEX> } | |||
| esr(config-route-map-rule)# match local-preference { <VALUE> | regex <REGEX> } | |||
| esr(config-route-map-rule)# match metric bgp { <VALUE> | regex <REGEX> } | |||
| esr(config-route-map-rule)# match weight bgp { <VALUE> | regex <REGEX> } | |||
| 5 | Описать дополнительные условия для выбора и действие ( см. раздел Управление маршрутизацией#Настройка Настройка политик маршрутизации Route-map). | ||
| 6 | Применить созданный Route-map в контекcте настройки BGP peer, peer-group, address-family. | esr(config-bgp-neighbor)# route-map <NAME><DIRECTION> | <NAME> – имя сконфигурированной маршрутной карты;
|
| esr(config-ipv6-bgp-neighbor)# route-map <NAME><DIRECTION> |
...
Шаг | Описание | Команда | Ключи |
|---|---|---|---|
1 | Создать экземпляр VRF и перейти в режим настройки параметров экземпляра VRF. | esr(config)# ip vrf <VRF> | <VRF> – имя экземпляра VRF, задается строкой до 31 символа. |
2 | Назначить описание конфигурируемого экземпляра VRF. | esr(config-vrf)# description <DESCRIPTION> | <DESCRIPTION> – описание экземпляра VRF, задаётся строкой до 255 символов. |
3 | Настроить емкость таблиц маршрутизации в конфигурируемом VRF для IPv4/IPv6 протоколов маршрутизации (необязательно). | esr(config-vrf)# ip protocols <PROTOCOL> max-routes <VALUE> | <PROTOCOL> – вид протокола, принимает значения: ospf, bgp; <VALUE> – количество маршрутов в маршрутной таблице, принимает значения в диапазоне:
Значение по умолчанию: 0. |
esr(config-vrf)#ipv6 protocols <PROTOCOL> max-routes <VALUE> | |||
4 | Включить и настроить протоколы динамической маршрутизации трафика (Static/OSPF/BGP/IS-IS) в экземпляре VRF (необязательно). См. соответствующий раздел Управление маршрутизацией#Конфигурирование Конфигурирование статических маршрутов, Управление маршрутизацией#Настройка Настройка OSPF и Управление маршрутизацией#Настройка Настройка BGP. | ||
5 | В режиме конфигурирования физического/логического интерфейса, туннеля, правила DNAT/SNAT, DAS-сервера или SNMPv3 пользователя указать имя экземпляра VRF для которого будет использоваться (при необходимости). | esr(config-snat-ruleset)# ip vrf forwarding <VRF> | <VRF> – имя экземпляра VRF, задается строкой до 31 символа. |
6 | Настроить LT-туннель для передачи трафика в глобальный режим или другие VRF (при необходимости). | См. раздел Настройка LT-туннелей. |
...




