Документация: ПО Факел — разрабатываемая версия

Маршруты 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 192.0.2.1 interface eth0

Задает основной шлюз 192.0.2.1 и интерфейс eth0

2

set protocols failover route 0.0.0.0/0 next-hop 192.0.2.1 check target 192.0.2.1

Задает цель проверки доступности основного шлюза

3

set protocols failover route 0.0.0.0/0 next-hop 192.0.2.1 metric 1

Задает метрику маршрута через основной шлюз

4

set protocols failover route 0.0.0.0/0 next-hop 198.51.100.1 interface eth1

Задает резервный шлюз 198.51.100.1 и интерфейс eth1

5

set protocols failover route 0.0.0.0/0 next-hop 198.51.100.1 check target 198.51.100.1

Задает цель проверки доступности резервного шлюза

6

set protocols failover route 0.0.0.0/0 next-hop 198.51.100.1 metric 10

Задает метрику маршрута через резервный шлюз

Список команд

Режим «Конфигурирование»


protocols failover route <route>

Описание:
Создает маршрут Failover к указанному IPv4-префиксу.

Синтаксис:

  • 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>

Описание:
Задает шлюз (следующий переход) маршрута Failover. Для маршрута необходимо задать хотя бы один шлюз.

Синтаксис:

  • 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.

Режим: «Конфигурирование».