...
Статические multipath-маршруты позволяют использовать стратегию ECMP для эффективного распределения трафика между несколькими равнозначными маршрутами, без необходимости применения динамических протоколов маршрутизации.
Алгоритм настройки
| Шаг | Описание | Команда | Ключи |
|---|---|---|---|
| 1 | Создать статический multipath ipv4 маршрут. | esr(config)# ip route multipath [ vrf <VRF> ] <SUBNET> [ track <TRACK-ID> ] [ name <NAME>] [ <METRIC> ] | <VRF> – имя экземпляра VRF, задается строкой до 31 символа; <SUBNET> – адрес назначения, может быть задан в следующих видах:
<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> – адрес назначения, может быть задан в следующих видах:
<NAME> – имя (описание) маршрута, текстовая переменная длиной до 31 символа; <METRIC> – метрика маршрута, принимает значения [0..255]. |
3 | Настроить шлюзы для маршрута. | esr(config)# gateway { <NEXTHOP> [ <WEIGHT> ] [ bfd ] [ unit <ID> ] [ track <TRACK-ID> ] | <IF> [ <WEIGHT> ] | <TUN> [ <WEIGHT> ] } | <NEXTHOP> – адрес шлюза, может быть задан в следующих видах:
<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-маршрута.
...
| Блок кода | ||
|---|---|---|
| ||
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:
| Блок кода | ||
|---|---|---|
| ||
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 |
...
| Блок кода | ||
|---|---|---|
| ||
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:
| Блок кода | ||
|---|---|---|
| ||
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.
|
Прежде всего проверяется доступность 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 | ||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
| Блок кода |
|---|
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 | ||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
| Блок кода |
|---|
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
|
...
Необходимо в случае присутствия маршрута 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».
| draw.io Diagram | ||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Решение:
Сконфигурируем необходимые сетевые интерфейсы на каждом устройстве в сети:
...
Быстрая деактивация пиринговых сессий
В случае когда возникновения проблем между соседями BGP, по умолчанию BGP ожидает 180 секунд (3 таймера keepalive) для того чтобы разорвать соседство и отозвать все маршруты, полученные от неактивного соседа. Для обхода данной проблемы существуют методы, которые помогают быстрее обнаружить проблемы в работе сети и произвести отключение соседа, улучшая время реакции на изменения смежности с соседями BGP. Рассмотрим Ниже рассмотрены существующие реализации этих методов.
...
| Шаг | Описание | Команда | Ключи |
|---|---|---|---|
| 1 | Настроить протокол BGP (см. раздел Настройка BGP). | ||
| 2 | Включить поддержку протокола BFD в контексте настройки пира или пир-группы | esr(config-bgp-neighbor)# fall-over bfd | |
Scroll Pagebreak
Пример настройки
Задача:
Необходимо настроить eBGP между маршрутизаторами R1, R2 и включить протокол BFD.
...
| Шаг | Описание | Команда | Ключи |
|---|---|---|---|
| 1 | Настроить протокол BGP (см. раздел Настройка BGP). | ||
| 2 | Описать в маршрутной карте подсеть, наличие которой будет отслеживаться в таблице маршрутизации (см. раздел Настройка Route-map). | ||
| 3 | Активировать функционал, привязав маршрутную карту в соответствующему пиру или пир-группе. | esr(config-bgp-neighbor)# fall-over route-map <NAME> | <NAME> – имя маршрутной карты, задается строкой до 31 символа. |
Scroll Pagebreak
Пример настройки
Задача:
Настроить механизм Fast Peer Deactivation Peer Deactivation между iBGP пирами R1 и R2.
| draw.io Diagram | ||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Решение:
Предварительно настроим связность между маршрутизаторами в схеме:
...
| Название | Семейство адресов (AF) | Манипуляции | Поддержка регулярных выражений в классификации | |
|---|---|---|---|---|
| Тип действия | Поддержка трекинга | |||
| As-path | IPv4, IPv6, VPNv4, L2VPN, Flowspec | Prepend, Replace | | |
| Community | Pv4, IPv6, VPNv4, L2VPN, Flowspec | no-advertise, no-export, добавление в атрибута (add), создание списка (set) | ||
| Extended community | VPNv4, L2VPN | Добавление в список (add), создание списка (set) | ||
| Local preference | IPv4, IPv6, VPNv4, L2VPN, Flowspec | Установка атрибута, увеличение, уменьшение | ||
| MED (metric) | IPv4, IPv6, VPNv4, L2VPN, Flowspec | Установка атрибута, увеличение, уменьшение | ||
| Next-hop | IPv4, IPv6, VPNv4, L2VPN, Flowspec | Установка атрибута | ||
| Origin | IPv4, IPv6, VPNv4, L2VPN, Flowspec | Установка атрибута | ||
| Weight | IPv4, 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> – назначаемое действие:
|
| 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 | Задать значение атрибута 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> – регулярное выражение, задаётся по стандарту 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:
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-адресов, содержащий значения атрибута 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 | <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 | <AS-PATH> – список номеров автономных систем, который будет заменён на локальный номер AS. Задаётся в виде AS,AS,AS, принимает значения [1..4294967295].
|
| 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];
|
| 15 | Задать значение атрибута 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]. |
| 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:
|
| 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> – направление:
|
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> – назначаемое действие:
|
| 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> – имя сконфигурированной маршрутной карты;
|
| esr(config-ipv6-bgp-neighbor)# route-map <NAME><DIRECTION> |
Scroll Pagebreak
Пример настройки
Задача:
Запретить прием маршрутной информации по BGP, содержащей в атрибуте AS-path номер AS 64500.
Cхема:
Базовая конфигурация:
...
| responsive | true |
|---|
| Блок кода | ||
|---|---|---|
| ||
security zone Untrusted
exit
interface gigabitethernet 1/0/1
security-zone Untrusted
ip address 198.51.100.1/30
exit
interface loopback 1
ip address 192.0.2.1/32
exit
security zone-pair Untrusted self
rule 1
action permit
match protocol tcp
match destination-port port-range 179
enable
exit
rule 2
action deny
enable
exit
exit |
| Scroll Pagebreak |
|---|
| Блок кода | ||
|---|---|---|
| ||
security zone Untrusted
exit
security zone Trusted
exit
interface gigabitethernet 1/0/1
security-zone Untrusted
ip address 198.51.100.2/30
exit
interface gigabitethernet 1/0/2
security-zone Trusted
ip address 203.0.113.1/30
exit
security zone-pair Untrusted self
rule 1
action permit
match protocol tcp
match destination-port port-range 179
enable
exit
rule 2
action deny
enable
exit
exit
security zone-pair Trusted self
rule 1
action permit
match protocol tcp
match destination-port port-range 179
enable
exit
rule 2
action deny
enable
exit
exit |
| Scroll Pagebreak |
|---|
| Блок кода | ||
|---|---|---|
| ||
security zone Trusted
exit
interface gigabitethernet 1/0/2
security-zone Trusted
ip address 203.0.113.2/30
exit
interface loopback 1
ip address 192.0.2.2/32
exit
security zone-pair Trusted self
rule 1
action permit
match protocol tcp
match destination-port port-range 179
enable
exit
rule 2
action deny
enable
exit
exit |
Решение:
Первым шагом необходимо
...
Решение:
Первым шагом необходимо создать Route-map на ESR1, в котором с помощью регулярных выражений опишем интересующий AS-path. В случае совпадения укажем – запретить:
...
Механизм позволяет разделить одну автономную систему на множество под-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> – количество маршрутов в маршрутной таблице, принимает значения в диапазоне:
Значение по умолчанию: 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> – алгоритм аутентификации:
|
| 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> – алгоритм аутентификации:
|
| 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:
|
| 12 | Установить тип метрики, который будет использоваться в работе IS-IS процесса (необязательно). | esr(config-isis)# metric-style { narrow | wide | transition } [<LEVEL>] | narrow – принимает и генерирует TLV (о достижимости сетей) старого типа; wide – принимает и генерирует TLV (о достижимости сетей) нового типа; transition – принимает и генерирует TLV (о достижимости сетей) нового и старого типа; <LEVEL> – уровень работы протокола IS-IS:
|
| 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:
|
| 16 | Установить время жизни собственных LSP (необязательно). | esr(config-isis)# max-lsp-lifetime <TIME> [<LEVEL>] | <TIME> – время в секундах, принимает значения [1..65535]; <LEVEL> – уровень работы протокола IS-IS:
|
| 17 | Установить таймаут перед следующим расчётом SPF (необязательно). | esr(config-isis)# spf-timeout <TIME> [<LEVEL>] | <TIME> – время в миллисекундах, принимает значения [1..10000]; <LEVEL> – уровень работы протокола IS-IS:
|
| 18 | Включить анонсирование маршрутов, полученных альтернативным способом (необязательно). | esr(config-isis)# redistribute bgp <AS> [ route-map <NAME> ] [is-type <LEVEL>] | <AS> – номер автономной системы, может принимать значения [1..4294967295]; <NAME> – имя маршрутной карты, которая будет использоваться для фильтрации и модификации анонсируемых маршрутов, задаётся строкой до 31 символа; <LEVEL> – уровень работы протокола IS-IS:
|
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> – тип маршрута:
<NAME> – имя маршрутной карты, которая будет использоваться для фильтрации и модификации анонсируемых OSPF-маршрутов, задаётся строкой до 31 символа; <LEVEL> – уровень работы протокола IS-IS:
| ||
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> – тип маршрута:
<NAME> – имя маршрутной карты, которая будет использоваться для фильтрации и модификации анонсируемых IS-IS-маршрутов, задаётся строкой до 31 символа; <LEVEL> – уровень работы протокола IS-IS:
| ||
esr(config-isis)# redistribute rip [ route-map <NAME> ] [is-type <LEVEL>] | <NAME> – имя маршрутной карты, которая будет использоваться для фильтрации и модификации анонсируемых RIP-маршрутов, задаётся строкой до 31 символа; <LEVEL> – уровень работы протокола IS-IS:
| ||
| 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:
| ||
esr(config-isis)# redistribute connected [ route-map <NAME> ] [is-type <LEVEL>] | <NAME> – имя маршрутной карты, которая будет использоваться для фильтрации и модификации анонсируемых подключённых маршрутов, задаётся строкой до 31 символа; <LEVEL> – уровень работы протокола IS-IS:
| ||
| 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:
|
| 26 | Установить значение метрики для интерфейсa (необязательно). | esr(config-if-gi)# isis metric <VALUE> [<LEVEL>] | <VALUE> – число, принимающее значения [1..16777215]; <LEVEL> – уровень работы протокола IS-IS:
|
| 27 | Установить на каком уровне маршрутизации будет работать текущий процесс IS-IS на конкретном интерфейсе (необязательно). | esr(config-if-gi)# isis circuit-type {<LEVEL>} | <LEVEL> – уровень работы протокола IS-IS:
|
| 28 | Установить интервал отправки hello-пакетов (необязательно). | esr(config-if-gi)# isis hello-interval <TIME> [<LEVEL>] | <TIME> – время в секундах, принимает значения [1..65535]; <LEVEL> – уровень работы протокола IS-IS:
|
| 29 | Установить множитель для вычисления и отправки Hold Time (необязательно). | esr(config-if-gi)# isis hello-multiplier <VALUE> [<LEVEL>] | <VALUE> – число, принимающее значения [3..1000]; <LEVEL> – уровень работы протокола IS-IS:
|
| 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:
|
| 32 | Установить интервал генерации и отправки PSNP (необязательно). | esr(config-if-gi)# isis psnp-interval <TIME> [<LEVEL>] | <TIME> – время в секундах, принимает значения [1..65535]; <LEVEL> – уровень работы протокола IS-IS:
|
| 33 | Установить интервал между передачами LSP в Broadcast-сети (необязательно). | esr(config-if-gi)# isis lsp-interval <TIME> [<LEVEL>] | <TIME> – время в миллисекундах, принимает значения [1-10000]; <LEVEL> – уровень работы протокола IS-IS:
|
| 34 | Установить интервал повторного распространения LSP в PtP-сети (необязательно). | esr(config-if-gi)# isis lsp-retransmit-interval <TIME> [<LEVEL>] | <TIME> – время в секундах, принимает значения [1..65535]; <LEVEL> – уровень работы протокола IS-IS:
|
| 35 | Установить алгоритм аутентификации для hello-пакетов (необязательно). | esr(config-if-gi)# isis authentication algorithm <ALGORITHM> [<LEVEL>] | <ALGORITHM> – алгоритм аутентификации:
<LEVEL> – уровень работы протокола IS-IS:
|
| 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:
|
| 37 | Установить список ключей для аутентификации hello-пакетов (необязательно). | esr(config-if-gi)# isis authentication key chain <KEYCHAIN> [<LEVEL>] | <KEYCHAIN> – идентификатор списка ключей, задаётся строкой до 16 символов; <LEVEL> – уровень работы протокола IS-IS:
|
| 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 рисунок
Пример настройки
| Пример настройки IS-IS рисунок | |
| Пример настройки IS-IS рисунок |
...



