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

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

Ключ

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

...

Необходимо настроить eBGP между маршрутизаторами R1, R2 и включить протокол BFD.

Решение:

На R1 предварительно необходимо настроить интерфейс Gi1/0/1:

...

Информация

Функционал поддержан для IPv4 ( AFI -1 , SAFI -1), IPv6 (AFI -2 , SAFI -1) маршрутов.

В route-map поддерживаются все значения команды match. Команды action set игнорируются.

Реализована поддержка как для GRT, так и в VRF.

Алгоритм настройки
ШагОписаниеКомандаКлючи
1Настроить протокол BGP (см. раздел Настройка BGP).

2Описать в маршрутной карте подсеть, наличие которой будет отслеживаться в таблице маршрутизации (см. раздел Настройка Route-map).

3Активировать функционал, привязав маршрутную карту в соответствующему пиру или пир-группе.esr(config-bgp-neighbor)# fall-over route-map <NAME><NAME> – имя маршрутной карты, задается строкой до 31 символа.
Scroll Pagebreak
Пример настройки
Задача:

Настроить механизм Fast Peer Deactivation  между iBGP пирами R1 и R2.

Решение:

Предварительно настроим связность между маршрутизаторами в схеме:

...

Блок кода
titleR2
R2(config)# interface gigabitethernet 1/0/1
R2(config-if-gi)# ip firewall disable 
R2(config-if-gi)# ip address 198.51.100.2/24

Scroll Pagebreak

На каждом устройстве настроим протокол OSPF и анонсируем адреса loopback-интерфейсов:

...

Блок кода
titleR2
R2(config)# router bgp 65500 
R2(config-bgp)# neighbor 192.0.2.254 
R2(config-bgp-neighbor)# fall-over route-map Failover 

Scroll Pagebreak

Для просмотра оперативного состояния можно воcпользоваться следующей командой:

...

Блок кода
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

...

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

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

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

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

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-адресов, содержащий значения атрибута BGPNextBG PNext-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

Задать значение атрибута 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Сконфигурировать интерфейсы, по которым будет работать MultiWAN: установить IP-адреса и указать security-zone.

2Прописать статические маршруты через WAN (если необходимо).

esr(config)# ip route <SUBNET> wan load-balance rule <ID> [<METRIC>]

<ID> – идентификатор создаваемого правила из п.2.

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

3Создать правило WAN и перейти в режим настройки параметров правила.

esr(config)# wan load-balance rule <ID>

<ID> – идентификатор создаваемого правила, принимает значения [1..50].
4Задать интерфейсы или туннели, которые являются шлюзами в маршруте, создаваемом службой MultiWAN.

esr(config-wan-rule)# outbound
{ interface <IF> | tunnel <TUN> } [WEIGHT]

<IF>– имя интерфейса;

<TUN> – имя туннеля;

[WEIGHT] – вес туннеля или интерфейса, определяется в диапазоне [1..255]. Если установить значение 2, то по данному интерфейсу будет передаваться в 2 раза больше трафика, чем по интерфейсу со значением по умолчанию. В режиме резервирования активным будет маршрут с наибольшим весом. Значение по умолчанию 1.

5Описать правила (не обязательно).

esr(config-wan-rule)# description <DESCRIPTION>

<DESCRIPTION> – описание правила wan, задаётся строкой до 255 символов.
6Данной командой осуществляется переключение из режима балансировки в режим резервирования (если необходимо).

esr(config-wan-rule)# failover


7Данной командой включается отправка ответных пакетов сессии через тот же интерфейс, через который получены входящие пакеты сессии (если необходимо).esr(config-wan-rule)# stickiness
8Включить wan-правило.

esr(config-wan-rule)# enable


9Создать список IP-адресов для проверки целостности соединения и осуществить переход в режим настройки параметров списка.

esr(config)# wan load-balance target-list <NAME>

<NAME> – название списка, задается строкой до 31 символа.
10Задать цель проверки и перейти в режим настройки параметров цели.

esr(config-target-list)# target <ID>

<ID> – идентификатор цели, задаётся в пределах [1..50]. Если при удалении используется значение параметра «all», то будут удалены все цели для конфигурируемого списка целей.
11Описать target (не обязательно).

esr(config-wan-target)# description <DESCRIPTION>

<DESCRIPTION> – описание target, задаётся строкой до 255 символов.
12Указать время ожидания ответа на запрос по протоколу ICMP (не обязательно).

esr(config-wan-target)# resp-time <TIME>

<TIME> – время ожидания, определяется в секундах [1..30].
13

Указать IP-адрес проверки.


esr(config-wan-target)# ip address <ADDR>

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

esr(config-wan-target)# ipv6 address <IPV6-ADDR>

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

esr(config-wan-target)# enable


Команды для пунктов 14–17 необходимо применить на интерфейсах/туннелях в MultiWAN.

15Включить WAN-режим на интерфейсе для IPv4/IPv6-стека.

esr(config-if-gi)# wan load-balance enable


esr(config-if-gi)# ipv6 wan load-balance enable

16

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

esr(config-if-gi)# wan load-balance failure-count <VALUE>

<VALUE> – количество попыток, определяется в диапазоне [1..10].

Значение по умолчанию: 1.


esr(config-if-gi)# ipv6 wan load-balance failure-count <VALUE>

17

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

esr(config-if-gi)# wan load-balance success-count <VALUE>

<VALUE> – количество попыток, определяется в диапазоне [1..10].

Значение по умолчанию: 1.

esr(config-if-gi)# ipv6 wan load-balance success-count <VALUE>

18Задать IP-адрес соседа, который будет указан в качестве одного из шлюзов в статическом маршруте, создаваемом службой MultiWAN.

esr(config-if-gi)# wan load-balance nexthop  { <IP> | dhcp enable | tunnel enable }

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

dhcp enable – если на интерфейсе IP-адрес получен через DHCP-клиента, используется шлюз с DHCP-сервера.

tunnel enable – использовать в качестве nexthop – p-t-p адрес назначения. Применимо для подключаемых интерфейсов, работающих через ppp.

esr(config-if-gi)# ipv6 wan load-balance nexthop { <IPV6> }

<IPV6> – IPv6-адрес назначения (шлюз), задаётся в виде X:X:X:X::X, где каждая часть принимает значения в шестнадцатеричном формате [0..FFFF].
19Данной командой будут проверяться IP-адреса из списка проверки целостности. В случае недоступности всех (по умолчанию)/хотя бы одной (с использованием ключа chack-all) из проверяемых узлов, шлюз будет считаться недоступным.

esr(config-if-gi)# wan load-balance target-list { check-all | <NAME> }

<NAME> – проверку производить на основании конкретного target листа (заданного в п.7).

check-all – проверку производить на основании всех target листа.

esr(config-if-gi)# ipv6 wan load-balance target-list { check-all | <NAME> }

20Прописать статические маршруты через WAN.

esr(config)# ip route <SUBNET> wan load-balance rule <ID> [<METRIC>]

<ID> – идентификатор создаваемого правила из п.2.

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

esr(config)# ipv6 route <SUBNET> wan load-balance rule <ID [<METRIC>]

Scroll Pagebreak

Пример настройки

Задача:

Настроить маршрут к серверу (108.16.0.1/28) с возможностью балансировки нагрузки.

...

Блок кода
еsr(config-wan-rule)# failover

Scroll Pagebreak

Настройка IS-IS

IS-IS — протокол динамической маршрутизации, стандартизированный ISO, основанный на состояниях линков (link-state). Он обеспечивает быструю сходимость и отличную масштабируемость, экономно использует пропускную способность сетей, использует Алгоритм Дейкстры для просчёта наилучших маршрутов. Отличительной особенностью протокола IS-IS является работа поверх канального уровня модели OSI, поэтому он не привязан к конкретному протоколу сетевого уровня.

...