ECMP (Equal-Cost Multi-Path) – równoważenie ruchu przez wiele równorzędnych tras
Współczesne sieci komputerowe wymagają nie tylko wysokiej przepustowości, ale również odporności na awarie. Jedna trasa pomiędzy dwoma punktami może stać się wąskim gardłem albo pojedynczym punktem awarii.
Rozwiązaniem jest ECMP (Equal-Cost Multi-Path) – mechanizm routingu, który pozwala wykorzystać wiele równorzędnych ścieżek sieciowych jednocześnie.
Zamiast:
id="ecmp001"
Router A
|
|
Router B
możemy mieć:
id="ecmp002"
Router A
/ | \
/ | \
Path 1 Path 2 Path 3
\ | /
Router B
Czym jest ECMP?
ECMP to technika, w której router posiada kilka tras do tego samego celu o identycznym koszcie.
Przykład tablicy routingu:
id="ecmp003"
Destination:
10.10.0.0/16
Next Hop:
192.168.1.1 Cost 10
192.168.2.1 Cost 10
192.168.3.1 Cost 10
Normalnie router wybrałby jedną trasę.
ECMP pozwala wykorzystać wszystkie.
Dlaczego ECMP jest potrzebne?
Bez ECMP:
id="ecmp004"
100 Gbps Traffic
|
↓
Link A
|
↓
Destination
Problem:
- niewykorzystane alternatywne łącza,
- brak redundancji,
- ryzyko przeciążenia.
Z ECMP:
id="ecmp005"
100 Gbps Traffic
|
↓
+------+------+------+
| | |
Link A Link B Link C
+------+------+------+
|
↓
Destination
Korzyści:
- większa przepustowość,
- lepsze wykorzystanie infrastruktury,
- automatyczne przełączenie po awarii.
Jak działa ECMP?
Router otrzymuje kilka tras:
id="ecmp006"
Destination:
0.0.0.0/0
Route 1:
ISP A
Route 2:
ISP B
Jeżeli koszty są identyczne:
id="ecmp007"
Metric:
20
Metric:
20
router może używać obu.
Load Balancing w ECMP
Najczęściej ECMP wykorzystuje mechanizm hashowania.
Router analizuje:
- adres źródłowy IP,
- adres docelowy IP,
- port źródłowy,
- port docelowy,
- protokół.
Przykład:
id="ecmp008"
Flow 1
Client A → Server
↓
Path 1
Flow 2
Client B → Server
↓
Path 2
Dlaczego nie każdy pakiet idzie inną drogą?
Gdyby każdy pakiet był wysyłany inną trasą:
id="ecmp009"
Packet 1 → Path A
Packet 2 → Path B
Packet 3 → Path C
mogłyby wystąpić:
- zmiana kolejności pakietów,
- spadek wydajności TCP,
- retransmisje.
Dlatego stosuje się zazwyczaj flow-based hashing.
ECMP i BGP
ECMP często występuje razem z BGP.
Przykład:
Firma posiada dwóch operatorów:
id="ecmp010"
Enterprise Network
|
BGP Router
/ \
/ \
ISP A ISP B
Jeżeli obaj operatorzy oferują równorzędną trasę:
id="ecmp011"
AS Path Length:
2
AS Path Length:
2
można zastosować ECMP.
ECMP w sieciach Data Center
W dużych centrach danych stosuje się architekturę:
Leaf-Spine
id="ecmp012"
Spine 1
/ \
/ \
Leaf 1 ---- ---- Leaf 2
\ /
\ /
Spine 2
Każdy Leaf ma wiele równorzędnych połączeń do Spine.
ECMP pozwala wykorzystać wszystkie ścieżki.
ECMP w Kubernetes
ECMP jest bardzo ważne w środowiskach Kubernetes.
Przykład:
id="ecmp013"
User
|
Load Balancer
|
+--------+--------+
| | |
Node1 Node2 Node3
| | |
Pods Pods Pods
Ruch może być rozprowadzany pomiędzy Node’y.
ECMP i kube-proxy
W Kubernetes tradycyjnie:
id="ecmp014"
Service
↓
kube-proxy
↓
Pod
Ale w większych środowiskach stosuje się:
- BGP routing,
- Cilium,
- MetalLB,
- kube-router.
ECMP i MetalLB
W klastrach Kubernetes on-premise MetalLB może używać BGP.
Schemat:
id="ecmp015"
Kubernetes Nodes
|
|
BGP Sessions
|
|
Network Router
Router widzi:
id="ecmp016"
VIP:
10.0.0.100
Available via:
Node 1
Node 2
Node 3
i wykorzystuje ECMP.
ECMP a Anycast
Te technologie często są mylone.
Anycast
Cel:
skieruj użytkownika do najlepszego punktu usługowego
Przykład:
id="ecmp017"
Same IP
↓
Warsaw POP
Frankfurt POP
London POP
ECMP
Cel:
rozdziel ruch pomiędzy równorzędne ścieżki
Przykład:
id="ecmp018"
Router
↓
Path A
Path B
Path C
Porównanie:
| Cecha | Anycast | ECMP |
|---|---|---|
| Poziom | globalny routing | lokalny routing |
| Technologia | BGP | IGP/BGP |
| Cel | wybór lokalizacji | rozłożenie ruchu |
| Jeden adres IP | ✅ | często ✅ |
| Load balancing | między lokalizacjami | między trasami |
ECMP i wysoką dostępność
Przykład:
Bez ECMP:
id="ecmp019"
Server
|
Router
|
Single Link
Awaria:
id="ecmp020"
Link Down
↓
Service Offline
Z ECMP:
id="ecmp021"
Router
/ | \
Link1 Link2 Link3
Awaria:
id="ecmp022"
Link1 Down
↓
Traffic Moves
↓
Link2 + Link3
ECMP w Linux
Linux również obsługuje ECMP.
Przykład:
ip route add \
10.0.0.0/24 \
nexthop via 192.168.1.1 \
nexthop via 192.168.2.1
Sprawdzenie:
ip route show
ECMP i eBPF
Nowoczesne rozwiązania wykorzystują eBPF do inteligentnego kierowania ruchem.
Przykład:
id="ecmp023"
Packet
↓
eBPF Program
↓
Load Decision
↓
Backend
Wykorzystuje to między innymi:
- Cilium,
- zaawansowane load balancery.
ECMP a bezpieczeństwo
ECMP samo w sobie nie jest mechanizmem bezpieczeństwa.
Należy uważać na:
- asymetryczny routing,
- firewalle stanowe,
- IDS/IPS,
- śledzenie sesji.
Przykład problemu:
id="ecmp024"
Request
↓
Firewall A
Response
↓
Firewall B
Firewall może uznać odpowiedź za nieprawidłową.

ECMP i asymetryczny routing
Problem:
id="ecmp025"
Client
↓
Path A
↓
Server
Server
↓
Path B
↓
Client
Może powodować:
- problemy z NAT,
- błędy firewalli,
- problemy z monitoringiem.
Monitoring ECMP
Administrator powinien monitorować:
- wykorzystanie ścieżek,
- liczbę aktywnych tras,
- BGP sessions,
- utratę pakietów,
- opóźnienia.
Narzędzia:
- Prometheus,
- Grafana,
- NetFlow,
- sFlow,
- BGP monitoring.
Najczęstsze błędy
❌ zakładanie, że ECMP zawsze rozkłada ruch idealnie
❌ brak monitorowania nierównomiernego obciążenia
❌ ignorowanie asymetrycznego routingu
❌ brak obsługi awarii jednej ze ścieżek
❌ używanie ECMP bez testów wydajności
Najlepsze praktyki
✅ stosuj flow-based hashing
✅ monitoruj wszystkie ścieżki
✅ testuj awarie linków
✅ uwzględniaj firewalle stanowe
✅ używaj ECMP razem z BGP w dużych sieciach
✅ dokumentuj topologię routingu
Architektura ECMP w nowoczesnym Data Center
Users
|
↓
Edge Router
|
+------+------+
| |
Spine 1 Spine 2
| |
+---------+-------------+
| |
Leaf 1 Leaf 2
| |
Servers Servers
ECMP wykorzystuje wiele równorzędnych ścieżek
Podsumowanie
ECMP jest jednym z fundamentów nowoczesnych sieci wysokiej dostępności. Pozwala wykorzystywać wiele równorzędnych tras jednocześnie, zwiększając przepustowość oraz odporność infrastruktury na awarie.
Technologia ta jest szeroko stosowana w:
- centrach danych,
- sieciach operatorów,
- chmurach publicznych,
- Kubernetes,
- architekturach Anycast.
W praktyce ECMP często działa razem z:
- BGP – wymianą tras,
- Anycast – globalnym kierowaniem ruchu,
- Load Balancerami – dystrybucją aplikacji,
- eBPF/Cilium – nowoczesnym przetwarzaniem sieciowym.
Najważniejsza zasada:
ECMP nie wybiera jednej najlepszej drogi – pozwala wykorzystać wiele dobrych dróg jednocześnie, dzięki czemu sieć staje się szybsza i bardziej odporna na awarie.






