ECMP

ECMP (Equal-Cost Multi-Path routing) – это механизм маршрутизации, который позволяет передавать пакеты к одному и тому же адресату по нескольким маршрутам, имеющим одинаковую метрику и рассматриваемым как равнозначные с точки зрения их стоимости. В отличие от методов выбора единственного оптимального маршрута или использования маршрутов с различными метриками, ECMP обеспечивает балансировку нагрузки путём равномерного распределения трафика между всеми доступными равнозначными маршрутами. Такой подход способствует более эффективному использованию сетевых ресурсов, увеличению пропускной способности и повышению отказоустойчивости за счёт автоматического переключения на резервные маршруты в случае выхода из строя одного из них.

На представленной схеме стенда (см. Рисунок – Схема сети) устройство ARMA Стена функционирует в качестве шлюза для внутренней сети. Интерфейсы «eth0» и «eth1» подключены к внешнему маршрутизатору, обеспечивающему выход в интернет. Интерфейс «eth2» соединён с локальной сетью предприятия. Клиентским устройством, расположенным во внутренней сети, ARMA Стена используется в качестве шлюза по умолчанию.

../../../../../_images/ngfw.r.cli.route.ecmp_0.1.png

Рисунок – Схема сети

Конфигурация устройства ARMA Стена

# Настройка IP-адресов интерфейсов:
set interfaces ethernet eth0 address 192.168.1.100/24
set interfaces ethernet eth1 address 192.168.2.100/24
set interfaces ethernet eth2 address 192.168.3.1/24

# Создание группы интерфейсов для NAT:
set firewall group interface-group WAN interface eth0
set firewall group interface-group WAN interface eth1

# Настройка Source NAT (masquerade):
set nat source rule 10 outbound-interface group WAN
set nat source rule 10 translation address masquerade

# Настройка статических маршрутов по умолчанию с использованием ECMP:
set protocols static route 0.0.0.0/0 next-hop 192.168.1.1
set protocols static route 0.0.0.0/0 next-hop 192.168.2.1

Указание нескольких next-hop для префикса «0.0.0.0/0» с одинаковой метрикой активирует механизм ECMP. Трафик к внешним сетям будет распределяться между двумя каналами связи через «eth0» и «eth1».

Конфигурация клиентского устройства

На клиентском устройстве необходимо задать следующие параметры сети (см. Рисунок – Конфигурация IP-адреса и DNS):

  • IP-адрес «192.168.3.100/24»;

  • маску подсети: «255.255.255.0»;

  • шлюз по умолчанию: «192.168.3.1» (IP-адрес интерфейса «eth2» устройства ARMA Стена);

  • адрес DNS-сервера.

../../../../../_images/ngfw.r.cli.route.ecmp_0.2.png

Рисунок – Конфигурация IP-адреса и DNS

Проверка работоспособности ECMP

Для верификации корректной работы механизма ECMP выполняется захват сетевого трафика на устройстве ARMA Стена с последующим анализом направления исходящих пакетов:

  1. Запустить захват трафика на всех интерфейсах:

admin@ngfwos:~$ monitor traffic interface any save <file_name>

tcpdump: data link type LINUX_SLL2
tcpdump: listening on any, link-type LINUX_SLL2 (Linux cooked v2), snapshot length 262144 bytes

где <file_name> – название файла дампа трафика.

Файл с дампом трафика будет сохранён с именем «traffic_<file_name>.pcap» в каталог «/tmp/».

  1. С клиентского устройства выполнить серии HTTP-запросов (например, открытие различных веб-ресурсов через браузер или использование утилиты «curl»).

  2. После генерации достаточного объёма трафика процесс захвата необходимо остановить нажатием комбинации клавиш «Ctrl» + «C». Система выведет статистику:

^C71496 packets captured
71767 packets received by filter
0 packets dropped by kernel
admin@ngfwos:~$
  1. Анализ сохранённого дампа возможно произвести с помощью утилиты «tcpdump»:

admin@ngfwos:~$ sudo -i
root@ngfwos:~# tcpdump -r /home/admin/1.pcap -nn src 192.168.1.100 or 192.168.2.100

В выводе команды должны присутствовать пакеты с source IP «192.168.1.100» (через «eth0») и «192.168.2.100» (через «eth1»). Наличие трафика с обоих адресов подтверждает, что ECMP активен и трафик распределяется между двумя маршрутами.