| 리포트 | 기술문서 | 테크-블로그 | 원샷 갤러리 | 네트워크/통신 뉴스 | 기술자료실 | 자유게시판      한국 ICT 기업 총람 |

제품 검색

|

통신 방송 통계

 
 
 
섹션 5G 4G LTE C-RAN/Fronthaul Gigabit Internet IPTV/UHD IoT SDN/NFV Wi-Fi Video Streaming KT SK Telecom LG U+ OTT Network Protocol CDN YouTube Data Center
 
Private 5G | Edge 넷매니아즈 Private 5G 분석글 KT SK Telecom Verizon AT&T Vodafone DT Telefonica China Mobile Optage NEC Microsoft AWS    
HOT!!! Ericsson Nokia Huawei Samsung Mavenir Affirmed Metaswitch Athonet Altiostar Airspan Kyocera Apresia   일본 Local 5G 전개 현황
 
스폰서채널 |

 

  스폰서채널 서비스란?
2편: IP 라우터의 패킷 포워딩 과정
Part 2: IP Router Packet Forwarding Process
June 13, 2012 | By 유창모 (cmyoo@netmanias.com)
코멘트 (15)
18

지난 시간에 이어 오늘은 라우터 내부의 IP 패킷 전달 로직에 대해서 설명드리도록 하겠습니다.

 

     1편: 라우터 구조 소개 

     2편: IP 라우터의 패킷 포워딩 과정 (오늘 글)

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

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

 

 

Network Topology

 

패킷 전달 과정 설명을 위한 망도(Network Topology)를 아래 좌측과 같이 그려 보았습니다.

라우터 R1을 중심으로 하단 ge1/1 ~ ge1/4 포트를 통해 서버가 연결되어 있고, 상단 ge2/1, ge2/2 포트에 라우터 R2, R3가 연결되어 있습니다. 그리고 R2에는 100.1.1.0/24 네트워크가, R3에는 200.1.1.0/24 네트워크가 연결되어 있습니다.

 

 

 

오늘 설명드릴 패킷 흐름은 서버 SVR1에서 R1, R2를 거쳐 100.1.1.0/24 네트워크로 패킷이 전달되는 과정이며, 그 흐름상에 각 장비의 IP 주소와 MAC 주소는 아래와 같습니다. 

 

 Server/Router   Port 이름  MAC 주소  IP 주소  비고
 SVR1  lan1  m1  1.1.1.10/24  R1과 연결
 R1   ge1/1  a1  1.1.1.1/24  SVR1과 연결
 ge2/1  a5  20.1.1.2/30  R2와 연결
 R2  ge1/1  b2  20.1.1.1/30  R1과 연결

 

 

1. OSPF 프로토콜을 통해 RIB/FIB에 라우팅 엔트리 인스톨

 

 

R1은 아래와 같은 과정을 통해 RIB/FIB에 라우팅 엔트리를 인스톨 합니다.

 R1은 OSPF neighbor인 R2, R3와 OSPF LSA(라우팅 정보)를 주고 받고, (OSPF를 통한 라우팅 정보 배우기는 여기여기를 클릭)

 그 정보를 LSDB(Link State Data Base)에 모두 저장합니다.

 OSPF의 Forwarding Strategy는 "Cost가 작은 경로가 장땡이다!" 입니다. 따라서 SPF(Shortest Path First) Calculation을 통해 각 목적지로 가기 위한 최단 경로(Cost가 가장 작은 경로) 계산을 수행하고,

 그 결과(최단 경로 라우팅 엔트리들)를 RIB에 인스톨합니다.

 RIB에 인스톨된 라우팅 엔트리는 모든 Line Card의 FIB로 복사됩니다.

 

그 결과의 예로 RIB/FIB에는 "(1) 목적지 1.1.1.0/24는 R1과 바로 연결되어 있고 출력포트(OIF: Outgoing InterFace)는 ge1/1이며, (2) 목적지 100.1.1.0/24로 가기 위해서는 R2(20.1.1.1)를 Next Hop으로 하고 출력포트는 ge2/1"라는 정보가 인스톨 됩니다.

 

여기서 한가지. 100.1.1.0/24와 200.1.1.0/24에 대한 라우팅 엔트리는 위 설명의 절차에 따라(OSPF에 의해서) RIB/FIB에 인스톨 되며, 나머지 라우팅 엔트리는 장비 운영자가 Rotuer의 CLI를 통해 인터페이스(포트)에 IP 주소를 설정(예. interface ge1/1에 1.1.1.1/24 설정) 할 때 RIB/FIB에 인스톨 됩니다.

 

 

2. 단말(서버)에서 라우터 R1의 MAC 정보 배우기 (ARP 테이블 채우기)

 

 

 이제 SVR1에서 목적지를 100.1.1.1로 하는 패킷을 보내려 합니다. (Destination IP address = 100.1.1.1)

 SVR1의 라우팅 테이블을 참조하였더니 그 결과는 Default Route(0.0.0.0/0)에 매칭되어 Gateway가 1.1.1.1(R1)이고 출력포트는 lan1입니다.

여기서 잠깐! 보통 단말(우리가 사용하는 PC)은 DHCP를 통해 IP 주소를 얻어 오는 과정에서 Default Route에 대한 Gateway IP 주소를 함께 얻어 오게 되고(여기 클릭), 서버의 경우 관리자가 서버의 IP 주소 및 Default Route에 대한 Gateway IP 주소를 직접 설정합니다.

 해당 출력포트(lan1)로 패킷을 전달하기 전에 SVR1은 자신의 ARP Table을 참조합니다. 이는 Gateway 1.1.1.1에 대한 MAC 주소를 알아야 패킷을 보낼 수 있기 때문입니다. (L2(Link Layer)가 Ethernet인 환경에서는 항상 패킷 전달시 송신자(SVR1)와 수신자(R1)의 MAC 주소가 각각 Ethernet Header의 Source MAC address와 Destination MAC address 필드에 들어가야 합니다.) 그런데 ARP Table에 1.1.1.1에 대한 MAC 주소가 없습니다 (ARP miss).

 따라서 SVR1은 1.1.1.1에 대한 MAC 주소를 얻어 오기 위해 lan1 포트로 ARP Request 패킷을 보내고,

 ge1/1 포트로 ARP Request를 수신한 R1은 그 응답으로 ARP Reply(1.1.1.1에 대한 MAC 주소는 a1)를 SVR1으로 보냅니다.

 이제 SVR1은 자신의 ARP Table에 1.1.1.1에 대한 MAC 주소 a1를 저장합니다.

 

 

3. 단말(서버)에서 라우터 R1으로 첫번째 패킷 송신

 

 

 이제 SVR1은 Gateway 1.1.1.1에 대한 MAC 주소 a1을 알았으니 출력포트 lan1을 통해 목적지 주소 100.1.1.1인 패킷을 보냅니다. 그 패킷은 다음과 같이 구성됩니다.

      [Ethernet Header] Destination MAC 주소= a1(R1의 MAC 주소), Source MAC 주소 = m1(SVR1의 MAC 주소)

      [IP Header] Destination IP 주소 = 100.1.1.1, Source IP 주소 = 1.1.1.10(SVR1의 IP 주소)

 이 패킷은 R1의 Line Card #1의 포트 ge1/1을 통해 수신되고, 잠시(FIB lookup 시간 동안만) Ingress Packet Buffer에 저장됩니다.

 그런 후 Packet Processor가 Destination IP 주소 100.1.1.1에 대한 FIB lookup(LPM: Longest Prefix Match)을 수행하여 이 패킷의 Next Hop이 20.1.1.1이고 출력포트가 ge2/1인 것을 알게됩니다.

 이제 Packet Processor는 수신 패킷 앞에 Internal Header를 붙여 Switch Module로 전달합니다. Internal Header에는 벤더 구현에 따라 여러가지 정보가 들어갈 수 있는데요, 여기서는 개념 이해를 위해 2가지만 들어간다고 표현하였습니다. 즉, (1) 이 패킷을 수신할 Line Card/출력포트 정보 = ge2/1와 (2) 이 패킷을 수신 할 Next Hop (Router) 주소 정보 = 20.1.1.1입니다.

 Switch Module을 거쳐 이 패킷은 Line Card #2의 Egress Packet Buffer에 저장됩니다.

 Line Card #2의 Packet Processor는 ARP Table을 lookup하여 Next Hop 20.1.1.1에 대한 MAC 주소가 있는지 봅니다.

 이론! ARP Table에 없습니다. 따라서 Packet Processor는 ARP Miss Event(20.1.1.1의 MAC 주소가 없어요~)를 Control Module로 전달합니다.

 본 Event를 수신한 Control Module은 ge2/1 포트로 ARP Request 패킷을 보내고, R2로 부터 ARP Reply 패킷을 수신합니다.

 그런 후 Control Module은 자신의 ARP Table에 20.1.1.1에 대한 MAC 주소 b2를 저장하고,

 ARP Miss Event를 보냈던 Line Card #2의 ARP Table에 그 정보를 전달하여 저장하도록 합니다. (다른 Line Card로는 전달하지 않음)

 이제 Line Card #2는 Next Hop 20.1.1.1에 대한 MAC 주소(b2)를 알게 되었으니 Egress Packet Buffer에서 패킷을 꺼내어 ge2/1 포트로 전달하면 됩니다. 패킷 전달시 Egress Packet Processor는 이미 설정된 QoS 정책(Scheduling Algorithm)에 따라 이 패킷을 바로 보낼 수도 있고 아니면 다른 우선순위가 높은 패킷으로 인해 잠시 Egress Packet Buffer에 대기시킬 수도 있습니다(여기 클릭). R1이 R2로 전달하는 패킷 구성은 다음과 같습니다.

      [Ethernet Header] Destination MAC 주소 = b2(R2의 MAC 주소), Source MAC 주소 = a5(R1의 MAC 주소)

      [IP Header] Destination IP 주소 = 100.1.1.1, Source IP 주소 = 1.1.1.10(SVR1의 IP 주소)

 

참고 사항 두가지!

첫째, Line Card는 무엇보다 Wire-speed 패킷 포워딩이 중요하며, 따라서 ARP Miss와 같은 예외 처리(Exceptional Event)는 Control Module이 담당하게 합니다.

둘째, Ingress Packet Buffer는 FIB lookup 시간 동안(순식간!) 패킷을 저장하기 위한 곳으로 그 크기가 매우 작은 반면(수백 Kbyte), Egress Packet Buffer는 Congestion 발생시에 QoS 정책에 따라 패킷이 대기하고 있어야 하는 곳이므로 버퍼 크기가 상대적으로 큽니다(수 Mbyte)

 

4. 단말(서버)에서 라우터 R1으로 두번째 패킷 송신

 

 

 이제 SVR1에서 목적지 100.1.1.에 대한 두번재 패킷을 송신합니다. 

②③④⑤ 위의 설명과 동일하므로 생략하겠습니다.

 Line Card #2의 Packet Processor가 ARP Table을 참조하여 그 결과로 Next Hop 20.1.1.1에 대한 MAC 주소 b2를 알게 되었습니다.

 따라서 QoS 정책(Scheduling Algorithm) 적용을 받은 후, Egress Packet Buffer에서 그 패킷을 꺼내어 ge2/1 포트로 전달합니다. R1에서 R2로 전달되는 패킷 구성은 위와 동일합니다.

      [Ethernet Header] Destination MAC address = b2(R2의 MAC 주소), Source MAC address = a5(R1의 MAC 주소)

      [IP Header] Destination IP address = 100.1.1.1, Source IP address = 1.1.1.10(SVR1의 IP 주소)

 

송진우 2012-06-13 13:20:41
완전 도움 되었습니다. 감사합니다. (꾸뻑~)
김기태 2012-06-15 09:33:52
상세한 동작 원리와 과정!! 이런 자료 완소입니다~ : )
민경진 2012-06-19 14:10:07
소중한 정보 감사합니다 ^^
김상현 2012-06-22 14:31:26
좋은 자료 잘봤습니다
조득희 2012-08-21 14:50:00
많은 도움이 되었습니다.
감사합니다.
김진수 2013-02-21 17:13:38
대박이네요 정말
은지숙 2014-04-04 16:39:28
굉장히 자세한 설명이라 많은 도움이 됩니다. 조금 더 궁금한 부분이 있습니다.
"⑧ 본 Event를 수신한 Control Module은 ge2/1 포트로 ARP Request 패킷을 보내고," <- 이 부분에서 CM이 ARP request를 보내면 패킷은 CM -> line card #2의 Packet Processor -> line card #2의 Egress Packet Buffer -> ge2/1 포트 이렇게 거쳐 가게 되는게 맞나요? 아니면, CM -> ge2/1 포트 이렇게 거쳐 가게 되는게 맞나요? 보라색 선이 잘 이해가 안돼서요.
Netmanias 2014-04-05 14:19:48
안녕하세요? 은지숙님.
ARP Request 패킷은 Ether Type = 0x0806으로 IP 헤더가 없습니다. 따라서 이 패킷은 line card의 packet processor가 FIB lookup을 통해 송출 포트를 결정할 수 없는 패킷입니다. (참고 블로그: https://www.netmanias.com/ko/?m=view&id=blog&tag=187&no=5402)
따라서 지난 번 설명 드린바와 같이 (OSPF LSA와 같이)
1. CM이 송출포트 ge2/1를 명시하여 line card #2의 packet processor로 전달하고
2. line card #2의 packet processor는 FIB lookup 없이 egress packet buffer를 거쳐 ge2/1 포트로 송출합니다.
신성한 2016-01-28 21:39:14

정말 많은 도움 감사합니다 이해가 쏙쏙됩니다

chofox78 2017-06-29 11:51:28

좋은 글 감사합니다.

SecurityMan 2017-08-07 17:03:10

위 3. 단말(서버)에서 라우터 r1으로 전송시 궁금한 사항이 있습니다.
동작 과정 4번에 internal header라고 NH=20.1.1.1,OIF=ge2/1이부분이 실제로 내부에서 붙어지는 헤더인가요.?
실제 패킷이 line card1쪽으로 들어오면 source mac이 svr1맥주소, destination mac은 line card mac주소 ,source ip svr1주소 ,destination ip 100.1.1.1이게 되며, 라우터 이동시 source mac, destination mac은 구간구간 별로 바껴도 ip는 변경 되지 안잖아요.
그렇게 되면 line card2에서도 next hop경로를 확인 하기 위해 routing(FIB) 테이블 확인 하고 next ip의 주소를 arp table에서 확인하고 destination mac주소를 next hop 맥주소로 변경하여 전달 주는것 아닌가요.?

질물입니다.

1. 4번에 internal header라고 NH=20.1.1.1,OIF=ge2/1이부분이 실제로 내부에서 붙어지는 헤더인가요.?

2. 패킷이 line card2번 으로 넘어왔을시에 FIB를 확인 하지 않는건가요.? 그렇다면 그이유는 linecard 1에서 FIB를 참조해서 근건지요.?
3. 동작과정 6,7,8,9,10 과정은 이론상 단계별로 이루어지는 과정이지 실제로는 링크 연결시 Garp과정으로 미리 next hop에 관한 ip를 학습해놓은 상태라 5번 다음 바로 11번으로 넘어 가는게 맞는건가요.?

 

답변 부탁드리겠습니다.

 

Kims 2017-10-31 13:59:07

1. Switch Module에서 Switching을 하기 위한 정보인거 같고, 벤더별로 차이가 있다고 적혀있네요.

2. Switch Module을 통해서 오는 Packet은 이미 Internal Header에 출력포트와 IP가 있고 그 정보를 이용해서 Egress Packet Buffer를 통해 외부로 전달할 수 있네요.

3. ARP 과정은 Packet Data을 내보낼 때, 물리적 주소(MAC)을 알아야 내보냄으로 ARP 절차를 수행하는 것입니다. 노트북 cmd 창에서 arp -a 쳐보시면 네트워크 상에 물리적으로 연결되어 있다고 해서 arp cache에 모두 등록되어 있지 않지요.

 

잘못 된 부분이 있으면 정정해주시면 감사하겠습니다.

DS 2018-03-16 15:36:08

대단하십니다. 많은 도움이 되었습니다!!!!!

yhgwon0417 2019-07-19 10:52:40

안녕하세요, 궁금한게 있는데요.

R1에서 LINE CARD 1&2 에서

------------------------------------

100.1.1.0/24     20.1.1.1      ge2/1

------------------------------------

라는 정보가 있다면 굳이 ARP Request를 통해서 맥주소를 몰라도 패킷을 보낼 수 있을 거라고 생각이 드는데, 굳이 ARP Table을 채우는 이유가 궁금해요....ㅠ

 

지나가던 2020-08-19 15:11:52

ether 통신시 맥 정보 필요합니다.

Thank you for visiting Netmanias! Please leave your comment if you have a question or suggestion.
View All (993)
5G (74) AI (5) ALTO (1) AR (2) ARP (6) AT&T (1) Akamai (5) Authentication (5) BT (1) Backhaul (2) Big Data (2) Bridging (5) C-RAN/Fronthaul (17) CDN (20) CIoT (2) CPRI (6) Carrier Aggregation (5) Charging (2) China Mobile (2) Cisco (6) CoMP (3) Comcast (1) DHCP (6) DNS (15) Data Center (15) EDGE (14) EMM (1) EPS Bearer (7) Ethernet (3) FTTH (8) GSLB (5) Gigabit Internet (17) Google (17) Google Global Cache (8) Google TV (1) HLS (5) HTTP (5) HTTP Adaptive Streaming (7) HTTP Progressive Download (2) Handover (5) Huawei (1) IGMP (3) IP (6) IP Allocation (8) IP Routing (20) IPSec (4) IPTV (25) IoST (2) IoT (50) KT (45) Korea (8) Korea ICT Vendor (1) L3 Switch (5) LG U+ (24) LTE (99) LTE-A (10) LTE-A Pro (1) LTE-M (1) LTE-U (3) LoRa (5) MEC (14) MPLS (3) MWC 2013 (1) MWC 2015 (3) MWC 2016 (2) MWC 2017 (1) Mobile IPTV (1) Multi-Screen (1) Multicast (2) NAT (9) NB-IoT (6) NTT Docomo (1) Netflix (5) Network Protocol (49) Network Slicing (3) OSPF (3) OTT (20) Operator CDN (1) P2P (3) PS-LTE (3) Pooq (2) QoS (5) RCS (1) RRH (1) Request Routing (3) SD-WAN (8) SDN/NFV (37) SK Broadband (1) SK Telecom (38) Samsung (2) Security (8) Self-Driving (3) Shortest Path Tree (2) Small Cell (3) Spectrum Sharing (1) TAU (2) Transparent Caching (9) UHD (7) VLAN (2) VPN (3) VR (3) Video Streaming (22) VoLTE (1) VoWiFi (1) WAN Optimization (1) Wi-Fi (30) WiBro(WiMAX) (2) YouTube (16) eICIC (1) eMBMS (1) ePDG (6) u+ tv G (4) 로컬 5G (1)

 

 

     
         
     

 

     
     

넷매니아즈 회원 가입 하기

2020년 1월 현재 넷매니아즈 회원은 49,000+분입니다.

 

넷매니아즈 회원 가입을 하시면,

► 넷매니아즈 신규 컨텐츠 발행 소식 등의 정보를

   이메일 뉴스레터로 발송해드립니다.

► 넷매니아즈의 모든 컨텐츠를 pdf 파일로 다운로드

   받으실 수 있습니다. 

     
     

 

     
         
     

 

 

비밀번호 확인
코멘트 작성시 등록하신 비밀번호를 입력하여주세요.
비밀번호