Документация: ПО Факел — разрабатываемая версия
Маршруты Failover¶
Обзор¶
Маршрут Failover — статический маршрут IPv4, который добавляется в системную таблицу маршрутизации, только пока подтверждена доступность его шлюза. Для каждого шлюза маршрутизатор периодически проверяет цели проверки и по результату добавляет маршрут или удаляет его. Это позволяет переключаться на резервный шлюз, если основной канал перестал работать, даже когда сам шлюз остается подключенным к интерфейсу.
Маршруты Failover настраиваются в разделе protocols failover режима «Конфигурирование»:
route <route>— маршрут к IPv4-префиксу. Для маршрута можно задать несколько шлюзов;next-hop <next-hop>— шлюз (следующий переход) маршрута. Для шлюза необходимо задать интерфейс (interface) и хотя бы одну цель проверки (check target). Метрика (metric, по умолчанию 1) определяет приоритет шлюза: маршрут с наименьшей метрикой используется в первую очередь. Параметрonlinkуказывает, что шлюз подключен непосредственно к интерфейсу;check— параметры проверки шлюза: цели (target), способ проверки (type:icmp— по умолчанию,arpилиtcp; дляtcpнеобходимо задать портport), время ожидания после проверки шлюза в секундах (timeout, по умолчанию 10) и правило оценки целей (policy:any-available— по умолчанию, достаточно одной доступной цели;all-available— должны быть доступны все цели).
Проверка выполняется через интерфейс шлюза. Если цели доступны по заданному правилу, маршрут через шлюз добавляется в системную таблицу маршрутизации с заданной метрикой. Если цели недоступны, маршрут через этот шлюз удаляется. Маршруты Failover передаются в FVE: транзитный трафик идет через шлюз с наименьшей метрикой, а после удаления его маршрута — через резервный шлюз. Каждое добавление и удаление маршрута, а также неудачная проверка записываются в системный журнал.
Шлюзы всех маршрутов Failover проверяются по очереди. После проверки шлюза маршрутизатор ждет время, заданное параметром timeout этого шлюза, и только затем проверяет следующий шлюз. Поэтому один и тот же шлюз проверяется повторно через время, равное сумме значений timeout всех шлюзов с учетом длительности самих проверок.
При любом изменении раздела protocols failover все маршруты Failover удаляются из системной таблицы маршрутизации. Затем они добавляются заново по мере проверки шлюзов.
Для раздела protocols failover необходимо задать хотя бы один маршрут, для маршрута — хотя бы один шлюз; иначе применение конфигурации завершается ошибкой. Раздел можно включить в синхронизацию конфигурации (см. Синхронизация конфигурации).
Команды режима «Администрирование» для просмотра состояния маршрутов Failover в текущей версии ПО Факел отсутствуют. Маршруты, добавленные проверками, видны в таблице маршрутизации (см. Состояние менеджера таблиц маршрутизации): в выводе команды show ip route они отмечены как маршруты ядра (Known via "kernel") с метрикой шлюза. Сообщения о проверках выводит команда show log.
Пример настройки¶
В примере шлюз 192.0.2.1 на интерфейсе eth0 является основным для маршрута по умолчанию, шлюз 198.51.100.1 на интерфейсе eth1 — резервным (метрика выше). Доступность каждого шлюза проверяется по протоколу ICMP.
Шаг |
Команда |
Описание |
|---|---|---|
1 |
set protocols failover route 0.0.0.0/0 next-hop |
Задает основной шлюз |
2 |
set protocols failover route 0.0.0.0/0 next-hop 192.0.2.1 check target |
Задает цель проверки доступности основного шлюза |
3 |
set protocols failover route 0.0.0.0/0 next-hop 192.0.2.1 metric |
Задает метрику маршрута через основной шлюз |
4 |
set protocols failover route 0.0.0.0/0 next-hop |
Задает резервный шлюз |
5 |
set protocols failover route 0.0.0.0/0 next-hop 198.51.100.1 check target |
Задает цель проверки доступности резервного шлюза |
6 |
set protocols failover route 0.0.0.0/0 next-hop 198.51.100.1 metric |
Задает метрику маршрута через резервный шлюз |
Список команд¶
Режим «Конфигурирование»¶
protocols failover route <route>¶
Синтаксис:
set protocols failover route
<route>delete protocols failover route
<route>show protocols failover route
<route>
Аргументы:
<route>— IPv4-префикс, к которому ведет маршрут. Формат: IPv4-префикс (x.x.x.x/x).
Режим: «Конфигурирование».
protocols failover route <route> next-hop <next-hop>¶
Синтаксис:
set protocols failover route
<route>next-hop<next-hop>delete protocols failover route
<route>next-hop<next-hop>show protocols failover route
<route>next-hop<next-hop>
Аргументы:
<route>— IPv4-префикс, к которому ведет маршрут. Формат: IPv4-префикс (x.x.x.x/x).<next-hop>— IPv4-адрес шлюза (следующего перехода). Формат: IPv4-адрес (x.x.x.x).
Режим: «Конфигурирование».
protocols failover route <route> next-hop <next-hop> check policy <policy>¶
Синтаксис:
set protocols failover route
<route>next-hop<next-hop>check policy<policy>delete protocols failover route
<route>next-hop<next-hop>check policy<policy>show protocols failover route
<route>next-hop<next-hop>check policy
Аргументы:
<route>— IPv4-префикс, к которому ведет маршрут. Формат: IPv4-префикс (x.x.x.x/x).<next-hop>— IPv4-адрес шлюза (следующего перехода). Формат: IPv4-адрес (x.x.x.x).<policy>— правило оценки целей. Возможные значения:all-available— должны быть доступны все цели;any-available— должна быть доступна любая цель. Значение по умолчанию:any-available.
Режим: «Конфигурирование».
protocols failover route <route> next-hop <next-hop> check port <port>¶
tcp. Для типа проверки tcp порт необходимо задать.Синтаксис:
set protocols failover route
<route>next-hop<next-hop>check port<port>delete protocols failover route
<route>next-hop<next-hop>check port<port>show protocols failover route
<route>next-hop<next-hop>check port
Аргументы:
<route>— IPv4-префикс, к которому ведет маршрут. Формат: IPv4-префикс (x.x.x.x/x).<next-hop>— IPv4-адрес шлюза (следующего перехода). Формат: IPv4-адрес (x.x.x.x).<port>— номер порта. Формат: целое число. Диапазон значений: от 1 до 65535.
Режим: «Конфигурирование».
protocols failover route <route> next-hop <next-hop> check target <target>¶
Синтаксис:
set protocols failover route
<route>next-hop<next-hop>check target<target>delete protocols failover route
<route>next-hop<next-hop>check target<target>show protocols failover route
<route>next-hop<next-hop>check target
Аргументы:
<route>— IPv4-префикс, к которому ведет маршрут. Формат: IPv4-префикс (x.x.x.x/x).<next-hop>— IPv4-адрес шлюза (следующего перехода). Формат: IPv4-адрес (x.x.x.x).<target>— IPv4-адрес цели проверки. Формат: IPv4-адрес (x.x.x.x). Можно задать несколько значений.
Режим: «Конфигурирование».
protocols failover route <route> next-hop <next-hop> check timeout <timeout>¶
timeout всех шлюзов.Синтаксис:
set protocols failover route
<route>next-hop<next-hop>check timeout<timeout>delete protocols failover route
<route>next-hop<next-hop>check timeout<timeout>show protocols failover route
<route>next-hop<next-hop>check timeout
Аргументы:
<route>— IPv4-префикс, к которому ведет маршрут. Формат: IPv4-префикс (x.x.x.x/x).<next-hop>— IPv4-адрес шлюза (следующего перехода). Формат: IPv4-адрес (x.x.x.x).<timeout>— время ожидания в секундах. Формат: целое число. Диапазон значений: от 1 до 255. Значение по умолчанию: 10.
Режим: «Конфигурирование».
protocols failover route <route> next-hop <next-hop> check type <type>¶
Синтаксис:
set protocols failover route
<route>next-hop<next-hop>check type<type>delete protocols failover route
<route>next-hop<next-hop>check type<type>show protocols failover route
<route>next-hop<next-hop>check type
Аргументы:
<route>— IPv4-префикс, к которому ведет маршрут. Формат: IPv4-префикс (x.x.x.x/x).<next-hop>— IPv4-адрес шлюза (следующего перехода). Формат: IPv4-адрес (x.x.x.x).<type>— способ проверки. Возможные значения:arp— проверка по протоколу ARP;icmp— проверка по протоколу ICMP;tcp— проверка по протоколу TCP (необходимо задать порт командойcheck port). Значение по умолчанию:icmp.
Режим: «Конфигурирование».
protocols failover route <route> next-hop <next-hop> interface <interface>¶
Синтаксис:
set protocols failover route
<route>next-hop<next-hop>interface<interface>delete protocols failover route
<route>next-hop<next-hop>interface<interface>show protocols failover route
<route>next-hop<next-hop>interface
Аргументы:
<route>— IPv4-префикс, к которому ведет маршрут. Формат: IPv4-префикс (x.x.x.x/x).<next-hop>— IPv4-адрес шлюза (следующего перехода). Формат: IPv4-адрес (x.x.x.x).<interface>— имя интерфейса шлюза. Формат: строка.
Режим: «Конфигурирование».
protocols failover route <route> next-hop <next-hop> metric <metric>¶
Синтаксис:
set protocols failover route
<route>next-hop<next-hop>metric<metric>delete protocols failover route
<route>next-hop<next-hop>metric<metric>show protocols failover route
<route>next-hop<next-hop>metric
Аргументы:
<route>— IPv4-префикс, к которому ведет маршрут. Формат: IPv4-префикс (x.x.x.x/x).<next-hop>— IPv4-адрес шлюза (следующего перехода). Формат: IPv4-адрес (x.x.x.x).<metric>— метрика маршрута. Формат: целое число. Диапазон значений: от 1 до 255. Значение по умолчанию: 1.
Режим: «Конфигурирование».
protocols failover route <route> next-hop <next-hop> onlink¶
Синтаксис:
set protocols failover route
<route>next-hop<next-hop>onlinkdelete protocols failover route
<route>next-hop<next-hop>onlinkshow protocols failover route
<route>next-hop<next-hop>onlink
Аргументы:
<route>— IPv4-префикс, к которому ведет маршрут. Формат: IPv4-префикс (x.x.x.x/x).<next-hop>— IPv4-адрес шлюза (следующего перехода). Формат: IPv4-адрес (x.x.x.x).
Режим: «Конфигурирование».