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

Ключ

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

...

Статические multipath-маршруты позволяют использовать стратегию ECMP для эффективного распределения трафика между несколькими равнозначными маршрутами, без необходимости применения динамических протоколов маршрутизации.

Алгоритм настройки

ШагОписаниеКомандаКлючи
1Создать статический multipath ipv4 маршрут.

esr(config)# ip route multipath [ vrf <VRF> ] <SUBNET> [ track <TRACK-ID> ] [ name <NAME>] [ <METRIC> ]

<VRF> – имя экземпляра VRF, задается строкой до 31 символа;

<SUBNET> – адрес назначения, может быть задан в следующих видах:

  • AAA.BBB.CCC.DDD – IP-адрес хоста, где каждая часть принимает значения [0..255];

  • AAA.BBB.CCC.DDD/NN – IP-адрес подсети с маской в виде префикса, где AAA-DDD принимают значения [0..255] и NN принимает значения [1..32].

<TRACK-ID> – идентификатор Tracking-объекта. Если маршрут привязан к Tracking-объекту, то он появится в системе только при выполнении всех условий, заданных в объекте;

<NAME> – имя (описание) маршрута, текстовая переменная длиной до 31 символа;

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

2Создать статический multipath ipv6 маршрут.

esr(config)# ipv6 route multipath [ vrf <VRF> ] <SUBNET> [ name <NAME>] [ <METRIC> ]

<VRF> – имя экземпляра VRF, задается строкой до 31 символа;

<SUBNET> – адрес назначения, может быть задан в следующих видах:

  • X:X:X:X::X – IPv6-адрес хоста, где каждая часть принимает значения в шестнадцатеричном формате [0..FFFF];
  • X:X:X:X::X/EE – IPv6-адрес подсети с маской в виде префикса, где каждая часть X принимает значения в шестнадцатеричном формате [0..FFFF] и EE принимает значения [1..128].

<NAME> – имя (описание) маршрута, текстовая переменная длиной до 31 символа;

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

3

Настроить шлюзы для маршрута.

esr(config)# gateway { <NEXTHOP> [ <WEIGHT> ] [ bfd ] [ unit <ID> ] [ track <TRACK-ID> ] | <IF> [ <WEIGHT> ] | <TUN> [ <WEIGHT> ] }

<NEXTHOP> – адрес шлюза, может быть задан в следующих видах:

  • AAA.BBB.CCC.DDD – IP-адрес шлюза, где каждая часть принимает значения [0..255];
  • X:X:X:X::X – IPv6-адрес шлюза, где каждая часть принимает значения в шестнадцатеричном формате [0..FFFF];

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

<ID> – номер юнита, принимает значения [1..4];

<IF> – имя IP-интерфейса, задаётся в виде, описанном в разделе Типы и порядок именования интерфейсов маршрутизатора;

<TUN> – имя туннеля, задаётся в виде, описанном в разделе Типы и порядок именования туннелей маршрутизатора;

<TRACK-ID> – идентификатор Tracking-объекта. Если шлюз привязан к Tracking-объекту, то он появится в системе только при выполнении всех условий, заданных в объекте. Доступно только для ipv4;

bfd – при указании данного ключа активируется проверка доступности шлюза при помощи протокола BFD. В случае недоступности шлюз  удаляется из таблицы маршрутизации.

Scroll Pagebreak

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

Задача:

Обеспечить связность сетей 192.168.1.0/24 и 115.0.0.0/24, распределяя трафик между R2 и R3 с помощью статического multipath-маршрута.

...

Блок кода
titleR1
esr# hostname R1
esr(config)# interface gigabitethernet 1/0/1
esr(config-if-gi)#   description "to LAN"
esr(config-if-gi)#   ip firewall disable
esr(config-if-gi)#   ip address 192.168.1.1/24
esr(config-if-gi)# exit
esr(config)# interface gigabitethernet 1/0/3
esr(config-if-gi)#   description "to R2"
esr(config-if-gi)#   ip firewall disable
esr(config-if-gi)#   ip address 192.0.1.1/30
esr(config-if-gi)# exit
esr(config)# interface gigabitethernet 1/0/4
esr(config-if-gi)#   description "to R3"
esr(config-if-gi)#   ip address 192.0.2.1/30
esr(config-if-gi)# exit
esr(config)# ip route multipath 115.0.0.0/24
esr(config-multipath-route)#   gateway 192.0.1.2
esr(config-multipath-route)#   gateway 192.0.2.2
esr(config-multipath-route)# exit

Scroll Pagebreak

Конфигурация R2:

Блок кода
titleR2
esr(config)# hostname R2
esr(config)# interface gigabitethernet 1/0/3
esr(config-if-gi)#   description "to R1"
esr(config-if-gi)#   ip firewall disable
esr(config-if-gi)#   ip address 192.0.1.2/30
esr(config-if-gi)# exit
esr(config)# interface gigabitethernet 1/0/4
esr(config-if-gi)#   description "to R4"
esr(config-if-gi)#   ip firewall disable
esr(config-if-gi)#   ip address 10.0.1.1/30
esr(config-if-gi)# exit
esr(config)# 
esr(config)# ip route 115.0.0.0/24 10.0.1.2
esr(config)# ip route 192.168.0.0/24 192.0.1.1

...

Блок кода
titleR3
esr(config)# hostname R3
esr(config)# interface gigabitethernet 1/0/3
esr(config-if-gi)#   description "to R1"
esr(config-if-gi)#   ip firewall disable
esr(config-if-gi)#   ip address 192.0.2.2/30
esr(config-if-gi)# exit
esr(config)# interface gigabitethernet 1/0/4
esr(config-if-gi)#   description "to R4"
esr(config-if-gi)#   ip firewall disable
esr(config-if-gi)#   ip address 10.0.2.1/30
esr(config-if-gi)# exit
esr(config)# ip route 115.0.0.0/24 10.0.2.2
esr(config)# ip route 192.168.0.0/24 192.0.2.1

Scroll Pagebreak

Конфигурация R4:

Блок кода
titleR4
esr(config)# hostname R4
esr(config)# interface gigabitethernet 1/0/1
esr(config-if-gi)#   description "to LAN"
esr(config-if-gi)#   ip firewall disable
esr(config-if-gi)#   ip address 115.0.0.1/24
esr(config-if-gi)# exit
esr(config)# interface gigabitethernet 1/0/3
esr-30(config-if-gi)#   description "to R2"
esr-30(config-if-gi)#   ip firewall disable
esr-30(config-if-gi)#   ip address 10.0.1.2/30
esr-30(config-if-gi)# exit
esr-30(config)# interface gigabitethernet 1/0/4
esr-30(config-if-gi)#   description "to R3"
esr-30(config-if-gi)#   ip firewall disable
esr-30(config-if-gi)#   ip address 10.0.2.2/30
esr-30(config-if-gi)# exit
esr-30(config)# ip route multipath 192.168.0.0/24
esr-30(config-multipath-route)#   gateway 10.0.1.1
esr-30(config-multipath-route)#   gateway 10.0.2.1
esr-30(config-multipath-route)# exit

...

Информация

Для VPNv4 маршрутов выбор лучшего маршрута происходит следующим образом:

Сначала выбор лучшего маршрута происходит в рамках своего RD, затем в рамках VRF, куда он попадет в соответствии со своим RT.Image Removed

draw.io Diagram
bordertrue
diagramNameRouteSelection
simpleViewerfalse
width
linksauto
tbstyletop
lboxtrue
diagramWidth1199
revision1

Прежде всего проверяется доступность next-hop-a у маршрута. Next-hop считается доступным, если до него можно определить connected-маршрут.

...

  • Если R2 содержит в BGP RIB маршрут 192.0.2.255/32, то R2 анонсирует в сторону R3 маршрут 198.51.100.0/24 (пример на рисунке ниже);
  • Если R2 не содержит в BGP RIB маршрут 192.0.2.255/32, то анонсирование маршрута 198.51.100.0/24 соседу R3 не происходит.

...

draw.io Diagram
bordertrue
diagramNameConditionalAdvertisement
simpleViewerfalse
width
linksauto
tbstyletop
lboxtrue
diagramWidth861
revision1

Блок кода
route-map CONDITION
  rule 1
    match ip address 192.0.2.255/32
  exit
exit
route-map ADVERTISE
  rule 1
    match ip address 198.51.100.0/24
  exit
exit
router bgp 65540
  neighbor R3
    description "To R3"
    address-family ipv4 unicast
      advertise-map ADVERTISE exist-map CONDITION
	  enable
    exit

...

  • Если R2 содержит в BGP RIB маршрут 192.0.2.255/32, то анонсирование маршрута 198.51.100.0/24 соседу R3 не происходит;
  • Если R2 не содержит в BGP RIB маршрут 192.0.2.255/32, то R2 анонсирует в сторону R3 маршрут 198.51.100.0/24 (пример на рисунке ниже).

...

draw.io Diagram
bordertrue
diagramNameConditionalAdvertisement_1
simpleViewerfalse
width
linksauto
tbstyletop
lboxtrue
diagramWidth861
revision1

Блок кода
route-map CONDITION
  rule 1
    match ip address 192.0.2.255/32
  exit
exit
route-map ADVERTISE
  rule 1
    match ip address 198.51.100.0/24
  exit
exit
router bgp 65540
  neighbor R3
    description "To R3"
    address-family ipv4 unicast
      advertise-map ADVERTISE not exist-map CONDITION
	  enable
    exit

...

ШагОписаниеКомандаКлюч
1Настроить протокол BGP (см. раздел Управление маршрутизацией#Настройка Настройка BGP).
2Cоздать advertise-map, описав в нем список подсетей для дальнейшего анонсирования.esr(config)# route-map <ADVERTISE><ADVERTISE> – имя конфигурируемых правил маршрутизации, задаётся строкой до 31 символа.
3Создать condition-map, описав в нем список подсетей по которым будет осуществляться проверка.esr(config)# route-map <CONDITION><CONDITION> – имя конфигурируемых правил маршрутизации, задаётся строкой до 31 символа.
4В контексте настройки address-family заданного BGP соседа указать условие и созданные ранее маршрутные карты.esr(config-bgp-neighbor-af)# advertise-map <ADVERTISE> {EXIST-MAP | NOT-EXIST-MAP} <CONDITION>

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

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

<EXIST-MAP> – условие проверки: если маршруты, описанные в condition-map, присутствуют в BGP RIB, то происходит анонсирование маршрутов, описанных в advertise-map.

<NOT-EXIST-MAP> – условие проверки: если маршруты, описанные в condition-map, отсутствуют в BGP RIB, то происходит анонсирование маршрутов, описанных в advertise-map.

...

Необходимо в случае присутствия маршрута 10.1.1.1/32 в BGP RIB анонсировать маршрут 198.51.100.0/24 провайдеру ISP «Zero», если маршрут 10.1.1.1/32 отсутствует в BGP RIB – анонсировать 198.51.100.0/24 провайдеру ISP «One».Image Removed

draw.io Diagram
bordertrue
diagramNameBGPConditionalAdvertisement
simpleViewerfalse
width
linksauto
tbstyletop
lboxtrue
diagramWidth875
revision1

Решение:

Сконфигурируем необходимые сетевые интерфейсы на каждом устройстве в сети:

...

ШагОписаниеКоманда Ключи
1Настроить протокол BGP (см. раздел Управление маршрутизацией#Настройка Настройка BGP).
2Включить поддержку протокола BFD в контексте настройки пира или пир-группыesr(config-bgp-neighbor)# fall-over bfd

...

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

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

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

...

Задача:

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

draw.io Diagram
bordertrue
diagramNameFPD_new
simpleViewerfalse
width
linksauto
tbstyletop
lboxtrue
diagramWidth1041
revision1

Решение:

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

...

Route-map – это механизм, позволяющий применять условия (условные фильтры) и действия к маршрутам и ,соответственно, к трафику. Он используется для фильтрации, изменения и управления атрибутами протокола BGP, обеспечивая расширенные возможности по сравнению с Prefix-list. Подробная логика работы описана в  разделе Управление маршрутизацией#Политика Политика фильтрации маршрутной информации.

...

Название

Семейство адресов (AF)

Манипуляции

Поддержка регулярных выражений в классификации

Тип действияПоддержка трекинга
As-pathIPv4, IPv6, VPNv4, L2VPN, FlowspecPrepend, Replace (плюс)   (плюс) 
CommunityPv4, IPv6, VPNv4, L2VPN, Flowspecno-advertise, no-export,  добавление в атрибута (add), создание списка (set) (плюс) (плюс) 
Extended communityVPNv4, L2VPNДобавление в список (add), создание списка (set) (плюс) (плюс) 
Local preferenceIPv4, IPv6, VPNv4, L2VPN, FlowspecУстановка атрибута, увеличение, уменьшение(плюс) (плюс)  
MED (metric)IPv4, IPv6, VPNv4, L2VPN, FlowspecУстановка атрибута, увеличение, уменьшение(плюс) (плюс) 
Next-hopIPv4, IPv6, VPNv4, L2VPN, FlowspecУстановка атрибута(минус) (минус) 
OriginIPv4, IPv6, VPNv4, L2VPN, FlowspecУстановка атрибута(плюс)(минус) 
WeightIPv4, IPv6, VPNv4, L2VPN, FlowspecУстановка атрибута, увеличение, уменьшение(минус) (плюс) 
Алгоритм настройки
ШагОписаниеКомандаКлючи
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

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

Задать значение атрибута BGP 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-адресов, содержащий значения атрибута 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
prepend <AS-PATH> {track <TRACK-ID>}

<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
 replace { any | <AS-PATH> }

<AS-PATH> – список номеров автономных систем, который будет заменён на локальный номер AS. Задаётся в виде AS,AS,AS, принимает значения [1..4294967295].

  • any – заменять любой номер AS.
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];

  • no - advertise – маршруты, передаваемые с данным community, не должны анонсироваться другим BGP-соседям;
  • no - export – маршруты, передаваемые с таким community, не должны анонсироваться eBGP-соседям, но анонсируются внешним соседям в конфедерации.
15

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

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:

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

 

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> – направление:

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

 

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

...

Условие совпаденияРегулярное выражение
Маршруты с любым содержимым 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> – назначаемое действие:

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


Задать значение BGP AS-Path, Community,Extended Community, Local-preference, Metric, Weight  в маршруте, для которого должно срабатывать правило
(необязательно).


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> }
esr(config-route-map-rule)# match local-preference  { <VALUE> |  regex <REGEX> }
esr(config-route-map-rule)# match metric bgp  { <VALUE> | regex <REGEX> }
esr(config-route-map-rule)# match weight bgp  { <VALUE> | regex <REGEX> }
5Описать  дополнительные условия для выбора и действие ( см. раздел
Управление маршрутизацией#Настройка
Настройка политик маршрутизации Route-map). 


6Применить созданный Route-map в контекcте настройки BGP peer, peer-group, address-family. esr(config-bgp-neighbor)# route-map <NAME><DIRECTION>

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

  • in – фильтрация и модификация получаемых маршрутов;
  • out – фильтрация и модификация анонсируемых маршрутов.
 esr(config-ipv6-bgp-neighbor)# route-map <NAME><DIRECTION>

Scroll Pagebreak

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

...

Механизм позволяет разделить одну автономную систему на множество под-AS, функционирующих фIS-IS — протокол динамической маршрутизации, стандартизированный ISO, ункционирующих как отдельные административные единицы, но представляющих единую AS для внешних автономных систем. Взаимодействие между под-AS осуществляется посредством межконфедерационных BGP-сессий, использующих расширенную семантику AS_PATH. Для реализации механизма в рамках RFC 5065 введены атрибуты AS_CONFED_SEQUENCE и AS_CONFED_SET, которые применяются исключительно внутри конфедерации и подлежат удалению перед передачей маршрутов за её пределы. 

...

  • Значение атрибута MED распространяется между eBGP-пирами;
  • Значение атрибута next-hop не изменяется при eBGP-пиринге (поведение можно переопределить с помощью команды next-hop-self);
  • Внутри конфедерации политика анонсирования маршрутной информации аналогична политика анонсирования для iBGP-пиринга;
  • Длина списка AS_CONFED_SEQUENCE или AS_CONFED_SET не участвует в политике выбора лучшего маршрута.
Алгоритм настройки
ШагОписаниеКомандаКлючи
1В контексте настройки BGP  указать идентификатор конфедерацииesr(config-bgp)# confederation identifier <ID><ID> – идентификатор конфедерации, принимает значение [1..4294967295].
2Сконфигурировать члены конфедерацииesr(config-bgp)# confederation peer <AS>  <AS> – список номеров автономных систем, задается в виде AS-AS,AS,AS-AS, принимает значения [1..4294967295].
Пример настройки

Задача:

Необходимо настроить конфедерацию между ESR2 и ESR3. На ESR2 настроить eBGP-пиринг с ESR1, проанонсировать подсети в соответствии со схемой.

Scroll Pagebreak

...

Шаг

Описание

Команда

Ключи

1

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

esr(config)# ip vrf <VRF>

<VRF> – имя экземпляра VRF, задается строкой до 31 символа.

2

Назначить описание конфигурируемого экземпляра VRF.

esr(config-vrf)# description <DESCRIPTION>

<DESCRIPTION> – описание экземпляра VRF, задаётся строкой до 255 символов.

3

Настроить емкость таблиц маршрутизации в конфигурируемом VRF для IPv4/IPv6 протоколов маршрутизации (необязательно).

esr(config-vrf)# ip protocols <PROTOCOL> max-routes <VALUE>

<PROTOCOL> – вид протокола, принимает значения: ospf, bgp;

<VALUE> – количество маршрутов в маршрутной таблице, принимает значения в диапазоне:

  • OSPF ESR-1000/1200/1500/
    1511 (rev.B)/1700/3100/3150/3200/
    3200L/3250/3300/3350 – [1..500000], ESR-20/21/30/31/100/
    200 – [1..300000], ESR-10/12V(F)/15/15R/
    15VF – [1..30000]
  • BGP ESR-1000/1200/1500/
    1511 (rev.B)/1700/3100/
    3150/3200/3200L/3250/
    3300/3350 – [1..5000000], ESR-20/21/30/31/100/
    200 – [1..2500000], ESR-10/12V(F)/15/
    15VF/15R – [1..1000000].

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

esr(config-vrf)#ipv6 protocols <PROTOCOL> max-routes <VALUE>

4

Включить и настроить протоколы динамической маршрутизации трафика (Static/OSPF/BGP/IS-IS) в экземпляре VRF (необязательно). См. соответствующий раздел Управление маршрутизацией#Конфигурирование Конфигурирование статических маршрутов, Управление маршрутизацией#Настройка Настройка OSPF и Управление маршрутизацией#Настройка Настройка BGP.



5

В режиме конфигурирования физического/логического интерфейса, туннеля, правила DNAT/SNAT, DAS-сервера или SNMPv3 пользователя указать имя экземпляра VRF для которого будет использоваться (при необходимости).

esr(config-snat-ruleset)# ip vrf forwarding <VRF>

<VRF> – имя экземпляра VRF, задается строкой до 31 символа.

6

Настроить LT-туннель для передачи трафика в глобальный режим или другие VRF (при необходимости).

 

См. раздел Настройка LT-туннелей.

...

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

Алгоритм настройки

ШагОписаниеКомандаКлючи

1

Cоздать IS-IS процесс и перейти в режим настройки параметров этого процесса.

esr(config)# router isis <ID> [vrf <VRF>]

<ID> – номер процесса, принимает значения [1..65535];

<VRF> – имя экземпляра VRF, задается строкой до 31 символа.

2

Установить NET-адрес.

esr(config-isis)# net {<NET>}

<NET> – NET-адрес, формат: ff[.ffff.ffff.ffff.ffff.ffff.ffff].ffff.ffff.ffff.00.

3

Включить IS-IS процесс.

esr(config-isis)# enable


4

Установить алгоритм аутентификации для L2-уровня (необязательно).

esr(config-isis)# authentication domain algorithm <ALGORITHM>

<ALGORITHM> – алгоритм аутентификации:

  • cleartext – пароль, передается открытым текстом;
  • md5 – пароль, хешируется по алгоритму md5.
5

Установить пароль аутентификации для L2-уровня (необязательно).

esr(config-isis)# authentication domain key ascii-text  { <CLEAR-TEXT> | encrypted <ENCRYPTED-TEXT> }

<CLEAR-TEXT> – пароль, задаётся строкой 8 символов;

<ENCRYPTED-TEXT> – зашифрованный пароль размером 8 байт (16 символов) в шестнадцатеричном формате (0xYYYY...) или (YYYY...).

6

Установить список ключей для аутентификации (необязательно).

esr(config-isis)# authentication domain key chain <KEYCHAIN>

<KEYCHAIN> – идентификатор списка ключей, задаётся строкой до 16 символов.

7

Выбрать алгоритм аутентификации для L1-уровня (необязательно).

esr(config-isis)# authentication area algorithm <ALGORITHM>

<ALGORITHM> – алгоритм аутентификации:

  • cleartext – пароль, передается открытым текстом;
  • md5 – пароль, хешируется по алгоритму md5.
8

Установить пароль аутентификации для L1-уровня (необязательно).

esr(config-isis)# authentication area key ascii-text  { <CLEAR-TEXT> | encrypted <ENCRYPTED-TEXT> }

<CLEAR-TEXT> – пароль, задаётся строкой 8 символов;

<ENCRYPTED-TEXT> – зашифрованный пароль размером 8 байт (16 символов) в шестнадцатеричном формате (0xYYYY...) или (YYYY...).

9

Установить список ключей для аутентификации (необязательно).

esr(config-isis)# authentication area key chain <KEYCHAIN>

<KEYCHAIN> – идентификатор списка ключей, задаётся строкой до 16 символов.

10Включить передачу имени маршрутизатора в LSP (необязательно).

esr(config-isis)# hostname dynamic


11Установить уровень работы IS-IS процесса (необязательно).

esr(config-isis)# is-type {<LEVEL>}

<LEVEL> – уровень работы протокола IS-IS:

  • level-1 – работа производится только на 1 уровне;
  • level-1-2 – работа производится и на 1, и на 2 уровне;
  • level-2 – работа производится только на 2 уровне. 
12Установить тип метрики, который будет использоваться в работе IS-IS процесса (необязательно).

esr(config-isis)# metric-style  { narrow | wide | transition } [<LEVEL>]

narrow – принимает и генерирует TLV (о достижимости сетей) старого типа;

wide – принимает и генерирует TLV (о достижимости сетей) нового типа;

transition – принимает и генерирует TLV (о достижимости сетей) нового и старого типа;

<LEVEL> – уровень работы протокола IS-IS:

  • level-1 – работа производится только на 1 уровне;
  • level-2 – работа производится только на 2 уровне. 
13Установить приоритетность маршрутов для данного IS-IS процесса (необязательно).

esr(config-isis)# preference {<VALUE>}

<VALUE> – принимает значения [1..255].
14

Включить работу IS-IS с IPv4 и/или IPv6 адресами (необязательно).

esr(config-isis)# address-family { ipv4 | ipv6 }

ipv4 – семейство адресов IPv4;

ipv6 – семейство адресов IPv6.

15Установить интервал обновления собственных LSP (необязательно).

esr(config-isis)# lsp-refresh-interval  { min | max } <TIME> [ <LEVEL> ]

min – минимальный интервал обновления/генерации;

max – максимальный интервал обновления/генерации;

<TIME> – время в секундах, принимает значения [1..65535];

<LEVEL> – уровень работы протокола IS-IS:

  • level-1 – работа производится только на 1 уровне;
  • level-2 – работа производится только на 2 уровне. 
16Установить время жизни собственных LSP (необязательно).

esr(config-isis)# max-lsp-lifetime <TIME> [<LEVEL>]

<TIME> – время в секундах, принимает значения [1..65535];

<LEVEL> – уровень работы протокола IS-IS:

  • level-1 – работа производится только на 1 уровне;
  • level-2 – работа производится только на 2 уровне. 
17Установить таймаут перед следующим расчётом SPF (необязательно).

esr(config-isis)# spf-timeout <TIME> [<LEVEL>]

<TIME> – время в миллисекундах, принимает значения [1..10000];

<LEVEL> – уровень работы протокола IS-IS:

  • level-1 – работа производится только на 1 уровне;
  • level-2 – работа производится только на 2 уровне. 
18






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







esr(config-isis)# redistribute bgp <AS>  [ route-map <NAME> ] [is-type <LEVEL>]

<AS> – номер автономной системы, может принимать значения [1..4294967295];

<NAME> – имя маршрутной карты, которая будет использоваться для фильтрации и модификации анонсируемых маршрутов, задаётся строкой до 31 символа;

<LEVEL> – уровень работы протокола IS-IS:

  • level-1 – работа производится только на 1 уровне;
  • level-2 – работа производится только на 2 уровне.

esr(config-isis)# redistribute ipv6 bgp <AS>  [ route-map <NAME> ] [is-type <LEVEL>]

esr(config-isis)# redistribute ospf <ID> <ROUTE-TYPE>  [ route-map <NAME> ] [is-type <LEVEL>]

<ID> – номер процесса, может принимать значение [1..65535];

<ROUTE-TYPE> – тип маршрута:

  • intra-area – анонсирование маршрутов OSPF-процесса в пределах зоны;
  • inter-area – анонсирование маршрутов OSPF-процесса между зонами;
  • external1 – анонсирование внешних маршрутов OSPF-формата 1;
  • external2 – анонсирование внешних маршрутов OSPF-формата 2;

<NAME> – имя маршрутной карты, которая будет использоваться для фильтрации и модификации анонсируемых OSPF-маршрутов, задаётся строкой до 31 символа;

<LEVEL> – уровень работы протокола IS-IS:

  • level-1 – работа производится только на 1 уровне;
  • level-2 – работа производится только на 2 уровне.

esr(config-isis)# redistribute ipv6 ospf <ID> <ROUTE-TYPE>  [ route-map <NAME> ] [is-type <LEVEL>]

esr(config-isis)# redistribute isis <ID> <ROUTE-TYPE>  [ route-map <NAME> ] [is-type <LEVEL>]

<ID> – номер процесса, может принимать значение [1..65535];

<ROUTE-TYPE> – тип маршрута:

  • level-1 – анонсирование маршрутов 1 уровня;
  • level-2 – анонсирование маршрутов 1 уровня;
  • inter-area – анонсирование маршрутов IS-IS-процесса между зонами;

<NAME> – имя маршрутной карты, которая будет использоваться для фильтрации и модификации анонсируемых IS-IS-маршрутов, задаётся строкой до 31 символа;

<LEVEL> – уровень работы протокола IS-IS:

  • level-1 – работа производится только на 1 уровне;
  • level-2 – работа производится только на 2 уровне.

esr(config-isis)# redistribute rip  [ route-map <NAME> ] [is-type <LEVEL>]

<NAME> – имя маршрутной карты, которая будет использоваться для фильтрации и модификации анонсируемых RIP-маршрутов, задаётся строкой до 31 символа;

<LEVEL> – уровень работы протокола IS-IS:

  • level-1 – работа производится только на 1 уровне;
  • level-2 – работа производится только на 2 уровне.
esr(config-isis)# redistribute ipv6 rip  [ route-map <NAME> ] [is-type <LEVEL>]

esr(config-isis)# redistribute static  [ route-map <NAME> ] [is-type <LEVEL>]

<NAME> – имя маршрутной карты, которая будет использоваться для фильтрации и модификации анонсируемых статических маршрутов, задаётся строкой до 31 символа;

<LEVEL> – уровень работы протокола IS-IS:

  • level-1 – работа производится только на 1 уровне;
  • level-2 – работа производится только на 2 уровне.

esr(config-isis)# redistribute connected  [ route-map <NAME> ] [is-type <LEVEL>]

<NAME> – имя маршрутной карты, которая будет использоваться для фильтрации и модификации анонсируемых подключённых маршрутов, задаётся строкой до 31 символа;

<LEVEL> – уровень работы протокола IS-IS:

  • level-1 – работа производится только на 1 уровне;
  • level-2 – работа производится только на 2 уровне.
19

Добавить фильтрацию подсетей во входящих или исходящих обновлениях (необязательно).

esr(config-isis)# prefix-list  { ipv6 <LIST_NAME> | <LIST_NAME> } {in|out} 

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

in – фильтрация входящих маршрутов;

out – фильтрация анонсируемых маршрутов.

20

Добавить фильтрацию подсетей во входящих или исходящих обновлениях (необязательно).

esr(config-isis)# route-map <NAME> {in|out} 

<NAME> – имя маршрутной карты, которая будет использоваться для фильтрации и модификации анонсируемых маршрутов, задаётся строкой до 31 символа.

21Установить принадлежность интерфейса к определенному IS-IS процессу.

esr(config-if-gi)# isis instance <ID>

<ID> – номер процесса, принимает значения [1..65535].
22Включить работу протокола IS-IS на интерфейсе.

esr(config-if-gi)# isis enable


23

 


24Включить использование TLV#8 в hello-пакетах (необязательно).

esr(config-if-gi)# isis hello-padding


25Установить приоритет при выборе DIS (необязательно).

esr(config-if-gi)# isis priority <VALUE> [<LEVEL>]

<VALUE> – число, принимающее значения [0..127];

<LEVEL> – уровень работы протокола IS-IS:

  • level-1 – работа производится только на 1 уровне;
  • level-2 – работа производится только на 2 уровне. 
26Установить значение метрики для интерфейсa (необязательно).

esr(config-if-gi)# isis metric <VALUE> [<LEVEL>]

<VALUE> – число, принимающее значения [1..16777215];

<LEVEL> – уровень работы протокола IS-IS:

  • level-1 – работа производится только на 1 уровне;
  • level-2 – работа производится только на 2 уровне. 
27Установить на каком уровне маршрутизации будет работать текущий процесс IS-IS на конкретном интерфейсе (необязательно).

esr(config-if-gi)# isis circuit-type {<LEVEL>}

<LEVEL> – уровень работы протокола IS-IS:

  • level-1 – работа производится только на 1 уровне;
  • level-1-2 – работа производится и на 1, и на 2 уровне;
  • level-2 – работа производится только на 2 уровне. 
28Установить интервал отправки hello-пакетов (необязательно).

esr(config-if-gi)# isis hello-interval <TIME> [<LEVEL>]

<TIME> – время в секундах, принимает значения [1..65535];

<LEVEL> – уровень работы протокола IS-IS:

  • level-1 – работа производится только на 1 уровне;
  • level-2 – работа производится только на 2 уровне. 
29Установить множитель для вычисления и отправки Hold Time (необязательно).

esr(config-if-gi)# isis hello-multiplier <VALUE> [<LEVEL>]

<VALUE> – число, принимающее значения [3..1000];

<LEVEL> – уровень работы протокола IS-IS:

  • level-1 – работа производится только на 1 уровне;
  • level-2 – работа производится только на 2 уровне. 
30Перевести интерфейс в режим работы point-to-point протокола IS-IS (необязательно).

esr(config-if-gi)# isis network point-to-point


31Установить интервал генерации и отправки CSNP (необязательно).

esr(config-if-gi)# isis csnp-interval <TIME> [<LEVEL>]

<TIME> – время в секундах, принимает значения [1..65535];

<LEVEL> – уровень работы протокола IS-IS:

  • level-1 – работа производится только на 1 уровне;
  • level-2 – работа производится только на 2 уровне. 
32Установить интервал генерации и отправки PSNP (необязательно).

esr(config-if-gi)# isis psnp-interval <TIME> [<LEVEL>]

<TIME> – время в секундах, принимает значения [1..65535];

<LEVEL> – уровень работы протокола IS-IS:

  • level-1 – работа производится только на 1 уровне;
  • level-2 – работа производится только на 2 уровне. 
33Установить интервал между передачами LSP в Broadcast-сети (необязательно).

esr(config-if-gi)# isis lsp-interval <TIME> [<LEVEL>]

<TIME> – время в миллисекундах, принимает значения [1-10000];

<LEVEL> – уровень работы протокола IS-IS:

  • level-1 – работа производится только на 1 уровне;
  • level-2 – работа производится только на 2 уровне. 
34Установить интервал повторного распространения LSP в PtP-сети (необязательно).

esr(config-if-gi)# isis lsp-retransmit-interval <TIME> [<LEVEL>]

<TIME> – время в секундах, принимает значения [1..65535];

<LEVEL> – уровень работы протокола IS-IS:

  • level-1 – работа производится только на 1 уровне;
  • level-2 – работа производится только на 2 уровне. 
35Установить алгоритм аутентификации для hello-пакетов (необязательно).

esr(config-if-gi)# isis authentication algorithm  <ALGORITHM> [<LEVEL>]

<ALGORITHM> – алгоритм аутентификации:

  • cleartext – пароль, передается открытым текстом;
  • md5 – пароль, хешируется по алгоритму md5;

<LEVEL> – уровень работы протокола IS-IS:

  • level-1 – работа производится только на 1 уровне;
  • level-2 – работа производится только на 2 уровне. 
36Установить пароль для аутентификации hello-пакетов (необязательно).

esr(config-if-gi)# isis authentication key ascii-text  { <CLEAR-TEXT> | encrypted <ENCRYPTED-TEXT> } [<LEVEL>]

<CLEAR-TEXT> – пароль, задаётся строкой 8 символов;

<ENCRYPTED-TEXT> – зашифрованный пароль размером 8 байт (16 символов) в шестнадцатеричном формате (0xYYYY...) или (YYYY...);

<LEVEL> – уровень работы протокола IS-IS:

  • level-1 – работа производится только на 1 уровне;
  • level-2 – работа производится только на 2 уровне. 
37Установить список ключей для аутентификации hello-пакетов (необязательно).

esr(config-if-gi)# isis authentication key chain <KEYCHAIN> [<LEVEL>]

<KEYCHAIN> – идентификатор списка ключей, задаётся строкой до 16 символов;

<LEVEL> – уровень работы протокола IS-IS:

  • level-1 – работа производится только на 1 уровне;
  • level-2 – работа производится только на 2 уровне. 
38Включить протокол BFD для протокола IS-IS (необязательно).

esr(config-if-gi)# isis bfd-enable

esr(config-if-gi)# isis ipv6-bfd-enable



Scroll Pagebreak

Якорь
Пример настройки IS-IS рисунок
Пример настройки IS-IS рисунок
Пример настройки

...