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 1.pcap

tcpdump: data link type LINUX_SLL2
tcpdump: listening on any, link-type LINUX_SLL2 (Linux cooked v2), snapshot length 262144 bytes
  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 активен и трафик распределяется между двумя маршрутами.