KR20180040356A - 소프트웨어 정의 네트워킹에서의 목적지 기반 패킷 전송 제어 방법 및 장치 - Google Patents

소프트웨어 정의 네트워킹에서의 목적지 기반 패킷 전송 제어 방법 및 장치 Download PDF

Info

Publication number
KR20180040356A
KR20180040356A KR1020160132131A KR20160132131A KR20180040356A KR 20180040356 A KR20180040356 A KR 20180040356A KR 1020160132131 A KR1020160132131 A KR 1020160132131A KR 20160132131 A KR20160132131 A KR 20160132131A KR 20180040356 A KR20180040356 A KR 20180040356A
Authority
KR
South Korea
Prior art keywords
packet
destination
flow rule
network device
network equipment
Prior art date
Application number
KR1020160132131A
Other languages
English (en)
Other versions
KR101855742B1 (ko
Inventor
박현우
황인욱
정재웅
Original Assignee
아토리서치(주)
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 아토리서치(주) filed Critical 아토리서치(주)
Priority to KR1020160132131A priority Critical patent/KR101855742B1/ko
Publication of KR20180040356A publication Critical patent/KR20180040356A/ko
Application granted granted Critical
Publication of KR101855742B1 publication Critical patent/KR101855742B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/76Routing in software-defined topologies, e.g. routing between virtual machines
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/18Loop-free operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/38Flow based routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/48Routing tree calculation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/15Flow control; Congestion control in relation to multipoint traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/22Traffic shaping
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/50Routing or path finding of packets in data switching networks using label swapping, e.g. multi-protocol label switch [MPLS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 발명은 소프트웨어 정의 네트워킹 환경에서 목적지 기반으로 패킷 전송을 제어하는 방법 및 장치에 관한 것이다. 이러한 목적을 달성하기 위한 본 발명은 소프트웨어 정의 네트워킹 환경에서 컨트롤러 서버가 패킷의 전송을 제어하는 방법에 있어서, 네트워크 장비로부터 패킷-인 메시지를 수신하는 단계, 상기 패킷의 목적지 호스트에 연결된 네트워크 장비를 최상위 노드로 하는 패킷 전달 경로 트리를 생성하는 단계, 상기 패킷 전달 경로 트리를 이용하여 상기 네트워크 장비를 포함하는 하나 이상의 네트워크 장비에 대한 목적지 기반 플로우 룰을 생성하는 단계, 상기 목적지 기반 플로우 룰을 상기 하나 이상의 네트워크 장비에 전송하는 단계를 포함하며, 상기 목적지 기반 플로우 룰은 상기 패킷 전달 경로 트리에 따라 상기 하나 이상의 네트워크 장비가 자신의 부모 노드로 패킷을 전송하도록 규정한 것을 일 특징으로 한다. 이러한 본 발명에 의하면, 스위치의 플로우 테이블 관리 및 패킷 처리의 효율성을 향상시키고 컨트롤러 부하를 줄일 수 있다.

Description

소프트웨어 정의 네트워킹에서의 목적지 기반 패킷 전송 제어 방법 및 장치{METHOD AND APPARATUS FOR DESTINATION BASED PACKET FORWARDING CONTROL IN SOFTWARE DEFINED NETWORKING}
본 발명은 패킷 전송 제어 방법 및 장치에 관한 것으로, 보다 자세하게는 소프트웨어 정의 네트워킹 환경에서 목적지 기반으로 패킷 전송을 제어하는 방법 및 장치에 관한 것이다.
SDN(Software Defined Networking, 소프트웨어 정의 네트워킹, 이하 SDN이라 칭함) 기술은 네트워크의 모든 네트워크 장비를 지능화된 중앙관리시스템에 의해 관리하는 기술을 의미한다. SDN 기술에서는 기존 하드웨어 형태의 네트워크 장비에서 자체적으로 수행하는 패킷 처리와 관련된 제어 동작을 소프트웨어 형태로 제공되는 컨트롤러가 대신하여 처리하게 함으로써, 기존의 네트워크 구조보다 다양한 기능을 개발하고 부여할 수 있다는 장점을 갖는다.
SDN 시스템은 일반적으로 전체 네트워크를 제어하는 컨트롤러 서버와, 상기 컨트롤러 서버에 의해 제어되며 패킷을 처리하는 복수의 오픈플로우 스위치와, 오픈플로우 스위치의 하위 계층에 해당하는 호스트를 포함하여 구성된다. 여기에서 오픈플로우 스위치는 패킷의 송수신 기능만을 담당하게 되고, 패킷의 경로 설정, 관리 및 제어는 모두 컨트롤러 서버에서 이루어진다. 즉, 네트워크 장비를 이루는 Data Plane과 Control Plane을 분리하는 것이 SDN 시스템의 기본 구조라 볼 수 있다.
오픈플로우 스위치에는 패킷을 규정 및 처리하고, 패킷에 관련된 통계 정보를 포함하는 하나 이상의 플로우 테이블(Flow table)이 존재하며, 플로우 테이블은 대개 TCAM(Ternary Content Addressable Memory)을 사용하여 지원된다.
플로우 테이블은 패킷 처리를 규정하는 플로우 룰(Flow Rule)(또는 플로우 엔트리(Flow Entry)로 구성되는데, 오픈플로우 스위치에서는 하드웨어적으로 플로우 엔트리를 구현해야 하므로, 플로우 엔트리가 많아져 TCAM과 같은 하드웨어의 지원 범위를 넘어가면 속도가 급격히 감소하게 되는 문제가 있다.
따라서, SDN 환경에서는 플로우 엔트리를 줄이는 것이 매우 중요한 이슈이며, 이는 오픈플로우 스위치의 패킷 처리의 효율성과 직결되는 문제이기도 하다.
본 발명은 전술한 문제를 해결하기 위한 것으로, 스위치의 플로우 테이블 관리 및 패킷 처리의 효율성을 향상시키고 컨트롤러 부하를 줄일 수 있는 패킷 전달 제어 방법 및 장치를 제공하는 것을 일 목적으로 한다.
또한, 본 발명은 트래픽 스티어링(Traffic Steering), 접근 제어 목록(Access Control List), QoS(Quality of Service) 정책 기반의 트래픽 관리가 가능한 패킷 전달 제어 방법 및 장치를 제공하는 것을 다른 목적으로 한다.
또한, 본 발명은 멀티테넌시(Multi-Tenancy)를 지원하며, 네크워크에서의 루프(Loop) 발생을 방지할 수 있는 패킷 전달 제어 방법 및 장치를 제공하는 것을 다른 목적으로 한다.
이러한 목적을 달성하기 위한 본 발명은 소프트웨어 정의 네트워킹 환경에서 컨트롤러 서버가 패킷의 전송을 제어하는 방법에 있어서, 네트워크 장비로부터 패킷-인 메시지를 수신하는 단계, 상기 패킷의 목적지 호스트에 연결된 네트워크 장비를 최상위 노드로 하는 패킷 전달 경로 트리를 생성하는 단계, 상기 패킷 전달 경로 트리를 이용하여 상기 네트워크 장비를 포함하는 하나 이상의 네트워크 장비에 대한 목적지 기반 플로우 룰을 생성하는 단계, 상기 목적지 기반 플로우 룰을 상기 하나 이상의 네트워크 장비에 전송하는 단계를 포함하며, 상기 목적지 기반 플로우 룰은 상기 패킷 전달 경로 트리에 따라 상기 하나 이상의 네트워크 장비가 자신의 부모 노드로 패킷을 전송하도록 규정한 것을 일 특징으로 한다.
또한 본 발명은, 소프트웨어 정의 네트워킹 환경에서 네트워크 장비가 패킷을 전송하는 방법에 있어서, 상기 네트워크 장비에 저장된 플로우 테이블(Flow table)에서 수신된 패킷의 목적지 호스트에 대응되는 목적지 기반 플로우 룰을 확인하는 단계, 상기 목적지 기반 플로우 룰에 따라 상기 패킷을 처리하는 단계를 포함하며, 상기 목적지 기반 플로우 룰은 상기 목적지 호스트에 연결된 네트워크 장비를 최상위 노드로 하는 패킷 전달 경로 트리에 따라, 상기 네트워크 장비의 부모 노드로 상기 패킷을 전송하도록 규정된 액션(action)을 포함하는 것을 일 특징으로 한다.
또한, 본 발명은 소프트웨어 정의 네트워킹 환경에서 패킷의 전송을 제어하는 컨트롤러 서버에 있어서, 네트워크 장비 및 호스트와 통신하는 통신부, 상기 네트워크 장비로부터 패킷-인 메시지를 수신하면, 상기 패킷의 목적지 호스트를 최상위 노드로 하는 패킷 전달 경로 트리를 생성하고, 상기 패킷 전달 경로 트리를 이용하여 상기 네트워크 장비의 부모 노드로 패킷을 전송하도록 규정한 목적지 기반 플로우 룰을 생성하고, 이를 상기 네트워크 장비에 전송하는 제어부를 포함하는 것을 일 특징으로 한다.
전술한 바와 같은 본 발명에 의하면, 스위치의 플로우 테이블 관리 및 패킷 처리의 효율성을 향상시키고 컨트롤러 부하를 줄일 수 있다.
또한, 본 발명에 의하면 트래픽 스티어링(Traffic Steering), 접근 제어 목록(Access Control List), QoS(Quality of Service) 정책 기반의 트래픽 관리가 가능하다.
또한, 본 발명에 의하면 네크워크에서의 루프(Loop) 발생을 방지할 수 있다.
도 1은 본 발명의 일 실시 예에 의한 소프트웨어 정의 네트워킹 환경을 설명하기 위한 도면,
도 2는 본 발명의 일 실시 예에 의한 패킷 전송 제어 방법을 설명하기 위한 흐름도,
도 3은 본 발명의 일 실시 예에 의한 패킷 전달 경로 트리 생성 방법을 설명하기 위한 도면,
도 4는 본 발명의 일 실시 예에 의한 패킷 전달 경로 트리를 설명하기 위한 도면,
도 5는 본 발명의 일 실시 예에 의한 패킷 전송 제어 방법을 설명하기 위한 도면
도 6은 본 발명의 일 실시 예에 따른 플로우테이블 관리 효율성 증대 효과를 설명하기 위한 그래프,
도 7은 본 발명의 일 실시 예에 의한 트래픽 관리 기능 수행 방법을 설명하기 위한 도면,
도 8은 본 발명의 다른 실시 예에 의한 트래픽 관리 기능 수행 방법을 설명하기 위한 도면,
도 9는 본 발명의 일 실시 예에 의한 성능 보장 기능 수행 방법을 설명하기 위한 도면,
도 10은 본 발명의 일 실시 예에 의한 멀티 테넌트 지원 방법을 설명하기 위한 도면,
도 11은 본 발명의 일 실시 예에 의한 컨트롤러 서버의 구성을 설명하기 위한 도면이다.
전술한 목적, 특징 및 장점은 첨부된 도면을 참조하여 상세하게 후술되며, 이에 따라 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 상세한 설명을 생략한다.
도면에서 동일한 참조부호는 동일 또는 유사한 구성요소를 가리키는 것으로 사용되며, 명세서 및 특허청구의 범위에 기재된 모든 조합은 임의의 방식으로 조합될 수 있다. 그리고 다른 식으로 규정하지 않는 한, 단수에 대한 언급은 하나 이상을 포함할 수 있고, 단수 표현에 대한 언급은 또한 복수 표현을 포함할 수 있음이 이해되어야 한다.
본 명세서에서 사용되는 용어는 단지 특정 예시적 실시 예들을 설명할 목적을 가지고 있으며 한정할 의도로 사용되는 것이 아니다. 본 명세서에서 사용된 바와 같은 단수적 표현들은 또한, 해당 문장에서 명확하게 달리 표시하지 않는 한, 복수의 의미를 포함하도록 의도될 수 있다. 용어 "및/또는," "그리고/또는"은 그 관련되어 나열되는 항목들의 모든 조합들 및 어느 하나를 포함한다. 용어 "포함한다", "포함하는", "포함하고 있는", "구비하는", "갖는", "가지고 있는" 등은 내포적 의미를 갖는바, 이에 따라 이러한 용어들은 그 기재된 특징, 정수, 단계, 동작, 요소, 및/또는 컴포넌트를 특정하며, 하나 이상의 다른 특징, 정수, 단계, 동작, 요소, 컴포넌트, 및/또는 이들의 그룹의 존재 혹은 추가를 배제하지 않는다. 본 명세서에서 설명되는 방법의 단계들, 프로세스들, 동작들은, 구체적으로 그 수행 순서가 확정되는 경우가 아니라면, 이들의 수행을 논의된 혹은 예시된 그러한 특정 순서로 반드시 해야 하는 것으로 해석돼서는 안 된다. 추가적인 혹은 대안적인 단계들이 사용될 수 있음을 또한 이해해야 한다.
또한, 각각의 구성요소는 각각 하드웨어 프로세서로 구현될 수 있고, 위 구성요소들이 통합되어 하나의 하드웨어 프로세서로 구현될 수 있으며, 또는 위 구성요소들이 서로 조합되어 복수 개의 하드웨어 프로세서로 구현될 수도 있다.
이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시 예를 상세히 설명하기로 한다.
도 1은 본 발명의 일 실시 예에 의한 소프트웨어 정의 네트워킹 환경을 설명하기 위한 도면이다. 도 1을 참조하면, 소프트웨어 정의 네트워킹(Software Defined Networking)은 컨트롤러 서버(100), 네트워크 장비(200) 및 호스트(300)를 포함할 수 있다. 네트워크 장비(200)와 호스트(300)는 노드(Node)라고 지칭할 수 있으며, 링크(Link)는 2개의 노드 사이의 연결을 의미할 수 있다.
컨트롤러 서버(100)는 네트워크 장비(200)를 관리하는 기능을 하는 것으로, 복수의 네트워크 장비(200)를 중앙집중형으로 관리 및 제어한다. 구체적으로 컨트롤러 서버(100)는 토폴로지 관리(Topology management), 패킷 처리와 관련된 경로 관리(Path management), 링크 디스커버리(Link discovery), 패킷 흐름인 플로우 관리(Flowmanagement) 등의 기능을 하는 소프트웨어가 탑재된 형태로 구현될 수 있다.
네트워크 장비(200)는 컨트롤러 서버(100)의 제어에 따라 패킷을 처리하는 기능을 한다. 네트워크 장비(200)의 예로는 이동 통신 기지국, 기지국 제어기, 게이트웨이 장비, 유선 네트워크의 스위치, 라우터 등이 있다. 다만 설명의 편의를 위해 이하에서는 네트워크 장비(200)가 오픈플로우 스위치인 경우를 중심으로 설명하고, 동일한 도면 부호를 병기하도록 한다.
소프트웨어 정의 네트워크에서 컨트롤러 서버(100)와 오픈플로우 스위치(200)는 상호간 정보를 주고받아야 하며, 이를 위한 프로토콜로 널리 사용되는 것이 오픈플로우(OpenFlow) 프로토콜이다. 즉, 오픈플로우 프로토콜은 컨트롤러 서버(100)와 오픈플로우 스위치(200)간 서로 통신할 수 있는 표준 규격이다.
보다 구체적으로 설명하면, 오픈플로우 스위치(200)는 크게 소프트웨어 계층과 하드웨어 계층으로 구분된다. 상기 소프트웨어 계층은 보안 채널(Secure Channel)을 통해 컨트롤러 서버(100)와 정보를 교환한다. 상기 보안 채널은 오픈플로우 스위치(200)와 원거리에 위치한 컨트롤러 서버(100) 간 통신 채널이며, 컨트롤러 서버(100)와 오픈플로우 스위치(200)간 교환되는 정보는 암호화된다. 상기 하드웨어 계층에는 패킷을 규정 및 처리하고, 패킷에 관련된 통계 정보를 포함하는 플로우 테이블(Flow table)이 존재한다. 상기 플로우 테이블은 패킷 처리를 규정하는 플로우 룰(Flow Rule)로 구성되며, 상기 플로우 룰은 컨트롤러 서버(100)가 생성하여 오픈플로우 스위치(200)에 전송하는 플로우 모드 메세지(Flow-Mod Message)에 의해 추가, 수정 또는 삭제될 수 있다. 오픈플로우 스위치(200)는 상기 플로우 테이블을 참조하여 패킷을 처리한다.
플로우 테이블을 이루는 각 행을 플로우 엔트리(Flow Entry)라고 칭하며, 플로우 엔트리는 크게 플로우를 정의하는 패킷 헤더 정보(Match Field), 패킷의 처리를 정의하는 동작 정보(Action) 및 플로우별 통계정보(Stats)를 포함할 수 있다.
본 발명의 명세서에서 플로우 룰(Flow rule)은 해당 업계의 통상의 기술자 입장에서 소프트웨어 정의 네트워킹에서 컨트롤러 서버가 적용하는 네트워크 정책을 의미하는 것으로 이해될 뿐 아니라, 컨트롤러 서버에서 생성된 네트워크 정책에 따른 플로우 엔트리를 의미하는 것으로 해석될 수 있음에 유의한다.
호스트(300)는 오픈플로우 스위치(200)의 하위 계층에 해당하는 단말 등을 의미하는 것으로, 클라이언트 및 서버를 통칭하는 의미로 사용될 수 있다. 호스트(300)는 소프트웨어 정의 네트워크를 통해 다른 호스트에 보내기 위한 패킷을 생성하고, 상기 패킷을 네트워크 인터페이스의 포트를 통해 오픈플로우 스위치(200)로 전송할 수 있다.
도 2는 본 발명의 일 실시 예에 의한 패킷 전송 제어 방법을 설명하기 위한 흐름도이다. 소프트웨어 정의 네트워킹 환경에서 네트워크 장비가 호스트 또는 다른 네트워크 장비로부터 패킷을 수신하면(S100), 네트워크 장비는 수신한 패킷에 매칭되는 플로우 룰이 플로우 테이블에 존재하는 지 여부를 판단할 수 있다(S200). 판단 결과, 패킷에 대응되는 플로우 룰이 플로우 테이블에 존재하지 않으면, 네트워크 장비는 패킷-인 메시지(Packet-in Message)를 컨트롤러 서버에 전송할 수 있다(S300).
본 발명의 일 실시 예에서 컨트롤러 서버는 네트워크 장비로부터 패킷-인 메시지를 수신하면(S300), 패킷의 목적지 호스트에 연결된 네트워크 장비를 최상위 노드로 하는 패킷 전달 경로 트리를 생성할 수 있다(S400). 그리고 컨트롤러 서버는 생성된 패킷 전달 경로 트리를 이용하여, 패킷 전달 경로 트리에 포함된 각각의 네트워크 장비가 상기 목적지 호스트에 대해 자신의 부모 노드로 패킷을 전송하도록 규정한 목적지 기반 플로우 룰을 생성하고(S500), 이를 각각의 네트워크 장비에 전송할 수 있다(S600).
도 2에는 패킷-인 메시지를 전송한 네트워크 장비에 목적지 기반 플로우 룰을 전송하는 예시(S600)만 도시되어 있으나, 컨트롤러 서버와 연결된 네트워크 장비 모두에 목적지 기반 플로우 룰을 전송할 수 있다.
컨트롤러 서버가 생성된 목적지 기반 플로우 룰을 네트워크 장비로 전송하면(S600), 네트워크 장비는 수신된 목적지 기반 플로우 룰을 플로우 테이블에 추가할 수 있다(S700). 보다 구체적으로, 단계 S600 및 S700에서의 목적지 기반 플로우 룰은 플로우 모드 메시지(Flow-Mod Message)에 의해 상기 네트워크 장비의 플로우 테이블에 추가 또는 수정될 수 있다.
전술한 단계 S300 내지 S700에 의하여, 이미 네트워크 장비의 플로우 테이블에 단계 S100에서 수신된 패킷에 대한 플로우 룰이 존재한다면, 네트워크 장비는 네트워크 장비에 저장된 플로우 테이블(Flow table)에서 수신된 패킷의 목적지 호스트에 대응되는 목적지 기반 플로우 룰을 확인하고(S800), 저장된 목적지 기반 플로우 룰에 따라 패킷을 처리할 수 있다(S900).여기서 목적지 기반 플로우 룰은 목적지 호스트에 연결된 네트워크 장비를 최상위 노드로 하는 패킷 전달 경로 트리에 따라, 네트워크 장비의 부모 노드로 패킷을 전송하도록 규정된 액션(action)을 포함한다.
이하에서는 도 1, 도 3 및 도 4를 참조하여 본 발명의 일 실시 예에 의한 패킷 전달 경로 트리 생성 방법을 보다 자세하게 설명하기로 한다. 도 3을 참조하면, 단계 S400에서 컨트롤러 서버는 목적지 호스트에 연결된 제 1 네트워크 장비를 루트 노드로 설정하고(S430), 제 1 네트워크 장비와 연결된 제 2 네트워크 장비를 제 1 네트워크 장비의 자식 노드로 설정하고(S450), 제 2 네트워크 장비와 연결된 네트워크 장비 중 노드 설정이 되지 않은 제 3 네트워크 장비를 제 2 네트워크 장비의 자식 노드로 설정하고(S470), 각각의 자식 노드에 대하여 더 이상 자식 노드로 설정 가능한 네트워크 장비가 존재하지 않을 때 까지 단계 S470을 반복함으로써(S490) 패킷 전달 경로 트리를 생성한다.
예를 들어, 도 1과 같이 구성된 네트워크 토폴로지에 있어서, 호스트(300A)가 패킷의 출발지(source), 호스트(300B)가 목적지(destination)인 경우를 가정한다. 호스트(300A)로부터 패킷을 수신한 네트워크 장비(S6)의 플로우 테이블에 상기 패킷에 대한 플로우 룰이 존재하지 않아 컨트롤러 서버(100)에서 네트워크 장비(S6)의 상기 패킷에 대한 플로우 룰을 생성해야 하는 경우, 컨트롤러 서버(100)는 패킷의 목적지인 호스트(300B)에 연결된 네트워크 장비(S2)를 최상위 노드로 하는 패킷 전달 경로 트리를 생성할 수 있다.
도 4를 참조하면, 목적지(300B)와 연결된 S2를 루트 노드로 설정하고(S430), S2와 연결된 S1, S3, S4를 S2의 자식노드로 설정하고, S4와 연결된 네트워크 장비 S2, S5, S6 중에서 S4의 부모 노드인 S2를 제외한 S5 및 S6을 S4의 자식 노드로 설정함으로써 패킷 전달 경로 트리를 생성할 수 있다. 도 1의 실시 예에서 S5와 S6에는 호스트 외에 다른 네트워크 장비는 연결되어 있지 않으므로, 도 1의 토폴로지는 도 4와 같은 패킷 전달 경로 트리에 대응될 수 있다.
전술한 실시 예에서 컨트롤러 서버는 목적지가 호스트(300B)인 패킷에 대하여 S6의 부모 노드인 S4로 패킷을 전송하도록 규정한 목적지 기반 플로우 룰을 생성하여, S6에 전송한다. 또한, 컨트롤러 서버는 S4에게는 S2에 패킷을 전송하도록 규정된 목적지 기반 플로우 룰을 전송할 수 있다.
이하에서는 도 5를 참조하여, 보다 구체적으로 목적지 기반 플로우 룰을 설명하기로 한다. 도 5에서 종래의 출발지/목적지 기반 플로우 룰에 의해 네트워크 장비(200A)에 저장되는 플로우 테이블의 일 실시 예는 아래 [표 1]과 같다. 참고로, 설명의 편의를 위하여 이하에 표기된 플로우 테이블의 실시 예에서 본 발명과 관련성이 적은 구성요소들은 생략된 것으로 이해될 수 있다.
No. 출발지 주소
(Source IP)
목적지 주소
(Destination IP)
액션(Action)
1 10.0.0.1 10.0.0.4 Output: 4
2 10.0.0.2 10.0.0.4 Output: 4
3 10.0.0.3 10.0.0.4 Output: 4
4 10.0.0.4 10.0.0.1 Output: 2
5 10.0.0.4 10.0.0.2 Output: 1
6 10.0.0.4 10.0.0.3 Output: 3
[표 1]을 참조하면, 종래의 전송 제어 방법에 의하면 패킷을 전송하는 출력 포트(output port)는 출발지 주소와 목적지 주소를 모두 고려하여 설정되며, 네트워크 장비(200A)는 수신한 패킷의 헤더 필드와 플로우 엔트리의 매치 필드가 매치되는지를 판단하여, 매치되는 플로우 엔트리(또는 플로우 룰)에 따른 액션을 수행할 수 있다. 즉, 네트워크 장비(200A)는 매칭되는 플로우 엔트리의 액션 필드에 포함된 출력 포트로 패킷을 전송한다.
한편, 본 발명의 일 실시 예에 따른 목적지 기반 플로우 룰에 의해 네트워크 장비(200A)에 저장되는 플로우 테이블의 일 실시 예는 아래 [표 2]와 같다.
No. 목적지 주소
(Destination IP)
액션(Action)
1 10.0.0.4 Output: 4
2 10.0.0.1 Output: 2
3 10.0.0.2 Output: 1
4 10.0.0.3 Output: 3
위 플로우 엔트리는 전술한 패킷 전달 경로 트리를 기반으로 생성된 플로우 룰에 의한 것이며 목적지만을 고려하고 있어, 종래 방식에 비해 훨씬 적은 수의 플로우 엔트리만으로도 패킷의 전송을 제어할 수 있다. 이러한 특징은 네트워크 장비의 플로우 테이블 관리 편의성을 향상시키는데 기여한다.
실제로 본 발명의 일 실시 예에 따른 목적지 기반 플로우 룰에 의해 패킷의 전송을 제어한 결과는 도 6과 같다.
도 6을 참조하면, 종래의 출발지/목적지 기반의 경로 제어 방식에 의하면 호스트의 수가 증가함에 따라 네트워크 장비에 저장되는 플로우 엔트리 수가 기하급수적으로 증가하나, 본 발명의 일 실시 예에 따른 목적지 기반의 경로 제어 방식에 따르면 호스트의 수에 비례하여 플로우 엔트리 수가 증가하는 것을 알 수 있다.
한편, 본 발명의 일 실시 예에 따른 목적지 기반의 패킷 전송 제어 방법은 트래픽 관리 기능 및 성능 보장 기능을 지원할 수 있다. 이와 관련하여, 이하에서는 도 7 내지 8을 참조하여 본 발명의 일 실시 예에 의한 트래픽 관리 기능 수행 방법을 설명한다.
먼저, 트래픽 관리 기능은 네트워크 자원 최적화 등의 목적으로 네트워크 관리자가 원하는 방향으로 트래픽을 변경하는 트래픽 스티어링(Traffic Steering) 기술을 포함한다. 또한, ACL(Access Control List)와 같이 패킷의 전달(forwarding) 또는 차단(blocking)여부를 결정함으로써 네트워크 트래픽을 제어하는 기술이 트래픽 관리 기능에 포함될 수 있다.
본 발명의 일 실시 예에 따른 목적지 기반의 패킷 전송 제어 방법의 트래픽 관리 기능 지원은 다음과 같이 이루어질 수 있다. 기 설정된 조건을 만족하는 패킷에 대하여 트래픽 관리 기능을 수행하는 경우, 컨트롤러 서버는 기 설정된 조건에 대응되는 액션(action)을 포함하는 트래픽 관리 플로우 룰을 생성하고, 트래픽 관리 플로우 룰을 네트워크 장비에 전송하는 단계를 더 포함할 수 있다. 이 경우 트래픽 관리 플로우 룰은 목적지 기반 플로우 룰보다 높은 우선순위를 가질 수 있다.
도 7을 참조하여 트래픽 스티어링(Traffic Steering) 기술을 지원하기 위한 본 발명의 일 실시 예를 살펴본다. 도 7은 IP가 10.0.0.1이고, 포트 번호가 20인 호스트(300A)에서 패킷이 전송되면, 해당 패킷이 목적지 호스트(300B) 도착 전에 방화벽(firewall) 또는 침입 탐지 시스템(IDS, Intruction Detection System)을 거쳐 목적지 호스트에 도달하도록 제어하는 경우의 일 실시 예이다.
도 7의 실시 예에서, 아래 [표 3]의 플로우 엔트리(1)은 본 발명의 일 실시 예에 따른 트래픽 스티어링 기능을 수행하기 위한 트래픽 관리 플로우 룰에 의한 것이며, 플로우 엔트리(2)는 네트워크 토폴로지를 구성하는 네트워크 장비(S1, S2, S3, S4)에 적용되는 목적지 기반 플로우 룰에 의한 것으로 이해될 수 있다.
네트워크 장비(S1, S2, S3)는 목적지 기반 플로우 룰(플로우 엔트리(2))에 따라 패킷을 처리하므로, 목적지 IP가 10.0.0.3인 패킷은 네트워크 장비(S1)의 2번 포트를 통해 네트워크 장비(S3)를 거쳐 네트워크 장비(S4, 200B)에 도달할 수 있다. 그리고 패킷을 수신한 네트워크 장비(200B)는 아래 [표 3]을 참조하여 패킷을 처리할 수 있다.

No

입력 포트
In_Port

출발지 포트
(TCP src Port)

출발지 IP
(Src IP)

목적지 IP
(Dst IP)

액션
(Action)

우선순위
(Priority)
1 3 20(FTP) 10.0.0.1 10.0.0.3 Output: 2 30000
2 * 20(FTP) 10.0.0.1 10.0.0.3 Output: 3 20000
3 * * * 10.0.0.3 Output: 2 10000
[표 3]을 참조하면, 패킷을 수신한 네트워크 장비(200B)는 패킷의 출발지 주소가 10.0.0.1에 해당하고, 출발지 포트 번호가 20이면, 더 높은 우선순위를 갖는 플로우 엔트리(2)에 따라 패킷을 3번 포트로 출력한다. 또한, 방화벽 또는 침입 탑지 시스템(400)에서 수신된 패킷은 3번 포트로 수신되므로, 가장 높은 우선순위를 갖는 플로우 엔트리(1)에 따라 2번 포트로 출력된다. 그 결과, 패킷은 방화벽 또는 침입 탐지 시스템(400)을 거쳐서 목적지 호스트에 도달할 수 있다.
도 8을 참조하여, ACL(Access Control List) 기능을 지원하는 본 발명의 일 실시 예를 살펴본다. 도 8의 실시 예에서, 네트워크 관리자가 IP가 10.0.0.1이고, TCP 포트가 22인 호스트(300A)에서 송신되는 패킷을 차단하도록 설정한 경우를 가정하자. 이 경우, 네트워크 장비(200C)의 플로우 테이블은 아래 [표 4]를 포함할 수 있다.

No

출발지 포트
(TCP src Port)

출발지 IP
(Src IP)

목적지 IP
(Dst IP)

액션
(Action)

우선순위
(Priority)
1 22(SSH) 10.0.0.1 * Drop 30000
2 * * 10.0.0.3 Output: 2 10000
[표 4]를 참조하면, IP 주소 10.0.0.1, 포트 번호 22를 갖는 호스트(300A)에서 전송된 패킷을 수신한 네트워크 장비(200C)는 미리 설정된 조건(출발지 포트, 출발지 IP 주소)와 패킷의 헤더 정보가 일치하므로, 가장 높은 우선순위에 갖는 플로우 엔트리(1)을 적용하여 해당 패킷을 드롭(drop)한다.
만일, 수신된 패킷이 미리 설정된 조건(출발지 IP 주소 10.0.0.1, 포트 번호 22)를 만족하지 않는 패킷이면, 도 8의 각 네트워크 장비들은 목적지 기반 플로우 룰에 의한 플로우 엔트리(2)에 따라 패킷을 처리할 수 있다.
다음으로는 도 9를 참조하여 성능 보장(Qos, Quality of Service) 기능을 수행하기 위한 본 발명의 일 실시 예를 살펴본다. 기 설정된 조건을 만족하는 패킷에 대하여 성능 보장 기능을 수행하는 경우, 컨트롤러 서버(100)는 기 설정된 조건에 대응되는 액션(action)을 포함하는 성능 보장 플로우 룰을 생성하고, 성능 보장 플로우 룰을 네트워크 장비에 전송할 수 있다. 이 때, 성능 보장 플로우 룰은 기 생성된 미터 엔트리(Meter Entry)에 대응되는 미터 식별자(Meter Identifier)를 포함하며, 목적지 기반 플로우 룰보다 높은 우선순위를 가질 수 있다.
도 9는 출발지 IP가 10.0.0.1이고, 포트 번호가 8080인 호스트(300A)에서 수신되는 패킷에 대해서는 QoS를 10Mbps로 보장하고자 하는 경우의 일 실시 예이다. 이 경우, 네트워크 장비(200D)의 플로우 테이블은 아래 [표 5]를 포함할 수 있다.

No

출발지 포트
(TCP src Port)

출발지 IP
(Src IP)

목적지 IP
(Dst IP)

미터식별자
(Meter ID)

액션
(Action)

우선순위
(Priority)
1 8080 10.0.0.1 * 1 Output: 2 20000
2 * * 10.0.0.3 * Output: 2 10000
플로우 엔트리(1)은 컨트롤러 서버(100)에 의해 생성된 성능 보장 플로우 룰에 의한 것으로, 목적지 기반 플로우 룰에 의한 플로우 엔트리(2)에 비해 높은 우선순위를 갖는다. 성능 보장 플로우 룰은 미터 식별자를 포함하며, 이는 컨트롤러 서버(100)에 의해 네트워크 장비(200D)에 이미 전송된 미터 테이블을 참조할 수 있도록 하기 위함이다.
미터 테이블(Meter Table)은 미터 엔트리(Meter entries)로 구성되며, 미터 엔트리는 미터 식별자(Meter Identifier), 미터 밴드(Meter Bands), 카운터(Counters)를 포함할 수 있다.
컨트롤러 서버(100)는 [표 6]과 같은 미터 테이블을 성능 보장 기능을 수행하고자 하는 네트워크 장비(200D)에 미리 전송함으로써, 네트워크 장비(200D)가 성능 보장 플로우 룰을 수신하면, 미터 테이블을 참조하여 전송 속도 등을 관리하도록 할 수 있다.
미터 테이블(Meter Table)
미터 ID
(Meter Identifier)
미터 밴드
(Meter Bands)
카운터
(Counters)
1 100000(10Mbps) *
다음으로는 도 10을 참조하여 본 발명의 일 실시 예에 의한 멀티 테넌트(Multi Tenant) 지원 방법을 설명한다. 멀티 테넌트는 독립적인 테넌트(고객, 기업 등을 포함)들이 네트워크 리소스를 공유하는 것을 의미한다. 멀티 테넌트를 지원하는 네트워크에서는 동일 테넌트인 호스트 간 송수신되는 정보가 다른 테넌트에 전송되지 않도록 하는 것이 중요하다.
목적지 기반의 패킷 경로 제어 방법을 사용함에 있어서, 멀티 테넌트를 지원하는 경우, 컨트롤러 서버(100)는 출발지 호스트로부터 패킷을 수신한 제 1 네트워크 장비가 출발지 호스트에 대응되는 테넌트 식별정보를 패킷에 삽입(push)하고 컨트롤러 서버에 패킷을 전송하도록 규정한 멀티 테넌트 지원 플로우 룰을 생성하고, 이를 제 1 네트워크 장비로 전송할 수 있다.
그리고, 컨트롤러 서버는 목적지 호스트와 연결된 제 2 네트워크 장비가 테넌트 식별정보를 제거(pop/strip)하고 목적지 호스트에 패킷을 전송하도록 규정한 멀티 테넌트 지원 플로우 룰을 생성하고, 이를 제 2 네트워크 장비로 전송할 수 있다. 이 때, 테넌트 식별 정보는 플로우 룰의 VLAN, MPLS, VxLAN 또는 출발지 맥(MAC)주소 필드 중 어느 하나를 이용하여 표시될 수 있다.
도 10은 오픈플로우 프로토콜에서 지원하는 매치 필드(Match Field) 중 VLAN 태그(tag)를 이용하는 경우의 일 실시 예이다. 네트워크 관리자는 테넌트 A는 VLAN: 10, 테넌트 B는 VLAN: 20, 테넌트 C는 VLAN: 30 에 대응되도록 태그 값을 설정할 수 있다. 이러한 설정에 의하여, 컨트롤러 서버(100)는 호스트(300C, 300D)와 연결된 네트워크 장비(200E)가 패킷을 다른 호스트에 전송할 때 VLAN 태그를 부착하도록 멀티 테넌트 지원 플로우 룰을 생성할 수 있으며, 그 결과 네트워크 장비(200E)는 멀티 테넌트 지원 플로우 룰에 따라 생성된 아래 플로우 엔트리(1 내지 6)에 따라 패킷을 처리할 수 있다.

No.

In_Port

VLAN

Dst IP

액션(Action)

Priority
1 3 * * Push VLAN:30, Send to Controller 10000
2 4 * * Push VLAN:10, Send to Controller 10000
3 * 30 10.0.3.1 Strip VLAN, Output: 3 10000
4 * 10 10.0.1.1 Output:1 10000
5 * 20 10.0.2.1 Output:2 10000
6 * 10 10.0.1.2 Strip VLAN, Output: 4 10000
[표 7]의 플로우 엔트리(2)는 4번 포트로 유입되는 모든 패킷, 즉 테넌트 A에 속하는 호스트에서 수신한 패킷에 VLAN 태그 값으로 10을 삽입하고, 이를 컨트롤러 서버(100)로 전송하도록 한다.
컨트롤러 서버(100)는 VLAN 태그가 부착된 패킷을 수신하면, VLAN 태그 값을 포함하는 멀티 테넌트 플로우 룰을 생성하여, 토폴로지 내의 네트워크 장비들에 전송할 수 있다. 이 때, 멀티 테넌트 플로우 룰은 본 발명의 일 실시 예에 따른 목적지 기반 플로우 룰에 테넌시 식별정보를 추가적으로 더 포함하는 플로우 룰일 수 있다.
[표 7]에 나타난 바에 의하면, 네트워크 장비(200E)에 저장된 플로우 엔트리(4)는 VLAN:10(테넌시 A) 이고 목적지 주소가 10.0.1.1인 패킷을 포트 1로 출력하도록 규정하고 있으며, 플로우 엔트리(6)은 VLAN:10 이고 목적지 주소가 10.0.1.2인 패킷은 포트 4로 출력하되, VLAN 태그를 제거하도록 규정하고 있다.
플로우 엔트리(6)이 VLAN 태그를 제거하도록 규정하는 것은, 네트워크 장비(200E)가 목적지 주소가 10.0.1.2 인 호스트(300C)에 연결되어 있는 네트워크 장비이기 때문이다.
전술한 실시 예들은 본 발명이 본 발명의 일 실시 예에 의한 목적지 기반의 패킷 전송 제어 방법을 기반으로, 우선순위 설정 또는 패킷 전송에 영향을 미치지 않는 매치 필드를 사용하는 방법을 통해, 트래픽 관리, 성능 보장 또는 멀티 테넌트 지원을 효과적으로 지원할 수 있음을 보여준다.
본 발명의 일 실시 예에 의한 목적지 기반의 패킷 전송 제어에 있어서, 지원하는 기능에 따른 각 플로우 룰의 우선순위는 하기 [표 8]과 같이 설정될 수 있다.
순서 지원 기능 우선순위
1 접속제어리스트(ACL)
네트워크접근제어(NAC)
성능보장 레이어링(QoS Layering)
30000
2 트래픽 스티어링(Traffic Steering) 20000
3 목적지 기반 전송
멀티 테넌트 지원
10000
도 11은 본 발명의 일 실시 예에 의한 컨트롤러 서버의 구성을 설명하기 위한 도면이다. 도 11을 참조하면, 컨트롤러 서버(100)는 통신부(130), 제어부(150)를 포함할 수 있으며, 입력부(미도시), 표시부(미도시)를 더 포함할 수 있다. 한편, 통신부(130), 제어부(150)는 물리적으로 분리되어 존재할 수도 있다.
통신부(130)는 컨트롤러 서버(100)의 유무선 통신을 위한 데이터의 송수신 기능을 수행한다. 구체적으로 통신부(130)는 네트워크 장비(200)인 오픈플로우 스위치(200)와 통신하는 역할을 수행한다. 이 때 사용되는 프로토콜은 오픈플로우(OpenFlow) 프로토콜일 수 있다.
제어부(150)는 컨트롤러 서버(100)의 전반적인 기능을 제어한다. 특히 본 발명의 실시 예에서 제어부(150)는 네트워크 장비(200)로부터 패킷-인 메시지를 수신하면, 패킷의 목적지 호스트를 최상위 노드로 하는 패킷 전달 경로 트리를 생성하고, 패킷 전달 경로 트리를 이용하여 네트워크 장비(200)의 부모 노드로 패킷을 전송하도록 규정한 목적지 기반 플로우 룰을 생성한다. 그리고 이를 네트워크 장비에 전송하도록 컨트롤러 서버(100)를 제어할 수 있다.
그 외에도 제어부(150)는 도 2 내지 도 10에서 설명한 컨트롤러 서버(100)의 역할들을 모두 수행할 수 있도록 기능할 수 있으며, 이에 대해서는 앞에서 설명하였으므로 중복 설명은 생략하기로 한다.
본 명세서에서 설명되는 방법들은 하나 이상의 프로세서들에 의해 실행되는 하나 이상의 컴퓨터 프로그램들에 의해 구현될 수 있다. 컴퓨터 프로그램들은 비-일시적인 유형의 컴퓨터 판독가능 매체에 저장되는 프로세서-실행가능 명령들을 포함한다. 컴퓨터 프로그램들은 또한 저장된 데이터를 포함할 수 있다. 비-일시적인 유형의 컴퓨터 판독가능 매체(non-transitory tangible computer readable medium)의 비한정적 예들은 비휘발성 메모리 시스템, 자기 저장소 및 광학 저장소이다.
앞서 설명된 기법들의 특정 실시형태들은 알고리즘 형태로 본 명세서에서 설명되는 처리 단계들 및 명령들을 포함한다. 앞서 설명된 처리 단계들 및 명령들은 소프트웨어, 펌웨어, 혹은 하드웨어로 구현될 수 있고, 소프트웨어로 구현되는 경우 실시간 네트워크 오퍼레이팅 시스템(real time network operating system)들에서 사용되는 다른 플랫폼들 상에 상주하도록 다운로드 될 수 있고 이로부터 동작될 수 있음에 유의해야만 한다.
본 발명은 또한 본 명세서에서의 동작들을 수행하기 위한 장치와 관련된다. 이러한 장치는 원하는 목적을 위해 특별히 구성될 수 있거나, 또는 컴퓨터에 의해 액세스될 수 있는 컴퓨터 판독가능 매체 상에 저장된 컴퓨터 프로그램에 의해 선택적으로 활성화되거나 재구성되는 범용 컴퓨터를 포함할 수 있다. 이러한 컴퓨터 프로그램은 유형의 컴퓨터 판독가능 저장 매체에 저장될 수 있는바, 이러한 유형의 컴퓨터 판독가능 저장 매체는, 예를 들어, 플로피 디스크들, 광학 디스크들, CD-ROM들, 자기-광학 디스크들(magnetic-optical disks), 판독-전용 메모리(Read-Only Memory, ROM)들, 랜덤 액세스 메모리(Random Access Memory, RAM)들, EPROM들, EEPROM들, 자기 혹은 광학 카드들, 애플리케이션 특정 집적 회로(ASIC)들을 포함하는 임의 타입의 디스크, 또는 전자 명령들을 저장하기에 적합하고 그 각각이 컴퓨터 시스템 버스에 결합되는 임의 타입의 매체들이 있지만 이러한 것으로만 한정되는 것은 아니다. 더욱이, 본 명세서에서 지칭되는 컴퓨터들은 단일 프로세서를 포함할 수 있거나, 또는 컴퓨팅 능력 증진을 위해 복수의 프로세서 설계를 사용하는 아키텍처들일 수 있다.
본 명세서에 제시되는 알고리즘들 및 동작들은 본질적으로 임의의 특정 컴퓨터 혹은 다른 장치들과 관련되지 않는다. 다양한 범용 시스템들이 또한, 본 명세서에서의 가르침에 따른 프로그램들과 함께 사용될 수 있고, 또는 원하는 방법의 단계들을 수행하기 위해 더 특수하게 설계된 장치들을 구성하는 것이 편리한 것으로 판명될 수 있다. 다양한 이러한 시스템들을 위해 그 요구되는 구조는 그 등가적 변형물들과 함께 본 발명의 기술 분야에서 숙련된 자들에게 명백할 것이다. 추가적으로, 본 개시내용은 임의의 특정 프로그래밍 언어와 관련되어 설명되는 것이 아니다. 다양한 프로그래밍 언어가 본 명세서에서 설명되는 바와 같은 본 개시내용의 가르침들을 구현하기 위해 사용될 수 있고, 특정 언어에 대한 임의의 언급은 본 발명의 실시예 및 최상의 모드를 설명하기 위한 것임을 이해해야 한다.
본 명세서에서 생략된 일부 실시 예는 그 실시 주체가 동일한 경우 동일하게 적용 가능하다. 또한, 전술한 본 발명은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시 예 및 첨부된 도면에 의해 한정되는 것이 아니다.
100: 컨트롤러 서버
200: 네트워크 장비
300: 호스트

Claims (9)

  1. 소프트웨어 정의 네트워킹 환경에서 컨트롤러 서버가 패킷의 전송을 제어하는 방법에 있어서,
    네트워크 장비로부터 패킷-인 메시지를 수신하는 단계;
    상기 패킷의 목적지 호스트에 연결된 네트워크 장비를 최상위 노드로 하는 패킷 전달 경로 트리를 생성하는 단계;
    상기 패킷 전달 경로 트리를 이용하여 상기 네트워크 장비를 포함하는 하나 이상의 네트워크 장비에 대한 목적지 기반 플로우 룰을 생성하는 단계;
    상기 목적지 기반 플로우 룰을 상기 하나 이상의 네트워크 장비에 전송하는 단계를 포함하며,
    상기 목적지 기반 플로우 룰은 상기 패킷 전달 경로 트리에 따라 상기 하나 이상의 네트워크 장비가 자신의 부모 노드로 패킷을 전송하도록 규정한 것인 패킷 전송 제어 방법.
  2. 제1항에 있어서,
    상기 패킷 전달 경로 트리 생성 단계는
    상기 목적지 호스트에 연결된 제 1 네트워크 장비를 루트 노드로 설정하는 (a) 단계;
    상기 제 1 네트워크 장비와 연결된 제 2 네트워크 장비를 상기 제 1 네트워크 장비의 자식 노드로 설정하는 (b) 단계;
    상기 제 2 네트워크 장비와 연결된 네트워크 장비 중 노드 설정이 되지 않은 제 3 네트워크 장비를 상기 제 2 네트워크 장비의 자식 노드로 설정하는 (c)단계;
    각각의 자식 노드에 대하여 상기 (c)단계를 반복하는 단계를 포함하는 패킷 전송 제어 방법
  3. 제1항에 있어서,
    기 설정된 조건을 만족하는 패킷에 대하여 트래픽 관리 기능을 수행하는 경우,
    기 설정된 조건에 대응되는 액션(action)을 포함하는 트래픽 관리 플로우 룰을 생성하고, 상기 트래픽 관리 플로우 룰을 상기 네트워크 장비에 전송하는 단계를 더 포함하며,
    상기 트래픽 관리 플로우 룰은 상기 목적지 기반 플로우 룰보다 높은 우선순위를 갖는 패킷 전송 제어 방법.
  4. 제1항에 있어서,
    기 설정된 조건을 만족하는 패킷에 대하여 성능 보장 기능을 수행하는 경우,
    기 설정된 조건에 대응되는 액션(action)을 포함하는 성능 보장 플로우 룰을 생성하고, 상기 성능 보장 플로우 룰을 상기 네트워크 장비에 전송하는 단계를 더 포함하며,
    상기 성능 보장 플로우 룰은 기 생성된 미터 엔트리(Meter Entry)에 대응되는 미터 식별자(Meter Identifier)를 포함하며, 상기 목적지 기반 플로우 룰보다 높은 우선순위를 갖는 패킷 전송 제어 방법.
  5. 제1항에 있어서,
    멀티 테넌트(Multi Tenant)를 지원하는 경우,
    출발지 호스트로부터 패킷을 수신한 제 1 네트워크 장비가 상기 출발지 호스트에 대응되는 테넌트 식별정보를 상기 패킷에 삽입(push)하고 상기 컨트롤러 서버에 상기 패킷을 전송하도록 규정한 멀티 테넌트 지원 플로우 룰을 생성하고, 이를 상기 제 1 네트워크 장비로 전송하는 단계;
    상기 목적지 호스트에 연결된 제 2 네트워크 장비가 상기 테넌트 식별정보를 제거(pop/strip)하고 상기 목적지 호스트에 상기 패킷을 전송하도록 규정한 멀티 테넌트 지원 플로우 룰을 생성하고, 이를 상기 제 2 네트워크 장비로 전송하는 단계를 더 포함하는 패킷 전송 제어 방법.
  6. 제5항에 있어서,
    상기 테넌트 식별 정보는
    상기 플로우 룰의 VLAN, MPLS, VxLAN 또는 출발지 맥(MAC)주소 필드 중 어느 하나를 이용하여 표시되는 패킷 전송 제어 방법.
  7. 소프트웨어 정의 네트워킹 환경에서 네트워크 장비가 패킷을 전송하는 방법에 있어서,
    상기 네트워크 장비에 저장된 플로우 테이블(Flow table)에서 수신된 패킷의 목적지 호스트에 대응되는 목적지 기반 플로우 룰을 확인하는 단계;
    상기 목적지 기반 플로우 룰에 따라 상기 패킷을 처리하는 단계를 포함하며,
    상기 목적지 기반 플로우 룰은 상기 목적지 호스트에 연결된 네트워크 장비를 최상위 노드로 하는 패킷 전달 경로 트리에 따라, 상기 네트워크 장비의 부모 노드로 상기 패킷을 전송하도록 규정된 액션(action)을 포함하는 네트워크 장비의 패킷 전송 방법.
  8. 제7항에 있어서,
    상기 패킷 전달 경로 트리는
    컨트롤러 서버가 상기 목적지 호스트에 연결된 제 1 네트워크 장비를 루트 노드로 설정하고, 상기 제 1 네트워크 장비와 연결된 제 2 네트워크 장비를 상기 제 1 네트워크 장비의 자식 노드로 설정하고, 상기 제 2 네트워크 장비와 연결된 네트워크 장비 중 노드 설정이 되지 않은 제 3 네트워크 장비를 상기 제 2 네트워크 장비의 자식 노드로 설정하는 과정을 반복 수행하여 생성된 네트워크 장비의 패킷 전송 방법.
  9. 소프트웨어 정의 네트워킹 환경에서 패킷의 전송을 제어하는 컨트롤러 서버에 있어서,
    네트워크 장비와 통신하는 통신부;
    상기 네트워크 장비로부터 패킷-인 메시지를 수신하면, 상기 패킷의 목적지 호스트를 최상위 노드로 하는 패킷 전달 경로 트리를 생성하고, 패킷 전달 경로 트리를 이용하여 상기 네트워크 장비를 포함하는 하나 이상의 네트워크 장비에 대한 목적지 기반 플로우 룰을 생성하고, 상기 목적지 기반 플로우 룰을 상기 하나 이상의 네트워크 장비에 전송하는 제어부를 포함하며,
    상기 목적지 기반 플로우 룰은 상기 패킷 전달 경로 트리에 따라 상기 하나 이상의 네트워크 장비가 자신의 부모 노드로 패킷을 전송하도록 규정한 것인 컨트롤러 서버.

KR1020160132131A 2016-10-12 2016-10-12 소프트웨어 정의 네트워킹에서의 목적지 기반 패킷 전송 제어 방법 및 장치 KR101855742B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160132131A KR101855742B1 (ko) 2016-10-12 2016-10-12 소프트웨어 정의 네트워킹에서의 목적지 기반 패킷 전송 제어 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160132131A KR101855742B1 (ko) 2016-10-12 2016-10-12 소프트웨어 정의 네트워킹에서의 목적지 기반 패킷 전송 제어 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20180040356A true KR20180040356A (ko) 2018-04-20
KR101855742B1 KR101855742B1 (ko) 2018-05-10

Family

ID=62088227

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160132131A KR101855742B1 (ko) 2016-10-12 2016-10-12 소프트웨어 정의 네트워킹에서의 목적지 기반 패킷 전송 제어 방법 및 장치

Country Status (1)

Country Link
KR (1) KR101855742B1 (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200048023A (ko) * 2018-10-29 2020-05-08 성균관대학교산학협력단 서비스별로 플로우의 이동성을 관리하는 sdn컨트롤러 및 이를 이용한 이동성 관리 방법
US20220329527A1 (en) * 2021-04-09 2022-10-13 Microsoft Technology Licensing, Llc Architectures for disaggregating sdn from the host
KR20230103043A (ko) 2021-12-31 2023-07-07 주식회사 에프아이시스 네트워킹을 가속화하는 패킷 전송 시스템 및 방법
US11799785B2 (en) 2021-04-09 2023-10-24 Microsoft Technology Licensing, Llc Hardware-based packet flow processing
US11799782B2 (en) 2021-05-31 2023-10-24 Microsoft Technology Licensing, Llc Scaling host policy via distribution

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE112020003658T5 (de) * 2019-07-31 2022-05-19 Hyundai Motor Company Sdn-basiertes eindringungsverhinderungsverfahren für ein fahrzeuginternesnetz und system, das dieses verfahren verwendet
CN114467281A (zh) * 2019-07-31 2022-05-10 现代自动车株式会社 基于sdn的车载网络入侵应对方法及使用该方法的系统

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101655017B1 (ko) * 2015-03-11 2016-09-22 주식회사 한화 센서 네트워크에서의 노드 링크 관리 장치 및 그 방법
KR101658824B1 (ko) * 2015-04-15 2016-09-22 아토리서치(주) 소프트웨어 정의 네트워크에서 플로우 룰을 변경하는 방법, 장치 및 컴퓨터 프로그램
KR101660967B1 (ko) * 2015-06-30 2016-09-28 주식회사 케이티 전송망 경로 생성 장치 및 방법

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200048023A (ko) * 2018-10-29 2020-05-08 성균관대학교산학협력단 서비스별로 플로우의 이동성을 관리하는 sdn컨트롤러 및 이를 이용한 이동성 관리 방법
US20220329527A1 (en) * 2021-04-09 2022-10-13 Microsoft Technology Licensing, Llc Architectures for disaggregating sdn from the host
US11652749B2 (en) 2021-04-09 2023-05-16 Microsoft Technology Licensing, Llc High availability for hardware-based packet flow processing
US11757782B2 (en) * 2021-04-09 2023-09-12 Microsoft Technology Licensing, Llc Architectures for disaggregating SDN from the host
US11799785B2 (en) 2021-04-09 2023-10-24 Microsoft Technology Licensing, Llc Hardware-based packet flow processing
US11799782B2 (en) 2021-05-31 2023-10-24 Microsoft Technology Licensing, Llc Scaling host policy via distribution
KR20230103043A (ko) 2021-12-31 2023-07-07 주식회사 에프아이시스 네트워킹을 가속화하는 패킷 전송 시스템 및 방법

Also Published As

Publication number Publication date
KR101855742B1 (ko) 2018-05-10

Similar Documents

Publication Publication Date Title
KR101855742B1 (ko) 소프트웨어 정의 네트워킹에서의 목적지 기반 패킷 전송 제어 방법 및 장치
US9680746B2 (en) Source routing with fabric switches in an ethernet fabric network
US9654395B2 (en) SDN-based service chaining system
US9723106B2 (en) Service function chaining branching
US9276852B2 (en) Communication system, forwarding node, received packet process method, and program
US9185056B2 (en) System and methods for controlling network traffic through virtual switches
US20160301603A1 (en) Integrated routing method based on software-defined network and system thereof
US20140376373A1 (en) Congestion notification in leaf and spine networks
US20130266017A1 (en) Communication system, control apparatus, communication method, and program
WO2018149338A1 (zh) 基于sdn的远端流镜像控制方法、实现方法及相关设备
US20140241349A1 (en) Openflow switch and packet processing method thereof
WO2013039083A1 (ja) 通信システム、制御装置および通信方法
US10333828B2 (en) Bidirectional multicasting over virtual port channel
US9800508B2 (en) System and method of flow shaping to reduce impact of incast communications
KR101870146B1 (ko) 리프-스파인 구조의 소프트웨어 정의 네트워킹에서 목적지 기반 패킷 전송 제어 방법 및 장치
KR101658824B1 (ko) 소프트웨어 정의 네트워크에서 플로우 룰을 변경하는 방법, 장치 및 컴퓨터 프로그램
EP2744159B1 (en) Openflow packet forwarding system, control apparatus, packet forwarding method and program
US20130275620A1 (en) Communication system, control apparatus, communication method, and program
US11563698B2 (en) Packet value based packet processing
KR101746105B1 (ko) 서비스 체이닝이 가능한 오픈플로우 스위치
US8675669B2 (en) Policy homomorphic network extension
US9124524B2 (en) System and method for priority based flow control between nodes
CN110278156B (zh) 组播路由处理方法、网络设备以及路由反射器
US11303576B2 (en) Accurate analytics, quality of service and load balancing for internet protocol fragmented packets in data center fabrics
US20150381775A1 (en) Communication system, communication method, control apparatus, control apparatus control method, and program

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant