Траблшутинг Leaf-Spine архитектур: балансировка ECMP и диагностика хэширования
При эксплуатации датацентровых фабрик Leaf-Spine с технологиями Underlay (eBGP/OSPF/IS-IS) и Overlay (VXLAN EVPN) наблюдаются следующие критические симптомы:
- Аномальная поляризация трафика (Hash Polarization): один или два Spine-коммутатора перегружены (утилизация портов 95-100%), тогда как остальные линки загружены менее чем на 10-15%.
- Периодические микроберсты (microbursts), вызывающие сбросы пакетов (tail drops) в выходных буферах (egress queues) при низкой средней утилизации интерфейса.
- Джиттер, ретрансмиссии TCP и нарушение работы распределенных хранилищ данных (Ceph, vSAN, Nutanix) из-за переупорядочивания пакетов (Out-of-Order Packets).
- Неравномерное распределение VNI/VxLAN туннелей по доступным путям ECMP.
1. Проверка состояния путей ECMP в таблице маршрутизации
Убедитесь, что все аплинки от Leaf до каждого Spine присутствуют в RIB и FIB с одинаковой метрикой:
# Для Cisco NX-OS:
show ip route 10.255.0.1
show ip adjacency
show hardware profile status
show ip bgp summary
# Для Arista EOS:
show ip route ecmp
show ip fib 10.255.0.12. Диагностика и устранение поляризации хэш-функции (Hash Polarization)
Поляризация возникает, когда все уровни коммутаторов используют идентичный seed и одинаковый алгоритм хэширования для CRC. Решением является изменение seed-значений и полиномов на каждом уровне:
# Настройка уникального CRC/Seed на Cisco Nexus 9000:
configure terminal
ip load-share scale
hardware profile ecmp
hardware load-share hash-offset 3
hardware load-share crc-polynomial poly-2
# Включение глубокого анализа заголовков (Layer 4 + VXLAN Inner IP):
port-channel load-balance dynamic
ip load-sharing address source-destination port3. Проверка симуляции хэширования для конкретного потока
# Определение конкретного физического интерфейса для 5-tuple потока:
show ip hash-instance 10.10.10.5 10.20.20.5 udp 4789 4789 detail
show hardware load-balance result interface Ethernet1/1 ...4. Конфигурация Resilient Hashing (Предотвращение сброса сессий при падении линка)
# Предотвращает пересчет хэша для всех потоков при изменении топологии:
ip load-share resilient-hash
exit
copy running-config startup-config5. Включение и анализ аппаратных счетчиков Microbursts
# Мониторинг дропов в буферах очередей:
show hardware profile buffer info
show interface priority-flow-control
show queuing interface Ethernet1/1 Частые вопросы (FAQ)
Что такое поляризация хэша (Hash Polarization) в Leaf-Spine топологии?
Это эффект, при котором многоуровневая сеть коммутаторов использует одинаковый алгоритм и одинаковое смещение (seed) хэширования, в результате чего весь отфильтрованный на первом уровне трафик попадает исключительно на один и тот же путь на втором уровне, оставляя остальные каналы простаивающими.
Как инкапсуляция VXLAN влияет на работу алгоритмов ECMP?
VXLAN инкапсулирует оригинальный фрейм в UDP-пакет с внешним портом назначения 4789. Если коммутатор Underlay не умеет заглядывать во внутренние заголовки (Inner Header Hashing), весь VXLAN-трафик между двумя VTEP будет иметь одинаковый 5-tuple и пойдет по одному линку. Для решения необходимо активировать Inner Header Hashing или рандомизацию UDP Source Port на стороне VTEP.
Как решить проблему Out-of-Order пакетов при использовании ECMP?
Необходимо убедиться, что хэширование выполняется строго на основе Flow-based (5-tuple: IP Src, IP Dst, Port Src, Port Dst, Protocol), а не Packet-by-Packet (Round Robin), что гарантирует прохождение всех пакетов одной TCP-сессии по строго фиксированному физическому пути.
Какое максимальное количество путей ECMP поддерживается в современных чипсетах Broadcom/Cisco ASIC?
Большинство современных чипсетов (Broadcom Tomahawk, Trident, Cisco Cloud Scale) поддерживают от 64 до 128 путей ECMP в Underlay-маршрутизации.