| Оглавление | ||
|---|---|---|
|
Политика фильтрации маршрутной информацииЯкорь Политика фильтрации маршрутной информации Политика фильтрации маршрутной информации
| Политика фильтрации маршрутной информации | |
| Политика фильтрации маршрутной информации |
Фильтрация маршрутной информации в динамических протоколах маршрутизации осуществляется с помощью prefix-list и route-map. Структурно они состоят из последовательных условий, совпадений (match) и действий, применяемых для заданных условий – permit/deny. В зависимости от политики обработки маршрутов (импорт или экспорт) конечное неявное условие (правило) может быть разным для некоторых протоколов маршрутизации.
...
| in/out | Политика по умолчанию | Способы Анонсирования | Способы фильтрации | Уровни применения политик фильтрации |
|---|---|---|---|---|
| Import | Получение маршрутной информации не ограничено. | Network, Redistribute | Route-map — последнее (неявное) правило запрещает все, что явно не разрешено предыдущими правилами. Prefix-list — последнее (неявное) правило запрещает все, что явно не разрешено предыдущими правилами. | address-family, peer-group, neighbor |
| Export | Анонсируются все маршруты, попавшие в RIB по протоколу BGP. | Route-map — последнее (неявное) правило разрешает все все, что явно не разрешено не запрещено предыдущими правилами. Prefix-list — последнее (неявное) правило разрешает все все, что явно не разрешено запрещено предыдущими правилами. |
Протокол eBGP
...
<VRF> – имя экземпляра VRF, задается строкой до 31 символа;
<SUBNET> – адрес назначения, может быть задан в следующих видах:
AAA.BBB.CCC.DDD – IP-адрес хоста, где каждая часть принимает значения [0..255];
AAA.BBB.CCC.DDD/NN – IP-адрес подсети с маской в виде префикса, где AAA-DDD принимают значения [0..255] и NN принимает значения [1..32].
<NEXTHOP> – IP-адрес шлюза, задаётся в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255];
resolve – при указании данного параметра IP-адрес шлюза будет рекурсивно вычислен через таблицу маршрутизации. Если при рекурсивном вычислении не удастся найти шлюз из напрямую подключенной подсети, то данный маршрут не будет установлен в систему;
<ID> – номер юнита, принимает значения [1..24];
<IF> – имя IP-интерфейса, задаётся в виде, описанном в разделе Типы и порядок именования интерфейсов маршрутизатора;
<TUN> – имя туннеля, задаётся в виде, описанном в разделе Типы и порядок именования туннелей маршрутизатора;
<RULE> – номер правила wan, задаётся в диапазоне [1..50];
blackhole – при указании команды пакеты до данной подсети будут удаляться устройством без отправки уведомлений отправителю;
unreachable – при указании команды пакеты до данной подсети будут удаляться устройством, отправитель получит в ответ ICMP Destination unreachable (Host unreachable, code 1);
prohibit – при указании команды пакеты до данной подсети будут удаляться устройством, отправитель получит в ответ ICMP Destination unreachable (Communication administratively prohibited, code 13);
<METRIC> – метрика маршрута, принимает значения [0..255];
<TRACK-ID> – идентификатор Tracking-объекта. Если маршрут привязан к Tracking-объекту, то он появится в системе только при выполнении всех условий, заданных в объекте;
<NAME> – имя (описание) маршрута, текстовая переменная длиной до 31 символа;
bfd – при указании данного ключа активируется удаление статического маршрута в случае недоступности next-hop. Для работы данного механизма должен быть запущен механизм BFD с IP-адресом next-hop (см. раздел ip bfd neighbor).
Проверка next-hop при помощи протокола BFD. В случае недоступности next-hop маршрут удаляется.
...
- <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..24];
- <IF> – имя 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 маршрут удаляется.
...
| Блок кода |
|---|
esr# hostname R1 |
| Scroll Pagebreak |
|---|
Для интерфейса gi1/0/1 укажем адрес 192.168.1.1/24 и зону «LAN». Через данный интерфейс R1 будет подключен к сети 192.168.1.0/24:
...
| Шаг | Описание | Команда | Ключи |
|---|---|---|---|
| 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..24]; <IF> – имя IP-интерфейса, задаётся в виде, описанном в разделе Типы и порядок именования интерфейсов маршрутизатора; <TUN> – имя туннеля, задаётся в виде, описанном в разделе Типы и порядок именования туннелей маршрутизатора; <TRACK-ID> – идентификатор Tracking-объекта. Если шлюз привязан к Tracking-объекту, то он появится в системе только при выполнении всех условий, заданных в объекте. Доступно только для ipv4; bfd – при указании данного ключа активируется проверка доступности шлюза при помощи протокола BFD. В случае недоступности шлюз удаляется из таблицы маршрутизации. |
...
| Якорь | ||||
|---|---|---|---|---|
|
Scroll Pagebreak
Решение:
Предварительно нужно настроить IP-адреса на интерфейсах согласно схеме сети, приведенной на рисунке.
...
| Шаг | Описание | Команда | Ключи |
|---|---|---|---|
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]. | ||
17 | Определить тип области (необязательно). | esr(config-ospf-area)# area-type <TYPE> [ no-summary ] | <TYPE> – тип области:
|
esr(config-ipv6-ospf-area)# area-type <TYPE> [ no-summary ] | |||
18 | Включить генерацию маршрута по умолчанию для NSSA или stub-области и анонсирование его в качестве Type-7 или Type-3 LSA соответственно (необязательно). | esr(config-ospf-area)# default-information-originate | |
esr(config-ipv6-ospf-area)# default-information-originate | |||
19 | Определить тип метрики маршрута по умолчанию для NSSA-области (необязательно). | esr(config-ospf-area)# default-metric-type <TYPE> |
|
esr(config-ipv6-ospf-area)# default-metric-type <TYPE> | |||
20 | Активировать OSPF-область. | esr(config-ospf-area)# enable | |
esr(config-ipv6-ospf-area)# enable | |||
21 | Установить виртуальное соединение между основной и удаленными областями, имеющими между ними несколько областей (необязательно). | esr(config-ospf-area)# virtual-link <ID> | <ID> – идентификатор маршрутизатора, с которым устанавливается виртуальное соединение, задаётся в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255]. |
esr(config-ipv6-ospf-area)# virtual-link <ID> | |||
22 | Установить интервал времени в секундах, по истечении которого маршрутизатор повторно отправит пакет, который не получил подтверждения о получении (необязательно). | esr(config-ospf- vlink)# restransmit-interval <TIME> | <TIME> – время в секундах, принимает значения [1..65535]. Значение по умолчанию: 5 секунд. |
esr(config-ipv6-ospf- vlink)# restransmit-interval <TIME> | |||
23 | Установить интервал времени в секундах, по истечении которого маршрутизатор отправляет следующий 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> | |||
24 | Установить интервал времени в секундах, по истечении которого сосед будет считаться неактивным (необязательно). Этот интервал должен быть кратным значению «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> | |||
25 | Определяется интервал времени в секундах, по истечении которого маршрутизатор выберет DR в сети (необязательно). | esr(config-ospf- vlink)# wait-interval <TIME> | <TIME> – время в секундах, принимает значения [2..65535]. |
esr(config-ipv6-ospf- vlink)# wait-interval <TIME> | |||
26 | Определить алгоритм аутентификации (необязательно). | esr(config-ospf- vlink)# authentication algorithm <ALGORITHM> | <ALGORITHM> – алгоритм аутентификации:
|
27 | Установить пароль для аутентификации с соседом (необязательно). | 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...). |
28 | Определить список паролей для аутентификации через алгоритм хеширования md5 (необязательно). | esr(config-ospf- vlink)# authentication key chain <KEYCHAIN> | <KEYCHAIN> – идентификатор списка ключей, задаётся строкой до 16 символов. |
29 | Активировать виртуальное соединение (необязательно). | esr(config-ospf- vlink)# enable | |
| 30 | Перейти в режим конфигурирования интерфейса/туннеля/сетевого моста. | 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. | ||
31 | Определить принадлежность интерфейса/туннеля/сетевого моста к определенному OSPF-процессу. | esr(config-if-gi)# ip ospf instance <ID> | <ID> – номер процесса, принимает значения [1..65535]. |
esr(config-if-gi)# ipv6 ospf instance <ID> | |||
32 | Определить принадлежность интерфейса к определенной области 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> | |||
33 | Включить маршрутизацию по протоколу OSPF на интерфейсе. | esr(config-if-gi)# ip ospf | |
esr(config-if-gi)# ipv6 ospf | |||
34 | Включить режим, в котором OSPF-процесс будет игнорировать значение MTU интерфейса во входящих Database Description-пакетах (необязательно). | esr(config-if-gi)# ip ospf mtu-ignore | |
esr(config-if-gi)# ipv6 ospf mtu-ignore | |||
35 | Определить алгоритм аутентификации протокола OSPF (необязательно). | esr(config-if-gi)# ip ospf authentication algorithm <ALGORITHM> | <ALGORITHM> – алгоритм аутентификации:
|
36 | Установить пароль для аутентификации с 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...). |
37 | Определить список паролей для аутентификации по алгоритму хеширования md5 с соседом (необязательно). | esr(config-if-gi)# ip ospf authentication key-chain <KEYCHAIN> | <KEYCHAIN> – идентификатор списка ключей, задаётся строкой до 16 символов. |
| 38 | Определить пропускную способность интерфейса для расчёта стоимости (cost) интерфейса (необязательно). | esr(config-if-gi)# ip ospf bandwidth <VALUE> | <VALUE> – пропускная способность интерфейса, принимает значения [1..100000000K]. |
| esr(config-if-gi)# ipv6 ospf bandwidth <VALUE> | |||
39 | Определить интервал времени в секундах, по истечении которого маршрутизатор выберет DR в сети (необязательно). | esr(config-if-gi)# ip ospf wait-interval <TIME> | <TIME> – время в секундах, принимает значения [1..65535]. Значение по умолчанию: 40 секунд. |
esr(config-if-gi)# ipv6 ospf wait-interval <TIME> | |||
40 | Установить интервал времени в секундах, по истечении которого маршрутизатор повторно отправит пакет, на который не получил подтверждения о получении (необязательно). | esr(config-if-gi)# ip ospf restransmit-interval <TIME> | <TIME> – время в секундах, принимает значения [1..65535]. Значение по умолчанию: 5 секунд. |
esr(config-if-gi)# ipv6 ospf restransmit-interval <TIME> | |||
| 41 | Установить интервал времени в секундах, по истечении которого маршрутизатор отправляет следующий hello-пакет (необязательно). | esr(config-if-gi)# ip ospf hello-interval <TIME> | <TIME> – время в секундах, принимает значения [1..65535]. Значение по умолчанию: 10 секунд. |
esr(config-if-gi)# ipv6 ospf hello-interval <TIME> | |||
42 | Установить интервал времени в секундах, по истечении которого сосед будет считаться неактивным (необязательно). Этот интервал должен быть кратным значению hello-interval. | esr(config-if-gi)# ip dead-interval <TIME> | <TIME> – время в секундах, принимает значения [1..65535]. Значение по умолчанию: 40 секунд. |
esr(config-if-gi)# ipv6 dead-interval <TIME> | |||
43 | Установить интервал времени, в течение которого NBMA-интерфейс ждет, прежде чем отправить hello-пакет соседу, даже в случае, если сосед неактивен (необязательно). | esr(config-if-gi)# ip poll-interval <TIME> | <TIME> – время в секундах, принимает значения [1 .. 65535]. Значение по умолчанию: 120 секунд. |
esr(config-if-gi)# ipv6 poll-interval <TIME> | |||
44 | Задать статический 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. | ||
45 | Определить тип сети для установления OSPF-соседства (необязательно). | esr(config-if-gi)# ip ospf network <TYPE> | <TYPE> – тип сети:
Значение по умолчанию: broadcast. |
esr(config-if-gi)# ipv6 ospf network <TYPE> | |||
| 46 | Перевести интерфейс в пассивный режим работы. В этом режиме не рассылаются hello-пакеты, не устанавливаются отношения соседства, но подключенная сеть анонсируется соседям (необязательно). | esr(config-if-gi)# ip ospf passive-interface | |
| esr(config-if-gi)# ipv6 ospf passive-interface | |||
47 | Установить приоритет маршрутизатора, который используется для выбора DR и BDR (необязательно). | esr(config-if-gi)# ip ospf priority <VALUE> | <VALUE> – приоритет интерфейса, принимает значения [1..65535]. Значение по умолчанию: 120128. |
esr(config-if-gi)# ipv6 ospf priority <VALUE> | |||
| 48 | Установить величину метрики на интерфейсе или туннеле (необязательно). | esr(config-if-gi)# ip ospf cost <VALUE> | <VALUE> – величина метрики, задаётся в размере [0..32767]. Значение по умолчанию: 10. |
esr(config-if-gi)# ipv6 ospf cost <VALUE> | |||
| 49 | Включить протокол BFD для протокола OSPF (необязательно). | esr(config-if-gi)# ip ospf bfd-enable | |
esr(config-if-gi)# ipv6 ospf bfd-enable | |||
50 | Включить механизм 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)# enable esr(config-ospf)# exit |
| Scroll Pagebreak |
|---|
Соседние маршрутизаторы подключены к интерфейсам gi1/0/5 и gi1/0/15. Для установления соседства с другими маршрутизаторами привяжем их к OSPF-процессу и области. Далее включим на интерфейсе маршрутизацию по протоколу OSPF:
...
Метод на основе протокола BFD
BFD (Bidirectional Forwarding Detection) — протокол для быстрого обнаружения проблем на канальном уровне. В текущей реализации для его работы необходима настройка с обеих сторон (на каждом BGP-пире).
...
Метод на основе Fast Peer Deactivation (Fall-over)
BGP Fast Peer Deactivation – это метод оптимизации конвергенции BGP, при котором соседство BGP разрывается, как только указанный маршрут (или более/менее специфичный) к соседу удаляется из таблицы маршрутизации. Механизм реализован с совместным использованием маршрутных карт (route-map).
...
| Блок кода |
|---|
R2# sh bgp neighbors
BGP neighbor is 192.0.2.254
BGP state: Established
Type: Static neighbor
Neighbor address: 192.0.2.254
Neighbor AS: 65500
Neighbor ID: 192.0.2.254
Neighbor caps: refresh enhanced-refresh restart-aware AS4
Session: internal multihop AS4
Source address: 192.0.2.255
Weight: 0
Hold timer: 164/180
Keepalive timer: 23/60
Uptime: 437 s
Fall-over route-map: Failover <---- Функционал активирован
R2# sh bgp neighbors 192.0.2.254
BGP neighbor is 192.0.2.254
BGP state: Down
Type: Static neighbor
Neighbor address: 192.0.2.254
Neighbor AS: 65500
Fall-over route-map: Failover
Last error: Error: Fall over route-map <---- Сессия BGP была разорвана из-за отработавшего механизма Fast Peer Deactivation |
Настройка завершена.
Настройка политик маршрутизации Route-map
| Якорь | ||||
|---|---|---|---|---|
|
Route-map – это механизм, позволяющий применять условия (условные фильтры) и действия к маршрутам и ,соответственно, к трафику. Он используется для фильтрации, изменения и управления атрибутами протокола BGP, обеспечивая расширенные возможности по сравнению с Prefix-list. Подробная логика работы описана в разделе Политика фильтрации маршрутной информации.
Функциональные возможности Route могут служить фильтрами, позволяющими обрабатывать маршрутную информацию при приеме этой информации от соседа либо при ее передаче соседу. Обработка может включать в себя фильтрацию на основании различных признаков маршрута, а также установку атрибутов на соответствующие маршруты.
Функциональные возможности route-map позволяют работать со следующими атрибутами:
| Название | Семейство адресов (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> |
| Scroll Pagebreak |
|---|
Пример настройки 1
Задача:
Назначить сommunity для маршрутной информации, приходящей из AS 64498.
Cхема:
Базовая конфигурация:
| AUI Tab Group | ||
|---|---|---|
| ||
Scroll Pagebreak
Решение:
Создаем политику на ESR1:
...
Если AS PATH содержит AS 64497, то назначаем ему сommunity 64497:100, выходим и применяем конфигурацию:
...
| Блок кода | ||
|---|---|---|
| ||
ESR1# sh ip route-map set_community
Order: 1
Description: --
Matching pattern:
Access group --
AS path contains 64497
Community --
Extcommunity --
BGP local-preference: --
BGP metric (MED): --
BGP weight: --
Address (object-group): --
Next hop (object-group): --
Route source (object-group): --
RIP metric --
RIP tag --
OSPF metric type --
OSPF metric --
OSPF tag --
Actions:
Decision: Permit
Route next hop: --
Route IPv6 next hop: --
IP address: --
IPv6 address: --
AS path (prepand): --
Community: 64497:100
Extcommunity: --
Local preference: --
BGP next hop address: --
BGP IPv6 next hop address: --
BGP metric (MED): --
BGP weight: --
Origin: --
RIP metric --
RIP tag --
OSPF metric type --
OSPF metric --
OSPF tag --
-------------------------------------------------------------------------------- |
В контексте настройки настройки BGP-инстанса заходим в настройки параметров соседа:
...
Пример настройки 2
Задача:
Для всей полученнной полученной маршрутной информации (с community 64497:100) от ESR2 установить следующие BGP-атрибуты:
- MED - – 240;
- Origin - – EGP.
Схема:
Scroll Pagebreak
Базовая конфигурация:
| AUI Tab Group | ||
|---|---|---|
| ||
Scroll Pagebreak
Решение:Создаем
Для решения задачи настройка будет производиться на ESR1. Первым шагом создаем политику:
| Блок кода |
|---|
ESR1(config)# route-map community_in |
Создаем Далее правило:
| Блок кода |
|---|
ESR1(config-route-map)# rule 1 |
...
| Блок кода |
|---|
ESR1(config)# route-map community_in ESR1(config-route-map)# rule 1 ESR1(config-route-map-rule)# ESR1(config-route-map-rule)# match community 64497:100 ESR1(config-route-map-rule)# action set metric bgp 240 ESR1(config-route-map-rule)# action set origin egp ESR1(config-route-map-rule)# do com Configuration has been successfully applied and saved to flash. Commit timer started, changes will be reverted in 600 seconds. ESR1(config-route-map-rule)# do conf |
| Scroll Pagebreak |
|---|
Проверим, что политика создана корректно:
| Блок кода | ||
|---|---|---|
| ||
ESR1# sh ip route-map community_in
Order: 1
Description: --
Matching pattern:
Access group --
AS path --
Community 64497:100
Extcommunity --
BGP local-preference: --
BGP metric (MED): --
BGP weight: --
Address (object-group): --
Next hop (object-group): --
Route source (object-group): --
RIP metric --
RIP tag --
OSPF metric type --
OSPF metric --
OSPF tag --
Actions:
Decision: Permit
Route next hop: --
Route IPv6 next hop: --
IP address: --
IPv6 address: --
AS path (prepand): --
Community: --
Extcommunity: --
Local preference: --
BGP next hop address: --
BGP IPv6 next hop address: --
BGP metric (MED): set 240
BGP weight: --
Origin: EGP
RIP metric --
RIP tag --
OSPF metric type --
OSPF metric --
OSPF tag --
-------------------------------------------------------------------------------- |
В констексте контексте настройки BGP-инстанса заходим в настройки параметров соседа:
...
Начиная с версии 1.23 доступно использование регулярных выражений в Route-map для контроля распространения маршрутной информации по протоколу BGP. Контроль можно производить по трём атрибутам BGP: AS-path, community, extcommunity. Синтаксис регулярных выражений соответствует стандарту POSIX ERE. В таблице ниже представлены некоторые примеры регулярных выражений.
| Условие совпадения | Регулярное выражение |
|---|---|
| Маршруты с любым содержимым 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]$ |
Настройка Policy-based routing
Алгоритм настройки
| Шаг | Описание | Команда | Ключи |
|---|---|---|---|
| 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 в маршруте, для которого должно срабатывать правило (необязательно). | 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> } | |||
| 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> |
Пример настройки
Задача:
Запретить прием маршрутной информации по BGP, содержащей в атрибуте AS-path номер AS 64500.
Cхема:
Базовая конфигурация:
| AUI Tab Group | ||
|---|---|---|
| ||
Решение:
Первым шагом необходимо создать Route-map на ESR1, в котором с помощью регулярных выражений опишем интересующий AS-path. В случае совпадения укажем – запретить:
| Блок кода | ||
|---|---|---|
| ||
route-map AS
rule 1
match as-path regex '(64500)'
action deny
exit
rule 2
exit
exit |
Проверим корректность ранее созданного Route-map:
| Блок кода | ||
|---|---|---|
| ||
ESR1# sh ip route-map AS
Order: 1
Description: --
Matching pattern:
Access group --
AS path regex "(64500)"
Community --
Extcommunity --
BGP local-preference: --
BGP metric (MED): --
BGP weight: --
Address (object-group): --
Next hop (object-group): --
Route source (object-group): --
RIP metric --
RIP tag --
OSPF metric type --
OSPF metric --
OSPF tag --
Actions:
Decision: Deny
Route next hop: --
Route IPv6 next hop: --
IP address: --
IPv6 address: --
AS path (prepand): --
Community: --
Extcommunity: --
Local preference: --
BGP next hop address: --
BGP IPv6 next hop address: --
BGP metric (MED): --
BGP weight: --
Origin: --
RIP metric --
RIP tag --
OSPF metric type --
OSPF metric --
OSPF tag --
--------------------------------------------------------------------------------
Order: 2
Description: --
Matching pattern:
Access group --
AS path --
Community --
Extcommunity --
BGP local-preference: --
BGP metric (MED): --
BGP weight: --
Address (object-group): --
Next hop (object-group): --
Route source (object-group): --
RIP metric --
RIP tag --
OSPF metric type --
OSPF metric --
OSPF tag --
Actions:
Decision: Permit
Route next hop: --
Route IPv6 next hop: --
IP address: --
IPv6 address: --
AS path (prepand): --
Community: --
Extcommunity: --
Local preference: --
BGP next hop address: --
BGP IPv6 next hop address: --
BGP metric (MED): --
BGP weight: --
Origin: --
RIP metric --
RIP tag --
OSPF metric type --
OSPF metric --
OSPF tag --
--------------------------------------------------------------------------------
|
В контексте настройки пира применим созданный Route-map для фильтрации входящих маршрутов:
| Блок кода | ||
|---|---|---|
| ||
ESR1(config)# router bgp 64498
ESR1(config-bgp)# neighbor 198.51.100.2
ESR1(config-bgp-neighbor)# address-family ipv4 unicast
ESR1(config-bgp-neighbor-af)# route-map AS in
ESR1(config-bgp-neighbor-af)# do com
ESR1(config-bgp-neighbor-af)# do conf |
Проверим, что BGP RIB не содержит маршрут, в котором AS-path 64500:
| Блок кода | ||
|---|---|---|
| ||
ESR1# sh bgp ipv4 unicast
Status codes: u - unicast, b - broadcast, m - multicast, a - anycast
* - valid, > - best
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*> u 192.0.2.1/32 198.51.100.2 -- 100 0 64497 i |
Настройка завершена.
| Scroll Pagebreak |
|---|
Конфедерация
Механизм позволяет разделить одну автономную систему на множество под-AS, функционирующих как отдельные административные единицы, но представляющих единую 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 |
|---|
Схема:
Базовая конфигурация:
| AUI Tab Group |
|---|
Решение:
Первым шагом настроим BGP внутри конфедерации: установим пиринг, зададим идентификатор, определим члены конфедерации. На ESR3 проанонсируем соответствующий loopback.
| Блок кода | ||
|---|---|---|
| ||
ESR2(config)# router bgp 64497
ESR2(config-bgp)# confederation id 69 <--- Назначение идентификатора конфедерации
ESR2(config-bgp)# confederation peer 64496 <--- AS c номер 64496 является членом конфедерации
ESR2(config-bgp)# neighbor 203.0.113.2
ESR2(config-bgp-neighbor)# remote-as 64496
ESR2(config-bgp-neighbor)# address-family ipv4 unicast
ESR2(config-bgp-neighbor-af)# enable
ESR2(config-bgp-neighbor-af)# exit
ESR2(config-bgp-neighbor)# enable
ESR2(config-bgp-neighbor)# exit
ESR2(config-bgp)# enable
ESR2(config-bgp)# exit
ESR2(config)#
ESR2(config)# do com
ESR2(config)# do conf |
| Блок кода | ||
|---|---|---|
| ||
ESR3(config)# router bgp 64496
ESR3(config-bgp)# confederation id 69
ESR3(config-bgp)# confederation peer 64497
ESR3(config-bgp)# neighbor 203.0.113.1
ESR3(config-bgp-neighbor)# remote-as 64497
ESR3(config-bgp-neighbor)# address-family ipv4 unicast
ESR3(config-bgp-neighbor-af)# enable
ESR3(config-bgp-neighbor-af)# exit
ESR3(config-bgp-neighbor)# enable
ESR3(config-bgp-neighbor)# exit
ESR3(config-bgp)# address-family ipv4 unicast
ESR3(config-bgp-af)# network 192.0.2.2/32
ESR3(config-bgp-af)# exit
ESR3(config-bgp)# enable
ESR3(config-bgp)# exit
ESR3(config)# do com
ESR3(config)# do conf |
Проверяем, что конфедерация успешно сконфигурирована c обеих сторон:
| Блок кода |
|---|
ESR2# sh bgp summary
2025-11-26 06:37:55
BGP router identifier 198.51.100.2, local AS number 64497, AS confederation identifier 69 <----
BGP activity 1/0 prefixes
Neighbor AS MsgRcvd MsgSent Up/Down St/PfxRcd
(d,h:m:s)
---------------------- ------------- ---------- ---------- ---------- ------------
203.0.113.2 64496 9 10 00,00:03:07 1
ESR3# sh bgp summary
2025-11-26 06:38:52
BGP router identifier 192.0.2.2, local AS number 64496, AS confederation identifier 69 <---
BGP activity 0/1 prefixes
Neighbor AS MsgRcvd MsgSent Up/Down St/PfxRcd
(d,h:m:s)
---------------------- ------------- ---------- ---------- ---------- ------------
203.0.113.1 64497 7 10 00,00:04:03 0 |
| Scroll Pagebreak |
|---|
BGP-сессия перешла в состояние "Established". Необходимо убедиться, что тип сессии соответствует "confed-external". Для eBGP-cессии автоматически увеличится multi-hop до 255:
| Блок кода |
|---|
ESR3# sh bgp neighbors
BGP neighbor is 203.0.113.1
BGP state: Established
Type: Static neighbor
Neighbor address: 203.0.113.1
Neighbor AS: 64497
Neighbor ID: 198.51.100.2
Neighbor caps: refresh enhanced-refresh restart-aware AS4
Session: confed-external multihop AS4 <-----
Source address: 203.0.113.2
Weight: 0
Hold timer: 120/180
Keepalive timer: 18/60
EBGP multi-hop: 255 <-----
RR client: No
Address family ipv4 unicast:
Send-label: No
Default originate: No
Default information originate: No
Preference: 170
Remove private AS: No
Next-hop self: No
Next-hop unchanged: No
Uptime (d,h:m:s): 00,00:02:09
ESR2# sh bgp neighbors
BGP neighbor is 203.0.113.2
BGP state: Established
Type: Static neighbor
Neighbor address: 203.0.113.2
Neighbor AS: 64496
Neighbor ID: 192.0.2.2
Neighbor caps: refresh enhanced-refresh restart-aware AS4
Session: confed-external multihop AS4 <-----
Source address: 203.0.113.1
Weight: 0
Hold timer: 140/180
Keepalive timer: 38/60
EBGP multi-hop: 255 <----
RR client: No
Address family ipv4 unicast:
Send-label: No
Default originate: No
Default information originate: No
Preference: 170
Remove private AS: No
Next-hop self: No
Next-hop unchanged: No
Uptime (d,h:m:s): 00,00:08:05
|
| Scroll Pagebreak |
|---|
Проверим, что ESR2 принимает анонсируемый ESR3 маршрут 192.0.2.2/32:
| Примечание |
|---|
Для обозначения использования AS_CONFED_SEQUENCE AS Path указывается в круглых скобках. |
| Блок кода | ||
|---|---|---|
| ||
ESR2# sh bgp ipv4 unicast 192.0.2.2/32
192.0.2.2/32 via 203.0.113.2 on gi1/0/2 [bgp64497 06:34:48] (64496i)
Administrative Distance: 170
Type: unicast
Origin: IGP
Aggregator: --
AS path: (64496) <----
Next Hop: 203.0.113.2
Output Label: --
Input Label: --
Local Preference: 100
MED: --
Cluster List: --
Community: --
EXT Community: --
Weight: 0
Valid, best, confed-external |
Следующим шагом настроим взаимодействие конфедерации с внешней автономной системой. При настройке пиринга необходимо помнить, что в качестве внешней AS будет использоваться идентификатор конфедерации.
| Блок кода | ||
|---|---|---|
| ||
ESR1(config)# route-map OUT
ESR1(config-route-map)# rule 1
ESR1(config-route-map-rule)# match ip address 192.0.2.1/32
ESR1(config-route-map-rule)# exit
ESR1(config-route-map)# rule 2
ESR1(config-route-map-rule)# action deny
ESR1(config-route-map-rule)# exit
ESR1(config-route-map)# exit
ESR1(config)# router bgp 64498
ESR1(config-bgp)# neighbor 198.51.100.2
ESR1(config-bgp-neighbor)# remote-as 69
ESR1(config-bgp-neighbor)# address-family ipv4 unicast
ESR1(config-bgp-neighbor-af)# route-map OUT out
ESR1(config-bgp-neighbor-af)# enable
ESR1(config-bgp-neighbor-af)# exit
ESR1(config-bgp-neighbor)# enable
ESR1(config-bgp-neighbor)# exit
ESR1(config-bgp)# address-family ipv4 unicast
ESR1(config-bgp-af)# network 192.0.2.1/32
ESR1(config-bgp-af)# exit
ESR1(config-bgp)# enable
ESR1(config-bgp)# exit
ESR1(config)#
ESR1(config)# do com
ESR1(config)# do conf |
| Блок кода | ||
|---|---|---|
| ||
ESR2(config)# route-map OUT
ESR2(config-route-map)# rule 1
ESR2(config-route-map-rule)# match ip address 192.0.2.2/32
ESR2(config-route-map-rule)# exit
ESR2(config-route-map)# rule 2
ESR2(config-route-map-rule)# action deny
ESR2(config-route-map-rule)# exit
ESR2(config-route-map)# exit
ESR2(config)#
ESR2(config)# router bgp 64497
ESR2(config-bgp)# neighbor 198.51.100.1
ESR2(config-bgp-neighbor)# remote-as 64498
ESR2(config-bgp-neighbor)# address-family ipv4 unicast
ESR2(config-bgp-neighbor-af)# route-map OUT out
ESR2(config-bgp-neighbor-af)# enable
ESR2(config-bgp-neighbor-af)# exit
ESR2(config-bgp-neighbor)# enable
ESR2(config-bgp-neighbor)# exit
ESR2(config-bgp)# neighbor 203.0.113.2
ESR2(config-bgp-neighbor)# address-family ipv4 unicast
ESR2(config-bgp-neighbor-af)# next-hop-self
ESR2(config-bgp-neighbor-af)# exit
ESR2(config-bgp-neighbor)# do com
ESR2(config-bgp)# do com
ESR2(config-bgp)# do conf |
| Scroll Pagebreak |
|---|
Проверяем, что пиринг поднялся:
| Блок кода |
|---|
ESR2# sh bgp neighbors 198.51.100.1
BGP neighbor is 198.51.100.1
BGP state: Established
Type: Static neighbor
Neighbor address: 198.51.100.1
Neighbor AS: 64498
Neighbor ID: 192.0.2.1
Neighbor caps: refresh enhanced-refresh restart-aware AS4
Session: external AS4
Source address: 198.51.100.2
Weight: 0
Hold timer: 136/180
Keepalive timer: 36/60
RR client: No
Address family ipv4 unicast:
Send-label: No
Default originate: No
Default information originate: No
Outgoing route-map: OUT
Preference: 170
Remove private AS: No
Next-hop self: No
Next-hop unchanged: No
Uptime (d,h:m:s): 00,00:16:04
ESR1# sh bgp neighbors 198.51.100.2
BGP neighbor is 198.51.100.2
BGP state: Established
Type: Static neighbor
Neighbor address: 198.51.100.2
Neighbor AS: 69
Neighbor ID: 198.51.100.2
Neighbor caps: refresh enhanced-refresh restart-aware AS4
Session: external AS4
Source address: 198.51.100.1
Weight: 0
Hold timer: 135/180
Keepalive timer: 39/60
RR client: No
Address family ipv4 unicast:
Send-label: No
Default originate: No
Default information originate: No
Outgoing route-map: OUT
Preference: 170
Remove private AS: No
Next-hop self: No
Next-hop unchanged: No
Uptime (d,h:m:s): 00,00:34:20 |
| Scroll Pagebreak |
|---|
Проверяем корректность анонсируемой информации:
| Блок кода | ||
|---|---|---|
| ||
ESR1# sh bgp ipv4 unicast 192.0.2.2/32
192.0.2.2/32 via 198.51.100.2 on gi1/0/1 [bgp64498 07:49:49] (69i)
Administrative Distance: 170
Type: unicast
Origin: IGP
Aggregator: --
AS path: 69
Next Hop: 198.51.100.2
Output Label: --
Input Label: --
Local Preference: 100
MED: --
Cluster List: --
Community: --
EXT Community: --
Weight: 0
Valid, best, external |
| Блок кода | ||
|---|---|---|
| ||
ESR3# sh bgp ipv4 unicast 192.0.2.1/32
192.0.2.1/32 via 203.0.113.1 on gi1/0/2 [bgp64496 07:49:51] (64498i)
Administrative Distance: 170
Type: unicast
Origin: IGP
Aggregator: --
AS path: (64497) 64498
Next Hop: 203.0.113.1
Output Label: --
Input Label: --
Local Preference: 100
MED: --
Cluster List: --
Community: --
EXT Community: --
Weight: 0
Valid, best, confed-external
|
Настройка завершена.
Настройка Policy-Based Routing
Policy-Based Routing (PBR) – Policy-Based Routing (PBR) — это механизм маршрутизации, который позволяет принимать решения о форвардинге трафика на основе заданных политик, а не основываясь на таблицу таблице маршрутизации. В отличие от традиционной маршрутизации, которая опирается исключительно на наилучший путь по метрике (например, кратчайший маршрут), PBR предоставляет администраторам гибкий инструмент для управления трафиком с учётом дополнительных параметров: источника трафика, типа протокола, VLAN, уровня приоритета и других.
...
Шаг | Описание | Команда | Ключи |
|---|---|---|---|
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 | Задать ACL, для которого должно срабатывать правило (необязательно). | esr(config-route-map-rule)# match ip access-group <NAME> | <NAME> – имя списка контроля доступа, задаётся строкой до 31 символа. |
5 | Задать Next-Hop для пакетов, которые попадают под критерии в указанном списке доступа (ACL) (необязательно). | esr(config-route-map-rule)# action set ip next-hop verify-availability <NEXTHOP><METRIC> | <NEXTHOP> – IP-адрес шлюза задаётся в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255]; <METRIC> – метрика маршрута, принимает значения [0..255]. |
6 | Назначить политику маршрутизации на основе списков доступа (ACL). | esr(config-if-gi)# ip policy route-map <NAME> | <NAME> – имя сконфигурированной политики маршрутизации, строка до 31 символа. |
| 7 | Разрешить фильтрацию и модификацию локального трафика на основе политики маршрутизации. | esr(config)# ip local policy [ vrf <VRF> ] route-map <NAME> | <NAME> – имя сконфигурированной политики маршрутизации, строка до 31 символа. |
Пример настройки
Задача:
Распределить трафик между Интернет-провайдерами на основе подсетей пользователей.
...
| Блок кода |
|---|
esr(config-route-map)# rule 1 |
| Scroll Pagebreak |
|---|
Указываем список доступа (ACL) в качестве фильтра:
...
BFD (Bidirectional Forwarding Detection) — – это протокол, работающий поверх других протоколов и позволяющий сократить время обнаружения проблемы до 50 мс. BFD является двусторонним протоколом, т. е. требует настройки обоих маршрутизаторов (оба маршрутизатора генерируют BFD-пакеты и отвечают друг другу).
| 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 |
Для изменения поведения (режима) необходимо вручную переопределить параметры сессии, указав необходимый режим. Рассмотрим на примере.
| Scroll Pagebreak |
|---|
Допустим, мы установили eBGP-соседство и включили для него BFD:
...
| Блок кода |
|---|
ESR(config)# ip bfd min-tx-interval 1000 ESR(config)# ip bfd min-rx-interval 1000 ESR(config)# do commmit ESR# sh ip bfd Minimum RX interval: 1000 ms Minimum TX interval: 1000 ms Idle TX interval: 1000 ms Multiplier: 5 packets Passive: No |
После того как BFD-сессия установлена, каждая сторона индивидуально вычисляет свои Tx Interval и Detection Interval. Tx Interval выбирается как наибольшее значение из локального Tx Interval и удаленного RX Interval. Detection Interval вычисляется по следующей формуле: Detection Interval = remoteMultiplier * MAX( RxLocal || TxRemote), где remoteMultiplier – значение Multiplier удаленной стороны, RxLocal – локальный Tx Interval, TxRemote – Tx Interval удаленной стороны.
Локально настроенные таймеры, таймеры удаленной стороны, а также вычисленные таймеры можно посмотреть следующим образом:
| Блок кода |
|---|
esr-200# sh bfd neighbors 10.100.0.2
Neighbor address: 10.100.0.2
Local address: 10.100.0.1
Interface: --
Remote discriminator: 3751534121
Local discriminator: 1670865501
State: Up
Session type: Control
Session mode: Multi-hop
Local diagnostic code: No Diagnostic
Remote diagnostic code: No Diagnostic
Minimal Tx Interval: 300 ms <---- Локальный Tx Interval
Minimal Rx Interval: 300 ms <---- Локальный Rx Interval
Multiplier: 5 <---- Локальный Multiplier
Actual Tx Interval: 300 ms <---- Вычисленный Tx Interval
Actual Detection Interval: 1500 ms <---- Вычисленный Detection Interval
Number of transmitted packets: 21781
Number of received packets: 21804
Uptime: 1d21h54m
Client: BGP
Last received packet:
Desired Min Tx Interval: 300 ms <----
Required Min Rx Interval: 300 ms <---- Таймеры удаленной стороны
Multiplier: 5 <----
|
Алгоритм настройки
Шаг | Описание | Команда | Ключи |
|---|---|---|---|
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. | ||
| Scroll Pagebreak |
|---|
Пример настройки
Задача:
Необходимо настроить протокол BFD для статического маршрута на маршрутизаторе R1.
...
Для установки BFD-сессии на R2 R2 также необходимо настроить соседа:
...
VRF (Virtual Routing and Forwarding) – технология, которая позволяет изолировать маршрутную информацию, принадлежащую различным классам (например, маршруты одного клиента).
Алгоритм настройки
Шаг | Описание | Команда | Ключи |
|---|---|---|---|
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-туннелей. |
Пример настройки
Задача:
К маршрутизатору ESR подключены 2 сети, которые необходимо изолировать от остальных сетей.
...
| Шаг | Описание | Команда | Ключи |
|---|---|---|---|
| 1 | Сконфигурировать интерфейсы, по которым будет работать MultiWAN: установить IP-адреса и указать security-zone. | ||
| 2 | Прописать статические маршруты через WAN (если необходимо). | esr(config)# ip route <SUBNET> wan load-balance rule <ID> [<METRIC>] | <ID> – идентификатор создаваемого правила из п.2. [METRIC] – метрика маршрута, принимает значения [0..255]. |
| 3 | Создать правило WAN и перейти в режим настройки параметров правила. | esr(config)# wan load-balance rule <ID> | <ID> – идентификатор создаваемого правила, принимает значения [1..50]. |
| 4 | Задать интерфейсы или туннели, которые являются шлюзами в маршруте, создаваемом службой MultiWAN. | esr(config-wan-rule)# outbound | <IF>– имя интерфейса; <TUN> – имя туннеля; [WEIGHT] – вес туннеля или интерфейса, определяется в диапазоне [1..255]. Если установить значение 2, то по данному интерфейсу будет передаваться в 2 раза больше трафика, чем по интерфейсу со значением по умолчанию. В режиме резервирования активным будет маршрут с наибольшим весом. Значение по умолчанию 1. |
| 5 | Описать правила (необязательно). | esr(config-wan-rule)# description <DESCRIPTION> | <DESCRIPTION> – описание правила wan, задаётся строкой до 255 символов. |
| 6 | Данной командой осуществляется переключение из режима балансировки в режим резервирования (если необходимо). | esr(config-wan-rule)# failover | |
| 7 | Данной командой включается отправка ответных пакетов сессии через тот же интерфейс, через который получены входящие пакеты сессии (если необходимо). | esr(config-wan-rule)# stickiness | |
| 8 | Включить wan-правило. | esr(config-wan-rule)# enable | |
| 9 | Создать список IP-адресов для проверки целостности соединения и осуществить переход в режим настройки параметров списка. | esr(config)# wan load-balance target-list <NAME> | <NAME> – название списка, задается строкой до 31 символа. |
| 10 | Задать цель проверки и перейти в режим настройки параметров цели. | esr(config-target-list)# target <ID> | <ID> – идентификатор цели, задаётся в пределах [1..50]. Если при удалении используется значение параметра «all», то будут удалены все цели для конфигурируемого списка целей. |
| 11 | Описать target (необязательно). | esr(config-wan-target)# description <DESCRIPTION> | <DESCRIPTION> – описание target, задаётся строкой до 255 символов. |
| 12 | Указать время ожидания ответа на запрос по протоколу ICMP (необязательно). | esr(config-wan-target)# resp-time <TIME> | <TIME> – время ожидания, определяется в секундах [1..30]. |
| 13 | Указать IP-адрес проверки. | esr(config-wan-target)# ip address <ADDR> | <ADDR> – IP-адрес назначения, задаётся в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255]. |
esr(config-wan-target)# ipv6 address <IPV6-ADDR> | <IPV6-ADDR> – IPv6-адрес назначения, задаётся в виде X:X:X:X::X, где каждая часть принимает значения в шестнадцатеричном формате [0..FFFF]. | ||
| 14 | Включить проверку цели. | esr(config-wan-target)# enable | |
Команды для пунктов 14–17 необходимо применить на интерфейсах/туннелях в MultiWAN. | |||
| 15 | Включить WAN-режим на интерфейсе для IPv4/IPv6-стека. | esr(config-if-gi)# wan load-balance enable | |
esr(config-if-gi)# ipv6 wan load-balance enable | |||
| 16 | Задать количество неудачных попыток проверки соединения, после которых, при отсутствии ответа от встречной стороны, соединение будет считается неактивным (необязательно). | esr(config-if-gi)# wan load-balance failure-count <VALUE> | <VALUE> – количество попыток, определяется в диапазоне [1..10]. Значение по умолчанию: 1. |
esr(config-if-gi)# ipv6 wan load-balance failure-count <VALUE> | |||
| 17 | Задать количество успешных попыток проверки соединения, после которых, в случае успеха, соединение считается вновь активным (необязательно). | esr(config-if-gi)# wan load-balance success-count <VALUE> | <VALUE> – количество попыток, определяется в диапазоне [1..10]. Значение по умолчанию: 1. |
esr(config-if-gi)# ipv6 wan load-balance success-count <VALUE> | |||
| 18 | Задать IP-адрес соседа, который будет указан в качестве одного из шлюзов в статическом маршруте, создаваемом службой MultiWAN. | esr(config-if-gi)# wan load-balance nexthop { <IP> | dhcp enable | tunnel enable } | <IP> – IP-адрес назначения (шлюз), задаётся в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255]. dhcp enable – если на интерфейсе IP-адрес получен через DHCP-клиента, используется шлюз с DHCP-сервера. tunnel enable – использовать в качестве nexthop – p-t-p адрес назначения. Применимо для подключаемых интерфейсов, работающих через ppp. |
esr(config-if-gi)# ipv6 wan load-balance nexthop { <IPV6> } | <IPV6> – IPv6-адрес назначения (шлюз), задаётся в виде X:X:X:X::X, где каждая часть принимает значения в шестнадцатеричном формате [0..FFFF]. | ||
| 19 | Данной командой будут проверяться IP-адреса из списка проверки целостности. В случае недоступности всех (по умолчанию)/хотя бы одной (с использованием ключа chack-all) из проверяемых узлов, шлюз будет считаться недоступным. | esr(config-if-gi)# wan load-balance target-list { check-all | <NAME> } | <NAME> – проверку производить на основании конкретного target листа (заданного в п.7). check-all – проверку производить на основании всех target листа. |
esr(config-if-gi)# ipv6 wan load-balance target-list { check-all | <NAME> } | |||
| 20 | Прописать статические маршруты через WAN. | esr(config)# ip route <SUBNET> wan load-balance rule <ID> [<METRIC>] | <ID> – идентификатор создаваемого правила из п.2. [METRIC] – метрика маршрута, принимает значения [0..255]. |
esr(config)# ipv6 route <SUBNET> wan load-balance rule <ID [<METRIC>] | |||
Пример настройки
Задача:
Настроить маршрут к серверу (108.16.0.1/28) с возможностью балансировки нагрузки.
...
| Блок кода |
|---|
еsr(config-wan-rule)# enable еsr(config-wan-rule)# exit |
| Scroll Pagebreak |
|---|
Создадим список для проверки целостности соединения:
...
| Блок кода |
|---|
еsr(config)# wan load-balance rule 1 |
| Scroll Pagebreak |
|---|
Функция MultiWAN также может работать в режиме резервирования, в котором трафик будет направляться в активный интерфейс с наибольшим весом. Включить данный режим можно следующей командой:
...
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 рисунок |
...






