ECMP (Equal-Cost Multi-Path routing) — это механизм маршрутизации, который позволяет передавать пакеты к одному и тому же адресату по нескольким маршрутам, имеющим одинаковую метрику и рассматриваемым как равнозначные с точки зрения их стоимости. В отличие от методов выбора единственного оптимального маршрута или использования маршрутов с различными метриками, ECMP обеспечивает балансировку нагрузки путём равномерного распределения трафика между всеми доступными равнозначными маршрутами. Такой подход способствует более эффективному использованию сетевых ресурсов, увеличению пропускной способности и повышению отказоустойчивости за счёт автоматического переключения на резервные маршруты в случае выхода из строя одного из них.
На представленной схеме стенда (см. Рисунок – Схема сети) устройство ARMA Стена функционирует в качестве шлюза для внутренней сети. Интерфейсы eth0 и eth1 подключены к внешнему маршрутизатору, обеспечивающему выход в интернет. Интерфейс eth2 соединён с локальной сетью предприятия. Клиентское устройство, расположенное во внутренней сети, использует 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.
Для верификации корректной работы механизма ECMP выполняется захват сетевого трафика на устройстве ARMA Стена с последующим анализом направления исходящих пакетов:
Запустить захват трафика на всех интерфейсах:
admin@ngfwos:~$ monitor traffic interface any save 1.pcap
tcpdump: data link type LINUX_SLL2
tcpdump: listening on any, link-type LINUX_SLL2 (Linux cooked v2), snapshot length 262144 bytes
С клиентского устройства выполнить серии HTTP-запросов (например, открытие различных веб-ресурсов через браузер или использование утилиты curl).
После генерации достаточного объёма трафика процесс захвата необходимо остановить нажатием комбинации клавиш «Ctrl+C». Система выведет статистику:
^C71496 packets captured
71767 packets received by filter
0 packets dropped by kernel
admin@ngfwos:~$
Анализ сохранённого дампа возможно произвести с помощью утилиты tcpdump:
В выводе команды должны присутствовать пакеты с source IP 192.168.1.100 (через eth0) и 192.168.2.100 (через eth1). Наличие трафика с обоих адресов подтверждает, что ECMP активен и трафик распределяется между двумя маршрутами.