...
| Условие совпадения | Регулярное выражение |
|---|---|
| Маршруты с любым содержимым AS-path | .* |
| Маршруты с пустым AS-path | ^$ |
| Маршруты с одной любой AS в AS-path | ^[0-9]+$ |
| Маршруты с двумя любыми AS в AS-path | ^[0-9]+ [0-9]+$ |
| Маршруты, зарождённые в AS 15 | (^|.* )15$ |
| Маршруты, полученные из AS 20 | ^20( .*|$) |
| Маршруты, проходящие через AS 22 | .* 22 .* |
| Маршруты, проходящие через AS 30, а затем через AS 22 | .* 22 30 .* |
| Маршруты, проходящие через AS 30 или AS 43 | .* (30|43) .* |
| Маршруты, зарождённые в AS 66 и проходящие через AS 60 | .* 60 (.* )*66$ |
| Маршруты, зарождённые в AS 70 или проходящие через неё | .* 70( .*|$) |
| Маршруты, содержащие приватные AS в AS-path | (^|.* )((6451[2-9])|(645[2-9][0-9])|(64[6-9][0-9]{2})|(65[0-4][0-9]{2})|(655[0-2][0-9])|(6553[0-4]))( .*|$) |
| Номер AS 100, номер community 200 | ^100:200$ |
| Номера AS 112 или 232, любой номер community | ^(112|232):[0-9]*$ |
| Номер AS 277, номер community начинается с 3 | ^277:3[0-9]*$ |
| Любой номер AS, номер community в диапазоне 150-1230 | ^([0-9]*):((1[5-9][0-9])|([2-9][0-9]{2})|(1[0-2][0-2][0-9])|(1230))$ |
| Тип route target, IP-адрес 10.10.10.1, номер extcommunity 653 и 654 | ^rt:10\.10\.10\.1:65[34]$ |
Алгоритм настройки
| Шаг | Описание | Команда | Ключи |
|---|---|---|---|
| 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 в маршруте, для которого должно срабатывать правило (необязательно). | 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> } | |||
| 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> |
Пример настройки
Настройка Policy-Based Routing
...