1. ECMP란?
Cisco에서 ECMP (Equal-Cost Multi-Path)는 동일한 비용(Metric)을 가진 여러 개의 경로를 동시에 라우팅 테이블에 설치하여 트래픽을 여러 링크로 분산하는 기능입니다. 단순히 백업 경로를 사용하는 것이 아니라, 여러 경로를 동시에 Active 상태로 활용하여 대역폭을 늘리고 장애 대응 시간을 최소화하는 것이 목적입니다.
일반적인 라우팅에서는 목적지까지의 가장 좋은(Best) 경로 하나만 선택합니다.
예를 들어
R2
/
R1 ---- R4
\
R3
R1에서 R4까지
R1-R2-R4 : Cost = 20
R1-R3-R4 : Cost = 20
라면 두 경로의 Cost가 동일합니다.
ECMP가 활성화되어 있다면
R1 Routing Table
10.1.1.0/24
via R2
via R3
처럼 두 개의 Next Hop이 동시에 Routing Table에 들어갑니다.
2. ECMP가 필요한 이유
① Load Balancing
한 링크만 사용하는 것이 아니라
10Gb
+
10Gb
=
20Gb 수준의 활용
이 가능합니다.
(실제로는 Flow 단위 분산이므로 정확히 20Gb가 되지는 않습니다.)
② 장애 복구
ECMP가 없다면
Primary
↓
Fail
↓
Routing 재계산
↓
Backup 사용
이 과정이 필요합니다.
ECMP는
Primary
Backup
둘 다 Active
이므로
한 링크가 죽으면 나머지 링크만 계속 사용하면 됩니다.
Failover 시간이 매우 짧습니다.
③ 링크 활용률 증가
예전 방식
Link1 : 90%
Link2 : Idle
ECMP
Link1 : 45%
Link2 : 45%
3. Cisco에서 ECMP 동작 방식
Cisco Router는
Routing Protocol이 동일 Cost를 계산하면
Routing Table에 여러 개의 Next Hop을 넣습니다.
예)
show ip route
O 10.10.10.0/24
via 192.168.1.2
via 192.168.2.2
Forwarding Table(FIB)에도
CEF
Destination
↓
Hash
↓
Next Hop 선택
4. 어떤 Routing Protocol이 지원하는가?
거의 대부분 지원합니다.
| Protocol | ECMP 지원 |
|---|---|
| Static Route | O |
| OSPF | O |
| EIGRP | O |
| IS-IS | O |
| BGP | O (설정 필요) |
| RIP | O |
5. OSPF에서 ECMP
예)
R1
R2
/
/
R1
\
\
R3
\
R4
Cost
R1-R2-R4 = 20
R1-R3-R4 = 20
OSPF는 SPF 계산 후
동일 Cost를 발견하면
Routing Table
10.1.1.0/24
via R2
via R3
둘 다 설치합니다.
6. EIGRP의 경우
EIGRP는
Equal Cost
Metric = 동일
이면 ECMP 사용
또한
Unequal Cost
variance
기능으로
비용이 조금 다른 경로도 동시에 사용할 수 있습니다.
이것이 OSPF와 가장 큰 차이입니다.
7. BGP의 ECMP
BGP는 기본적으로 Best Path 하나만 선택합니다.
Cisco에서는
maximum-paths
설정을 해야 합니다.
예)
router bgp 65001
maximum-paths 4
그러면 최대 4개의 Equal Path 사용
8. Cisco CEF와 ECMP
Cisco는 대부분
CEF(Cisco Express Forwarding)를 사용합니다.
패킷마다 라우팅 테이블을 조회하지 않고
Destination
↓
Hash 계산
↓
Next Hop 선택
합니다.
예)
Flow A
↓
Hash
↓
R2
----------------
Flow B
↓
Hash
↓
R3
이렇게 Flow별 분산됩니다.
9. Load Balancing 방식
(1) Per Packet
Packet1 → Link1
Packet2 → Link2
Packet3 → Link1
Packet4 → Link2
장점
- 가장 균등
단점
- Packet 순서 변경(Out-of-order)
- TCP 성능 저하 가능
현재는 거의 사용되지 않습니다.
(2) Per Flow (권장)
Flow A → Link1
Flow B → Link2
Flow C → Link1
Flow D → Link2
Flow 단위
- Source IP
- Destination IP
- Port
- Protocol
등을 Hash하여 결정합니다.
Cisco 기본값도 대부분 Per Flow입니다.
10. Hash 알고리즘
CEF는
예를 들면
Src IP
Dst IP
Src Port
Dst Port
Protocol
을 조합하여
Hash를 생성합니다.
Hash
↓
Next Hop 선택
그래서
같은 TCP Session은
항상 같은 링크를 사용합니다.
11. Cisco 명령어
ECMP 확인
show ip route
예)
O 10.10.10.0/24
via 10.1.1.2
via 10.2.2.2
CEF 확인
show ip cef
또는
show ip cef exact-route
Load Sharing 확인
show adjacency
OSPF
router ospf 1
maximum-paths 4
EIGRP
router eigrp 100
maximum-paths 4
BGP
router bgp 65000
maximum-paths 4
12. 최대 ECMP 경로 수
Cisco IOS 버전과 플랫폼에 따라 기본값과 최대값이 다릅니다.
일반적인 예시는 다음과 같습니다.
| Protocol | 일반적인 기본값 | 설정 가능한 최대값(플랫폼 의존) |
|---|---|---|
| OSPF | 4 | 16~64 이상 |
| EIGRP | 4 | 16 이상 |
| IS-IS | 4 | 16 이상 |
| BGP | 1 | 32~64 이상 |
실제 지원 수는 사용 중인 IOS/IOS XE/NX-OS 버전과 하드웨어의 FIB 용량에 따라 달라질 수 있습니다.
13. ECMP의 한계
- 경로 비용이 동일해야 함
- OSPF, IS-IS 등은 동일 Metric이어야 ECMP가 적용됩니다.
- EIGRP는
variance를 통해 예외적으로 Unequal-Cost Load Balancing을 지원합니다.
- 완벽한 대역폭 분산은 아님
- Flow 기반 해시를 사용하므로, 소수의 대용량(Elephant) Flow가 특정 링크에 집중될 수 있습니다.
- 해시 편향(Hash Polarization)
- 여러 장비가 동일한 해시 알고리즘과 입력 값을 사용하면 특정 링크만 반복적으로 선택되는 현상이 발생할 수 있습니다. 일부 Cisco 플랫폼은 해시 시드(seed) 변경이나 향상된 해시 알고리즘으로 이를 완화합니다.
- 하드웨어 제약
- 실제 ECMP 경로 수와 해시 방식은 ASIC 및 플랫폼(Catalyst, Nexus, ASR 등)에 따라 차이가 있습니다.
14. ECMP 동작 예시
10G
+-----------+
| |
R2 | | R3
| |
+-----------+
\ /
\ /
R1
|
10.10.10.0/24
R1의 라우팅 테이블:
10.10.10.0/24
via 192.168.1.2
via 192.168.2.2
트래픽 예시:
| Flow | Next Hop |
|---|---|
| PC1 → Server1 | R2 |
| PC2 → Server1 | R3 |
| PC3 → Server2 | R2 |
| PC4 → Server3 | R3 |
각 Flow는 해시 결과에 따라 하나의 링크를 지속적으로 사용하므로 TCP 세션의 패킷 순서가 유지됩니다. R2 링크에 장애가 발생하면 해당 링크로 향하던 Flow는 남아 있는 R3 경로로 재분배되며, 새로운 해시 결과에 따라 전달이 계속됩니다.
핵심 정리
| 항목 | 내용 |
|---|---|
| 목적 | 동일 비용 경로를 동시에 사용하여 부하 분산 및 고가용성 확보 |
| 적용 조건 | 동일한 Administrative Distance와 동일한 최적 경로 비용(프로토콜별 정책 적용) |
| 기본 분산 방식 | 대부분의 Cisco 플랫폼에서 CEF 기반 Per-Flow 해시 |
| 지원 프로토콜 | Static, OSPF, EIGRP, IS-IS, RIP, BGP(설정 필요) |
| 주요 장점 | 링크 활용률 향상, 빠른 장애 복구, 대역폭 효율 증대 |
| 주의사항 | Flow 기반 분산으로 인해 트래픽이 항상 균등하게 나뉘지는 않으며, 플랫폼별 ECMP 지원 개수와 해시 방식이 다를 수 있음 |
답글 남기기