● Cisco Express Forwarding(CEF)
CEF는 시스코 전용 스위칭 매커니즘이고, 대부분의 시스코 플랫폼 장비에서 해당 스위칭 방법을 기본으로 제공 합니다. CEF Switching을 분류하는 방법으로 "Where (장소)" Switching Engine이 위치하고 있는지 "What (무엇)" Switching을 수행애하는지에 따라 분류를 수행합니다.
"Where (장소)"에 해당하는 부분은 스위치에서 패킷 스위칭을 담당하는 포워딩 엔진 (Forwarding Engine) 위치에 관한 분류 이며 하드웨어의 물리적인 배치와 연관이 있습니다. Forwarding Engine이 RP내부에 위치하고 있다면 Centrailzed Forwarding Achitecture, Forwarding Engine이 라인 카드 마다 위치하고 있는 경우라면 Distributed Forwarding Architecture 라고 합니다.
"What (무엇)"에 해당 하는 부분은 스위치에서 패킷 스위칭을 담당하는 CPU에 따른 분류 입니다. 범용 CPU에서 처리하는 CEF(Software-Base Router)와 높은 패킷 처리량을 위해 전용 ASIC 칩과 Network Processing Unit(NPU)를 이용하는 CEF(Hardware-Base Router)가 있습니다.
Software-Base와 Hardware-Base는 거의 유사하며 기능적으로는 동일합니다. 다만 둘의 차이점은 Software-Base Router의 범용 CPU는 CEF Switching 기능을 포함한 모든 동작을 담당하고 Hardware-Base Router는 CEF 수행을 전용 ASIC Chip, TCAM 그리고 NPU가 담당을 합니다.
● Forwarding Engine의 하드웨어 배치에 따른 분류
○ CEF Architecture
※ RP(Route Processor)는 라우터의 System Controller 입니다. |
|
Centrailzed Forwarding | - Forwarding Engine이 Route Processor Engine 내부에 존재 하고 이를 통해 패킷 스위칭 결정을 수행하는 구조를 Centrailed Forwarding Architecture 라고 함. - 입력 라인 카드로 패킷을 수신하면 RP에 있는 Forwarding Engine으로 전달하여 헤더 검사를 수행한 후 출력 라인 카드로 전달을 수행 함. |
Distributed Forwarding | - 라인 카드에 Forwarding Engine이 장착되어 패킷 스위칭을 결정하는 구조를 Distributed Forwarindg Architecture 라고 함. (RP의 개입 없이 Local에서 처리하는 구조) - 입력 라인 카드로 패킷을 수신하면 라인 카드내에 있는 forwarding engine으로 전달하고 검사 하여 출력 라인 카드를 확인. 출력 라인 카드가 자기 자신을 경우 바로 처리하고 다른 라인 카드에 위치할 경우 스위치 패브릭(Backplane)으로 전달하여 처리. |
● Forwarding Engine의 하드웨어 종류에 따른 분류
○ Software CEF
Software CEF는 범용 CPU에서 수행되며, Forwarding Infomation Base (FIB)와 Adjacency Information Table (AIB) 2개의 테이블을 이용하여 구성 됩니다.
항목 | 설명 |
Forwarding Infomation Base | - 라우팅 테이블과 Next-Hop IP 주소로 이루어져 있음 - 라우팅 테이블에 변화가 발생한다면 FIB 테이블에 반영하고, CEF는 목적지로 향하는 스위칭 결정에 FIB 사용 |
Adjacency Information Table | - Next-Hop IP주소, Next-Hop MAC 주소, 출력 인터페이스와 해당 인터페이스의 MAC 주소로 구성된 테이블 - AIB를 구성하는 정보는 ARP Table과 MAC 주소 테이블에서 가져 옴 |
○ Hardware CEF
하드웨어 기반의 CEF는 ASIC칩에서 처리가 되기 때문에 매우 높은 패킷 처리량을 자랑하지만 하드웨어로 구성되어 있어 기능적인 제약이 존재합니다. 라우터는 NPU(Network Process Unit)을 탑재하여 ASIC의 비유연성을 극복하였습니다.
(ASIC과는 달리 NPU는 프로그래밍이 가능하기 때문에 펌웨어를 변경하여 대응할 수 있습니다.)
하드웨어 기반의 CEF는 distributed forwarding architecutre하며 해당 아키텍처의 최대 이점은 line card에서 패킷 스윗칭을 수행하기 때문에 패킷 처리량을 비약적으로 증가 시킬 수 있습니다.
하드웨어 기반의 플랫폼에서 소프트웨어 CEF는 패킷 스위칭에 사용되지 않고 대신에 하드웨어 CEF를 프로그래밍 하는데 사용됩니다.
● CEF Table 구성 절차
※ 정적 경로 172.16.10.0/24의 CEF 테이블이 생성되는 과정 소개 |
|
STEP 1 | - FIB는 라우팅 테이블 정보를 이용하여 구성 - 172.16.10.0/24의 NEXT-HOP은 10.40.40.254이고 OSPF를 통해 학습된 경로임을 라우팅 테이블에서 확인 |
STEP 2 | - Forwarding Information Base의 Adjacency열의 정보를 확인 - 네트워크 10.40.40.0과 172.16.10.0의 Adjacency의 주소가 10.10.10.254로 동일 |
STEP 3 | - ARP 테이블과 MAC 주소 테이블을 상호 참조하여 Adjacency Table 구성 ▣ NEXT-HOP의 IP와 MAC 주소 및 출력 인터페이스 식별과 MAC 주소 |
STEP 4 | - 유입된 패킷의 목적지에 대한 정보가 FIB에 없을 경우 ▣ Processing Switching이 동작하여 정보 수집 후 CEF 테이블을 생성. - 유입된 패킷의 목적지에 대한 정보가 FIB에 있을 경우 ▣ 패킷의 목적지 IP 주소에 대한 adjacency table 검사를 수행 함 |
STEP 5 | - adjacency table을 참조하여 NEXT-HOP MAC과 Egress MAC을 이용하여 전송할 패킷의 MAC 주소를 수정 - TTL값을 1 감소 시키고 IP 헤더의 Checksum을 재계산하고 NEXT HOP 으로 패킷을 전송 |
● Stateful SwitchOver (SSO)
라우터는 하드웨어 redundancy를 포함하여 고가용성으로 설계되었습니다. 전원 이중화나 RP(Route Processor) 이중화가 하드웨어 redundancy에 해당합니다. RP는 네트워크 토폴로지를 학습하고 라우팅 테이블을 생성하는데, 만약 RP에 장애가 발생한다면 라우팅 테이블은 삭제가 되고 네트워크는 불안정해 집니다. 그래서 RP 장애 발생 시 앞서 만들어 두었던 CEF 정보를 이용하여 패킷을 전달하고 그동안 두번째 RP가 라우팅 프로토콜을 이용해 라우팅 테이블과 포워드 테이블을 다시 만들어 냅니다.
Switchover(Primary RP에서 Secondary RP로 넘어가는 것) 동안 두번째 RP는 즉시 제어권을 가져가고 인터페이스 링크가 Up/Down 되는 것을 막아주지만, IP Packet forwarding은 정상적으로 수행할 수 없습니다.
IP Packet forwarding이 가능하기 위해서는 nonstop forwarding(NSF) 또는 nonstop routing(NSR) 기능을 활성화 하여 라우터가 CEF 테이블 정보를 유지하여 패킷을 전달하도록 해 주어야 합니다.
참고 URL:
https://www.cisco.com/c/en/us/td/docs/ios-xml/ios/ipswitch_fswtch/configuration/15-s/isw-fswtch-15-s-book/isw-fast-swtchng-cnfg.html#GUID-C1B3AA65-2C4E-4568-BE91-43623D6A52D0
https://www.cisco.com/c/en/us/support/docs/ip/express-forwarding-cef/13706-20.html#express
'네트워크 > L2 Switching' 카테고리의 다른 글
Spanning-Tree (IEEE 802.1D) - Root Bridge, RP, DP, BP 선출 (0) | 2022.03.14 |
---|---|
Spanning-Tree (IEEE 802.1D) 란? (0) | 2022.03.13 |
Layer 2 Switching - Switching (Process, Fast, CEF) (0) | 2022.03.11 |
Layer 2 Switching - Virtual LAN (VLAN) 정의와 Switch Port (1) | 2022.03.11 |
Layer 2 Switching - Collision & Broadcast Domain (0) | 2022.03.10 |