[Network Protocol] L3 Switch 구조에 대한 이해

by 파시스트 posted Oct 27, 2015
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄

안녕하세요? NetmaniasTalk입니다.


아래 글은 예전에 Netmanias Magazine에 기고했던 글의 일부로써, L3 Switch(예. Cisco 6500 series, Juniper MX series)의 구조에 대한 설명입니다.




Protocol Reference Model


 아래 그림은은 네트워크 장비의 기능을 크게 3개의 기능 블록으로 분리해 놓은 것이다.  


  • Control Plane: 네트워크 장비로 유입되는 패킷이 올바른 물리적 포트로 출력 될 수 있도록, 경로를 설정, 관리 및 해제하는 기능(Routing, Signaling)을 수행한다. 
  • Data Plane(User Plane): 수신된 패킷의 L2, L3 헤더 필드를 검사하여, Control Plane에서 의도 했던 출력 포트로 패킷을 송신하는 기능을 담당하며, 패킷 처리 과정에서 Packet Modification, QoS, Filtering등의 기능을 함께 수행하게 된다. 
  • Management Plane: Control Plane 및 Data Plane의 동작 상태 및 성능을 관리하는 기능을 담당한다. 




a.gif


 


 




본 3개의 Plane은 실제 네트워크 장비에서 2개의 블록으로 매핑된다.
  • Control Point(Non-Steady State Function): 보통 CPU 또는 Host Processor라 불리기도 하는, Control Plane 기능과 Management Plane의 일부 기능(SNMP, CLI)을 수행하는 블록이다. (이하 CP라 칭함)
  • Network Processor(Steady State Function): Data Plane과 Management Plane의 일부 기능(상태 및 성능 관리 정보(MIB)를 Control Point의 Management Plane에 제공)을 수행하는 블록이다. (이하 NP라 칭함)

Control Plan


b.gif





 


 


  • Layer 3 IP Protocols
    • Basic Protocol Stack(IPv4, ARP/RARP, ICMP, TCP, UDP)
      • 대부분의 IP 및 MPLS 시그널링 프로토콜은 IP, IP/TCP 또는 IP/UDP 헤더로 encapsulation되어 송수신 되기 때문에 기본적인 IP/TCP/UDP stack을 가지고 있다.
      • NP가 ICMP 패킷을 수신하면 본 패킷을 CP로 전달하여, Control Plane의 ICMP 블록에서 이 패킷을 처리한다.
      • NP가 IP Forwarding을 하기 위해서는 Next Hop의 MAC 주소를 알아야 하며, 본 기능은 Control Plane에서 처리하기 때문에 ARP 블록이 존재한다.
    • Unicast IP Routing Protocols(RIP, OSPF, BGP4, IS-IS, VRRP): 네트워크 장비간에 라우팅 정보를 주고 받아 데이터 패킷의 경로를 결정하고 그 결과를 NP에 존재하는 IP Forwarding Table에 기록하여, NP가 CP의 관여 없이 패킷을 포워딩 할 수 있도록 한다. 이 IP Forwarding Table은 CLI에 의해서 관리(Static Route라 함)될 수도 있다.
    • Multicast IP Routing Protocols(IGMP, DVMRP, PIM-SM, PIM-DM): 멀티캐스트 패킷에 대한 경로를 결정하는 프로토콜로써 NP의 IP Multicast Table에 그 결과를 기록하며 이 역시 CLI에 의해서 관리 될 수도 있다.
  • Layer 2 Ethernet Protocols
    • GVRP: 스위치 장비(Destination MAC 주소를 참조하여 패킷을 송신하는 장비)간에 VLAN Membership 정보를 주고 받는데 사용된다.
    • GMRP: 스위치 장비간에 멀티캐스트 그룹 정보를 주고 받는데 사용된다.
    • STP/RSTP/MSTP: 루프가 존재하는 이더넷 망을 루프가 없는 하나의 예측 가능한 Tree Topology로 구성함과 동시에, 일부 링크 장애 발생시에 대체 경로를 자동으로 찾아 망을 스스로 복구할 수 있는 기능을 제공한다.
    • LACP: 하나 이상의 이더넷 포트들을 하나의 논리적인 포트로 묶어 동작시킴으로써 대역폭을 증가시키는 기능을 Link Aggregation(Data Plane에서 담당)이라 하며, 이를 위해서 스위치간 주고 받는 프로토콜이 LACP이다.
    • IGMP Snoop: 호스트(단말)와 라우터간 주고 받는 IGMP 패킷을 스위치가 가로채(NP에서 CP로 IGMP Packet Redirection) 이를 해석하여, 포트 별 Multicast Group Membership을 NP의 L2 Multicast Table에 기록하는 기능을 담당한다. 이렇게 함으로써 스위치가 불필요하게 멀티캐스트 패킷을 모든 포트로 브로드캐스팅 시킴을 방지할 수 있다.
    • Port-based Network Access Control(IEEE 802.1x): 외부의 인증 서버(RADIUS Server)를 통해 인증된 사용자(Host)에게만 스위치의 Physical Port 사용권을 부여하여 Network Access를 허용하는 프로토콜이다.
  • MPLS Signaling Protocols(LDP, CR-LDP, RSVP-TE): MPLS 망의 경로 설정을 위한 Label 할당 및 분배 기능을 담당하며(LDP), 이와 더불어 Traffic Engineering 기능 지원을 위해서 Explicit Route, QoS 등의 기능을 제공한다(CR-LDP, RSVP-TE).


 




 


 


Data Plan


c.gif




  • Packet Decoder: 수신된 패킷의 Layer 2(Ethernet Header), Layer 3(IP Header) 포맷을 인식하는 기능을 담당하는 블록이다. 
  • Address Lookup: NP의 가장 핵심적인 부분으로서, 가장 중요한 임무는 수신된 패킷을 어느 출력 포트로 내보낼 것인지 결정 하는 것이며, 이를 위해서 다음 기능을 수행하게 된다.
    • Layer 2 Bridging: Destination MAC Address를 참조하여 출력 포트 결정
    • Layer 2.5 MPLS Switching: MPLS Label을 참조하여 출력 포트 결정
    • Layer 3 IP Forwarding: Destination IP Address를 참조하여 출력 포트 결정
  • Multi-Field Classifier: 수신된 패킷의 L1~L4 정보를 참조(classification)하여 누가(source) 누구(destination)에게 어떤 응용(TCP/UDP Port number) 패킷을 전송하는지 Flow를 구별한 후에, 망 정책에 근거하여 다양한 부가 기능(QoS, Filtering, Redirection 등)을 제공한다.
  • Packet Editor: 수신된 패킷의 내용을 변형하는 기능을 담당하는 블록으로, Ethernet CRC 계산(물론 NP가 수행) 결과를 Ethernet Trailer에 써주는 기본적인 기능부터 VLAN Tag Insert/Delete/Update, MPLS Label Push/Pop/Swap 등의 다양한 Packet Modification 기능을 담당하다.
  • Traffic Manager: QoS를 담당하는 블록으로 NP의 Congestion Avoidance 및 Congestion Management 기능을 제공한다.


위 설명을 동영상으로 시청하고 싶으시면  넷매니아즈 e-Learning, "Per-Hop Packet Proccessing" 참조


출처 - http://blog.naver.com/netmaniascom/80144308664






Articles

1 2 3 4 5 6 7