Дерево страниц

Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

...

Блок кода
R1# sh bfd neighbors 
Neighbor                                Discriminator State     Interface       
--------------------------------------- ------------- --------- ----------------
198.51.100.2                            2907010617    Up        gi1/0/1         
R1# sh bfd neighbors  198.51.100.2
Neighbor address:                   198.51.100.2
Local address:                      198.51.100.1
Interface:                          gi1/0/1
Remote discriminator:               2907010617
Local discriminator:                2856477782
State:                              Up                <--- состояние протокола
Session type:                       Control
Session mode:                       Single-hop
Local diagnostic code:              No Diagnostic
Remote diagnostic code:             No Diagnostic
Minimal Tx Interval:                300 ms
Minimal Rx Interval:                300 ms
Multiplier:                         5
Actual Tx Interval:                 300 ms
Actual Detection Interval:          1500 ms
Number of transmitted packets:      1444
Number of received packets:         1402
Uptime (d,h:m:s):                   00,00:03:39
Client:                             STATIC              <---- сервис, который подписан на отслеживание изменения состояния
 
R1# sh ip route 192.0.2.0/24
 Codes: C - connected, S - static, R - RIP derived,
        O - OSPF derived, IA - OSPF inter area route,
        E1 - OSPF external type 1 route, E2 - OSPF external type 2 route
        B - BGP derived, D - DHCP derived, K - kernel route, V - VRRP route
        i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
        H - NHRP, * - FIB route

S     * 192.0.2.0/24       [1/0]             via 198.51.100.2 on gi1/0/1       [static 16:22:27] 
R1# sh bfd neighbors  
Neighbor                                Discriminator State     Interface       
--------------------------------------- ------------- --------- ----------------
198.51.100.2                            2907010617    Up        gi1/0/1         
R1# sh ip route 192.0.2.0/24
 Codes: C - connected, S - static, R - RIP derived,
        O - OSPF derived, IA - OSPF inter area route,
        E1 - OSPF external type 1 route, E2 - OSPF external type 2 route
        B - BGP derived, D - DHCP derived, K - kernel route, V - VRRP route
        i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
        H - NHRP, * - FIB route

S     * 192.0.2.0/24       [1/0]             via 198.51.100.2 on gi1/0/1       [static 16:22:27]   <---- маршрут присутствует в FIB

// После того как BFD-сессия разрушилась, отслеживаемый маршрут удалился из FIB:

R1# sh bfd neighbors  
Neighbor                                Discriminator State     Interface       
--------------------------------------- ------------- --------- ----------------
198.51.100.2                            2907010617     Down      gi1/0/1  

R1# sh ip route 192.0.2.0/24
 Codes: C - connected, S - static, R - RIP derived,
        O - OSPF derived, IA - OSPF inter area route,
        E1 - OSPF external type 1 route, E2 - OSPF external type 2 route
        B - BGP derived, D - DHCP derived, K - kernel route, V - VRRP route
        i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
        H - NHRP, * - FIB route

R1# 

Настройка завершена.

Настройка политики маршрутизации PBR

Алгоритм настройки Route-map для BGP

Route-map могут служить фильтрами, позволяющими обрабатывать маршрутную информацию при приеме этой информации от соседа либо при ее передаче соседу. Обработка может включать в себя фильтрацию на основании различных признаков маршрута, а также установку атрибутов (MED, AS-PATH, community, LocalPreference и другое) на соответствующие маршруты.

ШагОписаниеКомандаКлючи
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> – назначаемое действие:

  • permit – прием или анонсирование маршрутной информации разрешено;
  • deny – запрещено.
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.

  • begin – значение атрибута начинается с указанных номеров AS;
  • contain – значение атрибута содержит указанные номера AS;
  • empty – значение атрибута пусто;
  • end – значение атрибута заканчивается указанными номерами AS;
  • regex – значение атрибута соответствует регулярному выражению.

5

Задать значение атрибута BGPCommunity, для которого должно срабатывать правило (не обязательно).

esr(config-route-map-rule)# match community  { <COMMUNITY-LIST> | regex <REGEX> }

<COMMUNITY-LIST> – список community, задается в виде AS:N,AS:N, принимает значения [1..4294967295]. Можно указать до 64 community.

  • regex – значение атрибута соответствует регулярному выражению.

<REGEX> – регулярное выражение, задаётся по стандарту POSIX-Extended Regular Expressions.

6

Задать значение атрибута BGPExtendedCommunity, для которого должно срабатывать правило (не обязательно).

esr(config-route-map-rule)# match extcommunity  { <EXTCOMMUNITY-LIST> | regex <REGEX> }

<EXTCOMMUNITY-LIST> – список extcommunity, задается в виде KIND:AS:N, KIND:AS:N, где

KIND – тип extcommunity:

  • rt (Route Target);
  • ro (Route Origin).

N – номер extcommunity, принимает значения [1..65535].

  • regex – значение атрибута соответствует регулярному выражению.

<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-адресов, содержащий значения атрибута BGPNext-Hop в маршруте для которого должно срабатывать правило (не обязательно).

esr(config-route-map-rule)# match ip next-hop  object-group <OBJ-GROUP-NETWORK-NAME>

<OBJ-GROUP-NETWORK-NAME> – имя профиля IP-адресов, содержащего префиксы подсетей назначения, задается строкой до 31 символа.

esr(config-route-map-rule)# match ipv6 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

Задать значение атрибута OSPF Metric в маршруте, для которого должно срабатывать правило.

esr(config-route-map-rule)# match metric ospf <TYPE> <METRIC>

<TYPE> – тип атрибута OSPF Metric, принимает значение type-1 и type-2;

<METRIC> – значение атрибута OSPF Metric, принимает значения [0..65535].

13

Задать значение атрибута RIP Metric в маршруте, для которого должно срабатывать правило.

esr(config-route-map-rule)# match metric rip <METRIC>

<METRIC> – значение атрибута RIP Metric, принимает значения [0..16].

14

Задать значение атрибута OSPF Tag в маршруте, для которого должно срабатывать правило.

esr(config-route-map-rule)# match tag ospf <TAG>

<TAG> – значение атрибута OSPF Tag, принимает значения [0..4294967295].

15

Задать значение атрибута RIP Tag в маршруте, для которого должно срабатывать правило.

esr(config-route-map-rule)# match tag rip <TAG>

<RIP> – значение атрибута RIP Tag, принимает значения [0..65535].

16

Задать значение атрибута 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].

17

Задать значение атрибута 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-соседям, но анонсируются внешним соседям в конфедерации.

18

Задать значение атрибута 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].

19

Задать атрибут 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].

20

Задать значение Next-Hop, которое будет установлено в маршруте, полученном по BGP (не обязательно).

esr(config-route-map-rule)# action set ip next-hop  {NEXTHOP> | blackhole | unreachable | prohibit}





<NEXTHOP> – IP-адрес шлюза, задаётся в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255];

  • blackhole – пакеты до данной подсети будут удаляться без отправки уведомлений отправителю;
  • unreachable – пакеты до данной подсети будут удаляться, отправитель получит в ответ ICMP Destination unreachable (Host unreachable, code 1);
  • prohibit – пакеты до данной подсети будут удаляться устройством, отправитель получит в ответ ICMP Destination unreachable (Communication administratively prohibited code 13).

esr(config-route-map-rule)# action set ipv6 next-hop <IPV6-NEXTHOP>

<IPV6-NEXTHOP> – IPv6-адрес шлюза, задается в виде X:X:X:X::X, где каждая часть принимает значения в шестнадцатеричном формате [0..FFFF].

21

Задать значение атрибута BGP Local Preference, который будет установлен в маршруте (не обязательно).

esr(config-route-map-rule)# action set local-preference <PREFERENCE>

<PREFERENCE> – значение атрибута BGP Local Preference, принимает значения [0..255].

22

Задать значение атрибута BGP Origin, которое будет установлено в маршруте (не обязательно).

esr(config-route-map-rule)# action set origin <ORIGIN>

<ORIGIN> – значение атрибута BGP Origin:

  • egp – маршрут выучен по протоколу EGP;
  • igp – маршрут получен внутри исходной AS;
  • incomplete – маршрут выучен другим образом.

23

Задать значение BGP MED, которое будет установлено в маршруте
(не обязательно).

esr(config-route-map-rule)# action set metric bgp <METRIC>

<METRIC> – значение атрибута BGP MED, принимает значения [0..4294967295].

24

Добавить фильтрацию и модификацию маршрутов во входящих или исходящих направлениях.

esr(config-bgp-neighbor)# route-map <NAME><DIRECTION>

<NAME> – имя сконфигурированной маршрутной карты;

<DIRECTION> – направление:

  • in – фильтрация и модификация получаемых маршрутов;
  • out – фильтрация и модификация анонсируемых маршрутов.

esr(config-ipv6-bgp-neighbor)# route-map <NAME><DIRECTION>

Пример настройки 1. Route-map для BGP

Задача:

Назначить сommunity для маршрутной информации, приходящей из AS20:

...

Блок кода
esr(config-bgp-neighbor-af)# route-map from-as20 in
Пример настройки 2. Route-map для BGP
Задача:

Для всей передаваемой маршрутной информации (с community 2500:25) назначить MED, равный 240, и указать источник маршрутной информации EGP:

...

Блок кода
esr(config-bgp-neighbor-af)# route-map to-as20 out
esr(config-bgp-neighbor-af)# exit
esr(config-bgp-neighbor)# exit
esr(config-bgp)# exit
Пример настройки 3. Использование регулярных выражений в Route-map для BGP

Начиная с версии 1.23 доступно использование регулярных выражений в Route-map для контроля распространения маршрутной информации по протоколу BGP. Контроль можно производить по трём атрибутам BGP: AS-path, community, extcommunity. Синтаксис регулярных выражений соответствует стандарту POSIX ERE. В таблице ниже представлены некоторые примеры регулярных выражений.

...

Шаг

Описание

Команда

Ключи

1

Создать маршрутную карту для фильтрации и модификации IP-маршрутов.

esr(config)# route-map <NAME>

<NAME> – имя маршрутной карты, задаётся строкой до 31 символа.

2

Создать правило маршрутной карты.

esr(c onfig-route-map)# rule <ORDER>

<ORDER> – номер правила, принимает значения [1..10000].

3

Указать действие, которое должно быть применено для маршрутной информации.

esr(config-route-map-rule)# action <ACT>

<ACT> – назначаемое действие:

  • permit – прием или анонсирование маршрутной информации разрешено;
  • deny – запрещено.

4

Задать ACL, для которого должно срабатывать правило (не обязательно).

esr(config-route-map-rule)# match ip access-group <NAME>

<NAME> – имя списка контроля доступа, задаётся строкой до 31 символа.

5

Задать Next-Hop для пакетов, которые попадают под критерии в указанном списке доступа (ACL) (не обязательно).

esr(config-route-map-rule)# action set ip next-hop  verify-availability <NEXTHOP><METRIC>

<NEXTHOP> – IP-адрес шлюза задаётся в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255];

<METRIC> – метрика маршрута, принимает значения [0..255].

6

Назначить политику маршрутизации на основе списков доступа (ACL).

esr(config-if-gi)# ip policy route-map <NAME>

<NAME> – имя сконфигурированной политики маршрутизации, строка до 31 символа.

7Разрешить фильтрацию и модификацию локального трафика на основе политики маршрутизации.esr(config)# ip local policy [ vrf <VRF> ] route-map <NAME><NAME> – имя сконфигурированной политики маршрутизации, строка до 31 символа.
Пример настройки Route-map на основе списков доступа (Policy-based routing)

Задача:

Распределить трафик между Интернет-провайдерами на основе подсетей пользователей.

...