소개
이 문서에서는 CEF(Cisco Express Forwarding)에 대해 설명합니다.
사전 요구 사항
요구 사항
이 문서에 대한 특정 요건이 없습니다.
사용되는 구성 요소
이 문서는 특정 소프트웨어 및 하드웨어 버전으로 한정되지 않습니다.
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 현재 네트워크가 작동 중인 경우 모든 명령의 잠재적인 영향을 미리 숙지하시기 바랍니다.
개요
Cisco CEF(Express Forwarding) 스위칭은 수요 캐싱과 관련된 문제를 해결하기 위한 확장형 스위칭의 독점적인 형식입니다. CEF는 Cisco IOS에 내장된 고급 레이어 3 IP 스위칭 아키텍처로, 기존 경로 캐시 모델을 대체합니다. 또한 고도로 최적화된 자체 포워딩 테이블과 별도의 인접성 테이블을 유지 관리하므로 CPU 개입을 최소화하면서 라인 레이트 패킷 포워딩이 가능합니다. 패킷이 라우터 또는 스위치에 도착할 때마다 디바이스는 패킷을 전달할 위치를 결정해야 합니다. 패킷의 유효성이 확인되고 액세스 제어 목록 또는 기타 삭제 조건을 통과하면 디바이스에서 라우팅 테이블을 참조하여 최상의 아웃바운드 인터페이스를 결정합니다. Cisco 라우터 및 스위치는 다음 세 가지 방법으로 이 조회를 수행할 수 있습니다. 프로세스 스위칭, 고속 스위칭 또는 Cisco Express Forwarding 중 하나를 선택할 수 있습니다
CEF를 사용하면 디바이스는 각 패킷이 조회를 트리거할 때까지 기다리지 않고 모든 경로를 사전 대응적으로 계산하여 두 개의 최적화된 데이터 구조인 FIB(Forwarding Information Base)와 인접성 테이블에 설치합니다. 최신 플랫폼에서는 이러한 테이블이 하드웨어 포워딩 플레인과 동기화되므로 패킷당 CPU 오버헤드가 감소하고, 초당 패킷 처리량이 증가하며, 포워딩 동작이 일관적입니다. 따라서 최신 Cisco 플랫폼에서는 기본적으로 CEF가 활성화되어 고성능 IP 네트워크에 대한 기본 기능이 유지됩니다.
CEF 핵심 구성 요소
- FIB(Forwarding Information Base) 테이블 - CEF는 FIB를 사용하여 IP 대상 접두사 기반 결정을 내립니다. 즉, FIB는 CEF의 수신자 연결 데이터베이스입니다. FIB는 라우터의 IP RIB(Routing Information Base)의 일대일 미러이지만, 하드웨어에서 가능한 빠른 접두사 조회를 위해 재구성되었습니다. 라우팅 프로토콜 업데이트, 고정 경로 변경 등으로 인해 IP 라우팅 테이블이 변경될 때마다 이러한 변경 사항이 FIB에 즉시 반영되므로 전달에서는 항상 최신 토폴로지 정보를 사용합니다. 각 FIB 항목은 대상 접두사와 하나 이상의 다음 홉 포인터로 구성됩니다. ecmp(equal-cost multipath)가 구성된 경우 FIB는 패킷별 또는 대상별 로드 밸런싱을 지원하기 위해 접두사당 여러 포인터를 보유합니다. FIB는 모든 알려진 경로를 포함하므로(최근에 사용한 경로의 수요 캐시가 아니라) 경로 캐시 유지 보수의 필요성을 없애고 토폴로지 변경 중에 캐시 스래시를 방지함으로써 안정적이고 예측 가능한 포워딩 성능을 제공합니다.
-
인접성 테이블 - 네트워크의 노드는 링크 레이어에 걸쳐 단일 홉으로 서로 도달할 수 있는 경우 인접하다고 합니다. FIB 외에도 CEF는 인접 테이블을 사용하여 해당 링크의 패킷을 전달하는 데 필요한 레이어 2 주소 지정 정보(MAC 주소, VLAN 태그, 인터페이스 등)를 추가합니다. 인접성 테이블은 모든 FIB 엔트리에 대한 레이어 2 next-hop 주소를 유지 관리하며, 이러한 엔트리는 인접성이 검색될 때 채워집니다(예: ARP(Address Resolution Protocol)와 같은 메커니즘을 통해).
CEF 작업 모드
-
Central CEF mode(중앙 CEF 모드) - 중앙 CEF 모드가 활성화된 경우 FIB 및 인접성 테이블이 경로 프로세서에 상주하며, 경로 프로세서가 빠른 전달을 수행합니다. 라인 카드를 CEF 스위칭에 사용할 수 없거나, 분산된 CEF 스위칭과 호환되지 않는 기능을 사용해야 하거나, 분산되지 않은 플랫폼에서 실행하는 경우 CEF 모드를 사용할 수 있습니다.
-
dCEF(Distributed CEF) 모드 - dCEF 모드가 활성화되면 라인 카드는 FIB 및 인접성 테이블의 동일한 복사본을 유지합니다. 라인 카드는 직접 익스프레스 포워딩을 수행할 수 있으며, 메인 프로세서의 부담을 덜어 시스템 성능을 개선합니다. 이 모드는 확장성을 높이기 위한 것으로, 두 개 이상의 라인 카드에 처리 작업을 분산시킬 수 있는 분산 또는 모듈형 플랫폼에서 사용할 수 있습니다. dCEF는 IPC(Inter-Process Communication) 메커니즘을 사용하여 경로 프로세서와 라인 카드의 FIB 및 인접성 테이블의 동기화를 보장합니다.
CEF 기본 패킷 흐름
다음 단계 목록에서는 패킷이 CEF로 전환되는 방법에 대한 설명을 제공합니다.
- 디바이스의 인터페이스 프로세서는 네트워크 미디어에서 패킷을 읽고 인터페이스의 RX(receive) 링이라고 하는 버퍼 메모리에 저장합니다.
- 디바이스의 인터페이스 프로세서는 수신 인터럽트를 메인 프로세서에 전송합니다. 나머지 전환은 이 중단 중에 발생합니다.
- 디바이스는 목적지 IP 주소를 검색 키로 사용하여 FIB의 목적지에 대해 최장 일치 조회를 수행합니다. FIB 조회가 실패하면 패킷이 삭제됩니다. 조회가 성공하면 FIB 경로가 선택되고 디바이스는 해당 인접성 엔트리에 대한 포인터를 사용합니다.
- 디바이스는 인접성 테이블의 캡슐화 문자열을 사용하여 레이어 2 헤더를 재작성하고 아웃바운드 인터페이스의 전송을 위해 패킷을 올바른 출력 대기열에 배치합니다.
- 성공적으로 스위칭된 패킷은 아웃바운드 인터페이스의 TX(Transmit) 링에 인큐됩니다.
관련 정보