KR20170076064A - 소프트웨어 정의 네트워크에서 서브넷을 지원하는 방법, 장치 및 컴퓨터 프로그램 - Google Patents

소프트웨어 정의 네트워크에서 서브넷을 지원하는 방법, 장치 및 컴퓨터 프로그램 Download PDF

Info

Publication number
KR20170076064A
KR20170076064A KR1020150185843A KR20150185843A KR20170076064A KR 20170076064 A KR20170076064 A KR 20170076064A KR 1020150185843 A KR1020150185843 A KR 1020150185843A KR 20150185843 A KR20150185843 A KR 20150185843A KR 20170076064 A KR20170076064 A KR 20170076064A
Authority
KR
South Korea
Prior art keywords
subnet
switch
packet
address
arp
Prior art date
Application number
KR1020150185843A
Other languages
English (en)
Other versions
KR101786620B1 (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 KR1020150185843A priority Critical patent/KR101786620B1/ko
Publication of KR20170076064A publication Critical patent/KR20170076064A/ko
Application granted granted Critical
Publication of KR101786620B1 publication Critical patent/KR101786620B1/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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/10Mapping addresses of different types
    • H04L61/2007
    • H04L61/6022

Landscapes

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

Abstract

본 발명은 소프트웨어 정의 네트워크에서 서브넷 기능을 지원하는 방법에 대한 것으로, 컨트롤러가, 스위치에 서브넷을 지정하고, 각각의 서브넷에 가상 게이트웨이 IP 주소 및 MAC 주소를 할당하는 단계; 및 상기 서브넷에 대한 ARP 패킷을 플로우 테이블에 따라 처리하도록 상기 스위치를 설정하는 단계를 포함하는 것을 특징으로 한다.

Description

소프트웨어 정의 네트워크에서 서브넷을 지원하는 방법, 장치 및 컴퓨터 프로그램 {METHOD, APPARATUS AND COMPUTER PROGRAM FOR SUBNETTING OF SOFTWARE DEFINED NETWORK}
본 발명은 소프트웨어 정의 네트워크를 제어하는 방법에 대한 것이다. 보다 구체적으로 본 발명은 소프트웨어 정의 네트워크에서 서브넷 기능을 지원하는 방법에 대한 것이다.
소프트웨어 정의 네트워킹 (Software Defined Networking, 이하 SDN이라 칭함)은 네트워크의 모든 네트워크 장비를 지능화된 중앙관리시스템에 의해 관리하는 기술을 의미한다. SDN 기술에서는 기존 하드웨어 형태의 네트워크 장비에서 자체적으로 수행하는 패킷 처리와 관련된 제어 동작을 소프트웨어 형태로 제공되는 컨트롤러가 대신하여 처리함으로써, 기존의 네트워크 구조보다 다양한 기능을 개발하고 부여할 수 있다는 장점을 갖는다.
SDN 시스템은 일반적으로 전체 네트워크를 제어하는 컨트롤러 서버와, 상기 컨트롤러 서버에 의해 제어되며 패킷을 처리하는 복수의 오픈플로우 스위치와, 오픈플로우 스위치의 하위 계층에 해당하는 호스트를 포함하여 구성된다. 여기에서 오픈플로우 스위치는 패킷의 송수신 기능만을 담당하게 되고, 패킷의 경로 설정, 관리 및 제어는 모두 컨트롤러 서버에서 이루어진다. 즉, 네트워크 장비를 이루는 Data Plane과 Control Plane을 분리하는 것이 SDN 시스템의 기본 구조라 볼 수 있다.
Open Networking Foundation, “OpenFlow Specification 1.2.0”
본 발명은 소프트웨어 정의 네트워크에서 서브넷 기능을 지원하고, 특히 서브넷의 가상 게이트웨이에 대한 ARP 및 서브넷 설정에 대한 제약을 오픈플로우 프로토콜을 이용하여 처리할 수 있는 방법 및 장치를 제공하는 것을 목적으로 한다.
본 발명의 실시예를 따르는 소프트웨어 정의 네트워크에서 서브넷 기능을 지원하는 방법은, 컨트롤러가, 스위치에 서브넷을 지정하고, 각각의 서브넷에 가상 게이트웨이 IP 주소 및 MAC 주소를 할당하는 단계; 및 상기 서브넷에 대한 ARP 패킷을 플로우 테이블에 따라 처리하도록 상기 스위치를 설정하는 단계를 포함하는 것을 특징으로 한다.
나아가 본 발명의 실시예를 따르는 소프트웨어 정의 네트워크에서 서브넷 기능을 지원하는 컨트롤러는, 스위치와 통신하는 통신부; 및 상기 스위치에 서브넷을 지정하고, 각각의 서브넷에 가상 게이트웨이 IP 주소 및 MAC 주소를 할당하며, 상기 서브넷에 대한 ARP 패킷을 플로우 테이블에 따라 처리하도록 상기 스위치를 설정하는 제어부를 포함하는 것을 특징으로 한다.
한편, 본 발명의 실시예를 따르는 소프트웨어 정의 네트워크에서 서브넷 기능을 지원하는 처리를 컨트롤러에서 수행하기 위하여 컴퓨터 판독가능한 기록매체에 저장된 컴퓨터 프로그램은 스위치에 서브넷을 지정하고, 각각의 서브넷에 가상 게이트웨이 IP 주소 및 MAC 주소를 할당하는 기능; 및 상기 서브넷에 대한 ARP 패킷을 플로우 테이블에 따라 처리하도록 상기 스위치를 설정하는 기능을 수행하는 것을 특징으로 한다.
본 발명에 따르면, 스위치의 포트 별로 서브넷을 지정할 수 있어, 네트워크 자원 관리가 용이해지는 효과가 있다. 나아가 본 발명에 따르면 별도의 설정 없이 오픈플로우 프로토콜에 따라 서브넷의 가상 게이트웨이에 대한 ARP 패킷을 처리하고, 서브넷 설정에 대한 제약을 강화할 수 있는 효과가 있다.
도 1은 소프트웨어 정의 네트워크의 구성을 설명하기 위한 도면
도 2는 본 발명의 실시예를 따라 SDN에서 서브넷을 지정하는 예시를 설명하기 위한 도면
도 3은 본 발명의 실시예를 따르는 SDN에서 서브넷을 지정하고 서브넷에 대한 ARP 패킷을 처리하는 방법을 설명하기 위한 순서도
본 발명은 이하에 기재되는 실시예들의 설명 내용에 한정되는 것은 아니며, 본 발명의 기술적 요지를 벗어나지 않는 범위 내에서 다양한 변형이 가해질 수 있음은 자명하다. 그리고 실시예를 설명함에 있어서 본 발명이 속하는 기술 분야에 널리 알려져 있고 본 발명의 기술적 요지와 직접적으로 관련이 없는 기술 내용에 대해서는 설명을 생략한다.
한편, 첨부된 도면에서 동일한 구성요소는 동일한 부호로 표현된다. 그리고 첨부 도면에 있어서 일부 구성요소는 과장되거나 생략되거나 개략적으로 도시될 수도 있다. 이는 본 발명의 요지와 관련이 없는 불필요한 설명을 생략함으로써 본 발명의 요지를 명확히 설명하기 위함이다. 이하 첨부된 도면을 참조하여 본 발명의 바람직한 실시 예들을 상세히 설명한다.
본 발명의 명세서에서 “플로우 룰”의 용어는 해당 업계의 통상의 기술자 입장에서 소프트웨어 정의 네트워크에서 컨트롤러 서버가 적용하는 네트워크 정책을 의미하는 것으로 이해되어야 한다.
나아가 본 명세서에서 오픈플로우 스위치(200)는 오픈플로우 프로토콜만을 지원하는 스위치, 오픈플로우 프로토콜을 지원하는 가상 스위치, 오픈플로우 프로토콜을 지원하는 일반적인 L2 스위치를 포함하는 개념으로 이해될 수 있다.
도 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), 그룹 테이블, 미터 테이블 및/또는 패킷 전달을 위한 네트워크 인터페이스로 하나 이상의 포트를 가질 수 있다.
한편, 오픈플로우 표준은 서브넷 기능을 별도로 제공하지 않는다. 서브넷팅(subnetting)이란 임의의 IP 네트워크를 둘 이상의 논리적 네트워크로 분할하는 것을 말하며, 일반적으로 네트워크 자원 관리의 편의를 위해 이용될 수 있다.
서브넷을 설정하면 브로드캐스팅 영역이 분리되기 때문에 원활한 통신이 가능해지는 것은 물론 네트워크 전체의 보안이 강화되고, 속도가 향상되는 효과가 있다.
예를 들어 공격자가 네트워크의 특정 호스트를 통해 ARP 포이즈닝을 시도한다고 하더라도, 전체 네트워크가 아니라 해당 호스트가 속하는 서브넷만 공격으로 인한 속도 저하가 발생하며, 해당 서브넷에 속하는 노드들의 패킷만 도용당하는 것으로 피해를 축소시킬 수 있다.
나아가 서브넷을 설정하면 네트워크 관리가 용이해지는 효과가 있다. 예를 들어 특정 노드에 과부하가 발생한 경우, 해당 서브넷만 검색하면 과부하의 원인을 발견할 수 있기 때문이다.
그러나 오픈플로우 표준은 서브넷팅을 별도로 제공하지 않는다. 따라서 소프트웨어 정의 네트워크에서는 논리적 서브넷을 설정할 수 있는 방법이 별도로 존재하지 않았다. 따라서 모든 스위치들은 전체 네트워크 단위로만 기능하는 문제가 있었다.
본 발명은 상기와 같은 문제를 해결하기 위하여 안출된 것이다.
본 발명의 실시예를 따르면, 컨트롤러는 오픈플로우 스위치의 포트 별로 서브넷을 지정할 수 있다. 소프트웨어 정의 네트워크에서는 컨트롤러가 네트워크의 노드를 중앙 집중식으로 제어할 수 있으므로, 스위치의 포트별로 서브넷을 설정하여 해당 서브넷마다 가상 주소, 즉 가상 게이트웨이의 주소를 할당하고, 상기 가상 주소에 대한 패킷의 처리를 컨트롤러가 제어하는 방식으로 서브넷을 운영할 수 있다.
보다 구체적으로 컨트롤러는 서브넷 별로 가상 게이트웨이 IP 주소와 MAC 주소를 할당하고, 할당한 주소에 대한 패킷의 처리를 제어하는 플로우 룰을 스위치에 적용하는 방식으로 서브넷을 운용할 수 있다.
예를 들어 스위치가 수신한 ARP 패킷이 서브넷 게이트웨이에 대한 ARP 요청 메시지인 경우, (즉, 해당 스위치가 할당받은 서브넷의 가상 게이트웨이 MAC 주소를 문의하는 ARP 요청 메시지를 수신한 경우) 스위치는 플로우 룰에 따라 이를 브로드캐스트하지 않고, 컨트롤러에 전송할 수 있다. 이후 컨트롤러는 상기 서브넷에 할당된 가상 MAC 주소에 대한 ARP 응답 패킷을 패킷 아웃 메시지의 형태로 스위치에 전송하고, 상기 ARP 응답 패킷을 소스 호스트에게 전송하는 플로우 룰을 함께 전송할 수 있다.
또 다른 예로 스위치가 수신한 ARP 패킷이 서브넷의 가상 게이트웨이 IP에 대한 ARP 요청 메시지인 경우, 스위치는 이를 브로드캐스트하지 않고, 플로우 테이블을 참조하여 서브넷에 할당된 가상 MAC 주소에 대한 ARP 응답 메시지로 변경하여 호스트에 전송할 수 있다.
이에 따르면 특정 서브넷에 속하는 호스트가 다른 서브넷에 속하는 호스트에 패킷을 전송하는 과정은 다음과 같다.
소스 호스트는 자신의 게이트웨이 MAC 주소를 획득하기 위하여, 자신의 서브넷에 할당된 가상 게이트웨이 IP 주소에 대한 ARP 요청 메시지를 브로드캐스팅하고, ARP 응답 메시지를 획득하여 자신의 가상 게이트웨이 MAC 주소를 획득할 수 있다. 이후 소스 호스트는 목적지 IP 헤더에 목적지 호스트의 IP 주소를 기재하고, 목적지 MAC 헤더에 상기 가상 MAC 주소를 기재한 패킷을 전송할 수 있다.
상기 패킷을 수신한 스위치는 오픈플로우 프로토콜에 따라 플로우 테이블을 참고하여 패킷을 전송할 것이다. 플로우 테이블에 관련 플로우 룰이 없으면 스위치는 컨트롤러에 플로우 룰을 문의하고, 컨트롤러는 자신의 서브넷 관리 테이블을 참고하여 해당 패킷의 경로를 지정할 수 있다.
특히 컨트롤러는 상기 패킷의 목적지 필드를 가상 게이트웨이 MAC 주소에서 목적지 호스트의 실제 MAC 주소로 변경하는 MAC 주소 다시 쓰기 (MAC rewriting)을 게이트웨이를 대신하여 처리할 수 있다.
본 발명의 다른 실시예를 따르면 서브넷 설정에 대한 제약을 오픈플로우 프로토콜을 이용하여 강화할 수도 있다. 예를 들어 컨트롤러는 지정된 서브넷 마스크 값을 변경한 주소를 가진 패킷은 모두 드랍(drop)하는 플로우 룰을 전송하는 방식으로 스위치를 제어하여, 임의로 서브넷 설정을 변경한 호스트의 통신을 허용하지 않을 수도 있다.
본 발명의 실시예에 따르는 SDN에서 서브넷 기능을 제공하는 구체적인 방법은 첨부된 도면에 대한 설명과 함께 후술된다.
도 2는 본 발명의 실시예를 따르는 SDN에서 서브넷을 지정하는 예시를 설명하기 위한 도면이다.
도 2는 오픈플로우 프로토콜을 지원하는 스위치 1 내지 6 (211, 212, 213, 214, 215, 216) 및 상기 스위치의 해당 포트에 연결된 호스트 1 내지 7 (231, 232, 233, 234, 235, 236, 237)을 노드로 하는 임의의 소프트웨어 정의 네트워크를 예시한다.
나아가 도 2에 도시된 예시는 호스트 1 (231)은 스위치 2(212)의 포트 1에 연결되고, 호스트 2 (232)는 스위치 2 (212)의 포트 2에 연결되며, 호스트 3 (233)은 스위치 3 (213)의 포트 1에 연결되고, 호스트 4 (234)는 스위치 3 (213)의 포트 2에 연결되며, 호스트 5 (235)은 스위치 5 (215)의 포트 1에 연결되고, 호스트 6 (236)은 스위치 6 (216)의 포트 1에 연결되고, 호스트 7 (237)는 스위치 6 (216)의 포트 2에 연결된 네트워크를 예시한다.
이와 같은 소프트웨어 정의 네트워크에서, 본 발명의 실시예를 따르는 컨트롤러는 스위치의 포트 별로 서브넷을 지정할 수 있다.
예를 들어 스위치 2의 포트 1, 스위치 2의 포트 2, 스위치 3의 포트 1, 스위치 6의 포트 2를 제 1 서브넷 (251)으로 지정하고, 스위치 3의 포트 2, 스위치 5의 포트 1, 스위치 6의 포트 1을 제 2 서브넷 (252)으로 지정할 수 있다. 이 경우, 호스트 1, 2, 3 및 7 (231, 232, 233, 237)은 제 1 서브넷 (251) 에 속하며 호스트 4, 5 및 6 (234, 235, 236)은 제 2 서브넷 (252) 에 속하게 될 것이다.
특히 본 발명의 실시예를 따르면 스위치별로 서브넷을 지정하는 것이 아니라 스위치의 포트별로 서브넷을 지정할 수 있다. 따라서 하나의 스위치는 복수의 서브넷에 속할 수 있다. 앞의 예에서 스위치 3 (213) 및 스위치 6 (216) 제 1 서브넷 (251) 및 제 2 서브넷 (252)에 동시에 속해 있는 경우이다.
보다 구체적으로 컨트롤러는 가상 게이트웨이의 IP 주소와 MAC 주소를 할당하여 서브넷을 운용할 수 있다. 도 2의 예에서 컨트롤러는 제 1 서브넷 (251)에 제 1 가상 IP 주소 <IP 1> 및 제 1 가상 MAC 주소 <MAC 1>을 할당하고, 제 2 서브넷 (252)에 제 2 가상 IP 주소 <IP 2>및 제 2 가상 MAC 주소 <MAC 2>를 할당할 수 있다.
표 1은 위의 예에서 컨트롤러가 관리하는 서브넷 리스트를 예시한다. 이때 제 1 가상 게이트웨이의 IP 주소는 <IP 1>, 제 1 가상 게이트웨이의 MAC 주소는 <MAC 1>, 제 2 가상 게이트웨이의 IP 주소는 <IP 2>, 제 2 가상 게이트웨이의 MAC 주소는 <MAC 2>로 간략하게 표시하였다.
서브넷 ID 가상 게이트웨이 IP 주소 가상 게이트웨이 MAC주소 멤버 정보 호스트 정보
제 1 서브넷 제 1 가상 IP 주소 < IP 1> 제 1 가상 MAC 주소 < MAC 1> (스위치 2, 포트 1) 호스트 1
(스위치 2, 포트 2) 호스트 2
(스위치 3, 포트 1) 호스트 3
(스위치 7, 포트 2) 호스트 7
제 2 서브넷 제 2 가상 IP 주소 <IP 2> 제 2 가상 MAC 주소 < MAC 2> (스위치 3, 포트 2) 호스트 4
(스위치 5, 포트 1) 호스트 5
(스위치 6, 포트 1) 호스트 6
한편 소프트웨어 정의 네트워크에서도 호스트 간의 전송은 IP 주소를 기반으로 이루어진다. 보다 구체적으로 송신 호스트 (소스 호스트)는 수신 호스트 (목적지 호스트)의 IP 주소를 이용하여 데이터 송신을 시도하며, 이때 수신 호스트의 IP 주소를 이용하여 수신 호스트의 MAC 주소를 알아내기 위하여 ARP가 사용된다.
ARP, 즉 주소 결정 프로토콜(Address Resolution Protocol)은 네트워크 상에서 IP 주소를 MAC 주소 등 물리적 네트워크 주소로 대응시키기 위해 사용되는 프로토콜이다. 여기서 물리적 네트워크 주소는 이더넷의 네트워크 카드 주소를 포함할 수 있다.
예를 들어 도 2의 예에서 호스트 1 (231)이 호스트 4 (234)에 패킷을 전송하고자 하는 경우, 호스트 1과 호스트 4는 논리적으로 구분된 다른 서브넷에 속하기 때문에 호스트 1 (231)은 자신의 게이트웨이 MAC 주소를 획득하기 위하여 ARP 프로토콜에 따라 게이트웨이 IP 주소에 대한 ARP 요청 패킷을 네트워크 상에 브로드캐스팅할 것이다. 예를 들어 표 1의 예에서 호스트 1은 목적지 IP 주소 헤더에 <IP 1>을 기재한 ARP 요청 패킷을 전송할 것이다.
ARP 요청 패킷을 수신한 스위치 2 (212)는 본 발명의 실시예에 따라 이를 브로드캐스팅하지 않고 자신의 플로우 테이블을 참고하여 처리할 것이다.
예를 들어 플로우 테이블에 해당 ARP 요청 패킷은 컨트롤러에 전송하도록 설정되어 있는 경우 스위치 2는 컨트롤러에 해당 ARP 요청 패킷을 전달할 수 있다. 이후 컨트롤러는 해당 서브넷의 가상 MAC 주소에 대한 ARP 응답 패킷을 패킷 아웃 메시지 형태로 스위치 2에 전송하고, 상기 ARP 응답 패킷을 호스트 1 (231)에 전송하도록 스위치 2 (212)를 제어하는 플로우 변경 메시지를 전송할 수 있다.
예를 들어 표 1의 예에서 호스트 1은 소스 IP 주소 필드에 <IP 1>, 소스 MAC 주소 필드에 <MAC 1>을 기재한 ARP 응답 패킷을 수신할 수 있다.
한편 본 발명의 다른 실시예를 따르면 상기 플로우 테이블은 스위치가 상기 ARP 요청 패킷을 상기 ARP 응답 패킷으로 변경하여 전송하도록 미리 설정되어 있을 수 있다. 이 경우, 스위치 2는 수신한 ARP 요청 패킷을 플로우 테이블의 기재에 따라 해당 서브넷의 가상 MAC 주소에 대한 ARP 응답 패킷으로 변경하여 호스트 1 (231)에 전송할 수도 있다.
이후 호스트 1 (231)은 패킷의 목적지 IP 주소 헤더에 호스트 4 (234)의 IP 주소를 기재하고, 목적지 MAC 주소 헤더에 <MAC 1>을 기재하여 패킷을 전송할 수 있다.
도 3은 본 발명의 실시예를 따르는 소프트웨어 정의 네트워크에서 서브넷을 지정하고, 서브넷의 가상 게이트웨이에 대한 ARP 패킷을 처리하는 방법을 설명하기 위한 순서도이다. 도 3은 본 발명의 실시예에 따라 서브넷을 지정하는 구체적인 방법을 설명하기 위해, 전술한 도 2의 제 1 서브넷 (251)에 속하는 스위치 (212, 213, 216) 및 제 2 서브넷 (252)에 속하는 스위치 (213, 215, 216)를 예로 들고 있다.
도 3의 단계 310에서 컨트롤러는 스위치의 포트별로 서브넷을 지정하고, 각각의 서브넷에 대한 가상 게이트웨이 IP 주소와 가상 게이트웨이 MAC 주소를 할당하고, 이를 리스트 및/또는 테이블의 형태로 관리할 수 있다.
서브넷 리스트는 예를 들어 전술한 표 1의 형태의 데이터베이스로 컨트롤러가 관리할 수 있다. 이에 따르면 도 3에 도시된 제 1 서브넷 스위치 (251)는 가상 게이트웨이의 IP 주소 및 MAC 주소가 < <IP 1, MAC 1> 로 할당되었으며, 제 2 서브넷 스위치 (252)는 <IP 2, MAC 2>로 할당된 경우이다.
단계 320에서 컨트롤러는 서브넷에 대한 ARP 패킷, 즉 가상 게이트웨이에 대한 ARP 패킷은 컨트롤러의 제어를 받아 처리하도록 스위치를 설정할 수 있다. 이는 도 3에 도시된 것과 같이 컨트롤러가 스위치에 플로우 룰을 전송하는 방식으로 구현될 수 있다.
본 발명의 실시예를 따르면, 상기 플로우 룰은 가상 게이트웨이의에 대한 ARP 요청의 처리에 대해 규정할 수 있다. 보다 구체적으로, ARP 요청을 처리하는 플로우 룰은, 가상 게이트웨이에 대한 ARP 요청 패킷은 브로드캐스트하지 않고, 표 2과 같이 패킷인 메시지로 컨트롤러에 전송하거나, 또는 표 3과 같이 ARP 응답 패킷으로 변경하여 소스 호스트에 전송하도록 규정할 수 있다.
Match Fields Instructions
해당 서브넷에 할당된 가상 게이트웨이의 IP 주소에 대한 ARP 요청 1. 패킷인 메시지로 인캡슐
2. 컨트롤러로 전송 (send to controller)
Match Fields Instructions
해당 서브넷에 할당된 가상 게이트웨이의 IP 주소에 대한 ARP 요청 1. ARP 패킷의 op code를 REQUEST에서 REPLY로 변경
2. 출발지 맥주소 필드에 해당 서브넷에 할당된 가상 게이트웨이 MAC 주소 기록
3. 들어온 포트로 전송
특히 표 3에서 예시하는 플로우 룰을 따르면, 스위치는 가상 게이트웨이에 대한 ARP 요청 패킷을 가상 게이트웨이의 MAC 주소를 포함하는 ARP 응답 패킷으로 변경할 수 있다.
보다 구체적으로, 본 발명의 실시예를 따르면 오픈플로우 표준에서 규정하는 Set-Field 액션을 이용하여, 스위치가 수신한 ARP 요청 패킷의 오퍼레이션 코드를 요청에서 응답으로 변경하고, 메타 데이터 함수를 다음의 순서로 기록하여 ARP 요청 패킷을 ARP 응답 패킷으로 변경할 수 있다.
1. 변경후 ARP 응답 패킷의 도착지 IP 주소와 도착지 MAC 주소 필드에 변경전 ARP 요청 패킷의 출발지 IP 주소와 출발지 MAC 주소 필드에 기재된 값을 각각 기재
2. 변경후 ARP 응답 패킷의 출발지 IP 주소와 도착지 MAC 주소 필드에 해당 서브넷에 할당된 가상 게이트웨이의 IP 주소값과 가상 게이트웨이의 MAC 주소 값을 기재
3. 들어온 포트로 전송
이에 따르면 스위치가 ARP 요청 패킷을 컨트롤러 또는 네트워크에 전송하지 않고도, 가상 게이트웨이에 대한 ARP 응답 패킷을 생성할 수 있어 네트워크의 성능이 향상될 수 있다.
한편 도 3에 별도로 도시된 것은 아니지만, 본 발명의 실시예를 따르면 서브넷은 스위치별로 지정되는 것이 아니라, 스위치의 포트별로 지정될 수 있다. 따라서 특정 스위치는 복수의 서브넷에 속할 수 있다. 전술한 도 2에서 스위치 3 (213) 및 스위치 6 (216)은 제 1 서브넷 (251) 과 제 2 서브넷 (252)에 모두 속해 있는 경우이다.
스위치가 복수의 서브넷에 속하는 경우, 각각의 서브넷에 대한 ARP 패킷의 처리를 규정하기 위하여 플로우 룰이 복수개 적용될 수 있다. 예를 들어 도 2의 스위치 3 (213) 및 스위치 6 (216)은 제 1 서브넷의 가상 게이트웨이에 대한 ARP 요청 메시지에 대한 처리를 규정하는 플로우 룰, 그리고 제 2 서브넷의 가상 게이트웨이에 대한 ARP 요청 메시지에 대한 처리를 규정하는 플로우 룰을 컨트롤러로부터 각각 수신할 수 있다.
이후 스위치는 수신한 플로우 룰을 플로우 테이블에 반영할 수 있다.
이후 호스트가 해당 서브넷에 대한 ARP 요청, 즉 해당 서브넷에 할당된 가상 게이트웨이의 IP 주소에 대한 ARP 요청 메시지를 수신하면, 스위치는 패킷을 브로드캐스트하지 않지 않고, 플로우 테이블에 따라 해당 패킷을 처리할 수 있다. (단계 330) 도 2의 예에서 제 1 서브넷에 속하는 스위치 (251)는 목적지 IP 주소를 <IP 1>로 기재한 ARP 요청 메시지를 수신할 수 있으며, 스위치 (215)는 수신한 ARP 요청 메시지를 브로드캐스트하지 않고, 전술한 표 2 또는 표 3에 따라 처리할 수 있다.
보다 구체적으로, 표 2과 같은 플로우 룰이 스위치(251)에 적용된 경우, 스위치는 상기 ARP 요청을 패킷인 메시지의 형태로 컨트롤러에 전송할 수 있다. (단계 342)
이를 수신한 컨트롤러는 해당 서브넷에 할당된 가상 게이트웨이의 MAC 주소, 즉 <MAC 1>에 대한 ARP 응답 메시지를 패킷아웃 메시지의 형태로 스위치에 전송하고, 해당 ARP 응답 메시지를 소스 호스트에 전송하도록 규정하는 플로우 룰을 전송할 수 있다. (단계 344) 스위치는 소스 호스트에 가상 게이트웨이에 대한 ARP 응답 메시지를 전송할 것이다 (단계 346)
한편, 표 3과 같은 플로우 룰이 스위치에 적용된 경우, 스위치는 상기 ARP 요청을 브로드캐스트하거나 컨트롤러에 전송하지 않고, 가상 게이트웨이의 MAC 주소, 즉 <MAC 1>에 대한 정보가 포함된 ARP 응답 패킷으로 변환하고, 소스 호스트에 상기 ARP 응답 패킷을 전송할 것이다. (단계 340)
단계 350 내지 단계 380은 본 발명의 실시예에 따라 서브넷 정책을 운용하는 예시에 대한 것이다.
종래의 네트워크에서 네트워크 관리자가 호스트에 특정 서브넷 마스크를 지정하는 방식으로 서브넷을 설정했다 하더라도, 사용자는 서브넷 설정을 따르지 않을 수 있다. 이렇게 되면 네트워크를 논리적으로 구분하는 서브넷이 제 기능을 발휘할 수 없어 네트워크 관리가 어려워지는 문제가 발생한다.
그러나 소프트웨어 정의 네트워크에서는 컨트롤러가 중앙 집중식으로 네트워크의 패킷 정책을 결정할 수 있으므로, 서브넷 설정을 지키지 않은 패킷을 걸러내는 방식으로 서브넷 정책을 강화할 수 있다.
보다 구체적으로 도 3의 단계 350에서 각 호스트는 컨트롤러의 서브넷 설정에 따라 서브넷 마스크 값이 부여될 수 있다. 이후 단계 360에서 컨트롤러는 서브넷 설정을 강화하기 위한 플로우 룰을 스위치에 전송할 수 있다. 예를 들어 컨트롤러는 서브넷 설정을 따르지 않은 IP 주소를 소스로 하는 패킷은 드랍하는 플로우 룰을 스위치에 전송하는 방식으로 네트워크에 서브넷 설정을 강화할 수 있다.
특히 본 발명의 실시예를 따르는 서브넷은 스위치 별로 할당되는 것이 아니라 스위치의 포트별로 할당될 수 있다. 따라서 상기 서브넷 설정에 대한 플로우 룰은 소스 IP 값 및 IN_PORT 값을 매치 필드에 포함할 수 있다.
도 3의 단계 370에서 제 2 서브넷에 속하는 스위치가 서브넷 설정을 변경한 패킷을 수신한 경우, 단계 380에서 스위치는 플로우 테이블을 참고하여 해당 패킷을 드랍할 것이며, 이러한 방식으로 서브넷 설정이 강화될 수 있다. 도 2의 예에서, 제 2 서브넷 (252)에 속하는 호스트 4 (234)가 서브넷 설정을 변경하고, 서브넷 설정을 따르지 않은 IP 주소를 소스로 하는 패킷을 스위치 3 (213)에 전송하면 스위치 3은 플로우 룰에 따라 해당 패킷을 드랍할 것이다.
본 명세서와 도면에 게시된 본 발명의 실시 예들은 본 발명의 기술 내용을 쉽게 설명하고 본 발명의 이해를 돕기 위해 특정 예를 제시한 것뿐이며, 본 발명의 범위를 한정하고자 하는 것은 아니다. 여기에 게시된 실시 예들 이외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형 예들이 실시 가능하다는 것은 본 발명이 속하는 기술 분야에서 통상의 지식 가진 자에 자명한 것이다.

Claims (8)

  1. 소프트웨어 정의 네트워크에서 서브넷 기능을 지원하는 방법에 있어서,
    컨트롤러가, 스위치에 서브넷을 지정하고, 각각의 서브넷에 가상 게이트웨이 IP 주소 및 MAC 주소를 할당하는 단계; 및
    상기 서브넷에 대한 ARP 패킷을 플로우 테이블에 따라 처리하도록 상기 스위치를 설정하는 단계를 포함하는 것을 특징으로 서브넷 지원 방법.
  2. 제 1항에 있어서, 상기 설정하는 단계는,
    상기 서브넷에 할당된 가상 게이트웨이의 IP 주소에 대한 ARP 요청 패킷을 브로드캐스트하지 않고, 상기 컨트롤러에 전송하도록 지시하는 제 1 플로우 룰 및 상기 ARP 요청 패킷을 브로드캐스트하지 않고, 상기 가상 게이트웨이의 MAC 주소에 대한 ARP 응답 패킷으로 변환하여 상기 ARP 요청 패킷이 들어온 포트로 전송하도록 지시하는 제 2 플로우 룰 중 적어도 하나 이상을 상기 스위치에 전송하는 단계인 것을 특징으로 하는 서브넷 지원 방법.
  3. 제 2항에 있어서, 상기 제 2 플로우 룰은,
    상기 ARP 요청 패킷의 ARP 유형(operation) 필드를 응답으로 변경하고, 소스 주소 필드에 상기 서브넷에 할당된 가상 게이트웨이 IP 주소 및 MAC 주소를 기재하고, 목적지 주소 필드에 상기 ARP 요청 패킷의 소스 주소 필드에 기재된 값을 기재하여, 상기 ARP 요청 패킷을 상기 ARP 응답 패킷으로 변환하도록 상기 스위치를 설정하는 것을 특징으로 하는 서브넷 지원 방법.
  4. 제 3항에 있어서, 상기 설정하는 단계는,
    상기 제 1 플로우 룰을 상기 스위치에 전송한 경우, 상기 스위치로부터 상기 ARP 요청 패킷을 수신하면, 상기 가상 게이트웨이의 MAC 주소에 대한 ARP 응답 패킷을 전송하는 단계를 포함하는 것을 특징으로 하는 서브넷 지원 방법.
  5. 제 4항에 있어서,
    상기 할당하는 단계는, 상기 스위치의 포트 별로 상기 서브넷을 지정하는 단계이며,
    상기 설정하는 단계는, 상기 스위치에 복수의 서브넷이 지정된 경우, 상기 ARP 요청 패킷의 처리에 대한 플로우 룰을 복수개 전송하는 단계인 것을 특징으로 하는 서브넷 지원 방법.
  6. 제 1항에 있어서, 상기 할당하는 단계 이후에,
    상기 서브넷 설정을 준수하지 않은 패킷은 드랍하도록 상기 스위치를 설정하는 단계를 더 포함하는 것을 특징으로 하는 서브넷 지원 방법.
  7. 소프트웨어 정의 네트워크에서 서브넷 기능을 지원하는 컨트롤러에 있어서,
    스위치와 통신하는 통신부; 및
    상기 스위치에 서브넷을 지정하고, 각각의 서브넷에 가상 게이트웨이 IP 주소 및 MAC 주소를 할당하며, 상기 서브넷에 대한 ARP 패킷을 플로우 테이블에 따라 처리하도록 상기 스위치를 설정하는 제어부를 포함하는 것을 특징으로 컨트롤러.
  8. 소프트웨어 정의 네트워크에서 서브넷 기능을 지원하는 처리를 컨트롤러에서 수행하기 위하여 컴퓨터 판독가능한 기록매체에 저장된 컴퓨터 프로그램에 있어서,
    스위치에 서브넷을 지정하고, 각각의 서브넷에 가상 게이트웨이 IP 주소 및 MAC 주소를 할당하는 기능; 및
    상기 서브넷에 대한 ARP 패킷을 플로우 테이블에 따라 처리하도록 상기 스위치를 설정하는 기능을 수행하는 것을 특징으로 하는 컴퓨터 프로그램.
KR1020150185843A 2015-12-24 2015-12-24 소프트웨어 정의 네트워크에서 서브넷을 지원하는 방법, 장치 및 컴퓨터 프로그램 KR101786620B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150185843A KR101786620B1 (ko) 2015-12-24 2015-12-24 소프트웨어 정의 네트워크에서 서브넷을 지원하는 방법, 장치 및 컴퓨터 프로그램

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150185843A KR101786620B1 (ko) 2015-12-24 2015-12-24 소프트웨어 정의 네트워크에서 서브넷을 지원하는 방법, 장치 및 컴퓨터 프로그램

Publications (2)

Publication Number Publication Date
KR20170076064A true KR20170076064A (ko) 2017-07-04
KR101786620B1 KR101786620B1 (ko) 2017-11-15

Family

ID=59356959

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150185843A KR101786620B1 (ko) 2015-12-24 2015-12-24 소프트웨어 정의 네트워크에서 서브넷을 지원하는 방법, 장치 및 컴퓨터 프로그램

Country Status (1)

Country Link
KR (1) KR101786620B1 (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108650221A (zh) * 2018-03-29 2018-10-12 烽火通信科技股份有限公司 一种sptn设备的控制报文提取装置及方法
KR101931543B1 (ko) * 2017-10-26 2019-03-13 아토리서치(주) 플로우-모드 메시지를 이용한 소프트웨어 정의 네트워킹 환경에서의 장애 처리 방법 및 컴퓨터 프로그램
KR20200065540A (ko) * 2018-11-30 2020-06-09 아토리서치(주) 소프트웨어 정의 네트워크에서 클라우드 환경의 분산 snat을 지원하는 방법, 장치 및 컴퓨터 프로그램
CN111314459A (zh) * 2020-02-13 2020-06-19 北京奇艺世纪科技有限公司 一种业务请求方法、装置、电子设备及存储介质
KR20230068054A (ko) * 2021-11-10 2023-05-17 주식회사 이노그리드 단일 포트를 이용한 다중 서브넷에 대한 외부 트래픽 모니터링을 수행하는 hpc 시스템 및 방법

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015100656A1 (zh) * 2013-12-31 2015-07-09 华为技术有限公司 一种实现虚拟机通信的方法和装置

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101931543B1 (ko) * 2017-10-26 2019-03-13 아토리서치(주) 플로우-모드 메시지를 이용한 소프트웨어 정의 네트워킹 환경에서의 장애 처리 방법 및 컴퓨터 프로그램
CN108650221A (zh) * 2018-03-29 2018-10-12 烽火通信科技股份有限公司 一种sptn设备的控制报文提取装置及方法
CN108650221B (zh) * 2018-03-29 2020-12-15 烽火通信科技股份有限公司 一种sptn设备的控制报文提取装置及方法
KR20200065540A (ko) * 2018-11-30 2020-06-09 아토리서치(주) 소프트웨어 정의 네트워크에서 클라우드 환경의 분산 snat을 지원하는 방법, 장치 및 컴퓨터 프로그램
CN111314459A (zh) * 2020-02-13 2020-06-19 北京奇艺世纪科技有限公司 一种业务请求方法、装置、电子设备及存储介质
KR20230068054A (ko) * 2021-11-10 2023-05-17 주식회사 이노그리드 단일 포트를 이용한 다중 서브넷에 대한 외부 트래픽 모니터링을 수행하는 hpc 시스템 및 방법

Also Published As

Publication number Publication date
KR101786620B1 (ko) 2017-11-15

Similar Documents

Publication Publication Date Title
US9730269B2 (en) Method and system for partitioning wireless local area network
KR101786620B1 (ko) 소프트웨어 정의 네트워크에서 서브넷을 지원하는 방법, 장치 및 컴퓨터 프로그램
EP3493508A1 (en) Separation of control plane function and forwarding plane function of broadband remote access server
EP2584742B1 (en) Method and switch for sending packet
KR102025680B1 (ko) Sdn 기반의 arp 구현 방법 및 장치
EP2536099A2 (en) Method and access node for preventing address conflict
KR101710385B1 (ko) Arp 패킷을 관리하는 방법, 장치 및 컴퓨터 프로그램
WO2018171396A1 (zh) 一种数据传输方法、装置及系统
EP2806598B1 (en) Method and system for managing address resources
EP3086512B1 (en) Implementation method and apparatus for vlan to access vf network and fcf
WO2015090035A1 (zh) 网络资源的共享处理、共享方法及装置、系统
EP3010209A1 (en) Docsis provisioning of point-to-point ethernet
KR101786616B1 (ko) 소프트웨어 정의 네트워크에서 서브넷을 지원하는 방법, 장치 및 컴퓨터 프로그램
KR101404491B1 (ko) 오픈플로우 망 기반의 서브넷별 동적 대역폭 설정 시스템 및 방법
EP4250649A1 (en) Packet forwarding method and apparatus, and network system
EP4277211A1 (en) Interface management method for accessed user equipment, and accessed user equipment
KR102412933B1 (ko) 소프트웨어 정의 네트워크 기반 망 분리 서비스를 제공하는 시스템 및 방법
CN114175583B (zh) 自愈网络中的系统资源管理
KR102092015B1 (ko) 소프트웨어 정의 네트워크에서 네트워크 장비를 인식하는 방법, 장치 및 컴퓨터 프로그램
CN101686265B (zh) 网络设备、网络系统以及建立数据通讯的方法
US9231862B2 (en) Selective service based virtual local area network flooding
KR20040011936A (ko) 복수의 가상랜으로 구성된 이더넷 상에서의 스위칭 장치와이를 이용한 통신 방법
RU2635216C1 (ru) Способ маршрутизации IP-пакетов при использовании VPLS совместно с DHCP в сети с коммутацией пакетов
CN112714071A (zh) 一种数据发送方法及装置
KR101786623B1 (ko) 소프트웨어 정의 네트워크에서 브로드캐스트를 처리하는 방법, 장치 및 컴퓨터 프로그램

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant