...
- <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].
- <NEXTHOP> – IPv6-адрес шлюза, задаётся в виде X:X:X:X::X, где каждая часть принимает значения в шестнадцатеричном формате [0..FFFF];
- resolve – при указании данного параметра IPv6-адрес шлюза будет рекурсивно вычислен через таблицу маршрутизации. Если при рекурсивном вычислении не удастся найти шлюз из напрямую подключенной подсети, то данный маршрут не будет установлен в систему;
- <ID> – номер юнита, принимает значения [1..4];
- <IF> – имя IPимя IP-интерфейса, задаётся в виде, описанном в разделе разделе Типы и порядок именования интерфейсов маршрутизатора;
- blackhole – при указании команды пакеты до данной подсети будут удаляться устройством без отправки уведомлений отправителю;
- unreachable – при указании команды пакеты до данной подсети будут удаляться устройством, отправитель получит в ответ ICMP Destination unreachable (Host unreachable, code 1);
- prohibit – при указании команды пакеты до данной подсети будут удаляться устройством, отправитель получит в ответ ICMP Destination unreachable (Communication administratively prohibited, code 13);
- [METRIC] – метрика маршрута, принимает значения [0..255];
- <NAME> – имя (описание) маршрута, текстовая переменная длиной до 31 символа;
- bfd – при указании данного ключа активируется проверка next-hop при помощи протокола BFD. В случае недоступности next-hop маршрут удаляется.
...
Статические 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 |
...
| Шаг | Описание | Команда | Ключи | |||
|---|---|---|---|---|---|---|
1 | Настроить приоритетность протокола OSPF-маршрутизации для основной таблицы маршрутизации (необязательно). | esr(config)# ip protocols ospf preference <VALUE> | <VALUE> – приоритетность протокола, принимает значения в диапазоне [1..255]. Значение по умолчанию: 150. | |||
esr(config-vrf)# ip protocols ospf preference <VALUE> | ||||||
2 | Настроить емкость таблиц маршрутизации протокола OSPF (необязательно). | esr(config)# ip protocols ospf max-routes <VALUE> | <VALUE> – количество маршрутов протокола OSPF в маршрутной таблице, принимает значения в диапазоне:
Значение по умолчанию для глобального режима:
Значение по умолчанию для VRF: 0. | |||
esr(config)# ipv6 protocols ospf max-routes <VALUE> | ||||||
3 | Включить вывод информации о состоянии отношений с соседями для протокола маршрутизации OSPF (необязательно). | esr(config)# router ospf log-adjacency-changes | ||||
esr(config)# ipv6 router ospf log-adjacency-changes | ||||||
4 | Создать списки IP-подсетей, которые в дальнейшем будут использоваться для фильтрации анонсируемых и получаемых IP-маршрутов (необязательно). | esr(config)# ip prefix-list <NAME> | <NAME> – имя конфигурируемого списка подсетей, задаётся строкой до 31 символа. | |||
esr(config)# ipv6 prefix-list <NAME> | ||||||
5 | Разрешить (permit) или запретить (deny) списки префиксов (необязательно). | esr(config-pl)# permit [ { object-group <OBJ-GROUP-NETWORK-NAME> | <ADDR/LEN> | <IPV6-ADDR/LEN> } ] [ { eq <LEN> | le <LEN> | ge <LEN> [ le <LEN> ] } ] | <OBJ-GROUP-NETWORK-NAME> – имя профиля IPv4/IPv6-адресов, задаётся строкой до 31 символа; <ADDR> – IP-адрес, задаётся в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255]; <LEN> – длина префикса, принимает значения [1..32] в IP-списках префиксов;
| |||
esr(config-pl)# deny [ { object-group <OBJ-GROUP-NETWORK-NAME> | <ADDR/LEN > | <IPV6-ADDR/LEN> } ] [ { eq <LEN> | le <LEN> | ge <LEN> [ le <LEN> ] } ] | ||||||
6 | Добавить OSPF-процесс в систему и осуществить переход в режим настройки параметров OSPF-процесса. | esr(config)# router ospf <ID> [vrf <VRF>] | <ID> – номер автономной системы процесса, принимает значения [1..65535] <VRF> – имя экземпляра VRF, задается строкой до 31 символа, в рамках которого будет работать протокол маршрутизации. | |||
esr(config)# ipv6 router ospf <ID> [vrf <VRF>] | ||||||
7 | Установить идентификатор маршрутизатора для данного OSPF-процесса. | esr(config-ospf)# router-id { <ID> | <IF> | <TUN> } | <ID> – идентификатор маршрутизатора, задаётся в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255]. <IF> – интерфейс, задаётся в виде, описанном в разделе <TUN> – имя туннеля устройства, задаётся в виде, описанном в разделе Типы и порядок именования туннелей маршрутизатора. | |||
esr(config-ipv6-ospf)# router-id { <ID> | <IF> | <TUN> } | ||||||
8 | Определить приоритетность маршрутов процесса OSPF (необязательно). | esr(config-ospf)# preference <VALUE> | <VALUE> – приоритетность маршрутов процесса OSPF, принимает значения в диапазоне [1..255]. | |||
esr(config-ipv6-ospf)# preference <VALUE> | ||||||
| 9 | Определить референсное значение для автоматического расчёта стоимости (cost) интерфейсов (необязательно). | esr(config-ospf)# auto-cost reference bandwidth <VALUE> | <VALUE> – референсное значение для расчета стоимости интерфейса в диапазоне [1..100000000K]. Значение по умолчанию: 100000K. | |||
| esr(config-ipv6-ospf)# auto-cost reference bandwidth <VALUE> | ||||||
| 10 | Определить максимальное количество равнозначных маршрутов до цели (необязательно). | esr(config-ospf)# maximum-path <PATHS> | <PATHS> – количество равноценных маршрутов до цели, принимает значения в диапазоне [1..32]. Значение по умолчанию: 16. | |||
| esr(config-ipv6-ospf)# maximum-path <PATHS> | ||||||
11 | Включить совместимость с RFC 1583 (необязательно). | esr(config-ospf)# compatible rfc1583 | ||||
esr(config-ipv6-ospf)# compatible rfc1583 | ||||||
12 | Добавить фильтрацию подсетей во входящих или исходящих обновлениях (необязательно). | esr(config-ospf)# prefix-list <PREFIX-LIST-NAME> { in | out } | <PREFIX-LIST-NAME> – имя сконфигурированного списка подсетей, задаётся строкой до 31 символа.
| |||
esr(config-ipv6-ospf)# prefix-list <PREFIX-LIST-NAME> { in | out } | ||||||
13 | Включить анонсирование маршрутов, полученных альтернативным способом (необязательно). | esr(config-ospf)# redistribute static [metric <TYPE> <METRIC>] [ route-map <NAME> ] | <TYPE> – тип атрибута OSPF Metric, принимает значение type-1 и type-2; <METRIC> – значение атрибута OSPF Metric, принимает значения [0..65535]. <NAME> – имя маршрутной карты, которая будет использоваться для фильтрации и модификации анонсируемых статических маршрутов, задаётся строкой до 31 символа. | |||
esr(config-ipv6-ospf)# redistribute static [metric <TYPE> <METRIC>] [route-map <NAME> ] | ||||||
esr(config-ospf)# redistribute connected [metric <TYPE> <METRIC>] [ route-map <NAME> ] | <TYPE> – тип атрибута OSPF Metric, принимает значение type-1 и type-2; <METRIC> – значение атрибута OSPF Metric, принимает значения [0..65535]. <NAME> – имя маршрутной карты, которая будет использоваться для фильтрации и модификации анонсируемых напрямую подключенных подсетей, задаётся строкой до 31 символа. | |||||
esr(config-ipv6-ospf)# redistribute connected [metric <TYPE> <METRIC>] [ route-map <NAME> ] | ||||||
esr(config-ospf)# redistribute rip [metric <TYPE> <METRIC>] [ route-map <NAME> ] | <TYPE> – тип атрибута OSPF Metric, принимает значение type-1 и type-2; <METRIC> – значение атрибута OSPF Metric, принимает значения [0..65535]. <NAME> – имя маршрутной карты, которая будет использоваться для фильтрации и модификации анонсируемых RIP-маршрутов, задаётся строкой до 31 символа. | |||||
esr(config-ospf)# redistribute isis <ID> <ROUTE-TYPE> [metric <TYPE> <METRIC>] [ route-map <NAME> ] | <TYPE> – тип атрибута OSPF Metric, принимает значение type-1 и type-2; <METRIC> – значение атрибута OSPF Metric, принимает значения [0..65535]. <ID> – номер процесса, может принимать значение [1..65535]. <ROUTE-TYPE> – тип маршрута:
<NAME> – имя маршрутной карты, которая будет использоваться для фильтрации и модификации анонсируемых BGP-маршрутов, задаётся строкой до 31 символа. | |||||
| esr(config-ipv6-ospf)# redistribute isis <ID> <ROUTE-TYPE> [ route-map <NAME> ] | ||||||
esr(config-ospf)# redistribute bgp <AS> [metric <TYPE> <METRIC>] [ route-map <NAME> ] | <TYPE> – тип атрибута OSPF Metric, принимает значение type-1 и type-2; <METRIC> – значение атрибута OSPF Metric, принимает значения [0..65535]. <AS> – номер автономной системы, может принимать значения [1..4294967295]; <NAME> – имя маршрутной карты, которая будет использоваться для фильтрации и модификации анонсируемых BGP-маршрутов, задаётся строкой до 31 символа. | |||||
14 | Активировать OSPF-процесс. | esr(config-ospf)# enable|||||
esr(config-ipv6-ospf)# enable | ||||||
15 | Создать OSPF-область и перейти в режим конфигурирования области. | esr(config-ospf)# area <AREA_ID> | <AREA_ID> – идентификатор области, задаётся в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255]. | |||
esr(config-ipv6-ospf)# area <AREA_ID> | ||||||
16 | Включить анонсирование подсетей (необязательно). | esr(config-ospf-area)# network <ADDR/LEN> | <ADDR/LEN> – адрес подсети, указывается в следующем формате: AAA.BBB.CCC.DDD/EE – IP-адрес подсети с маской в форме префикса, где AAA-DDD принимают значения [0..255] и EE принимает значения [1..32]. | |||
esr(config-ipv6-ospf-area)# network <IPV6-ADDR/LEN> | <IPV6-ADDR/LEN> – IPv6-адрес и маска подсети, задаётся в виде X:X:X:X::X/EE, где каждая часть X принимает значения в шестнадцатеричном формате [0..FFFF] и EE принимает значения [1..128]. | |||||
15 | Включить наследование внутренней метрики протокола маршрутизации BGP (MED) в метрику протокола маршрутизации OSPF(Cost) при редистрибуции маршрутов | 17 | Определить тип области (необязательно). | esr(config-ospf-area)# area-type <TYPE> [ no-summary ] | inherit-metric bgp | |
esr(config-ipv6-ospf)# inherit-metric bgp | ||||||
16 | Активировать OSPF-процесс. | esr(config-ospf)# enable | ||||
esr(config-ipv6-ospf)# enable | ||||||
17 | Создать OSPF-область и перейти в режим конфигурирования области. | esr(config-ospf)# area <AREA_ID> | <AREA_ID> – идентификатор области, задаётся в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255]. | |||
esr(config-ipv6-ospf)# area <AREA_ID> | ||||||
18 | Определить тип области (необязательно). | esr(config-ospf-area)# area-type <TYPE> [ no-summary ] | <TYPE> – тип области:
| |||
esr(config-ipv6-ospf-area)# area--area)# area-type <TYPE> [ no-summary ] | ||||||
1819 | Включить генерацию маршрута по умолчанию для NSSA или stub-области и анонсирование его в качестве Type-7 или Type-3 LSA соответственно (необязательно). | esr(config-ospf-area)# default-information-originate | ||||
esr(config-ipv6-ospf-area)# default-information-originate | ||||||
1920 | Определить тип метрики маршрута по умолчанию для NSSA-области (необязательно). | esr(config-ospf-area)# default-metric-type <TYPE> |
| |||
esr(config-ipv6-ospf-area)# default-metric-type <TYPE> | ||||||
2021 | Активировать OSPF-область. | esr(config-ospf-area)# enable | ||||
esr(config-ipv6-ospf-area)# enable | ||||||
2122 | Установить виртуальное соединение между основной и удаленными областями, имеющими между ними несколько областей (необязательно). | esr(config-ospf-area)# virtual-link <ID> | <ID> – идентификатор маршрутизатора, с которым устанавливается виртуальное соединение, задаётся в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255]. | |||
esr(config-ipv6-ospf-area)# virtual-link <ID> | ||||||
2223 | Установить интервал времени в секундах, по истечении которого маршрутизатор повторно отправит пакет, который не получил подтверждения о получении (необязательно). | esr(config-ospf- vlink)# restransmit-interval <TIME> | <TIME> – время в секундах, принимает значения [1..65535]. Значение по умолчанию: 5 секунд. | |||
esr(config-ipv6-ospf- vlink)# restransmit-interval <TIME> | ||||||
2324 | Установить интервал времени в секундах, по истечении которого маршрутизатор отправляет следующий hello-пакет (необязательно). | esr(config-ospf- vlink)# hello-interval <TIME>esr(config-bgp-neighbor)# fall-over bfd | <TIME> – время в секундах, принимает значения [1..65535]. Значение по умолчанию: 10 секунд. | |||
esr(config-ipv6-ospf- vlink)# hello-interval <TIME> | ||||||
2425 | Установить интервал времени в секундах, по истечении которого сосед будет считаться неактивным (необязательно). Этот интервал должен быть кратным значению «hello-interval». | esr(config-ospf- vlink)# dead-interval <TIME> | <TIME> – время в секундах, принимает значения [1..65535]. Для (config-(ipv6)-ospf- vlink) - [2..65535] Значение по умолчанию: 40 секунд. | |||
esr(config-ipv6-ospf-vlink)# dead-interval <TIME> | ||||||
2526 | Определяется интервал времени в секундах, по истечении которого маршрутизатор выберет DR в сети (необязательно). | esr(config-ospf- vlink)# wait-interval <TIME> | <TIME> – время в секундах, принимает значения [2..65535]. | |||
esr(config-ipv6-ospf- vlink)# wait-interval <TIME> | ||||||
2627 | Определить алгоритм аутентификации (необязательно). | esr(config-ospf- vlink)# authentication algorithm <ALGORITHM> | <ALGORITHM> – алгоритм аутентификации:
| |||
2728 | Установить пароль для аутентификации с соседом (необязательно). | esr(config-ospf- vlink)# authentication key ascii-text { <CLEAR-TEXT> | encrypted <ENCRYPTED-TEXT> } | <CLEAR-TEXT> – пароль, задаётся строкой от 8 до 16 символов. <ENCRYPTED-TEXT> – зашифрованный пароль размером от 8 байт до 16 байт (от 16 до 32 символов) в шестнадцатеричном формате (0xYYYY...) или (YYYY...). | |||
2829 | Определить список паролей для аутентификации через алгоритм хеширования md5 (необязательно). | esr(config-ospf- vlink)# authentication key chain <KEYCHAIN> | <KEYCHAIN> – идентификатор списка ключей, задаётся строкой до 16 символов. | |||
2930 | Активировать виртуальное соединение (необязательно). | esr(config-ospf- vlink)# enable | ||||
| 3031 | Перейти в режим конфигурирования интерфейса/туннеля/сетевого моста. | esr(config)# interface <IF-TYPE><IF-NUM> | <IF-TYPE> – тип интерфейса; <IF-NUM> – F/S/P – F-фрейм (1), S – слот (0), P – порт. | |||
esr(config)# tunnel <TUN-TYPE><TUN-NUM> | <TUN-TYPE> – тип туннеля; <TUN-NUM> – номер туннеля. | |||||
esr(config)# bridge <BR-NUM> | <BR-NUM> – номер bridge. | |||||
3132 | Определить принадлежность интерфейса/туннеля/сетевого моста к определенному OSPF-процессу. | esr(config-if-gi)# ip ospf instance <ID> | <ID> – номер процесса, принимает значения [1..65535]. | |||
esr(config-if-gi)# ipv6 ospf instance <ID> | ||||||
3233 | Определить принадлежность интерфейса к определенной области OSPF-процесса. | esr(config-if-gi)# ip ospf area <AREA_ID> | <AREA_ID> – идентификатор области, задаётся в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255]. | |||
esr(config-if-gi)# ipv6 ospf area <AREA_ID> | ||||||
3334 | Включить маршрутизацию по протоколу OSPF на интерфейсе. | esr(config-if-gi)# ip ospf | ||||
esr(config-if-gi)# ipv6 ospf | ||||||
3435 | Включить режим, в котором OSPF-процесс будет игнорировать значение MTU интерфейса во входящих Database Description-пакетах (необязательно). | esr(config-if-gi)# ip ospf mtu-ignore | ||||
esr(config-if-gi)# ipv6 ospf mtu-ignore | ||||||
3536 | Определить алгоритм аутентификации протокола OSPF (необязательно). | esr(config-if-gi)# ip ospf authentication algorithm <ALGORITHM> | <ALGORITHM> – алгоритм аутентификации:
| |||
3637 | Установить пароль для аутентификации с OSPF-соседом при передаче пароля открытым текстом (необязательно). | esr(config-if-gi)# ip ospf authentication key ascii-text { <CLEAR-TEXT> | encrypted <ENCRYPTED-TEXT> } | <CLEAR-TEXT> – пароль, задаётся строкой от 8 до 16 символов; <ENCRYPTED-TEXT> – зашифрованный пароль размером от 8 байт до 16 байт (от 16 до 32 символов) в шестнадцатеричном формате (0xYYYY...) или (YYYY...). | |||
3738 | Определить список паролей для аутентификации по алгоритму хеширования md5 с соседом (необязательно). | esr(config-if-gi)# ip ospf authentication key-chain <KEYCHAIN> | <KEYCHAIN> – идентификатор списка ключей, задаётся строкой до 16 символов. | |||
| 3839 | Определить пропускную способность интерфейса для расчёта стоимости (cost) интерфейса (необязательно). | esr(config-if-gi)# ip ospf bandwidth <VALUE> | <VALUE> – пропускная способность интерфейса, принимает значения [1..100000000K]. | |||
| esr(config-if-gi)# ipv6 ospf bandwidth <VALUE> | ||||||
3940 | Определить интервал времени в секундах, по истечении которого маршрутизатор выберет DR в сети (необязательно). | esr(config-if-gi)# ip ospf wait-interval <TIME> | <TIME> – время в секундах, принимает значения [1..65535]. Значение по умолчанию: 40 секунд. | |||
esr(config-if-gi)# ipv6 ospf wait-interval <TIME> | ||||||
4041 | Установить интервал времени в секундах, по истечении которого маршрутизатор повторно отправит пакет, на который не получил подтверждения о получении (необязательно). | esr(config-if-gi)# ip ospf restransmit-interval <TIME> | <TIME> – время в секундах, принимает значения [1..65535]. Значение по умолчанию: 5 секунд. | |||
esr(config-if-gi)# ipv6 ospf restransmit-interval <TIME> | ||||||
| 4142 | Установить интервал времени в секундах, по истечении которого маршрутизатор отправляет следующий hello-пакет (необязательно). | esr(config-if-gi)# ip ospf hello-interval <TIME> | <TIME> – время в секундах, принимает значения [1..65535]. Значение по умолчанию: 10 секунд. | |||
esr(config-if-gi)# ipv6 ospf hello-interval <TIME> | ||||||
4243 | Установить интервал времени в секундах, по истечении которого сосед будет считаться неактивным (необязательно). Этот интервал должен быть кратным значению hello-interval. | esr(config-if-gi)# ip dead-interval <TIME> | <TIME> – время в секундах, принимает значения [1..65535]. Значение по умолчанию: 40 секунд. | |||
esr(config-if-gi)# ipv6 dead-interval <TIME> | ||||||
4344 | Установить интервал времени, в течение которого NBMA-интерфейс ждет, прежде чем отправить hello-пакет соседу, даже в случае, если сосед неактивен (необязательно). | esr(config-if-gi)# ip poll-interval <TIME> | <TIME> – время в секундах, принимает значения [1 .. 65535]. Значение по умолчанию: 120 секунд. | |||
esr(config-if-gi)# ipv6 poll-interval <TIME> | ||||||
4445 | Задать статический IP-адрес соседа для установления отношения в NMBA и P2MP (Point-to-MultiPoint) сетях (необязательно). | esr(config-if-gi)# ip ospf neighbor <IP> [ non-eligible ] | <IP> – IP-адрес соседа, задаётся в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255]. non-eligible – опциональный параметр, запрещает устройству участвовать в процессе выбора DR в NBMA-сетях. По умолчанию при создании ipv6 ospf neighbor соединение устанавливается в режиме eligible. | |||
esr(config-if-gi)# ipv6 ospf neighbor <IP> [ non-eligible ] | <IPV6-ADDR> – IPv6-адрес соседа, задаётся в виде X:X:X:X::X, где каждая часть принимает значения в шестнадцатеричном формате [0..FFFF]; non-eligible – опциональный параметр, запрещает устройству участвовать в процессе выбора DR в NBMA-сетях. По умолчанию при создании ipv6 ospf neighbor соединение устанавливается в режиме eligible. | |||||
4546 | Определить тип сети для установления OSPF-соседства (необязательно). | esr(config-if-gi)# ip ospf network <TYPE> | <TYPE> – тип сети:
Значение по умолчанию: broadcast. | |||
esr(config-if-gi)# ipv6 ospf network <TYPE> | ||||||
| 4647 | Перевести интерфейс в пассивный режим работы. В этом режиме не рассылаются hello-пакеты, не устанавливаются отношения соседства, но подключенная сеть анонсируется соседям (необязательно). | esr(config-if-gi)# ip ospf passive-interface | ||||
| esr(config-if-gi)# ipv6 ospf passive-interface | ||||||
4748 | Установить приоритет маршрутизатора, который используется для выбора DR и BDR (необязательно). | esr(config-if-gi)# ip ospf priority <VALUE> | <VALUE> – приоритет интерфейса, принимает значения [1..65535]. Значение по умолчанию: 128. | |||
esr(config-if-gi)# ipv6 ospf priority <VALUE> | ||||||
| 4849 | Установить величину метрики на интерфейсе или туннеле (необязательно). | esr(config-if-gi)# ip ospf cost <VALUE> [ track <TRACK-ID> ] | <VALUE> – величина метрики, задаётся в размере [0..32767]. Значение по умолчанию: 10. | |||
esr(config-if-gi)# ipv6 ospf cost <VALUE> [ track <TRACK-ID> ] | ||||||
| 4950 | Включить протокол BFD для протокола OSPF (необязательно). | esr(config-if-gi)# ip ospf bfd-enable | ||||
esr(config-if-gi)# ipv6 ospf bfd-enable | ||||||
5051 | Включить механизм ttl-security hops (необязательно). | esr(config-if-gi)# ip ospf ttl-security-hops <VALUE> | <VALUE> – значение ttl, задаётся в размере [1..255]. Значение по умолчанию: 0. | |||
| esr(config-if-gi)# ipv6 ospf ttl-security-hops <VALUE> |
...
| Блок кода |
|---|
esr(config-ospf)# redistribute rip |
| Scroll Pagebreak |
|---|
Включим OSPF-процесс:
| Блок кода |
|---|
esr(config-ospf)# enable esr(config-ospf)# exit |
| Scroll Pagebreak |
|---|
Соседние маршрутизаторы подключены к интерфейсам gi1/0/5 и gi1/0/15. Для установления соседства с другими маршрутизаторами привяжем их к OSPF-процессу и области. Далее включим на интерфейсе маршрутизацию по протоколу OSPF:
...
Шаг | Описание | Команда | Ключи |
|---|---|---|---|
1 | Настроить приоритетность протокола BGP-маршрутизации для основной таблицы маршрутизации (необязательно). | esr(config)# ip protocols bgp preference <VALUE> | <VALUE> – приоритетность протокола, принимает значения в диапазоне [1..255]. Значение по умолчанию: BGP (170). |
2 | Настроить емкость таблиц маршрутизации протокола BGP (необязательно при использовании глобальной таблицы маршрутизации). | esr(config)# ip protocols bgp max-routes <VALUE> | <VALUE> – количество маршрутов протокола BGP в маршрутной таблице, принимает значения в диапазоне:
Значение по умолчанию для глобальной таблицы маршрутизации:
Значение по умолчанию для VRF: 0. |
esr(config)# ipv6 protocols bgp max-routes <VALUE> | |||
esr(config-vrf)# ip protocols bgp max-routes <VALUE> | |||
esr(config-vrf)# ipv6 protocols bgp max-routes <VALUE> | |||
3 | Включить вывод информации о состоянии отношений с соседями для протокола маршрутизации BGP (необязательно). | esr(config)# router bgp log-neighbor-changes | |
esr(config)# ipv6 router bgp log-neighbor-changes | |||
4 | Включить ECMP и определяется максимальное количество равноценных маршрутов до цели. | esr(config)# router bgp maximum-paths <VALUE> | <VALUE> – количество допустимых равноценных маршрутов до цели, принимает значения [1..16]. |
5 | Выбрать метод фильтрации для передаваемой информации между роутерами (обязательно при конфигурировании eBGP для анонсирования подсетей). | ||
5.1.1 | При выборе метода фильтрации на основе route-map создать список правил, который в дальнейшем будет использоваться для фильтрации анонсируемых и получаемых IP-маршрутов. | esr(config)# route-map <NAME> | <NAME> – имя конфигурируемых правил маршрутизации, задаётся строкой до 31 символа. |
5.1.2 | Создать правило. | (config-route-map)# rule <ORDER> | <ORDER> – номер правила, принимает значения [1 .. 10000]. |
5.1.3 | Определить список подсетей, которые затрагиваются правилом. | esr(config-route-map-rule)#match ip address { <ADDR/LEN> | object-group <OBJ-GRP-NETNAME> } [ { eq <LEN> | le <LEN> | ge <LEN 1> [ le <LEN 2> ] } ] | <ADDR/LEN> – IP-адрес и маска подсети, задается в виде:
<IPV6-ADDR/LEN> – IPv6-адрес и маска подсети, задается в виде:
<OBJ-GRP-NETNAME> – имя профиля IP-адресов, задаётся строкой до 31 символа. При использовании фильтрации по object-group их необходимо создать заранее; <LEN>, <LEN 1>, <LEN 2> – длина префикса, принимает значения [1..32] в IP-списках префиксов для IPv4 и [1..128] для IPv6; eq – при указании команды длина префикса должна соответствовать указанной; le – при указании команды длина префикса должна быть меньше либо соответствовать указанной; ge – при указании команды длина префикса должна быть больше либо соответствовать указанной; ge <LEN 1> le <LEN 2> – при указании команды длина префикса должна быть больше либо соответствовать <LEN>, но меньше или равна <LEN1>. |
esr(config-route-map-rule)#match ipv6 address { <IPV6-ADDR/LEN> | object-group <OBJ-GRP-NETNAME> } [ { eq <LEN> | le <LEN> | ge <LEN 1> [ le <LEN 2> ] } ] | |||
5.1.4 | Разрешить (permit) или запретить (deny) действие для указанных подсетей в правиле. | esr(config-route-map-rule)# action {deny | permit} | |
5.2.1 | При выборе метода фильтрации на основе префикс-листов создать списки IP-подсетей, которые в дальнейшем будут использоваться для фильтрации анонсируемых и получаемых IP-маршрутов. | esr(config)# ip prefix-list <NAME> | <NAME> – имя конфигурируемого списка подсетей, задаётся строкой до 31 символа. |
esr(config)# ipv6 prefix-list <NAME> | |||
5.2.2 | Разрешить (permit) или запретить (deny) списки префиксов. | esr(config-pl)# permit { <ADDR/LEN> | object-group <OBJ-GRP-NETNAME>} [ { eq <LEN> | le <LEN> | ge <LEN 1> [ le <LEN 2> ] } ] | <ADDR/LEN> – IP-адрес и маска подсети, задается в виде:
<IPV6-ADDR/LEN> – IPv6-адрес и маска подсети, задаётся в виде:
<OBJ-GRP-NETNAME> – имя профиля IP-адресов, задаётся строкой до 31 символа. При использовании фильтрации по object-group их необходимо создать заранее; <LEN>, <LEN 1>, <LEN 2> – длина префикса, принимает значения [1..32] в IP-списках префиксов для IPv4 и [1..128] для IPv6; eq – при указании команды длина префикса должна соответствовать указанной; le – при указании команды длина префикса должна быть меньше либо соответствовать указанной; ge – при указании команды длина префикса должна быть больше либо соответствовать указанной; ge <LEN 1> le <LEN 2> – при указании команды длина префикса должна быть больше либо соответствовать <LEN> но меньше или равна <LEN1>. |
esr(config-pl)# deny {<ADDR/LEN> | object-group <OBJ-GRP-NETNAME>} [ { eq <LEN> | le <LEN> | ge <LEN 1> [ le <LEN 2> ] } ] | |||
esr(config-ipv6-pl)# permit { <IPV6-ADDR/LEN> | object-group <OBJ-GRP-NETNAME>} [ { eq <LEN> | le <LEN> | ge <LEN 1> [ le <LEN 2> ] } ] | |||
esr(config-ipv6-pl)# deny {<IPV6-ADDR/LEN> | object-group <OBJ-GRP-NETNAME> } [ { eq <LEN> | le <LEN> | ge <LEN 1> [ le <LEN 2> ] } ] | |||
6 | Добавить BGP-процесс в систему и осуществить переход в режим настройки параметров BGP-процесса. | esr(config)# router bgp <AS> | <AS> – номер автономной системы процесса, принимает значения [1..4294967295]. |
7 | Установить идентификатор маршрутизатора. | esr(config-bgp)# router-id { <ID> | <IF> | <TUN> } | <ID> – идентификатор маршрутизатора, задаётся в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255]. <IF> – интерфейс, задаётся в виде, описанном в разделе <TUN> – имя туннеля устройства, задаётся в виде, описанном в разделе Типы и порядок именования туннелей маршрутизатора. |
8 | Установить идентификатор Route-Reflector кластера, которому принадлежит BGP-процесс маршрутизатора (при необходимости). | esr(config-bgp)# cluster-id <ID> | <ID> – идентификатор Route-Reflector кластера, задаётся в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255]. |
9 | Включить генерацию и отправку маршрута по умолчанию, если маршрут по умолчанию есть в таблице маршрутизации FIB (необязательно). | esr(config-bgp)# default-information-originate | |
10 | Установить временной интервал, по истечении которого идет проверка соединения со встречной стороной (необязательно). | esr(config-bgp-af)# timers keeaplive <TIME> | <TIME> – время в секундах, принимает значения [1..32767]. Значение по умолчанию: 60 секунд. |
11 | Установить временной интервал, по истечении которого встречная сторона считается недоступной (необязательно). | esr(config-bgp-af)# timers holdtime <TIME> | <TIME> – время в секундах, принимает значения [2..65535]. Значение по умолчанию: 180 секунд. |
12 | Установить время минимальной и максимальной задержки, в течение которого запрещено устанавливать соединение, в целях защиты от частых разрывов соединения (необязательно). | esr(config-bgp)# timers error-wait <TIME1> <TIME2> | <TIME1> – время минимальной задержки в секундах, принимает значения [1..65535]; <TIME2> – время максимальной задержки в секундах, принимает значения [1..65535]. |
13 | Определить глобальный алгоритм аутентификации с соседями (при необходимости). | esr(config-bgp)# authentication algorithm <ALGORITHM> | <ALGORITHM> – алгоритм шифрования:
Значение по умолчанию: шифрование не используется. |
14 | Установить глобальный пароль для аутентификации с соседями (используется совместно с "authentication algorithm"). | esr(config-bgp)# authentication key ascii-text { <CLEAR-TEXT> | encrypted <ENCRYPTED-TEXT> } | <CLEAR-TEXT> – пароль, задаётся строкой от 8 до 16 символов; <ENCRYPTED-TEXT> – зашифрованный пароль размером от 8 байт до 16 байт (от 16 до 32 символов) в шестнадцатеричном формате (0xYYYY...) или (YYYY...). |
15 | Активировать BGP-процесс. | esr(config-bgp)# enable | |
16 | Определить тип конфигурируемой маршрутной информации и перейти в данный режим настройки. | esr(config-bgp)# address-family { ipv4 | ipv6 } unicast | ipv 4 – семейство IPv4; ipv 6 – семейство IPv6. |
17 | Включить анонсирование маршрутов процессом BGP полученных альтернативным образом (при необходимости). | esr(config-bgp-af)# redistribute static [ route-map <NAME> ] | <NAME> – имя маршрутной карты, которая будет использоваться для фильтрации и модификации анонсируемых статических маршрутов, задаётся строкой до 31 символа. |
esr(config-bgp-af)# redistribute connected [ route-map <NAME> ] | <NAME> – имя маршрутной карты, которая будет использоваться для фильтрации и модификации анонсируемых напрямую подключенных подсетей, задаётся строкой до 31 символа. | ||
esr(config-bgp-af)# redistribute rip [ route-map <NAME> ] | <NAME> – имя маршрутной карты, которая будет использоваться для фильтрации и модификации анонсируемых RIP-маршрутов, задаётся строкой до 31 символа. | ||
esr(config-bgp-af)# redistribute ospf <ID> <ROUTE-TYPE 1> [<ROUTE-TYPE 2>] [<ROUTE-TYPE 3>] [<ROUTE-TYPE 4>] [ route-map <NAME> ] | <ID> – номер процесса, может принимать значение {1..65535}; <ROUTE-TYPE> – тип маршрута:
<NAME> – имя маршрутной карты, которая будет использоваться для фильтрации и модификации анонсируемых OSPF-маршрутов, задаётся строкой до 31 символа. | ||
esr(config-bgp-af)# redistribute bgp <AS> [ route-map <NAME> ] | <AS> – номер автономной системы, может принимать значения [1..4294967295]; <NAME> – имя маршрутной карты, которая будет использоваться для фильтрации и модификации анонсируемых BGP-маршрутов, задаётся строкой до 31 символа. | ||
18 | Включить анонсирование подсетей. | esr(config-bgp-af)# network <ADDR/LEN> [ route-map <NAME> ] | <ADDR/LEN> – адрес подсети, указывается в одном из следующих формате:
<NAME> – имя маршрутной карты, которая будет использоваться для фильтрации и модификации анонсируемых BGP-маршрутов, задаётся строкой до 31 символа. |
19 | Осуществить выход из режима глобального конфигурирования анонсов маршрутной информации процесса BGP | esr(config-bgp-af)# exit | |
20 | Добавить BGP-соседа и осуществить переход в режим настройки параметров BGP-соседа. | esr(config-bgp)# neighbor <ADDR>|<IPV6-ADDR> | <ADDR> – IP-адрес соседа, задаётся в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255]; <IPV6-ADDR> – IPv6-адрес клиента, задаётся в виде X:X:X:X::X, где каждая часть принимает значения в шестнадцатеричном формате [0..FFFF]. |
21 | Задать описание соседа (необязательно). | esr(config-bgp-neighbor)# description <DESCRIPTION> | <DESCRIPTION> – описание соседа, задаётся строкой до 255 символов. |
22 | Установить временной интервал, по истечении которого идет проверка соединения со встречной стороной | esr(config-bgp-neighbor)# timers keepalive <TIME> | <TIME> – время в секундах, принимает значения [1..65535]. Значение по умолчанию: 60 секунд. |
23 | Установить временной интервал, по истечении которого встречная сторона считается недоступной (необязательно). | esr(config-bgp- neighbor)# timers holdtime <TIME> | <TIME> – время в секундах, принимает значения [1..65535]. Значение по умолчанию: 180 секунд. |
24 | Установить время минимальной и максимальной задержки, в течение которого запрещено устанавливать соединение, в целях защиты от частых разрывов соединения (необязательно). | esr(config-bgp)# timers error-wait <TIME1> <TIME2> | <TIME1> – время минимальной задержки в секундах, принимает значения [1..65535]; <TIME2> – время максимальной задержки в секундах, принимает значения [1..65535]. Значение по умолчанию: 60 и 300 секунд. |
25 | Установить номер автономной системы BGP-соседа. | esr(config-bgp-neighbor)# remote-as <AS> | <AS> – номер автономной системы, принимает значения [1..4294967295]. |
26 | Разрешить подключение к соседям, которые находятся не в напрямую подключенных подсетях (необязательно). | esr(config-bgp-neighbor)# ebgp-multihop <NUM> | <NUM> – максимальное количество хопов при установке EBGP (используется для TTL). |
27 | Указать, что BGP-сосед является Route-Reflector клиентом (необязательно). | esr(config-bgp-neighbor)# route-reflector-client | |
28 | Задать IP/IPv6-адрес маршрутизатора, который будет использоваться в качестве IP/IPv6-адреса источника в отправляемых обновлениях маршрутной информации BGP (необязательно). | esr(config-bgp-neighbor)# update-source { <ADDR> | <IPV6-ADDR> | <IF> | <TUN> } | <ADDR> – IP-адрес источника, задаётся в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255]; <IPV6-ADDR> – IPv6-адрес источника, задаётся в виде X:X:X:X::X, где каждая часть принимает значения в шестнадцатеричном формате [0..FFFF]. <IF> – интерфейс, задаётся в виде, описанном в разделе <TUN> – имя туннеля устройства, задаётся в виде, описанном в разделе Типы и порядок именования туннелей маршрутизатора. |
29 | Включить режим, в котором разрешен приём маршрутов в BGP-атрибуте, AS Path которых содержит номера автономной системы процесса (необязательно). | esr(config-bgp-neighbor)# allow-local-as <NUMBER> | <NUMBER> – пороговое число вхождений номера автономной системы процесса в атрибуте AS Path, при которых маршрут будет принят, диапазон допустимых значений [1..10]. |
| 30 | Включить BFD-протокол на конфигурируемом BGP-соседе (необязательно, используется совместно с параметром update-source). | esr(config-bgp-neighbor)# fall-over bfd | |
| 31 | Включить режим, при котором соседство BGP разрывается, как только указанный маршрут к соседу удаляется из таблицы маршрутизации. | esr(config-bgp-neighbor)# fall-over route-map [ route-map <NAME> ] | <NAME> – имя маршрутной карты, которая будет использоваться для отслеживания наличия маршрута, задаётся строкой до 31 символа. |
32 | Определить алгоритм аутентификации с соседом (необязательно). | esr(config-bgp-neighbor)# authentication algorithm <ALGORITHM> | <ALGORITHM> – алгоритм шифрования: md5 – пароль шифруется по алгоритму md5. |
33 | Установить пароль для аутентификации с соседом (необязательно). | esr(config-bgp-neighbor)# authentication key ascii-text { <CLEAR-TEXT> | encrypted <ENCRYPTED-TEXT> } | <CLEAR-TEXT> – пароль, задаётся строкой от 8 до 16 символов; <ENCRYPTED-TEXT> – зашифрованный пароль размером от 8 байт до 16 байт (от 16 до 32 символов) в шестнадцатеричном формате (0xYYYY...) или (YYYY...). |
34 | Сделать соседство активным. | esr(config-bgp-neighbor)# enable | |
35 | Определить тип конфигурируемой маршрутной информации соседа и перейти в данный режим настройки. | esr(config-bgp-neighbor)# address-family { ipv4 | ipv6 | vpnv4 } unicast | ipv 4 – семейство IPv4; ipv 6 – семейство IPv6; vpnv4 – семейство VPNv4. |
36 | При выборе режима фильтрации на основе префикс-листов добавить фильтрацию подсетей во входящих или исходящих обновлениях (обязательно при конфигурировании eBGP для анонсирования подсетей). | esr(config-bgp-neighbor-af)# prefix-list <PREFIX-LIST-NAME> { in | out } | <PREFIX-LIST-NAME> – имя сконфигурированного списка подсетей, задаётся строкой до 31 символа. in – фильтрация входящих маршрутов; out – фильтрация анонсируемых маршрутов. |
37 | Задать режим, в котором BGP-соседу в обновлении на ряду с другими маршрутами всегда отправляется маршрут по умолчанию. (необязательно, отсутствует для vpnv4). | esr(config-bgp-neighbor-af)# default-originate | |
38 | Задать режим, в котором все обновления отправляются BGP-соседу с указанием в качестве next-hop IP-адреса исходящего интерфейса локального маршрутизатора. По умолчанию изменяет next-hop только eBGP-маршрутов (необязательно, отсутствует для vpnv4). | esr(config-bgp-neighbor-af)# next-hop-self [ all ] | all – заменить next-hop для eBGP-, iBGP-маршрутов. |
39 | Задать режим, в котором для всех маршрутов, полученных от iBGP-пиров, атрибут next-hop не будет изменен при отправке BGP-пирам. | esr(config-bgp-neighbor-af)# next-hop-unchanged | |
40 | Определить приоритетность маршрутов, получаемых от соседа (необязательно). | esr(config-bgp-neighbor-af)# preference <VALUE> | <VALUE> – приоритетность маршрутов соседа, принимает значения в диапазоне [1..255]. Значение по умолчанию: 170. |
4041 | Задать режим, в котором перед отправлением обновления из BGP-атрибута AS Path маршрутов удаляются приватные номера автономных систем (в соответствии с RFC 6996) (необязательно, отсутствует для vpnv4). | esr(config-bgp-neighbor-af)# remove-private-as [ { all | nearest | replace } ] | all – удалить все частные номера AS из AS-path; nearest – заменить ближайшие частные AS в AS-path на рядом стоящую публичную AS; replace – заменить все частные номера AS номером текущего процесса BGP. Значение по умолчанию: all.41 |
| 42 | Включить обмен маршрутной информацией. | esr(config-bgp-neighbor-af)# enable | 42|
| 43 | Задать режим, в котором маршрутизатор будет представляться указанным номером автономной системы вместо реального номера автономной системы (необязательно). | esr(config-bgp-neighbor)# local-as <AS> | <AS> – номер автономной системы, принимает значения [1..4294967295]. | 43
| 44 | Не добавлять указанный в local-as номер автономной системы в AS-Path при приёме маршрута (необязательно). | esr(config-bgp-local-as)# no-prepend | 44|
| 45 | Добавлять в AS-Path только номер автономной системы, указанный в local-as (необязательно). | esr(config-bgp-local-as)# replace-as | 45|
| 46 | Включить агрегирование маршрутной информации (необязательно). | esr(config-bgp)# aggregate-address { <ADDR/LEN> | <IPV6-ADDR/LEN } | <ADDR/LEN> – IP-адрес и маска подсети, задается в виде:
<IPV6-ADDR/LEN> – IPv6-адрес и маска подсети, задается в виде:
| 46
| 47 | Задать route-map для установки дополнительных условий агрегирования маршрутов (необязательно). | esr(config-bgp-aggregate)# advertise-map [ route-map <NAME> ] | <NAME> – имя маршрутной карты, которая будет использоваться для задания условий агрегирования BGP-маршрутов, задаётся строкой до 31 символа. | 47
| 48 | Добавлять в AS-Path агрегированного маршрута номера автономных систем из AS-Path его компонентов (необязательно). | esr(config-bgp-aggregate)# as-set | 48|
| 49 | Задать route-map для установки дополнительных атрибутов агрегированного маршрута (необязательно). | esr(config-bgp-aggregate)# attribute-map [ route-map <NAME> ] | <NAME> – имя маршрутной карты, которая будет использоваться для задания атрибутов агрегированного BGP-маршрута, задаётся строкой до 31 символа. | 49
| 50 | Подавлять все компоненты агрегированного маршрута (необязательно). | esr(config-bgp-aggregate)# summary-only | 50|
| 51 | Задать route-map для подавления компонентов агрегированного маршрута (необязательно). | esr(config-bgp-aggregate)# suppress-map [ route-map <NAME> ] | <NAME> – имя маршрутной карты, которая будет использоваться для задания подавляемых компонентов агрегированного BGP-маршрута, задаётся строкой до 31 символа. | 51
| 52 | Задать возможность динамически устанавливать BGP-сессию без указания конкретного адреса соседа. Соседство может быть установлено с любым адресом, попадающим в указанную подсеть (необязательно). | esr(config-bgp-aggregate)# listen-range { <ADDR/LEN> | <IPV6-ADDR/LEN } | <ADDR/LEN> – IP-адрес и маска подсети, задается в виде:
<IPV6-ADDR/LEN> – IPv6-адрес и маска подсети, задается в виде:
| 52
| 53 | Разрешить возможность динамической установки BGP-сессии только с соседями, которые имеют определённые номера AS. | esr(config-bgp-listen)# as-range <AS-PATH> | <AS-PATH> – список номеров автономных систем, задается в виде AS-AS,AS,AS-AS, принимает значения [1..4294967295]. |
| Подсказка |
|---|
Часто бывает, особенно при конфигурировании iBGP, что в одном bgp-процессе необходимо настроить несколько bgp neighbor с одинаковыми параметрами. Во избежание избыточности конфигурации рекомендуется использовать bgp peer-group, в которой возможно описать общие параметры, а в конфигурации bgp neighbor просто указать причастность к bgp peer-group. |
| Scroll Pagebreak |
|---|
Пример настройки
Задача:
Настроить BGP-протокол на маршрутизаторе R3 со следующими параметрами:
- собственные подсети: 80.66.0.0/24, 80.66.16.0/24;
- анонсирование подсетей, подключенных напрямую;
- собственная AS 2500;
- первое соседство – подсеть 219.0.0.0/30, собственный IP-адрес 219.0.0.1, IP-адрес соседа 219.0.0.2, AS2500;
- второе соседство – подсеть 185.0.0.0/30, собственный IP-адрес 185.0.0.1, IP-адрес соседа 185.0.0.2, AS20.
scroll-pagebreak
Решение:
Сконфигурируем необходимые сетевые интерфейсы:
| Блок кода |
|---|
esr-R3(config)# interface gigabitethernet 1/0/1 esr-R3(config-if-gi)# ip address 185.0.0.1/30 esr-R3(config-if-gi)# exit esr-R3(config)# interface gigabitethernet 1/0/2 esr-R3(config-if-gi)# ip address 219.0.0.1/30 esr-R3(config-if-gi)# exit esr-R3(config)# interface gigabitethernet 1/0/3 esr-R3(config-if-gi)# ip address 80.66.0.1/24 esr-R3(config-if-gi)# exit esr-R3(config)# interface gigabitethernet 1/0/4 esr-R3(config-if-gi)# ip address 80.66.16.1/24 esr-R3(config-if-gi)# exit |
| Scroll Pagebreak |
|---|
Сконфигурируем firewall для приема маршрутизатором BGP-трафика из зоны безопасности WAN:
...
| Блок кода |
|---|
esr-R3(config)# interface gigabitethernet 1/0/1 esr-R3(config-if-gi)# security-zone wan esr-R3(config-if-gi)# exit esr-R3(config)# interface gigabitethernet 1/0/2 esr-R3(config-if-gi)# security-zone wan esr-R3(config-if-gi)# exit |
| Scroll Pagebreak |
|---|
Создадим route-map, который будет использоваться в дальнейшем при настройке разрешающих анонсов роутерам из другой AS:
...
| Блок кода |
|---|
esr-R3(config-bgp)# address-family ipv4 unicast esr-R3(config-bgp-af)# redistribute connected esr-R3(config-bgp-af)# exit |
| Scroll Pagebreak |
|---|
Создадим соседство с роутером R2 по iBGP:
...
| Информация |
|---|
Алгоритм применяется для следующих address family: unicast IPv4, unicast IPv6, VPNv4 unicast, VPLS. |
...
| Информация | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Для 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 |
Пример настройки
Задача:
Запретить прием маршрутной информации по BGP, содержащей в атрибуте AS-path номер AS 64500.
Cхема:
Базовая конфигурация:
...
| responsive | true |
|---|
| <NAME><DIRECTION> |
Scroll Pagebreak
Пример настройки
Задача:
Запретить прием маршрутной информации по BGP, содержащей в атрибуте AS-path номер AS 64500.
Cхема:
Базовая конфигурация:
| Блок кода | ||
|---|---|---|
| ||
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 |
|---|
...
| Протокол | Режим |
|---|---|
| iBGP | multi-hop |
| eBGP | single-hop |
| eBGP multi-hop | multi-hop |
| OSPF | single-hop |
| IS-IS | single-hop |
| Static route | single-hop |
| RIP | single-hop |
| LDP interface | single-hop |
| LDP target | multi-hop |
Для изменения поведения (режима) необходимо вручную переопределить параметры сессии, указав необходимый режим. Рассмотрим на примере.
| Scroll Pagebreak |
|---|
...
Шаг | Описание | Команда | Ключи |
|---|---|---|---|
1 | Активировать BFD для протокола OSPF на интерфейсе. | esr(config-if-gi)# ip ospf bfd-enable | |
2 | Активировать BFD для neighbor протокола BGP. | esr(config-bgp-neighbor)# fall-over bfd | |
| 3 | Активировать BFD для протокола RIP на интерфейсе. | esr(config-if-gi)# ip rip bfd-enable | |
4 | Задать интервал, по истечении которого происходит отправка BFD-сообщения соседу. Глобально (необязательно). | esr(config)# ip bfd idle-tx-interval <TIMEOUT> | <TIMEOUT> – интервал, по истечении которого происходит отправка BFD-пакета, принимает значение в миллисекундах в диапазоне:
По умолчанию: 1 секунда. |
5 | Включить логирование изменений состояния BFD-протокола (необязательно). | esr(config)# ip bfd log-adjacency-changes | |
6 | Задать минимальный интервал, по истечении которого сосед должен сгенерировать BFD-сообщение. | esr(config)# ip bfd min-rx-interval <TIMEOUT> | <TIMEOUT> – интервал, по истечении которого должна происходить отправка BFD-сообщения соседом, принимает значение в миллисекундах в диапазоне:
По умолчанию:
|
7 | Задать минимальный интервал, по истечении которого происходит отправка BFD-сообщения соседу. | esr(config)# ip bfd min-tx-interval <TIMEOUT> | <TIMEOUT> – интервал, по истечении которого должна происходить отправка BFD-сообщения соседом, принимает значение в миллисекундах в диапазоне:
По умолчанию:
|
8 | Задать число пропущенных пакетов, после достижения которого BFD-сосед считается недоступным. Глобально. | esr(config)# ip bfd multiplier <COUNT> | <COUNT> – число пропущенных пакетов, после достижения которого сосед считается недоступным, принимает значение в диапазоне [1..100]. По умолчанию: 5. |
9 | Запустить работу механизма BFD с определенным IP-адресом. | esr(config)# ip bfd neighbor <ADDR> [ { interface <IF> | tunnel <TUN> } ] | <ADDR> – IP-адрес шлюза, задаётся в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255]; <IF> – интерфейс или группы интерфейсов; <TUN> – тип и номер туннеля; <VRF> – имя экземпляра VRF, задается строкой до 31 символа; multihop – ключ для установки TTL=255, для работы механизма BFD через маршрутизируемую сеть. |
10 | Перевести BFD-сессию в пассивный режим, то есть BFD-сообщения не будут отправляться до тех пор, пока не будут получены сообщения от BFD-соседа. Глобально (необязательно). | esr(config)# ip bfd passive | |
11 | Задать интервал, по истечении которого происходит отправка BFD-сообщения соседу. | esr(config-if-gi)# ip bfd idle-tx-interval <TIMEOUT> | <TIMEOUT> – интервал, по истечении которого происходит отправка BFD-пакета, принимает значение в миллисекундах в диапазоне:
По умолчанию: 1 секунда. |
12 | Задать минимальный интервал, по истечении которого сосед должен сгенерировать BFD-сообщение. | esr(config-if-gi)# ip bfd min-rx-interval <TIMEOUT> | <TIMEOUT> – интервал, по истечении которого должна происходить отправка BFD-сообщения соседом, принимает значение в миллисекундах в диапазоне:
По умолчанию:
|
13 | Задать минимальный интервал, по истечении которого происходит отправка BFD-сообщения соседу. | esr(config-if-gi)# ip bfd min-tx-interval <TIMEOUT> | <TIMEOUT> – интервал, по истечении которого должна происходить отправка BFD-сообщения соседом, принимает значение в миллисекундах в диапазоне:
По умолчанию:
|
14 | Задать число пропущенных пакетов, после достижения которого BFD-сосед считается недоступным. | esr(config-if-gi)# ip bfd multiplier <COUNT> | <COUNT> – число пропущенных пакетов, после достижения которого сосед считается недоступным, принимает значение в диапазоне [1..100]. По умолчанию: 5. |
15 | Перевести BFD-сессию в пассивный режим, то есть BFD-сообщения не будут отправляться до тех пор, пока не будут получены сообщения от BFD-соседа. На интерфейсе | esr(config-if-gi)# ip bfd passive | |
| 16 | При активизации работы протока BFD на интерфейсе с включенным firewall, необходимо разрешить работу протокола UDP порт назначения – 3784 из зоны сконфигурированной на интерфейсе в зону self. Как создать необходимое правило описано в разделе Конфигурирование Firewall. | ||
...
Шаг | Описание | Команда | Ключи |
|---|---|---|---|
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 рисунок |
...




