KR101755829B1 - Sdn 환경에서 arp 처리 방법 및 장치 - Google Patents
Sdn 환경에서 arp 처리 방법 및 장치 Download PDFInfo
- Publication number
- KR101755829B1 KR101755829B1 KR1020150119408A KR20150119408A KR101755829B1 KR 101755829 B1 KR101755829 B1 KR 101755829B1 KR 1020150119408 A KR1020150119408 A KR 1020150119408A KR 20150119408 A KR20150119408 A KR 20150119408A KR 101755829 B1 KR101755829 B1 KR 101755829B1
- Authority
- KR
- South Korea
- Prior art keywords
- terminal
- arp
- network device
- switch
- response message
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/25—Routing or path finding in a switch fabric
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/10—Mapping addresses of different types
- H04L61/103—Mapping addresses of different types across network layers, e.g. resolution of network layer into physical layer addresses or address resolution protocol [ARP]
-
- H04L61/6022—
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
SDN 환경에서 ARP를 처리하는 방법 및 장치에 관한 기술이 개시된다. 네트워크 장치에 의한 ARP 처리 방법은, 제1 네트워크 장치가 제1 단말이 제2 단말과 통신하기 위한 ARP 요청 패킷을 상기 제1 단말로부터 수신하는 단계와; 제1 네트워크 장치가 ARP 요청 패킷에 대한 응답으로 제2 단말의 MAC 주소 정보를 포함하는 ARP 응답 메시지를 제1 단말로 전송하는 단계를 포함한다. 따라서, SDN 환경에서 네트워크 장치가 ARP 프록시 기능을 분담함으로써 컨트롤러의 부하를 감소시킬 수 있다.
Description
본 발명은 SDN(Software Defined Networking)에 관한 것으로, 더욱 상세하게는 SDN 환경에서 ARP를 처리하는 방법 및 장치에 관한 것이다.
소프트웨어 정의 네트워킹(SDN: Software Defined Networking)은 라우터나 스위치 등의 기본 네트워크 장비에 관계없이 사용자가 통제 권한을 가지며, 별도의 소프트웨어 컨트롤러가 트래픽 흐름을 제어하는 사용자 중심의 네트워크를 의미한다.
OpenFlow는 SDN 기술 중 하나로, 라우터와 같은 하드웨어와 네트워크 OS(Network OS) 상에서 동작하는 컨트롤러 사이를 연결하는 인터페이스를 정의하는 것으로, 네트워크를 통해 데이터 패킷을 어떻게 전달할 것인지 제어하기 위한 기능(Control Plane)을 물리적 네트워크와 분리하여 데이터 전달 기능(Data Plane)과 상호작용 하기 위한 프로토콜이다.
OpenFlow 기능이 적용된 라우터는 L2 스위칭, L3 라우팅, ACL(Access Control List), QoS 등에 대한 플로우 테이블(Flow table)의 매칭 및 동작으로 정의된다. 따라서, 라우터는 L2 스위칭 및 ARP의 경우에도 자체적으로 처리하는 기능이 없을 뿐 아니라, 컨트롤러부터 플로우 테이블(Flow table)을 전달받아 ARP 동을 처리하는 개념이 명확하지 않다.
한편, 라우터에 연결된 단말은 IP기반의 통신을 하기 위하여 통신 대상이 되는 서버나 다른 단말의 MAC 주소를 알고 있어야 한다. 즉, 단말은 IP 패킷에 목적지 주소를 부가하여 통신 대상이 되는 서버나 다른 단말과 양방간의 통신을 할 수 있다.
단말이 통신 대상이 되는 서버나 다른 단말의 MAC 주소를 알기 위해 브로드캐스트 방식으로 ARP 요청을 하면, 동일한 서브넷으로 구성된 네트워크에 있는 모든 다른 단말은 ARP 요청을 수신하게 된다. ARP 요청에 상응하는 IP 주소를 가지고 있는 단말은 자신의 MAC 주소를 실어서 ARP 응답을 수행하고 있고, ARP 요청을 보낸 단말은 이러한 ARP 응답을 수신하여 ARP 테이블 생성함으로써 양방간의 통신이 수행될 수 있다.
SDN 환경에서 라우터에 연결되어 있는 하위 단말의 ARP 요청에 대해서는 컨트롤러에게 요청하여 컨트롤러가 설정한 경로에 따라 ARP 응답을 처리해야 하나, 이러한 과정에 대한 정의가 부족한 상태이다. 또한, 라우터에 접속된 모든 단말로부터의 ARP 요청 패킷이 항상 중앙의 컨트롤러에게 집중될 수 있고, 이로 인하여 컨트롤러의 부하가 가중되는 문제점이 있다.
더 나아가, SDN을 지원하는 라우터에 연결된 단말의 경우, 초기에 IP를 동적으로 할당하는 방법이 없을 뿐 아니라, 라우팅을 위한 기본 게이트웨이 IP가 설정되어 있지 않다. 따라서, 라우터는 동일 네트워크에서처럼 브로드캐스트로 ARP 요청을 할 수 밖에 없고, 결국 브로드캐스트가 도달할 수 없는 다른 네트워크에 있는 특정한 단말에게는 ARP 요청을 보낼 수 없는 문제점이 있다.
상기와 같은 문제점을 해결하기 위한 본 발명의 목적은, SDN 환경에서 컨트롤러가 ARP 프록시 기능을 수행하여 ARP를 처리하는 방법을 제공하는데 있다.
상기와 같은 문제점을 해결하기 위한 본 발명의 다른 목적은, SDN 환경에서 네트워크 장치가 ARP 프록시 기능을 수행하여 ARP를 처리하는 방법을 제공하는데 있다.
상기와 같은 문제점을 해결하기 위한 본 발명의 또 다른 목적은, SDN 환경에서 컨트롤러와 네트워크 장치가 연동하여 ARP를 처리하는 방법을 제공하는데 있다.
상기 목적을 달성하기 위한 본 발명의 일 측면에 따른 컨트롤러에 의한 ARP 처리 방법은, 제1 단말이 제2 단말과 통신하기 위한 ARP 요청 패킷을 네트워크 장치로부터 수신하는 단계와; ARP 요청 패킷에 대한 처리를 위한 플로우 테이블 정보 및 처리 명령 메시지를 네트워크 장치로 전송함으로써, 네트워크 장치가 플로우 테이블 정보에 기반하여 갱신된 플로우 테이블(Flow Table)에 따라 처리 명령 메시지를 수행하도록 제어하는 단계를 포함한다.
여기에서, 상기 처리 명령 메시지를 수행하도록 제어하는 단계는, 처리 명령 메시지에 따라 ARP 응답 메시지가 제1 단말로 전달되도록 네트워크 장치를 제어할 수 있다.
여기에서, 상기 ARP 응답 메시지는, 컨트롤러에 의해 제2 단말의 MAC 주소 정보를 포함할 수 있다.
여기에서, 상기 처리 명령 메시지를 수행하도록 제어하는 단계는, 갱신된 플로우 테이블에 따라 ARP 요청 패킷을 네트워크 장치에 연결된 복수의 단말에 브로드캐스트(broadcast)하도록 하고, ARP 요청 패킷에 대한 응답인 ARP 응답 메시지를 제2 단말로부터 수신하여 상기 제1 단말로 전달하도록 할 수 있다.
여기에서, 상기 ARP 응답 메시지는, 제2 단말에 의해 제2 단말의 MAC 주소 정보를 포함할 수 있다.
상기 목적을 달성하기 위한 본 발명의 다른 측면에 따른 네트워크 장치에 의한 ARP 처리 방법은, 제1 단말이 제2 단말과 통신하기 위한 ARP 요청 패킷을 제1 단말로부터 수신하는 단계와; ARP 요청 패킷을 컨트롤러로 전송하는 단계와; ARP 요청 패킷에 대한 응답으로 ARP 요청 패킷에 대한 처리를 위한 플로우 테이블 정보 및 처리 명령 메시지를 수신하는 단계를 포함한다.
여기에서, 상기 방법은, 플로우 테이블 정보에 기반하여 플로우 테이블(Flow Table)을 갱신하는 단계를 더 포함할 수 있다.
여기에서, 상기 방법은, 처리 명령 메시지에 따라 ARP 응답 메시지를 갱신된 플로우 테이블(Flow Table)에 따라 제1 단말로 전달하는 단계를 더 포함할 수 있다.
여기에서, 상기 ARP 응답 메시지는, 컨트롤러에 의해 제2 단말의 MAC 주소 정보를 포함할 수 있다.
여기에서, 상기 방법은, 갱신된 플로우 테이블 및 처리 명령 메시지에 따라 ARP 요청 패킷을 네트워크 장치에 연결된 복수의 단말에 브로드캐스트(broadcast)하는 단계와; ARP 요청 패킷에 대한 응답인 ARP 응답 메시지를 제2 단말로부터 수신하여 제1 단말로 전달하는 단계를 더 포함할 수 있다.
여기에서, 상기 ARP 응답 메시지는, 제2 단말에 의해 제2 단말의 MAC 주소 정보를 포함할 수 있다.
상기 다른 목적을 달성하기 위한 본 발명의 실시예에 따른 네트워크 장치에 의한 ARP 처리 방법은, 제1 네트워크 장치가 제1 단말이 제2 단말과 통신하기 위한 ARP 요청 패킷을 상기 제1 단말로부터 수신하는 단계와; 제1 네트워크 장치가 ARP 요청 패킷에 대한 응답으로 제2 단말의 MAC 주소 정보를 포함하는 ARP 응답 메시지를 제1 단말로 전송하는 단계를 포함한다.
여기에서, 상기 ARP 응답 메시지를 상기 제1 단말로 전송하는 단계는, 제2 단말이 제1 네트워크 장치에 연결되고, 제1 네트워크 장치가 ARP 프록시(Proxy) 기능을 가진 경우, 제1 네트워크 장치가 ARP 응답 메시지에 제2 단말의 MAC 주소 정보를 포함시킴으로써, ARP 프록시 기능을 수행할 수 있다.
여기에서, 상기 ARP 응답 메시지를 상기 제1 단말로 전송하는 단계는, 제2 단말이 제1 네트워크 장치와 다른 도메인에 위치하는 제2 네트워크 장치에 연결되고, 제2 네트워크 장치가 ARP 프록시(Proxy) 기능을 가지지 않는 경우, 제1 네트워크 장치가 ARP 응답 메시지에 제2 단말의 MAC 주소 정보를 포함시킴으로써, ARP 프록시 기능을 수행할 수 있다.
여기에서, 상기 ARP 응답 메시지를 상기 제1 단말로 전송하는 단계는, 제2 단말이 제1 네트워크 장치와 다른 도메인에 위치하는 제2 네트워크 장치에 연결되고, 제2 네트워크 장치가 ARP 프록시(Proxy) 기능을 가진 경우, 제1 네트워크 장치가 ARP 요청 패킷을 제2 네트워크 장치로 전송하는 단계와; 제2 네트워크 장치가 ARP 요청 패킷에 대한 응답으로 제2 단말의 MAC 주소 정보를 포함시킨 ARP 응답 메시지를 제1 네트워크 장치로 전송하는 단계와; 제1 네트워크 장치가 ARP 응답 메시지를 제1 단말로 전송하는 단계를 포함할 수 있다.
상기 또 다른 목적을 달성하기 위한 본 발명의 실시예에 따른 ARP 처리 방법은, 컨트롤러가 ARP 프록시(Proxy) 기능 가능 여부를 복수의 네트워크 장치에 조회하는 단계와; 컨트롤러가 복수의 네트워크 장치로부터 자신이 ARP 프록시 기능을 수행할 수 있는지 여부에 대한 응답을 수신하는 단계와; 컨트롤러가 복수의 네트워크 장치의 응답에 기반하여 ARP 프록시 기능을 수행할 네트워크 장치를 선정하는 단계를 포함한다.
여기에서, ARP 프록시 기능을 수행하는 것으로 선정된 네트워크 장치는, 제1 단말이 제2 단말과 통신하기 위한 ARP 요청 패킷을 제1 단말로부터 수신하고, 제2 단말의 MAC 주소 정보를 ARP 응답 메시지에 포함시켜 제1 단말로 전송함으로써, ARP 프록시 기능을 수행할 수 있다.
여기에서, ARP 프록시 기능을 수행하는 것으로 선정되지 않은 네트워크 장치는, 제1 단말이 제2 단말과 통신하기 위한 ARP 요청 패킷을 제1 단말로부터 수신하고, ARP 요청 패킷을 컨트롤러로 전송하며, ARP 요청 패킷에 대한 응답인 ARP 응답 메시지를 컨트롤러로부터 수신하여 제1 단말에 전달할 수 있다.
여기에서, 상기 ARP 응답 메시지는, 컨트롤러에 의해 제2 단말의 MAC 주소 정보를 포함할 수 있다.
상기와 같은 본 발명의 실시예에 따른 ARP 처리 방법은, SDN 환경에서 네트워크 장치가 ARP 프록시 기능을 분담함으로써 컨트롤러의 부하를 감소시킬 수 있다.
또한, SDN 환경에서 컨트롤러 및 네트워크 장치에 의한 ARP 처리 프로세스를 단순화함으로써 네트워크 장치에 연결된 단말이 다른 네트워크 상의 단말과 효과적으로 통신할 수 있도록 한다.
또한, SDN 환경에서 네트워크 구성 요소들의 기능을 고려하여 ARP 처리를 적응적으로 수행함으로써 다양한 네트워크 환경에서 최적의 ARP 처리를 수행할 수 있다.
도 1는 본 발명의 일 실시예에 따라 SDN 환경에서 컨트롤러가 ARP 프록시(Proxy) 기능을 수행하는 방법을 설명하기 위한 예시도이다.
도 2는 본 발명의 다른 실시예에 따라 SDN 환경에서 컨트롤러가 ARP 프록시(Proxy) 기능을 수행하는 방법을 설명하기 위한 예시도이다.
도 3은 본 발명의 일 실시예에 따라 SDN 환경에서 스위치가 ARP 프록시(Proxy) 기능을 수행하는 방법을 설명하기 위한 예시도이다.
도 4는 본 발명의 다른 실시예에 따라 SDN 환경에서 스위치가 ARP 프록시(Proxy) 기능을 수행하는 방법을 설명하기 위한 예시도이다.
도 5는 본 발명의 실시예에 따라 SDN 환경에서 컨트롤러와 스위치 간 연동을 통한 ARP 처리를 설명하기 위한 흐름도이다.
도 6은 본 발명의 실시예에 따른 ARP 처리 기능을 수행하는 컨트롤러와 스위치를 설명하기 위한 블록도이다.
도 7은 본 발명의 실시예에 따른 스위치가 ARP 프록시(Proxy) 역할을 수행하는 방법을 설명하기 위한 예시도이다.
도 2는 본 발명의 다른 실시예에 따라 SDN 환경에서 컨트롤러가 ARP 프록시(Proxy) 기능을 수행하는 방법을 설명하기 위한 예시도이다.
도 3은 본 발명의 일 실시예에 따라 SDN 환경에서 스위치가 ARP 프록시(Proxy) 기능을 수행하는 방법을 설명하기 위한 예시도이다.
도 4는 본 발명의 다른 실시예에 따라 SDN 환경에서 스위치가 ARP 프록시(Proxy) 기능을 수행하는 방법을 설명하기 위한 예시도이다.
도 5는 본 발명의 실시예에 따라 SDN 환경에서 컨트롤러와 스위치 간 연동을 통한 ARP 처리를 설명하기 위한 흐름도이다.
도 6은 본 발명의 실시예에 따른 ARP 처리 기능을 수행하는 컨트롤러와 스위치를 설명하기 위한 블록도이다.
도 7은 본 발명의 실시예에 따른 스위치가 ARP 프록시(Proxy) 역할을 수행하는 방법을 설명하기 위한 예시도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 본 발명에서 언급되는 컨트롤러는 통합 SDN 컨트롤러(Unified SDN controller)로, 트래픽의 흐름을 제어하기 위해 관련 구성 요소(예를 들면, 스위치, 라우터 등)를 제어하는 기능 요소(entity)를 의미할 수 있다.
또한, 컨트롤러는 물리적인 구현 형태나 구현 위치 등에 의해 한정되지 않는다. 예를 들어, 컨트롤러는 ONF(OpenFlow), IETF(Internet Engineering Task Force), ETSI(European Telecommunication Standards Institute) 및/또는 ITU-T(International Telecommunication Union Telecommunication) 등에서 정의하고 있는 컨트롤러 기능 요소(entity)를 의미할 수 있다.
본 발명에서 언급되는 네트워크 장치는 '스위치(switch)' 또는 '라우터(router)'와 같이 트래픽(또는 패킷)을 실질적으로 포워딩하거나 스위칭 또는 라우팅하는 기능 요소를 의미할 수 있다. 따라서, 본 발명에서 네트워크 장치는 스위치 또는 라우터로 명명될 수 있다.
예를 들어, 네트워크 장치는 ONF, IETF, ETSI 및/또는 ITU-T 등에서 정의하고 있는 스위치, 라우터, 스위치 요소(Switching Element), 라우터 요소(Routing Element), 포워딩 요소(Forwarding Element) 등을 의미할 수 있다.
이하, 본 발명의 실시예에 따라 SDN 환경에서 ARP를 처리하는 방법을 위한 동작과정에서 정의된 파라미터 및/또는 메시지 형태는 후술하는 특정 메시지에 한정되지 않는다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명의 일 실시예에 따라 SDN 환경에서 컨트롤러가 ARP 프록시(Proxy) 기능을 수행하는 방법을 설명하기 위한 예시도이다.
도 1을 참조하여 컨트롤러(100)가 ARP 프록시(Proxy) 기능을 수행할 수 있고, 스위치(200)는 ARP 프록시 기능을 수행할 수 없는 경우를 설명한다.
따라서, 컨트롤러(100)는 ARP 프록시 기능을 수행하는 기능 블록을 포함할 수 있으며, 스위치(200)는 ARP 프록시 기능을 수행하는 기능을 포함하지 않고 플로우 테이블(Flow Table)만을 관리할 수 있다. 여기서, ARP 프록시 기능을 수행하는 기능 블록은 별도의 모듈로 구현되거나, 컨트롤러(100)가 구비한 모듈에 추가적인 기능을 부여함으로써 구현될 수 있다.
보다 상세하게는, 제1 단말(11)은 제2 단말(12)의 MAC 주소를 찾기 위해 ARP 요청 패킷을 브로드캐스트(broadcast)한다(①). ARP 요청 패킷을 받은 스위치(200)는 플로우 테이블(Flow table)에 해당 플로우가 존재하지 않으므로 컨트롤러(100)에게 ARP 요청 패킷을 위한 메시지를 전송할 수 있다(②). 여기서, 스위치(200)가 컨트롤러(100)로 전송하는 메시지는 컨트롤러(100)와 스위치(200)간 연동 프로토콜에 따라 packet-in 형태가 될 수 있다. 예를 들어, Packet-in 형태의 메시지 전송 방식은 스위치(200)의 메모리 여유 공간이 있을 경우, 메시지 아이디를 포함한 메시지 헤더만 컨트롤러(100)에 전송하고, 스위치(200)에 여유 공간이 없는 경우, ARP 요청 패킷 전체가 packet-in 형태의 메시지와 함께 컨트롤러(100)에 전송될 수 있다.
컨트롤러(100)는 ARP 요청 패킷에 대한 처리를 위한 플로우 테이블 정보 및 처리 명령 메시지를 스위치(200)로 전송할 수 있다(③). 예를 들어, 컨트롤러(100)는 ARP 요청 및 응답에 대한 라우팅 경로를 지정하기 위한 플로우 테이블 정보를 스위치(200)에 미리 전송하고, 그 후에 ARP 요청 패킷에 대한 처리 동작을 정의하는 처리 명령 메시지를 스위치(200)로 전송할 수 있다. 여기서, 컨트롤러(100)가 스위치(200)로 전송하는 메시지는 컨트롤러(100)와 스위치(200)간 연동 프로토콜에 따라 packet-out 형태가 될 수 있다. 따라서, 스위치(200)는 컨트롤러(100)로부터 수신한 packet-out 형태의 메시지를 참조하여 본래의 packet-in 형태의 메시지를 매핑함으로써 처리 동작을 확인할 수 있다.
스위치(200)는 컨트롤러(100)로부터 수신한 플로우 테이블 정보를 이용하여 플로우 테이블을 생성하거나 갱신한 후, ARP 요청 패킷에 대한 라우팅을 처리하기 위해 시점을 동기화할 수 있으며, 이를 위하여 컨트롤러(100)와 스위치(200)간의 명령어를 순차적으로 처리하기 위해 컨트롤러(100)와 스위치(200)간 프로토콜인 barrier 명령어가 사용될 수 있다.
컨트롤러(100)는 처리 명령 메시지에 ARP 응답 메시지를 포함하여 스위치(200)로 전송할 수 있다. 즉, 컨트롤러(100)는 ARP 프록시 기능을 수행할 수 있기 때문에, ARP 요청 패킷에 대한 응답으로 제2 단말(12)의 MAC 주소를 포함하는 ARP 응답 메시지를 스위치(200)로 전송할 수 있다.
따라서, 스위치(200)는 컨트롤러(100)로부터 수신한 ARP 응답 메시지를 제1 단말(11)로 전송할 수 있으며(④), 제1 단말(11)은 스위치(200)로부터 수신한 ARP 응답 메시지에 포함된 제2 단말(12)의 MAC 주소를 이용하여 제2 단말(12)과 상호 간의 통신을 수행할 수 있다.
도 2는 본 발명의 다른 실시예에 따라 SDN 환경에서 컨트롤러가 ARP 프록시(Proxy) 기능을 수행하는 방법을 설명하기 위한 예시도이다.
도 2를 참조하여 컨트롤러(100)가 ARP 프록시(Proxy) 기능을 수행할 수 있고, 스위치(200)는 ARP 프록시 기능을 수행할 수 없는 경우를 설명한다.
따라서, 컨트롤러(100)는 ARP 프록시 기능을 수행하는 기능 블록을 포함할 수 있으며, 스위치(200)는 ARP 프록시 기능을 수행하는 기능을 포함하지 않고 플로우 테이블(Flow Table)만을 관리할 수 있다. 여기서, ARP 프록시 기능을 수행하는 기능 블록은 별도의 모듈로 구현되거나, 컨트롤러(100)가 구비한 모듈에 추가적인 기능을 부여함으로써 구현될 수 있다.
보다 상세하게는, 제1 단말(11)은 제2 단말(12)의 MAC 주소를 찾기 위해 ARP 요청 패킷을 브로드캐스트(broadcast)한다(①). ARP 요청 패킷을 받은 스위치(200)는 플로우 테이블(Flow table)에 해당 플로우가 존재하지 않으므로 컨트롤러(100)에게 ARP 요청 패킷을 위한 메시지를 전송할 수 있다(②). 여기서, 스위치(200)가 컨트롤러(100)로 전송하는 메시지는 컨트롤러(100)와 스위치(200)간 연동 프로토콜에 따라 packet-in 형태가 될 수 있다. 예를 들어, Packet-in 형태의 메시지 전송 방식은 스위치(200)의 메모리 여유 공간이 있을 경우, 메시지 아이디를 포함한 메시지 헤더만 컨트롤러(100)에 전송하고, 스위치(200)에 여유 공간이 없는 경우, ARP 요청 패킷 전체가 packet-in 형태의 메시지와 함께 컨트롤러(100)에 전송될 수 있다.
컨트롤러(100)는 ARP 요청 패킷에 대한 처리를 위한 플로우 테이블 정보 및 처리 명령 메시지를 스위치(200)로 전송할 수 있다(③). 예를 들어, 컨트롤러(100)는 ARP 요청 및 응답에 대한 라우팅 경로를 지정하기 위한 플로우 테이블 정보를 스위치(200)에 미리 전송하고, 그 후에 ARP 요청 패킷에 대한 처리 동작을 정의하는 처리 명령 메시지를 스위치(200)로 전송할 수 있다. 여기서, 컨트롤러(100)가 스위치(200)로 전송하는 메시지는 컨트롤러(100)와 스위치(200)간 연동 프로토콜에 따라 packet-out 형태가 될 수 있다. 따라서, 스위치(200)는 컨트롤러(100)로부터 수신한 packet-out 형태의 메시지를 참조하여 본래의 packet-in 형태의 메시지를 매핑함으로써 처리 동작을 확인할 수 있다.
스위치(200)는 컨트롤러(100)로부터 수신한 플로우 테이블 정보를 이용하여 플로우 테이블을 생성하거나 갱신한 후, ARP 요청 패킷에 대한 라우팅을 처리하기 위해 시점을 동기화할 수 있으며, 이를 위하여 컨트롤러(100)와 스위치(200)간의 명령어를 순차적으로 처리하기 위해 컨트롤러(100)와 스위치(200)간 프로토콜인 barrier 명령어가 사용될 수 있다.
스위치(200)는 갱신된 플로우 테이블 및 처리 명령 메시지에 따라 ARP 요청 패킷을 스위치(200)에 연결된 복수의 단말에 브로드캐스트(broadcast)할 수 있다(④). 예를 들어, 스위치(200)에서의 ARP 요청에 대한 브로드캐스트는 그룹 테이블(Group table)을 이용해서 브로드캐스트 포트를 지정하거나 FLOOD 기능이 있는 출력 포트를 지정하여 처리될 수 있다. 즉, 스위치(200)는 컨트롤러(100)에서 지시한 플로우 테이블 정보의 정의에 따라 ARP 요청 패킷을 브로드캐스트할 수 있다. 따라서, 스위치(200)가 브로드캐스트한 ARP 요청 패킷은 제2 단말B를 포함한 스위치(200)에 연결된 모든 단말에 수신될 수 있다.
제 2 단말은 ARP 요청 패킷에 대해 유니캐스트(unicast)로 응답할 수 있다. 즉, 스위치(200)는 ARP 요청 패킷에 대한 응답인 ARP 응답 메시지를 제2 단말로부터 수신할 수 있고, 이를 제1 단말(11)로 전달할 수 있다(⑤).
제1 단말(11)은 스위치(200)를 통해 수신한 ARP 응답 메시지에 포함된 제2 단말(12)의 MAC 주소를 이용하여 제2 단말(12)과 상호 간의 통신을 수행할 수 있다.
따라서, 도 1 및 도 2를 참조하면, 컨트롤러(100)는 제1 단말(11)이 제2 단말(12)과 통신하기 위한 ARP 요청 패킷을 스위치(200)(또는 네트워크 장치)로부터 수신할 수 있다. 또한, 컨트롤러(100)는 ARP 요청 패킷에 대한 처리를 위한 플로우 테이블 정보 및 처리 명령 메시지를 스위치(200)로 전송함으로써, 스위치(200)가 플로우 테이블 정보에 기반하여 갱신된 플로우 테이블(Flow Table)에 따라 처리 명령 메시지를 수행하도록 제어할 수 있다.
또한, 스위치(200)는 제1 단말(11)이 제2 단말(12)과 통신하기 위한 ARP 요청 패킷을 제1 단말(11)로부터 수신하고, ARP 요청 패킷을 컨트롤러(100)로 전송할 수 있으며, ARP 요청 패킷에 대한 응답으로 ARP 요청 패킷에 대한 처리를 위한 플로우 테이블 정보 및 처리 명령 메시지를 수신할 수 있다.
도 3은 본 발명의 일 실시예에 따라 SDN 환경에서 스위치가 ARP 프록시(Proxy) 기능을 수행하는 방법을 설명하기 위한 예시도이다.
도 3를 참조하여 ARP 프록시(Proxy) 기능을 수행할 수 있는 컨트롤러(100)가 제1 스위치(210) 및 제2 스위치(220)를 제어하고, 제1 스위치(210)가 ARP 프록시 기능을 수행할 수 있으며, 제2 스위치(220)는 ARP 프록시 기능을 수행할 수 없는 경우를 설명한다. 여기서, 제1 스위치(210)는 ARP 프록시 기능을 수행하는 기능 블록을 포함할 수 있으며, ARP 프록시 기능을 수행하는 기능 블록은 별도의 모듈로 구현되거나, 제1 스위치(210)가 구비한 모듈에 추가적인 기능을 부여함으로써 구현될 수 있다.
또한, 제1 단말(11)은 제1 스위치(210)의 하위에 연결되고, 제2 단말(12)은 제2 스위치(220)의 하위에 연결되어 있다.
먼저, 제1 단말(11)이 제2 단말(12)의 MAC 주소를 찾기 위한 방법을 설명한다.
제1 단말(11)은 제2 단말(12)의 MAC 주소를 찾기 위해 ARP 요청 패킷을 브로드캐스트(broadcast)한다(①'). 제1 스위치(210)는 ARP 프록시 기능을 수행할 수 있기 때문에 인접한 제2 스위치(220)의 하위에 연결된 제2 단말(12)의 MAC 주소를 알 수 있다.
따라서, 제1 스위치(210)는 ARP 요청 패킷에 대한 응답으로 제2 단말(12)의 MAC 주소 정보를 포함하는 ARP 응답 메시지를 제1 단말(11)로 전송할 수 있고(②'), 제1 단말(11)은 제1 스위치(200)로부터 수신한 ARP 응답 메시지에 포함된 제2 단말(12)의 MAC 주소를 이용하여 제2 단말(12)과 상호 간의 통신을 수행할 수 있다.
다음으로, 제2 단말(12)이 제1 단말(11)의 MAC 주소를 찾기 위한 방법을 설명한다.
제2 단말(12)은 제1 단말(11)의 MAC 주소를 찾기 위해 ARP 요청 패킷을 브로드캐스트(broadcast)한다(①). ARP 요청 패킷을 받은 제2 스위치(220)는 ARP 프록시 기능을 수행할 수 없기 때문에 컨트롤러(100)에게 ARP 요청 패킷을 위한 메시지를 전송할 수 있다(②). 여기서, 제2 스위치(220)가 컨트롤러(100)로 전송하는 메시지는 컨트롤러(100)와 제2 스위치(220) 간 연동 프로토콜에 따라 packet-in 형태가 될 수 있다. 예를 들어, Packet-in 형태의 메시지 전송 방식은 제2 스위치(220)의 메모리 여유 공간이 있을 경우, 메시지 아이디를 포함한 메시지 헤더만 컨트롤러(100)에 전송하고, 제2 스위치(220)에 여유 공간이 없는 경우, ARP 요청 패킷 전체가 packet-in 형태의 메시지와 함께 컨트롤러(100)에 전송될 수 있다.
컨트롤러(100)는 ARP 요청 패킷에 대한 처리를 위한 플로우 테이블 정보 및 처리 명령 메시지를 제2 스위치(220)로 전송할 수 있다(③). 예를 들어, 컨트롤러(100)는 ARP 요청 및 응답에 대한 라우팅 경로를 지정하기 위한 플로우 테이블 정보를 제2 스위치(220)에 미리 전송하고, 그 후에 ARP 요청 패킷에 대한 처리 동작을 정의하는 처리 명령 메시지를 제2 스위치(220)로 전송할 수 있다. 여기서, 컨트롤러(100)가 제2 스위치(220)로 전송하는 메시지는 컨트롤러(100)와 제2 스위치(220)간 연동 프로토콜에 따라 packet-out 형태가 될 수 있다. 따라서, 제2 스위치(220)는 컨트롤러(100)로부터 수신한 packet-out 형태의 메시지를 참조하여 본래의 packet-in 형태의 메시지를 매핑함으로써 처리 동작을 확인할 수 있다.
제2 스위치(220)는 컨트롤러(100)로부터 수신한 플로우 테이블 정보를 이용하여 플로우 테이블을 생성하거나 갱신한 후, ARP 요청 패킷에 대한 라우팅을 처리하기 위해 시점을 동기화할 수 있으며, 이를 위하여 컨트롤러(100)와 제2 스위치(220)간의 명령어를 순차적으로 처리하기 위해 컨트롤러(100)와 제2 스위치(220)간 프로토콜인 barrier 명령어가 사용될 수 있다.
컨트롤러(100)는 처리 명령 메시지에 ARP 응답 메시지를 포함하여 제 스위치(220)로 전송할 수 있다. 즉, 컨트롤러(100)는 ARP 프록시 기능을 수행할 수 있기 때문에, ARP 요청 패킷에 대한 응답으로 제1 단말(11)의 MAC 주소를 포함하는 ARP 응답 메시지를 제2 스위치(220)로 전송할 수 있다.
따라서, 제2 스위치(220)는 컨트롤러(100)로부터 수신한 ARP 응답 메시지를 제2 단말(12)로 전송할 수 있고(⑥), 제2 단말(12)은 제2 스위치(220)로부터 수신한 ARP 응답 메시지에 포함된 제1 단말(11)의 MAC 주소를 이용하여 제1 단말(11)과 상호 간의 통신을 수행할 수 있다.
또한, 컨트롤러(100)가 제2 스위치(220)에 전송한 처리 명령 메시지는 ARP 응답 메시지를 포함하지 않을 수 있다. 즉, 컨트롤러(100)는 제1 단말(11)이 연결된 제1 스위치(210)가 ARP 프록시 기능을 수행할 수 있기 때문에 제1 단말(11)의 MAC 주소를 포함하는 ARP 응답 메시지를 생성하지 않을 수 있다.
이러한 경우, 제2 스위치(220)는 컨트롤러(100)로부터 수신한 처리 명령 메시지 및 갱신된 플로우 테이블에 따라 ARP 요청 패킷을 제1 스위치(210)로 전달할 수 있다. 제1 스위치(210)는 ARP 프록시 기능을 수행할 수 있기 때문에 인접한 제1 단말(11)의 MAC 주소를 알 수 있다. 제1 스위치(210)는 ARP 요청 패킷에 대한 응답으로 제1 단말(11)의 MAC 주소 정보를 포함하는 ARP 응답 메시지를 제2 스위치(220)로 전송할 수 있고(⑤), 제2 스위치(220)는 ARP 응답 메시지를 제2 단말(12)로 전달할 수 있다(⑥).
따라서, 제2 단말(12)은 제2 스위치(220)로부터 전달받은 ARP 응답 메시지에 포함된 제1 단말(11)의 MAC 주소를 이용하여 제1 단말(11)과 상호 간의 통신을 수행할 수 있다.
도 4는 본 발명의 다른 실시예에 따라 SDN 환경에서 스위치가 ARP 프록시(Proxy) 기능을 수행하는 방법을 설명하기 위한 예시도이다.
도 4를 참조하면, 제1 컨트롤러(110)는 제1 스위치(210)를 제어하고, 제2 컨트롤러(120)는 제2 스위치(220)를 제어할 수 있다. 제1 스위치(210) 및 제2 스위치(220)는 ARP 프록시 기능을 수행할 수 있다. 여기서, 제1 스위치(210) 및 제2 스위치(220)는 ARP 프록시 기능을 수행하는 기능 블록을 포함할 수 있으며, ARP 프록시 기능을 수행하는 기능 블록은 별도의 모듈로 구현되거나, 제1 스위치(210) 및 제2 스위치(220)가 구비한 모듈에 추가적인 기능을 부여함으로써 구현될 수 있다.
또한, 제1 단말(11)은 제1 스위치(210)의 하위에 연결되고, 제2 단말(12)은 제2 스위치(220)의 하위에 연결되어 있다.
도 4를 참조하여 제1 단말(11)이 제2 단말(12)의 MAC 주소를 찾기 위한 방법을 설명한다.
제1 단말(11)은 제2 단말(12)의 MAC 주소를 찾기 위해 ARP 요청 패킷을 브로드캐스트(broadcast)한다(①). 제1 스위치(210)는 ARP 프록시 기능을 수행할 수 있기 때문에 인접한 제2 스위치(220)의 하위에 연결된 제2 단말(12)의 MAC 주소를 알 수 있다. 따라서, 제1 스위치(210)는 ARP 요청 패킷에 대한 응답으로 제2 단말(12)의 MAC 주소 정보를 포함하는 ARP 응답 메시지를 제1 단말(11)로 전송할 수 있다.
그러나, 제2 단말(12)은 ARP 프록시 기능을 수행할 수 있는 제2 스위치(220)의 하위에 연결되고, 제2 스위치(220)는 제1 스위치(210)와는 다른 도메인에 있기 때문에, 제1 스위치(210)가 제2 단말(12)의 MAC 주소를 관리하지 않을 수도 있다. 이러한 경우, 제1 스위치(210)는 ARP 요청 패킷을 다른 도메인에 있는 제2 스위치(220)에 전송할 수 있다(②).
제2 스위치(220)는 ARP 요청 패킷에 대한 응답으로 제2 단말(12)의 MAC 주소를 포함하는 ARP 응답 메시지를 제1 스위치(210)로 전송할 수 있다(③).
제1 스위치(210)는 제2 스위치(220)로부터 수신한 ARP 응답 메시지를 제1 단말(11)로 전달할 수 있고, 제1 단말(11)은 제1 스위치(210)로부터 수신한 ARP 응답 메시지에 포함된 제2 단말(12)의 MAC 주소를 이용하여 제2 단말(12)과 상호 간의 통신을 수행할 수 있다.
따라서, 도 3 및 도 4를 참조하면, 제1 스위치(210)는 제1 단말(11)이 제2 단말(12)과 통신하기 위한 ARP 요청 패킷을 제1 단말(11)로부터 수신하고, ARP 요청 패킷에 대한 응답으로 제2 단말(12)의 MAC 주소 정보를 포함하는 ARP 응답 메시지를 제1 단말(11)로 전송할 수 있다.
예를 들어, 제2 단말(12)이 제1 스위치(210)에 연결되고, 제1 스위치(210)가 ARP 프록시(Proxy) 기능을 가진 경우, 제1 스위치(210)는 ARP 응답 메시지에 제2 단말(12)의 MAC 주소 정보를 포함시킴으로써, ARP 프록시 기능을 수행할 수 있다.
또한, 제2 단말(12)이 제1 스위치(210)와 다른 도메인에 위치하는 제2 스위치(220)에 연결되고, 제2 스위치(220)가 ARP 프록시(Proxy) 기능을 경우, 제1 스위치(210)가 ARP 응답 메시지에 제2 단말(12)의 MAC 주소 정보를 포함시킴으로써, ARP 프록시 기능을 수행할 수 있다.
또한, 제2 단말(12)이 제1 스위치(210)와 다른 도메인에 위치하는 제2 스위치(220)에 연결되고, 제2 스위치(220)가 ARP 프록시(Proxy) 기능을 가진 경우, 제1 스위치(210)는 ARP 요청 패킷을 제2 스위치(220)로 전송할 수 있고, 제2 스위치(220)는 ARP 요청 패킷에 대한 응답으로 제2 단말(12)의 MAC 주소 정보를 포함시킨 ARP 응답 메시지를 제1 스위치(210)로 전송할 수 있다. 따라서, 제1 스위치(210)는 ARP 응답 메시지를 제1 단말(11)로 전송할 수 있다.
도 5는 본 발명의 실시예에 따라 SDN 환경에서 컨트롤러와 스위치 간 연동을 통한 ARP 처리를 설명하기 위한 흐름도이다.
도 5를 참조하면, 컨트롤러가 ARP 프록시(Proxy) 기능 가능 여부를 복수의 스위치에 조회할 수 있다. 예를 들어, 컨트롤러는 제1 스위치 및 제2 스위치에 ARP 프록시 기능을 조회할 수 있다(S511, S513).
복수의 스위치는 자신이 ARP 프록시 기능을 수행할 수 있는지 여부를 확인하여 컨트롤러의 조회에 응답할 수 있다. 예를 들어, 제1 스위치는 ARP 프록시 기능이 가능하다고 응답할 수 있고(S521), 제2 스위치는 ARP 프록시 기능이 불가하다는 응답을 할 수 있다(S523). 따라서, 컨트롤러는 자신이 제어하는 복수의 스위치 중에서 ARP 프록시 기능을 수행할 수 있는 스위치를 식별 또는 선정할 수 있다. 즉, 도 5에서 제1 스위치는 ARP 프록시 기능을 가지고 있고, 제2 스위치는 ARP 프록시 기능을 가지고 있지 않다.
먼저, 제1 스위치는 제1 단말이 제2 단말과 통신하기 위한 ARP 요청 패킷을 제1 단말로부터 수신하고, 제2 단말의 MAC 주소 정보를 ARP 응답 메시지에 포함시켜 제1 단말로 전송함으로써, ARP 프록시 기능을 수행할 수 있다.
보다 상세하게는, ARP 프록시 기능을 수행할 수 있는 제1 스위치의 하위에 연결된 제1 단말이 ARP 요청을 한 경우(S531)에는, 제1 스위치가 ARP 프록시 기능을 수행할 수 있기 때문에 제2 단말의 MAC 주소를 포함하는 ARP 응답 메시지를 제1 단말에 바로 전송할 수 있다(S533). 따라서, 제1 단말은 제1 스위치로부터 수신한 ARP 응답 메시지에 포함된 제2 단말의 MAC 주소를 이용하여 제2 단말과 상호 간의 통신을 수행할 수 있다.
다음으로, 제2 스위치는 제2 단말이 제1 단말과 통신하기 위한 ARP 요청 패킷을 제2 단말로부터 수신하고, ARP 요청 패킷을 컨트롤러로 전송하며, ARP 요청 패킷에 대한 응답인 ARP 응답 메시지를 컨트롤러로부터 수신하여 제2 단말에 전달할 수 있다.
보다 상세하게는, ARP 프록시 기능을 수행할 수 없는 제2 스위치의 하위에 연결된 제2 단말이 ARP 요청을 한 경우(S541)에는, 제2 스위치가 ARP 프록시 기능을 수행할 수 없기 때문에 컨트롤러로 ARP 요청을 전달할 수 있다(S543). 제2 스위치로부터 ARP 요청을 전달받은 컨트롤러는 기본적으로 ARP 프록시 기능을 수행할 수 있기 때문에 제1 단말의 MAC 주소를 포함하는 ARP 응답 메시지를 제2 스위치로 전송할 수 있다(S545). 따라서, 제2 단말은 제2 스위치로부터 전달받을 수 있고(S547), ARP 응답 메시지에 포함된 제1 단말의 MAC 주소를 이용하여 제1 단말과 상호 간의 통신을 수행할 수 있다.
상술한 본 발명의 실시예에 따른 ARP 처리 방법의 동작은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 프로그램 또는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의해 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터로 읽을 수 있는 프로그램 또는 코드가 저장되고 실행될 수 있다.
도 6은 본 발명의 실시예에 따른 ARP 처리 기능을 수행하는 컨트롤러와 스위치를 설명하기 위한 블록도이다.
도 6을 참조하면, 본 발명의 실시예에 따른 ARP 처리 방법은 컨트롤러(100)와 스위치(200)가 연동하여 수행될 수 있다.
먼저, 컨트롤러(100)는 플로우 테이블 관리부(101), ARP 처리부(103) 및 스위치 연동 처리부(105)를 포함한다.
플로우 테이블 관리부(101)는 컨트롤러(100)가 제어하는 다수의 스위치를 관리하기 위한 플로우 테이블을 저장하고 관리할 수 있다.
ARP 처리부(103)는 ARP 프록시 기능을 수행하는 기능 블록으로 별도의 모듈로 구현되거나, 컨트롤러(100)가 구비한 모듈에 추가적인 기능을 부여함으로써 구현될 수 있다.
스위치 연동 처리부(105)는 복수의 스위치와 통신할 수 있도록 프로토콜을 제어할 수 있다.
다음으로, 스위치(200)는 플로우 테이블 관리부(201), ARP 처리부(203) 및 컨트롤러 연동 처리부(207)를 포함한다.
플로우 테이블 관리부(201)는 스위치(200)의 플로우 테이블을 저장하고 관리할 수 있다.
ARP 처리부(203)는 ARP 프록시 기능을 수행하는 기능 블록으로 별도의 모듈로 구현되거나, 스위치(200)가 구비한 모듈에 추가적인 기능을 부여함으로써 구현될 수 있다.
컨트롤러 연동 처리부(207)는 컨트롤러(100)와 통신할 수 있도록 프로토콜을 제어할 수 있다.
따라서, 본 발명의 실시예에 따른 ARP 처리 방법은 도 6에 따른 컨트롤러(100)와 스위치(200)가 연동하여 수행될 수 있다.
도 7은 본 발명의 실시예에 따른 스위치가 ARP 프록시(Proxy) 역할을 수행하는 방법을 설명하기 위한 예시도이다.
도 7을 참조하면, 본 발명의 실시예에 따른 ARP 처리를 수행하는 라우팅 시스템은 컨트롤러(100)가 라우터(300)를 제어하도록 구성될 수 있다.
상세하게는, 라우터(300)는 물리적으로 분리되어 있는 컨트롤러(100)에 의해 제어될 수 있다.
라우터(300)는 RIB manager(310)와 FIB manager(320)를 포함하여 구성될 수 있다. 보다 상세하게는, RIB manager(310)는 Routing information base(RIB) 모듈(311) 및 ARP 프록시(313)를 포함하여 구성되고, FIB manager(320)는 Forwarding information base(FIB) 모듈(321)을 포함하여 구성될 수 있다.
RIB manager(310)는 라우팅을 위한 제어를 수행하고, 각 FIB manager(320)는 데이터 플레인(Data plane)에 해당하는 각 라인 카드의 기능을 수행할 수 있다. 예를 들어, 각 라인 카드로 유입되는 ARP요청은 RIB manager(310)에서 관리되어야 하며, 이러한 기능을 위해 RIB manager(310)은 ARP 프록시(313)를 포함할 수 있다.
컨트롤러(100)는 컨트롤러(100)가 제공하는 노스바운드(Northbound) API를 통해 다양한 Network Application을 수용할 수 있다.
또한, 컨트롤러(100)의 Client 모듈(107)은 표준화된 라우팅 시스템 인터페이스인 I2RS(Interface to Routing System)을 통해 라우터(300)와 상호 간에 통신을 수행할 수 있다.
도 7와 같은 라우팅 시스템에서 수행되는 ARP 처리 방법을 설명하면 다음과 같다.
제1 단말(11)은 제2 단말(12)의 MAC 주소를 찾기 위해 ARP 요청 패킷을 브로드캐스트(broadcast)한다(①).
라우터(300)의 FIB manager(320)는 제2 단말(12)의 MAC주소 정보를 얻기 위해 ARP 요청 패킷을 RIB manager(310)에 전달한다(②).
라우터(300)의 RIB manager(310)는 ARP 프록시 기능을 수행할 수 있으므로, ARP 프록시(313)는 제2 단말(12)의 MAC 주소를 포함하는 ARP 응답 메시지를 생성하여 FIB manager(320)에게 전송한다(③). 즉, RIB manager(310)의 ARP 프록시(313)는 제2 단말(12)의 IP정보와 MAC 주소를 미리 가지고 있다.
라우터(300)의 FIB manager(320)는 제1 단말(11)로 ARP 응답 메시지를 전송할 수 있고(④), 제1 단말(11)은 FIB manager(320)로부터 수신한 ARP 응답 메시지에 포함된 제2 단말(12)의 MAC 주소를 이용하여 제2 단말(12)과 상호 간의 통신을 수행할 수 있다.
상술한 본 발명의 실시예에 따른 컨트롤러(100), 스위치(200) 및 라우터(300)의 구성을 설명의 편의상 각각의 구성부로 나열하여 설명하였으나, 각 구성부 중 적어도 두 개가 합쳐져 하나의 구성부로 이루어지거나, 하나의 구성부가 복수개의 구성부로 나뉘어져 기능을 수행할 수 있고 이러한 각 구성부의 통합 및 분리된 실시예의 경우도 본 발명의 본질에서 벋어나지 않는 한 본 발명의 권리범위에 포함된다. 또한, 각 구성부는 하나의 프로세서 또는 복수의 프로세서로 구성될 수 있으며, 각 프로세서는 마이크로프로세서(Microprocessor), 중앙 처리 장치(CPU: Central Processing Unit), 또는 이와 유사한 수단이나 이러한 수단에 상응하는 기능을 수행할 수 있다.
상술한 본 발의 실시예에 따른 ARP 처리 방법은, SDN 환경에서 네트워크 장치가 ARP 프록시 기능을 분담함으로써 컨트롤러의 부하를 감소시킬 수 있다.
또한, SDN 환경에서 컨트롤러 및 네트워크 장치에 의한 ARP 처리 프로세스를 단순화함으로써 네트워크 장치에 연결된 단말이 다른 네트워크 상의 단말과 효과적으로 통신할 수 있도록 한다.
또한, SDN 환경에서 네트워크 구성 요소들의 기능을 고려하여 ARP 처리를 적응적으로 수행함으로써 다양한 네트워크 환경에서 최적의 ARP 처리를 수행할 수 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
11: 제1 단말 12: 제2 단말
100: 컨트롤러 101, 201: 플로우 테이블 관리부
103, 203: ARP 처리부 105: 스위치 연동 처리부
107: Client 모듈 110: 제1 컨트롤러
120: 제2 컨트롤러 200: 스위치
205: 컨트롤러 연동 처리부 210: 제1 스위치
220: 제2 스위치 300: 라우터
310: RIB manager 311: RIB 모듈
313: ARP 프록시 320: FIB manager
321: FIB 모듈
100: 컨트롤러 101, 201: 플로우 테이블 관리부
103, 203: ARP 처리부 105: 스위치 연동 처리부
107: Client 모듈 110: 제1 컨트롤러
120: 제2 컨트롤러 200: 스위치
205: 컨트롤러 연동 처리부 210: 제1 스위치
220: 제2 스위치 300: 라우터
310: RIB manager 311: RIB 모듈
313: ARP 프록시 320: FIB manager
321: FIB 모듈
Claims (19)
- 소프트웨어 정의 네트워킹(SDN: Software Defined Networking) 환경에서 컨트롤러에 의한 ARP(Address Resolution Protocol) 처리 방법에 있어서,
제1 단말이 제2 단말과 통신하기 위한 ARP 요청 패킷을 네트워크 장치로부터 수신하는 단계; 및
상기 ARP 요청 패킷에 대한 처리를 위한 플로우 테이블 정보 및 처리 명령 메시지를 상기 네트워크 장치로 전송함으로써, 상기 네트워크 장치가 상기 플로우 테이블 정보에 기반하여 갱신된 플로우 테이블(Flow Table)에 따라 상기 처리 명령 메시지를 수행하도록 제어하는 단계를 포함하고,
상기 처리 명령 메시지를 수행하도록 제어하는 단계는 상기 갱신된 플로우 테이블에 따라 상기 ARP 요청 패킷을 그룹 테이블을 이용하여 브로드캐스트 포트를 지정하거나 FLOOD 기능이 있는 출력 포트를 지정하여 상기 네트워크 장치에 연결된 복수의 단말에 브로드캐스트하고, 상기 ARP 요청 패킷에 대한 응답은 ARP 응답 메시지를 상기 제2단말로부터 수신하여 상기 제1단말로 전달하도록 하는, ARP 처리 방법. - 청구항 1에 있어서,
상기 처리 명령 메시지를 수행하도록 제어하는 단계는,
상기 처리 명령 메시지에 따라 ARP 응답 메시지가 상기 제1 단말로 전달되도록 상기 네트워크 장치를 제어하는, ARP 처리 방법. - 청구항 2에 있어서,
상기 ARP 응답 메시지는,
상기 컨트롤러에 의해 상기 제2 단말의 MAC 주소 정보를 포함하는 것을 특징으로 하는, ARP 처리 방법. - 삭제
- 청구항 1에 있어서,
상기 ARP 응답 메시지는,
상기 제2 단말에 의해 상기 제2 단말의 MAC 주소 정보를 포함하는 것을 특징으로 하는, ARP 처리 방법. - 소프트웨어 정의 네트워킹(SDN: Software Defined Networking) 환경에서 네트워크 장치에 의한 ARP(Address Resolution Protocol) 처리 방법에 있어서,
제1 단말이 제2 단말과 통신하기 위한 ARP 요청 패킷을 상기 제1 단말로부터 수신하는 단계;
상기 ARP 요청 패킷을 컨트롤러로 전송하는 단계; 및
상기 ARP 요청 패킷에 대한 응답으로 상기 ARP 요청 패킷에 대한 처리를 위한 플로우 테이블 정보 및 처리 명령 메시지를 수신하는 단계를 포함하고,
상기 플로우 테이블 정보에 기반하여 갱신된 플로우 테이블 및 상기 처리 명령 메시지에 따라 상기 ARP 요청 패킷을 그룹 테이블을 이용하여 브로드캐스트 포트를 지정하거나 FLOOD 기능이 있는 출력 포트를 지정하여 상기 네트워크 장치에 연결된 복수의 단말에 브로드캐스트하고, 상기 ARP 요청 패킷에 대한 응답은 ARP 응답 메시지를 상기 제2 단말로부터 수신하여 상기 제1단말로 전달하도록 하는, ARP 처리 방법. - 삭제
- 청구항 6에 있어서,
상기 처리 명령 메시지에 따라 ARP 응답 메시지를 상기 갱신된 플로우 테이블(Flow Table)에 따라 상기 제1 단말로 전달하는 단계를 더 포함하는, ARP 처리 방법. - 청구항 8에 있어서,
상기 ARP 응답 메시지는,
상기 컨트롤러에 의해 상기 제2 단말의 MAC 주소 정보를 포함하는 것을 특징으로 하는, ARP 처리 방법. - 삭제
- 청구항 6에 있어서,
상기 ARP 응답 메시지는,
상기 제2 단말에 의해 상기 제2 단말의 MAC 주소 정보를 포함하는 것을 특징으로 하는, ARP 처리 방법. - 소프트웨어 정의 네트워킹(SDN: Software Defined Networking) 환경에서 네트워크 장치에 의한 ARP(Address Resolution Protocol) 처리 방법에 있어서,
제1 네트워크 장치가 제1 단말이 제2 단말과 통신하기 위한 ARP 요청 패킷을 상기 제1 단말로부터 수신하는 단계; 및
상기 제1 네트워크 장치가 상기 ARP 요청 패킷에 대한 응답으로 상기 제2 단말의 MAC 주소 정보를 포함하는 ARP 응답 메시지를 상기 제1 단말로 전송하는 단계를 포함하고,
상기 ARP 응답 메시지를 상기 제1 단말로 전송하는 단계는,
상기 제2 단말이 상기 제1 네트워크 장치에 연결되고, 상기 제1 네트워크 장치가 ARP 프록시(Proxy) 기능을 가진 경우,
상기 제1 네트워크 장치가 상기 ARP 응답 메시지에 상기 제2 단말의 MAC 주소 정보를 포함시킴으로써, ARP 프록시 기능을 수행하는 것을 특징으로 하는, ARP 처리 방법. - 삭제
- 청구항 12에 있어서,
상기 ARP 응답 메시지를 상기 제1 단말로 전송하는 단계는,
상기 제2 단말이 상기 제1 네트워크 장치와 다른 도메인에 위치하는 제2 네트워크 장치에 연결되고, 상기 제2 네트워크 장치가 ARP 프록시(Proxy) 기능을 가지지 않는 경우,
상기 제1 네트워크 장치가 상기 ARP 응답 메시지에 상기 제2 단말의 MAC 주소 정보를 포함시킴으로써, ARP 프록시 기능을 수행하는 것을 특징으로 하는, ARP 처리 방법. - 청구항 12에 있어서,
상기 ARP 응답 메시지를 상기 제1 단말로 전송하는 단계는,
상기 제2 단말이 상기 제1 네트워크 장치와 다른 도메인에 위치하는 제2 네트워크 장치에 연결되고, 상기 제2 네트워크 장치가 ARP 프록시(Proxy) 기능을 가진 경우,
상기 제1 네트워크 장치가 상기 ARP 요청 패킷을 상기 제2 네트워크 장치로 전송하는 단계;
상기 제2 네트워크 장치가 상기 ARP 요청 패킷에 대한 응답으로 상기 제2 단말의 MAC 주소 정보를 포함시킨 ARP 응답 메시지를 상기 제1 네트워크 장치로 전송하는 단계; 및
상기 제1 네트워크 장치가 상기 ARP 응답 메시지를 상기 제1 단말로 전송하는 단계를 포함하는, ARP 처리 방법. - 삭제
- 삭제
- 삭제
- 삭제
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/845,539 US9876712B2 (en) | 2014-09-05 | 2015-09-04 | Method and device for processing address resolution protocol in software-defined networking environment |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020140119237 | 2014-09-05 | ||
KR20140119237 | 2014-09-05 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20160029660A KR20160029660A (ko) | 2016-03-15 |
KR101755829B1 true KR101755829B1 (ko) | 2017-07-07 |
Family
ID=55542194
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020150119408A KR101755829B1 (ko) | 2014-09-05 | 2015-08-25 | Sdn 환경에서 arp 처리 방법 및 장치 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101755829B1 (ko) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102454398B1 (ko) * | 2018-02-19 | 2022-10-14 | 한국전자통신연구원 | 분산형 소프트웨어 정의 네트워킹 방법 및 장치 |
KR102119257B1 (ko) * | 2019-09-24 | 2020-06-26 | 프라이빗테크놀로지 주식회사 | 터널에 기반하여 단말의 네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법 |
US11652801B2 (en) | 2019-09-24 | 2023-05-16 | Pribit Technology, Inc. | Network access control system and method therefor |
-
2015
- 2015-08-25 KR KR1020150119408A patent/KR101755829B1/ko active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
KR20160029660A (ko) | 2016-03-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11134012B2 (en) | Communication system, communication device, controller, and method and program for controlling forwarding path of packet flow | |
US9876712B2 (en) | Method and device for processing address resolution protocol in software-defined networking environment | |
US9225641B2 (en) | Communication between hetrogenous networks | |
EP2974133B1 (en) | Method and system for controlling an underlying physical network by a software defined network | |
JP5621778B2 (ja) | コンテンツベーススイッチシステム、及びコンテンツベーススイッチ方法 | |
US9215175B2 (en) | Computer system including controller and plurality of switches and communication method in computer system | |
US11374857B2 (en) | Network device management method and apparatus, and system for indicating a network device to perform management operation | |
WO2012093429A1 (en) | Communication control system, control server, forwarding node, communication control method, and communication control program | |
US20190124185A1 (en) | Method for operating a software defined network and a software defined network | |
JP2016509448A (ja) | 仮想マシンの間で通信を実現する方法及び装置 | |
EP3694157A1 (en) | Vxlan configuration method, device and system | |
WO2022166465A1 (zh) | 一种报文处理方法及相关装置 | |
KR20180025944A (ko) | Sdn 기반의 arp 구현 방법 및 장치 | |
KR101755829B1 (ko) | Sdn 환경에서 arp 처리 방법 및 장치 | |
WO2014132958A1 (ja) | 通信システム、制御装置、通信方法およびプログラム | |
KR20170023493A (ko) | 소프트웨어 정의 네트워크와 레거시 네트워크가 연동된 환경에서의 네트워크 서비스 제어 장치 및 방법 | |
KR101415978B1 (ko) | 가상랜을 이용한 데이터전송장치에서의 서브넷 디에이치씨피 서버 설정 및 운영 시스템 및 방법 | |
CN107005473B (zh) | 通信路径切换装置、控制通信路径切换装置的方法 | |
KR20160011774A (ko) | 식별자 기반 네트워크 경로 설정 방법 및 장치 | |
US10931576B2 (en) | Software defined networking system for distinguishing packet-in messages | |
US20230216785A1 (en) | Source routing apparatus and method in icn | |
Rahul | A comparative evaluation of classless routing protocols (EIGRP) and classful routing protocols (RIP) | |
KR20170130232A (ko) | 컨트롤러를 포함하는 통신 시스템의 품질 보장 경로 제공 방법 | |
KR20070061068A (ko) | 라우터 및 그의 외부 트래픽과 내부 트래픽을 구분한IPv4 패킷 처리 방법 |
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 |