네트워크 장비의 구성요소

네트워크 장비는 위와 같이 3가지의 구성요소로 구분됨, 모든 장비에서 하드웨어적으로 구분된다기 보다 SDN과 같은 솔루션들을 구현하기 위해 논리적으로, 개념적으로 구분해놓은 것이라고 생각하면 편함
| Control Plane | 라우팅 테이블 구성, ACL 구축 등과 같은 정책 설정을 담당 → 보통 CPU를 뜻함 |
| Data Plane | 정책에 의한 트래픽 처리만을 담당 → 보통 ASIC과 같은 하드웨어를 뜻함 |
| Management Plane | SSH, Consol Port 등과 같이 관리를 위해 존재하는 것들을 뜻함 |
패킷 처리의 역사
Process Switcing

기존의 라우터(아주 예전입니다)는 Process Switiching을 사용하였음
Process Switiching은 라우터의 CPU가 인입되는 모든 패킷에 대한 라우팅 검사를 실행함, CPU에게 큰 무리를 주고 패킷 처리 속도가 느릴 수 밖에 없음
이 때, Recursive Lookup이 발생하기 때문에 패킷 처리 속도는 더더욱 느릴 수 밖에 없음
---> [10.0.0.0/24 ]G0/0 [ 라우터A ] G0/1 <---> [210.110.10.0/24] <----> [ 라우터B ]
RIB
210.110.10.0/24 에 대한 경로
172.16.10.0/24 에 대한 경로
-> 사용자가 원하는 경로
#ping 172.16.10.1
Recursive Lookup은 라우터에서 패킷이 어디로 전달되어야 하는지 확인하기 위해서 수행되는 일련의 과정임
위의 코드 처럼 172.16.10.1로 ping을 보낸다고 가정할 때, 아래와 같은 일련의 상황이 벌어짐
1. 172.16.10.0/24가 210.110.10.0/24에서 광고된다는 것을 확인
2. 210.110.10.0/24는 어느 인터페이스를 통해 연결되어 있는지 확인
최종적으로 Direct connected된 next hop을 찾을 때까지 조회를 반복하므로 패킷 처리 속도에 영향을 줌
Fast Switching

이를 보완하기 위해 Fast Switching이라는 기법을 사용했음, 한번 CPU가 처리했던 트래픽은 캐싱하여 CPU 참조 없이 포워딩 할 수 있도록 한 것임.
그러나 캐시가 만료되거나 최초 패킷은 Process Switching을 이용함으로 기존의 문제가 여전히 존재
CEF(Cisco Express Forwarding)
이를 해결하기 위해 Cisco에선 CEF를 개발하여 최신 플랫폼에 이식하였음
CEF를 알기 전에 알고가야하는 개념들이 몇 있음
Software based Router, Hardware based Router, Hybrid Router

Software based Router는 범용 CPU를 사용하여 패킷을 처리하는 장비임
→ Control Plane과 Data Plane이 같은 CPU에서 처리됨
범용 CPU를 사용하면 속도가 느린대신 프로그래밍이 용이하여 유연성은 높음
관련 CISCO 장비들 : 800/2800/2900/3900/7200 Series 가 있음

Control Plane과 Data Plane의 분리 → CPU가 Control Plane을 처리하고 ASIC에서 Data Plane을 처리함

Control Plane과 Data Plane의 분리
CPU가 Control Plane을 처리하고 ASIC이 아닌 NP(Network Processor)에서 Data Plane을 처리함
→ 둘의 차이는 좀 더 찾아봐야할듯
CEF의 동작 방식
CEF는 CISCO 대다수 플랫폼에서 구동이 가능하고 패킷 스위칭의 프로세스를 변경한 것이지 ASIC만의 기술이 아님으로 Hardware based Router에서만 사용되는 기술은 아니다. Software based Router에서는 여전히 CPU를 사용할 수 밖에 없으므로 Wired Speed를 제공할 순 없지만, 기존 Process Switching보다는 훨씬 효율적이고 빠르다.
Hardware based Router에서는 CEF를 ASIC이 처리하고 CPU의 관여가 없기 때문에 기존의 Process/Fast 스위칭을 대체하고 네트워크 속도는 Hardware Speed가 아닌 Wire Speed를 제공할 수 있다.
Software based Router에서 구동되는 cef를 Software based CEF라고 하고, Hardware, Hybrid based 에서 구동되는 CEF는 Hardware based CEF라고 한다.


CEF는 기존 Process Switching에서 각 패킷마다 경로를 확인하기 위해 recursive lookup을 발생시켰던 것을 막기 위해 Data Plane에 FIB와 Adjacency Table 생성하여 모든 경로의 최적 경로를 저장해둔다.
따라서 recursive lookup과 같이 번거로운 절차를 거치지 않고 한번의 lookup만으로 포워딩 될 수 있도록 한다.
모든 트래픽이 Data Plane으로 포워딩 되는 것은 아니고 라우팅 프로토콜의 Hello 메시지와 같은 정보 패킷, 라우터 자기 자신에게 전달된 트래픽등은 Control Plane으로 전달된다. → 이러한 패킷들을 Punted Packet이라고 표현한다.
FIB는 RIB(Routing Table)을 참고하고 Adjacency Table은 ARP Table을 참고한다.
이때 소프트웨어 CEF는 FIB와 어드전시 테이블을 RAM에 저장하고 데이터의 처리는 CPU에 의해 처리된다.
하드웨어 CEF는 FIB를 TCAM에 저장하고, 어드전시 테이블을 Standalone memory에 저장하며 ASIC을 통해 처리한다.
Routing Table(RIB) → FIB
FIB에는 목적지 도달 가능성 정보가 저장됨
- IP 접두사
- 재귀적으로 평가된 Next Hop
- 송신 인터페이스
Routing information Base
show ip routing
R1#show ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route
Gateway of last resort is not set
C 192.168.12.0/24 is directly connected, FastEthernet0/0
3.0.0.0/24 is subnetted, 1 subnets
S 3.3.3.0 [1/0] via 192.168.23.3
S 192.168.23.0/24 [1/0] via 192.168.12.2
Forwarding information Base
show ip cef
R1#show ip cef
Prefix Next Hop Interface
0.0.0.0/0 drop Null0 (default route handler entry)
0.0.0.0/32 receive
3.3.3.0/24 192.168.12.2 FastEthernet0/0
192.168.12.0/24 attached FastEthernet0/0
192.168.12.0/32 receive
192.168.12.1/32 receive
192.168.12.2/32 192.168.12.2 FastEthernet0/0
192.168.12.255/32 receive
192.168.23.0/24 192.168.12.2 FastEthernet0/0
224.0.0.0/4 drop
224.0.0.0/24 receive
255.255.255.255/32 receive
Adjacency Table
show adjacency
show adjacency detail

어드전시 테이블은 단순히 arp table 처럼 mac 정보를 가지고 있는 것이 아닌 해당 경로에 필요한 이더넷헤더의 정보를 가지고 있어, FIB에 의해 Next hop이 결정된 패킷에 해당 next-hop으로 가기 위한 이더넷 헤더를 바로 연결해준다.
Centralized CEF, Distributed CEF
CEF Mode라는 것이 존재한다. CEF의 동작은 똑같으나 BOX형 장비와 다른 샤시형 장비에서 CEF를 처리하기 위해서 구분되어 있다.
샤시형 장비는 BOX형 장비와 다르게 Data Plane(Line card)와 Control Plane(Route Processor) 등일 물리적으로 구분되어 있다. 따라서 CEF를 둘 중 어디에서 처리하게 할 것인가에 대한 내용이다.

Centralized CEF는 CEF가 RP에서 수행된다. (RP는 CPU가 아니고 CPU를 포함한 일련의 하드웨어이다)

Distributed CEF는 각 라인카드에서 CEF를 실행한다.
만약 Input, Output이 동일한 카드에서 수행된다면 상위 계층의 모듈로 가지 않고 해당 카드에서 처리된다.
분산형 CEF가 중앙집중화 CEF보다 효율적이지만, 구현을 위해 더욱 고가의 라인카드를 구성해야하는 단점이 있다고 한다.
ip cef
#cef 활성화
ip cef distributed
#dCEF 활성화
#clear ip cef table ipv4
// CEF Table 초기화
// CEF가 처리하지 않고 CPU가 처리하게 된 패킷을 표시
#show cef not-cef-switched
CEF Packets passed on to next switching layer
Slot No_adj No_encap Unsupp'ted Redirect Receive Options Access Frag
RP 0 0 0 0 17 0 0 0
No_adj 인접성이 불완전함
| No_encap | ARP 정보가 불완전함 |
| Usupp’ted | 지원되지 않는 기능 포함 |
| redirection | ICMP 리다이렉션 |
| Receive | 라우터로 전송된 패킷 |
| Option | 패킷 헤더에 IP 옵션이 있음 |
| Aceess | ACL 목록 평가 실패 |
| Frag | 패킷 조각화 오류 |
CEF 로드밸런싱
CEF는 동일 대역에 대한 여러 경로가 있다면 로드밸런싱을 지원함
| 방식 | 기능 |
| per-destination sharing | 특정 SIP와 DIP를 기준으로 해시값을 계산하여 항상 같은 경로를 사용함 |
| per-packet | 네트워크에서 사용 가능한 모든 경로에 라운드로빈 분산됨 |
※ per-packet 방식은 비대칭 라우팅으로 인한 UDP 관련 서비스 ISSUE가 발생할 수 있어 권장하지 않음
#show ip cef 1.1.1.1/32
1.1.1.1/32, epoch 1, per-destination sharing
nexthop ---
nexthop ---
//per-destination sharing -> asymmetric routing 방지
//per-packet -> packet 별로 로드밸런싱
#ip load-sharing [per-destination | per-packet]
//로드밸런싱 활성화
CEF 양극화
CEF 로드밸런싱에 의해 발생하는 현상임
아래는 CEF에서 사용하는 로드밸런신용 알고리즘
- 기존 알고리즘
- : 모든 라우터에서 동일한 알고리즘을 사용하므로 CEF 편향이 발생합니다.
- 범용 알고리즘
- : 각 라우터가 출발지-도착지 주소 쌍마다 다른 결정을 내릴 수 있도록 하여 부하 분산 불균형을 해결합니다. 기본 설정입니다.
- 터널링 알고리즘
- : 송신원과 수신원 쌍이 몇 개 없을 때 패킷별 부하 균형을 맞추도록 설계되었습니다.
- 포트 포함 알고리즘
- : 로드 밸런싱 결정의 일부로 레이어 4 소스 및 대상 포트를 사용합니다.
조금 더 복잡해보이지만 결국에는 CEF 로드밸런싱에 이용되는 알고리즘이 모든 라우터에서 동일하고 입력값(SIP, DIP)가 동일하기 때문에 항상 그 해싱의 결과 값이 같아 ECMP를 통해 여러 대체 경로가 있음에도 한 경로만 사용하게 되는 문제를 뜻함
'네트워크' 카테고리의 다른 글
| VXLAN with EVPN (0) | 2026.03.08 |
|---|---|
| Flexible Netflow (1) | 2026.02.01 |
| TLV(Type, Length, Value) (0) | 2026.01.18 |
| LOAD BALANCING(L4 Switch) (0) | 2025.12.29 |
| RMA와 RMA시 주의사항 (0) | 2025.10.29 |