...
| Блок кода |
|---|
R2# sh bgp neighbors
BGP neighbor is 192.0.2.254
BGP state: Established
Type: Static neighbor
Neighbor address: 192.0.2.254
Neighbor AS: 65500
Neighbor ID: 192.0.2.254
Neighbor caps: refresh enhanced-refresh restart-aware AS4
Session: internal multihop AS4
Source address: 192.0.2.255
Weight: 0
Hold timer: 164/180
Keepalive timer: 23/60
Uptime: 437 s
Fall-over route-map: Failover <---- Функционал активирован
R2# sh bgp neighbors 192.0.2.254
BGP neighbor is 192.0.2.254
BGP state: Down
Type: Static neighbor
Neighbor address: 192.0.2.254
Neighbor AS: 65500
Fall-over route-map: Failover
Last error: Error: Fall over route-map <---- Сессия BGP была разорвана из-за отработавшего механизма Fast Peer Deactivation |
Настройка завершена.
Настройка политик маршрутизации Route-map
| Якорь | ||||
|---|---|---|---|---|
|
Route-map - это механизм , позволяющий применять условия (условные фильтры) и действия к маршрутам и , соответственно, к трафику. Он используется для фильтрации, изменения и управления атрибутами протокола BGP, обеспечивая расширенные возможности по сравнению с Prefix-list. Подробная логика работы описана в разделе Политика фильтрации маршрутной информации .
Функциональные возможности Route-map позволяют работать со следующими атрибутами:
...
| Условие совпадения | Регулярное выражение |
|---|---|
| Маршруты с любым содержимым 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> } |
Задать профиль IP-адресов, содержащий значения подсетей назначения в маршруте (необязательно).
esr(config-route-map-rule)# match ip address object-group <OBJ-GROUP-NETWORK-NAME>
<OBJ-GROUP-NETWORK-NAME> – имя профиля IP-адресов, содержащего префиксы подсетей назначения, задаётся строкой до 31 символа.
| 5 | Описать дополнительные условия для выбора и действие ( см. раздел Настройка политик маршрутизации Route-map) | ||
| 6 |
esr(config-route-map-rule)# match ipv6 address object-group <OBJ-GROUP-NETWORK-NAME>
Задать профиль 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>
Задать профиль, содержащий 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>
Задать ACL-группу, для которой должно срабатывать правило (необязательно).
esr(config-route-map-rule)# match access-group <NAME>
<NAME> – имя списка контроля доступа, задается строкой до 31 символа.
Задать значение атрибута BGP MED в маршруте для которого должно срабатывать правило (необязательно).
esr(config-route-map-rule)# match metric bgp <METRIC>
<METRIC> – значение атрибута BGPMED, принимает значения [0..4294967295].
Задать значение атрибута BGP AS-Path, которое будет добавляться в начало списка AS-Path (необязательно).
esr(config-route-map-rule)# action set as-path
prepend <AS-PATH> {track <TRACK-ID>}
<AS-PATH> – список номеров автономных систем, который будет добавлен к текущему значению в маршруте. Задаётся в виде AS,AS,AS, принимает значения [1..4294967295].
<TCACK-ID> – идентификатор vrrp-tracking, при котором будет исполняться указанное действие. Изменяется в диапазоне [1..60].
esr(config-route-map-rule)# action set as-path
replace { any | <AS-PATH> }
<AS-PATH> – список номеров автономных систем, который будет заменён на локальный номер AS. Задаётся в виде AS,AS,AS, принимает значения [1..4294967295].
- any – заменять любой номер AS.
Задать значение атрибута 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];
- no - advertise – маршруты, передаваемые с данным community, не должны анонсироваться другим BGP-соседям;
- no - export – маршруты, передаваемые с таким community, не должны анонсироваться eBGP-соседям, но анонсируются внешним соседям в конфедерации.
Задать значение атрибута BGP ExtCommunity, которое будет установлено в маршруте (необязательно).
esr(config-route-map-rule)# action set extcommunity <EXTCOMMUNITY-LIST>
<EXTCOMMUNITY-LIST> – список extcommunity, задается в виде KIND:AS:N, KIND:AS:N, где
KIND – тип extcommunity:
- rt (Route Target);
- ro (Route Origin).
N – номер extcommunity, принимает значения [1..65535].
Задать атрибут 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].
Задать значение атрибута BGP Local Preference, который будет установлен в маршруте (необязательно).
esr(config-route-map-rule)# action set local-preference <PREFERENCE>
<PREFERENCE> – значение атрибута BGP Local Preference, принимает значения [0..255].
Задать значение атрибута BGP Origin, которое будет установлено в маршруте (необязательно).
esr(config-route-map-rule)# action set origin <ORIGIN>
<ORIGIN> – значение атрибута BGP Origin:
- egp – маршрут выучен по протоколу EGP;
- igp – маршрут получен внутри исходной AS;
- incomplete – маршрут выучен другим образом.
Задать значение BGP MED, которое будет установлено в маршруте
(необязательно).
esr(config-route-map-rule)# action set metric bgp <METRIC>
<METRIC> – значение атрибута BGP MED, принимает значения [0..4294967295].
Добавить фильтрацию и модификацию маршрутов во входящих или исходящих направлениях. | esr(config-bgp-neighbor)# route-map <NAME><DIRECTION> | <NAME> – имя сконфигурированной маршрутной карты; <DIRECTION> – направление:
| |
esr(config-ipv6-bgp-neighbor)# route-map <NAME><DIRECTION> |
Пример настройки
Настройка Policy-Based Routing
...