26. Динамическая маршрутизация¶
26.1. NHT (Nexthop Tracking)¶
ПАК “Фортикс” поддерживает механизм определения следующего перехода (далее по тексту – nexthop) с помощью маршрута по умолчанию: при наличии маршрута по умолчанию для маршрута, следующий переход в котором не определяется с помощью таблицы маршрутизации, nexthop извлекается из маршрута по умолчанию. Данная функция требует отдельной активации для IPv4- и IPv6-маршрутов для каждой виртуальной таблицы маршрутизации (VRF).
Для включения механизма определения следующего перехода с помощью маршрута по умолчанию для основной таблицы маршрутизации применяется команда:
# set router nht ipv4|ipv6 resolve-via-default
где ipv4|ipv6 – уровень конфигурации IPv4/IPv6.
Для включения данного механизма для указанной виртуальной таблицы маршрутизации применяется команда:
# set vrf <vrf-name> router nht ipv4|ipv6 resolve-via-default
где
ipv4|ipv6– уровень конфигурации IPv4/IPv6;<vrf-name>– имя существующей виртуальной таблицы маршрутизации.
Для просмотра текущего состояния механизма определения следующего перехода применяется команда:
> show [ vrf <vrf-name> ] router nht ipv4|ipv6
где
ipv4|ipv6– уровень конфигурации IPv4/IPv6;<vrf-name>– имя существующей виртуальной таблицы маршрутизации.
26.2. Фильтрация¶
В ПАК “Фортикс” для динамической маршрутной информации предусмотрена фильтрация на основе списков, применимая для любого направления трафика.
26.2.1. Списки доступа (access-list)¶
Списки доступа (далее по тексту – access-list) – инструмент, позволяющий контролировать и фильтровать сетевой трафик на основе различных критериев, таких как IP-адрес источника и назначения, протокол, порт и т.д. Данные критерии формируют правила фильтрации трафика, прохождение которого через маршрутизатор разрешено или запрещено. Списки доступа применимы для управления трафиком и ограничения доступа к указанным ресурсам и сервисам.
Использование access-list позволяет существенно улучшить безопасность и контроль над сетью за счёт ограничения доступа к некоторым ресурсам и сервисам. Кроме того, данные списки могут быть использованы для управления трафиком, например, для ограничения полосы пропускания.
Для создания разрешающего IPv4-списка доступа применяется команда:
# set router access-list ipv4 list <list-name> [description <description>] seq <seq> action permit prefix <network>
где
<list-name>– строка длиной от 1 до 128 символов;<seq>– порядковый номер списка от 1 до 4294967295;<description>– описание списка;<network>– IPv4-адрес в форматеA.B.C.D/mask.
Для создания запрещающего IPv4-списка доступа применяется команда:
# set router access-list ipv4 list <list-name> [description <description>] seq <seq> action deny prefix <network>
где
<list-name>– строка длиной от 1 до 128 символов;<seq>– порядковый номер списка от 1 до 4294967295;<description>– описание списка;<network>– IPv4-адрес в форматеA.B.C.D/mask.
Для создания разрешающего IPv6-списка доступа применяется команда:
# set router access-list ipv6 list <list-name> [description <description>] seq <seq> action permit prefix <network>
где
<list-name>– строка длиной от 1 до 128 символов;<seq>– порядковый номер списка от 1 до 4294967295;<description>– описание списка;<network>– IPv6-адресA:B:..:H/mask.
Для создания запрещающего IPv6-списка доступа применяется команда:
# set router access-list ipv6 list <list-name> [description <description>] seq <seq> action deny prefix <network>
где
<list-name>– строка длиной от 1 до 128 символов;<seq>– порядковый номер списка от 1 до 4294967295;<description>– описание списка;<network>– IPv6-адресA:B:..:H/mask.
Для просмотра информации о всех доступных списках применяется команда:
> show router access-list ipv4|ipv6
где ipv4|ipv6 – уровень конфигурации IPv4/IPv6.
26.2.1.1. Списки доступа на основе AS-path (as-path access-list)¶
Списки доступа на основе AS-path (далее по тексту – as-path access-list, as-path ACL) – механизм, используемый в протоколе BGP для фильтрации маршрутов на основе атрибутов автономной системы (AS). Данный механизм позволяет контролировать трафик, проходящий через указанные автономные системы (автономные системы, содержащие указанные префиксы), и управлять им.
Примечание
Списки доступа на основе AS-path предоставляют возможность блокировать или разрешать трафик на основе происхождения маршрута, что применимо для обеспечения безопасности сети или для контроля за политиками маршрутизации.
Списки доступа на основе AS-path используются для реализации следующих политик маршрутизации:
фильтрация маршрутов по автономным системам, через которые они проходят (например, заблокировать маршруты, проходящие через указанные страны или регионы);
контроль за взаимодействием с указанными автономными системами (например, разрешить только маршруты, не проходящие через указанные автономные системы).
Для создания разрешающего списка доступа на основе AS-path применяется команда:
# set router as-path access-list <list-name> seq <seq> action permit as-path <as-path>
где
<list-name>– строка длиной от 1 до 128 символов;<seq>– порядковый номер списка от 1 до 4294967295;<as-path>– путь к автономной системе в формате регулярного выражения, содержащего числа и символы _^|[,{}() ]$*+.?-.
Для создания запрещающего списка доступа на основе AS-path применяется команда:
# set router as-path access-list <list-name> seq <seq> action deny as-path <as-path>
где
<list-name>– строка длиной от 1 до 128 символов;<seq>– порядковый номер списка от 1 до 4294967295;<as-path>– путь к автономной системе в формате регулярного выражения, содержащего числа и символы _^|[,{}() ]$*+.?-.
Для просмотра всех актуальных списков доступа на основе AS-path применяется команда:
> show router as-path <as-path>
где <as-path> – путь к автономной системе в формате регулярного выражения, содержащего числа и символы _^|[,{}() ]$*+.?-.
26.2.2. Списки префиксов (prefix-list)¶
Списки префиксов (далее по тексту – prefix-list) используются для фильтрации маршрутов на основе их префикса. Данные списки применимы для управления доступом к указанным сетям или ресурсам, а также для обеспечения безопасности, так как контроль трафика на основе префикса позволяет предотвращать атаки с подменой адресов (ARP-spoofing) и другие виды атак. Например, с помощью списка префиксов возможно обеспечить доступ к некоторым подсетям, при этом ограничить ко всем остальным.
Списки префиксов применимы для управления трафиком и оптимизации пропускной способности, так как позволяет уменьшить количество трафика, проходящего через сеть, за счёт чего улучшается её производительность. Например, для сети с большим количеством подсетей возможно создание prefix-list, разрешающего трафик только к некоторым подсетям.
Списки префиксов являются удобным инструментом для управления сетевым трафиком и обеспечения безопасности в сети.
Для создания разрешающего IPv4-списка префиксов применяется команда:
# set router prefix-list ipv4 list <list-name> seq <seq> action permit prefix <prefix> [le <len>] [ge <len>]
где
<list-name>– строка длиной от 1 до 128 символов;<seq>– порядковый номер списка от 1 до 4294967295;<prefix>– IPv4-адрес адрес в форматеA.B.C.D/mask;<len>– длина префикса от 0 до 32.
Для создания запрещающего IPv4-списка префиксов применяется команда:
# set router prefix-list ipv4 list <list-name> seq <seq> action deny prefix <prefix> [le <len>] [ge <len>]
где
<list-name>– строка длиной от 1 до 128 символов;<seq>– порядковый номер списка от 1 до 4294967295;<prefix>– IPv4-адрес адрес в форматеA.B.C.D/mask;<len>– длина префикса от 0 до 32.
Для создания разрешающего IPv6-списка префиксов применяется команда:
# set router prefix-list ipv6 list <list-name> seq <seq> action permit prefix <prefix> [le <len>] [ge <len>]
где
<list-name>– строка длиной от 1 до 128 символов;<seq>– порядковый номер списка от 1 до 4294967295;<prefix>– IPv6-адрес адрес в форматеA:B:...:H/mask;<len>– длина префикса от 0 до 128.
Для создания запрещающего IPv6-списка префиксов применяется команда:
# set router prefix-list ipv6 list <list-name> seq <seq> action deny prefix <prefix> [le <len>] [ge <len>]
где
<list-name>– строка длиной от 1 до 128 символов;<seq>– порядковый номер списка от 1 до 4294967295;<prefix>– IPv6-адрес адрес в форматеA:B:...:H/mask;<len>– длина префикса от 0 до 128.
При указании параметра le в командах выше список применяется, если длина префикса меньше или равна заданному значению, ge – больше или равна.
Для просмотра информации о всех доступных списках префиксов применяется команда:
> show router prefix-list ipv4|ipv6 [detail|summary]
где
ipv4|ipv6– уровень конфигурации IPv4/IPv6;detail– параметр, при указании которого выводится подробная информация;summary– параметр, при указании которого выводится краткая информация.
26.2.3. Карты маршрутов (route-map)¶
Карты маршрутов (route-map) предоставляют средства для фильтрации и/или применения действий к маршруту, что позволяет использовать различные политики для маршрутов. Карты маршрутов состоят из упорядоченного списка правил, для каждого из которых возможно указание:
типа правила: разрешающее или запрещающее;
критериев отбора маршрутов: условия, по которым отбираются маршруты для применения правила;
действия для маршрутов: действие, применяемое к отобранным в соответствии с критериями маршрутам;
вызываемой карты маршрутов: карта маршрутов, к которой осуществляется переход, если правило применимо.
Действием по умолчанию, если ни одно правило из списка карты маршрутов не соответствует рассматриваемому маршруту, является запрет (т.е. карта маршрутов имеет в качестве последней записи запрещающее правило без остальных элементов описания, что соответствует всем маршрутам). Для изменения действия по умолчанию указывается разрешающее правило без остальных элементов описания в качестве последней записи в карте маршрутов.
Для указания типа правила карты маршрутов применяется команда:
# set router route-map <route-map-name> seq <seq> action permit|deny
где
<route-map-name>– строка длиной от 1 до 128 символов;<seq>– порядковый номер правила в карте от 1 до 4294967295;permit|deny– тип правила.
Для указания критерия отбора маршрута в правиле карты маршрутов применяется команда:
# set router route-map <route-map-name> seq <seq> match <match-option>
где
<route-map-name>– строка длиной от 1 до 128 символов;<seq>– порядковый номер записи в карте от 1 до 4294967295;<match-option>– критерий соответствия из предложенного в командной строке списка.
Для определения действия для маршрута в правиле карты маршрутов применяется команда:
# set router route-map <route-map-name> seq <seq> set <set-option>
где
<route-map-name>– строка длиной от 1 до 128 символов;<seq>– порядковый номер правила в карте от 1 до 4294967295;<set-option>– действие из предложенного в командной строке списка.
Для определения вызываемой карты маршрутов в правиле карты маршрутов применяется команда:
# set router route-map <route-map-name> seq <seq> call <call-route-map-name>
где
<route-map-name>– строка длиной от 1 до 128 символов;<seq>– порядковый номер правила в карте от 1 до 4294967295;<call-route-map-name>– имя существующей карты маршрутов.
Для просмотра информации о всех доступных картах маршрутов применяется команда:
> show router route-map
26.3. RIP¶
26.3.1. Введение¶
Routing Information Protocol – протокол дистанционно-векторной маршрутизации для семейства IPv4-адресов. Маршрутизаторы, работающие по данному протоколу, отправляют всю свою таблицу маршрутизации или её часть соседним маршрутизаторам в сообщениях с обновлениями. Протокол RIP позволяет настраивать хосты в качестве узлов сети RIP. Данный протокол использует UDP-порт 520 для отправки и получения пакетов RIP.
26.3.2. Настройка¶
Для включения маршрутизатора RIP применяется команда:
# set router rip ipv4
Для выключения маршрутизатора RIP и удаления всех его настроек применяется команда:
# del router rip ipv4
Настройка RIP осуществляется на следующем уровне конфигурации:
[edit router rip ipv4]
Настройка сетевых интерфейсов RIP осуществляется на следующем уровне конфигурации:
[edit router rip ipv4 interface]
26.3.2.1. Настройка интерфейсов маршрутизатора¶
Для включения RIP на всех интерфейсах, адреса которых относятся к указанному префиксу, применяется команда:
[edit router rip ipv4]
# set network prefix <network>
где <network> – IPv4-адрес в формате A.B.C.D/mask.
Данная команда включает интерфейсы RIP на всех адресах указанного префикса. Например, если в сети 10.0.0.0/24 включён RIP, все интерфейсы с адресами от 10.0.0.0 до 10.0.0.255 задействуются для RIP.
Для отключения RIP на всех интерфейсах, адреса которых относятся к указанному префиксу, применяется команда:
[edit router rip ipv4]
# del network prefix <network>
где <network> – IPv4-адрес в формате A.B.C.D/mask.
Для включения маршрутизации RIP на указанном интерфейсе применяется команда:
[edit router rip ipv4]
# set network interface <interface-name>
где <interface-name> – имя существующего интерфейса.
Для отключения маршрутизации RIP на указанном интерфейсе применяется команда:
[edit router rip ipv4]
# del network interface <interface-name>
где <interface-name> – имя существующего интерфейса.
26.3.2.2. Настройка соседства¶
Для определения IP-адреса соседнего маршрутизатора RIP, которому отправляются обновления, применяется команда:
[edit router rip ipv4]
# set neighbor <address>
где <address> – IPv4-адрес в формате A.B.C.D.
Данная настройка используется при подключении соседнего маршрутизатора RIP через сеть, не поддерживающую многоадресную рассылку, или при необходимости статического определения соседнего маршрутизатора RIP. При этом обновления RIP отправляются посредством одноадресной рассылки каждому соседнему маршрутизатору. Обновления соседних маршрутизаторов RIP дополняют любые многоадресные обновления, если интерфейс не находится в пассивном режиме. Обрабатываются все обновления RIP, полученные как от соседнего маршрутизатора RIP, так и через многоадресную рассылку.
26.3.2.3. Настройка пассивного интерфейса¶
Для перевода интерфейса в пассивный режим применяется команда:
[edit router rip ipv4]
# set passive-interface <interface-name>
где <interface-name> – имя существующего интерфейса.
По данной команде все принимаемые пакеты обрабатываются как обычно, но маршрутизатор не отправляет ни многоадресные, ни одноадресные пакеты RIP. Отправка пакетов осуществляется только маршрутизаторам, для которых явно указаны настройки соседства.
26.3.2.4. Настройка избежания петель¶
По умолчанию настройка предотвращения петель (split-horizon) включена для каждого интерфейса, который участвует в маршрутизации RIP.
Для отключения данной настройки на указанном интерфейсе применяется команда:
[edit router rip ipv4]
# set interface <interface-name> split-horizon disabled
где <interface-name> – имя существующего интерфейса.
Для включения настройки, по которой маршрутизатор отправляет полученные маршруты с наивысшей метрикой (недостижимый маршрут) обратно на отправляющий маршрутизатор, применяется команда:
[edit router rip ipv4]
# set interface <interface-name> split-horizon poison-reverse
где <interface-name> – имя существующего интерфейса.
26.3.2.5. Настройка ECMP¶
Для разрешения балансировки между маршрутами с одинаковой стоимостью применяется команда:
[edit router rip ipv4]
# set allow-ecmp
26.3.2.6. Контроль версий¶
Маршрутизатор RIP настраивается для отправки пакетов Версии 1 (RIPv1) или Версии 2 (RIPv2). По умолчанию отправляются пакеты RIPv2, а принимаются – как RIPv1, так и RIPv2.
Для определения версии получаемых и отправляемых пакетов применяется команда:
[edit router rip ipv4]
# set version 1|2
где 1|2 – версия пакетов.
Для определения версии отправляемых пакетов на указанном интерфейсе применяется команда:
[edit router rip ipv4]
# set interface <interface-name> version send 1|2|1-2
где
<interface-name>– имя существующего интерфейса;1|2|1-2– версия пакетов.
Для определения версии получаемых пакетов на указанном интерфейсе применяется команда:
[edit router rip ipv4]
# set interface <interface-name> version receive 1|2|1-2
где
<interface-name>– имя существующего интерфейса;1|2|1-2– версия пакетов.
26.3.2.7. Анонсирование маршрутов¶
Для настройки перераспределения маршрутов между протоколами маршрутизации применяется команда:
[edit router rip ipv4]
# set redistribute <redistribute-protocol> [metric <metric>] [route-map <route-map-name>]
где
<redistribute-protocol>– протокол маршрутизации;<metric>– значение метрики от 1 до 16;<route-map-name>– имя существующей карты маршрутов.
Для настройки анонсирования статических маршрутов без добавления в таблицу маршрутизации (только внутри процесса RIP) применяется команда:
[edit router rip ipv4]
# set route <network>
где <network> – IPv4-адрес в формате A.B.C.D/mask.
26.3.2.8. Фильтрация маршрутов¶
Для фильтрации маршрутов RIP применяется команда:
[edit router rip ipv4]
# set distribute-list <interface-name> direction in|out access-list|prefix-list <list-name>
где
<interface-name>– имя существующего интерфейса;in|out– тип пакетов;access-list|prefix-list– уровень конфигурации списка доступа или префиксов;<list-name>– имя существующего списка доступа или префиксов в зависимости от уровня конфигурации.
26.3.2.9. Управление метрикой маршрутов¶
По умолчанию маршрутизатор RIP присваивает перераспределённым маршрутам метрику 1.
Для изменения значения по умолчанию метрики перераспределённых маршрутов применяется команда:
[edit router rip ipv4]
# set default-metric <default-metric-value>
где <default-metric-value> – число от 1 до 16.
По данной команде метрики для connected маршрутов не изменяются. Для изменения метрики таких маршрутов применяется команда для настройки перераспределения маршрутов, карта маршрутов route-map или специальная настройка для изменения метрики offset-list.
Для настройки значения метрики перераспределённых маршрутов применяется команда:
[edit router rip ipv4]
# set redistribute <redistribute-protocol> metric <metric-value>
где
<redistribute-protocol>– протокол маршрутизации;<metric-value>– число от 0 до 16.
Для настройки значения метрики с помощью offset-list применяется команда:
[edit router rip ipv4]
# set offset-list <interface-name> direction in|out metric <metric-value>
где
<metric-value>– число от 1 до 16;<interface-name>– имя существующего интерфейса;in|out– тип пакетов.
26.3.2.10. Административная дистанция¶
Административная дистанция применяется для изменения приоритета маршрутов, полученных от разных протоколов. По умолчанию значение административной дистанции для маршрутов RIP равно 120.
Для изменения значения административной дистанции по умолчанию применяется команда:
[edit router rip ipv4]
# set distance default <distance-value>
где <distance-value> – число от 1 до 255.
Для изменения значения административной дистанции для указанных маршрутов применяется команда:
[edit router rip ipv4]
# set distance source <network> [access-list <access-list-name>] distance <distance-value>
где
<network>– IPv4-адрес в форматеA.B.C.D/mask;<access-list-name>– имя существующего списка доступа;<distance-value>– число от 1 до 255.
26.3.2.11. Настройка аутентификации¶
Аутентификация доступна только для протокола версии 2 (RIPv2). Маршрутизация RIPv2 позволяет аутентифицировать пакеты с помощью незащищённого текстового пароля, содержащегося в пакете, или через более безопасный HMAC на основе MD5. Так как RIPv1 не может быть аутентифицирован, при настроенной аутентификации маршрутизатор отбрасывает все обновления, полученные через пакеты RIPv1.
Если приём RIPv1 не отключён полностью, полученные пакеты RIP Version Control и RIPv1 REQUEST, запрашивающие информацию о маршрутизации, учитываются, при этом маршрутизатор отвечает на такие пакеты. Данный механизм позволяет маршрутизатору учитывать такие запросы (которые иногда используются старым оборудованием), обеспечивая при этом безопасность получаемых обновлений маршрутов.
Использование аутентификации предотвращает обновление маршрутов неаутентифицированными удалёнными маршрутизаторами, при этом разрешает удалённый запрос информации о маршрутах через RIPv1. Для изменения данного поведения необходимо отключить RIPv1.
Для настройки аутентификации с помощью указанного незащищённого текстового пароля для указанного интерфейса применяются команды:
[edit router rip ipv4]
# set interface <interface-name> authentication mode text
# set interface <interface-name> authentication string <password>
где
<interface-name>– имя существующего интерфейса;<password>– строка длиной от 1 до 16 символов.
26.3.2.12. Настройка таймеров¶
Маршрутизация RIP позволяет использовать несколько типов таймеров, каждый из которых настраивается с помощью основной команды timers.
Для настройки значения таймера обновления применяется команда:
[edit router rip ipv4]
# set timers update <timer-update-value>
где <timer-update-value> – число секунд от 5 до 2147483647, по умолчанию – 30.
По истечении указанного времени процесс RIP активируется для отправки незапрошенного ответного сообщения с полной таблицей маршрутизации всем соседним маршрутизаторам RIP.
Для настройки значения таймера тайм-аута применяется команда:
[edit router rip ipv4]
# set timers timeout <timer-timeout-value>
где <timer-timeout-value> – число секунд от 5 до 2147483647, по умолчанию – 180.
По истечении указанного времени маршрут становится недействительным. При этом он сохраняется в таблице маршрутизации в течение некоторого малого промежутка времени для уведомления соседних маршрутизаторов об удалении маршрута.
Для настройки значения таймера сбора мусора применяется команда:
[edit router rip ipv4]
# set timers garbage-collection <timer-garbage-collection-value>
где <timer-garbage-collection-value> – число секунд от 5 до 2147483647, по умолчанию – 120.
По истечении указанного времени маршрут окончательно удаляется из таблицы маршрутизации.
26.3.3. Диагностика¶
Для просмотра информации о маршрутах применяется команда:
> show router rip ipv4
Для просмотра текущего статуса маршрутизатора RIP применяется команда:
> show router rip ipv4 status
Вывод команды содержит значения таймеров, настройки фильтрации, версию протокола, информацию об интерфейсах с поддержкой маршрутизации RIP и узлах RIP.
Для просмотра всех маршрутов, полученных с помощью маршрутизации RIP, применяется команда:
> show router unicast ipv4 rip
26.4. RIPNG¶
26.4.1. Введение¶
ПАК “Фортикс” поддерживает протокол RIPng – развитие протокола RIP для семейства IPv6-адресов.
26.4.2. Настройка¶
Для включения RIPng-маршрутизатора применяется команда:
# set router rip ipv6
Для выключения RIPng-маршрутизатора и удаления всех его настроек применяется команда:
# del router rip ipv6
Настройка RIPng-маршрутизатора осуществляется на следующем уровне конфигурации:
[edit router rip ipv6]
Настройка сетевых интерфейсов RIPng осуществляется на следующем уровне конфигурации:
[edit router rip ipv6 interface]
Настройки маршрутизатора RIPng аналогичны настройкам маршрутизатора RIP, за исключением формата адреса, который менятся с IPv4 на IPv6.
Для настройки агрегации маршрутов применяется команда:
[edit router rip ipv6]
# set aggregate-address <address>
где <address> – IPv6-адрес в формате A:B:...:H/mask.
Для настройки анонсирования маршрута по умолчанию применяется команда:
[edit router rip ipv6]
# set default-information originate
Для настройки значения метрики по умолчанию применяется команда:
[edit router rip ipv6]
# set default-metric <default-metric-value>
где <default-metric-value> – число от 1 до 16.
Для включения маршрутизации RIPng на указанном интерфейсе применяется команда:
[edit router rip ipv6]
# set network interface <interface-name>
где <interface-name> – имя существующего интерфейса.
Для включения RIPng на всех интерфейсах, адреса которых относятся к указанному префиксу сети, применяется команда:
[edit router rip ipv6]
# set network prefix <network>
где <network> – префикс сети.
Для настройки значения метрики применяются команды:
[edit router rip ipv6]
# set offset-list <interface-name> direction in|out metric <metric-value>
# set offset-list <interface-name> direction in|out access-list <access-list-name>
где
<interface-name>– имя существующего интерфейса;in|out– тип пакетов;<metric-value>– число от 1 до 16;<access-list-name>– имя существующего списка доступаaccess-list.
В данной команде список access-list указывается для обеспечения контроля сети, для которой настраивается метрика.
Для перевода интерфейса в пассивный режим применяется команда:
[edit router rip ipv6]
# set passive-interface <interface-name>
где <interface-name> – имя существующего интерфейса.
Для настройки перераспределения маршрутов между протоколами маршрутизации применяется команда:
[edit router rip ipv6]
# set redistribute <redistribute-protocol> [metric <metric-value>] [route-map <route-map-name>]
где
<redistribute-protocol>– протокол маршрутизации;<metric-value>– число от 1 до 16;<route-map-name>– имя существующей карты маршрутов.
Для настройки анонсирования статического маршрута без добавления в таблицу маршрутизации (только внутри процесса RIPng) применяется команда:
[edit router rip ipv6]
# set route <network>
где <network> – IPv6-адрес в формате A:B:...:H/mask.
Для настройки значения таймера обновления применяется команда:
[edit router rip ipv6]
# set timers update <timer-update-value>
где <timer-update-value> – число секунд от 5 до 2147483647, по умолчанию – 30.
Для настройки значения таймера тайм-аута применяется команда:
[edit router rip ipv6]
# set timers timeout <timer-timeout-value>
где <timer-timeout-value> – число секунд от 5 до 2147483647, по умолчанию – 180.
Для настройки значения таймера сбора мусора применяется команда:
[edit router rip ipv6]
# set timers garbage-collection <timer-garbage-collection-value>
где <timer-garbage-collection-value> – число секунд от 5 до 2147483647, по умолчанию – 120.
26.4.3. Диагностика¶
Для отображения информации о маршрутах применяется команда:
> show router rip ipv6
Для отображения текущего статуса маршрутизатора RIPng применяется команда:
> show router rip ipv6 status
Вывод команды содержаит значения таймеров, настройки фильтрации, версию протокола, информацию об интерфейсах с поддержкой RIPng и узлах RIPng.
Для отображения всех маршрутов, полученных по протоколу RIPng, применяется команда:
> show router unicast ipv6 rip
26.5. OSPFv2¶
26.5.1. Введение¶
Протокол OSPF (Open Shortest Path First) версии 2 является протоколом динамической маршрутизации, используемым, в основном, в сетях IPv4, и входит в семейство протоколов OSPF.
OSPF — протокол маршрутизации, работа которого основана на состоянии канала. В отличие от протоколов дистанционно-векторной маршрутизации, таких как RIP или BGP, где маршрутизаторы описывают доступные пути (маршруты) друг к другу, в протоколах состояния канала маршрутизаторы описывают состояние своих каналов с непосредственно соседними маршрутизаторами.
Каждый маршрутизатор описывает информацию о состоянии своего канала связи в сообщении LSA (link-state advertisement – объявление о состоянии канала), которое распространяется на все остальные маршрутизаторы в домене маршрутизации с помощью процесса, называемого лавинной рассылкой (flooding). Для работы OSPF требуется иерархическая структура сети, которая делится на области OSPF, каждая из которых имеет свою базу данных состояния каналов (Link State Database, LSDB). Каждый маршрутизатор создаёт LSDB всех сообщений о состоянии канала в своей области. Из этого набора LSA в LSDB каждый маршрутизатор может вычислить кратчайший путь к любому другому маршрутизатору на основе общей метрики с помощью алгоритма Дейкстры (алгоритм кратчайшего пути/SPF-алгоритм).
Описывая связность сети с точки зрения состояния каналов между маршрутизаторами, а не с точки зрения путей через сеть, протокол OSPF использует меньшую полосу пропускания и сходиться быстрее, чем другие протоколы. Когда канал на любом отдельном маршрутизаторе меняет состояние, рассматриваемый протокол распространяет только одно сообщение о состоянии этого канала по всему домену.
Недостаток данного протокола заключается в том, что процесс вычисления наилучших путей может быть относительно интенсивным по сравнению с протоколами дистанционно-векторной маршрутизации, в которых практически не требуется никаких вычислений, кроме выбора между несколькими маршрутами.
Основными компонентами OSPFv2 являются:
маршрутизаторы, которые обрабатывают информацию и принимают решение о выборе маршрутов;
область OSPF – логическая структура, объединяющая несколько сетей и маршрутизаторов;
таблица маршрутизации (Routing Table), которая хранит информацию о всех доступных сетях.
Основными особенностями протокола являются:
быстрая сходимость: изменения топологии сети распространяются только между соседними маршрутизаторами, что позволяет быстрее адаптироваться к ним;
избыточность: OSPFv2 поддерживает избыточность связей, что повышает отказоустойчивость сети;
масштабируемость: протокол может работать в крупных сетях с большим количеством устройств и соединений;
безопасность: OSPFv2 поддерживает механизмы аутентификации и шифрования.
Одними из основных компонентов протокола являются ABR-маршрутизаторы (Area Border Router, далее по тексту – ABR), которые играют ключевую роль в процессе обмена информацией и маршрутизации между областями. ABR – это маршрутизатор, который служит пограничным узлом между различными областями в протоколе динамической маршрутизации. OSPF разбивает сеть на несколько областей, которые соединяются через ABR.
26.5.2. Основные настройки маршрутизации¶
Для включение OSPF-маршрутизатора применяется команда:
# set router ospf ipv4
Для выключения OSPF-маршрутизатора и удаления всех его настроек применяется команда:
# del router ospf ipv4
Настройка OSPF-маршрутизатора осуществляется на следующем уровне конфигурации:
[edit router ospf ipv4]
Настройка сетевых интерфейсов OSPF осуществляется на следующем уровне конфигурации:
[edit router ospf ipv4 interface]
26.5.2.1. Идентификатор маршрутизатора¶
Для определения идентификатора маршрутизатора процесса OSPF применяется команда:
[edit router ospf ipv4]
# set ospf router-id <router-id>
где <router-id> – IPv4-адрес в формате A.B.C.D.
Идентификатор должен быть уникальным во всём домене OSPF. Если идентификатор не указан явно, маршрутизатор OSPF создаст его автоматически на основании одного из IP-адресов интерфейсов в системе.
26.5.2.2. Тип ABR¶
OSPF не позволяет ABR (Area Border Router) рассматривать маршруты через немагистральные области, если его каналы с магистральной сетью не работают, даже если в присоединённых немагистральных областях есть другие ABR, которые могут достичь магистральной сети. Данное ограничение накладывается во избежание петель маршрутизации.
Для настройки типа ABR применяется команда:
[edit router ospf ipv4]
# set ospf abr-type cisco|ibm|shortcut|standard
где
cisco– тип, при указании которого маршрутизатор считает себя ABR, если он имеет несколько каналов к сетям различных областей и хотя бы одна из этих областей является магистральной, при этом канал к магистральной области активен;ibm– аналогичен типуcisco, но канал к магистрали может быть неактивным;standard– тип, при указании которого маршрутизатор имеет несколько активных каналов к различным областям;shortcut– аналогичен типуstandard, при этом маршрутизатору разрешается использовать топологию не магистральных подключенных к нему областей для построения межобластных маршрутов, пролегающих через такие области.
Использование типа cisco или ibm позволяет ABR учитывать сводные данные, полученные от других ABR через немагистральные области, и маршрутизировать через немагистральные области только в случае, если магистральные каналы не работают.
26.5.2.3. Совместимость с RFC 2328¶
В RFC 2328 предлагается изменить алгоритм выбора предпочтительного пути для предотвращения возможных петель маршрутизации, допустимые в старой версии OSPFv2. Такое изменение требует, чтобы межобластные пути и внутриобластные магистральные пути имели одинаковое предпочтение, но по-прежнему были предпочтительнее внешних путей.
Для настройки совместимости с RFC 2328 применяется команда:
[edit router ospf ipv4]
# set ospf rfc1583compatibility
26.5.2.4. Таймеры¶
Для определения начальной задержки между расчётом SPF и событием, инициировавшим расчёт, применяется команда:
[edit router ospf ipv4]
# set timers throttle spf delay <timer-throttle-spf-delay-value>
где <timer-throttle-spf-delay-value> – число миллисекунд от 0 до 600 000.
Данная команда определяет минимальное время задержки расчёта SPF.
Для определения периода удержания между расчётом SPF и событием, которое инициировало расчёт, применяется команда:
[edit router ospf ipv4]
# set timers throttle spf initial-hold-time <timer-throttle-spf-initial-hold-time-value>
где <timer-throttle-spf-initial-hold-time-value> – число миллисекунд от 0 до 600 000.
Данная настройка задаёт интервал удержания, которым разделяются вычисления SPF. Период удержания является адаптивным и изначально устанавливается равным значению начальной задержки в настройке timers throttle spf delay.
Для определения максимального периода удержания между расчётом SPF и событием, которое инициировало расчёт, применяется команда:
[edit router ospf ipv4]
# set timers throttle spf max-hold-time <timer-throttle-spf-max-hold-time-value>
где <timer-throttle-spf-max-hold-time-value> – число миллисекунд от 0 до 600 000.
События, возникающие в течение периода удержания предыдущего расчёта SPF, приводят к увеличению значения периода удержания на значение начальной задержки, ограниченное значением максимального периода удержания (max-hold-time). Если время адаптивного удержания истекает без какого-либо события, запускающего SPF, текущее время удержания сбрасывается до начального времени удержания.
26.5.2.5. Совместимость с RFC 3137¶
В ПАК “Фортикс” обеспечивается поддержка RFC 3137, где процесс OSPF описывает свои транзитные каналы в LSA-маршрутизаторе как имеющие бесконечное расстояние, в связи с чем другие маршрутизаторы не рассчитывают транзитные пути через маршрутизатор, но при этом могут подключаться к сетям через данный маршрутизатор.
Для включения поддержки RFC 3137 на неопределенный срок применяется команда:
[edit router ospf ipv4]
# set max-metric router-lsa administrative
Административное включение данной функции допускает вмешательство в расчёты по любой причине на неопределенный период времени.
Для включения поддержки RFC 3137 после запуска на указанный промежуток времени применяется команда:
[edit router ospf ipv4]
# set max-metric router-lsa on-startup <timer-on-startup-value>
где <timer-on-startup-value> – число секунд от 5 до 86400.
Включение данной функции на некоторое время после запуска позволяет OSPF полностью сходиться, не затрагивая существующие маршруты, используемые другими маршрутизаторами, и при этом обеспечивать доступность любых подключенных тупиковых каналов и/или перераспределённых маршрутов.
Для включения поддержки перед выключением на указанный промежуток времени применяется команда:
[edit router ospf ipv4]
# set max-metric router-lsa on-shutdown <timer-on-shutdown-value>
где <timer-on-shutdown-value> – период перед выключением (число секунд от 5 до 100).
Включение данной функции на некоторый промежуток времени перед выключением позволяет маршрутизатору корректно выйти из домена OSPF.
26.5.2.6. Настройка полосы пропускания¶
Для определения эталонной полосы пропускания для расчёта стоимости маршрута применяется команда:
[edit router ospf ipv4]
# set auto-cost-reference-bandwidth <auto-cost-reference-bandwidth-value>
где <auto-cost-reference-bandwidth-value> – число Мбит/с от 1 до 4294967, по умолчанию – 100.
По умолчанию канал с пропускной способностью 100 Мбит/с или выше имеет стоимость 1, стоимость каналов с более низкой пропускной способностью масштабируется с учётом установленного эталонного значения.
Значение должно быть одинаковым на всех OSPF-маршрутизаторах домена.
26.5.2.7. Включение интерфейсов¶
Для работы маршрутизатора OSPF необходимо указать интерфейсы, участвующие в работе протокола, и их принадлежность к областям OSPF.
Для соотнесения интерфейсов, IP-адреса которых включены в указанный диапазон, с областью применяется команда:
[edit router ospf ipv4]
# set network <network> area <area-id>
где
<network>– IPv4-адрес в форматеA.B.C.D/mask;<area-id>– идентификатор существующей области OSPF.
На указанных интерфейсах применяется маршрутизация OSPF, при этом их IP-сети анонсируются соседним маршрутизаторам.
Для включения маршрутизации OSPF на указанном интерфейсе применяется команда:
[edit router ospf ipv4]
# set interface <interface-name> area <area-id> [address <address>]
где
<interface-name>– имя существующего интерфейса;<area-id>– идентификатор существующей области OSPF;<address>– (если интерфейс имеет несколько адресов) IPv4-адрес в форматеA.B.C.D/maskинтерфейса, который должен участвовать в маршрутизации.
Предупреждение
Совместное использование команд set network <network> ... и set interface <interface-name> area <area-id> недопустимо.
26.5.3. Настройка зон¶
26.5.3.1. Обобщение маршрутов¶
Для объединения путей внутри области в одно Summary-LSA (Тип-3), объявляемое другим областям, применяется команда:
[edit router ospf ipv4]
# set area <area-id> ranges range <range>
где
<area-id>– идентификатор существующей области OSPF;<range>– IPv4-адрес в форматеA.B.C.D/mask.
Примечание
Данная команда применима только в ABR и только для Router-LSA (Тип 1) и Network-LSA (Тип 2). AS-external-LSA (Тип 5) суммировать нельзя, так как их область действия — AS.
Для отключения анонсирования внутренних путей зоны из указанного диапазона в другие области применяется команда:
[edit router ospf ipv4]
# set area <area-id> ranges range <range> not-advertise
где
<area-id>– идентификатор существующей области OSPF;<range>– IPv4-адрес в форматеA.B.C.D/mask.
Примечание
Данная команда имеет смысл только в ABR-маршрутизаторах.
26.5.3.2. Поддержка виртуальных каналов¶
Для включения поддержки виртуальных каналов необходимо указать значение shortcut в качестве параметра настройки abr-type.
Для настройки поддержки виртуальных каналов (см. RFC 3509) применяется команда:
[edit router ospf ipv4]
# set area <area-id> virtual-link <router-id>
# set area <area-id> shortcut enable
где
<area-id>– идентификатор существующей области OSPF;<router-id>– идентификатор существующего маршрутизатора.
26.5.3.3. Настройка параметров зон¶
Тупиковой называется область, в которой ни один маршрутизатор не создаёт внешние по отношению к домену OSPF маршруты.
Для определения тупиковой зоны применяется команда:
[edit router ospf ipv4]
# set area <area-id> stub
где <area-id> – идентификатор существующей области OSPF.
NNSA-зоной (Not-So-Stubby Area – не совсем тупиковая область) называется область, позволяющая OSPF импортировать внешние маршруты в тупиковую область посредством LSA типа 7. Граничный маршрутизатор автономной системы NSSA (ASBR – Autonomous System Boundary Router) генерирует LSA данного типа. Граничный маршрутизатор области (ABR) преобразует LSA типа 7 в LSA типа 5, который распространяется в домен OSPF.
Для определения NSSA-зоны применяется команда:
[edit router ospf ipv4]
# set area <area-id> nssa
где <area-id> – идентификатор существующей области OSPF.
26.5.3.4. Настройка аутентификации¶
Для применения простой аутентификации с помощью пароля для указанной области применяется команда:
[edit router ospf ipv4]
# set area <area-id> authentication
где <area-id> – идентификатор существующей области OSPF.
Для применения аутентификации пакетов OSPF с помощью MD5 HMAC в пределах указанной области применяется команда:
[edit router ospf ipv4]
# set area <area-id> authentication message-digest
где <area-id> – идентификатор существующей области OSPF.
26.5.4. Команды для настройки интерфейсов¶
26.5.4.1. Включение OSPF на интерфейсе¶
Для включения OSPF на указанном интерфейсе применяется команда:
[edit router ospf ipv4]
# set interface <interface-name> area <area-id> [address <address>]
где
<interface-name>– имя существующего интерфейса;<area-id>– идентификатор существующей области OSPF;<address>– IPv4-адрес в форматеA.B.C.D.
26.5.4.2. Настройка аутентификации¶
Для настройки указанного простого пароля в качестве ключа аутентификации OSPF на указанном интерфейсе применяется команда:
[edit router ospf ipv4]
# set interface <interface-name> authentication-key <key-value>
где
<interface-name>– имя существующего интерфейса;<key-value>– строка длиной от 1 до 8 символов.
По данной команде все пакеты OSPF аутентифицируются.
Для настройки аутентификации MD5 HMAC на указанном интерфейсе применяется команда:
[edit router ospf ipv4]
# set interface <interface-name> authentication message-digest
где <interface-name> – имя существующего интерфейса.
Для настройки указанного криптографического пароля в качестве ключа аутентификации OSPF на указанном интерфейсе применяется команда:
[edit router ospf ipv4]
# set interface <interface-name> message-digest-key <key-id> mds-key <mds-key>
где
<interface-name>– имя существующего интерфейса;<key-id>– идентификатор от 1 до 255 секретного ключа, используемый для создания дайджеста сообщения;<mds-key>– фактический ключ дайджеста сообщения в формате строки длиной от 1 до 16 символов.
Для данной настройки используется криптографический алгоритм — MD5. Идентификатор <key-id> является частью протокола и должен быть одинаковым для всех маршрутизаторов в канале, при этом ключ <mds-key> связан с данным идентификатором.
26.5.4.3. Настройка приоритета маршрутизатора¶
Для настройки приоритета маршрутизации применяется команда:
[edit router ospf ipv4]
# set interface <interface-name> priority <priority-value>
где
<interface-name>– имя существующего интерфейса;<priority-value>– число от 1 до 65535, по умолчанию – 1.
От значения приоритета напрямую зависит вероятность того, что маршрутизатор станет DR-маршрутизатором. Значение 0 лишает маршрутизатор права стать DR-маршрутизатором.
26.5.4.4. Настройка таймеров¶
Для настройки значения таймера Router Dead Interval, используемого в качестве таймера ожидания и таймера бездействия, применяется команда:
[edit router ospf ipv4]
# set interface <interface-name> dead-interval interval <interval-value>
где
<interface-name>– имя существующего интерфейса;<interval-value>– число секунд от 1 до 65535, по умолчанию – 40.
Для настройки интервала отправки Hello-пакетов применяется команда:
[edit router ospf ipv4]
# set interface <interface-name> hello-interval <hello-interval-value>
где
<interface-name>– имя существующего интерфейса;<hello-interval-value>– число от 1 до 65535, по умолчанию – 10.
Определение интервала отправки Hello-пакетов также возможно через настройку значения таймера Router Dead Interval равного 1 секунде и указание количества Hello-пакетов, отправляемых за 1 секунду, с помощью команды:
[edit router ospf ipv4]
# set interface <interface-name> dead-interval minimal hello-multiplier <hello-multiplier-value>
где
<interface-name>– имя существующего интерфейса;<hello-multiplier-value>– число от 2 до 20, 2 – отправка осуществляется каждые 500 мс, 20 – 50 мс.
С помощью данной команды можно получить время сходимости протокола равное 1 секунде.
Предупреждение
При использовании данной команды настройка интервала отправки Hello-пакетов не учитывается.
26.5.5. Диагностика¶
Для просмотра общей информации об OSPF, состоянии области и конфигурации применяется команда:
> show router ospf ipv4
Для просмотра информации о состоянии и конфигурации OSPF-интерфейсов (указанного интерфейса) применяется команда:
> show router ospf ipv4 interface [<interface-name>]
где <interface-name> – имя существующего интерфейса.
Для просмотра информации LSA для LSDB применяется команда:
> show router ospf ipv4 neighbor [<interface-name>|all|detail]
где
<interface-name>– имя существующего интерфейса;all– параметр, при указании которого отображается статус соседнего маршрутизатора;detail– параметр, при указании которого отображается информация о всех соседних маршрутизаторах.
Для просмотра таблиц маршрутизации OSPF, определённой на основе последнего расчёта SPF, применяется команда:
> show router ospf ipv4 route
Для просмотра всех маршрутов, полученных по протоколу OSPFv2, применяется команда:
> show router unicast ipv4 ospf
26.6. OSPFv3¶
26.6.1. Введение¶
ПАК “Фортикс” поддерживает протокол OSPF версии 3 для IPv6 сетей.
26.6.2. Настройка¶
Для включения OSPFv3-маршрутизатора применяется команда:
# set router ospf ipv6
Для выключения OSPFv3-маршрутизатора и удаления всех его настроек применяется команда:
# del router ospf ipv6
Настройка OSPFv3-маршрутизатора осуществляется на следующем уровне конфигурации:
[edit router ospf ipv6]
Настройка сетевых интерфейсов OSPF осуществляется на следующем уровне конфигурации:
[edit router ospf ipv6 interface]
Настройки уровня конфигурации OSPFv3-маршрутизатора аналогичны настройкам уровня конфигурации OSPFv2-маршрутизатора, за исключением формата адреса, который меняется с IPv4 на IPv6.
26.6.2.1. Таймер суммирования маршрутов¶
Для указания таймера агрегации, по завершении которого начинает работать суммирование маршрутов, применяется команда:
[edit router ospf ipv6]
# set aggregation timer <aggregation-timer-value>
где <aggregation-timer-value> – число секунд от 5 до 1800, по умолчанию – 5.
По данной команде изменяется период времени, по истечении которого отправляются внешние LSA.
26.6.2.2. Настройка зон¶
Для объединения путей внутри области в одно Summary-LSA (Тип-3), объявляемое другим областям, применяется команда:
[edit router ospf ipv6]
# set area <area-id> range <network> [not-advertise]
где
<area-id>– идентификатор существующей области OSPFv3;<network>– IPv6-адрес в форматеA:B:...:H/mask;[not-advertise]– параметр, при указании которого предотвращается анонсирование суммарных маршрутов.
26.6.2.3. Настройка полосы пропускания¶
Для определения эталонной полосы пропускания для расчёта стоимости маршрута применяется команда:
[edit router ospf ipv6]
# set auto-cost-reference-bandwidth <bandwidth-value>
где <bandwidth-value> – число Мбит/с от 1 до 4294967.
26.6.2.4. Настройка количества параллельных маршрутов¶
Для определения максимального количества параллельных маршрутов, поддерживаемых OSPFv3-маршрутизатором, применяется команда:
# set maximum-paths <maximum-paths-number>
где <maximum-paths-number> – число от 1 до 64, по умолчанию – 64.
26.6.2.5. Таймеры¶
Для определения начальной задержки между расчётом SPF и событием, инициировавшим расчёт, применяется команда:
[edit router ospf ipv6]
# set timers throttle spf delay <timer-throttle-spf-delay-value>
где <timer-throttle-spf-delay-value> – число миллисекунд от 0 до 600000.
Для определения периода удержания между расчётом SPF и событием, которое инициировало расчёт, применяется команда:
[edit router ospf ipv6]
# set timers throttle spf initial-hold-time <timer-throttle-spf-initial-hold-time-value>
где <timer-throttle-spf-initial-hold-time-value> – число миллисекунд от 0 до 600000.
Для определения максимального периода удержания между расчётом SPF и событием, которое инициировало расчёт, применяется команда:
[edit router ospf ipv6]
# set timers throttle spf max-hold-time <timer-throttle-spf-initial-max-time-value>
где <timer-throttle-spf-initial-max-time-value> – число миллисекунд от 0 до 600000.
26.6.2.6. Идентификатор маршрутизатора¶
Для определения идентификатора OSPFv3-маршрутизатора применяется команда:
[edit router ospf ipv6]
# set router-id <router-id>
где <router-id> – IPv4-адрес в формате A.B.C.D.
26.6.2.7. Протоколирование информации¶
Для добавления в журнал работы более подробной информации об изменениях в отношениях смежности между маршрутизаторами применяется команда:
[edit router ospf ipv6]
set log-adjacency-changes [detail]
где [detail] – параметр, при указании которого в журнал добавляются все изменения состояний.
26.6.2.8. Анонсирование маршрутов¶
Для настройки перераспределения маршрутов между протоколами маршрутизации применяется команда:
[edit router ospf ipv6]
# set redistribute <redistribute-setting> [metric <metric-value>] [route-map <route-map-name>]
где
<redistribute-setting>– протокол маршрутизации;<metric-value>– значение метрики от 0 до 16;<route-map-name>– имя существующей карты маршрутов.
26.6.2.9. Настройка тупикового маршрутизатора¶
Для отключения режима транзитного маршрутизатора применяется команда:
[edit router ospf ipv6]
# set stub-router administrative
26.6.3. Диагностика¶
Для просмотра общей информации об OSPFv3, состоянии области и конфигурации применяется команда:
> show router ospf ipv6
Для просмотра информации о состоянии и конфигурации OSPFv3-интерфейсов применяется команда:
> show router ospf ipv6 interface [<interface-name>]
где <interface-name> – имя существующего интерфейса.
Для просмотра информации LSA для LSDB применяется команда:
> show router ospf ipv6 neighbor [<interface-name>|all|detail]
где
<interface-name>– имя существующего интерфейса;all– параметр, при указании которого отображается статус соседнего маршрутизатора;detail– параметр, при указании которого отображается информация о всех соседних маршрутизаторах.
Для отображения таблицы маршрутизации OSPFv3, определённой на основе последнего расчёта SPF, применяется команда:
> show router ospf ipv6 route
Для отображения всех маршрутов, полученных по протоколу OSPFv3, применяется команда:
> show router unicast ipv6 ospf
26.7. BGP¶
Border Gateway Protocol (BGP) – протокол динамической маршрутизации, используемый для обмена информацией о достижимости различных IP-сетей и маршрутизации трафика между ними. Данный протокол является одним из стандартных протоколов междоменной маршрутизации.
Каждый маршрутизатор, работающий по протоколу BGP, имеет свою собственную таблицу маршрутизации, содержащую информацию о доступных через различные интерфейсы сетях. При обмене маршрутной информацией между двумя маршрутизаторами через BGP осуществляется обновление их таблиц маршрутизации на основе полученной информации, что позволяет выбирать наиболее оптимальный маршрут для каждого IP-пакета.
Важной особенностью BGP является его способность выбора маршрута на основе различных критериев, таких как стоимость, задержка, надёжность и т.д. Данная особенность позволяет протоколам маршрутизации выбирать оптимальный маршрут в зависимости от требований к качеству обслуживания и условий сети. Протокол BGP обеспечивает безопасность и конфиденциальность маршрутной информации, передаваемой между маршрутизаторами.
26.7.1. Основные понятия¶
26.7.1.1. Автономная система¶
Автономная система (далее по тексту – AS) – группа маршрутизаторов и сетей, которые совместно используют общую политику маршрутизации и соглашения о технических аспектах маршрутизации. В протоколе BGP автономные системы используются для разделения сетей на логические области, в которых осуществляется обмен маршрутной информацией и управление данными областями. Каждая автономная система имеет свой уникальный номер (далее по тексту – ASN), который используется для идентификации и маршрутизации трафика. Автономные системы взаимодействуют друг с другом по протоколу BGP, обмениваясь маршрутной информацией, выбирая оптимальные маршруты и обновляя свои таблицы маршрутизации.
26.7.1.2. Внутренний BGP (Internal BGP) и Внешний BGP (External BGP)¶
Внешний BGP (далее по тексту – External BGP, eBGP) — BGP-маршрутизатор, работающий между автономными системами. По умолчанию соседние eBGP-маршрутизаторы должны быть непосредственно соединены друг с другом.
При работе iBGP-маршрутизаторов в нетранзитной AS соединение между ними должно быть полносвязным: маршрутизатор, находящийся на границе AS и получивший обновление, передаёт его всем соседним маршрутизаторам. Соседние маршрутизаторы, находящиеся внутри автономной системы, перестают распространять это обновление, так как считают, что все соседние маршрутизаторы внутри AS уже его получили.
26.7.1.3. Семейство адресов¶
Расширение MP-BGP (Multiprotocol BGP) – расширение протокола BGP, которое позволяет маршрутизаторам поддерживать несколько протоколов маршрутизации в BGP-процессе, таких как IPv4, IPv6 и другие. MP-BGP позволяет более эффективно использовать ресурсы маршрутизатора и упрощает настройку и управление маршрутизацией.
26.7.1.4. Выбор маршрута¶
Процесс выбора маршрута в ПАК “Фортикс” осуществляется согласно следующим критериям принятия решения (начиная с верхней части списка и продвигаясь вниз до тех пор, пока не выполнится какой-либо критерий):
Проверка веса маршрута: предпочтительнее локальный маршрут с наибольшим весом;
Проверка приоритета: предпочтительнее локальный маршрут с наибольшим приоритетом;
Проверка типа маршрута: локальный маршрут (статический, перераспределённый) предпочтительнее полученного;
Проверка длины пути: предпочтительнее наиболее короткий маршрут (с меньшим числом переходов);
Проверка происхождения: предпочтительнее IGP-маршрут;
Проверка MED (Multi-Exit Discriminator): если маршруты с MED были получены от одной и той же AS, предпочтительнее маршрут с наименьшим MED;
Проверка источника: маршрут, полученный от внешнего узла eBGP, предпочтительнее маршрута, полученного от узла другого типа;
Проверка стоимости IGP: предпочтительнее маршрут с наиболее низкой стоимостью IGP;
Проверка multipath маршрутов;
Проверка на уже выбранный маршрут: из двух полученных от узлов eBGP маршрутов предпочтительнее уже выбранный;
Проверка идентификатора маршрутизатора: предпочтительнее маршрут с наименьшим идентификатором;
Проверка кластера: предпочтительнее маршрут с наименьшей длиной списка кластеров;
Проверка соседства: предпочтительнее маршрут, полученный от соседнего маршрутизатора с более высоким адресом.
26.7.1.5. Согласование возможностей (Capability)¶
Согласование возможностей позволяет BGP-маршрутизаторам обмениваться информацией о своих возможностях и определять наиболее подходящие параметры маршрутизации. Данный процесс позволяет улучшать производительность и безопасность BGP-сети, а также выбирать устройствам оптимальные маршруты на основе их возможностей и требований.
26.7.2. Настройка¶
Настройка BGP-маршрутизатора осуществляется на следующем уровне конфигурации:
[edit router bgp]
Для выключения BGP-маршрутизатора и удаления всех его настроек применяется команда:
# del router bgp
26.7.2.1. ASN и ID маршрутизатора¶
Для определения идентификатора автономной системы BGP-маршрутизатора применяется команда:
[edit router bgp]
# set local-as <local-as-id>
где <local-as-id> – число от 1 до 4294967295.
Данная команда включает BGP-маршрутизатор с указанным номером AS. Команда является обязательной для работы протокола. Протокол BGP использует идентификатор AS для определения того, является ли соединение BGP внутренним или внешним.
Для определения идентификатора маршрутизатора применяется команда:
[edit router bgp]
# set router-id <router-id>
где <router-id> – IPv4-адрес в формате A.B.C.D.
Если идентификатор не задан явно, выбирается наибольший из IP-адресов интерфейсов.
26.7.2.2. Настройка соседства с другими маршрутизаторами¶
Для установления соединения между BGP-маршрутизаторами необходимо настроить соединение как для соседнего, так и для локального маршрутизатора. При настройке соединения необходимо указать автономную систему соседнего маршрутизатора. По данной информации BGP определяет тип соседнего маршрутизатора:
внутренний BGP-сосед (iBGP-сосед) — соседний маршрутизатор, находящийся в той же автономной системе, что и локальный маршрутизатор (iBGP-соседи не обязательно непосредственно соединены);
внешний BGP-сосед (eBGP-сосед) — соседний маршрутизатор, находящийся в автономной системе, отличной от автономной системы локального маршрутизатора (по умолчанию, eBGP-соседи должны быть непосредственно соединены).
Существенные отличия между iBGP- и eBGP-маршрутизаторами выражаются в процессе отправки обновлений BGP и добавления маршрутов в таблицу маршрутизации.
Для настройки соединения с соседним маршрутизатором применяется команда:
[edit router bgp]
# set neighbor <neighbor-id> remote-as internal|external|<as-id>
где
<neighbor-id>– идентификатор существующего соседнего маршрутизатора;internal|external– тип соседнего маршрутизатора;<as-id>– номер AS соседнего маршрутизатора.
При установлении соединения с соседним маршрутизатором проверяется, что:
маршрутизатор получил запрос на TCP-соединение с адресом отправителя, находящегося в списке соседей данного маршрутизатора;
номер автономной системы локального маршрутизатора совпадает с номером автономной системы, указанным на соседнем маршрутизаторе (исключение: настройки конфедераций);
идентификаторы маршрутизаторов (router-id) отличаются друг от друга;
соседние маршрутизаторы проходят аутентификацию, в случае если она настроена.
Для удобства настройки однотипных соединений предусмотрено создание именованных групп настроек, ссылаться на которые возможно при настройке соседства.
Для создания именованной группы настроек применяется команда:
[edit router bgp]
# set group <group-name>
где <group-name> – строка.
Пример конфигурации именованной группы настроек соседства:
router bgp {
group mygrp remote-as 2
neighbor 10.0.0.1 peer-group mygrp
neighbor 10.0.0.2 peer-group mygrp
}
В данной конфигурации группе mygrp с номером AS 2 принадлежат соседние маршрутизаторы с номером AS, указанным в группе.
Для установления соседства между напрямую подключёнными eBGP-маршрутизаторами с использованием loopback-адресов применяется команда:
[edit router bgp]
# set neighbor <neighbor-id> disable-connected-check
где <neighbor-id> – идентификатор существующего соседнего маршрутизатора.
Для определения адреса или интерфейса, с которых рассылаются обновления, применяется команда:
[edit router bgp]
# set neighbor <neighborid> update-source <address>|<interface-name>
где
<neighbor-id>– идентификатор существующего соседнего маршрутизатора;<address>– IPv4-адрес в форматеA.B.C.Dили IPv6-адрес в форматеA:B:...:H;<interface-name>– имя существующего интерфейса.
При необходимости для указания описания соседнего маршрутизатора применяется команда:
[edit router bgp]
# set neighbor <neighbor-id> description <description>
где
<neighbor-id>– идентификатор существующего соседнего маршрутизатора;<description>– строка длиной от 1 до 80 символов.
Пример настройки соседства:
[edit router bgp]
# set neighbor 172.16.12.2 description RemoteFortics
# commit
# do show router bgp summary
IPv4 Unicast Summary:
BGP router identifier 192.168.0.1, local AS number 65001 VRF default vrf-id 0
BGP table version 1
RIB entries 1, using 128 bytes of memory
Peers 3, using 71 KiB of memory
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd PfxSnt Desc
172.16.12.2 4 65024 5 5 1 0 0 00:01:44 1 1 RemoteFortics
172.16.14.4 4 65024 0 0 0 0 0 never Active 0 N/A
Для настройки времени задержки перед принятием решения о том, какие соседние маршрутизаторы могут быть объединены в группу обновлений для формирования единого обновления для них, применяется команда:
[edit router bgp]
set coalesce-time <coalesce-time-value>
где <coalesce-time-value> – число миллисекунд от 0 до 4294967295, по умолчанию – 1000.
Для принудительного использования формата Extended Optional Parameters Length в OPEN-сообщениях (RFC 9072) применяется команда:
[edit router bgp]
# set neighbor <neighbor-id> extended-optional-parameters
где <neighbor-id> – идентификатор существующего соседнего маршрутизатора.
По умолчанию пропускная способность в расширенных сообществах (extended communities) передаётся в кодировке формата IEEE с плавающей точкой. В более ранних версиях протокола значение пропускной способности расширенного сообщества передаётся в кодировке uint32.
Для обеспечения обратной совместимости возможно отключение кодировки IEEE с плавающей точкой с помощью команды:
[edit router bgp]
# set neighbor <neighbor-id> disable-link-bw-encoding-ieee
где <neighbor-id> – идентификатор существующего соседнего маршрутизатора.
Для определения всех маршрутов от указанного соседа как менее предпочтительных применяется команда:
[edit router bgp]
# set neighbor <neighbor-id> graceful-shutdown
где <neighbor-id> – идентификатор существующего соседнего маршрутизатора.
Для настройки соседнего маршрутизатора, до которого отсутствует прямое подключение, применяется команда:
[edit router bgp]
# set neighbor <neighbor-id> enforce-multihop
где <neighbor-id> – идентификатор существующего соседнего маршрутизатора.
Для определения явного количества переходов до соседнего маршрутизатора, для которого отсутствует прямое подключение, применяется команда:
[edit router bgp]
# set neighbor <neighbor-id> ttl-security hops <hops>
где
<neighbor-id>– идентификатор существующего соседнего маршрутизатора;<hops>– число от 1 до 256.
Для понижения приоритета пути (увеличения административной дистанции), полученного по еBGP, до указанной подсети применяется команда:
[edit router bgp]
# set ipv4 unicast network <network-address> backdoor
где <network-address> – IPv4-адрес в формате A.B.C.D/mask.
Примечание
Данная команда применима, если к указанной сети уже существует более приоритетный маршрут, полученный от другого протокола маршрутизации.
Для включения механизма обнаружения петель в путях AS на стороне отправителя и фильтрации указанных маршрутов перед их отправкой применяется команда:
[edit router bgp]
# set neighbor <neighbor-id> sender-as-path-loop-detection
где <neighbor-id> – идентификатор существующего соседнего маршрутизатора.
26.7.2.3. Несколько автономных систем¶
ПАК “Фортикс” поддерживает запуск нескольких автономных систем (AS) одновременно. Каждая настроенная AS соответствует своей виртуальной таблице маршрутизации (VRF). Таким образом, использование VRF позволяет управлять несколькими автономными системами в одном BGP-процессе.
Каждую из используемых автономных систем необходимо настроить на отдельном уровне конфигурации VRF, которая должна быть уникальна по отношении ко всем другим VRF, используемым для той же цели: две различные автономные системы не могут использовать одну и ту же VRF, при этом одна и та же AS может использоваться с разными VRF.
Для настройки дополнительных автономных систем или маршрутизатора, ориентированного на указанную виртуальную таблицу маршрутизации, применяется команда:
# set vrf <vfr-name> router bgp local-as <as-id>
где
<vfr-name>– имя виртуальной таблицы маршрутизации;<as-id>– номер AS соседнего маршрутизатора.
Пример конфигурации нескольких автономных систем:
router bgp {
local-as 65001
neighbor 192.168.1.1 remote-as 65020
neighbor 192.168.1.2 remote-as 65030
}
vrf VRF1 router bgp {
local-as 65002
neighbor 192.168.1.3 remote-as 65040
neighbor 192.168.1.4 remote-as 65050
}
vrf VRF2 router bgp {
local-as 65003
neighbor 192.168.1.5 remote-as 65060
neighbor 192.168.1.6 remote-as 65070
}
26.7.2.4. Выбор маршрута¶
В данном разделе представлены команды для определения критериев выбора наилучшего маршрута.
Для учёта длины наборов и последовательностей путей конфедерации при выборе наилучшего маршрута применяется команда:
[edit router bgp]
# set bestpath-selection as-path confed
Для использования нескольких параллельных путей в таблице маршрутизации применяется команда:
[edit router bgp]
# set bestpath-selection as-path multipath-relax
Для сравнения идентификаторов маршрутизаторов применяется команда:
[edit router bgp]
# set bestpath-selection compare-router-id
Для применения в таблице маршрутизации нескольких параллельных путей, полученных от соседних маршрутизаторов разных типов, применяется команда:
[edit router bgp]
# set bestpath-selection peer-type multipath-relax
Для использования атрибутов AIGP для выбора наилучшего маршрута применяется команда:
[edit router bgp]
# set bestpath-selection aigp
Для учёта полосы пропускания при выборе наилучшего маршрута применяется команда:
[edit router bgp]
# set bestpath-selection bandwidth ignore|skip-missing|default-weight-for-missing
где
ignore– параметр, при указании которого игнорируется пропускная способность канала пути;skip-missing– параметр, при указании которого не используются пути, у которых отсутствует информация о пропускной способности;default-weight-for-missing– параметр, при указании которого устанавливается наименьший приоритет (1) для путей без информации о пропускной способности.
26.7.2.5. Административное расстояние¶
Для настройки значения метрики локальных маршрутов применяется команда:
[edit router bgp]
# set ipv4|ipv6 unicast distance bgp local <local-distance>
где
ipv4|ipv6– уровень конфигурации IPv4/IPv6;<local-distance>– число то 1 до 255.
Для настройки значения метрики внутренних маршрутов применяется команда:
[edit router bgp]
# set ipv4|ipv6 unicast distance bgp internal <internal-distance>
где
ipv4|ipv6– уровень конфигурации IPv4/IPv6;<internal-distance>– число то 1 до 255.
Для настройки значения метрики внешних маршрутов применяется команда:
[edit router bgp]
# set ipv4|ipv6 unicast distance bgp external <external-distance>
где
ipv4|ipv6– уровень конфигурации IPv4/IPv6;<external-distance>– число то 1 до 255.
Для настройки значения метрики для указанного префикса применяется команда:
[edit router bgp]
# set ipv4|ipv6 unicast distance administrative <distance> prefix <network> [route-map <route-map-name>]
где
ipv4|ipv6– уровень конфигурации IPv4/IPv6;<distance>– число то 1 до 255;<network>– Pv4-адрес в форматеA.B.C.D/maskили IPv6-адрес в форматеA:B:...:H/maskв зависимости от текущего уровня конфигурации;<route-map-name>– имя существующей карты маршрутов.
26.7.2.6. Требование к политикам EBGP¶
В рамках соответствия RFC 8212 BGP-маршрутизатор требует применения входящих и исходящих фильтров для сеансов EBGP. Без входящих фильтров маршруты не принимаются, без исходящих фильтров – не анонсируются. Для изменения данного поведения применяется команда:
[edit router bgp]
# set no-ebgp-requires-policy
Без применения данной команды (при включённом требовании наличия фильтрации и ненастроенных входящих и исходящих фильтрах) вывод команды show router bgp summary содержит состояние Policy:
> show router bgp summary
IPv4 Unicast Summary (VRF default):
BGP router identifier 192.168.0.1, local AS number 65001 vrf-id 0
BGP table version 0
RIB entries 0, using 0 bytes of memory
Peers 1, using 20 KiB of memory
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd PfxSnt Desc
10.0.0.24 4 65002 3 3 0 0 0 00:00:34 (Policy) (Policy) N/A
Total number of neighbors 1
Вывод данной команды также содержит сообщение об отклонении входящих и/или исходящих обновлений для соответствующего семейства адресов:
> show router bgp neighbors
...
For address family: IPv4 Unicast
Update group 1, subgroup 1
Packet Queue length 0
Community attribute sent to this neighbor(all)
Inbound updates discarded due to missing policy
Outbound updates discarded due to missing policy
0 accepted prefixes
26.7.2.7. Принудительное использование номера первой AS¶
Для настройки отказа в обновлении, полученном от внешнего узла, для которого не указан номер его автономной системы в начале AS_PATH, применяется команда:
[edit router bgp]
# set neighbor <neighbor-id> enforce-first-as
где <neighbor-id> – идентификатор существующего соседнего маршрутизатора.
Предупреждение
Если внешним узлом является сервер маршрутов (Route-Server), рекомендуется отключить данную настройку.
26.7.2.8. Отключение проверки типа подключения соседнего EBGP-маршрутизатора¶
По умолчанию BGP проверяет нахождение eBGP-соседа в непосредственно присоединённой сети локального маршрутизатора. Для отключения данной проверки применяется команда:
[edit router bgp]
# set disable-ebgp-connected-route-check
26.7.2.9. Демпфирование маршрутов BGP¶
Flap Dampening — механизм, используемый в протоколе маршрутизации BGP для предотвращения петель и других нежелательных состояний сети, вызванных частыми изменениями в состоянии соединений. Данный механизм позволяет снизить объём маршрутного трафика, передаваемого партнёрам, и уровень нагрузки на этих партнёров без существенного воздействия на время схождения сети. Механизм работает путём введения штрафа или задержки для обработки обновлений BGP, если маршрутизатор обнаруживает частые изменения в состоянии соединений или маршрутов.
В ПАК “Фортикс” предусмотрены команды для управления данным механизмом. Для определения времени “полужизни” применяется команда:
[edit router bgp]
# set ipv4|ipv6 unicast bgp dampening half-life-time <half-life-time>
где
ipv4|ipv6– уровень конфигурации IPv4/IPv6;<half-life-time>– число минут от 1 до 45.
По истечении указанного в команде времени штраф на маршруте уменьшается экспоненциально до половины своего текущего значения.
Для определения значения порога повторного использования в механизме демпфирования применяется команда:
[edit router bgp]
# set ipv4|ipv6 unicast bgp dampening start-reusing <start-reusing>
где
ipv4|ipv6– уровень конфигурации IPv4/IPv6;<start-reusing>– число от 1 до 20000.
При уменьшении количества накопленных штрафных очков до порога повторного использования интерфейс выходит из подавленного состояния и его непосредственно подключенный маршрут становится доступным другим устройствам в сети.
Для определения размера штрафа, выше которого маршрут подавляется, применяется команда:
[edit router bgp]
# set ipv4|ipv6 unicast bgp dampening start-suppressing <start-suppressing>
где
ipv4|ipv6– уровень конфигурации IPv4/IPv6;<start-suppressing>– число от 1 до 50000.
Для определения максимального промежутка времени, в течение которого маршрут может игнорироваться, применяется команда:
[edit router bgp]
# set ipv4|ipv6 unicast bgp dampening max-duration <max-duration>
где
ipv4|ipv6– уровень конфигурации IPv4/IPv6;<max-duration>– число минут от 1 до 255.
26.7.2.10. BGP MED¶
Атрибут BGP MED (Multi-Exit Discriminator) используется для выбора пути трафика в BGP, поступающего в автономную систему с несколькими точками выхода.
Атрибут используется принимающей AS для выбора наилучшего пути среди нескольких для достижения пункта назначения, транслируемого соседней AS. Меньшее значение MED предпочтительнее.
При использовании атрибута MED оказывается влияние на выбор пути для трафика, входящего в AS, и оптимизируется поток трафика между текущей и соседними AS.
Значение MED не распространяется за пределы соседней AS и может вызвать неожиданные проблемы с выбором пути при неправильном использовании.
В ПАК “Фортикс” доступно использование данного атрибута. Для сравнения различных значений MED, объявленных соседними маршрутизаторами в одной AS, для выбора наилучшего маршрута применяется команда:
[edit router bgp]
# set bestpath-selection deterministic-med
По умолчанию атрибут MED проверяется только при сравнении маршрутов из одной и той же AS.
Для сравнения атрибута MED для маршрутов, пришедших с разных AS, применяется команда:
[edit router bgp]
# set bestpath-selection always-compare-med
26.7.2.11. Механизм плавного перезапуска (graceful-restart)¶
Механизм плавного перезапуска BGP позволяет другим узлам BGP продолжать пересылать пакеты данных по известным маршрутам при восстановлении информации протокола маршрутизации.
При перезапуске BGP-маршрутизатора все узлы BGP обнаруживают прерывание сеанса, а затем – его возобновление. Данный переход приводит к колебаниям в сети и вызывает перерасчёт BGP-маршрутов, создание обновлений маршрутизации BGP и изменения в таблицах пересылки.
Механизм graceful-restart обеспечивает следующие функции:
позволяет маршрутизатору, на котором осуществляется процесс перезапуска BGP-сессии, указывать соседнему узлу маршруты, которые он может сохранить в своей таблице пересылки на время перезапуска (возможность плавного перезапуска отправляется в сообщении OPEN во время установления сеанса);
позволяет маршрутизатору объявлять всем остальным узлам маршруты, полученные от перезапускаемого маршрутизатора.
Для включения механизма применяется команда:
[edit router bgp]
# set neighbor <neighbor-id> graceful-restart
где <neighbor-id> – идентификатор существующего соседнего маршрутизатора.
Для отключения механизма применяется команда:
[edit router bgp]
# set neighbor <neighbor-id> graceful-restart disable
где <neighbor-id> – идентификатор существующего соседнего маршрутизатора.
Механизм graceful-restart-helper позволяет маршрутизаторам входить в режим помощника для поддержки плавного перезапуска соседнего маршрутизатора.
Для настройки механизма применяется команда:
[edit router bgp]
# set neighbor <neighbor-id> graceful-restart helper
где <neighbor-id> – идентификатор существующего соседнего маршрутизатора.
26.7.2.12. Анонсирование сетей¶
Для добавления анонсирования сетей для указанной подсети применяется команда:
[edit router bgp]
# set ipv4|ipv6 unicast network <network>
где
ipv4|ipv6– уровень конфигурации IPv4/IPv6;<network>– IPv4-адрес в форматеA.B.C.D/maskили IPv6-адрес в форматеA:B:...:H/maskв зависимости от текущего уровня конфигурации.
Пример конфигурации с анонсированием сетей:
router bgp {
local-as 65001
ipv4 unicast network 10.0.0.0/8
}
В данной конфигурации сеть 10.0.0.0/8 объявляется всем соседним маршрутизаторам.
26.7.2.13. Роли BGP¶
Использование ролей BGP обеспечивает простой способ обнаружения и предотвращения утечек маршрутов (RFC 9234). Для включения механизма необходимо настроить локальную роль для взаимодействия с соседним маршрутизатором.
Для настройки доступны следующие роли:
provider: может распространять любые маршруты к customer;
customer: может распространять к provider локально созданные и полученные от другого customer маршруты (остальные маршруты не распространяются);
rs-server (Route Server): может распространять любой доступный маршрут к rs-client;
rs-client (Route Server Client): может распространять любой маршрут, полученный от customer или локально созданный, к rs-server (остальные маршруты не распространяются);
peer: может распространять любой маршрут, полученный от customer или локально созданный, к другому peer (остальные маршруты не распространяются).
Значения ролей согласовываются на этапе определения соседства. Если роли маршрутизаторов соответствуют допустимым значениям, осуществляется обмен маршрутной информацией.
Допустимые пары для согласования:
provider – сustomer;
peer – peer;
rs-server – rs-client.
Для определения локальной роли маршрутизатора применяется команда:
[edit router bgp]
# set neighbor <neighbor-id> local-role role provider|rs-server|rs-client|customer|peer
где
<neighbor-id>– идентификатор существующего соседнего маршрутизатора;provider|rs-server|rs-client|customer|peer– роль.
Для включения жёсткого требования наличия роли у соседнего маршрутизатора применяется команда:
[edit router bgp]
# set router bgp neighbor <neighbor-id> local-role strict-mode
где <neighbor-id> – идентификатор существующего соседнего маршрутизатора.
26.7.2.14. Настройка согласования возможностей¶
При настройке соседства между BGP-маршрутизаторами осуществляется обмен информацией о поддерживаемых возможностях. Для включения строгого режима сравнения возможностей применяется команда:
[edit router bgp]
# set neighbor <neighbor-id> strict-capability-match
где <neighbor-id> – идентификатор существующего соседнего маршрутизатора.
Если возможности отличаются, при использовании данной команды соединение сбрасывается.
Для отключения функции отправки информации о поддерживаемых возможностях применяется команда:
[edit router bgp]
# set neighbor <neighbor-id> dont-capability-negotiate
где <neighbor-id> – идентификатор существующего соседнего маршрутизатора.
Для полного игнорирования возможностей удалённого соседа и принудительного использования локальных применяется команда:
[edit router bgp]
# set neighbor <neighbor-id> override-capability
где <neighbor-id> – идентификатор существующего соседнего маршрутизатора.
Для использования функции поддержки динамических возможностей применяется команда:
[edit router bgp]
# set neighbor <neighbor-id> capability dynamic
где <neighbor-id> – идентификатор существующего соседнего маршрутизатора.
Данная настройка позволяет сообщать об изменении возможностей узла BGP без необходимости перезапуска сеанса.
26.7.2.15. Поддержка IPv6¶
По умолчанию всем соседним маршрутизаторам объявляется только семейство одноадресных (unicast) IPv4-адресов. Прёем обновлений осуществляется только для одноадресных IPv4-адресов.
Для включения поддержки IPv6 для соответствующего семейства адресов применяется команда:
[edit router bgp]
# set ipv6 unicast neighbor <neighbor> activate
где <neighbor-id> – идентификатор существующего соседнего маршрутизатора.
Пример конфигурации одновременной поддержки одноадресных IPv4- и IPv6-адресов:
bgp {
local-as 65002
neighbor 10.0.0.23 remote-as 65001
neighbor 2000::1 remote-as 65003
ipv4 unicast {
neighbor 10.0.0.23 activate
network 192.168.1.0/24
}
ipv6 unicast {
neighbor 2000::1 activate
network 2000::99/64
}
}
26.7.2.16. Суммирование маршрутов¶
Суммирование маршрутов в BGP – процесс объединения нескольких маршрутов с одинаковой метрикой (стоимостью) в один маршрут. Данный процесс позволяет уменьшить количество информации, передаваемой между маршрутизаторами, и улучшить масштабируемость BGP.
Маршруты с одинаковой стоимостью, полученные маршрутизатором от различных соседей, суммируются в один. Данный процесс может осуществляться как на уровне автономной системы, так и для некоторого префикса сети.
Например, если у маршрутизатора есть два пути с одинаковой метрикой к одной и той же сети, при этом один из них проходит через AS100, а другой – через AS200, маршрутизатор может суммировать эти два маршрута в один для минимизации количества обновлений BGP, которые он отправляет своим соседям.
Таким образом, суммирование маршрутов уменьшает количество обновлений BGP, что снижает нагрузку на сеть и улучшает масштабируемость. Уменьшение количества обновлений приводит к уменьшению количества изменений в сети, что улучшает её стабильность. Уменьшение количества маршрутов снижает объём трафика, передаваемого по сети.
26.7.2.16.1. Суммирование IPv4 маршрутов¶
Для настройки суммарного маршрута для указанной подсети применяется команда:
[edit router bgp]
# set ipv4 unicast aggregate-address <aggregate-address>
где <aggregate-address> – IPv4-адрес в формате A.B.C.D/mask.
Для применения данной команды в таблице BGP необходимо наличие более конкретного (более длинного) префикса.
Например, если необходимо создать суммарный префикс 10.0.0.0/24, следует убедиться, что есть любой другой меньший префикс в таблице BGP (например, 10.0.0.1/32 или 10.0.0.0/26).
Для применения карты маршрутов к суммарному префиксу используется команда:
[edit router bgp]
# set ipv4 unicast aggregate-address <aggregate-address> route-map <route-map-name>
где
<aggregate-address>– IPv4-адрес в форматеA.B.C.D/mask;<route-map-name>– имя существующей карты маршрутов.
26.7.2.16.2. Суммирование IPv6 маршрутов¶
Для суммирования IPv6-маршрутов для указанной подсети применяется команда:
[edit router bgp]
# set ipv6 unicast aggregate-address <aggregate-address> [route-map <route-map-name>]
где
<aggregate-address>– IPv6-адрес в форматеA:B:...:H/mask;<route-map-name>– имя существующей карты маршрутов.
26.7.2.17. Перераспределение маршрутов¶
Перераспределение маршрутов из других протоколов осуществляется в соответствии с выбранным семейством адресов – для семейства IPv4-адресов доступно перераспределение маршрутов протокола OSPFv2 и недоступно перераспределение OSPFv3.
Для настройки перераспределения маршрутов между протоколами маршрутизации применяется команда:
[edit router bgp]
# set ipv4|ipv6 unicast redistribute <redistribute-protocol> [metric <metric>] [route-map <route-map-name>]
где
ipv4|ipv6– уровень конфигурации IPv4/IPv6;<redistribute-protocol>– протокол маршрутизации;<metric>– значение метрики от 0 до 4294967295;<route-map-name>– имя существующей карты маршрутов.
26.7.2.18. Сообщества¶
26.7.2.18.1. Атрибуты сообществ BGP¶
Атрибуты сообществ BGP используются для реализации политики маршрутизации. В ПАК “Фортикс” предусмотрена настройка атрибутов сообществ согласно сетевой политике. Атрибут сообщества — это набор значений сообщества, каждый из которых имеет длину 4 октета.
Атрибут может быть задан в виде значения AS:VAL, где
AS— два октета старшего порядка в числовом формате;VAL— два октета младшего порядка в числовом формате.
Данный формат применим для определения значения политики, ориентированной на AS.
Атрибут может быть задан в виде одного из зарезервированных значений:
accept-own– используется в протоколе BGP для принятия собственных анонсов (данный атрибут позволяет маршрутизатору BGP принимать собственные анонсы маршрутов от других соседей BGP, если они были изменены);accept-own-nexthop– используется в протоколе BGP для указания на возможность роутера использовать свой собственный адрес в качестве следующего перехода для анонсированных маршрутов;additive– используется в протоколе BGP для указания того, что объявление маршрутной информации должно быть добавлено к таблице маршрутов без замены существующих объявлений;blackhole– используется в протоколе BGP для обозначения маршрута, который должен быть удалён из таблицы маршрутизации;graceful-shutdown– используется в протоколе BGP для уведомления соседних устройств о том, что данный соседний BGP-маршрутизатор будет отключён, что позволяет соседним устройствам предпринять необходимые действия во избежание проблем с маршрутизацией;internet– используется в протоколе BGP для обозначения маршрута, ведущего во внешнюю сеть (если атрибут не указан, маршрут считается внутренним);llgr-stale– используется в протоколе BGP для сохранения устаревших маршрутов в течение более длительного промежутка времени после сбоя сеанса;local-AS– используется в протоколе BGP для обозначения маршрута, не объявляемого внешним узлам BGP (если соседний маршрутизатор является частью конфедерации, он считается внешним узлом BGP и маршрут узлу не объявляется);no-advertise– используется в протоколе BGP для обозначения маршрута, не объявляемого другим узлам BGP;no-export– используется в протоколе BGP для обозначения маршрута, не объявляемого за пределами границ конфедерации BGP (если соседний узел BGP является частью конфедерации BGP, считается, что узел находится внутри границы конфедерации BGP, поэтому маршрут объявляется узлу);no-llgr– используется в протоколе BGP для обозначения маршрутизаторов, получение маршрутов от которых даёт маршрутизатору право разрешать, отклонять или изменять маршруты при наличии или отсутствии данного сообщества;no-peer– используется для обозначения маршрута, который не нужно объявлять между соседними маршрутизаторами;route-filter-v4иroute-filter-translated-v4– используются для фильтрации VPN IPv4-маршрутов;route-filter-v6иroute-filter-translated-v6– используются для фильтрации VPN IPv6-маршрутов.
26.7.2.18.2. Списки сообществ (Communities Attribute)¶
Списки сообществ — определяемые администратором списки значений атрибутов сообщества. Данные списки используются для сопоставления атрибутов сообщества или управления ими в сообщениях UPDATE.
В ПАК “Фортикс” предусмотрены следующие типы списков:
standard– содержит явные значения атрибутов;expanded– содержит регулярные выражения (так как регулярное выражение интерпретируется при каждом использовании, списки сообществ данного типа работают медленнее, чемstandardсписки).
Список типа standard может содержать значение атрибута сообщества в явном виде или в виде зарезервированного значения.
Для создания списка типа standard и указания в нём атрибута в явном виде применяется команда:
# set router community-list standard <standard-list-name> seq <seq> action deny|permit community <community-value>
где
<standard-list-name>– слово;<seq-value>– порядковый номер правила от 1 до 4294967295;deny|permit– запрещающая или разрешающая политика;<value>– значение атрибута в форматеAS:VAL.
Для создания списка типа standard и указания в нём атрибута в виде зарезервированного значения применяется команда:
# set router community-list standard <standard-list-name> seq <seq-value> action deny|permit community-attr <community-attr-value>
где
<standard-list-name>– слово;<seq-value>– порядковый номер правила от 1 до 4294967295;deny|permit– запрещающая или разрешающая политика;<community-attr-value>– атрибут в виде зарезервированного значения из представленного в командной строке списка.
Для создания списка типа expanded и указания в нём атрибута в виде регулярного выражения применяется команда:
# set router community-list expanded <expanded-list-name> seq <seq-value> action deny|permit community <community-regex>
где
<expanded-list-name>– слово;<seq-value>– порядковый номер правила от 1 до 4294967295;deny|permit– запрещающая или разрешающая политика;<community-regex>– шаблон соответствия в формате регулярного выражения.
Для просмотра актуальных списков применяется команда:
> show router community-list
26.7.2.18.3. Атрибуты расширенных сообществ (Extended Communities Attribute)¶
Атрибуты расширенных сообществ применяются в технологии MPLS VPN/BGP. Данные атрибуты позволяют использовать Route Target или Site of Origin для реализации сетевых политик.
Для создания списка типа standard и указания в нём атрибута в явном виде применяется команда:
# set router extcommunity-list standard <standard-list-name> seq <seq-value> action deny|permit community <community-value>
где
<standard-list-name>– слово;<seq-value>– порядковый номер правила от 1 до 4294967295;deny|permit– запрещающая или разрешающая политика;<community-value>– значение атрибута в форматеAS:VAL.
Для создания списка типа standard и указания в нём атрибута в виде зарезервированного значения применяется команда:
# set router extcommunity-list standard <standard-list-name> seq <seq-value> action deny|permit community-attr <community-attr-value>
где
<standard-list-name>– слово;<seq-value>– порядковый номер правила от 1 до 4294967295;deny|permit– запрещающая или разрешающая политика;<community-attr-value>– атрибут в виде зарезервированного значения из представленного в командной строке списка.
Для создания списка типа expanded и указания в нём атрибута в виде регулярного выражения применяется команда:
# set router extcommunity-list expanded <expanded-list-name> seq <seq-value> action deny|permit community <community-regex>
где
<expanded-list-name>– слово;<seq-value>– порядковый номер правила от 1 до 4294967295;deny|permit– запрещающая или разрешающая политика;<community-regex>– шаблон соответствия в формате регулярного выражения.
Для просмотра актуальных списков применяется команда:
> show router extcommunity-list
26.7.2.18.4. Атрибуты больших сообществ (Large Communities Attribute)¶
Атрибуты BGP Large Communities аналогичны стандартным атрибутам BGP сообщества, за исключением того, что атрибуты большого сообщества состоят из трёх компонентов, каждый из которых имеет длину 4 октета. Большие сообщества обеспечивают дополнительный функционал и удобство по сравнению с традиционными сообществами; наличие у глобальной части ширины 4 октета допускает беспрепятственное применение в сетях, использующих 4-байтовые номера ASN (например, AS:VAL1:VAL2). Предусмотрены списки сообществ типа standard и expanded.
Для создания списка типа standard и указания в нём атрибута в явном виде применяется команда:
# set router large-community-list standard <standard-list-name> seq <seq-value> action deny|permit community <community-value>
где
<standard-list-name>– слово;<seq-value>– порядковый номер правила от 1 до 4294967295;deny|permit– запрещающая или разрешающая политика;<community-value>– значение атрибута в форматеAS:VAL1:VAL2.
Для создания списка типа standard и указания в нём атрибута в виде зарезервированного значения применяется команда:
# set router large-community-list standard <standard-list-name> seq <seq-value> action deny|permit community-attr <community-attr-value>
где
<standard-list-name>– слово;<seq-value>– порядковый номер правила от 1 до 4294967295;deny|permit– запрещающая или разрешающая политика;<community-attr-value>– атрибут в виде зарезервированного значения из представленного в командной строке списка.
Для создания списка типа expanded и указания в нём атрибута в виде регулярного выражения применяется команда:
# set router large-community-list expanded <expanded-list-name> seq <seq-value> action deny|permit community <community-regex>
где
<expanded-list-name>– слово;<seq-value>– порядковый номер правила от 1 до 4294967295;deny|permit– запрещающая или разрешающая политика;<community-regex>– шаблон соответствия в формате регулярного выражения.
Для просмотра актуальных списков применяется команда:
> show router large-community-list
26.7.2.18.5. Использование атрибутов¶
В картах маршрутов (route-map) предусмотрено сопоставление (match) или определение (set) атрибутов сообществ BGP. При использовании данной функции реализуется сетевая политика на основе атрибутов сообществ BGP. Настройка данной функции осуществляются на следующем уровне конфигурации:
[edit router route-map <route-map-name>]
где <route-map-name> – имя существующей карты маршрутов.
Для определения значения сообщества в UPDATE-сообщениях в явном виде применяется команда:
[edit router route-map <route-map-name>]
# set community value <community-value>
где
<route-map-name>– имя существующей карты маршрутов;<community-value>– значение атрибута в форматеAS:VAL.
Для определения значения сообщества в UPDATE-сообщениях в виде зарезервированного значения применяется команда:
[edit router route-map <route-map-name>]
# set community attribute <community-attr-value>
где
<route-map-name>– имя существующей карты маршрутов;<community-attr-value>– атрибут в виде зарезервированного значения из представленного в командной строке списка.
Для определения значения сообщества в UPDATE-сообщениях из списка стандартных сообществ применяется команда:
[edit router route-map <route-map-name>]
# set community-list <community-list-name>
где
<route-map-name>– имя существующей карты маршрутов;<community-list-name>– имя существующего списка стандартных сообществ.
Для определения значения расширенного сообщества в UPDATE-сообщениях в явном виде применяется команда:
[edit router route-map <route-map-name>]
# set extcommunity rt <rt-value> soo <soo-value>
где
<route-map-name>– имя существующей карты маршрутов;<rt-value>– значение атрибура Route Target в формате A.B.C.D:<0-65535> или <0-4294967295>:<0-65535>;<soo-value>– значение атрибура Site of Origin в формате A.B.C.D:<0-65535> или <0-4294967295>:<0-65535>.
Для определения значения расширенного сообщества в UPDATE-сообщениях из списка расширенных сообществ применяется команда:
[edit router route-map <route-map-name>]
# set extcommunity-list <extcommunity-list-name>
где
<route-map-name>– имя существующей карты маршрутов;<extcommunity-list-name>– имя существующего списка расширенных сообществ.
Для определения значения большого сообщества в UPDATE-сообщениях в явном виде применяется команда:
[edit router route-map <route-map-name>]
# set large-community value <large-community-value>
где
<route-map-name>– имя существующей карты маршрутов;<large-community-value>– значение атрибута в форматеAS:VAL1:VAL2.
Для определения значения большого сообщества в UPDATE-сообщениях из списка больших сообществ применяется команда:
[edit router route-map <route-map-name>]
# set large-community-list <list-name>
где
<route-map-name>– имя карты маршрутов;<list-name>– имя существующего списка больших сообществ.
Для определения соответствия сообщества списку стандартных сообществ применяется команда:
[edit router route-map <route-map-name>]
# set match community-list <community-list-name>
где
<route-map-name>– имя существующей карты маршрутов;<community-list-name>– имя существующего списка стандартных сообществ.
Для определения соответствия расширенного сообщества списку расширенных сообществ применяется команда:
[edit router route-map <route-map-name>]
# set match extcommunity-list <extcommunity-list-name>
где
<route-map-name>– имя существующей карты маршрутов;<extcommunity-list-name>– имя существующего списка расширенных сообществ.
Для определения соответствия большого сообщества списку больших сообществ применяется команда:
[edit router route-map <route-map-name>]
# set match large-community-list <large-community-list-name>
где
<route-map-name>– имя существующей карты маршрутов;<large-community-list-name>– имя существующего списка больших сообществ.
26.7.2.19. Настройка BGP tcp-mss¶
Опция TCP-MSS применяется в BGP для определения максимального размера сегмента в байтах для TCP-соединений, используемых для обмена маршрутной информацией между соседними BGP-маршрутизаторами. Данная опция позволяет узлам корректно согласовывать MTU и устанавливать соответствующее значение MSS для предотвращения фрагментации пакетов при обмене BGP-сообщениями.
Для настройки данной опции применяется команда:
[edit router bgp]
# set neighbor <neighbor-id> tcp-mss <tcp-mss>
где
<neighbor-id>– идентификатор существующего соседнего маршрутизатора;<tcp-mss>– максимальный размер сегмента в байтах от 1 до 65535.
26.7.2.20. Настройка быстрой сходимости¶
При переходе узла BGP в состояние “недоступен” сеанс BGP завершается немедленно, при этом немедленно завершаются только сеансы EBGP с одним переходом. Сеансы IBGP и многопереходные сеансы EBGP завершают сеанс по истечении таймера удержания.
Для настройки немедленного завершения сеансов BGP при переходе однорангового узла в состояние “недоступен” применяется команда:
[edit router bgp]
# set fast-convergence
По данной команде настройка применяется ко всем настроенным соседям.
Пример конфигурации с быстрой сходимостью:
router bgp {
local-as 65001
fast-convergence
neighbor 192.168.1.1 remote-as 65001
neighbor ff00::1 remote-as 65001
ipv4 unicast neighbor 192.168.1.1 activate
ipv6 unicast neighbor ff00::1 activate
}
26.7.3. Диагностика¶
Для просмотра IPv4-таблицы маршрутизации BGP протокола применяется команда:
> show router bgp ipv4 [<prefix> [bestpath|multipath]]
где
<prefix>– IPv4-адерес в форматеA.B.C.D/maskпрефикса сети для отображения в таблице;bestpath– параметр, при указании которого отображаются только bestpath-маршруты;multipath– параметр, при указании которого отображаются только multipath-маршруты.
Для просмотра IPv6-таблицы маршрутизации BGP протокола применяется команда:
> show router bgp ipv6 [<prefix> [bestpath|multipath]]
где
<prefix>– IPv6-адерес в форматеA:B:...:H/maskпрефикса сети для отображения в таблице;bestpath– параметр, при указании которого отображаются только bestpath-маршруты;multipath– параметр, при указании которого отображаются только multipath-маршруты.
Для просмотра информации о соседнем IPv4-маршрутизаторе применяется команда:
> show router bgp ipv4 neighbors <neighbor-id>
где <neighbor-id> – идентификатор существующего соседнего маршрутизатора.
Для просмотра информации о соседнем IPv6-маршрутизаторе применяется команда:
> show router bgp ipv6 neighbors <neighbor-id>
где <neighbor-id> – идентификатор существующего соседнего маршрутизатора.
Для просмотра всех IPv4-маршрутов, полученных по протоколу BGP, применяется команда:
> show router unicast ipv4 bgp
Для просмотра всех IPv6-маршрутов, полученных по протоколу BGP, применяется команда:
> show router unicast ipv6 bgp
26.8. ISIS¶
26.8.1. Введение¶
ISIS (Intermediate System to Intermediate System) – протокол маршрутизации, предназначенный для использования в крупных, сложных и динамических IP-сетях.
ISIS работает на 3 уровне модели OSI (сетевой уровень) и обеспечивает функции маршрутизации и сходимости для сетей IP. Одним из ключевых преимуществ протокола ISIS является его способность быстро и эффективно обрабатывать топологические изменения в сети. Данный протокол обеспечивает высокую масштабируемость и производительность, что позволяет использовать его в крупных сетевых инфраструктурах. Протокол ISIS является надёжным и эффективным протоколом маршрутизации для сетевых инфраструктур, требующих высокой масштабируемости, производительности и способности обрабатывать сложные топологические изменения.
В сети ISIS разделение областей осуществляется по маршрутизаторам (а не по интерфейсам, как в OSPF). То есть, ISIS-маршрутизатор, в отличие от OSPF, не может находиться одновременно в различных областях.
ПАК “Фортикс” поддерживает два уровня доменов ISIS:
L1 – соседство между маршрутизаторами формируется внутри одной области;
L2 – соседство между маршрутизаторами может формироваться как внутри области, так и между разными областями.
На основе данных уровней можно выделить три типа маршрутизаторов в ISIS-домене:
L1-маршрутизаторы – устройства, взаимодействие с другими маршрутизаторами которых осуществляются на уровне L1;
L2-маршрутизаторы – устройства, все соседства которых организованы на уровне L2;
L1/L2-маршрутизаторы – устройства, поддерживающие взаимодействия обоих уровней.
Всё множество L2-взаимодействий между маршрутизаторами непрерывно (связь L2-маршрутизаторов представляет собой ядро сети). На маршрутизаторе возможно формирование соседства обоих уровней через один интерфейс (маршрутизатор может на одном и том же интерфейсе формировать соседство уровня L1 и L2).
Для описания процесса ISIS используются следующие термины:
LSP (Link-state Packet) – пакет состояния канала;
CSNP (Complete Sequence Number PDU) – список всех состояний каналов (LSP) в базе данных состояний маршрутизатора (CSNP содержит LSP-идентификатор, время жизни (lifetime), порядковый номер и контрольную сумму для каждой записи в базе данных);
PSNP (Partial Sequence Number PDU) – запрос ISIS-маршрутизатора, посылаемый для получения некоторой LSP-информации из базы данных соседнего маршрутизатора.
26.8.2. Настройка¶
Для включения ISIS-маршрутизатора в зоне с указанным идентификатором применяется команда:
# set router isis area <area-tag>
где <area-tag> – строка.
Для выключения ISIS-маршрутизатора и удаления всех его настроек применяется команда:
# del router isis
Настройка ISIS-маршрутизатора осуществляется на следующем уровне конфигурации:
[edit router isis area <area-tag>]
где <area-tag> – идентификатор существующей зоны.
Настройка сетевых интерфейсов ISIS осуществляется на следующем уровне конфигурации:
[edit router isis interface]
Идентификатор зоны (Area Tag), в которую входит ISIS-маршрутизатор, является условным именем, которое не участвует в процессе маршрутизации и не влияет на взаимодействие между устройствами. Применяется для настроек интерфейса, которые относятся к текущему ISIS-процессу.
Для определения идентификатора сети в ISO формате применяется команда:
[edit router isis area <area-tag>]
# set area-address <area-address>
где
<area-tag>– идентификатор существующей зоны;<area-address>– идентификатор сети, который состоит из нескольких частей:AFI: Authority and Format Identifier: часть номера области длиной 1 байт;
Area-ID: номер области, которой принадлежит маршрутизатор, длиной от 0 до 12 байт;
System-ID: уникальный идентификатор маршрутизатора длиной 6 байт (по части System-ID маршрутизаторы узнают друг друга при определении топологии);
Selector: принадлежность адреса длиной 1 байт (в ПАК “Фортикс” всегда имеет значение “00”).
При определении идентификатора сети применяется шестнадцатеричная система счисления; отдельные части адреса и 2-байтовые последовательности внутри Area-ID и System-ID разделяются точками.
Пример применения команды для определения идентификатора сети:
[edit router isis area 1]
# set area-address 49.0001.92168.3324.8700.00
Для настройки типа маршрутизатора в зависимости от уровня домена применяется команда:
[edit router isis area <area-tag>]
# set is-type level-1|level-2|level-1-2
где
<area-tag>– идентификатор зоны (строка);level-1|level-2|level-1-2– уровень домена.
В ПАК “Фортикс” для ISIS-маршрутизации по умолчанию включена поддержка динамического имени хоста. Для её отключения применяется команда:
[edit router isis area <area-tag>]
# set disable-dynamic-hostname
где <area-tag> – идентификатор существующей зоны.
Для добавления в журнал работы более подробной информации об изменениях отношений смежности между маршрутизаторами применяется команда:
[edit router isis area <area-tag>]
# set log-adjacency-changes
где <area-tag> – идентификатор существующей зоны.
Для настройки поддержки формата пакета применяется команда:
[edit router isis area <area-tag>]
# set metric-style narrow|transition|wide
где
<area-tag>– идентификатор существующей зоны;narrow– старый формат TLV с малой метрикой;wide– новый формат с большей метрикой;transition– оба формата.
Для настройки использования бита перезагрузки применяется команда:
[edit router isis area <area-tag>]
# set overload-bit
где <area-tag> – идентификатор существующей зоны.
Для настройки перераспределения IPv4-маршрутов между протоколами маршрутизации применяется команда:
[edit router isis area <area-tag>]
# set redistribute ipv4 <redistribute-protocol> level 1|2 [metric <metric>] [route-map <route-map-name>]
где
<area-tag>– идентификатор существующей зоны;<redistribute-protocol>– протокол маршрутизации;1|2– уровень домена;<metric>– значение метрики от 0 до 16777215;<route-map-name>– имя существующей карты маршрутов.
Для настройки перераспределения IPv6-маршрутов между протоколами маршрутизации применяется команда:
[edit router isis area <area-tag>]
# set redistribute ipv6 <redistribute-protocol> level 1|2 [metric <metric>] [route-map <route-map-name>]
где
<area-tag>– идентификатор существующей зоны;<redistribute-protocol>– протокол маршрутизации;1|2– уровень домена;<metric>– значение метрики от 0 до 16777215;<route-map-name>– имя существующей карты маршрутов.
26.8.2.1. Настройка аутентификации¶
Для настройки пароля аутентификации области в виде указанного открытого текста применяется команда:
[edit router isis area <area-tag>]
# set area-password password-type clear password <password>
где
<area-tag>– идентификатор существующей зоны;<password>– строка длиной от 1 до 254 символов.
Для настройки указанного пароля аутентификации области с использованием MD5 хэш-суммы применяется команда:
[edit router isis area <area-tag>]
# set area-password password-type md5 password <password>
где
<area-tag>– идентификатор существующей зоны;<password>– строка длиной от 1 до 254 символов.
Для настройки пароля аутентификации домена в виде указанного открытого текста применяется команда:
[edit router isis area <area-tag>]
# set domain-password password-type clear password <password>
где
<area-tag>– идентификатор существующей зоны;<password>– строка длиной от 1 до 254 символов.
Для настройки указанного пароля аутентификации домена с использованием MD5 хэш-суммы применяется команда:
[edit router isis area <area-tag>]
# set domain-password password-type md5 password <password>
где
<area-tag>– идентификатор существующей зоны;<password>– строка длиной от 1 до 254 символов.
26.8.2.2. Настройка таймеров¶
Для настройки минимального интервала повторной передачи одного и того же LSP для области (level-1) или домена (level-2) применяется команда:
[edit router isis area <area-tag>]
# set lsp timers level-1|level-2 generation-interval <generation-interval-value>
где
<area-tag>– идентификатор существующей зоны;level-1– домен уровня 1 (область);level-2– домен уровня 2 (домен);<generation-interval-value>– число секунд от 1 до 120.
Для настройки времени существование LSP для области (level-1) или домена (level-2) применяется команда:
[edit router isis area <area-tag>]
# set lsp timers level-1|level-2 maximum-lifetime <maximum-lifetime-value>
где
<area-tag>– идентификатор существующей зоны;level-1– домен уровня 1 (область);level-2– домен уровня 2 (домен);<maximum-lifetime-value>– число секунд от 350 до 65535.
Для настройки интервала обновления LSP для области (level-1) или домена (level-2) применяется команда:
[edit router isis area <area-tag>]
# set lsp timers level-1|level-2 refresh-interval <refresh-interval-value>
где
<area-tag>– идентификатор существующей зоны;level-1– домен уровня 1 (область);level-2– домен уровня 2 (домен);<refresh-interval-value>– число секунд от 0 до 65535.
Для настройки минимального интервала вычислений SPF для области (level-1) или домена (level-2) применяется команда:
[edit router isis area <area-tag>]
# set spf minimum-interval level-1|level-2 <minimum-interval-value>
где
<area-tag>– идентификатор существующей зоны;level-1– домен уровня 1 (область);level-2– домен уровня 2 (домен);<minimum-interval-value>– число секунд от 0 до 120.
26.8.2.3. Настройка интерфейсов¶
Настройка сетевых интерфейсов ISIS осуществляется на следующем уровне конфигурации:
[edit router isis interface <interface-name>]
где <interface-name> – имя существующего интерфейса.
Для активации процесса ISIS на интерфейсе для IPv4-маршрутизации применяется команда:
[edit router isis interface <interface-name>]
# set ipv4 area <area-tag>
где
<interface-name>– имя существующего интерфейса;<area-tag>– идентификатор существующей зоны.
Для активации процесса ISIS на указанном интерфейсе для IPv6-маршрутизации применяется команда:
[edit router isis interface <interface-name>]
# set ipv6 area <area-tag>
где
<interface-name>– имя существующего интерфейса;<area-tag>– идентификатор существующей зоны.
Предупреждение
Идентификатор зоны <area-tag> должен быть таким же, как в основных настройках маршрутизатора ISIS.
Для настройки указанного интерфейса в зависимости от уровня домена применяется команда:
[edit router isis interface <interface-name>]
# set circuit-type level-1|level-2|level-1-2
где
<interface-name>– имя существующего интерфейса;level-1– домен уровня 1;level-2– домен уровня 2;level-1-2– домен обоих уровней.
Для перевода указанного интерфейса в пассивный режим применяется команда:
[edit router isis interface <interface-name>]
# set passive
где <interface-name> – имя существующего интерфейса;
Для включения поддержки BFD на указанном интерфесе применяется команда:
[edit router isis interface <interface-name>]
# set bfd <bfd-profile>
где
<interface-name>– имя существующего интерфейса;<bfd-profile>– имя BFD-профиля длиной от 1 до 24 символов.
Для настройки интервала передачи CSNP для области (level-1) или домена (level-2) на указанном интерфейсе применяется команда:
[edit router isis interface <interface-name>]
# set csnp-interval level-1|level-2 <csnp-interval>
где
<interface-name>– имя существующего интерфейса;level-1– домен уровня 1 (область);level-2– домен уровня 2 (домен);<csnp-interval>– число секунд от 1 до 600.
Для настройки интервала передачи PSNP для области (level-1) или домена (level-2) на указанном интерфейсе применяется команда:
[edit router isis interface <interface-name>]
# set psnp-interval level-1|level-2 <psnp-interval>
где
<interface-name>– имя существующего интерфейса;level-1– домен уровня 1 (область);level-2– домен уровня 2 (домен);<psnp-interval>– число секунд от 1 до 120.
Для настройки метрики для области (level-1) или домена (level-2) на указанном интерфейсе применяется команда:
[edit router isis interface <interface-name>]
# set metric level-1|level-2 <metric>
где
<interface-name>– имя существующего интерфейса;level-1– домен уровня 1 (область);level-2– домен уровня 2 (домен);<metric>– число от 0 до 16777215.
26.8.3. Диагностика¶
Для просмотра общей информации об ISIS-маршрутизаторе применяется команда:
> show router isis summary
Для просмотра информации об интерфейсах, участвующих в ISIS-маршрутизации, применяется команда:
> show router isis interface [<interface-name>|detail]
где
<interface-name>– имя существующего интерфейса;detail– параметр, при указании которого отображается детализированная информация.
Для просмотра информации о соседних ISIS-маршрутизаторах, доступных для обмена информацией, применяется команда:
> show router isis neighbor [detail]
где [detail] – параметр, при указании которого отображается детализированная информация.
Для просмотра таблицы ISIS-маршрутизации применяется команда:
> show router isis route backup|level-1|level-2|prefix-sid
где
backup– параметр, при указании которого отображаются backup-маршрутизаторы;level-1– параметр, при указании которого отображаются маршрутизаторы домена уровня 1;level-2– параметр, при указании которого отображаются маршрутизаторы домена уровня 2;prefix-sid– параметр, при указании которого отображаются SID-префиксы.
Для просмотра всех IPv4-маршрутов, полученных по протоколу ISIS, применяется команда:
> show router unicast ipv4 isis
Для отображения всех IPv6-маршрутов, полученных по протоколу ISIS, применяется команда:
> show router unicast ipv6 isis
26.8.4. Пример конфигурации¶
На рис. 26.1 представлена схема с упрощённой топологией ISIS-домена и основная конфигурация ISIS-маршрутизаторов. Маршрутизаторы R1 (level-1) и R2 (level-1-2) принадлежат к зоне A1, маршрутизатор R3 (level-2) – к зоне A2.
Рис. 26.1 Пример конфигурации ISIS¶
Конфигурация маршрутизатора R1:
interface {
ether en0 {
enable
ipv4 address 10.0.1.1/24
}
ether en1 {
enable
ipv4 address 192.168.1.1/24
}
}
router isis {
area A1 {
is-type level-1
area-address 49.0001.0000.1111.00
area-address 49.1111.2222.0000.00
}
interface en1 {
ipv4 area A1
circuit-type level-1
}
}
system hostname R1
Доступные соседние маршрутизаторы для маршрутизатора R1:
> show router isis neighbor
Area A1:
System Id Interface L State Holdtime SNPA
R2 en1 1 Up 28 0800.2747.5067
Конфигурация маршрутизатора R2:
interface {
ether en0 {
enable
ipv4 address 192.168.1.2/24
}
ether en1 {
enable
ipv4 address 172.16.1.1/24
}
}
router isis {
area A1 {
is-type level-1-2
area-address 49.0001.0000.2222.00
}
interface en0 {
ipv4 area A1
circuit-type level-1-2
}
interface en1 {
ipv4 area A1
circuit-type level-1-2
}
}
system {
hostname R2
ipv4 forwarding
}
Доступные соседние маршрутизаторы для маршрутизатора R2:
> show router isis neighbor
Area A1:
System Id Interface L State Holdtime SNPA
R1 en0 1 Up 29 0800.2735.6da7
R3 en1 2 Up 30 0800.271a.9d0d
Конфигурация маршрутизатора R3:
interface {
ether en0 {
enable
ipv4 address 172.16.1.2/24
}
ether en1 {
enable
ipv4 address 10.0.255.1/24
}
}
router isis {
area A2 {
is-type level-2
area-address 49.0002.0000.3333.00
}
interface en0 {
ipv4 area A2
circuit-type level-2
}
}
system hostname R3
Доступные соседние маршрутизаторы для маршрутизатора R3:
> show router isis neighbor
Area A2:
System Id Interface L State Holdtime SNPA
R2 en0 2 Up 28 0800.271b.7022
26.9. BFD¶
26.9.1. Введение¶
BFD (Bidirectional Forwarding Detection) – протокол, предназначенный для обеспечения высокопроизводительной и надёжной сигнализации о состоянии канала связи. Используется в сетях, требующих высокой доступности и надёжности.
BFD обеспечивает быструю и надёжную проверку состояния канала. Протокол работает на сетевом уровне и позволяет устройствам быстро реагировать на изменения в сети: обнаруживать отказы связи и восстанавливать соединения. Данный механизм позволяет минимизировать простои и обеспечивать высокую доступность сервисов.
Принцип работы BFD основан на периодической отправке и приёме специальных сообщений BFD между устройствами. Если устройства не получают данные сообщения в течение некоторого периода, протокол объявляет о проблеме с соединением. Время обнаружения отказа и время восстановления могут быть настроены в соответствии с требованиями к производительности и надёжности сети.
В ПАК “Фортикс” протокол BFD может использоваться в комбинации с другими протоколами динамической маршрутизации, такими как RIP, OSPFv2, OSPFv3, BGP, ISIS, и совместно со статической маршрутизацией.
Данный протокол предназначен для обеспечения надёжной и высокодоступной сетевой инфраструктуры, особенно в критически важных средах.
26.9.2. Настройка¶
Для обеспечения совместной работы протокола BFD с другими протоколами маршрутизации необходимо:
активировать работу протокола;
создать именованный профиль в настройках протокола BFD;
при необходимости внести изменения в работу протокола с помощью соответствующих настроек профиля;
связать выбранный протокол маршрутизации с именованным профилем протокола BFD.
26.9.2.1. Активация работы протокола¶
Для включения протокола BFD применяется команда:
# set router bfd
Предупреждение
Данная команда только активирует работу протокола на маршрутизаторе, не оказывая влияния на работу протоколов статической и динамической маршрутизации.
Для выключения протокола и удаления всех его настроек применяется команда:
# del router bfd
26.9.2.2. Создание и настройка именованного профиля¶
Для создания именованного профиля с помощью команды:
# set router bfd profile <profile-name>
где <profile-name> – строка длиной от 1 до 64 символов.
26.9.2.2.1. Настройка профиля¶
В ПАК “Фортикс” пустой профиль по умолчанию является рабочим и доступным для использования, при этом его настройки изменяемы.
Настройка профиля осуществляется на следующем уровне конфигурации:
[edit router bfd profile <profile-name>]
где <profile-name> – имя существующего профиля.
Для настройки множителя обнаружения для определения потери пакетов применяется команда:
[edit router bfd profile <profile-name>]
# set detect-multiplier <detect-multiplier-value>
где
<profile-name>– имя существующего профиля;<detect-multiplier-value>– число от 2 до 255.
Интервал передачи на удалённой стороне умножается на заданное в данной команде значение для определения таймера обнаружения потери соединения. Например, если в локальной системе множитель обнаружения равен 3, а в удалённой системе интервал передачи – 300 миллисекунд, локальная система обнаружит сбой через 900 миллисекунд.
Для настройки минимального значения TTL для входящего управляющего пакета BFD для сеансов с несколькими переходами применяется команда:
[edit router bfd profile <profile-name>]
# set minimum-ttl <minimum-ttl-value>
где
<profile-name>– имя существующего профиля;<minimum-ttl-value>– число от 1 до 254.
Данная настройка применяется для усиления требований к проверке пакетов (во избежание получения пакетов управления BFD от других сеансов).
Для перевода текущего сеанса в пассивный режим применяется команда:
[edit router bfd profile <profile-name>]
# set passive-mode
где <profile-name> – имя существующего профиля.
В указанном режиме маршрутизатор не устанавливает BFD-соединение самостоятельно и ожидает управляющих пакетов от другого BFD-маршрутизаторам перед ответом. Данный механизм применяется во избежание отправки излишних управляющих пакетов BFD-протокола.
Для настройки минимального интервала приёма пакетов управления применяется команда:
[edit router bfd profile <profile-name>]
# set receive-interval <receive-interval-value>
где
<profile-name>– имя существующего профиля;<receive-interval-value>– число миллисекунд от 10 до 60000.
Для настройки минимального интервала передачи для отправки пакетов управления применяется команда:
[edit router bfd profile <profile-name>]
# set transmit-interval <transmit-interval-value>
где
<profile-name>– имя существующего профиля;<transmit-interval-value>– число миллисекунд от 10 до 60000.
Команды настройки эхо-режима
Для включения эхо-режима применяется команда:
[edit router bfd profile <profile-name>]
# set echo echo-mode
где <profile-name> – имя существующего профиля.
По умолчанию данный режим отключен.
Примечание
После включения эхо-режима рекомендуется увеличить интервал передачи управляющих пакетов для снижения использования полосы пропускания, например с помощью команды set transmit-interval 2000.
Для настройки интервала передачи для отправки эхо-пакетов BFD применяется команда:
[edit router bfd profile <profile-name>]
# set echo transmit-interval <transmit-interval-value>
где
<profile-name>– имя существующего профиля;<transmit-interval-value>– число миллисекунд от 10 до 60000.
Для настройки интервала приёма эхо-пакетов BFD применяется команда:
[edit router bfd profile <profile-name>]
# set echo receive-interval <receive-interval-value>
где
<profile-name>– имя существующего профиля;<receive-interval-value>– число миллисекунд от 10 до 60000.
Для отключения приёма эхо-пакетов BFD применяется команда:
[edit router bfd profile <profile-name>]
# set echo receive-interval disable
где <profile-name> – имя существующего профиля.
26.9.2.3. Использование BFD в различных протоколах маршрутизации¶
Для использования протокола BFD в процессах других протоколов в настройках маршрутизации указывается имя профиля.
Ниже представлены форматы команд для использования профиля BFD в различных протоколах. Настройки применимы глобально или для указанного интерфейса/маршрута.
26.9.2.3.1. Протокол BGP¶
Для использования профиля BFD в протоколе BGP применяется команда:
# set router bgp neighbor <neighbor-address> bfd <profile-name>
где
<neighbor-address>– IPv4-адрес в форматеA.B.C.Dили IPv6-адрес в форматеA:B:...:Hсоседнего маршрутизатора;<profile-name>– имя существующего профиля.
26.9.2.3.2. Протокол OSPF¶
Для использования профиля BFD в протоколе OSPF применяется команда:
# set router ospf ipv4 interface <interface-name> bfd <profile-name>
где
<interface>– имя существующего интерфейса;<profile-name>– имя существующего профиля.
26.9.2.3.3. Протокол OSPFv3¶
Для использования профиля BFD в протоколе OSPFv3 применяется команда:
# set router ospf ipv6 interface <interface-name> bfd <profile-name>
где
<interface>– имя существующего интерфейса;<profile-name>– имя существующего профиля.
26.9.2.3.4. Протокол RIP¶
Для использования профиля BFD в протоколе RIP применяется команда:
# set router rip ipv4 interface <interface-name> bfd <profile-name>
где
<interface>– имя существующего интерфейса;<profile-name>– имя существующего профиля.
26.9.2.3.5. Протокол ISIS¶
Для использования профиля BFD в протоколе ISIS применяется команда:
# set router isis interface <interface-name> bfd <profile-name>
где
<interface>– имя существующего интерфейса;<profile-name>– имя существующего профиля.
26.9.2.3.6. Статическая маршрутизация¶
Для использования протокола BFD в настройках маршрутов (см. раздел 24 Стандартная статическая маршрутизация) указывается имя профиля. Таким образом, для использования протокола BFD в статической маршрутизации применяются следующие команды:
# set router unicast ipv4|ipv6 to <network> via gw <gateway> [dist <distance>] [nexthop-vrf <nexthop-vrf-name>] bfd <profile-name>
# set router unicast ipv4|ipv6 to <network> via interface <interface-name> [dist <distance>] [nexthop-vrf <nexthop-vrf-name>] bfd <profile-name>
# set router unicast ipv4|ipv6 to <network> via gw <gateway> interface <interface-name> [dist <distance>] [nexthop-vrf <nexthop-vrf-name>] bfd <profile-name>
# set router unicast ipv4|ipv6 to <network> via blackhole drop|reject [dist <distance>] [nexthop-vrf <nexthop-vrf-name>] bfd <profile-name>
где
ipv4|ipv6– уровень конфигурации IPv4/IPv6;<network>– IPv4-адрес в форматеA.B.C.D/maskили IPv6-адрес в форматеA:B:...:H/maskпрефикса сети в зависимости от уровня конфигурации;<interface-name>– имя существующего интерфейса;<gateway>– следующий IPv4-адрес или IPv6-адрес маршрута в зависимости от уровня конфигурации;<distance>– административное расстояние от 1 до 255;<nexthop-vrf-name>– имя существующей виртуальной таблицы маршрутизации;drop|reject– режим отбрасывания пакетов (drop– пакеты отбрасываются без уведомления,reject– пакеты отбрасываются с ICMP-сообщениемdestination host unreachable);<profile-name>– имя существующего профиля.
26.9.3. Диагностика¶
Для просмотра информации о настройках состояния BFD-протокола для статической маршрутизации применяется команда:
> show router bfd static route
Для просмотра информации о всех BFD-узлах применяется команда:
> show router bfd peers [brief|counters]
где
brief– параметр, при указании которого отображается информация в табличной форме;counters– параметр, при указании которого отображается информация о счётчиках.
Для просмотра статистики применяется команда:
> show router bfd distributed