본문 바로가기
  • AI (Artificial Intelligence)
Skills/Network

1편: 라우터 구조 소개 (Part 1: Router Architecture)

by 로샤스 2014. 4. 16.

2000년대 초반에 L3 스위치(Ethernet 스위치 + IP 라우터) 개발 회사에서 IBM NP4GS3C라는 Network Processor(그 당시 칩 하나에 $500이면 상당히 비싼 칩이죠)를 이용하여 패킷 포워딩 기능을 구현(assembler 기반의 microcode)한 적이 있습니다.


그 때의 경험과 추억을 되살려 L3 스위치의 패킷 전달 로직에 대해 설명을 드려 볼까 합니다.

아래와 같은 순으로 연재를 하겠습니다.

     1편: 라우터 구조 소개 (오늘 글)

     2편: IP 라우터의 패킷 포워딩 과정

     3편: L3 스위치의 L2(Ethernet) 스위칭 과정

     4편: L3 스위치의 IP 포워딩 과정


라우터 구조



좌측 그림은 Cisco 7600 라우터 형상입니다. 그 역할에 따라 3가지 모듈로 나눌 수 있습니다.


■ Supervisor Engine

  • 라우터 시스템 전체를 제어/관리하는 두뇌에 해당하며, 이 모듈에 각종 프로토콜(OSPF, BGP, SNMP, Telnet 등등)이 올라가고, 관리자는 이 모듈에 접속하여 CLI를 통해 장비 전체를 관리할 수 있습니다. 
  • 보통 Processing power가 우수한 General CPU(인텔 CPU 같은)가 본 모듈에 탑재되고 그 위에 프로토콜들이 포함된 OS (IOS/JUNOS)가 올라갑니다.
  • Juniper 라우터의 경우 이 모듈을 Routing Engine이라 부릅니다.
■ Line Card
  • 패킷 수신, Table(FIB/ARP) Lookup, QoS 적용(QoS marking, Policing, Queueing), 출력 포트로 패킷 전달을 담당하고(이 모든 과정을 Wire-speed로 처리), 물리적 포트 타입(1GE, 10GE, SONET 등) 및 포트 개수에 따라 다양한 모델명의 Line Card가 존재합니다.
  • 이와 같이 Wire-speed로 패킷을 처리하기 위해 Cisco/Juniper의 경우 자체 제작한 ASIC/NP을 사용하고, 국내의 경우 기술력 부족으로 보통 상용 ASIC(예. Broadcom, Marvell 등)을 사용합니다.
  • Juniper Router의 경우 이 모듈을 PFE(Packet Forwarding Engine)라 부릅니다.

■ Switch Fabric Module

  • Line Card 간에 패킷을 전달하기 위한 가교 역할을 합니다. 예를 들어, 1번 Line Card로 수신된 패킷이 2번 Line Card를 통해 나가야 하는 경우  중간에 이 Switch Fabric Module을 통해 패킷이 전달 됩니다.
  • Juniper의 경우 이 모듈을 Switch Fabric이라 부릅니다.


우측 그림은 이번 연재에서 사용하게 될 일반적인 라우터 내부 구조입니다.


■ Control Module (Control Plane)

  • Cisco Supervisor Engine/Juniper Routing Engine에 해당하며 Control Plane이라고도 부릅니다.
  • 원래는 수많은 프로토콜과 테이블들이 존재하지만 여기서는 이번 연재를 통해 설명 드릴 부분만 그려 보았습니다. Control Module에 올라가는 프로토콜들을 자세히 보고 싶으시면 여기를 클릭하세요.
  • OSPF Process가 동작하고, OSPF 프로토콜을 통해 OSPF Neighbor(OSPF Router)로 부터 배운 라우팅 정보 중에 Shortest Path에 해당하는 라우팅 엔트리만 RIB(Routing Information Base)에 인스톨됩니다. (OSPF를 통한 라우팅 정보 배우기는 여기, 여기를 클릭)
  • 또한 Line Card의 포트 타입이 Ethernet이라는 가정하에(요즘 대부분 Ethernet이죠), ARP Table이 존재합니다. ARP Table에는 라우터와 바로 연결된 노드(서버, 라우터)의 "IP 주소에 대한 MAC 주소"가 저장됩니다. (Windows PC에 있는 ARP Table(arp -a로 확인)과 동일한 용도입니다.)

■ Line Card (Data Plane)

  • Data Plane이라고도 부르며,
  • 패킷을 처리하는 가장 핵심적인 부분인 Packet Processor(IBM NP, Broadcom, Marvell 칩이 여기에 해당)를 중심으로 
  • 수신 패킷을 아주 잠시 저장하는 Ingress Packet Buffer와
  • 출력 포트로 패킷을 전달하기 전에 대기하는 장소인 Egress Packet Buffer가 있습니다. Congestion 발생시(예. 1GE 포트로 1Gbps 이상의 패킷들이 나가려고 할 때) Scheduling Algorithm(예. SPQ, WFQ/DWRR)에 따라 우선 순위가 높은 패킷은 빨리 나갈 것이고 그렇지 않은 패킷은 이곳에서 대기하면서 그 순서를 기다리게 됩니다.
  • 그리고 수신 패킷을 어느 포트로 보낼 지 결정하기 위해 참조하는 FIB(Forwarding Information Base), 그리고 ARP Table이 존재합니다.
  • Packet Processor의 기능에 대해서 자세히 알고 싶으시면 여기를 클릭하세요.

■ Switch Module

  • Line Card 간에 패킷을 전달하기 위한 가교 역할을 합니다. 이번 주제가 Switching Fabric 기술이 아니므로 이 정도로...


Control Module(Control Plane)의 RIB/ARP Table과 Line Card(Data Plane)의 FIB/ARP Table


Control Module의 RIB와 Line Card의 FIB에 저장되는 라우팅 엔트리는 벤더 구현에 따라 약간의 차이가 있는 것으로 알고 있습니다. 여기서는 Cisco 기준으로 설명을 드리면,

  • OSPF LSDB에는 모든 라우팅 경로가 저장되며, (정확히는 OSPF Neighbor로 부터 받은 모든 LSA 정보를 저장)
  • RIB에는 각 목적지로 가기 위한 최단 경로(Shortest Path)에 해당하는 라우팅 엔트리만 인스톨됩니다.
  • 그리고 이 RIB에 있는 엔트리들이 각 Line Card의 FIB로 복사가 됩니다.
  • 즉, {Control Module의 RIB} = {Line Card #1의 FIB} = {Line Card #2의 FIB} =  {Line Card #3의 FIB} = ...
이에 반해 ARP Table은 조금 다릅니다.

각 Line Card에 있는 ARP Table에는 해당 Line Card가 배운 ARP 엔트리(IP & MAC)만 저장이 되고 이 ARP 정보를 다른 Line Card와 공유하지 않습니다 (Line Card #1에서 배운 ARP 엔트리는 다른 Line Card들에서 사용될 필요가 없으므로). 그리고 Control Module의 ARP Table에는 모든 Line Card의 ARP 엔트리 정보가 모두 다 들어 있습니다. ARP 엔트리를 배우는 과정은 다음 시간에 설명 드리겠습니다.


따라서 Cisco Router에서 show ip route나 show ip arp 명령으로 확인되는 정보는 바로 Control Module의 RIB와 ARP Table입니다.

 

Ingress, Egress란?


Ingress는 Incoming, Egress는 Outgoing의 의미를 가집니다. 

예를 들어 "1번 Line Card의 ge1/4 포트로 수신된 패킷이 2번 Line Card의 ge2/3 포트로 출력된다고 하면" 다음과 같이 부르게 됩니다.

  • 패킷이 수신된 ge1/4를 Ingress Port
  • 패킷이 수신된 Line Card #1을 Ingress Line Card
  • 패킷이 송신된 ge2/3을 Egress Port
  • 패킷이 송신된 Line Card #2를 Egress Line Card
즉, Router의 Line Card와 Port는 패킷의 흐름에 따라 Ingress가 될 수도 있고 Egress가 될 수도 있습니다.

다음 시간에는 오늘 소개드린 General Router Architecture 상에서 IP 패킷 포워딩(전달) 과정을 설명 드리겠습니다.



위 설명 중에 궁금한 부분이 있으신 분들은 아래 Comment에 글 남겨 주세요. 따뜻한 격려 댓글도 대환영 입니다~* ^^

본 글을 프린트하고 싶으시면 로그인 후 우측 상단에 "프린트" 버튼 꾸욱~ 누르세요.

 

 

 

 

 

 

출처 : http://www.netmanias.com/ko/?m=view&id=blog&no=5515

 

 

 

 

 

 

'Skills > Network' 카테고리의 다른 글

Pcap 을 이용한 패킷캡쳐응용  (0) 2014.05.09
Tcp 3-way Hand shaking  (0) 2014.04.22
L3 Switch 구조에 대한 이해 (Understanding of the L3 Switch)  (0) 2014.04.16
스위치  (0) 2014.04.09
L3 스위치  (0) 2014.04.09

댓글