소개
이 문서에서는 Cisco CEF(Express Forwarding) 분화로 대상 네트워크에 대한 이중화 경로를 최적화하지 못하는 방법을 설명합니다.CEF 양극화는 해시 알고리즘이 특정 경로를 선택하고 이중 경로가 완전히 사용되지 않은 상태로 유지되는 경우에 적용됩니다.
사전 요구 사항
요구 사항
이 문서에 대한 특정 요건이 없습니다.
사용되는 구성 요소
이 문서의 정보는 Supervisor Engine 720에서 실행되는 Cisco Catalyst 6500 스위치를 기반으로 합니다.
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다.이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다.현재 네트워크가 작동 중인 경우, 모든 명령어의 잠재적인 영향을 미리 숙지하시기 바랍니다.
배경 정보
CEF는 EIGRP(Enhanced Interior Gateway Routing Protocol) 및 OSPF(Open Shortest Path First) 등의 라우팅 프로토콜로 채워진 라우팅 테이블을 기반으로 패킷을 전환합니다.CEF는 라우팅 테이블(RIB)이 계산되면 로드 밸런싱을 수행합니다.계층적 네트워크 설계에서는 많은 L3(Layer 3) 동일 비용 이중화 경로가 있을 수 있습니다.트래픽이 디스트리뷰션 및 코어를 통해 데이터 센터로 이동하는 이 토폴로지를 고려해 보십시오.
라우터 1(R1) [왼쪽 위]에서 네트워크 10.1.1.1에 연결하기 위해 두 개의 동일 비용 경로(L1, L2)가 있다고 가정합니다. 두 링크 중 어떤 링크를 사용할지 결정하는 것은 해싱 알고리즘입니다.기본적으로 SIP(Source IP) 및 DIP(Destination IP)는 해싱 알고리즘의 매개변수로 사용됩니다.
해싱 알고리즘의 작동 방식에 대한 설명은 다음과 같습니다.
경로가 두 개뿐이면 스위치/라우터는 SIP 및 DIP의 하위 비트(2개의 링크 중 하나를 선택해야 하는 경우 1비트, 3-4개의 링크에서는 2비트 등)에 대해 XOR(exclusive-OR) 작업을 수행합니다.동일한 SIP 및 DIP의 XOR 작업은 항상 동일한 링크의 패킷 사용을 초래합니다.
그런 다음 동일한 해시 입력과 함께 동일한 해싱 알고리즘을 사용하는 디스트리뷰션 레이어로 패킷이 전달되고, 모든 플로우에 대해 단일 링크를 선택하면 다른 링크가 제대로 활용되지 않습니다.이 프로세스를 CEF 양극이라고 합니다(동일한 해시 알고리즘과 동일한 해시 입력을 사용하여 모든 플로우에 대해 단일 ECMP(Equal-Cost Multi-Path) 링크를 사용합니다).
다음 예에서는 이 프로세스를 자세히 설명합니다.
- 10.240.18.1에서 소싱되고 10.240.20.1으로 향하는 트래픽은 라우터 A의 네트워크에 진입하며 CEF 스위치입니다.10.240.20.0/24 네트워크에 대한 두 개의 동일 비용 경로가 있기 때문에 패킷의 소스 및 대상 주소가 해시 알고리즘을 통과하며 그 결과는 대상에 도달하는 데 사용되는 특정 경로입니다.이 경우 패킷이 사용하는 경로는 Router C로 이동합니다.여기에서 패킷은 Router F로, 최종 목적지로 이동합니다.
- 10.240.18.2에서 소싱되고 10.240.20.1으로 향하는 트래픽은 라우터 A에서 네트워크에 진입하며 CEF 스위치도 됩니다.10.240.20.0/24 네트워크에 대한 두 개의 동일 비용 경로가 있으므로 패킷의 소스 및 대상 주소가 해시 알고리즘을 통과하며 CEF가 경로를 선택합니다.이 경우 패킷이 사용하는 경로는 Router B로 이동합니다.
- 10.240.18.3에서 소싱되고 10.240.20.1으로 향하는 트래픽은 라우터 A에서 네트워크로 진입하며 CEF 스위치도 됩니다.10.240.20.0/24 네트워크에 대한 두 개의 동일 비용 경로가 있으므로 패킷의 소스 및 대상 주소가 해시 알고리즘을 통과하며 CEF가 경로를 선택합니다.이 경우 패킷이 사용하는 경로는 Router B로 이동합니다.
- 10.240.18.2 및 10.240.18.3에서 소싱된 패킷은 모두 라우터 B에 도착합니다. 이 패킷에는 10.240.20.1에 도달할 수 있는 두 개의 동일 비용 경로가 있습니다. 또한 해시 알고리즘을 통해 이러한 소스 및 대상 쌍의 집합을 다시 실행하며, 이는 라우터 A에서 해시 알고리즘이 생성한 것과 동일한 결과를 생성합니다.즉, 두 패킷 스트림이 모두 하나의 경로를 따라 전달되며, 이 경우 라우터 E로 연결되는 링크입니다.라우터 D에 대한 링크는 트래픽을 수신하지 않습니다.
- 10.240.18.2 및 10.240.18.3에서 소싱된 트래픽이 라우터 E에서 수신되면 라우터 F로 향하는 경로를 따라 전환된 다음 최종 대상으로 전환됩니다.
CEF 양극화를 방지하는 방법
- 기본(SIP 및 DIP) 및 전체(SIP + DIP + Layer4 포트) 해시 입력 컨피그레이션을 네트워크의 각 레이어에서 대체
Catalyst 6500은 해싱 알고리즘을 위한 몇 가지 옵션을 제공합니다.
- Default(기본값) - 양극화를 방지하기 위해 각 링크에 가중치가 다르게 지정된 소스 및 대상 IP 주소를 사용합니다.
- Simple(단순) - 소스 및 대상 IP 주소를 사용하여 각 링크에 동일한 가중치를 부여합니다.
- Full(전체) - 소스 및 대상 IP 주소와 레이어 4 포트 번호를 서로 다른 가중치와 함께 사용합니다.
- Full Simple(전체 단순) - 소스 및 대상 IP 주소와 레이어 4 포트 번호를 각 링크에 동일한 가중치를 부여하여 사용합니다.
6500(config)#mls ip cef load-sharing ?
full load balancing algorithm to include L4 ports
simple load balancing algorithm recommended for a single-stage CEF router
6500(config)#mls ip cef load-sharing full ?
simple load balancing algorithm recommended for a single-stage CEF router
<cr>
현재 사용 중인 로드 공유 알고리즘을 확인하는 명령이 없습니다.사용 중인 방법을 찾는 가장 좋은 방법은 show running-config 명령을 통해 현재 컨피그레이션을 확인하는 것입니다.mls ip cef load-sharing으로 시작하는 컨피그레이션이 없으면 기본 소스 및 대상 같지 않은 가중치 알고리즘이 사용됩니다.
참고:1) Catalyst 6500은 패킷 로드 공유당 지원되지 않습니다.2) 전체 옵션은 해시에 범용 ID를 포함하지 않습니다.멀티레이어 토폴로지의 모든 레이어에서 사용되는 경우 분화가 가능합니다.더 나은 로드 공유를 달성하고 더 적은 하드웨어 인접성을 사용하려면 이 명령과 함께 간단한 옵션을 사용하는 것이 좋습니다.
- 네트워크의 각 레이어에서 짝수 및 홀수 ECMP 링크 간 대체
CEF 로드 밸런싱은 라우팅 테이블에 프로토콜 경로가 삽입되는 방식에 따라 달라집니다.따라서 OSPF 경로는 EIGRP와 동일한 동작을 나타냅니다.한 행에서 로드 공유를 수행하는 여러 라우터가 있는 계층적 네트워크에서는 모두 동일한 알고리즘을 사용하여 로드 공유를 수행합니다.
해시 알고리즘은 기본적으로 다음과 같이 로드 밸런싱을 수행합니다.
1: 1
2: 7-8
3: 1-1-1
4: 1-1-1-2
5: 1-1-1-1-1
6: 1-2-2-2-2-2
7: 1-1-1-1-1-1-1
8: 1-1-1-2-2-2-2-2
콜론 앞의 숫자는 등가 경로 수를 나타냅니다.콜론 뒤의 숫자는 경로당 전달되는 트래픽의 비율을 나타냅니다.
이는 다음을 의미합니다.
- 두 개의 동일 비용 경로의 경우 로드 공유는 50%-50%가 아니라 46.666%-53.333%입니다.
- 세 가지 동일 비용 경로의 경우 로드 공유는 33.33%-33.33%-33.33%입니다(예상대로).
- 4개의 동일 비용 경로의 경우 로드 공유는 20%-20%-20%-40%이며 25%-25%-25%-25%가 아닙니다.
이는 짝수 개의 ECMP 링크가 있는 경우 트래픽이 로드 밸런싱되지 않음을 나타냅니다
CEF 분화를 비활성화하는 한 가지 방법은 버전 12.2(17d)SXB2에 도입된 양극화 가중치입니다.
양극화 방지 가중치를 활성화하려면 다음 명령을 입력합니다.
6500(config)# mls ip cef load-sharing full simple
동일한 비용 경로가 두 개 있고 두 경로를 모두 동일하게 사용해야 하는 경우 이 명령을 사용합니다.simple 키워드를 추가하면 하드웨어에서 Cisco IOS® CEF 인접성과 동일한 수의 인접성을 사용할 수 있습니다.simple 키워드가 없으면 플랫폼 분화를 방지하기 위해 하드웨어가 추가 인접성 항목을 설치합니다.
- Cisco IOS는 CEF의 양극화를 방지하는 데 도움이 되는 unique-ID/universal-ID라는 개념을 도입했습니다.범용 알고리즘(현재 Cisco IOS 버전의 기본값)이라고 하는 이 알고리즘은 해시 함수(범용 ID라고 함)에 32비트 라우터별 값을 추가합니다. 이는 수동으로 제어할 수 있는 스위치 부팅 시 임의로 생성된 값입니다. 이렇게 하면 고유한 ID가 있는 각 라우터에서 해시 기능이 트리거되며, 동일한 소스/대상 쌍 해시가 경로를 따라 다른 라우터의 다른 값으로 설정됩니다.이 프로세스를 통해 네트워크 전반의 로드 공유가 개선되고 양극화 문제가 해결됩니다.이러한 고유한 ID 개념은 하드웨어 제한 때문에 동일 비용 경로의 짝수 개수에는 작동하지 않지만, 동비용 경로의 홀수에는 완벽하게 작동합니다.이 문제를 해결하기 위해 Cisco IOS는 동일 비용 경로가 짝수 개일 때 하드웨어 인접성 테이블에 하나의 링크를 추가하여 시스템이 동일 비용 링크의 수가 홀수라고 믿게 합니다.
범용 ID에 대한 사용자 지정 값을 구성하려면 다음을 사용합니다.
6500(config)ip cef load-sharing algorithm universal