KR102025680B1 - Sdn 기반의 arp 구현 방법 및 장치 - Google Patents

Sdn 기반의 arp 구현 방법 및 장치 Download PDF

Info

Publication number
KR102025680B1
KR102025680B1 KR1020187003345A KR20187003345A KR102025680B1 KR 102025680 B1 KR102025680 B1 KR 102025680B1 KR 1020187003345 A KR1020187003345 A KR 1020187003345A KR 20187003345 A KR20187003345 A KR 20187003345A KR 102025680 B1 KR102025680 B1 KR 102025680B1
Authority
KR
South Korea
Prior art keywords
switch
arp
arp request
host
controller
Prior art date
Application number
KR1020187003345A
Other languages
English (en)
Other versions
KR20180025944A (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 후아웨이 테크놀러지 컴퍼니 리미티드
Publication of KR20180025944A publication Critical patent/KR20180025944A/ko
Application granted granted Critical
Publication of KR102025680B1 publication Critical patent/KR102025680B1/ko

Links

Images

Classifications

    • 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/103Mapping addresses of different types across network layers, e.g. resolution of network layer into physical layer addresses or address resolution protocol [ARP]
    • 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/64Routing or path finding of packets in data switching networks using an overlay routing layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/742Route cache; Operation thereof
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/15Flow control; Congestion control in relation to multipoint traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/618Details of network addresses
    • H04L2101/622Layer-2 addresses, e.g. medium access control [MAC] addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/58Caching of addresses or names

Landscapes

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

Abstract

본 발명의 실시예는 데이터 통신 기술 분야에 관한 것으로, SDN 기반의 ARP 구현 방법 및 장치를 개시한다. 상기 방법은, 제어기에 의해, 제1 스위치에 의해 전송된 ARP 요청을 수신하는 단계 및 ARP 요청에 대응하는 ARP 엔트리가 국부적으로 존재하지 않는다고 판단될 때, 제1 스위치가 ARP 요청을 플러딩하도록 지시하는 데 사용되는 명령을 제1 스위치로 전송하는 단계를 포함한다. 이러한 방식으로, ARP 요청은 스위치 간의 메시지 포워딩을 통해 전체 네트워크로 브로드캐스팅될 수 있다. 제어기가 스위치에 패킷 아웃 메시지를 전송하는 것과 비교하면, 메시지가 스위치 간에 포워딩될 때 차지되는 네트워크 전송 자원이 줄어든다. 따라서, ARP 요청을 브로드캐스팅하기 위해 차지되는 네트워크 전송 자원이 크게 감소될 수 있으며, ARP 요청을 브로드캐스팅하는 효율을 향상시킬 수 있다. 또한, 패킷 아웃 메시지를 전송하는 시간량이 감소되기 때문에, 제어기에 대한 처리 부하가 감소되어, 제어기가 상대적으로 과중한 부하로 인해 처리 병목 현상이 되는 문제점을 피할 수 있다.

Description

SDN 기반의 ARP 구현 방법 및 장치
본 발명은 데이터 통신 기술 분야에 관한 것으로, 특히 소프트웨어 정의 네트워킹(SDN: Software Defined Networking) 기반의 주소 결정 프로토콜(ARP: Address Resolution Protocol) 구현 방법 및 장치에 관한 것이다.
SDN은 새로운 네트워크 아키텍처이고 데이터 센터 네트워크 및 통신 네트워크에 널리 적용된다. 도 1에 나타난 바와 같이, SDN은 네트워크 요소의 제어 로직을 네트워크 요소의 포워딩 기능으로부터 분리시킨다. 제어 계층은 네트워크 서비스를 제공한다. 네트워크 서비스는 제어 계층에 의해 대응하는 정책을 네트워크 장치에 전달함으로써 구현된다. 네트워크 장치는 포워딩 계층에서 패킷을 전송하도록 구성된다. 네트워크 서비스는 라우팅, 멀티캐스트, 서비스 품질 및 액세스 제어와 같은 다양한 네트워크 서비스 및 응용 프로그램을 포함한다.
OpenFlow 프로토콜은 SDN 네트워크의 대표적인 기술이다. OpenFlow 프로토콜에 따르면, OpenFlow 제어기(이하, OF 제어기라 함)는 제어 계층의 기능을 구현하며, 몇몇 OpenFlow 스위치(이하, OF 스위치라 함)는 포워딩 계층의 기능을 구현하기 위해 포워딩 계층 네트워크 장치로서 사용된다. 각각의 스위치는 여러 호스트에 연결될 수 있다.
OF 제어기는 패킷 특성에 따라 서비스 플로의 동작을 결정한다. 패킷 특성은 인터넷 프로토콜(IP: Internet Protocol) 5중, 이더넷 프레임 헤더, 가상 국부 영역 네트워크 식별(VLAN ID: Virtual Local Area Network Identification) 등을 포함한다. 또한, OF 제어기는 OF 스위치에 플로 테이블 규칙을 전달한다. OF 스위치는 플로 테이블 규칙을 획득하고 저장하며, 플로 테이블 규칙을 만족하는 후속 패킷에 대응하는 동작을 수행하여, 패킷을 포워딩하거나 처리한다.
도 2에 나타난 바와 같이, 플로 테이블 규칙을 전달하는 기본 프로세스는 이하와 같다.
단계 201: OF 제어기는 OFP_FLOW_Mod 메시지(즉, 플로 테이블 수정 메시지)를 사용하여 OF 스위치에 플로 테이블 규칙을 전송한다.
OF 제어기는 다수의 OFP_Flow_Mod 메시지를 사용하여 상이한 플로 테이블의 플로 테이블 규칙을 OF 스위치에 전달할 수 있다.
단계 202: OF 스위치는 모든 플로 테이블 규칙 및 대응하는 포워딩 동작 세트를 대응하는 플로 테이블에 저장한다.
단계 203: 사용자에 의해 전송된 패킷을 수신할 때, OF 스위치는 수신된 패킷에 대한 플로 테이블 매칭을 수행하며, 매칭된 플로 테이블 규칙 및 대응하는 포워딩 동작 세트에 따라 수신된 패킷에 대한 대응하는 포워딩 처리를 수행한다.
도 3에 나타난 바와 같이, 플로 테이블 매칭 및 포워딩 처리의 프로세스는 이하와 같다.
진입 포트(Ingress port)를 사용하여 패킷이 스위치에 입력될 때, 제1 플로 테이블인, 테이블 0으로부터 매칭이 시작된다. 대응하는 플로 테이블 규칙이 매칭되면, 플로 테이블 규칙의 명령이 실행되고, 명령에 따라, 다음 플로 테이블인, 테이블 1로 매칭이 진행된다. 패킷에 대해 테이블 1에서 매칭이 수행될 때, 패킷은 진입 포트 정보 및 메타데이터 정보를 운반한다. 메타데이터는 마스크 가능 레지스터의 값이며, 플로 테이블 간에 정보를 전송하는 데 사용된다. 테이블 1의 매칭된 플로 테이블 규칙의 명령이 다음 플로 테이블로 이동하도록 지시하지 않으면, 매칭이 종료되고, 테이블 1의 매칭된 플로 테이블 규칙에 대응하는 해당 동작 세트(동작 세트)가 실행된다. 대응하는 플로 테이블 규칙이 패킷에 대한 플로 테이블에서 매칭되지 않으면, 패킷은 처리를 위해 폐기되거나 OF 제어기로 포워딩된다. 예를 들어, OF 제어기는 패킷을 지정된 출력 포트에 포워딩하고, 패킷을 폐기하고, 패킷 헤더를 수정하거나, 그룹 테이블에 따라 패킷을 포워딩한다.
이더넷 프로토콜에서, 원본 호스트가 목적지 호스트와 통신할 필요가 있으면, 원본 호스트는 목적지 호스트의 MAC 주소를 알아야 한다. 그러나, 원본 호스트는 대개 목적지 호스트의 인터넷 프로토콜(IP: Internet Protocol) 주소만 알고 있다. 주소 결정 프로토콜(ARP)의 기본 기능은 목적지 호스트의 IP 주소를 사용하여 목적지 호스트의 MAC 주소를 쿼리하고 획득하는 것이다. 도 4에 나타난 바와 같이, ARP에 기반하여, 호스트 간의 통신을 구현하는 프로세스는 이하와 같다.
단계 401: 패킷을 호스트 B로 전송하기 이전에, 호스트 A는 국부적으로 캐시된 ARP 맵핑 테이블이 호스트 B의 ARP 엔트리를 가지는지 여부를 검사한다. 국부적으로 캐시된 ARP 맵핑 테이블이 호스트 B의 ARP 엔트리를 가지면, 호스트 A는 ARP 엔트리에 따라 호스트 B로 패킷을 직접 전송하거나, 또는 국부적으로 캐시된 ARP 맵핑 테이블이 호스트 B의 ARP 엔트리를 갖지 않으면, 단계 402가 실행된다.
단계 402: 호스트 A는 연결된 스위치 S1를 사용하여 전체 네트워크에 ARP 요청 메시지를 전송한다.
실제 응용에서, 호스트 A는 ARP 요청 메시지를 연결된 스위치 S1에 전송하고, 스위치 S1은 ARP 요청 메시지를 전체 네트워크에 브로드캐스팅한다.
단계 403: ARP 요청을 수신한 이후에, 호스트 B는 호스트 B에 호스트 A의 ARP 엔트리를 추가한다.
단계 404: 호스트 B는 연결된 스위치 S2를 사용하여 유니캐스트 방식으로 ARP 응답을 호스트 A로 전송한다.
구체적으로는, 스위치 S2는 수신된 ARP 요청 메시지를 사용하여 호스트 A의 MAC 주소 정보를 획득하고, 호스트 A의 MAC 주소 정보에 따라 유니캐스트 방식으로 ARP 응답을 호스트 A로 전송할 수 있다.
단계 405: ARP 응답을 수신한 이후에, 호스트 A는 호스트 B의 ARP 엔트리를 추가한다.
호스트 B와의 후속 통신 프로세스에서, 패킷은 ARP 엔트리에 따라 호스트 B로 전송될 수 있다.
ARP 요청 메시지의 브로드캐스팅은 많은 네트워크 대역폭을 소비한다는 것을 알 수 있다. SDN을 사용하는 네트워크 아키텍처에서, ARP 요청 메시지를 브로드캐스팅하는 시간량을 줄이기 위해, OF 제어기는 전체 네트워크의 ARP 맵핑 테이블을 저장하고 모든 ARP 요청을 처리하도록 구성된다.
도 5에 나타난 바와 같이, 기존 ARP 구현 방법은 이하와 같다.
501: 호스트 A는 연결된 스위치 OF 스위치 S1에 ARP 요청 메시지를 전송한다.
502: OF 스위치 S1은 ARP 요청 메시지를 패킷 인(packet-in) 메시지로 캡슐화하고, 패킷 인 메시지를 제어기 OF 제어기로 전송한다.
503: OF 제어기는 패킷 인 메시지를 수신하고, 내부 ARP 맵핑 테이블에서 호스트 B의 ARP 엔트리를 탐색한다. 호스트 B의 ARP 엔트리가 발견되면, OF 제어기는 ARP 응답을 직접 생성하고, ARP 응답을 패킷 아웃 메시지에 캡슐화하고, 패킷 아웃 메시지를 OF 스위치 S1에 반환한다. 또는 호스트 B의 ARP 엔트리가 발견되지 않으면, OF 제어기는 호스트 A의 ARP 엔트리를 저장하고, 패킷 아웃 메시지의 방식으로, 모든 OF 스위치가 접속된 호스트로 ARP 요청을 전송하도록 지시한다.
504: 스위치 OF 스위치 S3은 ARP 요청을 호스트 B에 포워딩한다.
505: 호스트 B는 ARP 응답을 반환한다.
506: OF 스위치 S3은 ARP 응답을 패킷 인 메시지로 캡슐화하고 패킷 인 메시지를 OF 제어기로 전송한다.
507: OF 제어기는 패킷 인 메시지를 수신하고, 호스트 B의 ARP 엔트리를 저장하고, ARP 응답을 패킷 아웃 메시지에 캡슐화하며, 패킷 아웃 메시지를 OF 스위치 S1에 전송한다.
508: 그 다음, OF 스위치 S1은 ARP 응답을 호스트 A에 포워딩한다.
ARP 응답을 수신한 이후에, 호스트 A는 호스트 B의 ARP 엔트리를 추가한다. 후속 통신 프로세스에서, 호스트 A는 ARP 엔트리에 따라 패킷을 호스트 B로 전송한다.
기존의 SDN 기반의 ARP 구현 방법에 따르면, OF 제어기를 사용하여 모든 ARP 맵핑 테이블을 함께 유지하면 ARP 요청 메시지를 브로드캐스팅하는 시간량이 줄어든다. 그러나, 네트워크 규모의 확장과 ARP 요청의 증가로 인해, 중앙 제어기(즉, OF 제어기)를 사용하여 많은 스위치에 패킷 아웃 메시지를 전송하면, 제어기에 큰 제어 처리 부하가 걸릴 뿐만 아니라 또한 제어기의 전송 자원을 많이 차지한다. 그 결과, 제어기가 처리 병목 현상이 된다.
본 발명의 실시예는 제어기 기반의 ARP 요청 브로드캐스팅이 제어기에 상대적으로 과중한 부하를 초래하고 제어기의 다수의 전송 자원을 낭비하는 종래 기술의 문제점을 해결하도록, SDN 기반의 ARP 구현 방법 및 장치를 제공한다.
제1 측면에 따르면, SDN 기반의 ARP 구현 방법이 제공되고, 제어기에 의해, 제1 스위치로부터 제1 ARP 요청을 수신하는 단계 - 상기 제1 ARP 요청은 상기 제1 스위치에 연결된 호스트에 의해 상기 제1 스위치로 전송됨 -; 및 상기 제1 ARP 요청에 대응하는 ARP 엔트리가 국부적으로 존재하지 않는다고 판단할 때, 상기 제어기에 의해, 상기 제1 스위치가 상기 제1 ARP 요청을 플러딩(flood)하도록 지시하는 데 사용되는 제1 명령을 상기 제1 스위치로 전송하는 단계를 포함한다.
제1 측면을 참조하여, 제1 측면의 제1 가능한 구현에서, 상기 제1 명령은 상기 제1 스위치에 인접하는 스위치와 상기 제1 스위치에 연결된 상기 호스트 모두에 제1 ARP 요청을 전송하도록 상기 제1 스위치에 지시하는 데 사용된다.
제1 측면 또는 제1 측면의 제1 가능한 구현을 참조하여, 제1 측면의 제2 가능한 구현에서, 제어기에 의해, 제1 스위치에 의해 전송된 제1 ARP 요청을 수신하는 단계 이전에, 상기 방법은, 상기 제어기에 의해, 제1 스위치에 대한 미리 설정된 플로 테이블 규칙을 구성하는 단계를 더 포함한다. 상기 플로 테이블 규칙은, 인접한 스위치에 의해 전송된 ARP 요청을 수신할 때, 스위치가 인접한 스위치에 의해 전송된 ARP 요청을 플러딩하는 것을 포함한다.
제1 측면 중 임의의 하나, 또는 제1 측면의 제1 내지 제2 가능한 구현을 참조하여, 제1 측면의 제3 가능한 구현에서, 제1 명령을 제1 스위치로 전송하는 단계 이후에, 상기 방법은, 제1 ARP 응답을 수신하고, 상기 제1 응답을 상기 제1 스위치에 포워딩하며, 상기 제1 ARP 응답에서 ARP 엔트리를 국부적으로 저장하는 단계를 더 포함한다.
제1 측면 중 임의의 하나, 또는 제1 측면의 제1 내지 제3 가능한 구현을 참조하여, 제1 측면의 제4 가능한 구현에서, 상기 제1 ARP 요청에 대응하는 ARP 엔트리가 국부적으로 존재하는 것으로 판단하면, 상기 제어기에 의해, 상기 ARP 엔트리에 기초한 목적지 스위치를 결정하고, 상기 제1 ARP 요청을 상기 목적지 스위치에 전송하는 단계를 더 포함한다.
제1 측면의 제4 가능한 구현을 참조하여, 제1 측면의 제5 가능한 구현에서, 상기 제어기에 의해, 상기 제1 ARP 요청을 상기 목적지 스위치에 전송하는 단계 이후에, 상기 방법은, 상기 목적지 스위치에 의해 반환된 제2 ARP 응답이 수신될 때, 상기 제2 ARP 응답을 상기 제1 스위치에 포워딩하거나; 또는 상기 목적지 스위치에 의해 반환된 ARP 응답이 특정 지속 기간 내에 수신되지 않으면, 상기 제1 ARP 요청에 대응하고, 국부적으로 저장된 상기 ARP 엔트리를 삭제하고, 상기 제1 스위치가 상기 제1 ARP 요청을 플러딩하도록 지시하는 데 사용되는 제2 명령을 상기 제1 스위치에 전송하는 단계를 더 포함하고, 상기 제2 명령은, 상기 제1 스위치가 상기 제1 스위치에 인접하는 스위치와 상기 제1 스위치에 연결된 상기 호스트 모두에 상기 제1 ARP 요청을 전송하도록 지시하는 데 사용된다.
제1 측면의 제5 가능한 구현을 참조하여, 제1 측면의 제6 가능한 구현에서, 상기 제1 스위치에 제2 명령을 전송하는 단계 이후에, 상기 방법은, 제2 스위치로부터 제3 ARP 응답을 수신할 때, 상기 제3 ARP 응답에 포함된 ARP 엔트리를 국부적으로 저장하는 단계; 및 상기 제3 ARP 응답을 상기 제1 스위치에 포워딩하는 단계를 더 포함한다.
제2 측면에 따르면, 다른 SDN 기반의 ARP 구현 방법이 제공되고, 제1 스위치에 의해, 상기 제1 스위치에 연결된 호스트에 의해 전송된 제1 ARP 요청을 수신하는 단계; 상기 제1 스위치에 의해, 상기 제1 ARP 요청을 제어기에 보고하는 단계; 상기 제1 스위치에 의해, 상기 제1 스위치에 상기 제1 ARP 요청을 플러딩하도록 지시하는 데 사용되고, 또한 상기 제1 ARP 요청에 따라 상기 제어기에 의해 전달되는 명령을 수신하는 단계; 및 상기 제1 스위치에 의해, 상기 명령에 따른 상기 제1 ARP 요청을 플러딩하는 단계를 포함한다.
제2 측면을 참조하여, 제2 측면의 제1 가능한 구현에서, 상기 제1 스위치에 의해, 상기 명령에 따른 상기 제1 ARP 요청을 플러딩하는 단계는 구체적으로, 상기 명령에 따라 상기 제1 스위치에 의해, 상기 제1 ARP 요청을 상기 제1 스위치에 인접하는 스위치와 상기 제1 스위치에 연결되는 상기 호스트 모두에 전송하는 단계를 포함한다.
제2 측면 또는 제2 측면의 제1 가능한 구현을 참조하여, 제2 측면의 제2 가능한 구현에서, 상기 제1 스위치에 의해, 상기 제1 스위치에 연결된 호스트에 의해 전송된 제1 ARP 요청을 수신하는 단계 이전에, 상기 제1 스위치에 의해, 상기 제어기에 의해 전달된 플로 테이블 규칙 구성 명령에 따라 플로 테이블 규칙에 대한 구성을 수행하는 단계를 더 포함하고, 상기 플로 테이블 규칙은, 인접하는 스위치로부터 ARP 요청을 수신할 때, 스위치가 상기 인접하는 스위치에 의해 전송된 상기 ARP 요청을 플러딩하는 것을 포함한다.
제3 측면에 따르면, 다른 SDN 기반의 ARP 구현 방법이 제공되고, 제1 스위치에 의해, 상기 제1 스위치에 인접한 제2 스위치로부터 제1 요청을 수신하는 단계; 및 상기 제1 스위치에 의해, 상기 제1 ARP 요청을 직접 플러딩하는 단계를 포함한다.
제3 측면을 참조하여, 제3 측면의 제1 가능한 구현에서, 상기 제1 스위치에 의해, 상기 제1 ARP 요청을 직접 플러딩하는 단계는 구체적으로, 상기 제1 스위치에 의해, 상기 제2 스위치와 상이하고 상기 제1 스위치에 인접하는 스위치와 상기 제1 스위치에 연결된 호스트에 상기 제1 ARP 요청을 전송하는 단계를 포함한다.
제3 측면 또는 제3 측면의 제1 가능한 구현을 참조하여, 제3 측면의 제2 가능한 구현에서, 상기 제1 스위치에 의해, 상기 제1 스위치에 인접한 제2 스위치에 의해 전송된 제1 ARP 요청을 수신하는 단계 이전에, 상기 제1 스위치에 의해, 제어기에 의해 전달된 플로 테이블 규칙 구성 명령에 따라 플로 테이블 규칙에 대한 구성을 수행하는 단계를 더 포함하고, 상기 플로 테이블 규칙은, 인접하는 스위치로부터 ARP 요청을 수신할 때, 스위치가 인접하는 스위치에 의해 전송된 상기 ARP 요청을 플러딩하고, 연결된 호스트로부터 ARP 요청을 수신할 때, 상기 스위치가 상기 연결된 호스트에 의해 전송된 상기 ARP 요청을 상기 제어기에 보고하는 것을 포함한다.
제4 측면에 따르면, SDN 기반의 ARP 구현 장치가 제공되고, 제1 스위치로부터 제1 ARP 요청을 수신하도록 구성된 수신 유닛 - 상기 제1 ARP 요청은 상기 제1 스위치에 연결된 호스트에 의해, 상기 제1 스위치로 전송됨 -; 상기 수신 유닛에 의해 수신된 상기 제1 ARP 요청에 대응하는 ARP 엔트리가 국부적으로 존재하는지 여부를 판단하도록 구성된 맵핑 유닛; 및 상기 맵핑 유닛이 상기 제1 ARP 요청에 대응하는 상기 ARP 엔트리가 국부적으로 존재하는 것으로 판단할 때, 상기 제1 스위치가 상기 제1 ARP 요청을 플러딩하도록 지시하는 데 사용되는 제1 명령을 상기 제1 스위치에 전송하도록 구성된 전송 유닛을 포함한다.
제4 측면을 참조하여, 제4 측면의 제1 가능한 구현에서, 상기 제1 명령은, 상기 제1 스위치가 상기 제1 스위치에 인접하는 스위치와 상기 제1 스위치에 연결된 상기 호스트 모두에 상기 제1 ARP 요청을 전송하도록 지시하는 데 사용된다.
제4 측면 또는 제4 측면의 제1 가능한 구현을 참조하여, 제4 측면의 제2 가능한 구현에서, 상기 장치는 상기 수신 유닛이 상기 제1 스위치로부터 상기 제1 ARP 요청을 수신하기 이전에, 상기 제1 스위치에 대한 미리 설정된 플로 테이블 규칙을 구성하도록 구성된 구성 유닛을 더 포함하고, 상기 플로 테이블 규칙은, 인접하는 스위치로부터 ARP 요청을 수신할 때, 스위치가 상기 인접하는 스위치에 의해 전송된 상기 ARP 요청을 플러딩하는 것을 포함한다.
제 4 측면 중 임의의 하나, 또는 제4 측면의 제1 내지 제2 가능한 구현을 참조하여, 제4 측면의 제3 가능한 구현에서, 상기 수신 유닛은 또한, 상기 전송 유닛이 상기 제1 명령을 상기 제1 스위치로 전송한 이후에, 제1 ARP 응답을 수신하도록 구성되고; 상기 전송 유닛은 또한, 상기 수신 유닛에 의해 수신된 상기 제1 ARP 응답을 상기 제1 스위치에 포워딩하도록 구성되며; 및 상기 맵핑 유닛은 또한, 상기 수신 유닛에 의해 수신된 상기 제1 ARP 응답에서 ARP 엔트리를 국부적으로 저장하도록 구성된다.
제4 측면 중 임의의 하나, 또는 제1 측면의 제1 내지 제3 가능한 구현을 참조하여, 제4 측면의 제4 가능한 구현에서, 상기 맵핑 유닛은 또한, 상기 제1 ARP 요청에 대응하는 상기 ARP 엔트리가 국부적으로 존재하는 것으로 판단하면, 상기 ARP 엔트리에 기초하여 목적지 스위치를 결정하도록 구성되며; 및 상기 전송 유닛은 또한, 상기 제1 ARP 요청을 상기 맵핑 유닛에 의해 결정된 상기 목적지 스위치에 전송하도록 구성된다.
제 4 측면의 제4 가능한 구현을 참조하여, 제4 측면의 제5 가능한 구현에서, 상기 전송 유닛이 상기 제1 ARP 요청을 상기 목적지 스위치로 전송한 이후에, 상기 수신 유닛이 상기 목적지 스위치에 의해 반환된 제2 ARP 응답을 수신하면, 상기 전송 유닛은 상기 제2 ARP 응답을 상기 제1 스위치에 포워딩하거나; 또는 상기 수신 유닛이 특정 지속 기간 내에서, 상기 목적지 스위치에 의해 반환된 ARP 응답을 수신하지 않으면, 상기 맵핑 유닛은, 상기 제1 ARP 요청에 대응하고 국부적으로 저장된 ARP 엔트리를 삭제하고, 상기 전송 유닛은, 상기 제1 스위치가 상기 제1 ARP 요청을 플러딩하도록 지시하는 데 사용되는 제2 명령을 상기 제1 스위치에 전송하고, 상기 제2 명령은, 상기 제1 스위치가, 상기 제1 스위치에 인접한 스위치와 상기 제1 스위치에 연결된 상기 호스트 모두에 상기 제1 ARP 요청을 전송하도록 지시하는 데 사용된다.
제4 측면의 제5 가능한 구현을 참조하여, 제4 측면의 제6 가능한 구현에서, 상기 전송 유닛이 상기 제2 명령을 상기 제1 스위치로 전송한 이후에, 상기 수신 유닛이 제2 스위치로부터 제3 ARP 응답을 수신할 때, 상기 맵핑 유닛은 또한, 상기 제3 ARP 응답에 포함된 ARP 엔트리를 국부적으로 저장되도록 구성되며; 및 상기 전송 유닛은 또한, 상기 제3 ARP 응답을 상기 제1 스위치에 포워딩하도록 구성된다.
제5 측면에 따르면, SDN 기반의 ARP 구현 장치가 제공되고, 상기 장치에 연결된 호스트로부터 제1 요청을 수신하도록 구성된 제1 수신 유닛; 상기 제1 수신 유닛에 의해 수신된 상기 제1 ARP 요청을 제어기에 보고하도록 구성된 전송 유닛; 상기 장치가 상기 제1 ARP 요청을 플러딩하도록 지시하는 데 사용되고, 또한 상기 제1 ARP 요청에 따라 상기 제어기에 의해 전달되는 명령을 수신하도록 구성된 제2 수신 유닛; 및 상기 제2 수신 유닛에 의해 수신된 상기 명령에 따라 상기 제1 ARP 요청을 플러딩하도록 구성된 플러딩 유닛을 포함한다.
제5 측면을 참조하여, 제5 측면의 제1 가능한 구현에서, 상기 플러딩 유닛은 구체적으로, 상기 장치에 인접한 스위치와 상기 장치에 연결된 상기 호스트 모두에 상기 제1 ARP 요청을 전송하도록 구성된다.
제5 측면 또는 제5 측면의 제1 가능한 구현을 참조하여, 제5 측면의 제2 가능한 구현에서, 상기 장치는, 상기 제1 수신 유닛이 상기 장치에 연결된 상기 호스트에 의해 전송된 상기 제1 ARP 요청을 수신하기 이전에, 상기 제어기에 의해 전달된 플로 테이블 규칙 구성 명령에 따라 플로 테이블 규칙에 대한 구성을 수행하도록 구성된 구성 유닛을 더 포함하고, 상기 플로 테이블 규칙은, 인접한 스위치로부터 ARP 요청을 수신할 때, 스위치가 상기 인접한 스위치에 의해 전송된 상기 ARP 요청을 플러딩하는 것을 포함한다.
제6 측면에 따르면, SDN 기반의 ARP 구현 장치가 제공되고, 상기 장치에 인접한 제2 스위치로부터 제1 ARP 요청을 수신하도록 구성된 수신 유닛; 및 상기 수신 유닛에 의해 수신된 상기 제1 ARP 요청을 직접 플러딩하도록 구성된 플러딩 유닛을 포함한다.
제6 측면을 참조하여, 제6 측면의 제1 가능한 구현에서, 상기 플러딩 유닛은 구체적으로, 상기 장치와 상이하고 상기 장치에 인접한 스위치 및 상기 장치에 연결된 호스트로 상기 제1 ARP 요청을 전송하도록 구성된다.
제6 측면 또는 제6 측면의 제1 가능한 구현을 참조하여, 제6 측면의 제2 가능한 구현에서, 상기 장치는, 상기 수신 유닛이 상기 제1 스위치에 인접한 상기 제2 스위치에 의해 전송된 상기 제1 ARP 요청을 수신하기 이전에, 제어기에 의해 전달된 플로 테이블 규칙 구성 명령에 따라 플로 테이블 규칙에 대한 구성을 수행하도록 구성된 구성 유닛을 더 포함하고, 상기 플로 테이블 규칙은, 인접한 스위치로부터 ARP 요청을 수신할 때, 스위치가 상기 인접한 스위치에 의해 전송된 상기 ARP 요청을 플러딩하고, 연결된 호스트로부터 ARP 요청을 수신할 때, 상기 스위치가 상기 연결된 호스트에 의해 전송된 상기 ARP 요청을 상기 제어기에 보고하는 것을 포함한다.
제7 측면에 따르면, 제어기가 제공되며, 트랜시버, 프로세서, 메모리 및 버스를 포함하며, 상기 트랜시버, 상기 프로세서 및 상기 메모리는 상기 버스에 연결되고, 상기 메모리는 프로그램 세트를 저장하며, 상기 프로세서는 상기 제어기가 제1 측면 중 임의의 하나 또는, 제1 측면의 제1 내지 제6 가능한 구현에 따른 상기 방법을 실행하도록, 상기 메모리에 저장된 상기 프로그램을 호출하도록 구성된다.
제8 측면에 따르면, 스위치가 제공되며, 트랜시버, 프로세서, 메모리 및 버스를 포함하고, 상기 트랜시버, 상기 프로세서 및 상기 메모리는 상기 버스에 연결되고, 상기 메모리는 프로그램 세트를 저장하며, 상기 프로세서는 상기 스위치가 제2 측면 중 임의의 하나, 또는 제2 측면의 제1 내지 제2 가능한 구현에 따른 상기 방법을 실행하도록, 상기 메모리에 저장된 상기 프로그램을 호출하도록 구성된다.
제9 측면에 따르면, 스위치가 제공되고, 트랜시버, 프로세서, 메모리 및 버스를 포함하고, 상기 트랜시버, 상기 프로세서 및 상기 메모리는 상기 버스에 연결되고, 상기 메모리는 프로그램 세트를 저장하며, 상기 프로세서는 상기 스위치가 제3 측면 중 임의의 하나, 또는 제3 측면의 제1 내지 제2 가능한 구현에 따른 상기 방법을 실행하도록, 상기 메모리에 저장된 상기 프로그램을 호출하도록 구성된다.
본 발명의 본 실시예에서, 제1 ARP 요청에 대응하는 ARP 엔트리가 국부적으로 존재할 때, 제어기는 제1 ARP 요청을 유니캐스트 방식으로 목적지 스위치에 전송하며; ARP 응답이 수신되면, ARP 응답을 유니캐스트 방식으로 제1 스위치에 피드백하고, 이로써 제1 스위치가 ARP 응답을 원본 호스트에 더 피드백한다. 또는 ARP 응답이 특정 지속 기간 내에 수신되지 않으면, 대응하는 ARP 엔트리를 국부적으로 삭제하고, 스위치 간에 메시지 포워딩을 통해 제1 ARP 요청을 브로드캐스팅하며, 이로써 목적지 호스트이고 제1 ARP 요청에서 목적지 IP 주소에 대응하는 정확한 MAC 주소를 획득하며, ARP 엔트리를 국부적으로 업데이트한다. 이러한 방식으로, 제어기에 의해 저장된 ARP 테이블은 적시에 업데이트되어, 제어기에 의해 저장된 유효하지 않은 ARP 엔트리로 인한 보다 심각한 네트워크 오류를 피할 수 있다.
도 1은 종래 기술의 SDN의 기본 구조도이다.
도 2는 종래 기술의 플로 테이블 규칙을 전달하기 위한 기본 흐름도이다.
도 3은 종래 기술의 플로 테이블 매칭 및 처리의 흐름도이다.
도 4는 종래 기술의 ARP에 기초한 호스트 간의 통신을 구현하기 위한 흐름도이다.
도 5는 종래 기술의 ARP 구현 방법의 흐름도이다.
도 6은 본 발명의 일 실시예에 따른 ARP 구현 시스템의 도면이다.
도 7은 본 발명의 실시예 1에 따른 SDN 기반의 ARP 구현 방법의 흐름도이다.
도 8a는 본 발명의 실시예 2에 따른 다른 SDN 기반의 ARP 구현 방법의 흐름도이다.
도 8b는 본 발명의 실시예 3에 따른 다른 SDN 기반의 ARP 구현 방법의 흐름도이다.
도 9는 본 발명의 실시예 4에 따른 시나리오 1의 ARP 구현의 흐름도이다.
도 10은 본 발명의 실시예 4에 따른 시나리오 2의 ARP 구현의 흐름도이다.
도 11은 본 발명의 실시예 5에 따른 SDN 기반의 ARP 구현 장치의 구조도이다.
도 12는 본 발명의 실시예 6에 따른 SDN 기반의 ARP 구현 장치의 구조도이다.
도 13은 본 발명의 실시예 7에 따른 SDN 기반의 ARP 구현 장치의 구조도이다.
도 14는 본 발명의 실시예 8에 따른 제어기의 구조도이다.
도 15는 본 발명의 실시예 9에 따른 스위치의 구조도이다.
도 16은 본 발명의 실시예 10에 따른 스위치의 구조도이다.
SDN 네트워크 구조에서, 스패닝(Spanning) 트리 프로토콜이 브로드캐스트 스톰(storm)을 피하기 위해 잘 구현될 수 있다는 것을 고려하면, 본 발명의 실시예에 따라, ARP 요청은 스위치 간의 상호작용 메시지를 사용함으로써 브로드캐스팅된다. 이 방법은 제어기의 패킷 아웃 이벤트를 사용하여 ARP 요청이 전체 네트워크로 브로드캐스팅되는 종래 기술 방법을 대체한다. 제어기에 의해 패킷 아웃 메시지를 전송하기 위한 시간량이 감소되고, 제어기가 패킷 아웃 메시지를 전송하는 것과 비교하여, 스위치 간의 메시지 상호작용을 위해 더 적은 전송 자원을 차지한다. 따라서, ARP 요청을 브로드캐스팅하기 위한 제어기에 의해 차지된 전송 자원이 감소되고, 제어기가 상대적으로 과중한 부하로 인해, 처리 병목 현상이 되는 문제점이 회피된다.
본 발명의 목적, 기술적 해결책 및 이점을 보다 명확하게 하기 위해, 이하에서는 첨부 도면을 참조하여 본 발명을 더욱 상세하게 설명한다. 명확한 것은, 설명된 실시예는 본 발명의 모든 실시예가 아니라 단지 일부에 불과하다는 것이다. 창의적인 노력 없이 본 발명의 실시예에 기초하여 통상의 기술자에 의해 획득된 다른 모든 실시예는 본 발명의 보호 범위 내에 있다.
본 발명의 실시예에 따른 SDN 기반의 네트워크 구조에서, 전체 네트워크의 모든 호스트의 ARP 맵핑 정보는 제어기를 사용하여 함께 유지된다. 도 6에 나타난 바와 같이, 본 발명의 일 실시예에 따른 ARP 구현 시스템은 OF 제어기(즉, 제어기)(601), OF 스위치(즉, 스위치)(602) 및 호스트(603)를 포함한다.
제어기(601)는 다수의 스위치에 연결된다. 도 6에서, 제어기(601)가 3개의 스위치에 연결된 예를 사용하여 설명이 제공된다. 3개의 스위치는 602-a, 602-b, 602-c로 각각 표시되는 스위치 S1, 스위치 S2 및 스위치 S3이다. 각각의 스위치는 적어도 하나의 호스트에 연결된다. 도 6에서, 각각의 스위치가 2개의 호스트에 연결된 예를 사용하여 설명이 제공된다. 스위치 S1은 호스트 A 및 호스트 B에 연결된다. 스위치 S2는 호스트 C 및 호스트 D에 연결된다. 스위치 S3는 호스트 E와 호스트 F에 연결된다. 호스트 A, 호스트 B, 호스트 C, 호스트 D, 호스트 E 및 호스트 F는 603-a, 603-b, 603-c, 603-d, 603-e 및 603-f로 각각 표시된다.
제어기(601)는 SDN 네트워크 아키텍처에서 제어 평면 장치이며, 패킷 특성에 따라 서비스 플로의 포워딩 동작을 결정하고, 대응하는 플로 테이블 규칙을 형성하고, 대응하는 플로 테이블 규칙을 스위치(602)에 전달하며, 호스트(603)의 ARP 맵핑 정보를 함께 유지한다.
예를 들어, ARP 맵핑 정보는 ARP 맵핑 테이블의 형태로 제어기(601)에 일정하게 기록될 수 있다. 제어기(601)는 각각의 호스트에 대해 하나의 ARP 엔트리를 유지하고, ARP 엔트리는 IP 주소와 호스트의 MAC 주소 사이의 맵핑 관계를 기록한다.
스위치(602)는 SDN 네트워크 아키텍처에서 사용자 평면 장치이며, 제어기(601)로부터 플로 테이블 규칙을 획득하고, 플로 테이블 규칙을 저장하고, 저장된 플로 테이블 규칙에 기록된 포워딩 동작에 따라, 저장된 플로 테이블 규칙을 만족하는 패킷에 대한 대응하는 동작을 수행하고 이로써, 패킷의 포워딩 처리를 수행하도록 구성된다.
목적지 호스트에 패킷을 전송하기 이전에, 원본 호스트는 목적지 호스트의 MAC 주소를 알아야 한다. 목적지 호스트의 ARP 엔트리가 국부적으로 캐시되지 않을 때, 원본 호스트는 원본 호스트에 연결된 스위치에 ARP 요청을 전송한다. 그 후, 스위치는 ARP 요청을 패킷 인 메시지로 캡슐화하고 패킷 인 메시지를 제어기(601)에 전송한다. 제어기(601)는 ARP 요청을 후속적으로 브로드캐스팅할지 여부를 결정한다.
이하에서는 본 발명의 본 실시예에 따른 SDN 기반의 ARP 구현 방법을 상세히 설명한다.
SDN 네트워크에서, 처리될 수 없는 ARP 요청 메시지를 수신할 때, 스위치는 패킷 인 메시지를 생성하고 패킷 인 메시지를 제어기에 보고한다. 처리될 수 없는 ARP 응답 메시지를 수신할 때, 스위치는 패킷 아웃 메시지를 생성하고 패킷 아웃 메시지를 제어기에 보고한다. 본 발명의 본 실시예에서, 스위치가 네트워크에 액세스할 때, 제어기는 모든 스위치의 플로 테이블 규칙을 사전 구성한다. 구성된 플로 테이블 규칙은 적어도 인접하는 스위치에 의해 전송된 ARP 요청을 수신할 때, 스위치가 인접하는 스위치에 의해 전송된 ARP 요청을 플러딩하는 것을 포함한다.
구성된 플로 테이블 규칙은, 논-스위치 상호 연결 포트로부터(예를 들어, 스위치에 연결된 호스트로부터), ARP 요청을 수신할 때, 스위치는 논-스위치 상호 연결 포트로부터 제어기에 ARP 요청을 보고하는 것을 더 포함할 수 있다.
플러딩은 스위치가, 스패닝 트리 프로토콜을 기반으로, 패킷이 수신된 포트와 상이한 모든 다른 포트를 사용하여 수신된 패킷을 스위치가 전송한다는 것을 의미한다. 즉, 스위치는 인접하는 스위치에 대응하는 포트와 상이한 모든 다른 포트를 사용하여, 인접하는 스위치에서 수신된 ARP 요청을 전송한다. 다른 모든 포트는, 스위치에 인접하는 다른 모든 스위치에 대응하는 포트와 스위치에 연결된 모든 호스트에 대응하는 포트를 포함한다.
도 6에 나타난 바와 같이, 예를 들어, 스위치 S1 및 S3는 스위치 S2에 인접하며, 호스트 C와 호스트 D는 스위치 S2에 연결된다. 스위치 S2가 스위치 S1에 의해 포워딩 된 ARP 요청을 수신할 때, S2는 ARP 요청을 수신하는 포트와 상이한 다른 모든 포트에 ARP 요청을 포워딩한다. 즉, S2는 ARP 요청을, S1과 상이한 S3 및 호스트 C, 호스트 D에 포워딩한다.
실시예 1
도 7에 나타난 바와 같이, 스위치(제1 스위치로 가정된)가 ARP 요청을 전송하는 일례에서, 본 발명의 실시예 1에서의 SDN 기반의 ARP 구현 방법의 프로세스는 구체적으로 이하와 같다.
단계 700: 제어기는 제1 스위치에 의해 전송된 제1 ARP 요청을 수신하며, 여기서 제1 ARP 요청은 제1 스위치에 연결된 호스트에 의해 제1 스위치로 전송된다.
구체적으로는, 제1 스위치에 의해 수신된 제1 ARP 요청이 제1 스위치에 연결된 호스트에 의해 전송되기 때문에, 제1 스위치는 제1 ARP 요청을 패킷 인 메시지로 캡슐화하고, 제1 스위치에 대해 제어기에 의해 미리 구성된 플로 테이블 규칙에 따라 패킷 인 메시지를 제어기에 보고한다. 예를 들어, 제1 스위치는 제1 ARP 요청의 패킷을 패킷 인 메시지에 추가하고, 패킷 인 메시지를 제어기에 보고할 수 있다.
제어기는 제1 ARP 요청을 보고하는, 즉 원본 호스트의 IP 주소와 MAC 주소 사이의 맵핑 관계를 대응하는 ARP 엔트리에 저장하는 호스트(원본 호스트라고도 지칭함)에 대응하는 ARP 엔트리를 국부적으로 저장한다.
제1 ARP 요청은 원본 호스트가 통신하기를 원하는 호스트의 IP 주소(목적지 호스트라고도 지칭함), 즉 목적지 IP 주소를 포함한다.
단계 710: 제1 ARP 요청에 대응하는 ARP 엔트리가 국부적으로 존재하지 않는다고 판단할 때, 제어기는, 제1 스위치가 제1 ARP 요청을 플러딩하도록 지시하는 데 사용되는 제1 명령을 제1 스위치에 전송한다.
제1 명령은 제1 스위치가, 제1 스위치에 인접한 스위치와 제1 스위치에 연결된 호스트 모두에 제1 ARP 요청을 전송하도록 지시하는 데 사용된다.
본 발명의 실시예 1에서, 제어기는 전체 네트워크의 모든 호스트의 ARP 맵핑 엔트리를 함께 유지한다. 제1 ARP 요청을 운반하고, 제1 스위치에 의해 전송되는 패킷 인 메시지를 수신한 이후에, 제어기는 제1 ARP 요청을 획득하기 위해, 패킷 인 메시지를 파싱하며, 제1 ARP 요청에 대응하는 ARP 엔트리가 국부적으로 존재하는지, 즉 목적지 IP 주소에 대응하는 목적지 MAC 주소가 국부적으로 존재하는지 여부를 검사한다. 제1 ARP 요청에 대응하는 ARP 엔트리가 국부적으로 존재하지 않으면, 제어기는 패킷 아웃 메시지를 유니캐스트 방식으로 제1 스위치에 전송한다. 패킷 아웃 메시지는 제1 스위치가 제1 ARP 요청을 플러딩하도록 지시하는 데 사용된다.
구체적으로는, 제1 스위치가 제1 ARP 요청을 플러딩한 이후에, 제1 스위치에 인접한 스위치는 제1 스위치에 의해 포워딩 된 제1 ARP 요청을 수신하며, 인접한 스위치는 인접한 스위치의 미리 구성된 플로 테이블 규칙에 따라 제1 ARP 요청을 계속 플러딩한다. 또한, 제1 스위치에 연결된 호스트는 제1 스위치에 의해 포워딩 된 제1 ARP 요청을 수신한다. 제1 ARP 요청에 포함된 목적지 IP 주소가 호스트의 IP 주소와 일치한다고 판단하면, 호스트는 ARP 응답을 제1 스위치에 반환한다. 또는 제1 ARP 요청에 포함된 목적지 IP 주소가 호스트의 IP 주소와 일치하지 않는다고 판단하면, 호스트는 ARP 응답을 반환하지 않는다.
상기 프로세스에서, 제1 ARP 요청에 대응하는 ARP 엔트리가 국부적으로 존재하지 않는다고 판단할 때, 제어기는 제1 ARP 요청을 전송하는 제1 스위치가 제1 ARP 요청을 플러딩하도록 지시하고; 제1 스위치에 인접한 스위치가 각 스위치의 미리 구성된 플로 테이블 규칙에 따라 제1 ARP 요청을 계속 플러딩하도록 지시한다. 이러한 방식으로, 제1 ARP 요청은 스위치 간의 메시지 포워딩을 통해, 전체 네트워크로 브로드캐스팅 될 수 있다. 제1 ARP 요청이 스위치 간에 포워딩되고, 제어기가 패킷 아웃 메시지를 제1 스위치에만 전송할 때, 제1 ARP 요청은 패킷 인 메시지로 캡슐화될 필요가 없기 때문에, 패킷 아웃 메시지를 전송하기 위한 시간량이 크게 감소되며, 제어기의 처리 부하가 감소된다. 따라서, ARP 요청을 브로드캐스팅하기 위한 네트워크 전송 자원이 더 적게 차지되어, ARP 요청 브로드캐스팅의 효율을 향상시킬 수 있다. 또한, 스위치의 플로 테이블 규칙이 미리 설정되어 있으므로, ARP 요청을 브로드캐스팅하는 프로세스에서, 스위치가 패킷 인 메시지를 다시 생성하고, 스위치가 인접하는 스위치에 의해 포워딩 된 ARP 요청을 수신할 때 반복적으로 패킷 인 메시지를 제어기에 보고하지 않도록 한다.
또한, 제1 ARP 요청을 수신할 때, 호스트는 제1 ARP 요청이 호스트의 IP 주소에 대응하는 MAC 주소를 쿼리하는 데 사용되는지 여부를 검사한다. 호스트(즉, 목적지 호스트)가 제1 ARP 요청이 호스트의 IP 주소와 일치한다는 것을 발견하면, 호스트는 ARP 응답(제1 ARP 응답으로 나타날 수 있는)을 연결된 스위치에 반환하며, 연결된 스위치는 제1 ARP 응답을 패킷 인 메시지로 캡슐화하고 패킷 인 메시지를 제어기에 전송한다.
제어기가 제1 ARP 응답을 운반하고 스위치(제1 스위치 또는 다른 스위치일 수 있는)에 의해 반환된 패킷 인 메시지를 수신할 때, 제어기는 패킷 인 메시지를 제1 ARP 응답을 운반하는 대응하는 패킷 아웃 메시지로 변환하고, 패킷 아웃 메시지를 유니캐스트 방식으로 제1 스위치에 전송한다. 제1 스위치는 제1 ARP 요청을 전송하는 호스트(즉, 원본 호스트)에 제1 ARP 응답을 피드백하고, 제어기는 제1 ARP 응답에서 ARP 엔트리를 국부적으로 저장한다. 후속 통신 프로세스에서, 원본 호스트는 제1 ARP 응답의 목적지 호스트의 MAC 주소에 따라 목적지 호스트에 패킷을 전송할 수 있다.
또한, 제1 ARP 요청을 운반하고 제1 스위치에 의해 전송된 패킷 인 메시지를 수신한 이후에, 제어기는 제1 ARP 요청에 대응하는 ARP 엔트리가 국부적으로 존재하는지 여부를 검사한다. 제1 ARP 요청에 대응하는 ARP 엔트리가 존재하는 것으로 판단되면, 제어기는 ARP 엔트리에 따라, 목적지 호스트 및 목적지 호스트에 연결된 목적지 스위치를 결정하고, 제1 ARP 요청을 목적지 스위치에 전송한다.
구체적으로는, 제어기는 국부적으로 저장된 ARP 맵핑 테이블에 따라, 제1 ARP 요청에 대응하는 ARP 엔트리를 결정한다. ARP 엔트리는 목적지 IP 주소와 목적지 MAC 주소 사이의 맵핑 관계를 포함한다. 이 경우, 제어기는 ARP 엔트리를 제1 스위치에 직접 피드백하지 않지만, 목적지 호스트에 연결된 목적지 스위치를 사용하여 목적지 MAC 주소에 따라 제1 ARP 요청을 목적지 호스트에 포워딩한다.
제어기가 목적지 스위치를 사용함으로써 목적지 호스트에 제1 ARP 요청을 포워딩 한 이후에 2가지 경우가 있다.
경우 1:
목적지 스위치에 의해 반환된 제2 ARP 응답이 수신되면, 제어기는 제2 ARP 응답을 제1 스위치에 포워딩한다.
목적지 스위치에 의해 반환된 제2 ARP 응답이 수신되면, 제어기에 의해 저장되고 제1 ARP 요청에 대응하는 ARP 엔트리가 최종 IP 주소 및 목적지 호스트의 MAC 주소에 관한 정보를 일치시키고, 즉 목적지 호스트의 기존 IP 주소와 MAC 주소는 변경되지 않는다는 것을 나타낸다.
구체적으로는, 제어기는 제2 ARP 응답을 운반하고 목적지 스위치에 의해 전송된 패킷 인 메시지를 수신한다. 패킷 인 메시지는 목적지 스위치가 목적지 호스트에 의해 전송된 제2 ARP 응답을 수신한 이후에, 목적지 스위치에 의해 제2 ARP 응답을 캡슐화함으로써 획득된다. 제2 ARP 응답을 운반하는 패킷 인 메시지를 수신할 때, 제어기는 패킷 인 메시지를 제2 ARP 응답을 운반하고 패킷 아웃 메시지를 유니캐스트 방식으로 제1 스위치로 전송하는 패킷 아웃 메시지로 변환한다. 제1 스위치는 제1 ARP 요청을 전송하는 호스트에 제2 ARP 응답을 피드백한다.
경우 2:
목적지 스위치에 의해 반환된 ARP 응답이 특정 지속 기간동안 수신되지 않으면, 제어기는 제1 ARP 요청에 대응하고 국부적으로 저장된 ARP 엔트리를 삭제하고, 제1 스위치가 제1 ARP 요청을 플러딩하도록 지시하는 데 사용되는 제2 명령을 제1 스위치로 전송한다. 제2 명령은 제1 스위치가, 제1 ARP 요청을 제1 스위치에 인접한 스위치와 제1 스위치에 연결된 호스트 모두에 전송하도록 지시하는 데 사용된다.
목적지 스위치에 의해 반환된 ARP 응답이 특정 지속 기간동안 수신되지 않으면, 제1 ARP 요청에 대응하고 제어기에 의해 저장된 ARP 엔트리가 최종 IP 주소 및 목적지 호스트의 MAC 주소에 관한 정보가 일치하지 않는다는 것, 즉 목적지 호스트의 IP 주소가 변경되지 않는다는 것을 나타낸다. 제1 ARP 요청에 대응하고 제어기에 의해 국부적으로 저장된 ARP 엔트리는 유효하지 않게 되어, 이에 따라 대응하는 ARP 엔트리가 삭제된다.
이 경우, 제어기는 ARP 브로드캐스팅을 계속해서 시작하여, 제1 ARP 요청에 대응하는 올바른 목적지 호스트 및 올바른 목적지 호스트에 연결된 스위치를 획득한다.
구체적으로는, 제어기는 패킷 아웃 메시지를 유니캐스트 방식으로 제1 스위치에 전송한다. 패킷 아웃 메시지는 제1 스위치가 제1 ARP 요청을 플러딩하도록 지시한다. 즉, 제1 스위치가 제1 ARP 요청을 인접하는 스위치 및 연결된 호스트에 포워딩하도록 지시한다. 인접하는 스위치는 제1 ARP 요청을 수신하며, 미리 구성된 플로 테이블 규칙에 따라 제1 ARP 요청을 계속 플러딩한다. 또한, 제1 스위치에 연결된 호스트는 제1 스위치에 의해 포워딩 된 제1 ARP 요청을 수신한다. 제1 ARP 요청에 포함된 목적지 IP 주소가 호스트의 IP 주소와 일치하는 것으로 판단되면, 호스트는 ARP 응답을 제1 스위치에 반환한다. 그렇지 않으면, 호스트는 ARP 응답을 반환하지 않는다. 이러한 방식으로, 제1 ARP 요청은 인접하는 스위치 간의 메시지 포워딩을 통해, 전체 네트워크로 브로드캐스팅될 수 있다.
제어기가 제1 ARP 요청을 브로드캐스팅한 이후에, 호스트(호스트 C로 가정된)는 제1 ARP 요청에 포함된 목적지 IP 주소가 호스트의 IP 주소와 일치한다는 것을 발견하고, 제3 ARP 응답을 연결된 제2 스위치(스위치 S2로 가정된)에 반환한다. 제2 스위치는 제3 ARP 응답을 패킷 인 메시지로 캡슐화하고, 패킷 인 메시지를 제어기로 전송한다.
또한, 제2 스위치에 의해 전송된 제3 ARP 응답을 수신한 이후에, 제어기는 제2 스위치에 의해 전송된 제3 ARP 응답에 포함된 ARP 엔트리를 국부적으로 저장하며, 제3 ARP 응답을 제1 스위치에 포워딩한다.
구체적으로는, 제어기는 제3 ARP 응답을 운반하고 제2 스위치에 의해 전송된 패킷 인 메시지를 수신한다. 패킷 인 메시지는 제2 스위치가 호스트 C에 의해 전송된 제3 ARP 응답을 수신한 이후에, 제2 스위치에 의해 제3 ARP 응답을 캡슐화함으로써 획득된다. 제3 ARP 응답을 운반하는 패킷 인 메시지를 수신할 때, 제어기는 패킷 인 메시지를 제3 ARP 응답을 운반하는 패킷 아웃 메시지로 변환하며, 패킷 아웃 메시지를 유니캐스트 방식으로 제1 스위치로 전송한다. 제1 스위치는 제1 ARP 요청을 전송하는 호스트에 제3 ARP 응답을 피드백한다.
상기 프로세스에서, 제1 ARP 요청에 대응하는 ARP 엔트리가 국부적으로 존재할 때, 제어기는 제1 ARP 요청을 유니캐스트 방식으로 목적지 스위치에 전송한다. ARP 응답이 수신되면, ARP 응답을 유니캐스트 방식으로 제1 스위치에 피드백하고, 이로써 제1 스위치는 ARP 응답을 원본 호스트에 더 피드백 한다. 또는 ARP 응답이 특정 지속 기간에 수신되지 않으면, 대응하는 ARP 엔트리를 국부적으로 삭제하며, 스위치 간의 메시지 포워딩을 통해 제1 ARP 요청을 브로드캐스팅하고, 이로써 목적지 호스트이고 제1 ARP 요청의 목적지 IP 주소에 대응하는 올바른 MAC 주소를 획득하며, ARP 엔트리를 국부적으로 업데이트한다. 이러한 방식으로, 제어기에 의해 저장된 ARP 테이블은 적시에 업데이트될 수 있어, 제어기에 의해 저장된 유효하지 않은 ARP 엔트리로 인한 심각한 네트워크 오류를 피할 수 있다.
상기는 본 발명의 실시예 1에 따른 SDN 기반의 ARP 구현 방법이다.
실시예 2
동일한 발명 개념에 기초하여, 본 발명의 실시예 2는 다른 SDN 기반의 ARP 구현 방법을 제공한다. 이하는 설명을 위한 예로서 여전히 제1 스위치를 사용한다. 특정 프로세스가 도 8a에 나타난다.
단계 800a: 제1 스위치는 제1 스위치에 연결된 호스트에 의해 전송된 제1 ARP 요청을 수신하고, 제1 ARP 요청을 제어기에 보고한다.
제1 스위치는 제어기에 의해 전달된 플로 테이블 규칙 구성 명령에 따라 플로 테이블 규칙에 대한 구성을 수행한다.
플로 테이블 규칙은, 논-스위치(non-switch) 상호 연결 포트로부터(예를 들어, 스위치에 연결된 호스트로부터) ARP 요청을 수신할 때, 스위치가 논-스위치 상호 연결 포트로부터 제어기에 ARP 요청을 보고하는 것을 포함한다.
단계 810a: 제1 스위치는 제1 ARP 요청을 플러딩하도록 스위치를 지시하는 데 사용되고, 제1 ARP에 따라 제어기에 의해 전달되는 명령을 수신하며, 명령에 따라 제1 ARP 요청을 플러딩한다.
구체적으로는, 제1 스위치는, 명령에 따라, 제1 스위치에 인접한 스위치와 제1 스위치에 연결된 호스트 모두에 제1 ARP 요청을 전송한다.
명령은, 제어기가 ARP 요청에 대응하는 ARP 엔트리가 국부적으로 존재하지 않는다고 판단할 때, 제어기에 의해 유니캐스트 방식으로 제1 스위치에 전송된다.
다르게는, 제어기가 ARP 요청에 대응하는 ARP 엔트리가 국부적으로 존재하는 것으로 판단할 때, 명령이 제어기에 의해 유니캐스트 방식으로 제1 스위치로 전송되고, ARP 요청을 유니캐스트 방식으로 목적지 스위치로 전송하지만, ARP 요청이 목적지 스위치를 사용하여 목적지 호스트에 전송된 이후에, 목적지 스위치를 사용하여 목적지 호스트에 의해 반환된 ARP 응답을 수신하지 않는다.
구체적으로는, 제1 스위치와 마찬가지로, 전체 네트워크의 모든 스위치는, 제어기에 의해 전달된 플로 테이블 규칙 구성 명령에 따라, 네트워크에 액세스할 때 미리 플로 테이블 규칙의 구성을 수행한다. 이러한 방식으로, 제1 스위치에 인접한 스위치가 제1 스위치에 의해 포워딩 된 ARP 요청을 수신할 때, 스위치는 ARP 요청을 연결된 호스트 및 제1 스위치와 상이한 다른 모든 인접한 스위치에 직접 포워딩한다. 따라서, ARP 요청은 스위치 간의 메시지 포워딩을 통해 브로드캐스팅될 수 있다.
또한, 제1 ARP 요청에 포함된 목적지 IP 주소에 대응하는 호스트가 호스트에 연결된 스위치에 의해 전송된 제1 ARP 요청을 수신할 때, 호스트는 연결된 스위치에 ARP 응답을 반환한다. 연결된 스위치는 ARP 응답을 패킷 인 메시지로 캡슐화하고 패킷 인 메시지를 제어기에 보고한다. 제어기는 ARP 응답을 처리하며, 패킷 아웃 메시지를 사용하여 ARP 응답을 유니캐스트 방식으로 제1 스위치에 전송한다. 제1 스위치는 ARP 응답을 제1 ARP 요청에 전송하는 호스트로 피드백한다. 이러한 방식으로, 후속 통신 프로세스에서, 제1 ARP 요청을 전송하는 호스트는 ARP 응답에 포함된 ARP 엔트리에 기초하여 목적지 호스트에 패킷을 전송할 수 있다.
실시예 3
동일한 발명 개념에 기초하여, 본 발명의 실시예 3는 다른 SDN 기반의 ARP 구현 방법을 제공한다. 이하는 설명을 위한 일례로서 여전히 제1 스위치를 사용한다. 특정 프로세스가 도 8b에 나타난다.
단계 800b: 제1 스위치는 제1 스위치에 인접한 제2 스위치에 의해 전송된 제1 ARP 요청을 수신한다.
제1 스위치에 인접한 제2 스위치에 의해 전송된 제1 ARP 요청을 수신하기 이전에, 제1 스위치는 제어기에 의해 전달된 플로 테이블 규칙 구성 명령에 따라 플로 테이블 규칙의 구성을 수행한다.
플로 테이블 규칙은, 인접한 스위치에 의해 전송된 ARP 요청을 수신할 때, 스위치가 인접한 스위치에 의해 전송된 ARP 요청을 플러딩하고, 연결된 호스트에 의해 전송된 ARP 요청을 수신할 때, 스위치가 연결된 호스트에 의해 전송된 ARP 요청을 제어기에 보고하는 것을 포함한다.
단계 801b: 제1 스위치는 제1 ARP 요청을 직접 플러딩한다.
구체적으로는, 제1 스위치는, 제2 스위치와 상이하고 제1 스위치와 인접한 스위치 및 제1 스위치에 연결된 호스트에 제1 ARP 요청을 전송한다.
이하에서는, 도 6 및 특정 응용 시나리오를 참조하여 본 발명의 실시예를 상세히 더 설명한다.
실시예 4
목적지 호스트와 통신하기 이전에, 호스트 A는 ARP 프로토콜을 사용하여 목적지 IP 주소에 따라, 목적지 MAC 주소를 획득할 필요가 있다. 실시예 4에서, 호스트 A는 스위치 S1에 연결되고, 호스트 E는 스위치 S3에 연결되고, 스위치 S2는 스위치 S1 및 스위치 S3에 인접하며, 스위치 S1은 스위치 S3에 인접하지 않는다.
이하에서는, 2개의 시나리오에서 본 발명의 실시예 4의 ARP 구현 프로세스를 상세히 설명한다.
시나리오 1: 목적지 IP 주소에 대응하는 ARP 엔트리는 제어기에 국부로 존재하지 않는다.
도 9를 참조하면, 시나리오 1에서 ARP 구현 프로세스는 이하와 같다.
단계 900: 스위치가 네트워크에 액세스할 때, 제어기는 스위치의 플로 테이블 규칙을 미리 구성한다.
구성된 플로 테이블 규칙은, 논-스위치 상호 연결 포트로부터(예를 들어, 스위치에 연결된 호스트로부터) ARP 요청을 수신할 때, 스위치가 논-스위치 상호 연결 포트로부터 ARP 요청을 제어기에 보고하며, 인접한 스위치에 의해 전송된 ARP 요청을 수신할 때, 스위치가 인접한 스위치에 의해 전송된 ARP 요청을 플러딩하는 것을 포함한다.
단계 901: 호스트 A는 ARP 요청을 연결된 스위치 S1에 전송한다.
ARP 요청은, 호스트 A가 통신하기를 원하는 호스트(즉, 목적지 호스트)의 IP 주소를 포함하며, IP 주소는 목적지 IP 주소이다.
단계 902: 스위치 S1은 ARP 요청을 패킷 인 메시지로 캡슐화하며, 패킷 인 메시지를 제어기에 보고한다.
ARP 요청이 논-스위치 상호 연결 포트에서 발생하기 때문에, ARP 요청을 수신할 때, 스위치 S1은 미리 구성된 플로 테이블 규칙에 따라, ARP 요청을 제어기에 보고한다.
단계 903: 제어기는 국부 ARP 캐시 테이블을 검사하고, 목적지 IP 주소에 대응하는 ARP 엔트리가 존재하지 않는다고 판단하면, 패킷 아웃 메시지를 유니캐스트 방식으로 스위치 S1에 전송하여, 스위치 S1에 ARP 요청을 플러딩하도록 지시한다.
단계 904: ARP 요청을 플러딩하는 프로세스에서, 스위치 S1은 ARP 요청을 인접한 스위치(예를 들어, 스위치 S2)에 전송한다.
또한, 스위치 S1은 ARP 요청을 연결된 호스트(예를 들어, 호스트 A 및 호스트 B)에 전송한다.
단계 905: ARP 요청을 플러딩하는 프로세스에서, 스위치 S2는 ARP 요청을 스위치 S3에 전송한다.
구체적으로는, ARP 요청을 수신할 때, 스위치 S2는, 스위치 S2의 미리 구성된 플로 테이블 규칙에 따라, ARP 요청을 스위치 S1(예를 들어, 스위치 S3)와 상이한 인접한 스위치 및 연결된 호스트(예를 들어, 호스트 C 또는 호스트 D) 모두에 전송한다.
단계 906: ARP 요청을 플러딩하는 프로세스에서, 스위치 S3는 ARP 요청을 연결된 호스트(예를 들어, 호스트 E)에 전송한다.
마찬가지로, ARP 요청을 수신할 때, 스위치 S3는, 스위치 S3의 미리 구성된 플로 테이블 규칙에 따라, ARP 요청을 연결된 호스트 및 스위치 2와 상이한 인접한 스위치 모두에 전송한다.
목적지 IP 주소, 즉 목적지 호스트에 대응하는 호스트가 호스트 E라고 가정하면, 단계 907이 실행된다.
단계 907: 호스트 E는 ARP 응답을 스위치 S3에 반환한다.
단계 908: 스위치 S3는 ARP 응답을 패킷 인 메시지로 캡슐화하고, 패킷 인 메시지를 제어기에 전송한다.
단계 909: 제어기는, ARP 응답을 운반하는 패킷 인 메시지를, ARP 응답을 운반하는 패킷 아웃 메시지로 변환하며, 스위치 S1를 유니캐스트 방식으로, ARP 응답을 운반하는 패킷 아웃 메시지에 전송한다.
단계 910: 스위치 S1은 ARP 응답을 운반하는 패킷 아웃 메시지를 파싱하며, ARP 응답을 유니캐스트 방식으로 호스트 A에 전송한다.
후속 통신 프로세스에서, 호스트 A는 ARP 응답에 포함된 목적지 MAC 주소에 따라 통신을 수행할 수 있다.
시나리오 2: 목적지 IP 주소에 대응하는 ARP 엔트리는 제어기에 국부적으로 존재한다.
도 10을 참조하면, 시나리오 2의 ARP 구현 프로세스는 이하와 같다.
단계 1000: 스위치가 네트워크에 액세스할 때, 제어기는 스위치의 플로 테이블 규칙을 미리 구성한다.
구성된 플로 테이블 규칙은 적어도, 논-스위치 상호 연결 포트로부터(예를 들어, 스위치에 연결된 호스트로부터) ARP 요청을 수신할 때, 스위치가 논-스위치 상호 연결 포트로부터 ARP 요청을 제어기에 보고하는 것과, 인접한 스위치에 의해 전송된 ARP 요청을 수신할 때, 스위치가 인접한 스위치에 의해 전송된 ARP 요청을 플러딩하는 것을 포함한다.
단계 1001: 호스트 A는 ARP 요청을 연결된 스위치 S1에 전송한다.
ARP 요청은 호스트 A가 통신하고자 하는 호스트(즉, 목적지 호스트)의 IP 주소를 포함하며, IP 주소는 목적지 IP 주소이다.
단계 1002: 스위치 S1은 ARP 요청을 패킷 인 메시지로 캡슐화하며, 패킷 인 메시지를 제어기에 보고한다.
ARP 요청을 수신할 때, 스위치 S1은 미리 구성된 플로 테이블 규칙에 따라 ARP 요청을 제어기에 보고한다.
단계 1003: 제어기는 국부 ARP 캐시 테이블을 검사한다. 목적지 IP 주소에 대응하는 ARP 엔트리가 존재하는 것으로 판단되면, 제어기는 목적지 호스트(호스트 E로 가정됨)에 연결된 목적지 스위치(즉, 스위치 S3)를 결정하고, ARP 요청을 패킷 아웃 메시지로 캡슐화하며, 패킷 아웃 메시지를 유니캐스트 방식으로 스위치 S3에 전송한다.
단계 1004: 스위치 S3는 유니캐스트 방식으로 ARP 요청을 호스트 E에 대응하는 포트에 전송한다.
ARP 요청을 수신한 이후에, 호스트 E는 ARP 요청의 목적지 IP 주소를 국부 최종 IP 주소와 일치한다. 이하 프로세스에서는, 매칭 결과에 따라 2가지 상이한 상황을 갖는다. ARP 요청에서 목적지 IP 주소가 국부 최종 IP 주소와 일치하면, 단계 1005' 내지 1008'가 실행된다. 또는 ARP 요청에서 목적지 IP 주소가 국부 최종 IP 주소와 일치하지 않으면, 단계 1005 내지 1012가 실행된다.
단계 1005': 호스트 E는 ARP 응답을 스위치 S3에 반환한다.
단계 1006': 스위치 S3는 ARP 응답을 패킷 인 메시지로 캡슐화하며, 패킷 인 메시지를 제어기에 전송한다.
단계 1007': 제어기는 ARP 응답을 운반하는 패킷 인 메시지를 ARP 응답을 운반하는 패킷 아웃 메시지로 변환하며, 유니캐스트 방식으로 스위치 S1에, ARP 응답을 운반하는 패킷 아웃 메시지를 전송한다.
단계 1008': 스위치 S1은 ARP 응답을 운반하는 패킷 아웃 메시지를 파싱하고, ARP 응답을 유니캐스트 방식으로 호스트 A에 전송한다.
후속 프로세스에서, 호스트 A는 ARP 응답에 포함된 목적지 MAC 주소에 따라 통신을 수행할 수 있다.
단계 1005: 제어기가 특정 지속 기간 이후에 ARP 응답을 수신하지 않으면, 제어기는 목적지 IP에 대응하고 국부적으로 저장된 ARP 엔트리를 삭제하며, 단계 1006이 실행된다.
단계 1006: 제어기는 패킷 아웃 메시지를 유니캐스트 방식으로 스위치 S1에 전송하고, 여기서 패킷 아웃 메시지는 스위치 S1에 ARP 요청을 플러딩하도록 지시하는 데 사용된다.
단계 1007 내지 단계 1013은 시나리오 1에서 단계 904 내지 단계 910과 동일하며, 동일한 상세한 설명은 반복하여 설명되지 않는다.
실시예 5
동일한 발명 개념에 기초하여, 도 11을 참조하면, 본 발명의 실시예 5는 SDN 기반의 ARP 구현 장치를 제공하며, 제1 스위치에 의해 전송된 제1 ARP 요청을 수신하도록 구성된 수신 유닛(1101) - 여기서 제1 ARP 요청은 제1 스위치에 연결된 호스트에 의해 제1 스위치에 전송됨 -; 수신 유닛(1101)에 의해 수신된 제1 ARP 요청에 대응하는 ARP 엔트리가 국부적으로 존재하는지 여부를 판단하도록 구성된 맵핑 유닛(1102); 및 맵핑 유닛(1102)이 제1 ARP 요청에 대응하는 ARP 엔트리가 국부적으로 존재한다고 판단할 때, 제1 스위치가 제1 ARP 요청을 플러딩하도록 지시하는 데 사용되는 제1 명령을 제1 스위치에 전송하도록 구성된 전송 유닛(1103)을 포함한다.
실시예 5를 참조하면, 제1 가능한 구현에서, 제1 명령은 제1 스위치가, 제1 스위치에 인접한 스위치와 제1 스위치에 연결된 호스트 모두에 제1 ARP 요청을 전송하도록 지시하는 데 사용된다.
실시예 5 또는 실시예 5의 제1 가능한 구현을 참조하면, 제2 가능한 구현에서, 장치는 또한, 수신 유닛(1101)이 제1 스위치에 의해 전송된 제1 ARP 요청을 수신하기 이전에, 제1 스위치에 대해 미리 설정한 플로 테이블 규칙을 구성하도록 구성된 구성 유닛을 더 포함하고, 여기서 플로 테이블 규칙은, 인접한 스위치에 의해 전송된 ARP 요청을 수신할 때, 스위치가 인접한 스위치에 의해 전송된 ARP 요청을 플러딩하는 것을 포함한다.
실시예 5 중 임의의 하나, 또는 실시예 5의 제1 내지 제2 가능한 실시예를 참조하여, 제3 가능한 구현에서, 수신 유닛(1101)은 또한, 전송 유닛(1103)이 제1 명령을 제1 스위치에 전송한 이후에, 제1 ARP 응답을 수신하도록 구성되고; 전송 유닛(1103)은 또한, 수신 유닛(1101)에 의해 수신된 제1 ARP 응답을 제1 스위치에 포워딩하도록 구성되며; 맵핑 유닛(1102)은 또한, 수신 유닛(1101)에 의해 수신된 제1 ARP 응답에 ARP 엔트리를 국부적으로 저장하도록 구성된다.
실시예 5 중 임의의 하나, 또는 실시예 5의 제1 내지 제3 가능한 구현을 참조하여, 제4 가능한 구현에서, 맵핑 유닛(1102)은 또한, 제1 ARP 요청에 대응하는 ARP 엔트리가 국부적으로 존재하는 것으로 판단하면, ARP 엔트리에 기초하여 목적지 스위치를 결정하도록 구성되며; 전송 유닛(1103)은 또한, 맵핑 유닛(1102)에 의해 결정된 목적지 스위치에 제1 ARP 요청을 전송하도록 구성된다.
실시예 5의 제4 가능한 구현을 참조하여, 제5 가능한 구현에서, 전송 유닛(1103)이 제1 ARP 요청을 목적지 스위치에 전송한 이후에, 수신 유닛(1101)이 목적지 스위치에 의해 반환된 제2 ARP 응답을 수신하면, 전송 유닛(1103)은 제2 ARP 응답을 제1 스위치에 포워딩거나; 또는 수신 유닛(1101)이 특정 지속 기간 동안 목적지 스위치에 의해 반환된 ARP 응답을 수신하지 않으면, 맵핑 유닛(1102)은 제1 ARP 요청에 대응하고 국부적으로 저장된 ARP 엔트리를 삭제하며, 전송 유닛(1103)은 제1 스위치가 제1 ARP 요청을 플러딩하도록 지시하는 데 사용되는 제2 명령을 제1 스위치에 전송한다. 여기서 제2 명령은, 제1 스위치가 제1 스위치에 인접한 스위치와 제1 스위치에 연결된 호스트 모두에 제1 ARP 요청을 전송하도록 지시하는 데 사용된다.
실시예 5의 제5 가능한 구현을 참조하여, 제6 가능한 구현에서, 전송 유닛(1103)이 제2 명령을 제1 스위치에 전송한 이후에, 수신 유닛(1101)이 제2 스위치에 의해 전송된 제3 ARP 응답을 수신할 때, 맵핑 유닛(1102)은 또한, 제3 ARP 응답에 포함된 ARP 엔트리를 국부적으로 저장하도록 구성되며; 전송 유닛(1103)은 또한, 제3 ARP 응답을 제1 스위치에 포워딩하도록 구성된다.
실시예 6
동일한 발명 개념에 기초하여, 도 12를 참조하면, 본 발명의 실시예 6은 다른 SDN 기반의 ARP 구현 장치를 제공하며, 장치에 연결된 호스트에 의해 전송된 제1 ARP 요청을 수신하도록 구성된 제1 수신 유닛(1201); 제1 수신 유닛(1201)에 의해 수신된 제1 ARP 요청을 제어기에 보고하도록 구성된 전송 유닛(1202); 장치가 제1 ARP 요청을 플러딩하도록 지시하는 데 사용되고, 제1 ARP 요청에 따라 제어기에 의해 전달된 명령을 수신하도록 구성된 제2 수신 유닛(1203); 및 제2 수신 유닛(1203)에 의해 수신된 명령에 따라 제1 ARP 요청을 플러딩하도록 구성된 플러딩 유닛(1204)을 포함한다.
실시예 6을 참조하면, 제1 가능한 구현에서, 플러딩 유닛(1204)은 구체적으로, 제1 ARP 요청을 장치에 인접한 스위치와 장치에 연결된 호스트 모두에 전송하도록 구성된다.
실시예 6 또는 실시예 6의 제1 가능한 구현을 참조하여, 제2 가능한 구현에서, 장치는 또한, 수신 유닛(1201)이 장치에 연결된 호스트에 의해 전송된 제1 ARP 요청을 수신하기 이전에, 제어기에 의해 전달된 플로 테이블 규칙 구성 명령에 따라 플로 테이블 규칙에 대한 구성을 수행하도록 구성되며, 여기서 플로 테이블 규칙은, 인접한 스위치에 의해 전송된 ARP 요청을 수신할 때, 스위치가 인접한 스위치에 의해 전송된 ARP 요청을 플러딩하는 것을 포함한다.
실시예 7
동일한 발명 개념에 기초하여, 도 13을 참조하면, 본 발명의 실시예 7은 다른 SDN 기반의 ARP 구현 장치를 제공하며, 장치에 인접한 제2 스위치에 의해 전송된 제1 ARP 요청을 수신하도록 구성된 수신 유닛(1301); 및 수신 유닛(1301)에 의해 수신된 제1 ARP 요청을 직접 플러딩하도록 구성된 플러딩 유닛(1302)을 포함한다.
실시예 7을 참조하면, 제1 가능한 구현에서, 플러딩 유닛은 구체적으로, 장치와 상이하고 장치에 인접한 스위치 및 장치에 연결된 호스트에 제1 ARP 요청을 전송하도록 구성된다.
실시예 7 또는 실시예 7의 제1 가능한 구현을 참조하면, 제2 가능한 구현에서, 장치는 또한, 수신 유닛(1301)이 제1 스위치에 인접한 제2 스위치에 의해 전송된 제1 ARP 요청을 수신하기 이전에, 제어기에 의해 전달된 플로 테이블 규칙 구성 명령에 따라 플로 테이블 규칙에 대한 구성을 수행하도록 구성된 구성 유닛(1300)을 포함한다. 여기서 플로 테이블 규칙은, 인접한 스위치에 의해 전송된 ARP 요청을 수신할 때, 스위치가 인접한 스위치에 의해 전송된 ARP 요청을 플러딩하며, 연결된 호스트에 의해 전송된 ARP 요청을 수신할 때, 스위치가 연결된 호스트에 의해 전송된 ARP 요청을 제어기에 보고하는 것을 포함한다.
실시예 8
동일한 발명 개념에 기초하여, 도 14를 참조하면, 본 발명의 실시예 8은 트랜시버(1401), 프로세서(1402), 메모리(1403) 및 버스(1404)를 포함하는 제어기(1400)를 제공한다. 트랜시버(1401), 프로세서(1402) 및 메모리(1403)는 버스(1404)에 연결된다. 메모리(1403)는 프로그램 세트를 저장하며, 프로세서(1402)는 메모리(1403)에 저장된 프로그램을 호출하고, 이로써 제어기(1400)가 본 발명의 실시예 1에 따른 방법을 실행하도록 구성된다.
실시예 9
동일한 발명 개념에 기초하여, 도 15를 참조하면, 본 발명의 실시예 9는 트랜시버(1501), 프로세서(1502), 메모리(1503) 및 버스(1504)를 포함하는 스위치(1500)를 제공한다. 트랜시버(1501), 프로세서(1502) 및 메모리(1503)는 버스(1504)에 연결된다. 메모리(1503)는 프로그램 세트를 저장하며, 프로세서(1502)는 메모리(1503)에 저장된 프로그램을 호출하고, 이로써 스위치(1500)가 본 발명의 실시예 2에 따른 방법을 실행하도록 구성된다.
실시예 10
동일한 발명 개념에 기초하여, 도 16을 참조하면, 본 발명의 실시예 10는 트랜시버(1601), 프로세서(1602), 메모리(1603) 및 버스(1604)를 포함하는 스위치(1600)를 제공한다. 트랜시버(1601), 프로세서(1602) 및 메모리(1603)는 버스(1604)에 연결된다. 메모리(1603)는 프로그램 세트를 저장하며, 프로세서(1602)는 메모리(1603)에 저장된 프로그램을 호출하고, 이로써 스위치(1600)가 본 발명의 실시예 3에 따른 방법을 실행하도록 구성된다.
요약하면, 본 발명의 실시예에서, 제어기는 제1 스위치에 의해 전송된 ARP 요청을 수신하고, ARP 요청에 대응하는 ARP 엔트리가 국부적으로 존재하지 않는다고 판단할 때, 제1 스위치가 ARP 요청을 플러딩하도록 지시하는 데 사용되는 명령을 제1 스위치에 전송한다. 이러한 방식으로, ARP 요청은 스위치 간의 메시지 포워딩을 통해 전체 네트워크로 브로드캐스팅될 수 있다. 제어기가 스위치에 패킷 아웃 메시지를 전송하는 것과 비교하면, 메시지가 스위치 간에 포워딩될 때 차지되는 네트워크 전송 자원이 줄어든다. 따라서, ARP 요청을 브로드캐스팅하기 위해 차지된 네트워크 전송 자원이 크게 감소될 수 있으며, ARP 요청을 브로드캐스팅하는 효율이 향상될 수 있다. 또한, 패킷 아웃 메시지를 전송하는 시간량이 감소되기 때문에, 제어기에 대한 처리 부하가 감소되어, 제어기가 상대적으로 과중한 부하로 인해 처리 병목현상이 되는 문제점을 피할 수 있다.
통상의 기술자는 본 발명의 실시예가 방법, 시스템 또는 컴퓨터 프로그램 제품으로서 제공될 수 있음을 이해해야 한다. 따라서, 본 발명은 하드웨어 전용 실시예, 소프트웨어 전용 실시예 또는 소프트웨어와 하드웨어의 조합을 갖는 실시예의 형태를 사용할 수 있다. 또한, 본 발명은 컴퓨터 사용 가능한 프로그램 코드를 포함하는 하나 이상의 컴퓨터 사용 가능한 저장 매체(디스크 메모리, CD-ROM, 광학 메모리 등을 포함하지만 이에 한정되지는 않음) 상에 구현되는 컴퓨터 프로그램 제품의 형태를 사용할 수 있다.
본 발명은 본 발명의 실시예에 따른 방법, 장치(시스템) 및 컴퓨터 프로그램 제품의 플로 차트 및/또는 블록도를 참조하여 설명된다. 플로 차트 및/또는 블록도에서 각각의 프로세스 및/또는 각 블록 및 플로 차트 및/또는 블록도에서 프로세스 및/또는 블록의 조합을 구현하기 위해 컴퓨터 프로그램 명령이 사용될 수 있다는 것을 이해해야 한다. 이들 컴퓨터 프로그램 명령은 머신을 생성하기 위한 범용 컴퓨터, 전용 컴퓨터, 임베디드 프로세서, 또는 임의의 다른 프로그램 가능한 데이터 처리 장치의 프로세서에 제공될 수 있으며, 이로써 컴퓨터 또는 임의의 다른 프로그램 가능한 데이터 처리 장치의 프로세서에 의해 실행되는 명령은 플로 차트의 하나 이상의 프로세스 및/또는 블록도의 하나 이상의 블록에서 특정 기능을 구현하기 위한 장치를 생성한다.
이들 컴퓨터 프로그램 명령은 컴퓨터 또는 임의의 다른 프로그램 가능 데이터 처리 장치가 특정 방식으로 동작하도록 명령할 수 있는 컴퓨터 판독 가능 메모리에 저장될 수 있고, 이로써 컴퓨터 판독 가능 메모리에 저장된 명령은 명령 장치를 포함하는 아티펙트를 생성한다. 명령 장치는 플로 차트의 하나 이상의 프로세스 및/또는 블록도의 하나 이상의 블록에서 특정 기능을 구현한다.
이들 컴퓨터 프로그램 명령은 컴퓨터 또는 다른 프로그램 가능 데이터 처리 장치 상에 로딩될 수 있으며, 이로써 일련의 동작들 및 단계들이 컴퓨터 또는 다른 프로그램 가능 장치 상에서 수행될 수 있어, 컴퓨터 구현 처리를 생성한다. 따라서, 컴퓨터 또는 다른 프로그램 가능 장치에서 실행되는 명령은 플로 차트의 하나 이상의 프로세스 및/또는 블록도의 하나 이상의 블록에서 특정 기능을 구현하는 단계를 제공한다.
본 발명의 일부 바람직한 실시예가 설명되었지만, 통상의 기술자라면 일단 본 발명의 기본 개념을 학습하면 이들 실시예를 변경 및 수정할 수 있다. 따라서, 이하의 청구항은 본 발명의 범위 내에 있는 바람직한 실시예 및 모든 변경 및 수정을 포함하는 것으로 해석되도록 의도된다.
명백한 것은, 통상의 기술자는 본 발명의 실시예의 범위를 벗어나지 않고 본 발명의 실시예에 대한 다양한 변경 및 변형을 할 수 있다는 것이다. 본 발명은 이하의 청구항 및 그 균등한 기술에 의해 정의된 보호 범위 내에 있는 한, 이들 변경 및 변형을 포함하도록 의도된다.

Claims (29)

  1. 제어기에 의해 수행되는, 소프트웨어 정의 네트워킹(SDN: Software defined networking) 기반의 주소 결정 프로토콜(ARP: Address Resolution Protocol) 구현 방법으로서,
    제1 스위치로부터 제1 ARP 요청을 수신하는 단계(700) - 상기 제1 ARP 요청은 상기 제1 스위치에 연결된 호스트에 의해 상기 제1 스위치로 전송됨 -;
    상기 제어기가 상기 제1 ARP 요청에 대응하는 ARP 엔트리가 국부적으로 존재하지 않는다고 판단하면, 상기 제1 스위치가 상기 제1 ARP 요청을 플러딩(flood)하도록 지시하는 데 사용되는 제1 명령을 상기 제1 스위치로 전송하는 단계(710);
    상기 제어기가 상기 제1 ARP 요청에 대응하는 ARP 엔트리가 국부적으로 존재하는 것으로 판단하면, 상기 ARP 엔트리에 기초한 목적지 스위치를 결정하고, 상기 제1 ARP 요청을 상기 목적지 스위치에 전송하고,
    상기 목적지 스위치에 의해 반환되는 제1 ARP 응답이 수신되면, 상기 제1 ARP 응답을 상기 제1 스위치에 포워딩하고,
    상기 목적지 스위치에 의해 반환되는 제1 ARP 응답이 특정 지속 기간 내에 수신되지 않으면, 상기 제1 ARP 요청에 대응하고 국부적으로 저장된 상기 ARP 엔트리를 삭제하고, 상기 제1 스위치에, 상기 제1 스위치가 상기 제1 ARP 요청을 플러딩하도록 지시하는 데 사용되는 제2 명령을 전송하고 - 상기 제2 명령은, 상기 제1 스위치가 상기 제1 ARP 요청을, 상기 제1 스위치에 인접하는 스위치와 상기 제1 스위치에 연결된 상기 호스트 모두에 전송하도록 지시하는 데 사용됨 - ,
    상기 제1 스위치에 상기 제2 명령을 전송한 이후에, 제2 스위치로부터 제2 ARP 응답을 수신할 때, 상기 제2 ARP 응답에 포함된 ARP 엔트리를 국부적으로 저장하고, 그리고 상기 제2 ARP 응답을 상기 제1 스위치에 포워딩하는 단계
    를 포함하는, 소프트웨어 정의 네트워킹(SDN) 기반의 ARP 구현 방법.
  2. 제1항에 있어서,
    상기 제1 명령은 상기 제1 스위치에 인접하는 스위치와 상기 제1 스위치에 연결된 상기 호스트 모두에 상기 제1 ARP 요청을 전송하도록 상기 제1 스위치에 지시하는 데 사용되는, 소프트웨어 정의 네트워킹(SDN) 기반의 ARP 구현 방법.
  3. 제1항에 있어서,
    상기 제1 스위치로부터 제1 ARP 요청을 수신하는 단계 이전에,
    상기 제1 스위치에 대한 미리 설정된 플로 테이블 규칙을 구성하는 단계를 더 포함하고,
    상기 플로 테이블 규칙은, 인접하는 스위치로부터 ARP 요청을 수신할 때, 스위치가 상기 인접하는 스위치에 의해 전송된 상기 ARP 요청을 플러딩하는 것을 포함하는,
    소프트웨어 정의 네트워킹(SDN) 기반의 ARP 구현 방법.
  4. 제1항에 있어서,
    상기 제1 명령을 상기 제1 스위치로 전송하는 단계 이후에,
    제3 ARP 응답을 수신하고, 상기 제3 ARP 응답을 상기 제1 스위치에 포워딩하고, 상기 제3 ARP 응답의 ARP 엔트리를 국부적으로 저장하는 단계를 더 포함하는 소프트웨어 정의 네트워킹(SDN) 기반의 ARP 구현 방법.
  5. SDN 기반의 ARP 구현 장치로서,
    제1항 내지 제4항 중 어느 한 항에 따른 방법을 수행하도록 구성되는 SDN 기반의 ARP 구현 장치.
  6. 삭제
  7. 삭제
  8. 삭제
  9. 삭제
  10. 삭제
  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
KR1020187003345A 2015-07-27 2015-07-27 Sdn 기반의 arp 구현 방법 및 장치 KR102025680B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2015/085215 WO2017015839A1 (zh) 2015-07-27 2015-07-27 一种基于sdn的arp实现方法及装置

Publications (2)

Publication Number Publication Date
KR20180025944A KR20180025944A (ko) 2018-03-09
KR102025680B1 true KR102025680B1 (ko) 2019-09-26

Family

ID=57885691

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187003345A KR102025680B1 (ko) 2015-07-27 2015-07-27 Sdn 기반의 arp 구현 방법 및 장치

Country Status (6)

Country Link
US (1) US10652142B2 (ko)
EP (2) EP3633934A1 (ko)
JP (1) JP6627964B2 (ko)
KR (1) KR102025680B1 (ko)
CN (1) CN108028801B (ko)
WO (1) WO2017015839A1 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107547293B (zh) * 2016-06-29 2020-09-08 新华三技术有限公司 一种流路径探测方法和装置
CN107666428B (zh) * 2016-07-28 2020-03-06 新华三技术有限公司 静默设备探测方法以及装置
EP3504865A1 (en) * 2016-08-24 2019-07-03 British Telecommunications public limited company Data network address sharing
CN108632122B (zh) * 2017-03-20 2022-01-07 中兴通讯股份有限公司 一种实现双控制平面的方法、装置
CN114760249B (zh) * 2021-01-08 2023-08-04 大唐移动通信设备有限公司 一种基于sdn网络的数据处理方法和装置及设备
CN113382008B (zh) * 2021-06-16 2022-03-25 桂林电子科技大学 一种sdn下arp协议的泛洪抑制方法
US11716305B2 (en) 2021-06-29 2023-08-01 Cisco Technology, Inc. Control embedded data packet for efficient ARP query in SDA environment

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140019639A1 (en) * 2011-03-31 2014-01-16 Hiroshi Ueno Computer system and communication method

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US142160A (en) * 1873-08-26 Improvement in check-runners
US10142160B1 (en) 2011-10-04 2018-11-27 Big Switch Networks, Inc. System and methods for managing network hardware address requests with a controller
CN103812779B (zh) 2012-11-08 2018-03-09 华为技术有限公司 洪泛的处理方法、装置
CN102938794B (zh) * 2012-11-14 2016-01-13 华为技术有限公司 地址解析协议arp消息转发方法、交换机和控制器
WO2014115157A1 (en) * 2013-01-24 2014-07-31 Hewlett-Packard Development Comany, L.P. Address resolution in software-defined networks
KR20150030099A (ko) * 2013-09-11 2015-03-19 한국전자통신연구원 주소 결정 시스템 및 방법
US9264362B2 (en) * 2013-10-17 2016-02-16 Cisco Technology, Inc. Proxy address resolution protocol on a controller device
CN108183976A (zh) * 2013-12-13 2018-06-19 华为技术有限公司 地址解析协议消息的处理方法和控制器、转发器
WO2015100656A1 (zh) * 2013-12-31 2015-07-09 华为技术有限公司 一种实现虚拟机通信的方法和装置
JP6260285B2 (ja) 2014-01-10 2018-01-17 富士通株式会社 制御装置および転送制御方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140019639A1 (en) * 2011-03-31 2014-01-16 Hiroshi Ueno Computer system and communication method

Also Published As

Publication number Publication date
JP6627964B2 (ja) 2020-01-08
EP3313031A1 (en) 2018-04-25
US10652142B2 (en) 2020-05-12
JP2018521599A (ja) 2018-08-02
KR20180025944A (ko) 2018-03-09
WO2017015839A1 (zh) 2017-02-02
CN108028801A (zh) 2018-05-11
EP3313031A4 (en) 2018-07-11
EP3633934A1 (en) 2020-04-08
EP3313031B1 (en) 2019-09-25
US20180167313A1 (en) 2018-06-14
CN108028801B (zh) 2021-02-23

Similar Documents

Publication Publication Date Title
KR102025680B1 (ko) Sdn 기반의 arp 구현 방법 및 장치
US10778464B2 (en) NSH encapsulation for traffic steering establishing a tunnel between virtual extensible local area network (VxLAN) tunnel end points (VTEPS) using a NSH encapsulation header comprising a VxLAN header whose VNI field has been replaced by an NSH shim
US9325615B2 (en) Method and apparatus for implementing communication between virtual machines
US9621373B2 (en) Proxy address resolution protocol on a controller device
US11374857B2 (en) Network device management method and apparatus, and system for indicating a network device to perform management operation
US20160330167A1 (en) Arp Implementation Method, Switch Device, and Control Device
JP6544401B2 (ja) パケット転送装置、制御装置、通信システム、通信方法及びプログラム
CN104954281A (zh) 通信方法、***、资源池管理***、交换机和控制装置
CN112491701B (zh) 转发报文方法和装置
CN104618194A (zh) 软件定义网络报文监控方法和sdn控制器、交换设备
KR101938623B1 (ko) 오픈 플로우 통신 방법, 시스템, 제어기 및 서비스 게이트웨이
WO2015143879A1 (zh) 发送组播报文的方法及交换机
TWI759571B (zh) 基於流表的資料傳送方法
KR101786620B1 (ko) 소프트웨어 정의 네트워크에서 서브넷을 지원하는 방법, 장치 및 컴퓨터 프로그램
JP2017503407A (ja) パケット処理方法および装置
CN109743250B (zh) 组播报文的传输方法、第一网络设备和第二网络设备
EP3503484B1 (en) Message transmission methods and devices
CN106230730B (zh) 一种组播传输方法和装置
CN108833284B (zh) 一种云平台和idc网络的通信方法及装置
WO2016082573A1 (zh) 一种堆叠***的报文转发方法、装置及堆叠设备
CN111385215B (zh) 传输报文的方法和装置
CN109167731B (zh) 报文发送方法及装置
JP2019024266A (ja) パケット処理方法および装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right