KR101527377B1 - Sdn 기반의 서비스 체이닝 시스템 - Google Patents

Sdn 기반의 서비스 체이닝 시스템 Download PDF

Info

Publication number
KR101527377B1
KR101527377B1 KR1020140038305A KR20140038305A KR101527377B1 KR 101527377 B1 KR101527377 B1 KR 101527377B1 KR 1020140038305 A KR1020140038305 A KR 1020140038305A KR 20140038305 A KR20140038305 A KR 20140038305A KR 101527377 B1 KR101527377 B1 KR 101527377B1
Authority
KR
South Korea
Prior art keywords
service
switch
entry
user
packet
Prior art date
Application number
KR1020140038305A
Other languages
English (en)
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 KR1020140038305A priority Critical patent/KR101527377B1/ko
Application granted granted Critical
Publication of KR101527377B1 publication Critical patent/KR101527377B1/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/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5041Network service management, e.g. ensuring proper service fulfilment according to agreements characterised by the time relationship between creation and deployment of a service
    • H04L41/5048Automatic or semi-automatic definitions, e.g. definition templates
    • 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
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

Abstract

본 발명은 SDN(Software Defined Network) 기반의 네트워크에서 서비스 체이닝을 제공하는 방법에 관한 것으로, 서비스 마다 최적화된 네트워크 경로를 제공하며, 트래픽 상태에 따라 네트워크 기능을 가변적으로 제공하며, 관리가 편리하며, 동적으로 서비스 체이닝을 구현하며, 운용의 자동화를 구현한 서비스 체이닝 제공 방법에 관한 것이다.

Description

SDN 기반의 서비스 체이닝 시스템 {SERVICE CHAINING SYSTEM BASED ON SOFTWARE DEFINED NETWORKS}
본 발명은 SDN(Software Defined Network) 기반의 네트워크에서 서비스 체이닝을 제공하는 방법에 관한 것으로, 서비스 마다 최적화된 네트워크 경로를 제공하며, 트래픽 상태에 따라 네트워크 기능을 가변적으로 제공하며, 관리가 편리하며, 동적으로 서비스 체이닝을 구현하며, 운용의 자동화를 구현한 서비스 체이닝 제공 방법에 관한 것이다.
기존 네트워크의 경우, 서비스 호스팅 시 네트워크 경로가 정적으로 설정되어, 네트워크의 상태 변화에 따라 사람이 일일이 수동으로 망을 재구성해야 한다. 이와 같은 일련의 과정은 매우 복잡하다. 특히 서비스 체이닝과 같이 개별 서비스마다 특화된 네트워크를 구성하고 이를 관리하는 경우, 그 과정이 매우 복잡하기 때문에 서비스 마다 최적화된 네트워크를 제공하는 것은 불가능에 가깝다.
1. OpenFlow Switch Specification version 1.4.0(Wire Protocol 0x05), October 14, 2013 [https://www.opennetworking.org/images/stories/downloads/sdn-resources/onf-specifications/openflow/openflow-spec-v1.4.0.pdf] 2. Software-Defined Networking: The New Norm for Netwrks, ONF White Paper, April 13, 2012 [https://www.opennetworking.org/images/stories/downloads/sdn-resources/white-papers/wp-sdn-newnorm.pdf]
따라서 본 발명의 목적은 SDN을 활용하여 서비스 제공자와 사용자의 서비스 레벨 규약(Service Level Agreement)에 따라 최적화된 네트워크 경로를 제공하는 SDN 기반 네트워크의 서비스 체이닝 방법을 제공하는 데 있다.
이를 통해 네트워크의 상태 변화, 서비스 별 또는 사용자 별 SLA에 따라 동적으로 망을 운영하여, 사용자에게 하여금 최적의 서비스를 제공하고, 망 사업자 입장에서는 이러한 시스템이 자동적으로 운용될 수 있도록 하며, 이동 통신망을 사용하지 않더라도 서비스의 종류 및 사용량 등에 따라 쉽게 과금할 수 있도록 하는데 있다.
본 발명에 따른 서비스 체이닝 제공 방법은, 복수의 스위치와 상기 복수의 스위치를 제어하는 제어기를 구비하는 SDN(Software Defined Network) 기반의 네트워크 시스템의 서비스 체이닝 제공 방법으로서, 상기 복수의 스위치 중 사용자의 서비스 요청 패킷을 수신한 제1 스위치로부터, 상기 제1 스위치에 상기 서비스 요청 패킷로부터 추출된 필드에 대응하는 엔트리가 없다는 제1 패킷-인 메시지를 제어기에서 수신하는 단계, 상기 제1 패킷-인 메시지로부터 상기 요청 서비스를 종류를 나타내는 서비스 식별자 및 상기 사용자를 식별할 수 있는 사용자 식별자를 추출하는 단계, 서로 연관된 서비스 테이블, 사용자 테이블, 및 네트워크 기능 테이블을 참조하여 상기 서비스 식별자 및 상기 사용자 식별자에 대응하는 네트워크 기능 리스트에 상기 서비스 요청 패킷이 전달되도록 하는 엔트리 리스트가 존재 하는지 엔트리 DB를 검색하는 단계를 포함할 수 있다.
본 발명에 따른 서비스 체이닝 제공하는 SDN 제어기로서, 복수의 스위치와 오픈플로우 프로토콜을 통해 연결된 SDN 기반의 상기 복수의 스위치를 제어하는 SDN 제어기로서, 상기 상기 복수의 스위치 중 사용자의 서비스 요청 패킷을 수신한 제1 스위치로부터, 상기 제1 스위치에 상기 서비스 요청 패킷로부터 추출된 필드에 대응하는 엔트리가 없다는 제1 패킷-인 메시지를 수신하는 스위치 통신부, 상기 제1 패킷-인 메시지로부터 상기 요청 서비스를 종류를 나타내는 서비스 식별자 및 상기 사용자를 식별할 수 있는 사용자 식별자를 추출하는 식별자 추출부, 제공 가능한 서비스들이 나열된 서비스 테이블, 상기 서비스 테이블의 각각의 제공 가능한 서비스에 각각 연관된 복수의 사용자 리스트를 구비하는 사용자 테이블, 상기 사용자 테이블의 각각의 사용자 리스트에 각각 연관된 복수의 네트워크 기능 리스트를 구비하는 네트워크 기능 테이블, 네트워크 토폴로지에 관한 정보를 구비하는 토폴로지 테이블, 상기 복수의 스위치에서 적절한 패킷 포워딩이 일어나도록 하는 엔트리를 저장하는 엔트리 DB, 및 서로 연관된 서비스 테이블, 사용자 테이블, 및 네트워크 기능 테이블을 참조하여 상기 서비스 식별자 및 상기 사용자 식별자에 대응하는 네트워크 기능 리스트에 상기 서비스 요청 패킷이 전달되도록 하는 엔트리 리스트가 존재 하는지 상기 엔트리 DB를 통해 판단하는 엔트리 관리부를 포함할 수 있다.
본 발명에 따르면, 자동 및 동적으로 망을 운영하므로, 네트워크 설계가 자유로우며, 논리 포트 기반의 네트워크 기능을 제공하여 포트의 연결 상태 및 트래픽 상태에 따른 효율적인 네트워크 기능 엔트리 관리가 가능하며 확장성 및 유연성이 높으며, 링크가 다운된 경우 대체 경로를 쉽고 자동으로 복구할 수 있다. 또한 모바일 트래픽의 경우 엑세스 네트워크와 코어 네트워크 사이의 터널링을 이루어져, 사용자의 IP 정보 등을 알 수 없으나, 본 발명에 따르면 터널링에 따른 캡슐화된 패킷을 네트워크 기능을 이용하여 캡슐화된 패킷 정보를 알 수 있으며, 모바일 망의 엑세스 단에서 SDN 네트워크를 이용한 서비스 체인을 제공함으로써, 모바일 망에서의 부하를 낮춤과 동시에 사용자 경험을 향상 시킬 수 있다.
도 1은 본 발명의 일실시예에 따른 SDN 네트워크 시스템의 블록 구성도(block diagram),
도 2는 도 1의 네트워크 시스템의 제어기의 블록 구성도,
도 3은 도 1의 네트워크 시스템의 스위치의 블록 구성도,
도 4는 본 발명의 다른 실시예에 따른 SDN 네트워크 시스템의 블록 구성도,
도 5는 본 발명의 다른 실시예에 따른 제어기의 블록 구성도,
도 6은 본 발명의 일실시예에 따른 데이터베이스의 블록 구성도,
도 7은 본 발명의 다른 실시예에 따른 스위치의 블록 구성도,
도 8은 본 발명의 일 실시예에 따른 포트 관리부의 블록 구성도,
도 9는 본 발명의 일 실시예에 따른 SDN 스위치의 서비스 체이닝 제공 방법에 대한 순서도, 및
도 10은 제어기에서의 서비스 체이닝 제공 방법에 관한 순서도이다.
이하, 도면을 참조하여 본 발명을 보다 상세하게 설명한다.
제 1, 제 2등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제 1 구성요소는 제 2 구성요소로 명명될 수 있고, 유사하게 제 2 구성요소도 제 1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 또한 네트워크 상의 제1 구성요소와 제2 구성요소가 연결되어 있거나 접속되어 있다는 것은, 유선 또는 무선으로 제1 구성요소와 제2 구성요소 사이에 데이터를 주고 받을 수 있음을 의미한다.
또한, 이하의 설명에서 사용되는 구성요소에 대한 접미사 "모듈" 및 "부"는 단순히 본 명세서 작성의 용이함만이 고려되어 부여되는 것으로서, 그 자체로 특별히 중요한 의미 또는 역할을 부여하는 것은 아니다. 따라서, 상기 "모듈" 및 "부"는 서로 혼용되어 사용될 수도 있다.
이와 같은 구성요소들은 실제 응용에서 구현될 때 필요에 따라 2 이상의 구성요소가 하나의 구성요소로 합쳐지거나, 혹은 하나의 구성요소가 2 이상의 구성요소로 세분되어 구성될 수 있다.
도 1은 본 발명의 일실시예에 따른 SDN 네트워크 시스템의 블록 구성도(block diagram), 도 2는 도 1의 네트워크 시스템의 제어기의 블록 구성도, 도 3은 도 1의 네트워크 시스템의 스위치의 블록 구성도이다.
도 1을 참조하면, 본 발명에 일 실시예에 따른 SDN 네트워크 시스템은 제어기(contoller)(10), 복수의 스위치(20) 및 복수의 네트워크 디바이스(30)를 포함할 수 있다.
네트워크 디바이스(30)는 데이터나 정보를 주고 받고자 하는 사용자 단말 장치, 또는 특정 기능을 수행하는 물리 장치 또는 가상 장치를 포함할 수 있다. 하드웨어 관점에서, 네트워크 디바이스(30)는 PC, 클라이언트 단말기, 서버, 워크스테이션, 수퍼컴퓨터, 이동통신 단말기, 스마트폰, 스마트패드 등이 있을 수 있다. 또한 네트워크 디바이스(30)는 물리 장치 상에 생성된 가상 머신(VM)일 수 있다. 네트워크 디바이스(30)는 여러가지 네트워크 기능(network function)을 수행할 수 있다. 네트워크 기능은 앤티(anti) DDoS, 침입 감지/차단 (IDS/IPS), 통합 보안 서비스, 가상 사설망 서비스, 앤티 바이러스, 앤티 스팸, 보안 서비스, 접근관리 서비스, 방화벽, 로드 밸런싱, QoS, 비디오 최적화 등을 포함할 수 있다. 이러한 네트워크 기능은 가상화될 수 있다. 가상 네트워크 기능(Network Function Virtualiztion; NFV)은 테넌트(tenant)별 필요한 L4-7 서비스 연결을 동적으로 생성하여 필요한 네트워크 기능을 제공하거나, DDoS 공격의 경우 정책 기반으로 필요한 방화벽, IPS 및 DPI 기능 등을 서비스 체이닝으로 빠르게 제공되는데 이용될 수 있다. 또한 NFV는 방화벽이나 IDS/IPS를 쉽게 온오프 할 수 있으며, 자동으로 프로비저닝(provisioning)할 수 있다. NFV는 오버 프로비저닝의 필요성도 줄일 수 있다.
제어기(controller)(10)는 SDN 시스템을 제어하는 일종의 지휘 서버로서, 다양하고 복잡한 기능들, 예를 들어, 라우팅, 정책 선언, 및 보안 체크 등을 할 수 있다. 제어기(10)는 하위 계층의 복수의 스위치(20)에서 발생하는 패킷의 플로우를 정의할 수 있다. 제어기(10)는 네트워크 정책 상 허용되는 플로우에 대해 네트워크 토폴로지 등을 참조하여 플로우가 경유할 경로를 계산한 후, 경로 상의 스위치에 상기 플로우의 엔트리가 설정되도록 할 수 있다. 제어기(10)는 특정 프로토콜, 예를 들어, 오픈플로우 프로토콜을 이용하여 스위치(20)와 통신할 수 있다. 제어기(10)와 스위치(20)의 통신 채널은 SSL에 의해 암호화 될 수 있다.
도 2를 참조하면, 제어기(10)는 스위치(20)와 통신하는 스위치 통신부(110), 토폴로지 관리부(130), 경로 계산부(150), 엔트리 관리부(170), 및 플로우 엔트리를 저장하는 엔트리 데이터베이스(DB)(190)를 포함할 수 있다.
토폴로지 관리부(130)는 스위치 통신부(110)를 통하여 수집된 스위치(20)의 접속 관계를 기초로 네트워크 토폴로지 정보를 구축 및 관리 할 수 있다.
경로 계산부(150)는 토폴로지 관리부(130)에서 구축된 네트워크 토폴로지 정보를 기초로 스위치 통신부(110)를 통해 수신한 패킷의 전송 경로 및 상기 전송 경로 상의 스위치(20)에 실행시키는 액션 열을 구할 수 있다.
엔트리 관리부(170)는 경로 계산부(150)에서 계산된 결과를 플로우 엔트리로서 엔트리 DB(190)에 등록하고, 스위치(10)로부터의 플로우 엔트리 또는 엔트리들의 추가 또는 갱신 요구에 응답할 수 있다.
스위치(20)는 물리적인 스위치 또는 가상 스위치일 수 있다. 스위치(20)는 수신한 패킷을 처리하여, 네트워크 디바이스(30) 사이의 플로우를 중계할 수 있다. 이를 위해 스위치(20)는 하나의 플로우 테이블 또는 비특허문헌 1에 상술되어 있는 파이프라인(pipeline) 처리를 위해 다중 플로우 테이블을 구비할 수 있다.
플로우 테이블은 네트워크 디바이스(30)의 플로우를 어떻게 처리할 지의 규칙을 정의한 플로우 엔트리를 포함할 수 있다.
플로우(flow)는 하나의 스위치 관점에서 적어도 하나의 헤더 필드의 값을 공유하는 일련의 패킷들 또는 다중 스위치의 여러 플로우 엔트리(flow entry)들의 조합에 따른 특정 경로의 패킷 흐름을 의미할 수 있다. 오픈플로우 네트워크는 플로우 단위로 경로 제어, 장애 회복, 부하 분산 및 최적화를 행할 수 있다.
스위치(20)는 다중 스위치의 조합에 따른 플로우의 입구 및 출구 측 에지 스위치(edge switch)(ingress switch and egress switch)와 에지 스위치 사이의 코어 스위치(core switch)로 구분될 수 있다.
도 3을 참조하면, 스위치(20)는 제어기(10)와 통신하는 제어기 통신부(210), 테이블(230)을 관리하는 테이블 관리부(220), 및 전송 처리부(240)를 포함할 수 있다.
테이블(230)은 플로우 테이블, 그룹 테이블, 및 메타 테이블을 포함할 수 있다. 플로우 테이블은 오픈플로우의 파이프라인(pipeline)을 처리하기 위해 다중 플로우 테이블로 구성될 수 있다. 플로우 테이블의 플로우 엔트리는 패킷과 매치하는 조건(대조 규칙)을 기술한 매치 필드, 매치되는 패킷이 있는 경우 업데이트되는 카운터, 스위치에서 파기될 시간을 기술하는 타임아웃, 제어기에 의해 선택되어지는 오파큐(opaque) 타입의 쿠키(cookie), 플로우 엔트리에 기술된 패킷의 변경, 액션 세트(action set)의 업데이트, 및 메타데이타 업데이트 등의 인스트럭션(instruction), 패킷을 지정된 포트 또는 여러 포트로 전달하거나 폐기시키는 액션(action), 우선 순위(priority) 등의 튜플(tuple)을 포함할 수 있다.
테이블 관리부(220)는 제어기 통신부(210)를 통해 제어기(10)로부터 수신한 엔트리를 적정한 테이블에 추가하거나, 타임 아웃(time out)된 엔트리를 주기적으로 제거할 수 있다.
전송 처리부(240)는 플로우 검색부(250) 및 플로우 처리부(260)를 포함할 수 있다.
플로우 검색부(250)는 유저 트래픽으로서 수신한 패킷으로부터 플로우 정보를 추출할 수 있다. 플로우 정보는 에지 스위치의 패킷 유입 포트인 입구 포트(ingress port)의 식별 정보, 해당 스위치의 패킷 유입 포트(incoming port)의 식별 정보, 패킷 헤더 정보(송신원 및 목적지의 IP 주소, MAC 주소, 포트, 및 VLAN 정보 등), 및 메타데이터 등을 포함할 수 있다. 메타데이터는 이전 테이블에서 선택적으로 추가되거나, 다른 스위치에서 추가된 데이터일 수 있다. 플로우 검색부(250)는 추출한 플로우 정보를 참조하여 테이블(230)에 수신 패킷에 대한 플로우 엔트리가 있는지 검색할 수 있다. 플로우 검색부(250)는 플로우 엔트리가 검색되면, 플로우 처리부(260)에 검색된 플로우 엔트리에 따라 수신 패킷을 처리하도록 요청할 수 있다. 만일 플로우 엔트리 검색이 실패하면, 플로우 검색부(250)는 수신 패킷 또는 수신 패킷의 최소한의 데이터를 제어기 통신부(210)를 통해 제어기(100)로 전송할 수 있다.
플로우 처리부(260)는 플로우 검색부(250)에서 검색된 엔트리에 기술된 절차에 따라 패킷을 특정 포트 또는 다중 포트로 출력하거나, 드롭시키거나 또는 특정 헤더 필드를 수정하는 등의 액션을 처리할 수 있다.
플로우 처리부(260)는 플로우 엔트리의 파이프라인 프로세스를 처리하거나 액션을 변경하기 위한 인스트럭션을 실행하는 인스트럭션 실행부(270), 및 다중 플로우 테이블에서 더 이상 다음 테이블로 갈 수 없을 때 액션 세트를 실행하는 액션 실행부(280)를 포함할 수 있다.
도 1에 도시되어 있지 않지만, SDN 네트워크 시스템은 가상 네트워크 디바이스, 가상 스위치 등을 생성, 변경 및 삭제하는 오케스트레이터를 더 포함할 수 있다. 오케스트레이터는 가상 네트워크 디바이스를 생성하는 경우, 가상 네트워크가 접속할 스위치의 식별 정보, 해당 스위치에 연결되는 포트 식별 정보, MAC 주소, IP 주소, 터넨트(tenant) 식별 정보 및 네트워크 식별 정보 등의 네트워크 디바이스의 정보를 제어기(10)로 제공할 수 있다.
도 4는 본 발명의 다른 실시예에 따른 SDN 네트워크 시스템의 블록 구성도, 도 5는 본 발명의 다른 실시예에 따른 제어기의 블록 구성도, 도 6은 본 발명의 일실시예에 따른 데이터베이스의 블록 구성도, 도 7은 본 발명의 다른 실시예에 따른 스위치의 블록 구성도, 도 8은 본 발명의 일 실시예에 따른 포트 관리부의 블록 구성도이다.
도 4를 참조하면, 본 실시예에 따른 네트워크 시스템은 제어기(10), 복수의 SDN 스위치(20; SW1~SW3), 복수의 네트워크 디바이스(35)(40; NF1~NF6), 및 오케스트레이터(50)를 포함할 수 있다. 도 1 내지 도 3을 참조한다.
네트워크 디바이스는 데이터나 정보를 주고 받고자 하는 사용자 단말 장치(35), 및 특정 기능을 수행하는 네트워크 기능(40)(NF: NF1 ~ NF6)을 포함할 수 있다.
NF(40)는 일련의 서비스 체이닝 중 각각의 기능을 제공하는 장치로서, 유연성 및 확장성, 안정성을 담보하기 위해 가상 장치인 것이 바람직하다.
사용자 단말 장치(35)는 데이터나 정보를 요청하는 장치로서, PC, 서버, 클라이언트, 이동 통신이 가능한 다양한 단말기 등을 포함할 수 있다.
제어기(controller)(10)는 SDN 시스템을 제어하는 일종의 지휘 서버로서, 다양하고 복잡한 기능들, 예를 들어, 라우팅, 정책 선언, 및 보안 체크 등을 할 수 있다. 제어기(10)는 하위 계층의 복수의 SDN 스위치(20)에서 발생하는 패킷의 플로우를 정의할 수 있다. 제어기(10)는 네트워크 정책 상 허용되는 플로우에 대해 네트워크 토폴로지 등을 참조하여 플로우가 경유할 경로를 계산한 후, 경로 상의 스위치에 상기 플로우의 엔트리가 설정되도록 할 수 있다. 제어기(10)는 특정 프로토콜, 예를 들어, 오픈플로우 프로토콜을 이용하여 SDN 스위치(20)와 통신할 수 있다. 제어기(10)와 SDN 스위치(20)의 통신 채널은 SSL에 의해 암호화 될 수 있다.
도 5를 참조하면, 제어기(10)는 SDN 스위치(20)와 통신하는 스위치 통신부(110), 네트워크 토폴로지 정보를 구축 및 관리하는 토폴로지 관리부(130), 경로 계산부(150), 추출부(160), 엔트리 관리부(170), 과금부(180), 및 데이터베이스(DB)(190)를 포함할 수 있다.
추출부(160)는 스위치 통신부(110)로부터 수신한 패킷-인 메시지(packet-in message)로부터 요청 서비스의 종류를 나타내는 서비스 식별자 및 서비스 요청한 사용자를 식별할 수 있는 사용자 식별자를 추출할 수 있다.
패킷-인 메시지는 스위치가 미지의 패킷을 수신한 경우, 경로 계산을 요구하기 위해, SDN 스위치(20)에서 제어기(10)로 전송되는 수신 패킷 또는 그 사본의 전부 또는 일부를 포함하는 메시지이다.
서비스 식별자는 네트워크에서 제공하는 서비스의 타입을 나타낸다. 서비스 타입은 웹 트래픽, 동영상 트래픽, SNS(social network service) 트래픽 등을 포함할 수 있다. 서비스 식별자는 서비스를 요청하는 사용자 단말 장치(35)에서 미리 정의되거나, 트래픽을 SDN 네트워크로 전송하는 게이트웨이 또는 SDN 네트워크의 에지 스위치에서 요청 패킷에 서비스 식별자를 정의할 수 있다. 서비스 식별자의 정의 방법은, 서비스 요청 패킷의 기정의되어 있는 필드 중 어느 필드에 서비스 식별자를 할당하거나, 서비스 요청 패킷에 서비스 종류를 나타내는 메타데이터를 추가하는 방법을 포함할 수 있다. 서비스의 종류를 나타내기 위해, 패킷 필드 중 vLAN 필드에 서비스 식별자를 태깅(tagging)하는 것이 바람직하다. vLAN(virtual Local Area Network)은 물리적 배치와 상관없이 논리적으로 LAN을 구성할 수 있는 기술로, 사용자의 요청 서비스 별로 네트워크를 설정할 수 있다. vLAN은 별개의 네트워크를 설정할 수 있어, 네트워크 리소스 보안을 높이며, 비용 절감이 가능하고, 관리자의 네트워크 설정 작업이 용이해지며, 서로 다른 네트워크 그룹을 생성하기 때문에 불필요한 트래픽을 줄일 수 있다.
vLAN 태깅은 SDN 스위치(20), 특히 에지 스위치(SW1)에서 실행되는 것이 바람직하다. 에지 스위치(SW1)는 패킷으로부터 취득한 사용자 IP 및 목적기 IP에 따라, 서비스 타입에 대응하는 vLAN 태깅을 할 수 있다. 즉 서비스 식별자로서 vLAN 태깅은 제어기(10)에 패킷이 전달 되기 전에 실행되어야, 추출부(160)에서 서비스 식별자를 추출할 수 있다.
추출부(160)는 사용자 식별자를 패킷의 사용자(송신원) IP(src IP)로부터 추출하는 것이 바람직하다.
도 6을 참조하면, 데이터베이스(190)는 토폴로지 테이블(191), 서비스 테이블(192), 사용자 테이블(193), 네트워크 기능 테이블(194), 플로우 엔트리 테이블(195) 및 통계 테이블(196)을 포함할 수 있다.
토폴로지 테이블(191)은 토폴로지 관리부(130)에 의한 스위치 엔트리 및 스위치들 간의 연결 정보인 토폴로지를 저장 및 관리 할 수 있다.
서비스 테이블(192)은 서비스 엔트리를 저장 및 관리할 수 있다. 서비스 엔트리는 SDN 네트워크에서 제공하는 서비스의 타입을 구분할 수 있도록 하며, 서비스 식별자와 대응한다.
사용자 테이블(193)은 사용자의 엔트리를 저장 및 관리할 수 있다. 사용자는 사용자 IP를 통해 구분될 수 있다.
네트워크 기능 테이블(194)은 사용자가가 사용하는 서비스 마다의 일련의 NF 리스트 엔트리를 저장 및 관리할 수 있다. 즉, NF 리스트의 네트워크 기능 순서는 고정되거나, 토폴로지 상태나 트래픽 처리 상태 등을 참조하여 동적으로 변경될 수 있다. 서비스 및 사용자 별로 NF 기능들인 NF 리스트가 결정되는 것은, 서비스 제공자와 사용자의 서비스 협약(Service Level Agreement)에 따라 결정될 수 있다.
네트워크 기능 테이블(194)은 서비스 테이블(192) 및 사용자 테이블(193)와 연관되지 않는 디폴트 NF 리스트 엔트리를 더 포함할 수 있다. 디폴트 NF 리스트 엔트리는 수신 패킷이 SDN 네트워크의 필수 NF에 의해 처리되어야 할 NF들의 리스트인 것이 바람직하다.
플로우 엔트리 테이블(195)은 토폴로지 테이블(191), 서비스 테이블(192), 사용자 테이블(193), 및 네트워크 기능 테이블(194)을 기초로 작성된 적절한 패킷 경로에 대한 엔트리이다.
통계 테이블(196)은 각 플로우 마다의 트래픽 양, 처리 속도, 경유한 NF의 개수 및 그 타입 등의 통계를 저장 및 관리할 수 있다.
경로 계산부(150)는 토폴로지 관리부(130)에서 구축된 네트워크 토폴로지 정보를 기초로 스위치 통신부(110)를 통해 수신한 패킷의 전송 경로 및 상기 전송 경로 상의 SDN 스위치(20)에 실행시키는 액션 열을 구할 수 있다.
엔트리 관리부(170)는 경로 계산부(150)에서 계산된 결과를 플로우 엔트리로서 플로우 엔트리 테이블(195)에 등록하고, 스위치(10)로부터의 플로우 엔트리 또는 엔트리들의 추가 또는 갱신 요구에 응답할 수 있다.
과금부(180)는 통계 테이블(196)의 데이터를 기초로, 정책에 따라 사용자 별로 각각 과금할 수 있다.
SDN 스위치(20)는 하나의 플로우 테이블 또는 비특허문헌 1에 상술되어 있는 파이프라인(pipeline) 처리를 위해 다중 플로우 테이블을 구비할 수 있다. 이를 위해, 제1 SDN 스위치(20)(SW1)는 도 3에 도시된 바와 같이, 제어기(10)와 통신하는 제어기 통신부(210), 테이블(230)을 관리하는 테이블 관리부(220), 및 인스트럭션 실행부(270)와 액션 실행부(280)을 구비하는 전송 처리부(240)를 포함할 수 있다.
도 7을 참조하면, 본 발명의 다른 실시예에 따른 제2 SDN 스위치(20)(SW2)는 포트 관리부(290)를 더 포함할 수 있다. 포트 관리부(290)는 SDN 스위치(20)의 논리 포트와 물리 포트를 맵핑할 수 있다. 포트 관리부(290)는 액션 실행부(280)에 의해 스위치 SW2의 논리 포트로 포워딩 되는 패킷을 관리할 수 있다.
도 8을 참조하면, 포트 관리부(290)는 발산 유닛(292) 및 수렴 유닛(294)을 포함할 수 있다.
발산 유닛(292)은 하나의 논리 포트(202)와 복수의 물리 포트가 연결될 수 있다. 복수의 물리 포트의 적어도 일부에 적어도 하나의 NFv(301~304)가 연결될 수 있다. 본 실시예에서 복수의 NFv(301~304)는 동일한 네트워크 기능을 제공하는 NFv들인 것이 바람직하다. 발산 유닛(292)은 스위치 SW2의 제1 논리 포트(202)를 통해 유입되는 패킷을 포트의 연결 상태, 트래픽 상태 등을 고려하여, 물리 포트를 통해 적절한 NFv로 전달할 수 있다. 스위치 SW2에 연결되는 NFv의 생성 및 삭제는 오케스트레이터(50)에 의해 실행될 수 있다. 오케스트레이터(50)는 트래픽 상태 등에 따라 하나의 논리 포트에 연결되는 NFv들의 개수를 조정할 수 있다.
수렴 유닛(294)은 복수의 NFv(301~304)로부터 유입되는 패킷에 논리 포트(204)를 할당할 수 있다.
발산 유닛(292) 및 수렴 유닛(294)를 이용하여, 포트 관리부(290)는 SDN 스위치(20) 내부의 다른 구성요소 또는 제어기(10)에서 SDN 스위치(20) 내부의 물리적인 포트가 보이지 않도록 할 수 있다. 즉 제어기(10) 및 SDN 스위치(20)는 패킷 경로 상의 NFv 타입만 알면 되며, NFv의 개수에 따른 물리 포트에 대해 신경 쓰지 않아도 된다.
본 발명에 따른 네트워크 시스템은 사용자 단말 장치(35)와 스위치 SW1을 중계하는 기지국(25)을 더 포함할 수 있다. 본 실시예에 따른 기지국(25)은 사용자 단말 장치(35)와 스위치 SW1 사이의 무선 연결을 제공할 수 있다. 기지국(25)은 LTE 통신망에서의 eNB(evolved Node B)를 포함할 수 있다.
사용자 단말 장치(이하, 'UE')(35)로부터 IP 패킷을 수신한 eNB는 "UE(35)가 보낸 패킷" 앞에 GTP 헤더, UDP 헤더, 및 GTP 터널링을 위한 IP 헤더가 덧 붙여지는 캡슐링이 일어난다. 이러한 캡슐링은 원 전송처인 UE(35)의 IP 주소를 외부에서 못 보도록 하기 때문에, 캡슐링된 패킷은 SDN 스위치(20)의 추출부(245) 또는 제어기(10)의 추출부(160)에서 사용자 식별 정보를 추출할 수 없는 문제점이 있다. 이에 스위치 SW1은 기지국(25)을 통해 수신하는 패킷을 디캡슐할 수 있는 디캡 기능의 NF1가 연결되는 것이 바람직하다. 디캡 기능의 NF1은 SDN 스위치(SW1)에서 수신한 패킷에서 사용자 IP 및 목적지 IP를 포함하는 헤더를 덧 붙이여서, 메타데이터로 추가 한 후, 다시 SDN 스위치(SW1)으로 전송할 수 있다.
스위치 SW1이 기지국(25) 이외에 모바일 코어 네트워크(80) 및 공용 인터넷망(90)과 연결될 수 있다. 스위치 SW1은 모마일 코어 망(80)을 거치지 않고 상대적으로 저렴한 비용의 공용 인터넷망(90)으로 운용이 가능하고, 기존의 모바일 코어 망(80)에 있던 방화벽이나 IDS, 로드 밸런서 등의 NF를 사용자 가까운 위치에서 운영함으로써 모바일 코어 망의 부하를 줄일 수 있다.
SDN 스위치(SW1)은 게이트웨이 스위치(27)와 직접 연결될 수 있다. 게이트웨이 스위치(27)는 데이터 센터 네트워크(85)와 SDN 스위치(SW1)의 도메인을 동일한 도메인으로 보이게 하여, 데이터 센터 네트워크(85)의 네트워크 기능 들(NF4~NF6)에 의한 서비스 체인이 이용되도록 할 수 있다.
도 9는 본 발명의 일 실시예에 따른 SDN 스위치의 서비스 체이닝 제공 방법에 대한 순서도이다. 도 1 내지 도 8을 참조한다.
도 9를 참조하면, 에지 스위치 단 중 제1 SDN 스위치(SW1)는 UE(35)로부터 서비스 요청 패킷을 수신하면, 패킷-인 이벤트가 발생한 것을 알 수 있다(S510).
제1 SDN 스위치(SW1)에 기지국(25)이 연결된 경우, 제1 SDN 스위치(SW1)는 캡슐화된 패킷에서 소스 및 목적지 IP 주소를 추출할 수 있다(S515). 캡슐화된 패킷의 소스 및 목적지 IP 주소를 알 기 위해, 상술한 바와 같이 제1 SDN 스위치(SW1)는 디캡 기능의 NF이 연결되는 것이 바람직하다.
제1 SDN 스위치(SW1)는 서비스 요청 패킷을 분석하여 서비스의 타입에 따라 서비스 요청 패킷의 vLAN에 서비스 타입에 대응하는 값을 할당할 수 있다(S520).
제1 SDN 스위치(SW1)는 서비스 요청 패킷의 vLAN과 일치하는 엔트리가 있는지 플로우 테이블0을 탐색할 수 있다(S530). 일치하는 플로우 엔트리가 있는 경우, 인스트럭션은 다음 플로우 테이블1과 패킷을 비교하여(S540), 테이블1에 소스의 IP와 일치하는 플로우 엔트리가 있는지 판단할 수 있다(S550). 플로우 엔트리가 있는 경우, 제1 SDN 스위치(SW1)는 플로우 엔트리의 액션 또는 액션 세트를 실행하여 서비스 요청 패킷을 지정 포트로 포워딩할 수 있다(S560).
서비스 요청 패킷의 vLAN에 대응하는 플로우 엔트리가 플로우 테이블0에 없는 경우, 제1 SDN 스위치(SW1)는 상위 계층의 제어기(10)로 패킷-인 메시지를 송신한 후(S570), 제어기(10)로부터 패킷을 전송할 정보를 포함하는 패킷-아웃 메시지를 수신할 수 있다(S580). 제1 SDN 스위치(SW1)는 패킷-아웃 메시지 이외에 플로우 변경 메시지(Flow Mod Msg.)를 수신할 수 있다. 플로우 변경 메시지를 수신하는 경우, 제1 SDN 스위치(SW1)는 플로우 변경 메시지에 구비된 플로우 엔트리를 플로우 테이블에 등록시킬 수 있다.
도 3과 같은 내부 블록을 구비하는 제1 SDN 스위치(SW1)의 서비스 체이닝 방법과 달리, 코어 네트워크의 제2 SDN 스위치(SW2)는 패킷-인 인벤트가 발생하면(S510), vLAN과 일치하는 엔트리가 있는지 탐색할 수 있다(S520). 제1 SDN 스위치(SW1)에서 디캡 및 추출, vLAN 태깅이 이루어졌기 때문이다. 수신한 플로우에 경로 식별정보가 구비되어 있는 경우, 제2 SDN 스위치(NF2)는 vLAN 또는 소스 IP가 아닌 경로 식별 정보와 대응하는 플로우 엔트리가 엔트리 DB에 있는지 판단할 수 있다. 경로 식별 정보를 매치 필드에 구비하는 플로우 엔트리는 제어기(10)에 의해 생성될 수 있다. 도 7과 같은 내부 구조를 구비하는 제2 SDN 스위치(SW2)의 플로우 엔트리에 의한 패킷 포워딩은 논리 포트로 지정되는 것이 바람직하다.
도 10은 제어기에서의 서비스 체이닝 제공 방법에 관한 순서도이다. 도 1 내지 도 10을 참조한다.
도 10을 참조하면, 제어기(10)는 SDN 스위치(20)으로부터 패킷-인 메시지를 수신할 수 있다(S610).
패킷-인 메시지를 수신하는 경우, 제어기(10)는 서비스 식별자 및 사용자 식별자를 위해 패킷-인 메시지의 패킷으로부터 vLAN 및 소스 IP를 추출할 수 있다(S615). 다만 제어기(10)는 패킷-인 메시지에 경로 식별 정보가 존재하는 경우, vLAN 및 소스 IP를 추출하지 않고, 경로 식별 정보가 패킷에 할당되도록 하는 플로우 엔트리를 검색하여 SDN 스위치(20) 전송록 할 수 있다(S670).
제어기(10)는 수신 패킷의 vLAN에 대응하는 서비스가 서비스 테이블(192)에 있는지 판단할 수 있다(S620). 서비스 테이블(192)에 vLAN에 대응하는 서비스가 없는 경우, 제어기(10)는 해당 패킷이 드롭되도록 하는 메시지-아웃을 하위 스위치에 전송할 수 있다(S). 이후, 제어기(10)는 관리자에게 보고하거나 에러 처리 루틴에 의해, 패킷 전송 실패에 대한 관리를 할 수 있다.
제어기(10)는 vLAN에 대응하는 서비스가 서비스 테이블(192)에 있는 경우, 해당 서비스에 따른 사용자(즉, 소스 IP)가 사용자 테이블(193)에 있는지 판단할 수 있다(S630). vLAN에 대응하는 서비스에 연관된 사용자가 있는 경우 이에 연관된 NF 리스트를 취득하며(S635), 그렇지 않은 경우 기본 NF 리스트를 취득할 수 있다(S640). 제어기(10)는 NF 리스트에 관련된 플로우 엔트리가 데이터베이스(190)에 존재하는 지 판단할 수 있다. 관련 플로우 엔트리가 존재하면 데이터베이스(190)에 업그레이드 할 수 있다(S660). NF 리스트에 관련된 플로우 엔트리는, NF 리스트, 토폴로지 정보나 트래픽 상태 등에 따라 계산된 패킷 경로에 따른 결과물인 것이 바람직하다.
제어기(10)는 플로우 엔트리를 해당 경로의 SDN 스위치(20)에 전송하는 플로우 변경 메시지를 전송할 수 있다.
상기 본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고 본 발명을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있다.
또한, 이상에서는 본 발명의 바람직한 실시예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안 될 것이다.

Claims (18)

  1. 복수의 스위치와 상기 복수의 스위치를 제어하는 제어기를 구비하는 SDN(Software Defined Network) 기반의 네트워크 시스템의 서비스 체이닝 제공 방법으로서,
    상기 복수의 스위치 중 사용자의 서비스 요청 패킷을 수신한 제1 스위치로부터, 상기 제1 스위치에 상기 서비스 요청 패킷로부터 추출된 필드에 대응하는 엔트리가 없다는 제1 패킷-인 메시지를 제어기에서 수신하는 단계;
    상기 제1 패킷-인 메시지로부터 상기 요청 서비스를 종류를 나타내는 서비스 식별자 및 상기 사용자를 식별할 수 있는 사용자 식별자를 추출하는 단계;
    서로 연관된 서비스 테이블, 사용자 테이블, 및 네트워크 기능 테이블을 참조하여 상기 서비스 식별자 및 상기 사용자 식별자에 대응하는 네트워크 기능 리스트에 상기 서비스 요청 패킷이 전달되도록 하는 엔트리 리스트가 존재 하는지 엔트리 DB를 검색하는 단계를 포함하고,
    상기 엔트리 DB 검색 결과, 상기 엔트리 DB에 상기 서비스 요청 패킷 전달 엔트리가 존재 하지 않는 경우, 상기 네트워크 기능 리스트에 상기 서비스 요청 패킷이 전달되는 경로가 생성되도록 토폴로지 테이블을 참조하여 상기 엔트리 DB를 업데이트 하는 단계를 더 포함하는 서비스 체이닝 제공 방법.
  2. 삭제
  3. 복수의 스위치와 상기 복수의 스위치를 제어하는 제어기를 구비하는 SDN(Software Defined Network) 기반의 네트워크 시스템의 서비스 체이닝 제공 방법으로서,
    상기 복수의 스위치 중 사용자의 서비스 요청 패킷을 수신한 제1 스위치로부터, 상기 제1 스위치에 상기 서비스 요청 패킷로부터 추출된 필드에 대응하는 엔트리가 없다는 제1 패킷-인 메시지를 제어기에서 수신하는 단계;
    상기 제1 패킷-인 메시지로부터 상기 요청 서비스를 종류를 나타내는 서비스 식별자 및 상기 사용자를 식별할 수 있는 사용자 식별자를 추출하는 단계;
    서로 연관된 서비스 테이블, 사용자 테이블, 및 네트워크 기능 테이블을 참조하여 상기 서비스 식별자 및 상기 사용자 식별자에 대응하는 네트워크 기능 리스트에 상기 서비스 요청 패킷이 전달되도록 하는 엔트리 리스트가 존재 하는지 엔트리 DB를 검색하는 단계를 포함하고,
    상기 엔트리 DB의 상기 네트워크 기능 리스트에 상기 서비스 요청 패킷이 전달되도록 하는 엔트리 리스트에 기초하여 상기 제1 스위치에 제1 플로우 변경 메시지를 전송하는 단계를 더 포함하는 서비스 체이닝 제공 방법.
  4. 제 3 항에 있어서,
    상기 엔트리 DB의 상기 네트워크 기능 리스트에 상기 서비스 요청 패킷이 전달되도록 하는 엔트리 리스트에 기초하여, 상기 제1 스위치를 제외한 상기 서비스 요청 패킷의 전달 경로 상의 스위치들 중 제2 스위치에, 제2 플로우 변경 메시지를 상기 제2 스위치로 전송하는 단계를 더 포함하는 서비스 체이닝 제공 방법.
  5. 제 3 항에 있어서,
    상기 제1 플로우 변경 메시지는, 상기 네트워크 기능 리스트에 상기 서비스 요청 패킷이 전달되도록 하는 경로를 식별할 수 있는 경로 식별자가 상기 서비스 요청 패킷으로부터 추출될 수 있도록, 상기 서비스 요청 패킷을 변경하도록 하는 액션이 실행되도록 하는 인스트럭션을 구비하는 플로우 엔트리가 상기 제1 스위치에 생성되도록 하는 요청을 포함하는 서비스 체이닝 제공 방법.
  6. 제 5 항에 있어서,
    상기 경로 식별자를 추출할 수 있는 변경된 서비스 요청 패킷을 수신한 제3 스위치에서, 상기 경로 식별자에 대응하는 플로우 엔트리가 있는지 판단하는 단계를 더 포함하는 서비스 체이닝 제공 방법.
  7. 복수의 스위치와 상기 복수의 스위치를 제어하는 제어기를 구비하는 SDN(Software Defined Network) 기반의 네트워크 시스템의 서비스 체이닝 제공 방법으로서,
    상기 복수의 스위치 중 사용자의 서비스 요청 패킷을 수신한 제1 스위치로부터, 상기 제1 스위치에 상기 서비스 요청 패킷로부터 추출된 필드에 대응하는 엔트리가 없다는 제1 패킷-인 메시지를 제어기에서 수신하는 단계;
    상기 제1 패킷-인 메시지로부터 상기 요청 서비스를 종류를 나타내는 서비스 식별자 및 상기 사용자를 식별할 수 있는 사용자 식별자를 추출하는 단계;
    서로 연관된 서비스 테이블, 사용자 테이블, 및 네트워크 기능 테이블을 참조하여 상기 서비스 식별자 및 상기 사용자 식별자에 대응하는 네트워크 기능 리스트에 상기 서비스 요청 패킷이 전달되도록 하는 엔트리 리스트가 존재 하는지 엔트리 DB를 검색하는 단계를 포함하고,
    상기 서비스 테이블에 상기 서비스 식별자에 대응하는 서비스가 없는 경우, 에러 처리하는 단계를 더 포함하고,
    상기 에러 처리는 상기 서비스 요청 패킷이 폐기되도록 상기 엔트리 DB의 업데이트하는 것을 포함하는, 서비스 체이닝 제공 방법.
  8. 제 1 항, 및 제 3 항 내지 제 7 항 중 어느 한 항에 있어서,
    상기 서비스 식별자는 상기 서비스 요청 패킷의 VLAN 필드에 연관되며,
    상기 사용자 식별자는 상기 서비스 요청 패킷의 송신원 IP 주소에 연관되는 것을 특징으로 하는 서비스 체이닝 제공 방법.
  9. 복수의 스위치와 상기 복수의 스위치를 제어하는 제어기를 구비하는 SDN(Software Defined Network) 기반의 네트워크 시스템의 서비스 체이닝 제공 방법으로서,
    상기 복수의 스위치 중 사용자의 서비스 요청 패킷을 수신한 제1 스위치로부터, 상기 제1 스위치에 상기 서비스 요청 패킷로부터 추출된 필드에 대응하는 엔트리가 없다는 제1 패킷-인 메시지를 제어기에서 수신하는 단계;
    상기 제1 패킷-인 메시지로부터 상기 요청 서비스를 종류를 나타내는 서비스 식별자 및 상기 사용자를 식별할 수 있는 사용자 식별자를 추출하는 단계;
    서로 연관된 서비스 테이블, 사용자 테이블, 및 네트워크 기능 테이블을 참조하여 상기 서비스 식별자 및 상기 사용자 식별자에 대응하는 네트워크 기능 리스트에 상기 서비스 요청 패킷이 전달되도록 하는 엔트리 리스트가 존재 하는지 엔트리 DB를 검색하는 단계를 포함하고,
    상기 제1 스위치에서 수신한 상기 서비스 요청 패킷은 상기 제1 스위치와 상기 사용자의 단말기 사이의 이동 통신망 중 적어도 어느 한 디바이스에 의해 상기 사용자 단말기의 원본 패킷에 추가 헤더가 덧 붙여진 캡슐화된 패킷이며,
    상기 제1 스위치에서, 상기 원본 패킷의 헤더로부터 상기 서비스 식별자 및 상기 사용자 식별자를 추출하는 상기 제1 스위치에 연결된 패킷 디캡슐 네트워크 기능으로 상기 서비스 요청 패킷을 전송하는 단계를 더 포함하는 서비스 체이닝 제공 방법.
  10. 제 9 항에 있어서,
    상기 패킷 디캡슐 네트워크 기능에서, 상기 서비스 식별자 및 상기 사용자 식별자를 추출하는 단계;
    상기 추출된 식별자들을 상기 서비스 요청 패킷에 추가하는 단계; 및
    상기 추출된 식별자들이 추가된 서비스 요청 패킷을 상기 제1 스위치로 전송하는 단계를 더 포함하는 서비스 체이닝 제공 방법.
  11. 복수의 스위치와 상기 복수의 스위치를 제어하는 제어기를 구비하는 SDN(Software Defined Network) 기반의 네트워크 시스템의 서비스 체이닝 제공 방법으로서,
    상기 복수의 스위치 중 사용자의 서비스 요청 패킷을 수신한 제1 스위치로부터, 상기 제1 스위치에 상기 서비스 요청 패킷로부터 추출된 필드에 대응하는 엔트리가 없다는 제1 패킷-인 메시지를 제어기에서 수신하는 단계;
    상기 제1 패킷-인 메시지로부터 상기 요청 서비스를 종류를 나타내는 서비스 식별자 및 상기 사용자를 식별할 수 있는 사용자 식별자를 추출하는 단계;
    서로 연관된 서비스 테이블, 사용자 테이블, 및 네트워크 기능 테이블을 참조하여 상기 서비스 식별자 및 상기 사용자 식별자에 대응하는 네트워크 기능 리스트에 상기 서비스 요청 패킷이 전달되도록 하는 엔트리 리스트가 존재 하는지 엔트리 DB를 검색하는 단계를 포함하고,
    상기 복수의 스위치 중 제4 스위치는 상기 네트워크 기능 리스트 중 제1 기능을 구비한 적어도 하나의 제1 네트워크 기능과 출력 논리 포트 및 입력 논리 포트를 통해 연결되고,
    상기 제4 스위치에서, 상기 제4 스위치의 엔트리 테이블에 기초하여 상기 제1 스위치로부터 유래된 패킷을 상기 출력 논리 포트를 통해 출력하는 단계를 더 포함하는 서비스 체이닝 제공 방법.
  12. 제 11 항에 있어서,
    상기 제4 스위치에서, 상기 제4 스위치의 엔트리 테이블에 기초하여 상기 제1 네트워크 기능으로부터 상기 입력 포트를 통해 수신한 패킷을 상기 네트워크 기능 리스트 중 제2 기능을 구비한 제5 스위치로 전송하는 단계를 더 포함하는 서비스 체이닝 제공 방법.
  13. 제 11 항에 있어서,
    상기 복수의 스위치 및 상기 제어기를 관리하는 오케스트레이터에 의해, 적어도 네트워크 상태에 기초하여 상기 제4 스위치의 상기 입력 및 출력 논리 포트에 연결된 제1 네트워크 기능의 개수를 조절하는 단계를 더 포함하는 서비스 체이닝 제공 방법.
  14. 제 11 항에 있어서,
    상기 제어기에서, 상기 복수의 스위치로부터 상기 사용자 식별자 및 상기 사용자 식별자와 연관된 네트워크 기능에서의 패킷 전송량을 포함하는 통계를 수신하는 단계; 및
    상기 수신한 통계로부터 상기 사용자 식별자 당 과금하는 단계를 더 포함하는 서비스 체이닝 제공 방법.
  15. 복수의 스위치와 오픈플로우 프로토콜을 통해 연결된 SDN 기반의 상기 복수의 스위치를 제어하는 SDN 제어기로서,
    상기 상기 복수의 스위치 중 사용자의 서비스 요청 패킷을 수신한 제1 스위치로부터, 상기 제1 스위치에 상기 서비스 요청 패킷로부터 추출된 필드에 대응하는 엔트리가 없다는 제1 패킷-인 메시지를 수신하는 스위치 통신부;
    상기 제1 패킷-인 메시지로부터 상기 요청 서비스를 종류를 나타내는 서비스 식별자 및 상기 사용자를 식별할 수 있는 사용자 식별자를 추출하는 식별자 추출부;
    제공 가능한 서비스들이 나열된 서비스 테이블;
    상기 서비스 테이블의 각각의 제공 가능한 서비스에 각각 연관된 복수의 사용자 리스트를 구비하는 사용자 테이블;
    상기 사용자 테이블의 각각의 사용자 리스트에 각각 연관된 복수의 네트워크 기능 리스트를 구비하는 네트워크 기능 테이블;
    네트워크 토폴로지에 관한 정보를 구비하는 토폴로지 테이블;
    상기 복수의 스위치에서의 패킷 포워딩을 정의한 엔트리를 저장하는 엔트리 DB; 및
    서로 연관된 서비스 테이블, 사용자 테이블, 및 네트워크 기능 테이블을 참조하여 상기 서비스 식별자 및 상기 사용자 식별자에 대응하는 네트워크 기능 리스트에 상기 서비스 요청 패킷이 전달되도록 하는 엔트리 리스트가 존재 하는지 상기 엔트리 DB를 통해 판단하는 엔트리 관리부를 포함하는 SDN 제어기.
  16. 제 15 항에 있어서,
    상기 엔트리 관리부는, 상기 엔트리 DB에 상기 서비스 요청 패킷 전달 엔트리가 존재 하지 않는 경우, 상기 네트워크 기능 리스트의 기능들이 구현된 네트워크 기능들에 상기 서비스 요청 패킷이 포워딩되는 경로가 생성되도록 상기 네트워크 토폴로지 테이블을 참조하여 상기 엔트리 DB를 업데이트 하는, SDN 제어기.
  17. 제 16 항에 있어서,
    상기 엔트리 관리부는, 상기 엔트리 DB의 상기 네트워크 기능 리스트의 구현된 상기 네트워크 기능들에 상기 서비스 요청 패킷이 포워딩되도록 하는 엔트리 리스트에 기초하여 상기 제1 스위치에 제1 플로우 변경 메시지를 상기 스위치 통신부를 통해 전송하는, SDN 제어기.
  18. 제 15 항에 있어서,
    상기 스위치 통신부와 연결되는 상기 복수의 스위치 중 하나는 데이터 센터 네트워크를 상기 복수의 스위치와 동일한 도메인으로 보이게 하는 게이트웨이 스위치인 것을 특징으로 하는, SDN 제어기.
KR1020140038305A 2014-03-31 2014-03-31 Sdn 기반의 서비스 체이닝 시스템 KR101527377B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140038305A KR101527377B1 (ko) 2014-03-31 2014-03-31 Sdn 기반의 서비스 체이닝 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140038305A KR101527377B1 (ko) 2014-03-31 2014-03-31 Sdn 기반의 서비스 체이닝 시스템

Publications (1)

Publication Number Publication Date
KR101527377B1 true KR101527377B1 (ko) 2015-06-09

Family

ID=53504111

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140038305A KR101527377B1 (ko) 2014-03-31 2014-03-31 Sdn 기반의 서비스 체이닝 시스템

Country Status (1)

Country Link
KR (1) KR101527377B1 (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017052989A1 (en) * 2015-09-26 2017-03-30 Intel Corporation Technologies for offloading data object replication and service function chain management
WO2017122847A1 (ko) * 2016-01-12 2017-07-20 쿨클라우드(주) Sdn 기반의 네트워크 시스템의 멀티 테넌트 지원 방법 및 그 시스템
KR101799341B1 (ko) * 2016-01-26 2017-12-20 아토리서치(주) 가상 네트워크 기능의 확장 방법
KR101833712B1 (ko) * 2016-05-31 2018-03-02 아토리서치(주) 소프트웨어 정의 네트워킹을 이용하여 서비스 기능 체인을 운용하는 방법, 장치 및 컴퓨터 프로그램
US9929945B2 (en) 2015-07-14 2018-03-27 Microsoft Technology Licensing, Llc Highly available service chains for network services

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130163427A1 (en) * 2011-12-22 2013-06-27 Ludovic Beliveau System for flexible and extensible flow processing in software-defined networks
US20130318243A1 (en) * 2012-05-23 2013-11-28 Brocade Communications Systems, Inc. Integrated heterogeneous software-defined network

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130163427A1 (en) * 2011-12-22 2013-06-27 Ludovic Beliveau System for flexible and extensible flow processing in software-defined networks
US20130318243A1 (en) * 2012-05-23 2013-11-28 Brocade Communications Systems, Inc. Integrated heterogeneous software-defined network

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9929945B2 (en) 2015-07-14 2018-03-27 Microsoft Technology Licensing, Llc Highly available service chains for network services
WO2017052989A1 (en) * 2015-09-26 2017-03-30 Intel Corporation Technologies for offloading data object replication and service function chain management
US11082515B2 (en) 2015-09-26 2021-08-03 Intel Corporation Technologies for offloading data object replication and service function chain management
WO2017122847A1 (ko) * 2016-01-12 2017-07-20 쿨클라우드(주) Sdn 기반의 네트워크 시스템의 멀티 테넌트 지원 방법 및 그 시스템
KR101799341B1 (ko) * 2016-01-26 2017-12-20 아토리서치(주) 가상 네트워크 기능의 확장 방법
KR101833712B1 (ko) * 2016-05-31 2018-03-02 아토리서치(주) 소프트웨어 정의 네트워킹을 이용하여 서비스 기능 체인을 운용하는 방법, 장치 및 컴퓨터 프로그램

Similar Documents

Publication Publication Date Title
US9654395B2 (en) SDN-based service chaining system
KR101703088B1 (ko) Sdn 기반의 통합 라우팅 방법 및 그 시스템
EP3599742B1 (en) Distributing remote device management attributes to service nodes for service rule processing
CN107005584B (zh) 用于内联服务交换机的方法、设备和存储介质
RU2589340C2 (ru) Сетевая система и способ получения данных тега vlan
KR101527377B1 (ko) Sdn 기반의 서비스 체이닝 시스템
KR20180058594A (ko) Sdn/tap 어플리케이션
KR101746105B1 (ko) 서비스 체이닝이 가능한 오픈플로우 스위치
KR101729944B1 (ko) Sdn 기반의 멀티 테넌트 지원 네트워크 시스템의 ip 주소 제공 방법
KR20180058592A (ko) Sdn 제어기
KR101739100B1 (ko) 서비스 체이닝 가능한 오픈플로우 스위치 제어 방법 및 그 제어기
KR101729945B1 (ko) Sdn 기반의 네트워크 시스템의 멀티 테넌트 지원 방법
KR101729939B1 (ko) Sdn 기반의 멀티 테넌트 지원 네트워크 시스템
KR101707073B1 (ko) Sdn 기반의 에러 탐색 네트워크 시스템
KR101739097B1 (ko) 오픈플로우 스위치의 서비스 체이닝 방법
KR101679224B1 (ko) Sdn 기반의 트래픽 분배 가능한 네트워크 시스템
KR20190054224A (ko) 기계학습 기반 네트워크 자동화 시스템 구조
KR20180058593A (ko) Sdn 화이트박스 스위치
KR20170006950A (ko) Sdn 기반의 네트워크 플랫트닝 시스템 및 그 방법
KR20180085887A (ko) 컨테이너 네트워크 관리 시스템 및 컨테이너 네트워킹과 연동하기 위한 api 인터페이스
KR20180087561A (ko) 동적 가상망 서비스를 제공하기 위한 시스템 인터페이스
KR101806376B1 (ko) Ip 주소 제공하는 sdn 기반의 멀티 테넌트 지원 네트워크 시스템
KR20190054229A (ko) 기계학습 기반 네트워크 자동화 시스템 방법
KR20180086839A (ko) 컨테이너 네트워크 관리 시스템 및 컨테이너 네트워킹과 연동하기 위한 시스템 및 그 방법
KR20180087660A (ko) Sdn 테스트베드 자동화 시스템 동작 방법

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20180529

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190610

Year of fee payment: 5