인덱스
ECMP(Equal Cost Multi Path)란 무엇입니까?
구성 구문
예제
목표
토폴로지
샘플 구성
ECMP(Equal Cost Multi Path)는 사용 가능한 여러 경로를 사용하여 트래픽을 대상로 전달하는 Layer 3 라우팅 전략입니다. ECMP는 대상 경로 수를 늘리고 대상에 도달하기 위해 사용 가능한 대역폭을 증가합니다. ECMP 메커니즘을 사용하면 사용되지 않는 링크와 대역폭을 사용하여 로드 밸런싱 및 대역폭을 늘릴 수 있습니다.
ECMP 해싱
트리 크기의 데이터 센터 네트워크 토폴로지에서 트래픽 편광을 방지하기 위해 서로 다른 계층에 다른 해싱 시드가 필요합니다. SONiC에서는 기본적으로 ECMP 및 LAG에 고유한 해싱 알고리즘을 사용하므로 해시 시드를 구성하는 것이 모두 필요합니다.
ECMP는 사용 가능한 링크 수를 늘릴 수 있지만 사용 가능한 모든 경로가 로드 공유되어 초과되거나 활용도가 낮은 경로가 없도록 해야 합니다. IP ECMP 로드 공유 해싱 매개변수를 수정하여 사용 가능한 여러 경로에서 트래픽 로드 공유에 영향을 줄 수 있습니다. 최적의 ECMP 로드 공유를 얻으려면 소스와 대상 사이에 상주하는 모든 디바이스에서 ECMP를 구성하십시오.
필요한 경우 네트워크의 고유한 트래픽 패턴에 따라 각 계층에서 서로 다른 로드 밸런싱 매개변수를 구성하는 것이 좋습니다. 예를 들어 라우터 A에서 로드 밸런싱을 위한 해시 필드에는 source-ip, dest-ip, protocol, source-port 및 L4-dest-port가 포함될 수 있지만 라우터 B에서는 해시 필드가 source-ip, dest-ip 및 프로토콜만 사용할 수 있습니다.
ECMP 해시 시드를 구성합니다.
네트워크 정체가 발생할 수 있는 해시 편광을 방지하도록 각 디바이스에 고유한 해시 시드를 구성합니다. 네트워크 편광은 여러 데이터 흐름이 동일한 스위치 포트를 사용하여 스위치에 도달하려고 할 때 발생할 수 있습니다.
구성 구문 |
설명 |
admin@DELLSONiC:~$ sonic-cli
DELLSONiC# configure
DELLSONiC(config)# ip load-share hash { seed-value }
|
해시 시드를 구성합니다. 시드 값의 값은 0에서 16777215. |
BGP 구성에서 다중 경로 활성화
구성 구문 |
설명 |
admin@DELLSONiC:~$ sonic-cli
DELLSONiC# configure
DELLSONiC(config)# router bgp {as-number}
DELLSONiC (conf-router-bgp)# address-family {ipv4 unicast | ipv6 unicast}
DELLSONiC (conf-router-bgp-af)# maximum-paths {number}
|
로드 공유를 위해 동일한 비용의 ECMP(Multi-Path) 라우트를 형성하도록 선택할 수 있는 최대 eBGP 라우트 수를 구성합니다. |
admin@DELLSONiC:~$ sonic-cli
DELLSONiC# configure
DELLSONiC(config)# router bgp {as-number}
DELLSONiC (conf-router-bgp)# address-family {ipv4 unicast | ipv6 unicast}
DELLSONiC (conf-router-bgp-af)# maximum-paths ibgp {number} |
로드 공유를 위해 동일한 비용의 ECMP(Multi-Path) 라우트를 형성하도록 선택할 수 있는 최대 iBGP 라우트 수를 구성합니다. |
IPv4용 ECMP 로드 공유 해시를 구성합니다(선택 사항).
구성 구문 |
admin@DELLSONiC:~$ sonic-cli
DELLSONiC# configure
DELLSONiC(config)# ip load-share hash ipv4 {ipv4-src-ip | ipv4-dst-ip | ipv4-ip-proto | ipv4-l4-src-port| ipv4-l4-dst-port | symmetric}
|
IPv6용 ECMP 로드 공유 해시를 구성합니다(선택 사항).
구성 구문 |
admin@DELLSONiC:~$ sonic-cli
DELLSONiC# configure
DELLSONiC(config)# ip load-share hash ipv6 {ipv6-src-ip | ipv6-dst-ip | ipv6-next-hdr | ipv6-l4-src-port| ipv6-l4-dst-port | symmetric}
|
Dell SONiC 스위치에는 BGP에서 4.4.4.4/32 경로에 도달할 수 있는 두 개의 경로가 있습니다. ECMP를 사용하여 4.4.4.4/32에 도달하고 두 경로를 동시에 사용해야 합니다.
BGP 인접에서 호스트 또는 서브넷에 도달하기 위해 스위치에 대해 알리는 경로를 볼 수 있습니다. 명령 show bgp ipv4 유니캐스트 <호스트/서브넷>을 사용합니다. 샘플 출력은 아래와 같습니다.
DELLSONiC# show bgp ipv4 유니캐스트 4.4.4.4
4.4.4.4/32용 BGP 라우팅 테이블 항목
경로: (2 사용 가능, 최고의 #2, 테이블 기본값)
200
10.0.0.2에서 10.0.0.2(20.0.0.1)
출처 미완료, 메트릭 0, 유효, 외부, 다중 경로
마지막 업데이트: 2023-12-25 14:34:55+0000
200
30.0.0.2에서 30.0.0.2(30.0.0.2)
출처 미완료, 메트릭 0, 유효, 외부, 다중 경로, 최적(이전 경로)
마지막 업데이트: 2023-12-25 14:34:55+0000 |
|
ECMP를 활성화해 보겠습니다.
admin@DELLSONiC:~$ sonic-cli
DELLSONiC# configure
DELLSONiC(config)# ip load-share hash seed 100
|
두 개의 경로가 있으므로 최대 BGP 경로를 2로 구성해 보겠습니다.
admin@DELLSONiC:~$ sonic-cli
DELLSONiC# configure
DELLSONiC(config)# router bgp 100
DELLSONiC(config-router-bgp)# address-family ipv4 unicast
DELLSONiC(config-router-bgp-af)# maximum-paths 2 |
라우팅 테이블에 두 라우트가 모두 설치되어 있는지 확인하려면 아래 명령을 사용합니다.
show ip route <hopst/subnet>
DELLSONiC# show ip route 4.4.4.4
Codes: K - kernel route, C - connected, S - static, B - BGP, O - OSPF
> - selected route, * - FIB route, q - queued route, r - rejected route
Destination Gateway Dist/Metric Last Update
--------------------------------------------------------------------------------------------------------------------------------
B>* 4.4.4.4/32 via 10.0.0.2 Eth1/1 20/0 03:02:41 ago
* via 30.0.0.2 Eth1/2
|