...
Протокол | Режим |
---|---|
eBGP | single-hop |
eBGP multi-hop | multi-hop |
iBGP | multi-hop |
Алгоритм настройки
Шаг | Описание | Команда | Ключи |
---|---|---|---|
1 | Настроить протокол BGP (см. раздел Настройка BGP). | ||
2 | Включить поддержку протокола BFD в контексте настройки пира или пир-группы | esr(config-bgp-neighbor)# fall-over bfd |
Scroll Pagebreak
Пример настройки
Задача:
Необходимо настроить eBGP между маршрутизаторами R1, R2 и включить протокол BFD.
Решение:
На R1 предварительно необходимо настроить интерфейс Gi1/0/1:
Блок кода |
---|
esr(config)# interface gigabitethernet 1/0/1 esr(config-if-gi)# ip firewall disable esr(config-if-gi)# ip address 10.0.0.1/24 |
Следующим шагом на R1 настроим eBGP и включим BFD: Scroll Pagebreak
...
Информация |
---|
Функционал поддержан для 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.
Решение:
Предварительно настроим связность между маршрутизаторами в схеме:
...
Блок кода | ||
---|---|---|
| ||
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-интерфейсов:
...
Блок кода | ||
---|---|---|
| ||
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> – назначаемое действие:
|
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 | Задать значение атрибута 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> – регулярное выражение, задаётся по стандарту 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:
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-адресов, содержащий значения атрибута 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 | <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];
|
18 | Задать значение атрибута 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]. |
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];
|
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:
|
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> – направление:
|
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 | <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, поэтому он не привязан к конкретному протоколу сетевого уровня.
...