KR102092091B1 - 소프트웨어 정의 네트워크에서 고가용성 및 고신뢰성을 제공하는 방법, 장치 및 컴퓨터 프로그램 - Google Patents

소프트웨어 정의 네트워크에서 고가용성 및 고신뢰성을 제공하는 방법, 장치 및 컴퓨터 프로그램 Download PDF

Info

Publication number
KR102092091B1
KR102092091B1 KR1020180152097A KR20180152097A KR102092091B1 KR 102092091 B1 KR102092091 B1 KR 102092091B1 KR 1020180152097 A KR1020180152097 A KR 1020180152097A KR 20180152097 A KR20180152097 A KR 20180152097A KR 102092091 B1 KR102092091 B1 KR 102092091B1
Authority
KR
South Korea
Prior art keywords
switch
leaf
leaf switch
host
packet
Prior art date
Application number
KR1020180152097A
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 KR1020180152097A priority Critical patent/KR102092091B1/ko
Application granted granted Critical
Publication of KR102092091B1 publication Critical patent/KR102092091B1/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/24Multipath
    • H04L45/245Link aggregation, e.g. trunking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/32Flooding
    • 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/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2441Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
    • 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/32Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames

Landscapes

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

Abstract

본 발명의 실시예를 따르는 소프트웨어 정의 네트워크에서, 컨트롤러가 리프-스파인 구조의 고가용성을 제공하는 방법은, 상기 리프-스파인 구조의 네트워크에서 인접 스위치 및/또는 링크가 이중화되어 있는 임의의 리프 스위치에 그룹 타입 셀렉트, 상기 리프 스위치와 인접한 제 1 피어 리프 스위치와 연결된 포트 또는 상기 리프 스위치와 인접한 제 2 피어 리프 스위치와 연결된 포트로 아웃하는 액션 버킷을 설정한 제 1 그룹 엔트리를 포함하는 그룹 테이블을 적용하여 상기 리프 스위치의 상기 피어 리프 스위치에 대한 링크 어그리게이션을 설정하는 단계; 및 상기 리프 스위치에 그룹 타입 셀렉트, 상기 리프 스위치의 제 1 스파인 스위치와 연결된 포트 또는 상기 리프 스위치의 제 2 스파인 스위치와 연결된 포트로 아웃하는 액션 버킷을 설정한 제 2 그룹 엔트리를 포함하는 그룹 테이블을 적용하여 상기 리프 스위치의 스파인 스위치에 대한 링크 어그리게이션을 설정하는 단계를 포함하는 것을 특징으로 한다.

Description

소프트웨어 정의 네트워크에서 고가용성 및 고신뢰성을 제공하는 방법, 장치 및 컴퓨터 프로그램 {METHODS, APPARATUS AND COMPUTER PROGRAMS FOR PROVIDING HIGH AVAILABILITY AND RELIABILITY IN SOFTWARE DEFINED NETWORK}
본 발명은 소프트웨어 정의 네트워킹에서 고가용성, 고신뢰성을 제공하는 방법에 대한 것이다. 보다 구체적으로 본 발명은 리프-스파인 구조에서 오픈플로우 프로토콜을 이용하여 고가용성 및 고신뢰성을 제공하는 방법에 대한 것이다.
소프트웨어 정의 네트워킹 (Software Defined Networking, 이하 SDN이라 칭함)은 네트워크의 모든 네트워크 장비를 지능화된 중앙관리시스템에 의해 관리하는 기술을 의미한다. SDN 기술에서는 기존 하드웨어 형태의 네트워크 장비에서 자체적으로 수행하는 패킷 처리와 관련된 제어 동작을 소프트웨어 형태로 제공되는 컨트롤러가 대신하여 처리함으로써, 기존의 네트워크 구조보다 다양한 기능을 개발하고 부여할 수 있다는 장점을 갖는다.
SDN 시스템은 일반적으로 전체 네트워크를 제어하는 컨트롤러 서버와, 상기 컨트롤러 서버에 의해 제어되며 패킷을 처리하는 복수의 오픈플로우 스위치와, 오픈플로우 스위치의 하위 계층에 해당하는 호스트를 포함하여 구성된다. 여기에서 오픈플로우 스위치는 패킷의 송수신 기능만을 담당하게 되고, 패킷의 경로 설정, 관리 및 제어는 모두 컨트롤러 서버에서 이루어진다. 즉, 네트워크 장비를 이루는 Data Plane과 Control Plane을 분리하는 것이 SDN 시스템의 기본 구조라 볼 수 있다.
도 1은 소프트웨어 정의 네트워크의 구성을 설명하기 위한 도면이다.
도 1을 참조하면, 소프트웨어 정의 네트워크(Software Defined Network)는 컨트롤러 서버 (100), 네트워크 장비(200) 및 호스트(300)를 포함할 수 있다. 네트워크 장비(200)와 호스트(300)는 노드(Node)라고 지칭할 수 있으며, 링크(Link)는 2개의 노드 사이의 연결을 의미할 수 있다.
컨트롤러 서버(100)는 네트워크 장비(200)를 관리하는 기능을 하는 것으로, 복수의 네트워크 장비(200)를 중앙 집중형으로 관리 및 제어한다. 구체적으로 컨트롤러 서버(100)는 토폴로지 관리(Topology management), 패킷 처리와 관련된 경로 관리(Path management), 링크 디스커버리(Link discovery), 패킷 흐름인 플로우 관리(Flow management) 등의 기능을 하는 응용 프로그램이 탑재된 형태로 구현될 수 있다.
네트워크 장비(200)는 컨트롤러 서버(100)의 제어에 따라 패킷을 처리하는 기능을 한다. 네트워크 장비(200)의 예로는 이동 통신 기지국, 기지국 제어기, 게이트웨이 장비, 유선 네트워크의 스위치, 라우터 등이 있다.
소프트웨어 정의 네트워크에서 컨트롤러 서버(100)와 오픈플로우 스위치(200)는 상호간 정보를 주고받아야 하며, 이를 위한 프로토콜로 널리 사용되는 것이 오픈플로우 (OpenFlow) 프로토콜이다. 즉, 오픈플로우 프로토콜은 컨트롤러 서버(100)와 오픈플로우 스위치(200)간 서로 통신할 수 있는 표준 규격이다.
오픈플로우 프로토콜을 따르면, 스위치(200)는 컨트롤 채널(Control Channel)을 통해 컨트롤러 서버(100)와 정보를 교환하고, 파이프라인(Pipeline) 프로세싱을 위한 하나 이상의 플로우 테이블(Flow table), 그룹 테이블, 미터 테이블 및/또는 패킷 전달을 위한 네트워크 인터페이스로 하나 이상의 포트를 가질 수 있다.
Open Networking Foundation, "OpenFlow Specification 1.1"
본 발명은 소프트웨어 정의 네트워킹의 오픈플로우 프로토콜을 이용하여 리프-스파인 구조의 고가용성 및 고신뢰성을 제공하는 것을 목적으로 한다. 나아가 본 발명은, 소프트웨어 정의 네트워킹에서 오픈플로우 프로토콜을 이용하여 링크 어그리게이션 (Link Aggregation)을 제공하고, 플로우 룰 설정 과정에서 패킷 유실을 방지하는 방법을 제공하는 것을 목적으로 한다.
본 발명의 실시예를 따르는 소프트웨어 정의 네트워크에서, 컨트롤러가 리프-스파인 구조의 고가용성을 제공하는 방법은, 상기 리프-스파인 구조의 네트워크에서 인접 스위치 및/또는 링크가 이중화되어 있는 임의의 리프 스위치에 그룹 타입 셀렉트, 상기 리프 스위치와 인접한 제 1 피어 리프 스위치와 연결된 포트 또는 상기 리프 스위치와 인접한 제 2 피어 리프 스위치와 연결된 포트로 아웃하는 액션 버킷을 설정한 제 1 그룹 엔트리를 포함하는 그룹 테이블을 적용하여 상기 리프 스위치의 상기 피어 리프 스위치에 대한 링크 어그리게이션을 설정하는 단계; 및 상기 리프 스위치에 그룹 타입 셀렉트, 상기 리프 스위치의 제 1 스파인 스위치와 연결된 포트 또는 상기 리프 스위치의 제 2 스파인 스위치와 연결된 포트로 아웃하는 액션 버킷을 설정한 제 2 그룹 엔트리를 포함하는 그룹 테이블을 적용하여 상기 리프 스위치의 스파인 스위치에 대한 링크 어그리게이션을 설정하는 단계를 포함하는 것을 특징으로 한다.
본 발명에 따르면, 오픈플로우 프로토콜을 이용하여 링크 어그리게이션 (Link Aggregation)을 설정할 수 있어, 오픈플로우 스위치에 범용적으로 리프 스파인 구조의 고가용성을 제공할 수 있는 효과가 있다. 나아가 본 발명에 따르면, 플로우 룰 설정 과정에서 발생할 수 있는 패킷 유실을 방지하기 위하여 프로엑티브 (proactive) 방식으로 패킷의 플러딩 경로를 설정할 수 있어 네트워크의 고신뢰성을 제공할 수 있는 효과가 있다.
도 1은 소프트웨어 정의 네트워크의 구성을 설명하기 위한 도면
도 2는 리프-스파인 기반의 네트워크 아키텍처를 설명하기 위한 도면
도 3은 본 발명의 실시예를 따라 리프-스파인 구조의 네트워크에서 오픈플로우 기반의 고가용성 및 고신뢰성을 제공하는 예시를 설명하기 위한 도면
도 4는 본 발명의 실시예에 따라 패킷을 플러드 또는 브로드캐스트하는 예시를 설명하기 위한 도면
본 발명은 이하에 기재되는 실시예들의 설명 내용에 한정되는 것은 아니며, 본 발명의 기술적 요지를 벗어나지 않는 범위 내에서 다양한 변형이 가해질 수 있음은 자명하다. 그리고 실시예를 설명함에 있어서 본 발명이 속하는 기술 분야에 널리 알려져 있고 본 발명의 기술적 요지와 직접적으로 관련이 없는 기술 내용에 대해서는 설명을 생략한다.
한편, 첨부된 도면에서 동일한 구성요소는 동일한 부호로 표현된다. 그리고 첨부 도면에 있어서 일부 구성요소는 과장되거나 생략되거나 개략적으로 도시될 수도 있다. 이는 본 발명의 요지와 관련이 없는 불필요한 설명을 생략함으로써 본 발명의 요지를 명확히 설명하기 위함이다. 이하 첨부된 도면을 참조하여 본 발명의 바람직한 실시 예들을 상세히 설명한다.
본 발명의 명세서에서 “플로우 룰”의 용어는 해당 업계의 통상의 기술자 입장에서 소프트웨어 정의 네트워크에서 컨트롤러 서버가 적용하는 네트워크 정책을 의미하는 것으로 이해되어야 한다.
나아가 본 명세서에서 오픈플로우 스위치(200)는 오픈플로우 프로토콜만을 지원하는 스위치, 오픈플로우 프로토콜을 지원하는 가상 스위치, 오픈플로우 프로토콜을 지원하는 일반적인 L2 스위치를 포함하는 개념으로 이해될 수 있다.
최근 가상화, 클라우드 컴퓨팅이 대중화되면서, 효율적인 데이터센터 아키텍처로 리프-스파인 (Leaf- Spine) 구조의 수평적인 네트워크 환경이 주목받고 있다. 리프-스파인 구조는 데이터센터 내의 대역폭 사용량을 최대로 활용하기 위한 구조로, 다른 네트워크 구조에 비해서 확장성이 높은 특징이 있다.
도 2는 리프-스파인 기반의 네트워크 아키텍처를 예시하고 있다. 도 2의 예에서는 스위치 221 내지 226가 리프 스위치, 스위치 210, 215가 스파인 스위치에 해당한다.
도 2의 예시에서는 리프 스위치 223, 224에 컴퓨트 노드 231, 리프 스위치 225, 226에 컴퓨트 노드 232 가 연결되어 있다.
이 경우, 컴퓨트 노드에서 구현되는 가상 머신에서 클라우드 서비스 환경을 제공하며, 클라우드 컨트롤러 노드 241에서 컴퓨트 노드 및 가상 머신 정보를 관리할 수 있다. 클라우드 컨트롤러 노드 241는 가상 머신의 네트워크 정보를 SDN 컨트롤러 242에 전달하고, SDN 컨트롤러 242는 이러한 정보를 바탕으로 가상 스위치 및 물리 스위치를 제어할 수 있다.
한편, 도 2의 예시에서 리프 스위치 221, 222는 물리적인 호스트 233, 234와 연결되어 있다. 이러한 물리 머신은 SDN 컨트롤러 (242)에 등록되어 네트워크 토폴로지로 관리된다. 보다 구체적으로, SDN 컨트롤러 (242)는 스위치 (221, 222)로부터 호스트 (233, 234)가 생성한 패킷을 패킷인 메시지를 이용하여 수집하고, 패킷의 내용을 확인하여 호스트로 등록하며, 등록된 호스트의 패킷 처리를 위한 플로우 룰을 설정하게 된다.
이와 같이 패킷이 발생하고 난 뒤 플로우 룰을 설정하는 방식은 리엑티브 (Reactive) 모드라고 한다. 그런데 플로우 룰 설정 후, SDN 컨트롤러에서 패킷인 메시지로 받은 패킷을 처리할 때, 스위치의 메모리 상황에 따라 패킷이 유실될 수 있는 문제가 있다.
한편, 리프-스파인 구조는 단일 장애점을 없애기 위해, 스파인, 리프, 링크 등을 이중화로 구축하며, 네트워크의 고가용성을 제공할 수 있다. 그런데 이중화 라인을 Active-Active로 구성하여 대역폭을 최대화하기 위해서는 MLAG (Multi-Chassis Link Aggregation) 와 같은 기능을 스위치에서 지원해야 한다. 그러나 이경우, 스위치 벤더마다 지원하는 기능이 상이하기 때문에 네트워크 구성의 벤더 종속성이 커지는 문제가 발생할 수 있다.
본 발명은 상기와 같은 문제를 해결하기 위한 것이다.
본 발명의 실시예를 따르면, 리프-스파인 스위치의 링크 어그리게이션을 오픈플로우 프로토콜을 이용하여 설정할 수 있어, 스위치 기능에 의존하지 않고 네트워크의 고가용성을 제공할 수 있는 효과가 있다.
나아가 본 발명의 실시예를 따르면, 리프-스파인 구조에서 브로드캐스팅 경로의 루프를 방지할 수 있다. 나아가 본 발명의 실시예를 따르면, SDN 컨트롤러에 패킷인된 패킷을 네트워크에 플러딩시켜 패킷 유실에 대비할 수 있다.
도 3은 본 발명의 실시예를 따라 리프-스파인 구조의 네트워크에서 오픈플로우 기반의 고가용성 및 고신뢰성을 제공하는 예시를 설명하기 위한 도면이다.
도 3a은 310, 315, 321 내지 324가 오픈플로우 스위치, 351 내지 354가 호스트로, 리프-스파인 구조의 스위치, 링크가 이중화된 네트워크의 예시이다. 본 발명의 실시예를 따르면, 리프 그룹은 상호 연결된 리프 스위치들의 그룹이며, 임의의 리프 그룹에서 제 1 리프 스위치와 연결된 제 2 리프 스위치는 피어 리프 스위치라고 할 수 있다.
도 3a과 같은 예에서 리프 스위치 321와 리프 스위치 322은 하나의 리프 그룹으로 묶일 수 있으며, 321에 대해 322는 피어 리프 스위치라고 할 수 있다. 나아가 상기 리프 그룹에 연결된 호스트 그룹은 호스트 351 및 호스트 352가 해당된다.
본 발명의 실시예를 따르면, 컨트롤러는 표 1과 같은 그룹 테이블 및 표 2와 같은 플로우 테이블을 스위치 321에 적용하여 모든 이중화 라인을 Active-Active로 구성할 수 있다. 여기서는 도 3a의 리프-스파인 구조에서 리프 스위치 321을 대표로 설명하고 있지만, 컨트롤러는 동일한 논리로 리프 스위치 322, 323, 324 역시 설정할 것이다.
Name Group table entries
Peer Group Type : select, Action Bucket: Output port 1, Output port 2
Spine Group Type : select, Action Bucket: Output port 47, Output port 48
Flow table entries
Priority Match Fields Instructions
5 목적지 : 연결 호스트 해당 호스트로 포워딩
4 인포트 : 스파인 스위치 Output : Peer (Group)
3 인포트 : 피어 스위치 Drop
2 목적지 : 피어 호스트 Output : Peer (Group)
1 목적지 : 리프 그룹에 연결되지 않은 호스트 Output : Spine (Group)
표 1의 첫번째 그룹 테이블 엔트리는 패킷을 포트 1 또는 2로 선택적으로 포워딩하여 스파인 스위치로 패킷을 전달하는 정책 (action) 이며, 두번째 그룹 테이블 엔트리는 패킷을 포트 47 또는 48로 선택적으로 포워딩하여 피어 리프 스위치 322로 패킷을 전달하는 정책 (action)에 해당한다. 이에 따르면 스위치 321의 포트 중 하나가 다운되더라도 다른 포트로 패킷을 전송할 수 있어 네트워크의 고가용성이 보장될 수 있다. 표 2는 리프 스위치 321의 토폴로지 위치에서 패킷 경로에 대한 모든 경우의 수가 적용된 것이다.
리프-스파인 구조에서 임의의 리프 스위치에 유입되는 패킷 경로는 스파인 스위치에서 유입되거나, 리프 그룹에 속하는 피어 리프 스위치에서 유입되거나 또는 리프 그룹에 연결된 호스트 그룹에서 유입되는 세 가지 경우의 수가 있다. 나아가 임의의 리프 스위치에서 스파인 스위치 및 피어 리프 스위치와 연결된 링크는 이중화 되어 있으며, 호스트 그룹과 연결될 수 있으며, 각각의 링크는 정상 또는 장애 상태일 수 있다.
표 2는 링크 상태에 따라 상기 경우의 수에 적용되는 모든 플로우 룰을 설정한 것이다.
표 2에서 제 1 우선순위부터 제 4 우선순위의 플로우 엔트리는 임의의 리프 그룹에 연결된 호스트 그룹을 목적지로 하는 패킷에 대한 경로를 설정하며, 제 5 우선 순위의 플로우 엔트리는 리프 그룹에 연결되지 않은 호스트 그룹을 목적지로 하는 패킷에 대한 경로를 설정하고 있다.
표 2의 각각의 플로우 엔트리에 대한 설명은 도 3b 내지 도 3g에 대한 설명에서 후술된다.
표 2의 제 1 우선순위를 가지는 플로우 엔트리는 도 3b와 같은 경우의 플로우 경로를 설정한 것이다.
도 3b에서 361, 362, 363의 경로로 리프 스위치 321에 유입된, 컴퓨트 노드 351에서 구현된 가상 머신 341이 목적지인 패킷을 가정할 수 있다. 상기 패킷은 리프 스위치 321의 모든 링크가 정상 동작할 경우, 표 2의 제 1 우선순위 플로우 엔트리에 따라 리프 스위치 321에 연결된 컴퓨트 노드 351로 포워딩될 것이다. 이후 패킷은 컴퓨트 노드 351에서 구현되는 가상 스위치에 의해 가상 머신 341로 포워딩될 것이다.
표 2의 제 2 우선순위를 가지는 플로우 엔트리는 도 3c와 같은 경우의 플로우 경로를 설정한 것이다. 도 3c에서 371의 경로로 스파인 스위치 310에서 리프 스위치 321로, 유입된 컴퓨트 노드 351에서 구현된 가상 머신 341이 목적지인 패킷은 표 2의 제 1 우선순위 플로우 엔트리에 따라 컴퓨트 노드 351의 링크 372가 정상 상태이면 연결된 컴퓨트 노드 351로 포워딩될 것이다.
그러나 도 3c와 같이 컴퓨트 노드 351이 연결되어 있지 않은 경우, (372) 표 2의 제 2 우선순위 플로우 엔트리에 따라, 두번째 그룹 테이블 엔트리가 적용되어 패킷을 포트 47 또는 48로 선택적으로 포워딩하여 피어 리프 스위치 322로 패킷을 전달할 것이다. 그 경우 피어 리프 스위치 322는 표 2의 제 1 우선순위 플로우 엔트리에 따라 연결된 컴퓨트 노드 351로 포워딩할 것이다. 이후 패킷은 컴퓨트 노드 351에서 구현되는 가상 스위치에 의해 가상 머신 341로 포워딩될 것이다. 표 2의 제 3 우선순위를 가지는 플로우 엔트리는 도 3d와 같은 경우의 플로우 경로를 설정한 것이다. 도 3d에서 383의 경로로 피어 리프 스위치 383에서 리프 스위치 321로 유입된 컴퓨트 노드 351에서 구현되는 가상 머신 341이 목적지인 패킷을 고려할 수 있다.
이때 피어 리프 스위치 322은 표 2의 제 1 우선순위 플로우 엔트리에 따라 컴퓨트 노드 351의 링크 382가 정상 상태이면 연결된 컴퓨트 노드 351로 포워딩했을 것이나, 링크 382가 연결되어 있지 않아 표 2의 제 2 우선순위 플로우 엔트리에 따라 피어 리프 스위치 321로 포워딩한 것이다.
이때, 리프 스위치 321은 표 2의 제 1 우선순위 플로우 엔트리에 따라 컴퓨트 노드 351의 링크 372가 정상 상태이면 연결된 컴퓨트 노드 351로 포워딩했을 것이나, 링크 381이 연결되어 있지 않아 표 2의 제 2 우선순위 플로우 엔트리에 따라 피어 리프 스위치 322로 해당 패킷을 포워딩하는 것을 고려할 수 있다. 그러나 피어 리프 스위치 322 역시 목적지 컴퓨트 노드 351와 연결되어 있지 않기 때문에 리프 스위치 321은 표 2의 제 3 우선순위 플로우 엔트리에 따라 해당 패킷을 드랍 처리하게 될 것이다.
표 2의 제 4 우선순위를 가지는 플로우 엔트리는 도 3e와 같은 경우의 플로우 경로를 설정한 것이다. 도 3e에서 386의 경로로 리프 스위치 321로 유입된, 컴퓨트 노드 351에서 구현된 가상 머신 341이 소스이며 컴퓨트 노드 352가 목적지인 패킷을 고려할 수 있다.
이때 리프 스위치 321은 표 2의 제 1 우선순위 플로우 엔트리에 따라 컴퓨트 노드 352의 링크 385 가 정상 상태이면 연결된 컴퓨트 노드 352로 포워딩했을 것이다.
그러나 도 3e와 같이 컴퓨트 노드 352가 연결되어 있지 않은 경우 (385) 표 2의 제 4 우선순위 플로우 엔트리에 따라, 두번째 그룹 테이블 엔트리가 적용되어 패킷을 포트 47 또는 48로 선택적으로 포워딩하여 피어 리프 스위치 322로 패킷을 전달할 것이다. 그 경우 피어 리프 스위치 322는 표 2의 제 1 우선순위 플로우 엔트리에 따라, 패킷을 연결된 컴퓨트 노드 352로 포워딩할 것이다. 이후 패킷은 컴퓨트 노드 352에서 구현되는 가상 스위치에 의해 목적지 가상 머신으로 포워딩될 것이다.
표 2의 제 5 우선순위를 가지는 플로우 엔트리는 도 3f와 같은 경우의 플로우 경로를 설정한 것으로. 특히 리프 그룹에 연결된 호스트 그룹 외부를 목적지로 하는 패킷에 대한 경로를 설정하고 있다.
도 3f에서 388의 경로로 리프 스위치 321로 유입된, 컴퓨트 노드 351에서 구현된 가상 머신 341이 소스이고, 리프 그룹에 연결된 가상 머신 이외의 목적지를 가지는 패킷은 표 2의 제 5 우선순위를 가지를 플로우 엔트리에 따라 처리될 것이다. 보다 구체적으로 리프 스위치 321은 첫번째 그룹 테이블 엔트리를 적용하여 패킷을 포트 1 또는 2로 선택적으로 포워딩하여 연결된 스파인 스위치 310 로 패킷을 전달할 것이다.
상기 실시예는 목적지가 가상 머신인 경우에 적용될 수 있다. 가상 머신의 경우, 클라우드 컨트롤러에서 호스트 위치 정보가 파악되며 해당 정보는 SDN 컨트롤러에 제공된다. 따라서 SDN 컨트롤러는 네트워크에 존재하는 모든 가상 머신의 상태를 파악하고 있으며, 임의의 리프 스위치를 기준으로, 해당 리프 그룹에 연결된 가상 머신 이외의 목적지를 가지는 패킷은 모두 스파인 스위치로 전송하는 플로우 룰을 적용할 수 있다. 상기 실시예를 따르면 스위치에 적용되는 플로우 엔트리 수를 최적화할 수 있다.
한편, 가상 머신과 달리 물리 머신의 경우, SDN 컨트롤러에서 모두 파악하고 있는 것으로 확신할 수 없다. 네트워크에는 SDN 컨트롤러가 파악하지 못한 물리 머신이 존재할 수 있으며, 예를 들어 리프 스위치와 새로 연결되거나 포트가 변경되어, 컨트롤러에서 관리하는 호스트 테이블 업데이트가 필요한 경우를 고려할 필요가 있다.
예를 들어 도 3g의 예에서, 호스트 351이 리프 스위치 321에 신규로 연결한 경우, SDN 컨트롤러 242는 오픈플로우 프로토콜에 따라 호스트 351이 생성한 패킷의 내용을 스위치 321로부터 획득할 것이다. 오픈플로우 프로토콜에 따르면 호스트 351에서 임의의 IP 패킷 또는 ARP 패킷이 생성되면, 스위치 321은 패킷의 경로를 문의하기 위해 해당 패킷을 컨트롤러 242에 패킷인 메시지 타입을 이용하여 전송하기 때문이다.
이후 컨트롤러 242는 패킷인 메시지에 포함된 호스트 351이 생성한 패킷의 내용 및 스위치와 링크 테이블을 확인하여 호스트 351을 호스트 테이블에 업데이트하고, 호스트 351을 반영하여 전체 네트워크의 플로우 룰을 업데이트할 것이다.
그런데, 이와 같이 오픈플로우 프로토콜에서 설정한 프로세스에 따르는 경우, 신규 호스트 351에서 생성된 패킷의 유실이 발생하는 경우가 있다. 예를 들어 스위치 321에서 컨트롤러 242로 패킷인 메시지를 전송하는 과정에 해당 패킷은 스위치 321의 메모리에 잠시 저장되는데, 이때 스위치 321의 메모리 상태에 따라 상기 패킷이 드랍되는 경우가 발생할 수 있다. 또 다른 예로 등록되지 않은 호스트에서 악의적으로 패킷을 발생시키거나 SDN 컨트롤러로 패킷인이 무수히 대량으로 유입되어 컨트롤러 내부 메모리 공간이 부족해지는 경우를 고려할 수 있다.
따라서 본 발명의 실시예를 따르면, 미확인 호스트, 즉 컨트롤러에 등록이 필요한 호스트가 생성한 패킷은 네트워크로 플러드(Flood)되어 패킷 손실에 대비할 수 있다. 본 발명의 실시예를 따르는 패킷의 플러드는 패킷의 브로드캐스트와 실질적으로 동일한 방법을 따를 수 있다.
패킷인 메시지의 유실에 대비하기 위하여, 등록이 필요한 패킷을 네트워크에 플러드하는 보다 구체적인 설명은 첨부된 도 4에 대한 설명에서 후술된다.
도 4는 본 발명의 실시예에 따라 패킷을 플러드 또는 브로드캐스트하는 예시를 설명하기 위한 도면이다.
예를 들어 컨트롤러는 도 4a와 같은 리프-스파인 구조에 대해 루프가 발생하지 않도록 도 4b와 같은 스패닝 트리를 작성하고 이를 기반으로 패킷의 플러드 또는 브로드캐스트 경로를 설정할 수 있다.
이 경우 호스트 및 스파인 스위치의 패킷 분산 정책에 따라 마스터 스위치 (321, 310, 323)이 변경될 수 있으며, 스패닝 트리 모양이 달라질 것이다. 예를 들어 호스트 351에서 리프 스위치 321이 아니라 피어 리프 스위치 322로 패킷을 전송한 경우, 스패닝 트리에서 스위치 322가 루트 351 다음의 노드가 될 것이다.
도 4b와 같은 스패닝 트리를 기반으로, 소스 호스트 351의 등록을 위하여, 컨트롤러는 소스 리프 스위치 321에 아래의 표 3과 같은 플로우 룰을 설정할 수 있다. 여기서는 도 4a의 리프-스파인 구조에서 리프 스위치 321을 대표로 설명하고 있지만, 컨트롤러는 동일한 논리로 리프 스위치 322, 323, 324 역시 설정할 것이다.
Flow table
Priority Match Fields Instructions
3 인포트 : 스파인 스위치 모든 피어 스위치 및 모든 호스트로 전송
2 인포트 : 피어 스위치 피어 리프 스위치와 연결이 끊어져 있고, 해당 리프 스위치에만 연결되어 있는 호스트로 전송
1 * 스파인 스위치, 피어 스위치, 모든 호스트로 전송
표 3에서 제 1 우선순위부터 제 3 우선순위의 플로우 엔트리는 임의의 리프 스위치에 유입된, 컨트롤러에 등록해야 하는 패킷에 대한 경로를 도 4b와 같은 스패닝 트리를 기반으로 설정하고 있다. 표 3의 제 1 우선순위를 가지는 플로우 엔트리에 따르면, 리프 스위치 321에 유입된 등록이 필요한 패킷은, 인포트가 스파인 스위치 (310)와 연결된 포트인 경우, 표 3의 제 1 우선순위 플로우 룰에 따라, 도 4b의 스패닝 트리에서 리프 스위치 321과 연결된 피어 리프 스위치 322 및 호스트 352로 플러딩될 것이다.
한편, 표 3의 제 2 우선순위를 가지는 플로우 엔트리에 따르면, 리프 스위치 321에 유입된 등록이 필요한 패킷은, 인포트가 피어 리프 스위치 322와 연결된 포트인 경우, 표 3의 제 2 우선순위 플로우 룰에 따라, 피어 리프 스위치 322와 연결이 끊어져 있고, 해당 리프 스위치 321에만 연결되어 있는 호스트로 플러딩될 것이다.
예를 들어 도 4b의 스패닝 트리에서 피어 리프 스위치 322와 호스트 352의 링크 410의 연결이 끊어져 있고, 리프 스위치 321과 호스트 352의 링크 415가 연결되어 있는 경우를 고려할 수 있다. 이경우, 리프 스위치 321에 유입된 등록이 필요한 패킷은, 인포트가 피어 리프 스위치 322와 연결된 포트인 경우, 표 3의 제 2 우선순위 플로우 룰에 따라, 피어 리프 스위치 322와 연결이 끊어져 있고, 해당 리프 스위치 321에만 연결되어 있는 호스트 352로 플러딩될 것이다.
피어 리프 스위치 322은 표 3의 제 1 우선순위 플로우 엔트리에 따라 연결된 호스트 351 또는 352의 링크가 정상 상태이면 연결된 호스트 351, 352로 플러딩했을 것이나, 스패닝 트리에서 호스트 352와 연결되어 있지 않아 표 3의 제 1 우선순위 플로우 엔트리에 따라 피어 리프 스위치 321로 해당 패킷이 플러딩됐기 때문이다.
한편, 표 3의 제 3 우선순위를 가지는 플로우 엔트리에 따르면, 리프 스위치 321에 유입된 등록이 필요한 패킷은, 인포트가 스파인 스위치 310 또는 피어 리프 스위치 322가 아닌 모든 경우 (즉, 인포트가 연결된 호스트 351 또는 352인 경우)에 표 3의 제 3 우선순위 플로우 룰에 따라, 도 4b의 스패닝 트리에서 리프 스위치 321과 연결된 피어 스위치 322, 호스트 351, 352 및 스파인 스위치 310로 플러딩될 것이다.
본 발명의 상기 실시예를 따르면, 리프- 스파인 구조의 네트워크에서 등록이 필요한 호스트의 패킷을 컨트롤러에 의존하지 않고 네트워크에 효율적으로 플러딩할 수 있어, 패킷인 메시지의 유실에 대비할 수 있는 효과가 있다.
본 명세서와 도면에 게시된 본 발명의 실시 예들은 본 발명의 기술 내용을 쉽게 설명하고 본 발명의 이해를 돕기 위해 특정 예를 제시한 것뿐이며, 본 발명의 범위를 한정하고자 하는 것은 아니다. 여기에 게시된 실시 예들 이외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형 예들이 실시 가능하다는 것은 본 발명이 속하는 기술 분야에서 통상의 지식 가진 자에 자명한 것이다.

Claims (6)

  1. 소프트웨어 정의 네트워크에서, 컨트롤러가 리프-스파인 구조의 고가용성을 제공하는 방법에 있어서,
    상기 리프-스파인 구조의 네트워크에서 인접 스위치 및/또는 링크가 이중화되어 있는 임의의 리프 스위치에 그룹 타입 셀렉트, 상기 리프 스위치와 인접한 제 1 피어 리프 스위치와 연결된 포트 또는 상기 리프 스위치와 인접한 제 2 피어 리프 스위치와 연결된 포트로 아웃하는 액션 버킷을 설정한 제 1 그룹 엔트리를 포함하는 그룹 테이블을 적용하여 상기 리프 스위치의 상기 피어 리프 스위치에 대한 링크 어그리게이션을 설정하는 단계;
    상기 리프 스위치에 그룹 타입 셀렉트, 상기 리프 스위치의 제 1 스파인 스위치와 연결된 포트 또는 상기 리프 스위치의 제 2 스파인 스위치와 연결된 포트로 아웃하는 액션 버킷을 설정한 제 2 그룹 엔트리를 포함하는 그룹 테이블을 적용하여 상기 리프 스위치의 스파인 스위치에 대한 링크 어그리게이션을 설정하는 단계;
    상기 리프-스파인 구조의 네트워크에 대해 스패닝 트리를 작성하는 단계; 및
    상기 리프 스위치에, 소스가 상기 컨트롤러에 알려지지 않은 호스트이며, 인포트가 상기 스패닝 트리에서 상기 리프 스위치의 마스터 스파인 스위치인 패킷은 상기 리프 스위치에 연결된 모든 상기 피어 리프 스위치 및 상기 호스트로 전송하도록 설정하는 제 1 플로우 엔트리를 적용하여 상기 리프 스위치의 상기 패킷의 유실에 대비하는 단계를 포함하는 것을 특징으로 하는 고가용성 제공 방법.
  2. 제 1항에 있어서,
    상기 리프 스위치에 제 1 우선순위의 플로우 룰로, 목적지가 상기 리프 스위치 또는 상기 피어 리프 스위치에 연결된 호스트 그룹에 포함된 호스트인 패킷은 상기 호스트로 포워딩하는 플로우 엔트리를 적용하는 단계; 및
    상기 리프 스위치에 제 2 우선순위의 플로우 룰로, 목적지가 상기 호스트 그룹에 포함된 호스트이며, 상기 패킷이 들어온 포트가 상기 리프 스위치의 스파인 스위치인 패킷은 상기 제 1 그룹 엔트리를 적용하도록 설정하는 플로우 엔트리를 적용하는 단계를 포함하는 것을 특징으로 하는 고가용성 제공 방법.
  3. 제 2항에 있어서,
    상기 리프 스위치에 제 3 우선순위의 플로우 룰로, 목적지가 상기 호스트 그룹에 포함된 호스트이며, 인포트가 상기 피어 리프 스위치인 패킷은 드랍하는 플로우 엔트리를 적용하는 단계; 및
    상기 리프 스위치에 제 4 우선순위의 플로우 룰로, 목적지가 피어 리프 스위치에 연결된 호스트인 패킷은 상기 제 1 그룹 엔트리를 적용하도록 설정하는 플로우 엔트리를 적용하는 단계를 포함하는 것을 특징으로 하는 고가용성 제공 방법.
  4. 제 3 항에 있어서,
    상기 리프 스위치에 제 5 우선순위의 플로우 룰로, 목적지가 상기 호스트 그룹에 포함되지 않은 호스트인 패킷은 상기 제 2 그룹 엔트리를 적용하도록 설정하는 플로우 엔트리를 적용하는 단계를 포함하는 것을 특징으로 하는 고가용성 제공 방법.
  5. 삭제
  6. 제 1항에 있어서,
    상기 리프 스위치에, 소스가 상기 컨트롤러에 알려지지 않은 호스트이며, 인포트가 상기 스패닝 트리에서 상기 리프 스위치의 백업인 피어 리프 스위치인 패킷은 상기 리프 스위치에 연결되어 있으나 상기 피어 리프 스위치와 연결되지 않은 호스트로만 전송하도록 설정하는 제 2 플로우 엔트리를 적용하여 상기 리프 스위치의 패킷의 유실에 대비하는 단계를 포함하는 것을 특징으로 하는 고가용성 제공 방법.
KR1020180152097A 2018-11-30 2018-11-30 소프트웨어 정의 네트워크에서 고가용성 및 고신뢰성을 제공하는 방법, 장치 및 컴퓨터 프로그램 KR102092091B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180152097A KR102092091B1 (ko) 2018-11-30 2018-11-30 소프트웨어 정의 네트워크에서 고가용성 및 고신뢰성을 제공하는 방법, 장치 및 컴퓨터 프로그램

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180152097A KR102092091B1 (ko) 2018-11-30 2018-11-30 소프트웨어 정의 네트워크에서 고가용성 및 고신뢰성을 제공하는 방법, 장치 및 컴퓨터 프로그램

Publications (1)

Publication Number Publication Date
KR102092091B1 true KR102092091B1 (ko) 2020-03-23

Family

ID=69998550

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180152097A KR102092091B1 (ko) 2018-11-30 2018-11-30 소프트웨어 정의 네트워크에서 고가용성 및 고신뢰성을 제공하는 방법, 장치 및 컴퓨터 프로그램

Country Status (1)

Country Link
KR (1) KR102092091B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230076020A (ko) 2021-11-23 2023-05-31 솔포스 주식회사 컴퓨터 가속율 알고리즘을 이용한 수행력 진단 시스템 및 방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160020939A1 (en) * 2014-07-21 2016-01-21 Big Switch Networks, Inc. Systems and methods for handling link aggregation failover with a controller
KR20180040358A (ko) * 2016-10-12 2018-04-20 아토리서치(주) 리프-스파인 구조의 소프트웨어 정의 네트워킹에서 목적지 기반 패킷 전송 제어 방법 및 장치

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160020939A1 (en) * 2014-07-21 2016-01-21 Big Switch Networks, Inc. Systems and methods for handling link aggregation failover with a controller
KR20180040358A (ko) * 2016-10-12 2018-04-20 아토리서치(주) 리프-스파인 구조의 소프트웨어 정의 네트워킹에서 목적지 기반 패킷 전송 제어 방법 및 장치

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Open Networking Foundation, "OpenFlow Specification 1.1"

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230076020A (ko) 2021-11-23 2023-05-31 솔포스 주식회사 컴퓨터 가속율 알고리즘을 이용한 수행력 진단 시스템 및 방법

Similar Documents

Publication Publication Date Title
US11722408B1 (en) Service chaining among devices of interconnected topology
KR102233645B1 (ko) 가상 네트워크 기반 분산 다중 도메인 라우팅 제어 시스템 및 라우팅 제어 방법
EP3188409B1 (en) Oam mechanisms for evpn active-active services
CN107623712B (zh) 网络功能虚拟化环境中的虚拟客户端设备服务提供系统及用于其的网络功能虚拟云
RU2651149C2 (ru) Sdn-контроллер, система центра обработки данных и способ маршрутизируемого соединения
US9628375B2 (en) N-node link aggregation group (LAG) systems that can support various topologies
US8943490B1 (en) Intelligent non-stop software upgrade
RU2530338C2 (ru) Предварительно подготовленное сопряжение на основе состояния линий связи поставщиков (plsb) с маршрутизируемым резервированием
CN109672550B (zh) 用于多级网络结构的简化配置
US10009267B2 (en) Method and system for controlling an underlying physical network by a software defined network
US20150117216A1 (en) Method and system for load balancing at a data network
EP2608459B1 (en) Router, virtual cluster router system and establishing method thereof
EP3484074B1 (en) Data center optical transport failure protection
EP3069471B1 (en) Optimized multicast routing in a clos-like network
US9515927B2 (en) System and method for layer 3 proxy routing
TWI639325B (zh) 自動配置的交換機、自動配置交換機的方法、交換機自動部署的軟體定義網路系統及其方法
CN111263373B (zh) 数据处理方法、控制器和转发设备
CN107735989B (zh) 用于传输网络上站点互连的方法和系统
US9800521B2 (en) Network switching systems and methods
KR101658824B1 (ko) 소프트웨어 정의 네트워크에서 플로우 룰을 변경하는 방법, 장치 및 컴퓨터 프로그램
CN107911297A (zh) 一种sdn网络带内控制通道建立方法及设备
KR102011021B1 (ko) Sdn 기반 네트워크 가상화 플랫폼의 네트워크 하이퍼바이저에서 트래픽 엔지니어링 방법 및 프레임워크
CN109873724B (zh) 应用于sdn网络的服务链高可用方法
KR102092091B1 (ko) 소프트웨어 정의 네트워크에서 고가용성 및 고신뢰성을 제공하는 방법, 장치 및 컴퓨터 프로그램
CN104320322A (zh) 一种报文控制方法和设备

Legal Events

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