KR101621719B1 - 소프트웨어 정의 데이터 센터에서 멀티포인트 통신 서비스를 제공하는 방법, 장치 및 컴퓨터 프로그램 - Google Patents

소프트웨어 정의 데이터 센터에서 멀티포인트 통신 서비스를 제공하는 방법, 장치 및 컴퓨터 프로그램 Download PDF

Info

Publication number
KR101621719B1
KR101621719B1 KR1020150014645A KR20150014645A KR101621719B1 KR 101621719 B1 KR101621719 B1 KR 101621719B1 KR 1020150014645 A KR1020150014645 A KR 1020150014645A KR 20150014645 A KR20150014645 A KR 20150014645A KR 101621719 B1 KR101621719 B1 KR 101621719B1
Authority
KR
South Korea
Prior art keywords
software
network
software switch
frame
header
Prior art date
Application number
KR1020150014645A
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 KR1020150014645A priority Critical patent/KR101621719B1/ko
Application granted granted Critical
Publication of KR101621719B1 publication Critical patent/KR101621719B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/70Virtual switches
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/354Switches specially adapted for specific applications for supporting virtual local area networks [VLAN]
    • 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

Landscapes

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

Abstract

본원발명은 소프트웨어 정의 데이터 센터(SDDC, Software Defined Data Center) 환경 내의 소프트웨어 스위치를 구현하는 서버가 프레임을 멀티포인트 전송하는 방법에 대한 것으로, 복수의 가상 머신을 도착지(Destination)로 하는 프레임을 제 1 소프트웨어 스위치가 상기 제 1 가상 머신으로부터 수신하는 단계; 및 도착지 가상 머신들 각각에게 연결된 모든 소프트웨어 스위치가 상기 제 1 소프트웨어 스위치와 동일한 L2 네트워크에 포함되는 경우, 태넌트 ID 정보를 포함하는 Mac 헤더를 상기 프레임 바로 앞에 추가한 프레임을 멀티캐스트 서비스 노드에 포워드하는 단계를 포함하는 것을 특징으로 한다.

Description

소프트웨어 정의 데이터 센터에서 멀티포인트 통신 서비스를 제공하는 방법, 장치 및 컴퓨터 프로그램 {METHOD, APPARATUS AND COMPUTER PROGRAM FOR PROVIDING MULTIPOINT COMMUNICATION SERVICE OF SOFTWARE DEFINED DATA CENTER}
본 발명은 소프트웨어 정의 데이터 센터 (SDDC, Software Defined Data Center) 환경의 네트워크 가상화를 구현하는 방법에 대한 것이다. 보다 구체적으로 본 발명은 SDDC 환경에서 데이터 전송을 위한 터널링(Tunneling)을 효율적으로 구성하고, 멀티포인트 통신 서비스를 제공하는 방법, 장치 및 컴퓨터 프로그램에 대한 것이다.
최근 ‘소프트웨어 정의’ 기술은 데이터센터 구성 요소들 전반에 새로운 변화를 일으키고 있다. SDDC(Software Defined Data Center), 소프트웨어 정의 데이터센터는 데이터센터를 구성하는 서버, 스토리지, 네트워킹 등을 모두 가상화함으로써 하드웨어를 컴퓨팅 자원과 분리하여 데이터 센터를 구축하는 개념이다.
한편 소프트웨어 정의 네트워크 (SDN, Software Defined Network)는 SDDC에서 서버 가상화 실현에 문제가 되어 왔던 네트워크의 문제를 해결하고 구조적 유연성을 제공하고 있다. 소프트웨어 정의 네트워크 기술은 복잡한 컨트롤 플레인(control plane)의 기능을 데이터 플레인(data plane)과 분리하여, 컨트롤 플레인의 복잡한 기능을 소프트웨어로 처리하고, 데이터 플레인은 네트워크 패킷의 전달, 무시, 변경 등 컨트롤 플레인이 지시하는 단순한 기능만을 수행하도록 한다. 이런 변화로, 복잡한 하드웨어의 제약 없이 소프트웨어로 새로운 네트워크 기능을 개발할 수 있으며, 동시에 이전 네트워크 구조에서 불가능했던 다양한 시도를 할 수 있게 되었다.
본 발명은 SDDC 환경에서 네트워크 가상화를 효율적으로 구현하는 것을 목적으로 한다. 특히 본 발명은 발명은 SDDC 가상 네트워크에서 터널링 및 멀티포인트 통신에 소모되는 네트워크 자원을 줄일 수 있는 방법을 제공하는 것을 목적으로 한다.
본 발명의 실시예를 따르는 소프트웨어 정의 데이터 센터(SDDC, Software Defined Data Center) 환경 내의 소프트웨어 스위치를 구현하는 서버가 프레임을 멀티포인트 전송하는 방법은, 복수의 가상 머신을 도착지(Destination)로 하는 프레임을 제 1 소프트웨어 스위치가 상기 제 1 가상 머신으로부터 수신하는 단계; 및 도착지 가상 머신들 각각에게 연결된 모든 소프트웨어 스위치가 상기 제 1 소프트웨어 스위치와 동일한 L2 네트워크에 포함되는 경우, 태넌트 ID 정보를 포함하는 Mac 헤더를 상기 프레임 바로 앞에 추가한 프레임을 멀티캐스트 서비스 노드에 포워드하는 단계를 포함하는 것을 특징으로 한다.
한편, 본 발명의 실시예를 따르는 소프트웨어 정의 데이터 센터(SDDC, Software Defined Data Center) 환경 내의 소프트웨어 스위치를 구현하는 서버가 프레임을 멀티포인트 전송하는 처리를 실행시키기 위하여 매체에 저장된 컴퓨터 프로그램은, 복수의 가상 머신을 도착지 (Destination)로 하는 프레임을 제 1 소프트웨어 스위치가 상기 제 1 가상 머신으로부터 수신하는 기능; 및 도착지 가상 머신들 각각에게 연결된 모든 소프트웨어 스위치가 상기 제 1 소프트웨어 스위치와 동일한 L2 네트워크에 포함되는 경우, 태넌트 ID 정보를 포함하는 Mac 헤더를 상기 프레임 바로 앞에 추가한 프레임을 멀티캐스트 서비스 노드에 포워드하는 기능을 실행하는 것을 특징으로 한다.
나아가 본 발명의 실시예를 따르는 소프트웨어 정의 데이터 센터(SDDC, Software Defined Data Center) 환경 내의 프레임을 브로드캐스팅하는 소프트웨어 스위치를 구현하는 서버는, 상기 소프트웨어 스위치에 대한 물리적 네트워크를 연결하는 통신부; 및 복수의 가상 머신을 도착지 (Destination)로 하는 프레임을 제 1 소프트웨어 스위치가 상기 제 1 가상 머신으로부터 수신하도록 제어하고, 도착지 가상 머신들 각각에게 연결된 모든 소프트웨어 스위치가 상기 제 1 소프트웨어 스위치와 동일한 L2 네트워크에 포함되는 경우, 태넌트 ID 정보를 포함하는 Mac 헤더를 상기 프레임 바로 앞에 추가한 프레임을 멀티캐스트 서비스 노드에 포워드하도록 제어하는 제어부를 포함하는 것을 특징으로 한다.
본 발명에 따르면, SDDC 환경에서 터널링을 위한 헤더의 사이즈가 72% 감소될 수 있고, MAC 헤더 만으로 소프트웨어 스위치에서 각 VM의 태넌트를 인식할 수 있어, 멀티포인트 프레임을 처리하기 위한 CPU 오버헤드와 네트워크 오버헤드를 획기적으로 줄일 수 있는 효과가 있다.
도 1은 SDDC에서 소프트웨어 스위치 기반의 가상화 동작 방식을 설명하기 위한 도면
도 2는 터널링을 위한 표준 포멧으로 사용되는 VXLAN Packet Format을 설명하기 위한 도면
도 3은 본원발명의 L2P(L2 based light tunneling protocol) Packet Format 기반의 L2HM(L2 based Lightweight Hybrid Multicast) 프로토콜을 설명하기 위한 도면
도 4는 본원발명에 따라 프레임을 브로드캐스팅하는 예시를 설명하기 위한 도면
도 5는 본원발명과 종래기술의 차이를 설명하기 위한 도면
본 발명은 이하에 기재되는 실시예들의 설명 내용에 한정되는 것은 아니며, 본 발명의 기술적 요지를 벗어나지 않는 범위 내에서 다양한 변형이 가해질 수 있음은 자명하다. 그리고 실시예를 설명함에 있어서 본 발명이 속하는 기술 분야에 널리 알려져 있고 본 발명의 기술적 요지와 직접적으로 관련이 없는 기술 내용에 대해서는 설명을 생략한다.
한편, 첨부된 도면에서 동일한 구성요소는 동일한 부호로 표현된다. 그리고 첨부 도면에 있어서 일부 구성요소는 과장되거나 생략되거나 개략적으로 도시될 수도 있다. 이는 본 발명의 요지와 관련이 없는 불필요한 설명을 생략함으로써 본 발명의 요지를 명확히 설명하기 위함이다. 이하 첨부된 도면을 참조하여 본 발명의 바람직한 실시 예들을 상세히 설명한다.
도 1은 SDDC에서 소프트웨어 스위치 기반의 가상화 동작 방식을 설명하기 위한 도면이다.
일반적인 경우, SDDC에서 네트워크 가상화는 SDDC를 구현하는 물리적 서버 및 물리적 서버를 연결하기 위한 물리적인 네트워크 망은 문제삼지 않고, 물리적 서버에 설치된 소프트웨어 스위치를 기반으로 오버레이(overlay) 네트워크를 구성하는 것을 기본으로 한다.
다수의 물리적인 서버들에 분산하여 SDDC를 구현하는 경우, 각 물리적 서버에는 복수의 가상 머신 (VM, Virtual Machine) 및 적어도 하나 이상의 소프트웨어 스위치가 설치될 수 있다. 소프트웨어 스위치는 설치된 서버 상에서 구동되는 VM들과 외부의 물리적 네트워크를 연결하는 가상 네트워크 허브 (Virtual Network Hub) 역할을 수행할 수 있다.
SDDC를 구현하는 하나의 물리적 서버는 본원발명에 따르면 통신부와 제어부를 포함하여 구성할 수 있다. 도 1의 예에서, 통신부는 다른 서버와의 물리적인 네트워크를 연결하는 102이며, 제어부는 복수의 VM(103, 104) 모듈 및 VM들의 네트워크 허브 역할을 수행하는 소프트웨어 스위치(101) 모듈을 포함할 수 있다.
상기 서버에서 패킷을 포워딩하는 절차는 아래와 같다.
예를 들어, VM1 (103)이 VM2(104)로 임의의 패킷을 전송하는 경우, 103에서 발생한 트래픽은 VM1의 vNIC (virtual NIC)를 통하여 101로 전송된다. 101은 수신한 트래픽의 도착 MAC 주소 (L2 주소)를 확인하고, 이것이 같은 서버내의 vNIC 주소이기 때문에 별도의 캡슐화 없이 패킷을 바로 VM2 (104)로 포워딩한다.
그러나 VM1이 다른 서버의 VM으로 패킷을 전송하고자 하는 경우는, 패킷을 인캡슐레이션(encapsulation)하는 터널링 절차가 필요하며, 터널링을 통해 101은 도착 VM을 관리하는 소프트웨어 스위치에게 패킷을 바로 포워딩할 수 있다. 즉 터널링은 소프트웨어 스위치가 패킷을 캡슐화하는 것을 의미하며, 가상 네트워크 환경에서는 터널링을 통해 소스 소프트웨어 스위치는 토폴로지와는 무관하게 도착 소프트웨어 스위치에게 바로 패킷을 포워딩할 수 있다.
예를 들어 VM1이 다른 서버의 VM3으로 패킷을 전송하고자 하는 경우, 101은 VM3을 관리하는 소프트웨어 스위치에게 터널을 연결하여 해당 패킷을 포워딩할 수 있다.
위와 같은 터널링은 여러가지 프로토콜을 따를 수 있으나, VXLAN 프로토콜이 (사실상의) 표준으로서 범용적으로 통용되고 있다.
VXLAN 프로토콜은 오리지널 네트워크 패킷을 UDP 프로토콜을 이용하여 캡슐화(encapsulation)하여 IP망 어디로든 터널링할 수 있도록 지원한다. 따라서 SDDC는 물리적인 서버의 물리적인 네트워크 구성에 종속되지 않고 필요에 따라 가상화된 네트워크를 자유롭게 구현할 수 있게 된다.
한편, VM1이 임의의 네트워크에 연결된 모든 VM에게 패킷을 전송하거나 임의의 그룹에 속하는 VM에게 패킷을 전송하고자 하는 경우를 고려할 수 있다. 즉, SDDC에서 임의의 VM이 브로드캐스트/ 멀티캐스트 통신을 시도하는 경우이다.
브로드캐스트/ 멀티캐스트 트래픽을 수신한 소프트웨어 스위치는 마찬가지로 패킷을 인캡슐레이션하는 터널링 절차를 거친다. 터널링을 통해 소프트웨어 스위치는 멀티캐스트 서비스 노드에 패킷을 전송하고, 멀티캐스트 서비스 노드도 터널링을 통해 캡슐화된 패킷을 도착 VM에 연결된 소프트웨어 스위치에게 브로드캐스팅/ 멀티캐스팅할 수 있다.
도 2는 터널링을 위한 표준 포멧으로 사용되는 VXLAN 패킷 포멧 (Packet Format)을 설명하기 위한 도면이다.
도 2에서 VM의 오리지널 프레임은 201이며, 202 내지 205은 터널링을 위해 소프트웨어 스위치가 추가한 헤더이다. VXLAN 터널은 소프트웨어 스위치가 오리지널 프레임에 202 내지 205 헤더 정보를 추가하여 캡슐화한 패킷이라고 할 수 있다.
VXLAN 패킷 포멧에서 202는 VXAN 헤더로서 8바이트가 할당되고, 203은 L4 정보를 위한 UDP 헤더로서 8바이트가 할당된다. 그리고 204는 L3 정보를 위한 IP 헤더로서 20 바이트가 할당되며, 205는 L2 정보를 위한 Mac 헤더로서 14바이트가 할당된다. 즉 VXLAN 터널을 위해 필요한 네트워크 헤더의 크기는 총 50 바이트이다. VXLAN 패킷 포멧에서 SDDC의 각각의 태넌트들에 대한 정보는 VXAN 헤더의 VNID 필드에 기록될 수 있다.
그런데 일반적인 경우 오리지널 프레임 사이즈가 최대 1500바이트인 것을 고려하면 VXAN의 50 바이트는 헤더 사이즈로 매우 크다. 나아가 터널링의 경우의 수를 고려하지 않고, 모두 L2, L3, L4 헤더를 씌우는 것은 비효율적일 수 있다. 즉, VXLAN 패킷 포멧을 따르면 모든 터널링되는 패킷에 VXLAN 캡슐화를 위해 총 50바이트 헤더를 생성하고 처리해야 하는 오버헤드가 발생될 수 밖에 없다
보다 구체적으로, 종래의 VXLAN 패킷 포멧을 따르면 50 바이트 네트워크 헤더를 생성하기 위한 CPU 오버헤드 및 오리지널 프레임에서 50바이트가 추가된 프레임을 물리적인 네트워크 상에서 전송하기 위한 자원 소모의 문제가 발생된다.
따라서 본 발명은 위와 같은 문제, 즉 터널링을 위해 과도한 리소스가 투여되는 문제를 해결하면서 동시에 범용성을 충족할 수 있는 가벼운 터널링 프로토콜(Light Tunneling Protocol)을 제안하고자 한다. 본원발명에서 제공하는 가벼운 터널링 프로토콜은 VXLAN 패킷 포멧에서 지원하는 VM의 태넌트에 대한 정보도 포함할 수 있다.
본 발명은 SDDC에서 대부분의 네트워크 트래픽이 동일한 서버의 랙(Server Rack) 내부에서 이동하는 현상을 주목했다. 연구 결과에 따르면 80%의 네트워크 트래픽이 서버 랙 내부에서만 포워딩된다. 일반적으로 각각의 Rack은 L2 스위치를 TOR (Top of the rack) 스위치로 사용하여 구성되며 대부분의 트래픽은 L2네트워크 망을 벗어나지 않는다.
따라서 터널링되는 모든 패킷에 종래의 VXAN 포멧에 따라 L2, L3, L4 네트워크 헤더를 전부 추가하는 것은 매우 비효율적이다. L2 헤더만으로도 대부분의 터널링은 문제없이 수행될 수 있기 때문이다. 특히 종래의 이더넷 헤더 포멧을 그대로 사용하여 L2 헤더 정보를 처리하면, 레거시(Legacy) 스위치 하드웨어와도 아무런 문제없이 연동할 수 있는 효과가 있다.
한편, SDDC는 일반적으로 멀티 태넌트 (Multi-tenant)를 지원하고 있다. 그리고 SDDC에서 하나의 랙은 다수의 태넌트가 아니라 하나의 태넌트에 대한 SDDC를 구현하는 것이 일반적이다. 따라서, 하나의 태넌트에 속하는 다수의 VM들 사이의 트래픽은 대부분 L2네트워크 망을 벗어나지 않는다. 따라서 본원발명은 종래의 L2 헤더 포멧을 이용하여 다수의 태넌트들의 주소를 처리할 수 있는 방법도 함께 제안한다.
본 발명에서는 이와 같이 L2 헤더만을 추가하여 VM의 태넌트 정보를 구분하고, 터널링을 할 수 있으며, 이를 L2P 터널, 또는 L2HM(L2 based Lightweight Hybrid Multicast) 프로토콜이라고 지칭한다. L2P (L2 based Light Tunneling Protocol)터널을 구현하는 L2HM 프로토콜 포멧은 첨부된 도 3과 함께 아래에서 후술된다.
도 3은 본원발명의 L2P Packet Format 기반의 L2HM 프로토콜을 설명하기 위한 도면이다.
도 3에 도시된 바와 같이, 본원발명을 따르는 터널링되는 패킷은 오리지널 프레임 (301) 바로 앞에 MAC 헤더(302, 304 및 305)만이 추가된다. 도 3에서 302, 304 및 305는 터널링을 위해 추가된 L2 헤더의 필드이며, 303은 옵션이다.
본발명의 실시예를 따르면 도 3에 도시된 바와 같이, 오리지널 프레임 바로 앞에 도착 주소 필드 (Destination Address field, 305), 출발 주소 필드 (Source Address field, 304) 및 이더넷 타입/길이 필드 (Ethernet Type/ Length field, 302)만으로 구성되는 Mac 헤더가 붙을 수 있다.
보다 구체적으로, 본원발명에 따르면 도착 주소 필드(305) 6바이트는 해당 패킷의 도착지인 VM을 운영하는 물리적 서버를 관리하는 소프트웨어 스위치에 할당된 네트워크 인터페이스의 맥 주소 정보를 포함할 수 있다.
본원발명에 따르면 출발 주소 필드(304) 6바이트는 네트워크 패킷의 출발지인 VM을 관리하는 소프트웨어 스위치에 할당된 네트워크 인터페이스의 맥 주소 정보를 포함할 수 있다.
본원발명에 따르면 타입/길이 필드(302) 2바이트는 레거시 스위치와의 연동을 위해 0x8100 (이더넷 타입)으로 고정할 수 있다. 결론적으로 본원발명의 L2P 터널링을 위한 헤더는 총 14바이트에 불과하다.
한편 본원발명에 따르면 VLAN 태그 필드(303) 4바이트는 옵션일 수 있다. 구체적으로는 물리적인 네트워크가 VLAN (Virtual LAN)을 사용하고 있고 SDDC 용으로 VLAN을 할당해 놓은 경우에는 303에 해당 VLAN ID를 기재하고, 그렇지 않은 경우라면 303을 추가할 필요가 없다. VLAN 태그를 사용하는 경우, 본원발명의 L2P 터널링을 위한 헤더는 14바이트에서 18바이트로 증가한다.
특히, 본원발명에 따르면 도착 주소 필드(305)는 SDDC의 태넌트 ID 정보를 포함할 수 있으며, 특히 태넌트 ID는 상기 도착 주소 필드의 이더넷 멀티캐스트 어드레스 중, 리저브된 20개의 주소를 제외한 01:00:5E:00:00:00 - 01:00:5E:7F:FF:FF 사이 값을 가질 수 있다.
이더넷 정의상으로는 FF:FF:FF:FF:FF:FF 가 L2 네트워크의 브로드캐스트에 사용되도록 되어 있으나, 실제 이더넷 장비들은 멀티캐스트 프레임과 브로드캐스트 프레임을 구분하지 않고, L2 네트워크 전체에 트래픽을 전송한다. 그리고 이더넷 지원 NIC 이 자신의 멀티캐스트 맥 어드레스 해쉬 (multicast MAC address hash)에 들어있는 멀티캐스트 그룹 주소와 일치하는 경우에 트래픽을 수신하는 방식으로 브로드캐스트/ 멀티캐스트 서비스가 제공된다.
따라서 패킷의 헤더가 멀티캐스트 주소만을 포함하는 경우에도 전체 L2 네트워크에서 브로드캐스트/ 멀티캐스트 서비스가 지원될 수 있기 때문에, 본원발명은 멀티캐스트 주소를 이용하여 태넌트 ID 정보를 제공하는 방식을 채택한 것이다.
특히 본 발명에 따르면 이더넷이 사용하는 IPv4 의 멀티캐스트용 주소 영역을 이용하여 태넌트 ID 정보를 제공할 수 있다. 보다 구체적으로, 본 발명은 01:00:5E:00:00:00 - 01:00:5E:7F:FF:FF 사이의 223 개의 멀티캐스트 주소 영역을 태넌트 ID로 사용한다. (리저브된 (reserved) 20 여개의 address 는 제외될 수 있음) 이러한 방식으로 종래 레거시 이더넷 장비와 호환성을 담보할 수 있다.
본 발명에 따르면, SDDC 상의 각 태넌트에게는 기본적으로 하나의 멀티캐스트 주소가 할당될 수 있다. 본 발명에 따르면 상기 태넌트 ID를 도착 주소 필드가 포함하는 하위 23 비트의 멀티캐스트 주소를 이용해 설정하는 방식으로 약 223 개의 가상 태넌트 네트워크 지원이 가능할 수 있다.
패킷을 수신하는 소프트웨어 스위치들은 헤더 정보 중 멀티캐스트 어드레스의 하위 23 비트에서 태넌트 ID 를 확인하여, 해당 패킷이 어떤 태넌트의 브로드캐스트/ 멀티캐스트 트래픽인지를 인식할 수 있다.
도 3의 헤더 정보를 이용하여 소프트웨어 스위치가 패킷을 포워딩하는 구체적인 예시는 첨부된 도 4와 함께 아래에서 후술된다.
도 4는 본원발명에 따라 프레임을 브로드캐스트/ 멀티캐스트 하는 예시를 설명하기 위한 도면이다.
도 4에 도시된 SDDC는 RACK 1 및 RACK 2를 포함하는 복수의 RACK에서 구현되고, RACK 1 및 RACK 2는 동일한 태넌트에 대한 SDDC를 지원하여, 즉 동일한 태넌트의 VM들이 RACK 1 및 RACK 2에 나뉘어 동작하고 있다고 가정한다.
RACK 1과 RACK 2사이의 통신은 L3 네트워크를 통할 수 있다. 나아가 RACK 1은 서버 1 (411), 서버 2 (412), 서버 3 (413)를 포함하며 서버 1,2,3 사이의 통신은 L2 네트워크 (416)을 통할 수 있다.
마찬가지로 RACK 2 은 서버 4 (414) 및 서버 5 (415)를 포함하고 서버 4,5 사이의 통신은 L2 네트워크 (417)을 통할 수 있다. 도 4에서 A, B, C, D 및 E 는 해당 서버에서 구현된 소프트웨어 스위치이고, 1, 2, 3, 4, 5, 6 및 7은 해당 서버에서 구현된 VM을 도식화한 것이다. 그리고 α, β는 멀티캐스트 서비스 노드이다.
VM 1에서 임의의 멀티캐스트 그룹 X (VM 3, 4로 구성)에게 패킷을 멀티캐스팅하는 경우를 예로 들어 설명한다.
이 경우, 소프트웨어 스위치 A는 VM1으로부터 멀티캐스트 프레임을 수신하며, 매핑 테이블, 즉 해당 소프트웨어 스위치와 네트워크로 연결된 모든 소프트웨어 스위치의 MAC 주소 및 각 소프트웨어 스위치가 네트워크 서비스를 제공하는 VM들의 Vnic의 맥 주소 정보의 매핑 테이블을 체크하여 멀티캐스트 그룹 X가 서버 1 (411)에 없는 것을 확인하고 터널링을 위해 패킷을 캡슐화하는 과정을 진행할 수 있다.
본 발명의 실시예를 따르면, 상기 매핑 테이블은 플로우 엔트리들로 구성된 플로우 테이블(Flow table)일 수 있으며, 플로우 엔트리들 각각에는 플로우 룰이 명시될 수 있다.
이때 종래의 VXLAN 프로토콜을 따르면 소프트웨어 스위치 A는 해당 패킷에 총 50바이트의 헤더를 붙여서, VXLAN 터널을 통해 캡슐화된 패킷을 멀티캐스트 서비스 노드 α 로 전송하고, α 는 (50바이트의 헤더가 포함된) 패킷을 복제하여 해당 태넌트에 대한 네트워크에 연결된 모든 소프트웨어 스위치, 즉 A, B, C, D, E에 전송된다. B와 C는 멀티캐스트 그룹 X에 속해있기 때문에 패킷을 수신하며, 탈캡슐화된 패킷을 VM3, 4에게 각각 전송할 것이다.
그러나 본원발명의 L2HM 프로토콜을 따르면 멀티캐스트 그룹 X 는 동일한 L2 네트워크 (416)에 포함되어 있기 때문에, 소프트웨어 스위치 A는 총 16바이트의 헤더만을 붙인 패킷을 (즉 L2P 터널을 통해) 멀티캐스트 서비스 노드 α 로 전송할 수 있다. 나아가 α 는 해당 태넌트 VM을 관리하는 모든 소프트웨어 스위치가 아니라, 동일한 L2 네트워크 (416)에 포함되는 A, B, C 에게만 패킷을 전송할 수 있다.
한편, VM 2에서 다른 멀티캐스트 그룹 Y (VM 6, 7로 구성)로 패킷을 포워딩하는 경우는 VXLAN 터널이 여전히 유효할 수 있다. 본원발명을 따르면, VM2로부터 패킷을 수신한 소프트웨어 스위치 A는 매핑 테이블을 체크하여 멀티캐스트 그룹 Y를 관리하는 소프트웨어 스위치는 E이며 E는 자신의 L2 네트워크 (416)에 포함되지 않는 것을 확인할 수 있다. 이 경우 A는 L2P 터널이 아니라 종래의 VXLAN 터널을 통해 캡슐화된 멀티캐스트 패킷을 소프트웨어 스위치 E로 포워딩할 수 있다.
즉, 본원발명을 따르면 VM으로부터 멀티캐스트 패킷을 수신한 소프트웨어 스위치는 멀티캐스트 그룹이 자신과 동일한 L2네트워크에 포함된 경우에는 L2P 터널, 포함되지 않은 경우에는 VXLAN 터널을 통해 패킷을 멀티캐스팅할 수 있다. 따라서 본원발명을 따르면 종래 표준에 비해 별도의 추가되는 오버헤드 없이 범용적이고 효율적으로 패킷을 멀티캐스팅할 수 있는 효과가 있다.
한편, 본원발명을 따르는 소프트웨어 스위치들은 자신이 관리하는 VM 들을 소유한 태넌트에 속하는 멀티캐스트 그룹에 대해서만 멀티캐스트 그룹 등록을 할 수 있다. 이는 L2HM 네트워크의 태넌트별 멀티캐스팅을 지원하기 위해서이다.
소프트웨어 스위치들이 자신이 관리하는 VM 들을 소유한 태넌트에 속하는 멀티캐스트 그룹에 대해서만 멀티캐스트 그룹 등록을 하면, 해당 소프트웨어 스위치가 처리할 필요가 없는 멀티캐스트 트래픽은 해당 소프트웨어 스위치가 사용하는 물리적 NIC 에서 하드웨어 적으로 필터링되는 효과가 있다.
소프트웨어 스위치들이 처리할 태넌트 ID 리스트는 테이블은 다양한 방법으로 생성되고, 업데이트될 수 있다.
예를 들어 태넌트 ID 리스트는 Proactive 기법으로 생성하고 관리할 수 있다. 이는 SDN 컨트롤러 (controller)와 같은 중앙 관제 시스템에서 소프트웨어 스위치에 태넌트 ID 리스트 정보를 전달하고, 미리 설정된 주기 또는 리스트에 변화가 있을 때마다 업데이트된 리스트 정보를 전송하는 방식으로 태넌트 정보 리스트를 관리할 수 있다.
또 다른 예로 태넌트 ID 리스트는 Reactive 기법을 적용하여 생성하고 관리할 수 있다. 이는 각각의 VM 이 생성될 때 소프트웨어 스위치에게 연결을 시도하는데 각 소프트웨어 스위치가 태넌트 ID 리스트에 해당 VM의 태넌트 ID를 을 추가하는 방식으로 태넌트 정보 리스트를 관리할 수 있다.
도 5는 앞서 설명한 도 4의 첫번째 예시를 구체적으로 설명하여 본원발명과 종래기술의 차이 및 종래 기술 대비한 본원발명의 효과를 명확하게 하기 위한 도면이다.
도 5의 501은 종래의 VXLAN 프로토콜을 따라 도 4의 멀티캐스트 그룹 X (VM 3,4로 구성)에게 패킷을 멀티캐스팅하는 경우이며, 502는 본원발명의 L2HM 프로토콜을 따라 멀티캐스트 그룹 X (VM 3,4로 구성)에게 패킷을 멀티캐스팅하는 경우에 대한 순서도이다.
단계 510에서 VM1로부터 소프트웨어 스위치 A가 멀티캐스트 그룹 X 에 대한 멀티캐스트 프레임을 수신하면, 단계 511에서 소프트웨어 스위치 A는 VXALN 프로토콜에 따라 50바이트의 헤더 (즉 outer Ethernet 헤더, Outer IP 헤더, UDP 헤더 및 VXLAN 헤더)를 추가하여 해당 패킷을 캡슐화하여 VXLAN 터널을 통해 캡슐화된 프레임을 멀티캐스트 서비스 노드 α에게 전송할 것이다.
이후 단계 512에서 멀티캐스트 서비스 노드 α는 해당 패킷을 복수개 복사하고 단계 513 내지 517에서 VXLAN 터널을 통해 해당 태넌트 네트워크의 모든 소프트웨어 스위치 A, B, C, D, E에게 패킷을 전송할 것이다.
이후 단계 518, 519에서 소프트웨어 스위치 B와 C만 멀티캐스트 그룹 X에 속해있기 때문에 패킷을 수신하며, 탈캡슐화된 패킷을 VM3, 4에게 각각 전송할 것이다.
반면, 본원발명을 따르면 단계 520에서 VM1로부터 멀티캐스트 그룹 X 에 대한 멀티캐스트 프레임을 수신한 소프트웨어 스위치 A는 멀티캐스트 그룹 X 가 자신과 동일한 L2 네트워크 환경에 있는 것을 확인할 수 있다.
이후 단계 522에서 소프트웨어 스위치 A는 본원발명의 L2P프로토콜을 따라 태넌트 ID 정보가 포함된 14바이트의 MAC헤더만을 추가 하여 해당 패킷을 캡슐화하고, L2P 터널을 통해 캡슐화된 프레임을 멀티캐스트 서비스 노드 α에게 전송할 수 있다.
이후 단계 523에서 멀티캐스트 서비스 노드 α는 해당 패킷을 복수개 복사하고 단계 524, 525, 526에서 서비스 노드 α는 프레임을 복사하여, L2P 터널을 통해 L2 네트워크에 속하는 소프트웨어 스위치 A, B, C에게 프레임을 전송할 수 있다.
즉 본원발명의 실시예인 502을 따르면, 501과 비교하여 단계 516, 517의 단계를 생략할 수 있으며, 단계 514, 515도 50바이트의 헤더를 추가할 필요없이 14바이트의 헤더만을 추가하여 진행할 수 있다.
이후 단계 527, 528에서 소프트웨어 스위치 B와 C는 멀티캐스트 그룹 X에 속해있기 때문에 패킷을 수신하며, 탈캡슐화된 패킷을 VM3, 4에게 각각 전송할 것이다.
본 명세서와 도면에 게시된 본 발명의 실시 예들은 본 발명의 기술 내용을 쉽게 설명하고 본 발명의 이해를 돕기 위해 특정 예를 제시한 것뿐이며, 본 발명의 범위를 한정하고자 하는 것은 아니다. 여기에 게시된 실시 예들 이외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형 예들이 실시 가능하다는 것은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 자명한 것이다.

Claims (6)

  1. 소프트웨어 정의 데이터 센터(SDDC, Software Defined Data Center) 환경 내의 소프트웨어 스위치를 구현하는 서버가 프레임을 멀티포인트 전송하는 방법에 있어서,
    복수의 가상 머신을 도착지(Destination)로 하는 프레임을 제 1 소프트웨어 스위치가 제 1 가상 머신으로부터 수신하는 단계; 및
    도착지 가상 머신들 각각에게 연결된 모든 소프트웨어 스위치가 상기 제 1 소프트웨어 스위치와 동일한 L2 네트워크에 포함되는 경우, 태넌트 ID 정보를 포함하는 Mac 헤더를 상기 프레임 바로 앞에 추가한 프레임을 멀티캐스트 서비스 노드에 포워드하고, 상기 도착지 가상 머신과 연결된 모든 소프트웨어 스위치가 상기 제 1 소프트웨어 스위치와 동일한 L2 네트워크에 포함되지 않는 경우, 상기 프레임의 앞에 순서대로 VXAN 헤더, UDP 헤더, Outer IP 헤더, 및 Outer Mac 헤더를 추가한 프레임을 상기 멀티캐스트 서비스 노드에 포워드하는 단계를 포함하는 것을 특징으로 하는 서버의 멀티캐스팅 방법.
  2. 제 1항에 있어서, 상기 Mac 헤더는,
    상기 태넌트 ID 정보를 포함하는 도착 주소 (Destination Address) 필드, 상기 제 1 소프트웨어 스위치의 맥주소 정보를 포함하는 출발 주소 (Source Address) 필드, 및 0x8100값을 가지는 이더넷 타입(Ethernet Type) 필드를 포함하며,
    상기 태넌트 ID는, 상기 도착 주소 필드의 이더넷 멀티캐스트 어드레스 중 01:00:5E:00:00:00 - 01:00:5E:7F:FF:FF 사이 값을 가지는 것을 특징으로 하는 서버의 멀티캐스팅 방법.
  3. 삭제
  4. 제 2항에 있어서, 상기 Mac 헤더는,
    상기 서버와 연결된 물리적인 네트워크가 VLAN (Virtual LAN)을 사용하고 상기 소프트웨어 정의 데이터 센터에 대해 VLAN ID를 미리 할당한 경우, 상기 VLAN ID 정보를 포함하는 VLAN 태그 필드를 더 포함하는 것을 특징으로 하는 서버의 멀티캐스팅 방법.
  5. 소프트웨어 정의 데이터 센터(SDDC, Software Defined Data Center) 환경 내의 소프트웨어 스위치를 구현하는 서버가 프레임을 멀티포인트 전송하는 처리를 실행시키기 위하여 컴퓨터 판독가능한 기록매체에 저장된 컴퓨터 프로그램에 있어서,
    복수의 가상 머신을 도착지 (Destination)로 하는 프레임을 제 1 소프트웨어 스위치가 제 1 가상 머신으로부터 수신하는 기능; 및
    도착지 가상 머신들 각각에게 연결된 모든 소프트웨어 스위치가 상기 제 1 소프트웨어 스위치와 동일한 L2 네트워크에 포함되는 경우, 태넌트 ID 정보를 포함하는 Mac 헤더를 상기 프레임 바로 앞에 추가한 프레임을 멀티캐스트 서비스 노드에 포워드하고, 상기 도착지 가상 머신과 연결된 모든 소프트웨어 스위치가 상기 제 1 소프트웨어 스위치와 동일한 L2 네트워크에 포함되지 않는 경우, 상기 프레임의 앞에 순서대로 VXAN 헤더, UDP 헤더, Outer IP 헤더, 및 Outer Mac 헤더를 추가한 프레임을 상기 멀티캐스트 서비스 노드에 포워드하는 기능을 실행하는 것을 특징으로 하는 컴퓨터 프로그램.
  6. 소프트웨어 정의 데이터 센터(SDDC, Software Defined Data Center) 환경 내의 프레임을 브로드캐스팅하는 소프트웨어 스위치를 구현하는 서버에 있어서,
    상기 소프트웨어 스위치에 대한 물리적 네트워크를 연결하는 통신부; 및 복수의 가상 머신을 도착지 (Destination)로 하는 프레임을 제 1 소프트웨어 스위치가 제 1 가상 머신으로부터 수신하도록 제어하고, 도착지 가상 머신들 각각에게 연결된 모든 소프트웨어 스위치가 상기 제 1 소프트웨어 스위치와 동일한 L2 네트워크에 포함되는 경우, 태넌트 ID 정보를 포함하는 Mac 헤더를 상기 프레임 바로 앞에 추가한 프레임을 멀티캐스트 서비스 노드에 포워드하고, 상기 도착지 가상 머신과 연결된 모든 소프트웨어 스위치가 상기 제 1 소프트웨어 스위치와 동일한 L2 네트워크에 포함되지 않는 경우, 상기 프레임의 앞에 순서대로 VXAN 헤더, UDP 헤더, Outer IP 헤더, 및 Outer Mac 헤더를 추가한 프레임을 상기 멀티캐스트 서비스 노드에 포워드하도록 제어하는 제어부를 포함하는 것을 특징으로 하는 서버.
KR1020150014645A 2015-01-30 2015-01-30 소프트웨어 정의 데이터 센터에서 멀티포인트 통신 서비스를 제공하는 방법, 장치 및 컴퓨터 프로그램 KR101621719B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150014645A KR101621719B1 (ko) 2015-01-30 2015-01-30 소프트웨어 정의 데이터 센터에서 멀티포인트 통신 서비스를 제공하는 방법, 장치 및 컴퓨터 프로그램

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150014645A KR101621719B1 (ko) 2015-01-30 2015-01-30 소프트웨어 정의 데이터 센터에서 멀티포인트 통신 서비스를 제공하는 방법, 장치 및 컴퓨터 프로그램

Publications (1)

Publication Number Publication Date
KR101621719B1 true KR101621719B1 (ko) 2016-05-17

Family

ID=56109700

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150014645A KR101621719B1 (ko) 2015-01-30 2015-01-30 소프트웨어 정의 데이터 센터에서 멀티포인트 통신 서비스를 제공하는 방법, 장치 및 컴퓨터 프로그램

Country Status (1)

Country Link
KR (1) KR101621719B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220166004A (ko) * 2021-06-09 2022-12-16 아토리서치(주) Sdn 스위치 및 이의 멀티캐스트 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080072035A1 (en) * 2005-01-31 2008-03-20 Johnson Robert A Securing multicast data
KR101438212B1 (ko) * 2014-02-25 2014-09-04 주식회사 나임네트웍스 소프트웨어 정의 네트워크 심층패킷분석 방법 및 이를 이용하는 소프트웨어 정의 네트워크 시스템
KR101477153B1 (ko) * 2010-05-28 2014-12-29 후아웨이 테크놀러지 컴퍼니 리미티드 가상 레이어 2 및 그 확장성 증대를 위한 메커니즘

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080072035A1 (en) * 2005-01-31 2008-03-20 Johnson Robert A Securing multicast data
KR101477153B1 (ko) * 2010-05-28 2014-12-29 후아웨이 테크놀러지 컴퍼니 리미티드 가상 레이어 2 및 그 확장성 증대를 위한 메커니즘
KR101438212B1 (ko) * 2014-02-25 2014-09-04 주식회사 나임네트웍스 소프트웨어 정의 네트워크 심층패킷분석 방법 및 이를 이용하는 소프트웨어 정의 네트워크 시스템

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220166004A (ko) * 2021-06-09 2022-12-16 아토리서치(주) Sdn 스위치 및 이의 멀티캐스트 방법
KR102485180B1 (ko) * 2021-06-09 2023-01-06 아토리서치(주) Sdn 스위치 및 이의 멀티캐스트 방법

Similar Documents

Publication Publication Date Title
US11765000B2 (en) Method and system for virtual and physical network integration
US20220191064A1 (en) Method for sending virtual extensible local area network packet, computer device, and computer readable medium
US10693766B2 (en) Engines to prune overlay network traffic
EP3533189B1 (en) Rule-based network identifier mapping
CN108880968B (zh) 软件定义网络中广播、组播实现方法及装置、存储介质
EP3091696B1 (en) Method and device for implementing virtual machine communication
CN106936777B (zh) 基于OpenFlow的云计算分布式网络实现方法、系统
US9596099B2 (en) Scalable network virtualization with aggregate endpoints
US20130124750A1 (en) Network virtualization without gateway function
EP3069471B1 (en) Optimized multicast routing in a clos-like network
CN107623636B (zh) 一种用户隔离方法和交换机
KR101621719B1 (ko) 소프트웨어 정의 데이터 센터에서 멀티포인트 통신 서비스를 제공하는 방법, 장치 및 컴퓨터 프로그램
KR101621717B1 (ko) 소프트웨어 정의 데이터 센터의 네트워크 자원을 가상화 하는 방법, 장치 및 컴퓨터 프로그램
KR101621720B1 (ko) 소프트웨어 정의 데이터 센터에서 멀티포인트 통신 서비스를 소프트웨어 스위치가 제공하는 방법, 장치 및 컴퓨터 프로그램
US20210328918A1 (en) Packet Forwarding Method and Network Device
CN114598644A (zh) Bier报文转发的方法、设备以及系统
WO2017219272A1 (zh) 转发报文的方法和装置

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: 20190507

Year of fee payment: 4