KR102181554B1 - 논리적 라우터 - Google Patents

논리적 라우터 Download PDF

Info

Publication number
KR102181554B1
KR102181554B1 KR1020207005714A KR20207005714A KR102181554B1 KR 102181554 B1 KR102181554 B1 KR 102181554B1 KR 1020207005714 A KR1020207005714 A KR 1020207005714A KR 20207005714 A KR20207005714 A KR 20207005714A KR 102181554 B1 KR102181554 B1 KR 102181554B1
Authority
KR
South Korea
Prior art keywords
mpre
network
host
address
lif
Prior art date
Application number
KR1020207005714A
Other languages
English (en)
Other versions
KR20200024343A (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 KR20200024343A publication Critical patent/KR20200024343A/ko
Application granted granted Critical
Publication of KR102181554B1 publication Critical patent/KR102181554B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/58Association of routers
    • H04L45/586Association of routers of virtual routers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/44Distributed routing
    • 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/741Routing in networks with a plurality of addressing schemes, e.g. with both IPv4 and IPv6
    • 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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Abstract

일부 실시예들은 여러 가상 머신들을 호스팅하기 위한 여러 호스트 머신들과 호스트 머신들을 상호연결하기 위한 물리적 네트워크를 포함하는 시스템을 제공한다. 각각의 호스트 머신은 호스트 머신상에서 실행되는 한 세트의 가상 머신들에 및 이들로부터의 패킷들의 링크 계층 포워딩을 수행하기 위한 여러 포트들을 포함하는 MPSE(managed physical switching element)를 포함한다. 각각의 포트는 고유 MAC(media access control) 어드레스와 연관된다. 각각의 호스트 머신은 MPSE의 포트로부터 데이터 패킷을 수신하고 이 수신된 데이터 패킷을 제1 네트워크 세그먼트의 제1 가상 머신으로부터 제2 네트워크 세그먼트의 제2 가상 머신으로 포워딩하기 위해 네트워크 계층 라우팅을 수행하기 위한 MPRE(managed routing element)를 포함한다.

Description

논리적 라우터{LOGICAL ROUTER}
네트워크 가상 환경에서, 하이퍼바이저들상에 전개되는 아주 흔한 공통 애플리케이션들 중 하나는 웹-계층(web-tier), 데이터베이스-계층, 및 앱-계층(app-tier)이 상이한 L3 서브넷상에 있는 3-계층 앱이다. 이것은 IP 패킷들이 L3 라우터에 먼저 도달하고, 이후 목적지 VM으로 포워딩되기 위해 하나의 서브넷에서의 하나의 가상 머신(VM)으로부터 다른 서브넷에서의 다른 VM으로 트래버스하는 것을 요구한다. 이것은 목적지 VM이 발신 VM과 동일한 호스트 머신상에 호스팅된다고 할지라도 사실이다.
이것은 불필요한 네트워크 트래픽을 발생시키고, 더 높은 대기 시간과 더 낮은 처리량의 원인이 되는데, 이것은 하이퍼바이저들상에서 실행되는 애플리케이션의 성능을 현저하게 저하시킨다. 일반적으로 말하면, 이 성능 저하는 2개의 상이한 IP 서브넷들에 있는 임의의 2개의 VM이 서로 통신할 때마다 발생한다.
도 1은 네트워크 가상 기반 구조를 통해 구현되는 논리적 네트워크(100)를 예시하며, 여기서 상이한 세그먼트들 또는 서브넷상의 가상 머신(VM)들은 공유된 라우터(110)를 통해 통신한다. 예시된 바와 같이, VM들(121-129)은 물리적 네트워크(105)에 의해 통신가능하게 링크되는 물리적 머신들인 호스트 머신들(131-133)상에서 실행되고 있다.
VM들은 네트워크의 상이한 세그먼트들에 있다. 특히, VM들(121-125)은 네트워크의 세그먼트 A에 있고, VM들(126-129)은 네트워크의 세그먼트 B에 있다. 네트워크의 동일 세그먼트들에 있는 VM들은 링크 계층(L2) 프로토콜들에 의해 서로 통신할 수 있는 반면, 네트워크의 상이한 세그먼트들에 있는 VM들은 링크 계층 프로토콜들에 의해 서로 통신할 수 없으며 네트워크 계층(L3) 라우터들 또는 게이트웨이들을 통하여 서로 통신해야만 한다. 상이한 호스트 머신들에서 동작하는 VM들은 그들이 동일한 네트워크 세그먼트에 있든지 없든지간에 물리적 네트워크(105)에서의 네트워크 트래픽을 통해 서로 통신한다.
호스트 머신들(131-133)은 소프트웨어 스위치들을 구현하는 하이퍼바이저들을 실행하고 있는데, 이것은 동일한 호스트 머신 내의 동일한 세그먼트에 있는 VM들이 물리적 네트워크(105)를 통하지 않고 서로 로컬로 통신할 수 있게 한다. 그러나, 상이한 세그먼트들에 속하는 VM들은 공유된 라우터(110)와 같은 L3 라우터를 통과해야만 하는데, 공유된 라우터는 물리적 네트워크 배후에서만 도달될 수 있다. 이것은 심지어 동일 호스트 머신에서 동작하고 있는 VM들 사이에서도 사실이다. 예를 들어, VM(125)와 VM(126) 간의 트래픽은 이들이 둘 다 호스트 머신(132)상에서 동작하고 있다고 할지라도 물리적 네트워크(105)와 공유된 라우터(110)를 통과해야만 한다.
필요한 것은 VM들이 실행될 수 있는 모든 호스트에서 L3 패킷들을 포워딩하기 위한 분산 라우터(distributed router)이다. 분산된 라우터는 출발지 VM과 목적지 VM 간에 정확하게 하나의 홉이 존재하도록 데이터 패킷들을 로컬로(즉, 발신 하이퍼바이저에서) 포워딩할 수 있게 하여야 한다.
가상 네트워크 환경에서 호스트 머신들상에서 실행되는 논리적 네트워크의 가상 머신(VM)들 간에 L3 패킷 포워딩을 용이하게 하기 위해, 일부 실시예들은 논리적 네트워크를 위한, 논리적 라우터, 또는 LRE(logical routing element)를 정의한다. 일부 실시예들에서, LRE는 VDR(virtual distributed router)로서 그것의 논리적 네트워크의 호스트 머신들 전체에 걸쳐서 분산적으로 동작하며, 여기서 각각의 호스트 머신은 해당 호스트상에서 실행되는 VM들을 위한 L3 패킷 포워딩을 수행하기 위해 LRE의 자기 자신의 로컬 인스턴스를 MPRE(managed physical routing element)로서 작동시킨다. 일부 실시예들에서, MPRE는 동일 호스트 머신상에서 실행되는 VM들 간의 패킷들의 L3 포워딩이 물리적 네트워크를 통과해야만 할 필요없이 호스트 머신에서 로컬로 수행되게 한다. 일부 실시예들은 상이한 테넌트(tenant)들에 대한 상이한 LRE들을 정의하고, 한 호스트 머신은 상이한 LRE들을 다중 MPRE들로서 작동시킬 수 있다. 일부 실시예들에서, 한 동일 호스트 머신상에서 실행되는 상이한 테넌트들에 대한 상이한 MPRE들은 한 MPSE(managed physical switching element)상의 동일 포트와 동일 L2 MAC 어드레스를 공유한다.
일부 실시예들에서, LRE는 각각이 네트워크의 특정 세그먼트에 대한 인터페이스의 역할을 하는 하나 이상의 LIF(logical interface)를 포함한다. 일부 실시예들에서, 각각의 LIF는 그 자신의 IP 어드레스에 의해 어드레스될 수 있고 네트워크의 그 특정 세그먼트의 네트워크 노드들(예를 들어, VM들)에 대한 디폴트 게이트웨이 또는 ARP 프록시의 역할을 한다. 각각의 네트워크 세그먼트는 LRE에 대한 그 자신의 논리적 인터페이스를 가지고, 각각의 LRE는 그 자신의 논리적 인터페이스들의 세트를 갖는다. 각각의 논리적 인터페이스는 네트워크 가상 기반 구조 내에서 고유한 그 자신의 식별자(예를 들어, IP 어드레스 또는 오버레이 네트워크 식별자)를 갖는다.
일부 실시예들에서, 그러한 논리적 라우터들을 사용하는 논리적 네트워크는 상이한 호스트 머신들에서 동작하는 MPRE들이 모든 VM들에 동일하게 나타나게 함으로써 네트워크 가상화를 향상시킨다. 이 실시예들 중 일부에서, 각각의 LRE는 시스템에서 모든 LRE들에 대해 동일한 VMAC(virtual MAC) 어드레스에 의해 L2 데이터 링크 계층에서 어드레스 가능하다. 각각의 호스트 머신은 고유 PMAC(physical MAC) 어드레스와 연관된다. 특정 LRE를 구현하는 각각의 MPRE는 물리적 네트워크를 통해 다른 호스트 머신들에 의해 그 자신의 호스트 머신의 고유 PMAC에 의해 고유하게 어드레스될 수 있다. 일부 실시예들에서, MPRE를 떠난 각각의 패킷은 VMAC를 출발지 어드레스로서 가지고, 호스트 머신은 패킷이 PNIC에 진입하고 호스트를 떠나 물리적 네트워크로 가기 전에 출발지 어드레스를 고유 PMAC로 변경할 것이다. 일부 실시예들에서, MPRE에 진입하는 각각의 패킷은 VMAC를 목적지 어드레스로서 가지고, 호스트는 목적지 어드레스가 호스트와 연관되는 고유 PMAC 어드레스인 경우 목적지 MAC 어드레스를 일반 VMAC로 변경할 것이다. 일부 실시예들에서, 네트워크 세그먼트의 LTF는 그 네트워크 세그먼트에 있는 VM들에 대한 디폴트 게이트웨이의 역할을 한다. 그 LIF들 중 하나를 위한 ARP 질의를 수신하는 MPRE는 질의를 다른 호스트 머신들에 포워딩하지 않고 로컬로 질의에 응답한다.
가상화 소프트웨어를 실행하지 않거나 MPRE를 구동하지 않는 물리적 호스트 머신들을 위한 L3 계층 라우팅을 수행하기 위해, 일부 실시예들은 호스트 머신상에서 실행되는 MPRE가 이들 비-VDR 호스트 머신들 각각에 대해 전용 라우팅 에이전트(지정된 인스턴스 또는 지정된 MPRE)의 역할을 하도록 지정한다. 일부 실시예들에서, 가상 머신들로부터 물리적 호스트로의 데이터 트래픽은 개별 MPRE들에 의해 수행되는 반면, 물리적 호스트로부터 가상 머신들로의 데이터 트래픽은 지정된 MPRE를 통과해야만 한다.
일부 실시예들에서, 호스트 머신에 있는 적어도 하나의 MPRE가 브릿지 MPRE(bridging MPRE)로서 구성되고, 그러한 브릿지는 라우팅이라기 보다는 브릿지를 위해 구성되는 논리적 인터페이스들을 포함한다. 라우팅을 위해 구성되는 논리적 인터페이스(라우팅 LIF들)는 L3 계층 네트워크 어드레스를 L2 MAC 어드레스로 주소분해(resolve)함으로써 논리적 네트워크의 상이한 세그먼트들 간에 L3 레벨 라우팅을 수행한다. 브릿지를 위해 구성되는 논리적 인터페이스(브릿지 LIF들)는 MAC 어드레스를 네트워크 세그먼트 식별자(예를 들어, VNI) 또는 논리적 인터페이스와 바인딩함으로써 브릿지를 수행한다.
일부 실시예들에서, 상술한 바와 같이 호스트 머신들에서 동작하는 LRE들은 제어기들의 클러스터에 의해 생성되는 구성 데이터 세트들에 의해 구성된다. 일부 실시예들에서의 제어기들은 다음 차례로 상이한 테넌트들 또는 사용자들에 의해 생성되어 특정되는 논리적 네트워크들에 기초하여 이들 구성 데이터 세트들을 생성한다. 일부 실시예들에서, 네트워크 가상 기반 구조를 위한 네트워크 매니저는 사용자들이 네트워크 가상 기반 구조에 걸쳐서 구현될 수 있는 상이한 논리적 네트워크들을 생성할 수 있게 하고, 이후 이러한 논리적 네트워크들의 파라미터들을 제어기들에 푸시(push)하여서 제어기들이 LRE들에 대한 구성 데이터를 포함하는, 호스트 머신 특정 구성 데이터 세트들을 생성할 수 있게 한다. 일부 실시예들에서, 네트워크 매니저는 호스트 머신들에게 LRE들에 대한 구성 데이터를 페치하기 위한 명령어들을 제공한다.
일부 실시예들은 LRE들에 대한 라우팅 정보를 동적으로 컬렉션하여 전달한다. 일부 실시예들에서, 에지 VM은 다른 라우터들로부터 네트워크 경로들을 학습하고 이 학습된 경로들을 제어기들의 클러스터에 전달하고, 이것은 다음 차례로 호스트 머신들에서 동작하는 LRE들에게 학습된 경로들을 전파시킨다.
이상의 요약은 본 발명의 일부 실시예들에 대한 간략한 소개로서의 역할을 하기 위한 것이다. 본 문서에 개시된 모든 발명의 주제의 소개 또는 개요인 것으로는 의도되지 않는다. 후속하는 상세한 설명과 이 상세한 설명에서 언급되는 도면들은 요약에 기술된 실시예들 뿐만 아니라 기타 실시예들을 추가로 기술할 것이다. 따라서, 본 문서에 기술되는 모든 실시예를 이해하기 위해서는, 요약, 상세한 설명 및 도면들을 완전히 검토하는 것이 필요하다. 게다가, 청구된 주제들은 요약, 상세한 설명 및 도면들에서의 예시적 상세 사항에 의해 제한되어서는 안되고, 오히려 첨부된 청구항들에 의해 한정되어야 하는데, 그 이유는 청구된 주제들이 주제의 사상을 벗어나지 않고 다른 특정 형태들로 구현될 수 있기 때문이다.
본 발명의 새로운 특징이 첨부된 청구항들에 제시되어 있다. 그러나, 설명을 위해, 본 발명의 몇가지 실시예가 이하의 도면에 제시되어 있다.
도 1은 네트워크 가상 기반 구조를 통해 구현되는 논리적 네트워크를 예시하는 것으로, 여기서 상이한 세그먼트들 또는 서브넷들 상의 가상 머신(VM)들은 공유된 라우터를 통해 통신한다.
도 2는 로컬로 호스트 머신들의 MPRE들로서 동작하는 LRE에 의해 수행되는 패킷 포워딩 동작들을 예시한다.
도 3은 LRE들에 대한 MPRE들을 작동시키는 가상화 소프트웨어를 실행하는 호스트 머신을 예시한다.
도 4는 MPSE에 의한 L2 포워딩 동작들을 예시한다.
도 5a 및 도 5b는 MPSE와 결합되는 MPRE에 의한 L3 라우팅 동작을 예시한다.
도 6a 및 도 6b는 호스트의 외부로부터의 패킷들에 대해 MPRE에 의해 수행되는 L3 라우팅 동작들을 예시한다.
도 7은 상이한 호스트 머신들 전체에 걸쳐서 MPRE들에 의해 구현되는 LRE들을 갖는 논리적 네트워크들을 개념적으로 예시한다.
도 8은 네트워크 가상 기반 구조의 호스트 머신들의 MPRE들의 물리적 구현을 예시한다.
도 9는 상이한 세그먼트들의 가상 머신들로부터의 데이터 패킷들이 호스트 내에서 상이한 논리적 인터페이스측으로 어떻게 향하는지를 예시한다.
도 10은 호스트 머신에서 동작하는 예시적인 MPRE의 블록도를 예시한다.
도 11은 MPSE로부터 데이터 패킷을 처리할 때 MPRE에 의해 수행되는 프로세스를 개념적으로 예시한다.
도 12은 일부 실시예들을 위한 공통 VMAC와 고유 PMAC들에 의해 어드레스될 수 있는 MPRE들을 갖는 논리적 네트워크를 예시한다.
도 13은 공통 VMAC와 고유 PMAC를 이용하는 예시적인 라우팅된 L3 네트워크 트래픽을 예시한다.
도 14는 업링크 모듈에 의해 수행되는 전처리 동작들을 위한 프로세스를 개념적으로 예시한다.
도 15는 업링크 모듈에 의해 수행되는 전처리 동작들을 위한 프로세스를 개념적으로 예시한다.
도 16은 논리적 네트워크에서 LRE들의 논리적 인터페이스들을 위한 ARP 질의 동작들을 예시한다.
도 17은 일부 실시예들을 위한 MPRE 개시 ARP 질의를 예시한다.
도 18은 MPRE가 주소분해할 수 있는 ARP 조회에 응답하기 위한 프록시로서 동작하는 MPRE를 예시한다.
도 19는 동일 호스트 머신에 있는 가상 머신에 대한 ARP 조회의 고유 PMAC를 송신기 MPRE로서 사용하는 것을 예시한다.
도 20 및 도 21은 MPRE들이 그들의 주소분해 테이블(resolution table)들을 갱신한 이후에 상이한 세그먼트들의 VM들 간의 메시지 전달 동작들을 예시한다.
도 22은 MPRE들을 이용하여 인커밍 데이터 패킷을 위한 주소분해(address resolution)를 다루기 위한 프로세스를 개념적으로 예시한다.
도 23은 물리적 호스트에의 그리고 물리적 호스트로부터의 패킷들의 L3 라우팅을 다루기 위한 MPRE를 지정하는 논리적 네트워크를 예시한다.
도 24는 논리적 네트워크에서 비-VDR 물리적 호스트에 의해 개시되는 ARP 동작을 예시한다.
도 25는 상이한 호스트들상의 가상 머신들로부터 물리적 호스트로의 패킷들의 라우팅을 위한 지정된 MPRE의 사용을 예시한다.
도 26a 및 도 26b는 물리적 호스트로부터 상이한 호스트들상의 가상 머신들로의 패킷들의 라우팅을 위한 지정된 MPRE의 사용을 예시한다.
도 27은 비-VDR 물리적 호스트로부터의 L3 계층 트래픽을 다루기 위한 프로세스를 개념적으로 예시한다.
도 28은 비-VDR 물리적 호스트로의 L3 계층 트래픽을 다루기 위한 프로세스(2800)를 개념적으로 예시한다.
도 29는 상이한 오버레이 네트워크들 간에 브릿지의 역할을 하기 위한 브릿지 LIF들을 포함하는 LRE를 예시한다.
도 30은 다중 호스트 머신들을 포함하는 논리적 네트워크를 예시하며, 다중 호스트 머신들 중 적어도 하나는 브릿지 LIF들로서 구성되는 논리적 인터페이스들을 갖는 MPRE를 갖는 호스트 머신이다.
도 31은 MPRE에 의한 MAC 어드레스의 학습을 예시한다.
도 32는 MPRE에 의한 이전에 학습된 MAC-VNI 페어링을 이용하는 2개의 상이 오버레이 네트워크상의 2개의 VM들 간의 브릿지를 예시한다.
도 33은 브릿지 MPRE와 동일한 호스트에서 동작하고 있지 않은 2개의 VM 간의 브릿지를 예시한다.
도 34a는 목적지 MAC 어드레스가 브릿지 테이블에서 매칭하는 엔트리를 가지고 있지 않고 MPRE는 페어링을 찾기 위해 네트워크를 플러드(flood)해야만 하는 브릿지 동작을 예시한다.
도 34b는 플러딩(flooding)에 대한 응답으로부터의 MAC 어드레스 페어링의 학습을 예시한다.
도 35는 MPRE에서 브릿지를 수행하기 위한 프로세스를 개념적으로 예시한다.
도 36은 논리적 네트워크 사양들이 호스트 머신들에서 LRE들을 위한 구성들로 변환되는 네트워크 가상 기반 구조를 예시한다.
도 37은 네트워크 매니저로부터 개별적인 호스트 머신들에서 동작하는 LRE들로의 구성 데이터의 전달을 개념적으로 예시한다.
도 38은 개별적인 호스트 머신들에게 전달되는 구성 데이터 세트들의 구조를 예시한다.
도 39는 LRE들의 MPRE들에의 동적 라우팅 정보의 컬렉션 및 전달을 예시한다.
도 40은 본 발명의 일부 실시예들이 구현되는 전자식 시스템을 개념적으로 예시한다.
아래의 설명에서는 설명의 목적을 위해 다양한 상세들이 제시되어 있다. 그러나, 본 분야의 통상의 기술자는 이러한 상세한 설명을 이용하지 않고도 본 발명을 실시할 수 있음을 인식할 것이다. 다른 경우에, 본 발명의 설명을 불필요한 상세로 인해 불명료하게 하지 않기 위해, 공지의 구조들 및 디바이스들은 블록도 형태로 도시되어 있다.
가상 네트워크 환경에서 호스트 머신들상에서 실행되는 논리적 네트워크의 가상 머신(VM)들 간의 L3 패킷 포워딩을 용이하게 하기 위해, 일부 실시예들은 논리적 네트워크를 위한, 논리적 라우터, 또는 LRE를 정의한다. 일부 실시예들에서, LRE는 VDR로서 그것의 논리적 네트워크의 호스트 머신들 전체에 걸쳐서 분산적으로 동작하며, 여기서 각각의 호스트 머신은 그 호스트상에서 실행되는 VM들이 L3 패킷 포워딩을 수행하기 위한 MPRE로서 LRE의 그 자신의 로컬 인스턴스를 작동시킨다. 일부 실시예들에서, MPRE는 동일 호스트 머신상에서 실행되는 VM들 간의 패킷들의 L3 포워딩이 물리적 네트워크를 통과하지 않고 호스트 머신에서 로컬로 수행되게 한다. 일부 실시예들은 상이한 테넌트들에 대한 상이한 LRE들을 정의하고, 호스트 머신은 상이한 LRE들을 다중 MPRE들로서 동작시킬 수 있다. 일부 실시예들에서, 동일 호스트 머신상에서 실행되는 상이한 테넌트들에 대한 상이한 MPRE들은 MPSE상에서 동일 포트와 동일 L2 MAC 어드레스를 공유한다.
일부 실시예들에 대해, 도 2는 호스트 머신들에서 MPRE들로서 로컬로 동작하는 LRE에 의해 수행되는 패킷 포워딩 동작들을 예시한다. 각각의 호스트 머신은 하나 이상의 VM들을 호스팅하기 위해 가상화 기능들을 수행하고 또한 교환 기능들을 수행하여 VM들이 네트워크 가상 기반 구조에서 서로 통신할 수 있게 한다. 각각의 MPRE는 2개의 VM이 상이한 네트워크 세그먼트들에 속할 경우에도, 동일 호스트 머신상의 2개의 VM 간의 트래픽이 항상 로컬로 수행될 수 있도록 그 호스트 머신 내에서 로컬로 L3 라우팅 동작들을 행한다.
도 2는 VM들(221-229) 간의 네트워크 통신을 위한 논리적 네트워크(200)의 구현을 예시한다. 논리적 네트워크(200)는 물리적 네트워크(205)에 의해 상호연결되는 컴퓨팅 및 스토리지 리소스의 컬렉션에 걸쳐서 가상화된 네트워크이다. 상호연결된 컴퓨팅 및 스토리지 리소스와 물리적 네트워크의 이 컬렉션은 네트워크 가상 기반 구조를 형성한다. VM들(221-229)은 물리적 네트워크(205)에 의해 통신가능하게 링크되는 호스트 머신들(231-233)에 의해 호스팅된다. 각각의 호스트 머신들(231-233)은, 일부 실시예들에서, VM들을 생성 및 호스팅할 수 있는 운영 체제(예를 들어, 리눅스)에 의해 관리되는 컴퓨팅 디바이스이다. VM들(221-229)은 한 세트의 네트워크 어드레스들(예를 들어, L2를 위한 MAC 어드레스, L3를 위한 IP 어드레스, 기타 등등)을 각각 할당받고 또한 다른 VM들과 같은 다른 네트워크 엘리먼트들에 그리고 다른 네트워크 엘리먼트들로부터 네트워크 데이터를 송신 및 수신할 수 있는 가상 머신들이다.
VM들은 호스트 머신들(231-233)상에서 실행되는 가상화 소프트웨어(도시 생략)에 의해 관리된다. 가상화 소프트웨어는 "가상 머신 모니터들", "하이퍼바이저들" 또는 가상화 커널들로서 가상 머신 기술의 분야에서 알려진 소프트웨어 컴포넌트들 중 하나 이상을 가능한 대로 포함하는, 하나 이상의 소프트웨어 컴포넌트들 및/또는 계층들을 포함할 수 있다. 가상화 전문 용어는 시간이 지나면서 진화하였고 아직 완벽하게 표준화되지는 않았기 때문에, 이 용어들은 이들이 언급하는 소프트웨어 계층들과 컴포넌트들 간의 명확한 구분을 항상 제공하지는 못한다. 본 명세서에서 사용되는 바와 같이, 용어 "가상화 소프트웨어"는 가상 머신과 호스트 플랫폼 간에 논리적으로 기재되는 소프트웨어 계층 또는 컴포넌트를 일반적으로 지칭하는 것으로 의도된다.
도 2의 예에서, 각각의 VM은 논리적 네트워크(200)의 2개의 세그먼트 중 하나에서 동작한다. VM들(221-225)은 세그먼트 A에서 동작하지만, VM들(226-229)은 세그먼트 B에서 동작한다. 일부 실시예들에서, 네트워크 세그먼트는 네트워크 엘리먼트들이 IP 서브넷과 같이 링크 계층 L2 프로토콜들에 의해 그 내에서 서로 통신하는 네트워크의 일부이다. 일부 실시예들에서, 네트워크 세그먼트는 VXLAN 또는 VLAN과 같은 캡슐화 오버레이 네트워크이다.
일부 실시예들에서, 네트워크의 동일한 세그먼트들에 있는 VM들은 (예를 들어, 각각의 VM의 L2 MAC 어드레스에 따라) 링크 계층(L2) 프로토콜과 서로 통신할 수 있는 한편, 네트워크의 상이한 세그먼트들에 있는 VM들은 링크 계층 프로토콜과 서로 통신할 수 없으며 네트워크 계층(L3) 라우터들 또는 게이트웨이들을 통해 서로 통신해야만 한다. 일부 실시예들에서, VM들 간의 L2 레벨 트래픽은 각각의 호스트 머신 내에서 로컬로 동작하는 MPSE들(도시 생략)에 의해 다루어진다. 따라서, 예를 들어, VM(223)으로부터 VM(224)으로의 네트워크 트래픽은 그 포트들 중 하나로부터 데이터를 수신하고 물리적 네트워크(205)를 통해 데이터를 송신하는, 호스트(231)에서 동작하는 제1 MPSE를 통과해서, 호스트 머신(232)에서 동작하는 제2 MPSE에 나아갈 것인데, 이것은 이후 그 포트들 중 하나를 통해 VM(224)에 데이터를 송신한다. 마찬가지로, VM(228)에서 VM(229)로의 동일-세그먼트 네트워크 트래픽은 호스트(233)에서 동작하는 단일 MPSE를 통과할 것인데, 이것은 하나의 가상 포트로부터 다른 가상 포트로 로컬로 호스트(233) 내에서 트래픽을 포워드한다.
상이한 네트워크 세그먼트들 간의 트래픽을 다루기 위해 (표준 물리적 라우터, 특히 라우팅 기능성 등을 수행하기 위한 VM, 기타 등등으로서 구현될 수 있는) 외부 L3 라우터에 의존하는 구현인, 도 1의 논리적 네트워크(100)과는 달리, 도 2의 논리적 네트워크(200)의 구현은 각각 호스트 머신들(231-233) 내에서 L3 라우팅 기능들을 로컬로 수행하기 위해 MPRE들(241-243)을 이용한다. 상이한 호스트 머신들의 MPRE들은 논리적 네트워크(200)에서 VM들을 위한 논리적 L3 라우터의 기능을 공동으로 수행한다. 일부 실시예들에서, LRE는 그들의 MPRE들이 되기 위해 상이한 호스트 머신들 전체에 걸쳐서 복제되거나 인스턴스화되는 데이터 구조로서 구현된다. 도 2의 예에서, LRE는 MPRE들(241-243)로서 호스트 머신들(231-233)에 인스턴스화되어 있다.
도 2의 예에서, VM(222)으로부터 발신되어 VM(227)을 목적지로 하는 네트워크 트래픽의 L3 라우팅은 MPRE(241)에 의해 다뤄지고, 이것은 VM(222)을 호스팅하는 호스트 머신(231)상에 로컬로 실행되는 LRE 인스턴스이다. MPRE(241)는 라우팅된 데이터 패킷을 물리적 네트워크(205)를 통해 VM(227)에 전달하기 전에 호스트(231) 내에서 L3 계층 라우팅 동작들(예를 들어, 링크 계층 어드레스 주소분해)을 로컬로 수행한다. 이것은 외부의 공유된 L3 라우터없이 행해진다. 마찬가지로, VM(225)으로부터 발신되어 VM(226)을 목적지로 하는 네트워크 트래픽의 L3 라우팅은 MPRE(242)에 의해 다뤄지고, 이것은 VM(225)을 호스팅하는 호스트 머신(232)상에 로컬로 실행되는 LRE 인스턴스이다. MPRE(242)는 호스트(232) 내에서 로컬로 L3 계층 라우팅 동작들을 수행하고, 호스트 머신(232)에 의해 또한 호스팅되는, VM(226)에게 직접적으로 라우팅된 데이터 패킷을 전달한다. 따라서, 2개의 VM들(225 및 226) 간의 트래픽은 물리적 네트워크(205) 또는 외부 라우터를 통해 송신될 필요가 없다.
본 발명의 몇가지 보다 구체적인 실시예들은 이하 기술되어 있다. 섹션 I는 LRE-기반 MPRE들을 구현하는 VDR 및 호스트들의 아키텍처를 기술한다. 섹션 II는 패킷 처리를 위한 VDR의 다양한 이용들을 기술한다. 섹션 III는 VDR의 제어 및 구성을 기술한다. 최종적으로, 섹션 IV는 본 발명의 일부 실시예들이 구현되는 전자식 시스템을 기술한다.
I. VDR의 아키텍처
일부 실시예들에서, LRE는 (예를 들어, 다중-테넌트 데이터 센터 내에서) 하나 이상의 VM들을 호스팅하는 호스트 머신상에서 실행되는 가상화 소프트웨어(예를 들어, 하이퍼바이저, 가상 머신 모니터, 기타 등등) 내에서 동작한다. 가상화 소프트웨어는 VM들의 동작들 뿐만 아니라 호스트 머신의 물리적 리소스들 및 네트워크 리소스들에 대한 그들의 액세스를 관리하고, LRE의 로컬 인스턴스는 호스트 머신에서 로컬 MPRE로서 동작한다. 일부 실시예들에 대해, 도 3은 LRE의 MPRE를 포함하는 가상화 소프트웨어(305)를 실행하는 호스트 머신(300)을 예시한다. 호스트 머신은 물리적 네트워크(390)를 통해, 예를 들어 다른 유사한 호스트 머신들에 연결된다. 이 물리적 네트워크(390)는 일부 실시예들에서, 다양한 물리적 스위치들과 라우터들을 포함할 수 있다.
예시된 바와 같이, 호스트 머신(300)은 물리적 NIC(PNIC)(395)를 통해 물리적 네트워크(390)에 액세스한다. 호스트 머신(300)은 또한 가상화 소프트웨어(305)를 실행하고 VM들(311-314)을 호스팅한다. 가상화 소프트웨어(305)는 호스팅된 VM들과 물리적 NIC(395)(뿐만 아니라 프로세서들과 메모리와 같은, 다른 물리적 리소스들) 간에 인터페이스의 역할을 한다. 각각의 VM들은 가상화 소프트웨어(305)를 통해 네트워크에 액세스하기 위한 가상 NIC(VNIC)를 포함한다. VM의 각각의 VNIC는 VM과 가상화 소프트웨어(305) 간에 패킷들을 교환하는 것을 담당한다. 일부 실시예들에서, VNIC들은 가상 NIC 에뮬레이터들에 의해 구현되는 물리적 NIC들의 소프트웨어 추상화들이다.
가상화 소프트웨어(305)는 (일부 실시예들에서, VM들이 연결된 논리적 네트워크들을 구현함으로써) VM들(311-314)의 동작들을 관리하고, VM들의 물리적 네트워크에의 액세스를 관리하기 위한 여러 컴포넌트들을 포함한다. 예시된 바와 같이, 가상화 소프트웨어는 MPSE(320), MPRE(330), 제어기 에이전트(340), VTEP(350) 및 한 세트의 업링크 파이프라인들(370)을 포함하는 여러 컴포넌트를 포함한다.
제어기 에이전트(340)는 제어기 또는 제어기들의 클러스터로부터 제어 평면 메시지들을 수신한다. 일부 실시예들에서, 이러한 제어 평면 메시지는 가상화 소프트웨어(예를 들어, MPSE(320)와 MPRE(330)) 및/또는 가상 머신들의 다양한 컴포넌트들을 구성하기 위한 구성 데이터를 포함한다. 도 3에 예시된 예에서, 제어기 에이전트(340)는 물리적 네트워크(390)로부터 제어기 클러스터(360)로부터의 제어 평면 메시지들을 수신하고, 다음 차례로 MPSE(320)를 통과하는 일 없이 제어 채널을 통해 수신된 구성 데이터를 MPRE(330)에게 제공한다. 그러나, 일부 실시예들에서, 제어기 에이전트(340)는 물리적 네트워크(390)와는 독립적으로 다이렉트 데이터 도관(conduit)(미도시됨)으로부터 제어 평면 메시지를 수신한다. 일부 기타 실시예들에서, 제어기 에이전트는 MPSE(320)로부터 제어 평면 메시지들을 수신하고 MPSE(320)를 통해 라우터(330)에 구성 데이터를 포워드한다. 제어기 에이전트와 가상화 소프트웨어의 구성은 하기 섹션 III에서 추가적으로 기술될 것이다.
VTEP(VXLAN 터널 엔드포인트)(350)는 호스트(300)가 논리적 네트워크 트래픽(예를 들어, VXLAN 트래픽)을 위한 터널 엔드포인트의 역할을 하게 한다. VXLAN은 오버레이 네트워크 캡슐화 프로토콜이다. VXLAN 캡슐화에 의해 생성된 오버레이 네트워크는 종종 VXLAN 네트워크 또는 단순히 VXLAN으로서 지칭된다. 호스트(300)상의 VM이 동일 VXLAN 네트워크이지만 상이한 호스트상에서 데이터 패킷(예를 들어, 이더넷 프레임)을 다른 VM으로 송신할 때, VTEP은 패킷을 물리적 네트워크로 송신하기 전에, VXLAN 네트워크의 VNI와 VTEP의 네트워크 어드레스를 이용하여 데이터 패킷을 캡슐화할 것이다. 패킷은 물리적 네트워크를 통하여 목적지 호스트로 터널링된다(즉, 캡슐화는 바탕이 되는 패킷을 개재 네트워크 엘리먼트들에 투명하게 한다). 목적지 호스트에서의 VTEP는 패킷을 탈캡슐화하고 최초 내부 데이터 패킷만을 목적지 VM에 포워드한다. 일부 실시예들에서, VTEP 모듈은 VXLAN 캡슐화를 위한 제어기 인터페이스의 역할만을 하지만, VXLAN 패킷들의 캡슐화 및 탈캡슐화는 업링크 모듈(370)에서 달성된다.
MPSE(320)는 물리적 네트워크(390)를 인터페이스하는, 물리적 NIC(395)에 그리고 이로부터 네트워크 데이터를 전달한다. MPSE는 또한 물리적 NIC를 VM들(311-314), MPRE(330) 및 제어기 에이전트(340)와 통신가능하게 상호연결하는 다수의 가상 포트(vPort)들을 포함한다. 각각의 가상 포트는 일부 실시예들에서, 고유 L2 MAC 어드레스와 연관된다. MPSE는 가상 포트들에 연결된 임의의 2개의 네트워크 엘리먼트 간에 L2 링크 계층 패킷 포워딩을 수행한다. MPSE는 또한 가상 포트들 중 임의의 하나에 연결된 임의의 네트워크 엘리먼트와 물리적 네트워크(390)상의 도달가능한 L2 네트워크 엘리먼트(예를 들어, 또 다른 호스트상에서 실행되는 또 다른 VM) 간에 L2 링크 계층 패킷 포워딩을 수행한다. 일부 실시예들에서, MPSE는 상이한 호스트 머신들 전체에 걸쳐서 동작하고 동일 호스트 머신상의 또는 상이한 호스트 머신들상의 VM들 간에 L2 패킷 스위칭을 수행할 수 있는 LSE(logical switching element)의 로컬 인스턴스를 구현하거나, 여러 논리적 네트워크들을 위한 몇몇 그러한 LSE들을 구현한다.
MPRE(330)는 MPSE(320)상의 가상 포트로부터 수신되는 데이터 패킷들에 대해 (예를 들어, L3 IP 어드레스 대 L2 MAC 어드레스 주소분해를 수행함으로써) L3 라우팅을 수행한다. 각각의 라우팅된 데이터 패킷은 이후 주소분해된 L2 MAC 어드레스에 따라 그 목적지로 포워딩되기 위해 MPSE(320)에게 되돌려 보내진다. 이 목적지는 MPSE(320)상의 가상 포트에 연결된 또 다른 VM이거나 물리적 네트워크(390)상의 도달가능한 L2 네트워크 엘리먼트(예를 들어, 또 다른 호스트상에서 실행되는 또 다른 VM, 물리적 비-가상화된 머신, 기타 등등)일 수 있다.
상술한 바와 같이, 일부 실시예들에서, MPRE는 상이한 호스트 머신들 전체에 걸쳐서 동작하고 동일한 호스트 머신상의 또는 상이한 호스트 머신들상의 VM들간에 L3 패킷 포워딩을 수행할 수 있는 LRE(logical routing element)의 로컬 인스턴스이다. 일부 실시예들에서, 호스트 머신은 단일 MPSE에 연결된 다중 MPRE들을 가질 수 있으며, 호스트 머신들에서의 각각의 MPRE는 상이한 LRE를 구현한다. MPRE들과 MPSE들은 MPRE들과 MPSE들이 일부 실시예들에서 소트프웨어로 구현된다고 할지라도, "논리적" 라우팅/스위칭 소자들과 구별하기 위해 "물리적" 라우팅/스위칭 소자로서 지칭된다. 일부 실시예들에서, MPRE는 "소프트웨어 라우터"로서 지칭되고 MPSE는 "소프트웨어 스위치"로 지칭된다. 일부 실시예들에서, LRE들과 LSE들은 통합적으로 LFE(logical forwarding element)들로서 지칭되는 한편, MPRE들과 MPSE들은 통합적으로 MPFE(managed physical forwarding element)들로서 치칭된다.
일부 실시예들에서, MPRE(330)는 각각이 네트워크의 특정 세그먼트에 대한 인터페이스의 역할을 하는 하나 이상의 LIF(logical interface)들을 포함한다. 일부 실시예들에서, 각각의 LIF는 그 자신의 IP 어드레스에 의해 어드레스될 수 있고 네트워크의 특정 세그먼트의 네트워크 노드들(예를 들어, VM들)을 위한 디폴트 게이트웨이 또는 ARP 프록시의 역할을 한다. 이하 상세히 기술되는 바와 같이, 일부 실시예들에서, 상이한 호스트 머신들에서 모든 MPRE들은 동일한 "가상의" MAC 어드레스에 의해 어드레스될 수 있는 한편, 각각의 MPRE는 MPRE가 어느 호스트 머신에서 동작하는지를 표시하기 위해 "물리적" MAC 어드레스를 할당받는다.
업링크 모듈(370)은 MPSE(320)와 물리적 NIC(395) 간에 데이터를 중계한다. 업링크 모듈(370)은 각각이 다수의 동작을 수행하는 이그레스 체인(egress chain) 및 인그레스 체인(ingress chain)을 포함한다. 이러한 동작들 중 일부는 MPRE(330)에 대한 전-처리 및/또는 후-처리 동작이다. 업링크 모듈(370)의 동작은 도 14 및 도 15를 참조하여 이하 추가로 기술될 것이다.
도 3에 예시된 바와 같이, 가상화 소프트웨어(305)는 다중 상이한 LRE들로부터 다중 MPRE를 갖는다. 멀티-테넌시 환경(multi-tenancy environment)에서, 호스트 머신은 다중 상이한 사용자들 또는 테넌트들로부터 가상 머신들을 동작시킬 수 있다(즉, 상이한 논리적 네트워크들에 연결됨). 일부 실시예들에서, 각각의 사용자 또는 테넌트는 그것의 L3 라우팅을 다루기 위한 호스트에서의 대응하는 MPRE 인스턴스를 갖는다. 일부 실시예들에서, 상이한 MPRE들이 상이한 테넌트들에 속하기는 하지만, 그들 모두는 MPSE(320)상의 동일 vPort를 공유하기 때문에, 동일 L2 MAC 어드레스를 공유한다. 일부 다른 실시예들에서, 상이한 테넌트에 속하는 각각의 상이한 MPRE는 MPSE에의 그 자신의 포트를 갖는다.
MPSE(320)와 MPRE(330)는 외부의 물리적 네트워크(390)를 통해 송신되지 않고 VM들(311-314) 간에 데이터 패킷들이 포워드될 수 있게 한다(상이한 테넌트의 VM들은 서로 분리됨에 따라 VM들이 동일한 논리적 네트워크에 연결되어 있다).
도 4는 MPSE(320)에 의한 L2 포워딩 동작들을 예시한다. '1'이 라벨링된 동작은 전적으로 호스트 머신(300) 내에서 발생하는, VM(311)과 VM(312)간의 네트워크 트래픽을 나타낸다. 이것은 '2'가 라벨링된 동작과 대조되며, VM(313)과 다른 호스트 머신상의 다른 VM 간의 네트워크 트래픽을 나타낸다. 다른 호스트 머신에 도달하기 위해, MPSE(320)는 NIC(395)를 통해 물리적 네트워크(390)상으로 패킷을 송신한다.
도 5a 및 도 5b는 MPSE(320)와 연계하는 MPRE(330)에 의한 L3 라우팅 동작을 예시한다. MPRE(330)는 연관된 MAC 어드레스를 가지고 VM들(311-314) 중 임의의 것으로부터 L2 레벨 트래픽을 수신할 수 있다. 도 5a는 그 목적지가 MPRE(330)과 동일한 호스트에 있는 패킷을 위한 제1 L3 라우팅 동작을 예시한다. '1'이 라벨링된 동작에서, VM(312)은 MPRE의 MAC 어드레스를 이용하여 데이터 패킷을 MPRE(330)으로 보낸다. '2'가 라벨링된 동작에서, MPRE(330)는 그것의 목적지 L3 레벨 IP 어드레스를 L2 레벨 목적지 MAC 어드레스로 주소분해함으로써 수신된 데이터 패킷에 대해 L3 라우팅 동작을 수행한다. 이것은 이하 상세히 기술되는 바와 같이, MPRE(330)에게 ARP(Address Resolution Protocol) 요청을 송신하도록 요청할 수 있다. 다음으로, 라우팅된 패킷은 '3'이 라벨링된 동작에서 MPSE(320)으로 반송된다. 목적지 MAC 어드레스가 호스트 머신(300) 내의 VM(즉, VM(311))을 위한 것이기 때문에, 동작 '3'에서의 MPSE(320)는 패킷이 물리적 네트워크(390)에 도달하는 일이 전혀없이 목적지 VM에 라우팅된 패킷을 직접적으로 포워드한다.
도 5b는 물리적 네트워크에 의해서만 도달될 수 있는 원격 호스트에 그 목적지가 있는 패킷을 위한 제2 L3 라우팅 동작을 예시한다. 동작들 '4' 및 '5'는 '1' 및 '2'의 동작들과 유사하며, 그 동안에는 VM(312)이 데이터 패킷을 MPRE(330)에게 송신하고 MPRE(330)는 수신된 데이터 패킷에 대한 E3 라우팅 동작(들)을 수행하고 라우팅된 패킷을 다시 MPSE(320)에게 보낸다(다시, 가능하게는 목적지 IP 어드레스를 MAC 어드레스로 주소분해하기 위한 ARP 요청을 보낸다). 동작 '6'동안, MPSE(320)는 목적지의 L2 MAC 어드레스에 기초하여 물리적 NIC(395)를 통하여 물리적 네트워크에게 라우팅된 패킷을 송신하여 내보낸다.
도 5a 및 도 5b는 MPRE와 동일한 호스트 머신에서 VM들을 위한 L3 라우팅 동작을 예시한다. 일부 실시예들에서, MPRE는 MPRE의 호스트 머신의 외부의 엔티티들을 위한 L3 라우팅 동작을 수행하기 위해 또한 이용될 수 있다. 예를 들어, 일부 실시예에서, 호스트 머신의 MPRE는 그 자신의 MPRE를 가지고 있지 않은 다른 호스트 머신을 위한 L3 라우팅을 수행하기 위한 "지정된 인스턴스"의 역할을 할 수 있다. "지정된 인스턴스"의 역할을 하는 MPRE 예들은 하기 섹션 II.C에서 추가로 기술될 것이다.
도 6a 및 도 6b는 물리적 네트워크(390)로부터 호스트(300)에 진입하는 패킷들을 위해 MPRE(330)에 의해 실행되는 L3 라우팅 동작들을 예시한다. 그 자신의 MPRE를 또한 작동시키는 호스트상의 VM으로부터 송신된 패킷들이 해당 MPRE에 의해 라우팅되었을 것이지만, 패킷들은 그들 자신들이 VDR MPRE를 작동시키지 않는 다른 호스트 머신들로부터의 VM들(311-314)에게 송신될 수도 있다. 도 6a는 동작들 '1' 내지 '3'에서 물리적 네트워크로부터 수신되며 호스트(300) 내의 가상 머신에 송신되는 패킷에 대한 라우팅 동작들을 예시한다. 동작 '1'에서, 외부 엔티티는 MPRE의 MAC 어드레스를 어드레스함으로써 패킷을 물리적 네트워크를 통해 MPSE(320)과 MPRE(330)에 송신한다. '2'가 라벨링된 동작에서, MPRE(330)는 그것의 목적지 L3 레벨 IP 어드레스를 L2 레벨 목적지 MAC 어드레스로 주소분해함으로써 수신되는 데이터 패킷의 L3 라우팅 동작을 수행한다. 다음으로, 라우팅된 패킷은 '3'이 라벨링된 동작에서 MPSE(320)를 통해 목적지 가상 머신에 송신된다.
도 6b는 동작들 '4' 내지 '6'에서 외부 엔티티로부터 또 다른 외부 엔티티(예를 들어, 또 다른 호스트 머신에서의 가상 머신)로 송신되는 패킷에 대한 라우팅 동작을 예시한다. 동작들 '4' 및 '5'는 '1' 및 '2'의 동작들과 유사하며, 그 동안에는 MPRE(330)은 물리적 네트워크와 MPSE(320)로부터 패킷을 수신하고 수신된 데이터 패킷에 대한 L3 라우팅 동작을 수행한다. 동작 '6'에서, MPRE(330)는 주소분해된 MAC 어드레스에 기초하여 또 다른 호스트 머신에서의 또 다른 가상 머신에 패킷을 송신하는, MPSE(320)에 데이터 패킷을 반송한다. 후술되는 바와 같이, 이것은 MPRE(330)가 LRE를 작동시키지 않는 외부 호스트와의 통신을 위한 LRE의 지정된 인스턴스일 때 발생할 수 있다.
일부 실시예들에서, 호스트 머신(300)은 논리적 네트워크들을 지원할 수 있는 네트워크 가상 기반 구조를 형성하기 위한 물리적 네트워크에 의해 상호연결된 많은 호스트 머신들 중 하나이다. 그러한 네트워크 가상 기반 구조는 동시에 하나 이상의 사용자-특정 논리적 네트워크들을 구현함으로써 다중 테넌트들을 지원할 수 있다. 그러한 논리적 네트워크는 가상 머신들 간에 L3 레벨 라우팅을 수행하기 위한 하나 이상의 논리적 라우터들을 포함할 수 있다. 일부 실시예들에서, 논리적 라우터들은 다중 호스트 머신들 전체에 걸쳐서 예시된 MPRE들에 의해 통합적으로 구현된다.
도 7은 상이한 호스트 머신들 전체에 걸쳐서 MPRE들에 의해 구현되는 논리적 라우터들을 갖는 논리적 네트워크들(701 및 702)을 예시한다. 논리적 네트워크들(701 및 702)은 물리적 네트워크에 의해 상호연결된 여러 호스트 머신들을 포함하는 네트워크 가상 기반 구조를 통해 동시에 구현된다. 도면에 도시된 바와 같이, 제1 논리적 네트워크(701)는 테넌트 X를 위한 것이고 제2 논리적 네트워크(702)는 테넌트 Y를 위한 것이다. 각각의 테넌트의 논리적 네트워크는 다수의 가상 머신들을 포함한다. 테넌트 X의 가상 머신들은 세그먼트들 A, B, C 및 D로 분할된다. 테넌트 Y의 가상 머신들은 세그먼트들 E, F, G 및 H로 분할된다. 일부 실시예들에서, 세그먼트내의 가상 머신들은 논리 스위치들을 통해 L2 링크 계층 프로토콜들을 이용하여 서로 통신할 수 있다. 일부 실시예들에서, 세그먼트들 중 적어도 일부는 VXLAN 네트워크들과 같은 캡슐화 오버레이 네트워크들이다. 일부 실시예들에서, 각각의 세그먼트들은 상이한 IP 서브넷을 형성한다.
각각의 논리적 네트워크는 그 자신의 논리적 라우터를 갖는다. 테넌트 X를 위한 논리적 네트워크(701)는 세그먼트들 A, B, C 및 D 간에 라우팅하기 위한 논리적 라우터로서 LRE(711)를 갖는다. 테넌트 Y를 위한 논리적 네트워크(702)는 세그먼트들 E, F, G 및 H 간에 라우팅하기 위한 논리적 라우터로서 LRE(712)를 갖는다. 각각의 논리적 라우터는 상이한 호스트 머신들 전체에 걸쳐서 예시된 MPRE들에 의해 네트워크 가상 기반 구조에서 구현된다. LRE(711)에서의 일부 MPRE 인스턴스들은 LRE(712)에서의 일부 MPRE 인스턴스들과 동일한 호스트 머신들에서 동작하고 있다.
각각의 네트워크 세그먼트는 논리적 라우터에 대한 그 자신의 논리적 인터페이스를 가지고, 각각의 논리적 라우터는 논리적 인터페이스들의 그 자신의 세트를 갖는다. 예시된 바와 같이, 논리적 라우터(711)는 각각 세그먼트들 A, B, C 및 D를 위한 논리적 인터페이스들 LIF A, LIF B, LIF C와 LIF D를 가지고, 반면에 논리적 라우터(712)는 각각 세그먼트들 E, F, G 및 H를 위한 논리적 인터페이스들 LIF E, LIF F, LIF G 및 LIF H를 갖는다. 각각의 논리적 인터페이스는 네트워크 가상 기반 구조 내에서 고유한 그 자신의 식별자(예를 들어, IP 어드레스 또는 오버레이 네트워크 식별자)이다. 그 결과, 테넌트 X의 네트워크 트래픽은 테넌트 Y의 네트워크 트래픽으로부터 완전히 분리될 수 있다.
도 8은 네트워크 가상 기반 구조의 호스트 머신들에서 논리적 라우터들의 물리적 구현을 예시한다. 특히, 도면은 호스트 머신들(801 및 802)에서의 논리적 네트워크들(701 및 702)의 (부분적) 구현을 예시한다. 예시된 바와 같이, 호스트 머신(801)은 호스팅 가상 머신들(811-815)이고, 호스트 머신(802)은 호스팅 가상 머신들(821-826)이다. 이들 중에서, 가상 머신들(811-812 및 821-823)은 테넌트 X의 가상 머신들이고, 반면에 가상 머신들(813-816 및 824-826)은 테넌트 Y의 가상 머신들이다.
각각의 호스트 머신은 상이한 2개의 테넌트를 위한 2개의 MPRE를 포함한다. 호스트 머신(801)은 각각 테넌트들 X 및 Y을 위한 MPRE들(841 및 842)을 갖는다. 호스트 머신(802)은 각각의 테넌트들 X 및 Y를 위한 MPRE들(843 및 844)을 갖는다. 호스트(801)는 가상 머신들(811-816)과 MPRE들(841-842) 간에 L2 계층 패킷 포워딩을 수행하기 위해 MPSE(851)를 작동시키고, 반면에 호스트(801)는 가상 머신들(821-826)과 MPRE들(843-844) 간에 L2 계층 패킷 포워딩을 수행하기 위해 MPSE(852)를 작동시키고 있다.
각각의 MPRE는 호스트 머신상에서 동작하는 가상 머신들과 인터페이싱을 위한 한 세트의 논리적 인터페이스를 갖는다. MPRE들(841 및 843)이 테넌트 X를 위한 MPRE들이기 때문에, 이들은 단지 테넌트 X의 네트워크 세그먼트들(즉, 세그먼트들 A, B, C 또는 D)을 위한 논리적 인터페이스들을 가질 수 있으며, 반면에 테넌트 Y의 MPRE들(842 및 844)는 단지 테넌트 Y의 네트워크 세그먼트들(즉, 세그먼트들 E, F, G 및 H)을 위한 논리적 인터페이스들을 가질 수 있다. 각각의 논리적 인터페이스는 네트워크 IP 어드레스와 연관된다. MPRE에 부착되는 논리적 인터페이스의 IP 어드레스는 MPRE가 그것의 로컬 호스트상에서 실행되는 VM들에 의해 어드레스될 수 있게 한다. 예를 들어, VM(811)은 1.1.1.253인, LIF A의 IP 어드레스를 이용하여 MPRE(841)를 그것의 L3 라우터로서 사용하는, 호스트(801)상에서 실행되는 세그먼트 A 가상 머신이다. 일부 실시예들에서, MPRE는 비활성인 것으로서 구성되는 LIF들을 포함할 수 있다. 예를 들어, MPRE(841)의 LIF D는 활성 상태에 있으며, 그 이유는 호스트(801)가 세그먼트 D에서 어떠한 VM도 구동시키지 않기 때문이다. 즉, 일부 실시예들에서, 특정 LRE를 위한 각각의 MPRE는 모든 LRE의 논리적 인터페이스들로 구성되지만, LRE의 상이한 로컬 인스턴스(즉, MPRE들)는 로컬 LRE 인스턴스로 호스트 머신상에서 동작하는 VM들에 기초하여 비활성 상태의 상이한 LIF들을 가질 수 있다.
일부 실시예들에서, 동일한 세그먼트를 위한 LIF는 심지어 이러한 LIF들이 상이한 호스트들에서 상이한 MPRE들에 부착된다고 할지라도, 동일한 IP 어드레스를 갖는다는 것은 주목할 만한다. 예를 들어, 호스트(801)상의 MPRE(842)는 세그먼트 E(LIF E)를 위한 논리적 인터페이스를 가지고, 호스트(802)상의 MPRE(844)도 마찬가지이다. MPRE(842)의 LIF E는 MPRE(844)의 LIF E와 동일한 IP 어드레스 4.1.1.253을 공유한다. 다시 말하면, VM(814)(호스트(801)상에서 실행되는 세그먼트 E의 VM)과 VM(824)(호스트(802)상에서 실행되는 세그먼트 E의 VM) 둘다 그들 각각의 MPRE들에 액세스하기 위해 동일한 IP 어드레스 4.1.1.253을 이용한다.
언급된 바와 같이, 일부 실시예들에서, 동일 호스트 머신상에서 실행되는 상이한 MPRE들은 MPSE상의 동일 포트를 공유하며, 이것은 동일 호스트상에서 실행되는 모든 MPRE들이 L2 MAC 어드레스를 공유한다는 것을 의미한다. 일부 실시예들에서, 논리적 인터페이스들의 고유 IP 어드레스들은 상이한 테넌트들과 상이한 데이터 네트워크 세그먼트들로부터 데이터 패킷들을 분리하는데 이용된다. 일부 실시예들에서, 다른 식별 메커니즘들은 데이터 패킷들을 상이한 네트워크 세그먼트들로부터 상이한 논리적 인터페이스들로 송신하는데 사용된다. 일부 실시예들은 패킷들을 상이한 세그먼트들로부터 분리하기 위해 상이한 세그먼트들을 위한 고유 식별자를 이용한다. 서브넷인 세그먼트를 위해, 일부 실시예들은 패킷이 정확한 서브넷으로부터 왔는지를 살펴보기 위해 패킷에서의 IP 어드레스를 이용한다. 오버레이 네트워크에 대응하는 세그먼트를 위해, 일부 실시예들은 데이터 패킷을 그것의 대응하는 논리적 인터페이스로 송신하기 위해 네트워크 세그먼트 식별자들을 이용한다. 일부 실시예들에서, 네트워크 세그먼트 식별자는 논리적 네트워크의 세그먼트인 오버레이 네트워크(예를 들어, VNI, VXLAN ID 또는 VLAN 태그 또는 ID)의 식별자이다. 일부 실시예들에서, 논리적 네트워크의 각각의 세그먼트는 그것의 유형에 상관없이, 세그먼트의 식별자로서 VNI를 할당받는다.
도 9는 상이한 세그먼트들의 가상 머신들로부터의 데이터 패킷들이 호스트(801) 내의 상이한 논리적 인터페이스들측으로 어떻게 향하는지를 예시한다. 예시된 바와 같이, VM들(811-816)은 MPSE(851)의 상이한 포트들에 연결되고, 반면에 테넌트 X의 MPRE(841)와 테넌트 Y의 MPRE(842)는 MAC 어드레스 "01:23:45:67:89:ab"를 갖는 포트(본 설명에서는 "VMAC"로서 지칭됨)에 연결된다. 세그먼트 A VM(811)으로부터의 패킷(901)과 세그먼트 G VM(815)으로부터의 패킷(902)은 MPSE(851)로 송신된다. 다음 차례로, MPSE(851)는 양쪽 패킷들을 위한 목적지 MAC 어드레스 "VMAC"에 기초하여 패킷들(901 및 902)을 MPRE들(841 및 842)을 위한 가상 포트로 보낸다. 패킷(901)은 세그먼트 A를 위한 VNI("VNI A")를 전달하고, 반면에 패킷(902)은 세그먼트 G를 위한 VNI("VNI G")를 전달한다. MPRE(841)의 논리적 인터페이스 "LIF A"는 그것의 네트워크 세그먼트 식별자 "VNI A"에 기초하여 패킷(901)을 받아들이고, 반면에 MPRE(842)의 논리적 인터페이스 "LIF G"는 그것의 네트워크 세그먼트 식별자 "VNI G"에 기초하여 패킷(902)을 받아들인다. 테넌트들이 동일 네트워크 세그먼트들을 공유하지 않고, 그에 따라 VNI들을 공유하지 않기 때문에, 상이한 테넌트들로부터의 데이터 패킷들은 안전하게 서로 분리된다.
이 도면이 올바른 논리적 라우터와 논리적 라우터 인터페이스에의 패킷들을 분리하기 위해 패킷들 상의 VNI들(네트워크 식별자 태그들)의 이용을 예시하고 있지만, 상이한 실시예들은 다른 판별기들을 이용할 수 있다. 예를 들어, 일부 실시예들은 (확실하게 패킷이 출발지 VM과 동일한 네트워크 접두사를 갖는 LIF를 통해 송신되도록 하기 위해) 패킷의 출발지 IP 어드레스, 또는 출발지 IP 및 네트워크 식별자 태그의 조합을 이용한다.
일부 실시예들에 대해, 도 10은 호스트 머신에서 작동되는 MPRE 인스턴스(1000)의 블록도를 예시한다. 예시된 바와 같이, MPRE(1000)는 가상 포트(1053)에서 MPSE(1050)에 연결된다. MPSE(1050)는 MPRE(1000)와 동일한 호스트에서 작동되는 가상 머신들은 물론 업링크 모듈(1070)과 물리적 NIC(1090)를 통해 물리적 네트워크에 연결된다. MPRE(1000)는 데이터 링크 모듈(1010)과 라우팅 프로세서(1005), 논리적 인터페이스 데이터 스토리지(1035), 룩업 테이블(1040), 및 구성 데이터 스토리지(1045)를 포함한다. 라우팅 프로세서(1005)는 인그레스 파이프라인(1020), 이그레스 파이프라인(1025), 시퀀서(1030)를 포함한다.
데이터 링크 모듈(1010)은 MPRE(1000)의 MPSE(1050)과의 링크 계층(L2) 인터페이스이다. 이것은 포트(1053)에 할당된 MAC 어드레스(예시된 예에서는 "01:23:45:67:89:ab")에 어드레스되는 인커밍 데이터 패킷을 받아들인다. 이것은 또한 아웃고잉 데이터 패킷을 MPSE(1050)에 전송한다. 일부 실시예들에서, 데이터 링크 모듈은 또한 브로드캐스트 어드레스("ff:ff:ff:ff:ff:ff") 및/또는 멀티캐스트 어드레스를 갖는 데이터 패킷들을 받아들인다.
인그레스 파이프라인(1020)은 이들이 라우팅 시퀀서(1030)에 의해 순차적으로 처리되기 전에 인커밍 데이터 패킷들을 늘어세우기(queuing up) 위한 것이다. 일부 실시예들에서, 인그레스 파이프라인은 또한 인커밍 데이터 패킷들에 대해 상이한 처리 동작들을 수행하는 다수의 파이프라인 스테이지를 포함한다. 일부 실시예들에서, 이러한 인그레스 처리 동작들은 (액세스 제어 리스트 ACL에 따른) 인그레스 액세스 제어와 소스 NAT(network address translation)를 포함한다. 일부 실시예들에서, 이러한 동작들 중 적어도 일부는 룩업 테이블 스토리지(1040)와 논리적 인터페이스 데이터 스토리지(1035)에 저장되어 있는 데이터에 기초한 라우팅 또는 브릿징 동작들이다. 일부 실시예들에서, 인그레스 파이프라인은 인커밍 패킷을 위한 인바운드 LIF로서 식별된 논리적 인터페이스에 대해 특정된 데이터에 따른 액션을 수행한다.
이그레스 파이프라인(1025)은 MPSE(1050)를 통해 데이터 링크 모듈(1010)에 의해 송신되기 전에 라우팅 시퀀서(1030)에 의해 생성되는 아웃고잉 데이터 패킷들을 늘어세우기 위한 것이다. 일부 실시예들에서, 이그레스 파이프라인은 또한 아웃고잉 데이터 패킷에 대해 상이한 처리 동작들을 수행하는 다수의 파이프라인 스테이지들을 포함한다. 일부 실시예들에서, 이러한 이그레스 처리 동작들은 (액세스 제어 리스트 ACL에 따른) 이그레스 액세스 제어와 목적지 NAT(network address translation)를 포함한다. 일부 실시예들에서, 이러한 동작들 중 적어도 일부는 룩업 테이블 스토리지(1040)와 논리적 인터페이스 데이터 스토리지(1035)에 저장되어 있는 데이터에 기초한 라우팅 또는 브릿징 동작들이다. 일부 실시예들에서, 이그레스 파이프라인은 아웃고잉 패킷을 위한 아웃바운드 LIF로서 식별된 논리적 인터페이스에 대해 특정된 데이터에 따른 액션을 수행한다.
시퀀서(1030)는 인그레스 파이프라인(1020)과 이그레스 파이프라인(1025) 간의 순차적인 동작들을 수행한다. 일부 실시예들에서, 라우팅 시퀀서는 ARP 동작들과 브릿징 동작들과 같은 순차적인 동작을 수행한다. 일부 실시예들에서, 라우팅 시퀀서는 ARP 질의들 및 응답들을 생성하는 것과 같이, 필요할 때 새로운 패킷들을 생성하여 네트워크에 주입한다. 이것은 인그레스 파이프라인(1020)으로부터 전처리 데이터 패킷들을 검색하고 아웃고잉 패킷들을 후처리를 위해 이그레스 파이프라인에 저장한다.
일부 실시예들의 라우팅 프로세서(1005)는 첫번째로 인커밍 데이터 패킷들을 다양한 논리적 인터페이스들로 분류함으로써 그것의 라우팅 결정을 한다. 라우팅 프로세서(1005)는 또한 논리적 인터페이스 데이터 스토리지(1035)에서 각각의 논리적 인터페이스의 현재 상태를 갱신하고 유지한다. 예를 들어, 라우팅 프로세서(1005)는, 논리적 인터페이스들의 현재 상태에 기초하여, 제2 논리적 인터페이스에 부착된 제2 네트워크 세그먼트의 제2 가상 머신으로부터 제3 논리적 인터페이스에 부착된 제3 네트워크 세그먼트의 제3 가상 머신으로 데이터 패킷을 패스시키는 동안 제1 논리적 인터페이스에 부착된 제1 네트워크 세그먼트의 제1 가상 머신에 대한 ARP 응답을 생성한다. 다음으로, 제1, 제2 및 제3 논리적 인터페이스의 현재 상태는 논리적 인터페이스 데이터 스토리지(1035)에서 갱신되고 저장된다. 일부 실시예들에서, 라우팅 프로세서(1005)는 또한 다시 해당하는 특정 논리적 인터페이스의 현재 상태에 기초하여, 특정 논리적 인터페이스를 대신하여 (예를 들어, ARP 요청을 위한) 새로운 데이터 패킷들를 생성한다.
라우팅 프로세서(1005)는 또한 룩업 테이블 스토리지(1040)의 콘텐츠에 기초하여 그것의 라우팅 결정들을 한다. 일부 실시예들에서, 룩업 테이블 스토리지(1040)는 (예를 들어, 네트워크 계층 IP 어드레스로부터 링크 계층 MAC 어드레스로) L3 내지 L2 어드레스 주소분해에 대한 주소분해 테이블(또는 ARP 테이블)을 저장한다. 일부 실시예들에서, 라우팅 시퀀서는 (예를 들어, 하나의 IP 서브넷으로부터 다른 IP 서브넷으로) L3 레벨 라우팅을 수행할 뿐만 아니라, 동일한 IP 서브넷에서 동작하는 상이한 오버레이 네트워크들 간의(예를 들어, VXLAN 네트워크와 VLAN 네트워크 간의) 브릿징을 행한다. 이 실시예들 중 일부에서, 룩업 테이블 스토리지(1040)는 MAC 어드레스와 네트워크 세그먼트 식별자(VNI)들을 바인딩하는데 필요한 브릿지 테이블들을 저장한다. 라우팅 프로세서(1005)는 또한 인커밍 패킷들로부터 학습함으로써 브릿지 테이블 및 ARP 테이블 내의 엔트리들을 갱신한다.
MPRE(1000)는 또한 구성 데이터 스토리지(1045)를 포함한다. 스토리지(1045)는 MPRE(1000) 내부의 다양한 모듈들을 구성하기 위한 데이터를 저장한다. 예를 들어, 일부 실시예들에서, 스토리지(1045) 내의 구성 데이터는 다수의 논리적 인터페이스는 물론, 각각의 논리적 인터페이스의 파라미터들(예를 들어, 그것의 IP 어드레스, 연관된 네트워크 세그먼트들, 활성/비활성 상태, LIF 유형, 기타 등등)을 특정한다. 일부 실시예들에서, 구성 데이터는 또한 MPRE(1000)를 어드레스하기 위해 동일한 호스트 머신의 가상 머신들에 의해 이용되는 가상 MAC 어드레스(VMAC)와 MPRE(1000)를 어드레스하기 위해 다른 호스트 머신들에 의해 이용되는 그것의 물리적 MAC 어드레스(PMAC)와 같은 다른 파라미터들을 특정한다. 일부 실시예들에서, 구성 데이터는 또한 ACL, NAT 및/또는 방화벽 동작에 대한 데이터를 포함한다. 일부 실시예들에서, 구성 데이터 스토리지(1000) 내의 데이터는 (도 3의 제어기 에이전트(340)와 같은) 호스트 머신 내의 제어기 에이전트를 통해 제어기 클러스터로부터 수신된다. 구성 데이터 및 제어 평면 동작들은 하기 섹션 III에서 추가로 기술될 것이다.
도 11은 MPSE로부터 데이터 패킷을 처리할 때 MPRE에 의해 수행되는 일부 실시예들의 프로세스(1100)를 개념적으로 예시한다. 일부 실시예들에서, 프로세스(1100)는 라우팅 프로세서(1005)에 의해 수행된다. 프로세스(1100)는 MPRE가 MPSE로부터 데이터 패킷을 수신할 때 시작된다. 프로세스는 (1110에서) 예를 들어, 네트워크 세그먼트 식별자(예를 들어, VNI)에 기초하여 인바운드 데이터 패킷(인바운드 LIF)에 대한 논리적 인터페이스를 식별한다.
다음으로, 프로세스는 (1120에서) 인바운드 LIF가 브릿징을 위한 논리적 인터페이스(브릿지 LIF) 또는 L3 라우팅을 수행하기 위한 논리적 인터페이스(라우팅 LIF)인지를 결정한다. 일부 실시예들에서, 논리적 인터페이스는 라우팅 LIF 또는 브릿지 LIF로서 구성된다. 식별된 인바운드 LIF가 브릿지 LIF이면, 프로세스는 1123으로 진행한다. 식별된 인바운드 LIF가 라우팅 LIF이면, 프로세스는 1135으로 진행한다.
1123에서, 프로세스는 출발지 MAC와 인커밍 패킷의 네트워크 세그먼트 식별자(예를 들어, VNI) 간의 페어링을 학습한다. 출발지 MAC가 VNI에 의해 식별된 네트워크 세그먼트에 있다는 것이 확실하기 때문에, 이 정보는 그것의 목적지 어드레스와 동일한 MAC 어드레스를 갖는 패킷을 브릿징하는데 유용하다. 이 정보는 일부 실시예들에서 이 MAC 어드레스와 그 VNI 간의 페어링을 제공하는 브릿지 테이블에 저장된다.
다음으로, 프로세스는 (1125에서) 인커밍 데이터 패킷에서의 목적지 MAC가 브릿징을 필요로 하는 MAC인지를 결정한다. 브릿징을 필요로 하는 목적지 MAC는 출발지 네트워크 세그먼트에서 어떠한 알려진 목적지도 가지고 있지 않은 MAC이며, 라우팅될 수 없다(예를 들어, 이것은 출발지 VNI와 동일한 IP 서브넷에 있기 때문이다). 목적지 MAC가 브릿징을 요청하면, 프로세스는 1130으로 진행하고, 그렇지 않다면, 프로세스는 종료한다.
1130에서, 프로세스는 브릿지 테이블에 따라 VNI와 알려지지 않은 목적지 MAC를 바인딩함으로써 브릿징 동작을 수행한다. 일부 실시예들에서, 어떠한 엔트리도 발견될 수 없다면, 프로세스는 알려지지 않은 목적지 MAC에 대한 매칭되는 VNI를 찾기 위해 MPRE에 부착된 모든 다른 브릿지 LIF들을 플러딩한다. 일부 실시예들에서, 프로세스는 방화벽이 이 브릿지 LIF에 대해 인에이블될 경우 브릿징을 수행하지 않을 것이다. 브릿징 동작들은 하기 섹션 II.D에서 추가로 기술될 것이다. 일부 실시예들에서, 동작(1130)은 시퀀서(1030)와 같은 순차적인 모듈에 의해 수행되는 순차적인 동작이다. 브릿징을 수행한 이후에, 프로세스는 1150으로 진행한다.
1135에서, 프로세스는 인커밍 데이터 패킷의 목적지 MAC가 MPRE에 어드레스되는지를 결정한다. 일부 실시예들에서, 모든 MPRE들은 목적지로서 일반적인 가상 MAC 어드레스(VMAC)에 응답한다. 일부 실시예들에서, MPRE의 개별적인 LIF들은 목적지로서 그들 자신의 LIF MAC(LMAC)에 응답한다. 목적지 MAC 어드레스가 MPRE(또는 LIF)에 대한 것이라면, 프로세스는 1140으로 진행한다. 그렇지 않다면, 프로세스(1100)는 종료된다.
1140에서, 프로세스는 인커밍 데이터 패킷의 목적지 IP 어드레스를 주소분해한다(1140). 일부 실시예들에서, MPRE는 첫번째로 로컬로 ARP 테이블내의 IP 어드레스를 조사함으로써 IP 어드레스를 주소분해하려는 시도를 한다. 어떠한 매칭 엔트리도 ARP 테이블에서 발견될 수 없는 경우, 프로세스는 ARP 질의를 시작하고 목적지 MAC 어드레스를 취득할 것이다. ARP 동작은 하기 섹션 II.B에서 추가로 기술될 것이다. 일부 실시예들에서, 동작(1140)은 시퀀서(1030)와 같은 순차적인 모듈에 의해 실행되는 순차적인 동작이다.
프로세스는 다음으로 인커밍 패킷(또는 보다 적절하기로는, 이 포인트에서, 아웃고잉 패킷)에 대한 아웃바운드 LIF를 식별한다(1150). 브릿지 LIF인 인바운드 LIF을 통해 오는 데이터 패킷을 위해, 아웃바운드 LIF는 브릿지 바인딩에 의해 제공되는 VNI에 의해 식별되는 브릿지 LIF이다. 라우팅 LIF인 인바운드 LIF를 통해 오는 데이터 패킷을 위해, 일부 실시예들은 목적지 IP 어드레스를 검사함으로써 아웃바운드 LIF를 식별한다. 일부 실시예들에서, 아웃바운드 LIF는 ARP 주소분해 테이블에 의해 제공되는 VNI에 의해 식별되는 라우팅 LIF이다.
아웃바운드 LIF를 식별한 후, 프로세스는 (1160에서) 아웃바운드 LIF를 이용하여 아웃고잉 패킷을 올바른 목적지 세그먼트에 보낸다. 일부 실시예들에서, 아웃바운드 LIF는 예를 들어, 아웃고잉 패킷들에 목적지 세그먼트의 네트워크 세그먼트 식별자를 태깅함으로써 목적지 세그먼트에 대한 패킷을 준비한다. 프로세스(1100)는 그 다음에 종료된다.
II. VDR 패킷 처리 동작
A. 로컬로 및 원격으로 MPRE들에 액세스하기
언급된 바와 같이, 섹션 I에서 설명된 LRE는 VDR(virtual distributed router)이다. 이것은 MPRE들로서의 상이한 호스트들에서의 LRE의 상이한 인스턴스들 전체에 걸쳐서 라우팅 동작들(L3 계층 라우팅 또는 브릿징)을 분산시킨다. 일부 실시예들에서, VDR을 사용하는 논리적 네트워크는 모든 MPRE들로 하여금 모든 가상 머신들에게 동일하게 나타나게 함으로써 네트워크 가상화를 향상시킨다. 이 실시예들 중 일부에서, 각각의 MPRE는 시스템에서 모든 MPRE들에게 동일한 MAC 어드레스(VMAC)에 의해 L2 데이터 링크 계층에서 어드레스될 수 있다. 이것은 본 명세서에서 가상 MAC 어드레스(VMAC)라고 지칭된다. VMAC는 특정 논리적 네트워크의 모든 MPRE들이 가상 머신들에게 및 논리적 네트워크의 사용자(예를 들어, 네트워크 매니저)에게 하나의 인접한 논리적 라우터인 것처럼 나타나게 한다.
그러나, 일부 실시예들에서, MPRE들이 다른 호스트 머신들과, 또는 다른 호스트 머신들 내의 네트워크 요소들(예를 들어, 다른 호스트 머신들에서의 MPRE들 및/또는 VM들)과 서로 통신할 필요가 있다. 이 실시예들 중 일부에서, VMAC 뿐만 아니라, 각각의 MPRE는 물리적 네트워크를 통해 다른 호스트 머신들로부터의 물리적 MAC(PMAC)에 의해 고유하게 어드레스될 수 있다. 일부 실시예들에서, MPRE를 어드레스하는데 사용되는 이 고유 PMAC 어드레스는 MPRE를 작동시키는 호스트 머신에 할당된 특성이다. MPRE가 그것의 호스트 머신의 PMAC에 의해 그 자신의 논리적 네트워크 내에서 고유하게 어드레스될 수 있기 때문에, 일부 실시예들은 호스트 머신의 이 고유 PMAC를 MPRE의 고유 PMAC라고 지칭한다. 일부 실시예들에서, 상이한 테넌트들을 위한 상이한 논리적 네트워크들이 안전하게 호스트 머신 내에서 서로 분리되기 때문에, 상이한 테넌트들을 위한 상이한 MPRE들은 모두 (다른 호스트 머신들로부터 어드레스될 수 있도록 하기 위해) 해당 호스트 머신의 동일한 PMAC 어드레스를 이용할 수 있다. 일부 실시예들에서, 그것의 호스트 머신의 PMAC와 연관되는 각각의 MPRE가 있지만, 각각의 논리적 인터페이스는 LMAC라고 지칭되는, 그 자신의 고유 MAC 어드레스와 관련된다.
일부 실시예들에서, MPRE를 떠나는 각각의 패킷은 MPRE의 VMAC를 출발지 어드레스로서 갖지만, 호스트 머신은 패킷이 PNIC에 진입하고 호스트를 떠나 물리적 네트워크로 가기 전에 출발지 어드레스를 호스트 머신의 고유 PMAC로 변경할 것이다. 일부 실시예들에서, MPRE를 입력한 각각의 패킷은 그것의 목적지 어드레스로서 MPRE의 VMAC를 가지고 있어야 한다. 물리적 네트워크로부터 호스트에 도착하는 패킷을 위해, 호스트는 목적지 어드레스가 호스트 머신의 고유 PMAC 어드레스이면 목적지 MAC 어드레스를 일반적인 VMAC로 변경할 것이다. 일부 실시예들에서, 호스트 머신의 PMAC는 그것의 업링크 모듈(예를 들어, 370)의 특성으로서 구현되고, 이것은 아웃고잉 패킷의 출발지 MAC 어드레스를 일반적인 VMAC로부터 그것의 고유 PMAC로 변경하고 인커밍 패킷의 목적지 어드레스를 그것의 고유 PMAC로부터 일반적인 VMAC로 변경하는 업링크 모듈이다.
도 12는 일부 실시예들을 위한 공통 VMAC와 고유 PMAC들에 의해 어드레스될 수 있는 MPRE들을 갖는 논리적 네트워크(1200)를 예시한다. 예시된 바와 같이, 논리적 네트워크(1200)는 2개의 상이한 호스트 머신(1201 및 1202)을 포함한다. 호스트 머신(1201)은 MPRE(1211), MPSE(1221) 및 여러 가상 머신들(1231)을 포함한다. 호스트 머신(1202)은 MPRE(1212), MPSE(1222) 및 여러 가상 머신들(1232)을 포함한다. 2개의 호스트 머신은 물리적 네트워크(1290)에 의해 상호연결된다. MPSE(1222)는 PNIC(1282)와 업링크 모듈(1242)을 통해 물리적 호스트로부터 데이터를 수신한다.
호스트(1201)의 MPRE(1211)는 VMAC 어드레스 12:34:56:78:90:ab를 이용하여 VM들(1231)에 의해 어드레스될 수 있다. 호스트 (1202)의 MPRE(1212)는 또한 심지어 MPRE(1211)와 MPRE(1212)가 상이한 호스트 머신들에서의 (동일한 LRE에 대해) 상이한 MPRE들일지라도, 동일한 VMAC 어드레스 12:34:56:78:90:ab에 의해 VM들(1232)에 의해 어드레스될 수 있다. 예시되지는 않았지만, 일부 실시예들에서, 상이한 테넌트들을 위한 상이한 논리적 네트워크들에서의 MPRE들은 또한 동일한 VMAC 어드레스를 이용할 수 있다.
MPRE(1211)와 MPRE(1212)는 또한 다른 호스트 머신들의 다른 네트워크 엔티티들에 의해 물리적 네트워크로부터 그 자신의 고유 PMAC 어드레스에 의해 각각 어드레스될 수 있다. 예시된 바와 같이, MPRE(1211)는 그 자신의 고유 PMAC 어드레스 11:11:11:11:11:11(PMAC1)와 연관되고, 반면에 MPRE(1212)는 그 자신의 고유 PMAC 어드레스 22:22:22:22:22:22(PMAC2)와 연관된다.
도 12는 또한 또 다른 호스트 머신의 원격 MPRE에 송신되는 데이터 트래픽의 예를 예시한다. 원격 MPRE는, MPRE와는 달리, 직접적으로 물리적 네트워크로부터 인커밍되는 패킷들을 위한 일반적인 VMAC에 의해 어드레스될 수 없다. 원격 호스트의 MPRE는 단지 해당 원격 MPRE의 고유 PMAC 어드레스에 의해서만 어드레스될 수 있다. 원격 호스트에서 실행되는 가상화 소프트웨어는 일부 실시예들에서 L2 스위칭을 수행하기 전에 고유 PMAC 어드레스를 일반적인 VMAC 어드레스로 되돌려 변경한다.
도 12는 '1', '2', '3', 및 '4'가 라벨링된 4개의 동작에서 호스트(1201)의 MPRE(1211)로부터 호스트(1202)의 MPRE(1212)로의 트래픽을 예시한다. 동작 '1'에서, VM(1231)은 일반적인 VMAC 어드레스를 이용하여 패킷을 그것의 MPRE(1211)로 송신한다. 이 패킷은 또한 트래픽을 위해 의도된 목적지에 대응하는 목적지 IP 어드레스(도시 생략)를 가질 것이다. 동작 '2'에서, 호스트(1201)의 MPRE(1211)는 MPRE(1212)의 고유 물리적 MAC "PMAC2"를 목적지 어드레스로서 이용하여 패킷을 호스트(1202)의 MPRE(1212)로 송신한다. 이 변환을 수행하기 위해, 일부 실시예들에서, MPRE(1211)는 목적지 IP 어드레스에 대응하는 목적지 MAC 어드레스(PMAC2)를 식별하기 위해 그것의 ARP 테이블에서 찾을 것이다(또는 ARP를 수행할 것이다).
동작 '3'에서, 데이터 패킷은 그것의 물리적 NIC를 통해 호스트(1202)에 도달하였고, 업링크 모듈(1242)(호스트(1202)상에서 실행되는 가상화 소프트웨어의 일부)에 도착했다. 업링크 모듈(1242)은 다음 차례로 목적지 어드레스로서 MPRE(1212))의 고유 PMAC("PMAC2")를 일반적인 VMAC로 변환한다. 동작 '4'에서, 데이터 패킷은 일반적인 VMAC에 기초하여 MPRE(1212)에 패킷을 포워드하는, MPSE(1222)에 도달한다.
도 13은 네트워크(1200)에 대한 공통 VMAC 및 고유 PMAC를 이용하는 하나의 VM으로부터 또 다른 VM으로 라우팅된 L3 네트워크 트래픽의 예를 예시한다. 네트워크 트래픽은 호스트 머신(1201)에서의 VM(1331)으로부터 발신되어 호스트 머신(1202)에서의 VM(1332)에 착신되는 데이터 패킷이다. 예시적인 라우팅된 L3 트래픽은 '1' 내지 '4'가 라벨링된 4개의 동작으로 예시되어 있다. 동작 '1'동안, 링크 계층 L2 어드레스 "MAC1"를 갖는 VM(1331)은 목적지 어드레스로서 MPRE들의 공통 VMAC를 이용하여 데이터 패킷을 MPRE(1211)로 송신한다. 동작 '2'동안, MPRE(1211)는 목적지 IP 어드레스를, 링크 계층 L2 어드레스 "MAC2"를 갖는 목적지 VM에 대한 목적지 MAC 어드레스로 주소분해함으로써 L3 레벨 라우팅을 수행한다. MPRE(1211)는 또한 VM(1331)의 MAC 어드레스 "MAC1"를, 출발지 MAC 어드레스로서의 그 자신의 고유 물리적 링크 계층 어드레스 "PMAC1"(11:11:11:11:11:11)로 대체한다. 동작 3에서, 라우팅된 패킷은 목적지 MAC 어드레스 "MAC2"에 따라 데이터 패킷을 목적지 VM(1232)로 포워드하는 MPSE(1222)에 도달한다. 동작 '4'에서, 데이터 패킷은 목적지 가상 머신(1232)에 도달한다. 일부 실시예들에서, 고유 PMAC가 출발지 어드레스인 경우 고유 PMAC(이 경우에, "PMAC1")를 일반적인 VMAC로 변경할 필요가 없으며, 그 이유는 VM(1332)가 표준(비-ARP) 데이터 트래픽을 위한 출발지 MAC 어드레스를 무시하기 때문이다.
언급된 바와 같이, 업링크 모듈은 PNIC로부터 MPSE로의 인커밍 데이터에 대한 전처리와 MPSE로부터 PNIC로의 아웃고잉 데이터에 대한 후처리를 수행하는 모듈이다. 도 14는 (1242와 같은) 업링크 모듈에 의해 수행되는 전처리 동작들에 대한 프로세스(1400)를 개념적으로 예시한다. 일부 실시예들에서, 프로세스(1400)의 동작들은 PNIC로부터 호스트 머신에 입력되는 인그레스 파이프라인으로 구현된다.
프로세스는 이것이 (1410에서) PNIC로부터(즉, 외부 물리적 네트워크로부터) 패킷을 수신할 때 시작한다. 프로세스는 (1420에서) 데이터가 VXLAN 또는 VLAN과 같은 오버레이 네트워크를 위한 것이라면 오버레이 네트워크 처리를 수행한다. 원격 호스트상의 VM이 데이터 패킷을 이 호스트 상이 아닌 동일한 VXLAN 네트워크에서의 VM에 송신할 때, 프로세스는 패킷이 MPSE를 통해 VM에 포워딩되기 전에 패킷을 탈캡슐화(de-capsulate)할 것이다. 이 동작을 수행함으로써, 업링크 모듈은 호스트가 VXLAN을 위한 터널 엔드포인트(예를 들어, VTEP)의 역할을 하게 한다.
다음으로, 프로세스는 (1430에서) 인커밍 데이터 패킷의 목적지 MAC가 고유 물리적 MAC(PMAC)인지를 결정한다. 일부 실시예들에서, 고유 PMAC 어드레스는 데이터 패킷을 특정 호스트로 송신하는데 사용되지만, 패킷을 호스트의 MPRE로 송신하는데는 사용될 수 없다(그 이유는 MPSE는 MPRE용 포트를 PMAC보다 오히려 VMAC와 연관시키기 때문이다). 목적지 MAC가 고유 PMAC인 경우, 프로세스는 1445로 진행한다. 그렇지 않다면, 프로세스는 1435로 진행한다.
1435에서, 프로세스는 인커밍 데이터 패킷의 목적지 MAC가 브로드캐스트 MAC(예를 들어, ff:ff:ff:ff:ff:ff)인지를 결정한다. 일부 실시예들에서, 호스트는 브로드캐스트 MAC를 받아들일 것이지만, 일부 브로드캐스트 패킷은 MPSE에 연결되는 모든 VM에 송신되는 것 보다는 첫번째로 MPRE에 의해 처리되어야 한다. 목적지 MAC가 브로드캐스트 MAC인 경우, 프로세스는 브로드캐스트 패킷이 MPRE로 갈 필요가 있는지를 보기 위해 1440으로 진행한다. 그렇지 않다면, 프로세스는 패킷이 목적지 MAC를 변경하지 않고 MPSE로 가게 하기 위해 1450으로 진행한다.
1440에서, 프로세스는 브로드캐스트 MAC를 갖는 패킷이 MPRE로 포워딩될 필요가 있는지를 결정한다. 일부 실시예들에서, 브로드캐스트 메시지들의 소정 유형들만이 MPRE에게 관심 대상이고, 브로드캐스트 메시지의 소정의 이들 유형들만이 일반적인 VMAC로 변경되는 그것의 브로드캐스트 MAC 어드레스를 가질 필요가 있다. 예를 들어, 브로드캐스트 ARP 질의 메시지가 MPRE에게 관심대상이고, VMAC로 변경되는 그것의 목적지 MAC 어드레스를 가짐으로써 MPRE에 포워드될 것이다. 브로드캐스트 패킷이 MPRE에게 관심대상이 된다면, 프로세스는 1445로 진행된다. 그렇지 않다면, 프로세스는 1450으로 진행한다.
1445에서, 프로세스는 목적지 MAC(PMAC 또는 브로드캐스트)를 일반적인 VMAC로 대체하고, 이것은 이들 목적지 MAC를 갖는 패킷들이 MPRE에 의해 처리될 것이라는 것을 보장한다. 다음으로, 프로세스는 패킷이 변경된 목적지 MAC를 갖는 MPSE로 진행하게 하는 1450으로 진행한다. 그리고나서, 프로세스(1400)는 종료한다.
도 15는 업링크 모듈에 의해 실행되는 후처리 동작들을 위한 프로세스(1500)를 개념적으로 예시한다. 일부 실시예들에서, 프로세스(1500)의 동작들은 PNIC를 통해 호스트 머신을 떠나는 패킷들을 위한 이그레스 파이프라인으로 구현된다. 프로세스는 이것이 (1510에서) 업링크 모듈에서 MPSE로부터 패킷을 수신할 때 시작한다. 다음으로, 프로세스는 (1520에서) 패킷이 원격 호스트를 위한 것인지를 결정한다. 패킷의 목적지 어드레스가 로컬 호스트 머신(예를 들어, MPRE 또는 VM들 중 하나)내의 포트를 가리킨다면, 프로세스는 패킷을 무시하고 종료한다. 그렇지 않다면, 프로세스는 1530으로 진행한다.
1530에서, 프로세스는 출발지 MAC 어드레스가 일반적인 VMAC인지, 즉 패킷이 MPRE로부터 온 것인지를 결정한다. 그렇다면, 프로세스는 1540으로 진행한다. 그렇지 않다면, 프로세스는 1550으로 진행한다. 1540에서, 프로세스는 VMAC를 출발지 MAC 어드레스로서 MPRE의 고유 PMAC로 대체한다. 이것은 패킷의 수신자가 그것의 고유 PMAC 어드레스를 이용하여 송신자 MPRE를 올바르게 식별할 수 있을 것이라는 것을 보장한다.
다음으로, 프로세스는 (1550에서) 데이터가 VXLAN 또는 VLAN과 같은 오버레이 네트워크를 위한 것이라면 오버레이 네트워크 처리를 수행한다. 호스트상의 VM이 상이한 호스트가 아닌 동일한 VXLAN 네트워크에서의 다른 VM에 데이터 패킷을 송신할 때, 프로세스는 VXLAN 네트워크의 VNI를 이용하여 물리적 네트워크에 그것을 주입하기 전에 프레임을 캡슐화할 것이다. 이 동작을 수행함으로써, 업링크 모듈은 호스트가 VXLAN 하의 터널 엔드포인트(VTEP)의 역할을 하게 한다. 다음으로, 프로세스는 (1560에서) 패킷을 물리적 NIC로 포워드한다. 다음으로, 프로세스(1500)는 종료한다.
B. VDR을 이용하여 어드레스 주소분해를 수행하기
언급된 바와 같이, 각각의 LRE는 각각의 네트워크 세그먼트들에서의 가상 머신들을 인터페이싱하기 위한 한 세트의 논리적 인터페이스를 갖는다. 일부 실시예들에서, 가상 머신들의 관점에서, 네트워크 세그먼트의 논리적 인터페이스는 또한 네트워크 세그먼트에서의 가상 머신들을 위한 디폴트 게이트웨이의 역할을 한다. 일부 실시예들에서, LRE가 각각의 호스트 머신에서의 MPRE를 작동하기 때문에, (디폴트 게이트웨이를 위한 ARP와 같은) 그것의 논리적 인터페이스들 중 하나를 위한 ARP 질의를 수신하는 MPRE는 다른 호스트 머신들에 질의를 포워딩하지 않고 질의에 로컬로 응답한다.
도 16은 논리적 네트워크(1600)에서의 VDR/LRE MPRE들의 논리적 인터페이스들을 위한 ARP 질의 동작들을 예시한다. 논리적 네트워크(1600)는 적어도 2개의 호스트 머신(1601 및 1602)에 걸쳐서 분산되어 있다. 호스트 머신(1601)은 MPRE(1611)를 가지고 호스트 머신(1602)은 MPRE(1612)를 갖는다. 각각의 MPRE는 논리적 네트워크의 세그먼트 A를 위한 논리적 인터페이스(LIF A)와 세그먼트 B를 위한 논리적 인터페이스(LIF B)를 갖는다. (MPRE(1611)는 LIF A(1621)와 LIF B(1631)를 가지고; MPRE(1612)는 LIF A(1622)와 LIF B(1632)를 갖는다). 호스트 머신(1601)은 MPRE(1611)의 LIF A를 이용하는 세그먼트 A VM(1629)을 갖는다. 호스트 머신(1602)은 MPRE(1612)의 LIF B를 이용하는 세그먼트 B VM(1639)를 갖는다.
각각의 LIF는 IP 어드레스와 연관된다. 그러나, 예시된 바와 같이, MPRE(1611)의 LIF A(1621)와 MPRE 1612의 LIF A(1622) 둘다 동일한 IP 어드레스(10.1.1.253)를 갖는다. 이것은 세그먼트 A(서브넷 10.1.1.x)의 디폴트 게이트웨이의 IP 어드레스이다. 유사하게, MPRE(1611)의 LIF B(1631)와 MPRE(1612)의 LIF B(1632) 둘다 동일한 IP 어드레스(10.1.2.253)를 갖는다. 이것은 세그먼트 B(서브넷 10.1.2.x)의 디폴트 게이트웨이의 IP 어드레스이다.
도면은 '1' 내지 '6'이 라벨링된 동작에서 VM들(1629 및 1639)에 의해 작성된 2개의 ARP 질의를 예시한다. 동작 '1'에서, 세그먼트 A의 가상 머신(1629)은 그것의 세그먼트의 디폴트 게이트웨이를 위한 ARP 질의를 작성한다. ARP 질의 메시지는 목적지 IP로서의 LIF A(10.1.1.253)의 IP 어드레스와 목적지 MAC 어드레스로서의 브로드캐스트 MAC을 이용한다. 동작 '2'동안, LIF A(1621)는 모든 MPRE들에 대해 VMAC 어드레스에 대해 IP 어드레스 "10.1.1.253"를 주소분해함으로써 ARP 질의에 응답한다. 게다가, LIF A(1621)는 물리적 네트워크에게 ARP 질의 메시지를 패스시키지 않는다. 이것은 다른 호스트 머신들에서의 다른 VDR/LRE MPRE들의 LIF A(예를 들어, 호스트 머신(1602)상의 LIF A(1622))와 같이, LIF A와 동일한 IP 어드레스 "10.1.1.253"를 갖는 네트워크에서의 다른 엔티티들이 응답하는 것을 방지한다. 동작 '3'에서, VM(1629)은 ARP 응답 메시지를 수신하고, 그것의 주소분해 테이블을 갱신하여, MAC 어드레스 "VMAC"에 대한 디폴트 게이트웨이의 IP 어드레스를 주소분해한다. 이 응답 메시지의 목적지 MAC 어드레스는 최초 문의자의 MAC 어드레스(즉, VM(1629)의 "MAC1")이고, 출발지 MAC 어드레스는 MPRE의 새롭게 주소분해된 MAC 어드레스 "VMAC" 이다. 다음으로, VM(1629)는 라우팅될 필요가 있는 차후에 송신된 패킷들을 어드레스하기 위해 이 엔트리를 MPRE(1611)로의 후속 액세스를 위한 주소분해 테이블에 저장한다. 동작들 '4', '5' 및 '6'은 동작들 '1', '2' 및 '3'과 유사하고, 여기서 MPRE(1612)의 LIF B(1632)는 물리적 네트워크에게 ARP 질의 메시지를 패스시키지 않고 세그먼트 B VM(1639)에 의한 ARP 요청에 응답한다. VM(1639)에 의한 ARP 요청이 상이한 MPRE상의 상이한 LIF에 송신된다고 할지라도, 동일한 어드레스 "VMAC"가 ARP 응답에 사용된다.
일단 가상 머신이 디폴트 게이트웨이의 MAC 어드레스를 알고 있다면, 이것은 MPRE의 논리적 인터페이스를 어드레스하기 위해 VMAC를 이용하여 다른 네트워크 세그먼트들에 데이터 패킷들을 송신할 수 있다. 그러나, MPRE가 (예를 들어, 목적지 가상 머신에 대한) 목적지 IP 어드레스가 주소분해한 링크 계층 MAC 어드레스를 알고 있지 않다면, MPRE는 이 어드레스를 주소분해할 필요가 있을 것이다. 일부 실시예들에서, MPRE는 다른 호스트 머신들에서의 동일 LRE의 다른 MPRE들로부터 또는 제어기 클러스터들로부터 그와 같은 어드레스 주소분해 정보를 취득할 수 있다. 일부 실시예들에서, MPRE는 그것의 MAC 어드레스를 주소분해하기 위해 목적지 가상 머신의 네트워크 세그먼트에서 그 자신의 ARP 질의를 개시할 수 있다. 그러한 ARP 요청을 작성할 때, MPRE는 다른 MPRE들에 대한 물리적 네트워크상에 송신되는 패킷들에 대한 출발지 어드레스로서 일반적인 VMAC 어드레스라기 보다는 그 자신의 고유 PMAC 어드레스를 이용한다.
도 17은 일부 실시예들의 MPRE 개시 ARP 질의를 예시한다. 특히, 도면은 MPRE가 그 자신의 ARP 질의를 개시하기 위한 그 자신의 PMAC 어드레스를 사용하는 논리적 네트워크(1700)의 구현을 나타낸다. 예시된 바와 같이, 논리적 네트워크(1700)의 구현은 적어도 2개의 호스트 머신(1701 및 1702)을 포함한다. 호스트 머신(1701)에 존재하는 것은 세그먼트 A의 VM(1731), 세그먼트 A에 대한 논리적 인터페이스(1721)를 갖는 MPRE(1711), 및 물리적 네트워크로부터 데이터를 수신하기 위한 업링크 모듈(1741)이다. 호스트 머신(1702)상에 존재하는 것은 세그먼트 B의 VM(1732), 세그먼트 B에 대한 논리적 인터페이스(1722)를 갖는 MPRE(1712), 및 물리적 네트워크로부터 데이터를 수신하기 위한 업링크 모듈(1742)이다. 일반적인 VMAC 에 덧붙여서, MPRE(1711)는 고유 물리적 MAC 어드레스 "PMAC1"를 가지고, MPRE(1712)는 고유 물리적 MAC 어드레스 "PMAC2"를 갖는다.
'1' 내지 '8'이 라벨링된 동작들에서, 도면은 세그먼트 B의 VM(1732)을 위해 호스트 머신(1701)으로부터 MPRE(1711)에 의해 개시된 ARP 질의를 예시한다. 동작 '1' 동안, (세그먼트 A에서의) IP 어드레스 10.1.1.1를 가진 VM(1731)은 그것의 MPRE(1711)에 의한 L3 라우팅을 요청하는, (세그먼트 B에서의) 목적지 네트워크 계층 어드레스 10.1.2.1로 패킷을 송신한다. VM(1731)은 그것의 디폴트 게이트웨이의 L2 링크 계층 어드레스가 (예를 들어, 이전 ARP 질의로부터의) "VMAC"라는 것을 이미 알고 있기 때문에, 이것은 목적지 IP가 다른 세그먼트에 있는 것과 같이, VMAC를 이용하여 직접적으로 데이터 패킷을 MPRE(1711)로 송신한다.
동작 '2' 동안, MPRE(1711)는 이것이 (예를 들어, 그것의 어드레스 주소분해 테이블을 체크함으로써) 목적지 VM(1732)에 대한 L2 링크 계층 어드레스를 가지고 있지 않다고 결정하고, 그에 따라 목적지 IP "10.1.2.1"에 대한 ARP 질의를 개시한다. 이 ARP 질의는 출발지 MAC 어드레스로서의 MPRE(1711)의 고유 물리적 MAC 어드레스("PMAC1")와 목적지 MAC로서의 브로드캐스트 MAC 어드레스를 이용한다. MPRE(1711)는 목적지 IP "10.1.2.1"가 세그먼트 B에 있다는 것을 결정하기 위해 패킷에 대해 L3 라우팅을 수행하였으며, 그에 따라 출발지 IP를 "10.1.2.253"(즉, LIF B의 IP 어드레스)로 변경한다. 이 브로드캐스트 ARP 메시지는 물리적 네트워크를 트래버스하여 호스트(1702)에 도달한다. 일부 실시예들에서, 논리적 네트워크가 추가적인 호스트들(즉, MPRE들로서 추가적인 로컬 LRE 인스턴스를 갖는 추가적인 호스트들)에 걸쳐 있다면, ARP 메시지는 또한 이러한 다른 호스트들에 송신될 것이다.
동작 '3'동안, 브로드캐스팅된 ARP 질의는 호스트(1702)의 MPSE가 MPRE(1712)로 ARP 질의 패킷을 포워드할 수 있도록, 다음 차례로 브로드캐스트 MAC 어드레스("ffffffffffff')를 모든 MPRE들에 일반적인 "VMAC"로 대체하는, 호스트(1702) 상에서 실행되는 업링크 모듈(1742)에 도착한다. 그러나, 송신자 MPRE(1711)에 고유한 출발지 어드레스 "PMAC1"는 수정된 ARP 질의에 머무른다.
동작 '4' 동안, 호스트(1702)의 MPRE(1712)는 VMAC가 목적지 어드레스라고 보기 때문에 ARP 질의를 수신한다. MPRE(1712)는 목적지 IP 어드레스 10.1.2.1를 결정할 수 없기 때문에, VM(1732)을 포함하는, 세그먼트 B상에 있는 호스트(1702)의 임의의 로컬 VM들에 LIF B(1722)를 통하여 브로드캐스트 (목적지 "ffffffffffff')로서 ARP 질의를 다음 차례로 포워드한다. ARP 질의는 VM(1732)에 대한 (세그먼트 B에 대한) 아웃바운드 LIF(1722)를 통하여 MPRE(1712)를 이그레스한다.
동작 '5'동안, 출발지 MAC 어드레스로서의 "VMAC"를 갖는 브로드캐스트 ARP 질의는 VM(1732)에 도달하고 VM(1732)는 ARP 질의에 대한 응답 메시지를 LIF B(1722)를 통하여 MPRE(1712)에 송신한다. 응답 메시지에서, VM(1732)는 L3 네트워크 계층 어드레스 "10.1.2.1"에 대응하는 L2 레벨 링크 어드레스가 그것의 어드레스 "MAC2"이고 응답이 일반적인 MAC 어드레스 "VMAC"를 이용하여 요청하는 MPRE(1712)로 송신되는 것을 나타낸다. MPRE(1712)는 또한 "10.1.2.1"에 대해 그 자신의 ARP 주소분해 테이블(1752)을 갱신하기 때문에, 이것은 장래에 ARP 프록시의 역할을 할 수 있다.
동작 '6'동안, MPRE(1712)는 이것이 (IP 10.1.1.253이 MAC "PMAC1"에 주소분해된다는 것을 나타내는) 응답하고 있는 ARP 질의로부터 MPRE(1712)에 의해 저장되는 정보에 기초하여, 목적지 MAC 어드레스로서 "PMAC1"를 이용하여 질의하는 MPRE(1711)에 응답 패킷을 되돌려 포워드한다. 동작 '7'동안, 호스트(1702)의 업링크 모듈(1741)은 호스트(1701)에서의 MPSE가 패킷을 로컬로 MPRE(1711)에 포워드할 수 있도록 고유 "PMAC1"를 일반적인 "VMAC"로 해석한다. 최종적으로, 동작 '8'에서, 응답 메시지는 그 자신의 주소분해 테이블(1751)에 IP 어드레스 10.1.2.1(즉, "MAC2")에 대한 어드레스 주소분해를 다음 차례로 저장하는 최초 질의한 MPRE(1711)에 도달하기 때문에, 패킷들을 VM(1731)으로부터 VM(1732)으로 포워딩할 수 있을 것이다. 이 시점에서, 초기에 VM(1731)에 의해 송신되는 데이터 패킷은 VM(1732)으로의 전달을 위해 라우팅될 수 있고 호스트(1702)쪽으로 물리적 네트워크 상에 송신될 수 있다.
MPRE(1712)는 VM(1732)에 대한 어드레스를 자체적으로 결정할 수 없었기 때문에 ARP 문의를 패스시켜야 한다. 그러나, MPRE(1712)가 VM(1732)으로부터 ARP 응답을 수신했다면, 이것은 ARP 문의를 패스시키지 않고 자체적으로 어드레스 10.1.2.1에 대한 후속 ARP 질의들에 응답할 수 있다. 도 18은 MPRE(1712)가 결정할 수 있는 ARP 문의에 응답하기 위한 프록시의 역할을 하는 네트워크(1700)에서의 MPRE(1712)를 예시한다.
도 18은 이전 도면으로부터의 호스트(1702) 뿐만 아니라 또 다른 호스트 머신(1703)을 갖는 네트워크(1700)를 예시한다. 호스트(1702)에서의 MPRE(1712)의 ARP 주소분해 테이블(1752)은 VM(1732)에 대한 IP 어드레스 10.1.2.1를 주소분해하기 위한 엔트리를 이미 가지고 있다. 호스트(1703)에 존재하는 것은 논리적 네트워크의 세그먼트 D상의 VM(1733), 세그먼트 D에 대한 논리적 인터페이스(1724)를 갖는 MPRE(1713), 및 물리적 네트워크로부터 데이터를 수신하기 위한 업링크 모듈(1743)이다. 일반적인 VMAC에 덧붙여서, MPRE(1713)는 고유 물리적 MAC 어드레스 "PMAC3"를 갖는다. '1' 내지 '6'이 라벨링된 동작들에서, 도면은 세그먼트 B에서의 VM(1732)에 대해 호스트 머신(1703)으로부터 MPRE(1713)에 의해 개시되는 ARP 질의를 예시한다.
동작 '1'동안, (세그먼트 D에서의) IP 어드레스 10.1.5.1를 갖는 VM(1733)은 패킷을 그것의 MPRE(1713)에 의한 L3 라우팅을 요청하는 (세그먼트 B에서의) 목적지 네트워크 계층 어드레스 10.1.2.1로 송신한다. VM(1733)은 그것의 디폴트 게이트웨이의 L2 링크 계층 어드레스가 (예를 들어, 이전 ARP 질의로부터의) "VMAC"라는 것을 이미 알고 있기 때문에, 목적지 IP가 또 다른 세그먼트에 있는 것과 같이, VMAC를 이용하여 직접적으로 데이터 패킷을 MPRE(1713)로 송신한다.
동작 '2'동안, MPRE(1713)는 (예를 들어, 그것의 어드레스 주소분해 테이블을 체크함으로써) 목적지 VM(1732))에 대한 L2 링크 계층 어드레스를 가지고 있지 않다는 것을 인식하고, 그에 따라 목적지 IP 10.1.2.1에 대한 ARP 질의를 개시한다. 이 ARP 질의는 출발지 MAC 어드레스로서의 MPRE(1713)의 고유 물리적 MAC 어드레스("PMAC3")와 목적지 MAC으로서의 브로드캐스트 MAC 어드레스를 사용한다. MPRE(1713)는 목적지 IP "10.1.2.1"가 세그먼트 B에 있다는 것을 결정하기 위해 패킷에 대해 L3 라우팅을 행하였고, 그에 따라 출발지 IP를 "10.1.2.253"(즉, LIF B의 IP 어드레스)으로 변경한다. 이 브로드캐스트 ARP 메시지는 물리적 네트워크를 트래버스하여 호스트(1702)에 도달한다. 또한, 도시되지는 않았지만, 브로드캐스트 ARP 메시지는 또한 이 호스트가 MPRE(1711)를 갖는 것과 같이, 호스트(1701)에 도달할 것이다.
동작 '3'동안, 브로드캐스팅된 ARP 질의는 호스트(1702)의 MPSE가 MPRE(1712)로 ARP 질의를 포워드할 수 있도록, 다음 차례로 브로드캐스트 MAC 어드레스("ffffffffffff')를 모든 MPRE들에 일반적인 "VMAC"로 대체하는, 호스트(1702) 상에서 실행되는 업링크 모듈(1742)에 도착한다. 그러나, 송신자 MPRE(1713)에 고유한 출발지 어드레스 "PMAC3"는 수정된 ARP 질의에 머무른다.
동작 '4' 동안, MPRE(1712)는 그 자신의 주소분해 테이블(1752)을 검사하고 이것이 IP 어드레스 10.1.2.1를 MAC2에 주소분해할 수 있다는 것을 인식한다. 따라서, MPRE는 모든 그것의 세그먼트 B VM들로 ARP 질의를 전송하는 것이라기 보다, 물리적 네트워크를 통해 목적지 어드레스 "PMAC3"에 ARP 응답을 송신한다. LIF B(1722)와 VM(1732)은 이 경우에 ARP 응답 동작에 관여하지 않는다.
동작 '5'동안, 호스트(1703)에 대한 업링크 모듈(1743)은 호스트(1703)에서의 MPSE가 패킷을 로컬로 MPRE(1713)에 포워드할 수 있도록 고유 "PMAC3"를 일반적인 "VMAC"로 번역한다. 최종적으로, 동작 '6'에서, 응답 메시지는 그 자신의 주소분해 테이블(1753)에서의 IP 어드레스 10.1.2.1(즉, "MAC2")에 대한 어드레스 주소분해를 다음 차례로 저장하는, 최초 문의한 MPRE(1713)에 도달하기 때문에, 패킷들은 VM(1732)으로부터 VM(1733)으로 포워드할 수 있을 것이다. 이 시점에서, VM(1733)에 의해 초기에 송신되는 데이터 패킷은 VM(1732)으로의 전달을 위해 라우팅될 수 있고 호스트(1702)쪽으로 물리적 네트워크 상에 송신될 수 있다.
도 17 및 도 18은 송신자 MPRE와는 상이한 호스트 머신에 있는 가상 머신에 대한 ARP 문의에서의 고유 PMAC의 사용을 예시한다. 그러나, 일부 실시예들에서, 이 ARP 메커니즘은 송신자 MPRE와 동일한 호스트 머신에서 동작하고 있는 가상 머신의 어드레스를 주소분해하기 위해 작업한다. 도 19는 송신자 MPRE와 동일한 호스트 머신에 있는 가상 머신에 대한 ARP 문의에서의 고유 PMAC의 사용을 예시한다.
도 19는 도 17의 네트워크(1700)에서 일어나는 또 다른 ARP 문의를 예시한다. 도 19에 예시된 바와 같이, 호스트(1702)에 존재하는 것은, MPRE(1712) 이외에, 또 다른 세그먼트 B VM(1734)과 세그먼트 C VM(1735)이다. MPRE(1712)는 VM(1735)과 같은, 세그먼트 C의 VM들과 인터페이싱하기 위한 논리적 인터페이스(1723)를 갖는다. 도 19는 MPRE(1712)에 의해 개시되는 ARP 동작을 예시한다. 이 ARP 동작이 개시되며, 그 이유는 MPRE(1712)가 세그먼트 C의 VM(1735)으로부터 세그먼트 B의 VM(1734)으로 패킷을 라우팅하여야 하기 때문이고, 이들 둘다 호스트(1702)상에 존재한다. 개시되는 MPRE(1711)가 또 다른 호스트 머신의 VM에 대해 문의하는, 도 17에 예시된 ARP 동작과 달리, 도 19에 예시된 ARP 동작은 개시되는 MPRE(1712)와 동일한 호스트 머신에 위치하는 VM을 위한 것이다.
'1' 내지 '9'가 라벨링된 동작들에서, 도면은 세그먼트 B의 VM(1734)에 대한 MPRE(1712)에 의해 개시된 ARP 질의를 예시한다. 동작 '1'동안, (세그먼트 C에서의) IP 어드레스 10.1.3.1를 가진 VM(1731)은 그것의 MPRE(1712)에 의한 L3 라우팅을 요청하는, (세그먼트 B에서의) 목적지 네트워크 계층 어드레스 10.1.2.2로 패킷을 송신한다. VM(1735)은 그것의 디폴트 게이트웨이의 L2 링크 계층 어드레스가 (예를 들어, 이전 ARP 질의로부터의) "VMAC"라는 것을 이미 알고 있기 때문에, 이것은 목적지 IP가 다른 세그먼트에 있는 것과 같이, VMAC를 이용하여 직접적으로 데이터 패킷을 MPRE(1712)로 송신한다.
동작 '2'동안, MPRE(1712)는 이것이 (예를 들어, 그것의 어드레스 주소분해 테이블 체크함으로써) 목적지 VM(1734)애 대한 L2 링크 계층 어드레스를 가지고 있지 않다고 결정하고, 그에 따라 네트워크 세그먼트 B에서의 목적지 IP 10.1.2.2에 대한 ARP 질의를 개시한다. ARP 질의는 세그먼트 B에 대한 호스트(1702)의 모든 로컬 VM들 뿐만 아니라 (호스트(1701)과 같은) 다른 호스트들에게 브로드캐스팅될 것이다.
동작 '3'동안, MPRE(1712)는 LTF B(1722)를 통해 VM(1734)을 포함하는, 로컬 세그먼트 B VM들에 ARP 질의를 브로드캐스팅한다. 이 브로드캐스트가 호스트(1702) 내에서 로컬이기 때문에, 출발지 어드레스는 일반적인 VMAC으로 남아 있다. 동작 '4'동안, 호스트(1702)내에서 (세그먼트 B상에서) 로컬로 브로드캐스팅된 ARP 질의는 VM(1734)에 도달하고 VM(1734)는 ARP 질의에 대한 응답 메시지를 송신한다.
동작들 '3' 및 '4'과 동시에, 동작 '5'동안의 MPRE(1712)는 또한 ARP 요청을 다른 호스트들에 브로드캐스팅한다. 이 브로드캐스트 메시지는 (예를 들어, 물리적 NIC에 송신되기 전에 업링크에 의해 수정되는 바와 같이) 그것의 목적지 MAC로서의 브로드캐스트 MAC 어드레스와 출발지 MAC 어드레스로서의 MPRE(1712)의 고유 PMAC "PMAC2"을 이용한다. MPRE(1712)는 또한 목적지 IP "10.1.2.2"가 세그먼트 B에 있다는 것을 결정하기 위해 패킷에 대해 L3 라우팅을 행하였고, 그에 따라 출발지 IP를 "10.1.2.253"(즉, LIF B의 IP 어드레스)으로 변경한다. 동작 '6'에서의 브로드캐스트 ARP는 업링크 모듈(1741)이 목적지 MAC를 그것의 MPRE(1711)에 대한 일반적인 VMAC로 수정한, 호스트(1701)에 도달한다. 그러나, 다른 호스트들로부터 어떠한 ARP 응답도 없을 것이며, 그 이유는 (이러한 호스트들은 일부 실시예들에서, 그들의 세그먼트 B VM들에게 ARP를 포워드한다고 할지라도) IP 10.1.2.2에 매칭하는 것이 없을 것이기 때문이다.
동작 '7'동안, VM(1734)은 동작 '4'동안 수신되는 ARP 질의에 대한 응답 메시지를 생성한다. 응답 메시지는 L2 어드레스 "MAC4"가 요청된 L3 네트워크 계층 어드레스 "10.1.2.2"에 대응하고, 응답이 그것의 일반적인 MAC 어드레스 "VMAC"를 이용하여 요청한 MPRE로 송신될 것이라는 것을 나타낸다. 동작 '8'동안, VM(1734)에 의해 생성되는 ARP 응답은 LIF B(1722)를 통해 MPRE(1712)에 입력된다. 최종적으로, 동작 '9'에서, MPRE(1712)는 (초기에 송신된 데이터 패킷을 포함하여) VM(1735)으로부터 VM(1734)으로 패킷들을 포워딩할 수 있도록, 그 자신의 주소분해 테이블(1752)에 IP 어드레스 10.1.2.2(즉, "MAC4")에 대한 어드레스 주소분해를 저장한다.
도 20 및 도 21은 MPRE들이 그들의 주소분해 테이블들을 갱신한 이후에 상이한 세그먼트들의 VM들 간에 데이터 트래픽을 송신하기 위한 동작을 예시한다. 특히, 도 20 및 도 21은 도 17 및 도 19에 예시된 바와 같이, 호스트(1701)의 MPRE(1711)와 MPRE(1712)가 이전 ARP 질의들에 의해 그들의 주소분해 테이블들을 갱신한 이후에 VM들(1731, 1732 및 1735) 간의 네트워크(1700)에 대한 데이터 트래픽을 예시한다.
도 20은 세그먼트 A VM(1731)과 세그먼트 C VM(1735)로부터 세그먼트 B VM(1732)으로의 데이터 패킷들의 라우팅을 예시한다. 라우팅은 각각 송신자 VM(1731)과 송신자 VM(1735)을 위한 MPRE들인 MPRE들(1711 및 1712)에서 일어난다. MPRE(1711)는 라우팅 검색을 위해 주소분해 테이블(1751)을 이용하고, 반면에 MPRE(1712)는 라우팅 검색을 위해 주소분해 테이블(1752)을 이용한다.
동작들 '1' 내지 '3"은 세그먼트 A VM(1731)으로부터 세그먼트 B VM(1732)로의 데이터 패킷의 라우팅을 예시한다. 동작 '1'동안, VM(1731)은 일반적인 VMAC를 이용하여 패킷을 MPRE(1711)의 LIF A(1721)로 송신한다. 패킷은 VM(1731)과는 상이한 네트워크 세그먼트(IP 어드레스 10.1.1.1)에 있는 IP 어드레스 10.1.2.1로 정해져 있기 때문에, L3 계층 라우팅을 필요로 한다. 동작 '2'동안, MPRE(1711)는 (즉, 도 17에 나타낸 동작에 의해 학습된 바와 같이) 주소분해 테이블(1751)의 엔트리를 이용하여 IP 어드레스 10.1.2.1를 L2 어드레스 "MAC2"와 세그먼트 B로 결정한다. MPRE(1711)는 물리적 네트워크상으로 송신되어 나가는 패킷에 대한 출발지 어드레스로서 그 자신의 고유 L2 어드레스 "PMAC1"를 이용한다. MPRE(1711)는 또한 아웃바운드 LIF로서 LIF B(1725)를 식별하였고 이 LIF를 이용하여 (세그먼트 B의 네트워크 식별자가 태그되어 있는) 물리적 네트워크 전체에 걸쳐서 패킷들을 호스트(1702)에 송신한다. 동작 '3'동안, 라우팅된 패킷은 물리적 네트워크를 트래버스하여서 L2 어드레스가 "MAC2"인 목적지 VM(1732)에 도착했다.
동작들 '4' 내지 '6'은 세그먼트 C VM(1735)으로부터 세그먼트 B VM(1732)으로의 데이터 패킷의 라우팅을 예시하며, 여기서 데이터 패킷은 호스트(1702)를 떠날 필요가 없다. 동작 '4'동안, VM(1735)은 일반적 VMAC를 패킷의 목적지 MAC로서 이용하여 패킷을 MPRE(1712)의 LIF C(1723)로 송신한다. 패킷은 VM(1735)와는 상이한 네트워크 세그먼트(IP 어드레스 10.1.3.1)에 있는 IP 어드레스 10.1.2.1로 정해져 있기 때문에 L3 라우팅을 필요로 한다. 동작 '5'동안, MPRE(1712)는 주소분해 테이블(1752)의 엔트리를 이용하여 IP 어드레스 10.1.2.1를 L2 어드레스 "MAC2"로 주소분해한다. MPRE(1712)는 또한 이 패킷이 결코 물리적 네트워크에 대한 호스트(1702)를 떠나지 않기 때문에 VMAC를 출발지 L2 MAC 어드레스로서 사용한다. MPRE(1712)는 또한 아웃바운드 LIF로서 LIF B(1722)를 식별하고 이 LIF를 이용하여 패킷을 로컬 세그먼트 B VM(1732)으로 송신했다. 동작 '6'동안, 데이터 패킷은 목적지 VM(1732)에 도착하고, 이것의 MAC 어드레스는 "MAC2"이다.
도 21은 세그먼트 B VM(1732)으로부터 세그먼트 A VM(1731)과 세그먼트 C VM(1735)으로 송신되는 데이터 패킷들의 라우팅을 예시한다. 라우팅은 송신자 VM(1732)에 대한 로컬 라우터 인스턴스인 MPRE(1712)에서 일어난다. MPRE(1712)는 앞서 논의한 바와 같이 라우팅 검색을 위해 주소분해 테이블들(1752)에 의존한다. MPRE(1712)는 VM(1732)과 같은 세그먼트 B의 VM들과 인터페이싱하기 위한 논리적 인터페이스(1722)(LIF B)를 갖는다. MPRE(1712)는 VM(1735)과 같은 세그먼트 C의 VM들과 인터페이싱하기 위한 논리적 인터페이스(1723)(LTF C)를 갖는다. MPRE(1712)는 또한 VM(1731)과 같은 세그먼트 A의 VM들과 인터페이싱하기 위한 논리적 인터페이스(1725)(LIF A)를 갖는다.
동작들 '1' 내지 '3'은 세그먼트 B VM(1732)으로부터 세그먼트 A VM(1731)으로의 데이터 패킷의 라우팅을 예시한다. 동작 '1'동안, VM(1732)은 일반적인 VMAC를 목적지 MAC로서 이용하여 패킷을 MPRE(1712)의 LIF B(1722)로 송신한다. 패킷은 VM(1732)와는 상이한 네트워크 세그먼트(IP 어드레스 10.1.2.1)에 있는 IP 어드레스 10.1.1.1로 정해져 있으며 L3 계층 라우팅을 필요로 한다. 데이터 패킷은 인바운드 LIF로서 LIF B(1722)의 이용을 통해 MPRE(1712)를 입력한다. 동작 '2'동안, MPRE(1712)는 주소분해 테이블(1752)의 엔트리를 이용하여 IP 어드레스 10.1.1.1를 L2 어드레스 "MAC1"로 주소분해한다. MPRE(1711)는 또한 아웃바운드 LIF로서 LIF A(1726)를 식별하고 이 LIF A를 이용하여 (세그먼트 A의 VNI가 태그되어 있는) 물리적 네트워크 전체에 걸쳐서 패킷들을 호스트(1701)에 송신했다. 일부 실시예들에서, MPRE(1711)는 또한 일반적 "VMAC"를 출발지 MAC 어드레스로서의 그 자신의 고유 L2 어드레스 "PMAC2"로 대체한다. 동작 '3'동안, 라우팅된 패킷은 목적지 VM(1731)에 도착하고, 이에 대한 MAC 어드레스는 "MAC l"이다.
동작들 '4' 내지 '6'은 세그먼트 B VM(1732)으로부터 세그먼트 C VM(1735)으로의 데이터 패킷의 라우팅을 예시한다. 동작 '4'동안, VM(1732)은 패킷의 목적지 MAC 어드레스로서 일반적인 VMAC를 이용하여 패킷을 MPRE(1712)의 LIF B(1722)로 송신한다. 패킷은 VM(1732)과는 상이한 네트워크 세그먼트(IP 어드레스 10.1.2.1)에 있는 IP 어드레스 10.1.3.1로 정해져 있기 때문에 L3 라우팅을 필요로 한다. 동작 '5'동안, MPRE(1712)는 주소분해 테이블(1752)의 엔트리를 이용하여 IP 어드레스 10.1.3.1를 L2 어드레스 "MAC3"로 주소분해한다. 목적지 L2가 어드레스 "MAC3"가 MPRE(1712)와 동일한 호스트 머신(호스트(1702))에서 동작하는 가상 머신을 가리키기 때문에, MPRE는 일부 실시예들에서 물리적 네트워크에게 데이터 패킷을 송신하지 않을 것이다. MPRE(1712)는 또한 이 패킷이 결코 물리적 네트워크에 대한 호스트(1702)를 떠나지 않기 때문에 VMAC를 출발지 L2 MAC 어드레스로 사용한다. MPRE(1712)는 또한 아웃바운드 LIF로서 LIF C(1723)를 식별하고 이 LIF를 이용하여 패킷을 로컬 세그먼트 C VM(1735)에 송신했다. 동작 '6'동안, 패킷은 목적지 VM(1735)에 도착하고, 이에 대한 MAC 어드레스는 "MAC 3"이다.
일부 실시예들의 경우, 도 22는 인커밍 데이터 패킷에 대한 어드레스 주소분해를 다루기 위한 일부 실시예들의 MPRE 인스턴스에 의해 실행되는 프로세스(2200)를 개념적으로 예시한다. 프로세스(2200)는 (2210에서) (예를 들어, MPSE로부터의) 데이터 패킷을 수신할 때 개시된다. 이 데이터 패킷은 라우팅되거나 포워드될 필요가 있는 정규 데이터 패킷, 또는 응답을 필요로 하는 ARP 질의일 수 있다. 다음으로, 프로세스는 (2220에서) 수신된 데이터 패킷이 ARP 질의인지를 결정한다. 데이터 패킷이 ARP 질의인 경우, 프로세스는 2225로 진행한다. 그렇지 않다면, 처리는 2235로 진행한다.
2225에서, 프로세스는 ARP 질의에 대한 목적지 어드레스를 주소분해할 수 있는지를 결정한다. 일부 실시예들에서, 프로세스는 패킷의 네트워크 계층 IP 어드레스를 주소분해하기 위한 대응하는 엔트리가 있는지를 결정하기 위해 그 자신의 ARP 주소분해 테이블를 검사한다. 프로세스가 어드레스를 주소분해할 수 있다면, 이것은 2260으로 진행한다. 프로세스가 어드레스를 주소분해할 수 없다면, 이것은 2230으로 진행한다.
2230에서, 프로세스는 ARP 질의를 포워드한다. ARP 요청이 물리적 네트워크로부터 유래하면, 프로세스는 로컬 호스트 머신 내의 VM들로 ARP 질의를 포워드한다. ARP 요청이 로컬 호스트 머신의 VM로부터 유래하면, 프로세스는 로컬 호스트 머신의 다른 VM들 뿐만 아니라 다른 호스트 머신들의 MPRE들에 의해 다뤄질 물리적 네트워크에 요청을 포워드한다. 다음으로, 프로세스는 (2250에서) ARP 응답을 대기하고 수신하며 응답 메시지에 기초하여 그것의 ARP 주소분해 테이블을 갱신한다. 다음으로, 프로세스(2200)는 (2260에서) ARP 질의 메시지에 응답하고 종료한다.
2235에서, 프로세스는 인커밍 데이터 패킷에 대한 목적지 어드레스를 주소분해할 수 있는지를 결정한다. 프로세스가 (예를 들어, 매칭 ARP 주소분해 테이블 엔트리를 갖는) 목적지 어드레스를 주소분해할 수 있는 경우, 프로세스는 2245로 진행한다. 그렇지 않다면, 처리는 2240으로 진행한다.
2240에서, 프로세스는 원격 호스트 머신들 뿐만 아니라 그것의 아웃바운드 LIF를 통하여 로컬 가상 머신들에게 ARP 질의를 생성하여 브로드캐스팅한다. 다음으로, 프로세스는 (2242에서) 그것의 ARP 질의에 대한 응답을 수신하고 그것의 ARP 테이블을 갱신한다. 다음으로, 프로세스(2200)는 (2245에서) 주소분해된 MAC 어드레스에 따른 데이터 패킷을 포워드하고 종료한다.
C. 비-VDR 호스트 머신을 위한 라우팅 에이전트로서의 VDR
일부 실시예들에서, 기본적인 물리적 네트워크상의 네트워크 트래픽을 생성하고 받아들이는 모든 호스트 머신들이 가상화 소프트웨어를 실행하고 VDR들을 구동하는 것은 아니다. 일부 실시예들에서, 이러한 호스트들 중 적어도 일부는 가상화 소프트웨어를 전혀 실행하지 않고 어떠한 가상 머신들도 호스트하지 않는 물리적 호스트 머신들이다. 이러한 비-VDR 물리적 호스트 머신들의 일부는 L3 계층 라우팅을 위한 독립형 라우터들에 의존하여 사용되는, 기본적인 물리적 네트워크에 장착된 레거시 네트워크 엘리먼트들(예를 들어, 필터 또는 또 다른 비-하이퍼바이저/비-VM 네트워크 스택)이다. 이러한 비-VDR 물리적 호스트 머신들에 대한 L3 계층 라우팅을 수행하기 위해, 일부 실시예들은 이러한 비-VDR 호스트 머신들마다 전용 라우팅 에이전트(지정된 인스턴스 또는 지정된 MPRE)의 역할을 하는 호스트 머신상에서 실행되는 로컬 LRE 인스턴스(즉, MPRE)를 지정한다. 일부 실시예들에서, 그러한 비-VDR 물리적 호스트로의 그리고 이로부터의 L2 트래픽은 지정된 MPRE를 통과해야만 하지 않고 호스트 머신들의 MPSE들(예를 들어, 320)의 로컬 인스턴스들에 의해 다뤄진다.
도 23은 물리적 호스트로의 그리고 이로부터의 패킷들의 L3 라우팅을 다루기 위한 MPRE를 지정하는 논리적 네트워크(2300)의 구현을 예시한다. 예시된 바와 같이, 네트워크(2300)는 호스트 머신들(2301-2309)을 포함한다. 호스트 머신(2301 및 2302)은 각각 MPRE들(2311 및 2312)을 구동하는 가상화 소프트웨어를 실행하고 있다(MPRE들(2313-2318)을 실행하는 다른 호스트 머신들(2303-2308)은 도시되어 있지 않다). 호스트 머신들(2301 및 2302) 둘다 다수의 가상 머신들을 호스팅하고 있고, 각각의 호스트 머신은 MPRE를 구동하고 있다. 각각의 이러한 MPRE들은 논리적 네트워크(2300)의 세그먼트들 A, B 및 C에 대한 논리적 인터페이스(LIF A, LIF B 및 LIF C)를 갖는다. 모든 MPRE들은 그 자신의 호스트의 가상 머신에 의해 어드레스될 때 일반적인 "VMAC"를 공유한다. MPRE들(2311 및 2312) 둘다 또한 그들 자신의 고유 PMAC들("PMAC1" 및 "PMAC2")를 갖는다.
호스트 머신(2309)은 가상화 소프트웨어를 실행하지 않고 L3 계층 라우팅을 위한 그 자신의 MPRE를 가지고 있지 않은 물리적 호스트이다. 물리적 호스트(2309)는 IP 어드레스 10.1.2.7와 연관되고, MAC 어드레스 "MAC7"를 갖는다(즉, 물리적 호스트(2309)는 네트워크 세그먼트 B이다). 물리적 호스트(2309)로부터 또 다른 네트워크 세그먼트의 가상 머신으로 데이터를 송신하기 위해, 물리적 호스트는 (물리적 네트워크와 L2 스위치를 통하여) 데이터를, 물리적 호스트(2309)에 대한 지정된 MPRE인 MPRE(2312)로 송신해야 한다.
도 24는 논리적 네트워크(2300)에서 비-VDR 물리적 호스트(2309)에 의해 개시되는 ARP 동작을 예시한다. 예시된 바와 같이, 논리적 네트워크(2300)에서의 각각의 호스트 머신들(2301-2304)은 MPRE(각각 2311-2314)를 가지고, 각각의 MPRE는 고유 PMAC 어드레스(MPRE(2313)에 대한 "PMAC3", MPRE(2314)에 대한 "PMAC4")를 갖는다. 각각의 MPRE는 IP 어드레스 10.1.2.253를 갖는 세그먼트 B에 대한 논리적 인터페이스(LIF B)를 갖는다. 그러나, 호스트 머신(2302)의 MPRE(2312)만이 "지정된 인스턴스"이고, 이것은 물리적 호스트(2309)로부터의 ARP 질의 브로드캐스트 메시지에 응답할 것이다.
ARP 동작은 동작들 '1', '2', '3', 및 '4'에서 예시된다. 동작 '1'동안, 물리적 호스트(2309)는 물리적 네트워크를 통해 그것의 디폴트 게이트웨이 "10.1.2.253"에 대한 ARP 질의 메시지를 브로드캐스팅한다. 언급된 바와 같이, IP 어드레스 10.1.2.253는 LIF B와 연관되고, 이것은 모든 MPRE들(2311-2314)에 존재한다. 그러나, 호스트(2302)의 MPRE(2312)만이 물리적 호스트(2309)에 대한 지정된 인스턴스이고, MPRE(2312)만이 ARP 질의에 응답할 것이다. 일부 실시예들에서, 제어기(또는 제어기들의 클러스터)는 하기 섹션 III에 기술된 바와 같이, MPRE들 중 하나를, 특정 세그먼트를 위한 지정된 인스턴스로서 지정한다.
동작 '2'동안, MPRE(2312)는 물리적 호스트(2309)로부터 ARP 질의 메시지를 수신하고 물리적 호스트의 MAC 어드레스를 장래의 라우팅을 위해 주소분해 테이블(2342)에 기록한다. 물리적 호스트(2309)에 대한 지정된 인스턴스가 아닌 다른 모든 MPRE들(2301, 2302 및 2303)은 ARP를 무시한다. 일부 실시예들에서, 이러한 다른 MPRE들은 그럼에도 불구하고 물리적 호스트의 MAC 어드레스를 그들 자신의 주소분해 테이블들에 기록할 것이다.
동작 '3'동안, MPRE(2312)는 ARP 응답 메시지를 물리적 호스트(2309)에 송신한다. 비-VDR 물리적 호스트로의 이 응답에서, 출발지 MAC 어드레스는 일반적인 VMAC이라기 보다는 MPRE(2312) 자신의 고유 물리적 MAC 어드레스("PMAC2")이다. 이것은 물리적 호스트(2309)가 단지 다른 MPRE 인스턴스들 중 임의의 것이라기 보다, L3 라우팅을 위해 MPRE(2312)와 통신한다는 것을 알 수 있도록 한 것이다. 최종적으로, 동작 '4'에서, 물리적 호스트(2309)는 그것의 디폴트 게이트웨이의 고유 물리적 MAC 어드레스("PMAC2")를 그것의 주소분해 테이블(2349)에 기록한다. 지정된 인스턴스와 물리적 호스트(2309)가 서로 다른 MAC 어드레스를 가지고 있다면, 메시지 교환은 물리적 호스트와 논리적 네트워크(2300)의 나머지 간에 시작될 수 있다.
도 25는 가상 머신들(2321 및 2322)로부터 물리적 호스트(2309)로의 패킷들의 라우팅을 위한 지정된 MPRE(2312)의 사용을 예시한다. 예시된 바와 같이, IP 어드레스 10.1.1.1(세그먼트 A)와 MAC 어드레스 "MAC1"를 갖는 VM(2321)은 호스트(2301)상에서 실행되고 있고, IP 어드레스 10.1.3.2(세그먼트 C)와 MAC 어드레스 "MAC4"를 갖는 VM(2322)은 호스트(2302)상에서 실행되고 있다. 물리적 호스트(2309)는 IP 어드레스 10.1.2.7(세그먼트 B)와 MAC 어드레스 "MAC7"를 갖는다. 물리적 호스트(2309), VM(2321) 및 VM(2322) 모두가 네트워크의 상이한 세그먼트들에 있기 때문에, VM들(2321 및 2322)로부터 물리적 호스트(2309)로 트래버스하는 데이터 패킷들은 MPRE들에 의한 L3 라우팅을 거쳐야 된다. VM(2322)에 대한 MPRE는 물리적 호스트(2309)에 대한 지정된 MPRE(MPRE(2312))이지만, VM(2321)에 대한 MPRE(MPRE(2311))는 없다는 것에 유의하는 것이 중요하다.
도 25는 VM(2322)에서 '1', '2' 및 '3'이 라벨링된 3개의 동작에서 VM(2322)으로부터 물리적 호스트(2309)로의 패킷의 라우팅을 예시한다. 동작 '1'동안, 세그먼트 C VM(2322)은 패킷을 그것의 LIF C(2334)를 통하여 MPRE(2312)로 송신한다. 데이터 패킷은 호스트(2302)상의 MPSE가 패킷을 MPRE(2312)로 포워딩하기 위해 일반적인 "VMAC"를 목적지 MAC 어드레스로 사용한다. 목적지 IP 어드레스는 10.1.2.7이고, 이것은 물리적 호스트(2309)의 IP 어드레스이다.
동작 '2'동안, MPRE(2312)는 목적지 IP 어드레스 10.1.2.7를 물리적 호스트(2309)의 MAC 어드레스 "MAC7"로 주소분해하기 위해 그것의 어드레스 주소분해 테이블(2342)의 엔트리를 이용한다. MPRE(2312)는 또한 데이터 패킷이 물리적 네트워크에게 호스트 머신으로부터 송신됨에 따라, 출발지 MAC 어드레스로서 그 자신의 고유 물리적 MAC 어드레스 "PMAC2"를 일반적인 "VMAC"과는 상반되게 사용한다. 동작 '3'에서, MPRE(2312)는 세그먼트 B(LIF B(2332))에 대한 그것의 논리적 인터페이스를 이용하여 데이터 패킷을 송신한다. 라우팅된 데이터 패킷은 그것의 주소분해된 L2 MAC 어드레스(즉, "MAC7")를 이용하여 물리적 호스트(2309)에 (물리적 네트워크와 L2 스위치를 통하여) 포워드된다. 패킷이 물리적 호스트(2309)에 도착할 때, 출발지 MAC 어드레스가 "PMAC2", 즉 지정된 인스턴스의 고유 물리적 MAC로 남아 있을 것이라는 것은 주목할 만하다. 일부 실시예들에서, 물리적 호스트는 일반적인 "VMAC"를 보지 않을 것이고, 그 대신에 지정된 MPRE의 "PMAC2"와만 통신한다.
도 25는 또한 '4', '5' 및 '6'이 라벨링된 동작들에서 VM(2321)으로부터 물리적 호스트(2309)로의 패킷의 라우팅을 예시한다. VM(2322)과는 달리, VM(2321)의 MPRE(2311)는 지정된 인스턴스가 아니다. 그럼에도 불구하고, 일부 실시예들에서, MPRE가 물리적 호스트의 지정된 인스턴스가 아닌 가상 머신은 라우팅된 패킷을 물리적 호스트로 송신하기 위해 그 자신의 MPRE를 여전히 사용한다.
동작 '4'동안, 세그먼트 A VM(2321)은 패킷을 그것의 LIF A(2333)를 통하여 MPRE(2311)로 송신한다. 데이터 패킷은 일반적인 "VMAC"를 가상 라우터의 MAC 어드레스로서 사용하여 패킷을 MPRE(2311)로 라우팅한다. 목적지 IP 어드레스는 10.1.2.7 이고, 이것은 물리적 호스트(2309)의 IP 어드레스이다.
동작 '5'동안, MPRE(2311)는 목적지 IP 어드레스 10.1.2.7가 물리적 호스트를 위한 것이며, 이것은 물리적 호스트(2309)를 위한 지정된 MPRE가 아니라는 것을 결정한다. 일부 실시예들에서, 각각의 MPRE 인스턴스는, 그것의 논리적 인터페이스들의 구성의 일부로서, 이것이 각각의 특정 LTF에 대한 지정된 인스턴스인지를 인식한다. 일부 실시예들에서, 구성은 또한 MPRE 인스턴스가 지정된 인스턴스인지를 식별한다. 그 결과, MPRE(2311)는 지정된 MPRE(2312)로부터 주소분해 정보를 취득하려고 할 것이다. 일부 실시예들에서, 주어진 물리적 호스트에 대한 지정된 인스턴스가 아닌 MPRE는 지정된 MPRE를 갖는 호스트에게 (예를 들어, UDP 채널을 통해) 질의를 송신하여, IP 어드레스의 주소분해를 요청할 것이다. 지정된 인스턴스가 주소분해 정보를 갖는다면, (예를 들어, 동일한 UDP 채널을 통해) 주소분해 정보를 질의한 MPRE에게 반송할 것이다. 지정된 MPRE가 물리적 호스트 자체의 IP 어드레스를 주소분해할 수 없다면, 물리적 호스트의 IP에 대한 ARP 요청을 시작하고, 질의한 MPRE에게 주소분해를 반송할 것이다. 이 예에서, MPRE(2311)는 질의한 메시지를 호스트(2302)에게(즉, MPRE(2312))에게 송신할 것이고, 호스트(2302)는 물리적 호스트(2309)에 대한 (그것의 주소분해 테이블(2342)로부터의) 주소분해된 MAC 어드레스를 MPRE(2311)로 반송할 것이다.
동작 '6'동안, MPRE(2311)는 주소분해된 목적지 MAC 어드레스를 이용하여 데이터 패킷을 그것의 LIF B(2331)를 통해 물리적 호스트(2309)로 송신한다. 일부 실시예들에서, MPRE(2311)는 또한 물리적 호스트 IP 10.1.2.7에 대한 주소분해 어드레스를 그것의 어드레스 주소분해 테이블에 저장한다. 데이터 패킷에 대한 출발지 MAC 어드레스는 MPRE(2311)의 고유 PMAC("PMAC1")이며 일반적 MAC는 물론 지정된 인스턴스의 PMAC도 아니다. 이것이 ARP 패킷이라기 보다는 데이터 트래픽 패킷이기 때문에, 물리적 호스트는 세그먼트 B VM들에 대한 패킷들을 송신하는 MAC 어드레스로서 PMAC1를 저장하지 않을 것이다. 라우팅된 데이터 패킷은 그것의 주소분해된 L2 MAC 어드레스("MAC7")를 이용하여 (물리적 네트워크와 L2 스위치를 통하여) 물리적 호스트(2309)에게 포워드된다.
도 26a 및 도 26b는 물리적 호스트(2309)로부터 가상 머신들(2321 및 2322)로의 패킷들의 라우팅을 위한 지정된 MPRE(2312)의 사용을 예시한다. 언급된 바와 같이, (세그먼트로 B IP 어드레스 10.1.2.7를 갖는) 물리적 호스트(2309)는 가상 머신들(2321 및 2322)과는 상이한 세그먼트에 있기 때문에, 물리적 호스트로부터 이러한 가상 머신들로의 데이터 패킷은 네트워크 계층에서 라우팅되어야 한다. 일부 실시예들에서, 특정 물리적 호스트에 대한 지정된 MPRE는 항상 해당 특정 물리적 호스트로부터의, 또는 특정 세그먼트의 모든 호스트들에 대한 패킷들에 대해 L3 라우팅을 수행하기 위해 이용된다. 이 예에서, MPRE(2312)는 VM(2322)이 동일한 호스트 머신(2302)에서 지정된 MPRE(2312)로서 동작하고 있다고 할지라도, 물리적 호스트(2309)를 포함하는, 세그먼트 B의 임의의 물리적 호스트들로부터 VM(2321 및 2322) 양쪽으로 데이터 패킷을 라우팅하기 위한 지정된 MPRE이다.
도 26a는 '1', '2' 및 '3'이 라벨링된 3개의 동작에서 물리적 호스트(2309)로부터 VM(2322)로의 데이터 패킷의 라우팅을 예시한다. 동작 '1'에서, 물리적 호스트(2309)는 패킷을 호스트(2302)로 송신한다. 이 패킷은 세그먼트 C에 있는 IP 어드레스 10.1.3.2를 갖는 VM(2322)으로 정해진다. (도 24의 ARP 동작에 의해 생성되는) 그것의 주소분해 테이블(2349)의 엔트리에 기초하여, MPRE는 "PMAC2"로서 디폴트 게이트웨이 IP 어드레스 10.1.2.253을 주소분해하고, 이것은 MPRE(2312)의 고유 물리적 MAC 어드레스이다. 패킷은 물리적 네트워크를 통하여 호스트(2302)의 업링크 모듈(2352)에 도착한다.
동작 '2'에서, 업링크 모듈(2352)은 고유 "PMAC2"를 일반적인 VMAC로 변경하기 때문에, 패킷은 적절하게 호스트(2302) 내에서 한번 포워드될 수 있다. 다음으로, 패킷은 MPRE(2312)에 도착하고 MPRE(2312)의 LIF B(2332)에 의해 다뤄진다.
동작 '3'에서, MPRE(2312)는 그것의 어드레스 주소분해 테이블의 정보를 이용하여, IP 어드레스 10.1.3.2를 VM(2322)에 대한 "MAC4"로서 주소분해하고, 데이터 패킷을 VM(2322)으로 송신한다. MPRE(2312)는 또한 물리적 호스트(2309)의 출발지 MAC 어드레스 "MAC7"를 일반적인 VMAC으로 대체한다.
도 26b는 '4', '5' 및 '6'이 라벨링된 3개의 동작에서 물리적 호스트(2309)로부터 VM(2321)으로의 데이터 패킷의 라우팅을 예시한다. 동작 '4'에서, 물리적 호스트(2309)는 지정된 MPRE(2312)를 구동하는 호스트(2302)에 물리적 네트워크를 통해 패킷을 송신한다. 이 패킷은 세그먼트 A에 있는 IP 어드레스 10.1.1.1를 갖는 VM(2321)으로 정해진다. 패킷은 주소분해 테이블(2349)의 엔트리에 기초하여 지정된 MPRE(2312)의 고유 물리적 MAC 어드레스인 L2 MAC 어드레스 "PMAC2"에 어드레스된다. 목적지 VM(2321)가 그 자신의 MPRE(2311)를 갖는 호스트 머신(2301)상에 있다는 것은 주목할 만한다. 그러나, 물리적 호스트(2309)는 여전히 패킷을 첫번째로 MPRE(2312)로 송신하며, 그 이유는 이것이 MPRE(2311)라기 보다는 물리적 호스트에 대한 지정된 인스턴스이기 때문이다. 패킷은 물리적 네트워크를 통하여 호스트(2302)의 업링크 모듈(2352)에 도착한다.
동작 '5'에서, 업링크 모듈(2352)은 고유 "PMAC2"를 일반적인 VMAC로 변경하기 때문에, 패킷은 적절하게 호스트(2302) 내에서 한번 포워드될 수 있다. 다음으로, 패킷은 MPRE(2312)에 도착하고 MPRE(2312)의 LIF B(2332)에 의해 다뤄진다.
동작 '6'에서, MPRE(2312)는 그것의 LIF A(2335)를 이용하여 IP 어드레스 10.1.1.1를 VM(2321)에 대한 "MAC1"으로서 주소분해하고 데이터 패킷을 VM(2321)으로 송신한다. 라우팅된 패킷은 출발지 MAC 어드레스가 지정된 MPRE(2312)의 "PMAC2"라는 것을 나타낸다. MPRE(2312)와 목적지 VM(2321)이 상이한 호스트 머신들상에 있기 때문에, 패킷은 실제로 VM(2321)에 도착하기 전에, 호스트(2302)상의 MPSE를 통해, 그리고나서 물리적 네트워크를 통해, 그리고나서 호스트(2301)상의 MPSE를 통해 송신된다.
도 25 및 도 26을 참조하여 상술한 바와 같이, 가상 머신들로부터 물리적 호스트로의 데이터 트래픽의 라우팅은 개별 MPRE들에 의해 수행되는 반면, 물리적 호스트로부터 가상 머신들로의 데이터 트래픽은 지정된 MPRE를 통해 패스해야 한다. 다시 말하면, 물리적 호스트로의 네트워크 트래픽은 포인트 대 포인트이지만, 물리적 호스트로부터의 네트워크 트래픽은 분산된다. 도 23 내지 도 20의 논리적 네트워크(2300)에서는 예시되지 않았지만, 일부 실시예들에서의 논리적 네트워크의 구현은 다중 비-VDR 물리적 호스트들을 가질 수 있다. 일부 실시예들에서, 각각의 이러한 비-VDR 물리적 호스트들은 호스트 머신들 중 하나에서 대응하는 지정된 MPRE를 갖는다. 일부 실시예들에서, 특정 MPRE는 일부 또는 모든 비-VDR 물리적 호스트들에 대한 지정된 인스턴스로서의 역할을 할 것이다. 예를 들어, 일부 실시예들은 특정 세그먼트의 모든 물리적 호스트들에 대한 특정 MPRE를 지정했다.
일부 실시예들에 대해, 도 27은 비-VDR 물리적 호스트로부터의 L3 계층 트래픽을 다루기 위한 프로세스(2700)를 개념적으로 예시한다. 일부 실시예들에서, 프로세스(2700)는 호스트 머신상에서 실행되는 가상화 소프트웨어 내에서 MPRE 모듈에 의해 수행된다. 일부 실시예들에서, 이 프로세스는 도 26a 및 도 26b에 예시되는 동작들 동안 MPRE들(2311 및 2312)에 의해 수행된다.
프로세스(2700)는 호스트가 L3 라우팅을 요청하는 데이터 패킷(즉, 네트워크의 하나의 세그먼트로부터 유래하지만 네트워크의 또 다른 세그먼트를 목적지로 하는 패킷)을 수신할 때 시작한다. 프로세스(2700)는 (2710에서) 패킷이 비-MPRE 물리적 호스트로부터의 패킷인지를 결정한다. 일부 실시예들에서, MPRE는 물리적 호스트들과 그들의 IP 어드레스들의 리스트에 대하여 데이터 패킷의 IP 어드레스를 조사함으로써 결정한다. 일부 실시예들에서, 그러한 리스트는 네트워크의 제어기들로부터의 한 세트의 구성 데이터의 일부이다. 알려진 물리적 호스트로부터의 패킷이 아니라면, 프로세스는 2740으로 진행한다.
2720에서, 프로세스는 MPRE가 데이터 패킷을 송신하는 물리적 호스트에 대한 지정된 인스턴스인지를 결정한다. 일부 실시예들에서, 각각의 MPRE는 네트워크 제어기들에 의해 구성되고, MPRE들의 일부는 물리적 호스트들에 대한 지정된 인스턴스들로서 구성된다. 이러한 실시예들의 일부에서의 MPRE는 데이터 패킷에 표시된 바와 같이 물리적 호스트에 대한 지정된 인스턴스인지를 보기 위해 그 자신의 구성 데이터를 조사할 것이다. 일부 기타 실시예들에서, 각각의 MPRE는 예를 들어, 물리적 호스트의 및 그 자신의 고유 식별자들(예를 들어, IP 어드레스)을 해싱함으로써, 이것이 표시된 물리적 호스트에 대한 지정된 인스턴스인지를 로컬로 결정한다. MPRE가 특정 물리적 호스트에 대한 지정된 인스턴스가 아니라면, 프로세스는 (2725에서) 물리적 호스트로부터의 데이터 패킷을 무시하고 종료한다. 그렇지 않다면, 프로세스는 2730으로 진행한다.
2730에서, 프로세스는 인커밍 데이터 패킷이 ARP 질의인지를 결정한다. 그렇다면, 프로세스는 (예를 들어, 도 24에서의 MPRE(2312)에 의해 수행된 것과 같이) (2735에서) MPRE의 고유 물리적 MAC를 갖는 ARP 질의에 응답하고 종료한다. 그렇지 않다면, 프로세스는 2740으로 진행한다.
2740에서, 프로세스는 예를 들어, (ARP 질의를 발행함으로써 또는 그것의 주소분해 테이블로부터의 저장되어 있는 ARP 결과를 이용함으로써) 목적지의 L3 IP 어드레스를 그것의 L2 MAC 어드레스로 주소분해함으로써, 데이터 패킷에 대해 L3 라우팅을 수행한다. 다음으로, 프로세스는 (2750에서) 주소분해된 목적지 MAC 어드레스에 기초하여 라우팅된 데이터 패킷을 목적지 가상 머신으로 포워드한다. 목적지 VM이 MPRE와 동일한 호스트 머신상에 있다면, 데이터 패킷은 호스트상의 MPSE를 통하여 VM에게 포워드될 것이다. 목적지 VM이 상이한 호스트상에 있다면, 데이터 패킷은 물리적 네트워크를 통하여 다른 호스트에게 포워드될 것이다. 패킷을 포워드한 이후에, 프로세스(2700)는 종료한다.
일부 실시예들에 대해, 도 28은 (즉, 프로세스를 수행하는 MPRE와 동일한 호스트상의 VM으로부터 수신된) 비-VDR 물리적 호스트로의 L3 트래픽을 다루기 위한 프로세스(2800)를 개념적으로 예시한다. 일부 실시예들에서, 이 프로세스는 도 25에 예시되는 동작들 동안 MPRE들(2311 및 2312)에 의해 수행된다.
프로세스(2800)는 호스트가 L3 라우팅을 요청하는 데이터 패킷을 수신할 때 시작한다. 프로세스(2800)는 (2810에서) 패킷이 비-VDR 물리적 호스트를 목적지로 하는지를 결정한다. 패킷이 그러한 물리적 호스트를 목적지로 하지 않는다면, 프로세스는 2840으로 진행한다. 패킷이 그러한 물리적 호스트를 목적지로 하면, 프로세스는 2820으로 진행한다.
2820에서, 프로세스는 (예를 들어, 물리적 호스트가 일부인 세그먼트에 기초하여) MPRE가 데이터 패킷이 송신되는 물리적 호스트에 대한 지정된 인스턴스인지를 결정한다. 그렇다면, 프로세스는 2825로 진행한다. MPRE가 지정된 인스턴스가 아니라면, 프로세스는 2830으로 진행한다.
2830에서, 프로세스는 지정된 인스턴스로부터 어드레스 주소분해 정보를 요청하고 취득한다. 일부 실시예들에서, 이것은 지정된 인스턴스에 UDP 채널을 통해 요청 메시지를 송신하고 응답 메시지의 어드레스 주소분해 정보를 수신함으로써 달성된다. 일부 실시예들에서, 지정된 인스턴스가 아닌 MPRE는 물리적 호스트에 대한 어드레스 주소분해 정보를 저장하지 않고, 물리적 호스트에 송신된 각각의 패킷마다 UDP 채널을 통하여 요청을 송신한다. 기타 실시예들에서, 어드레스 주소분해 정보를 수신한 이후에, MPRE는 장래의 패킷들을 라우팅시 사용하기 위해 이 정보를 저장한다.
2825에서, 프로세스는 지정된 인스턴스로서, 물리적 호스트에 대한 어드레스를 주소분해할 수 있는지를 결정한다. 일부 실시예들에서, 프로세스는 물리적 호스트에 대한 매칭 엔트리가 있는지를 보기 위해 그 자신의 ARP 테이블을 조사한다. 프로세스가 어드레스를 주소분해할 수 있다면, 프로세스는 2840으로 진행한다. 그렇지 않다면, 프로세스는 (2735에서) 물리적 호스트의 어드레스에 대한 ARP 요청을 수행하고, ARP 응답시 그것의 ARP 테이블을 갱신한다. 일부 실시예들에서, 지정된 인스턴스만이 물리적 호스트를 위한 라우팅 정보를 유지한다. 다음으로, 프로세스는 2840으로 진행한다.
2840에서, 프로세스는 예를 들어, 물리적 호스트의 IP 어드레스를 그것의 MAC 어드레스로 주소분해함으로써, 데이터 패킷에 대해 L3 라우팅을 수행한다. 프로세스는 MPRE가 데이터 패킷에 표시되는 물리적 호스트에 대한 지정된 인스턴스이든지 또는 아니든지간에, MPRE의 고유 PMAC에 출발지 MAC 어드레스를 설정한다. 다음으로, 프로세스는 (2850에서) 주소분해된 목적지 MAC 어드레스에 기초하여 라우팅된 데이터 패킷을 물리적 호스트로 포워드한다. 패킷을 포워딩한 이후에, 프로세스(2800)는 종료한다.
D. VDR를 상이한 오버레이 네트워크들 간의 브릿지로 사용하기
일부 실시예들에서, 호스트 머신에서 동작하는 LRE는 (예를 들어, 하나의 IP 서브넷으로부터 또 다른 IP 서브넷으로의) L3 라우팅을 수행하는 것은 물론, 동일한 서브넷 내에서 상이한 오버레이 네트워크들 간의(예를 들어, VXLAN 네트워크와 VLAN 네트워크 간의) 브릿징을 수행한다. 일부 실시예들에서, 2개의 상이한 오버레이 네트워크가 동일한 IP 서브넷에 있는 VM들을 갖는 것이 가능하다. 이러한 환경들에서, L3 라우팅은 하나 오버레이 네트워크로부터 또 다른 것으로 데이터 패킷들을 송신하는데 이용되지 않는다. 그 대신에, 포워딩은 네트워크 세그먼트 식별자(예를 들어, VNI 또는 그것의 연관된 논리적 인터페이스)와 링크 계층 어드레스(예를 들어, MAC 어드레스) 간의 바인딩 또는 페어링에 기초하는 브릿징에 의존한다.
일부 실시예들에서, 호스트 머신의 적어도 하나의 로컬 LRE 인스턴스는 라우팅 MPRE라기 보다 브릿징 MPRE로서 구성된다. 브릿징 MPRE는 라우팅이라기 보다는 브릿징을 위해 구성되는 논리적 인터페이스들을 포함하는 MPRE이다. 라우팅을 위해 구성된 논리적 인터페이스(라우팅 LIF들)은 IP를 MAC 어드레스로 주소분해함으로써 논리적 네트워크의 상이한 세그먼트들 간에 L3 라우팅을 수행한다. 브릿징을 위해 구성되는 논리적 인터페이스(브릿징 LIF들)는 MAC 어드레스를 네트워크 세그먼트 식별자(예를 들어, VNI) 또는 논리적 인터페이스와 바인딩하고, 하나의 네트워크 세그먼트로부터 또 다른 것으로 패킷들을 송신할 때 패킷들의 네트워크 세그먼트 식별자를 수정함으로써 브릿징을 수행한다.
도 29는 상이한 오버레이 네트워크들 간에 브릿지의 역할을 하기 위한 브릿지 LIF들을 포함하는 LRE(2900)를 예시한다. LRE(2900)의 논리적 인터페이스(2901-2904)는 브릿지 LIF로서 구성된다. 특히, 브릿지 LIF(2901)는 오버레이 네트워크 "VLAN(10)"의 MAC 어드레스를 학습하고 브릿징하기 위한 것이고, 브릿지 LIF(2902)는 오버레이 네트워크 "VLAN(20)"의 MAC 어드레스를 학습하고 브릿징하기 위한 것이고, 브릿지 LIF(2901)는 오버레이 네트워크 "VXLAN(100)"의 MAC 어드레스를 학습하고 브릿징하기 위한 것이며, 브릿지 LIF(2901)는 오버레이 네트워크 "VXLAN(200)"의 MAC 어드레스를 학습하고 브릿징하기 위한 것이다. 예시된 바와 같이, 상이한 오버레이 네트워크들에서의 VM들의 적어도 일부는 동일한 IP 서브넷 "192.168.1.x"에 있다.
도 30은 브릿지 LIF들과 라우팅 LIF들 양쪽을 포함하는 논리적 네트워크(3000)의 구현을 예시한다. 예시된 바와 같이, 논리적 네트워크(3000)는 다중 호스트 머신들(3001-3009)을 포함하고, 각각의 호스트 머신은 LRE의 분산된 인스턴스를 구동한다. LRE는 VLAN(10), VLAN(20), VXLAN(100) 및 VXLAN(200)과 인터페이싱하기 위한 논리적 인터페이스들을 갖는다. LRE는 호스트들(3001 및 3003)에서 라우팅 MPRE들(3011 및 3013)로서 동작하고 있으며, 그 이유는 이러한 호스트 머신들의 로컬 LRE 인스턴스들만이 라우팅 LIF들을 가지고 있기 때문이다. 대조적으로, LRE는 호스트(3002)에서 브릿징 MPRE(3012)로서 동작하고 있으며, 그 이유는 모든 그것의 논리적 인터페이스가 브릿지 LIF들로서 구성되기 때문이다. 예시되지는 않았지만, 일부 실시예들에서, 호스트 머신에서 동작하는 로컬 LRE 인스턴스(즉, MPRE)는 B-LIF들과 R-LIF들 양쪽 모두를 가질 수 있기 때문에, 브릿징 MPRE와 라우팅 MPRE 양쪽의 역할을 할 수 있다. 따라서, 그러한 호스트 머신상의 VM들은 여전히 그것의 로컬 MPRE를 통해 다른 IP 서브넷들의 목적지들에 패킷들을 송신할 수 있다.
일부 실시예들에서, 로컬 LRE 인스턴스는 단 하나의 호스트 머신의 (즉, 브릿지 LIF들만을 갖는) 브릿징 MPRE로서의 역할을 하도록 구성된다. 일부 실시예들에서, 다중 호스트 머신들은 브릿징 MPRE들로서 구성되는 그들의 로컬 LRE 인스턴스들을 갖는다. 일부 실시예들에서, 한 세트의 브릿지 LIF들을 갖는 브릿징 MPRE는 또한 데이터 패킷들을 브릿지 LTF들에 및 이들로부터 라우팅하기 위해 적어도 하나의 라우팅 LIF를 갖는다. 일부 실시예들에서, 브릿징 LIF들을 갖는 LRE 인스턴스는 또한 다른 LIF들과는 달리, 분산되어 있지 않지만, 논리적 네트워크에서의 하나의 호스트에서만 활성 상태인, 라우팅을 위한 퇴적된 LIF(sedimented LIF: S-LIF)를 갖는다. S-LIF에 의해 라우팅되는 임의의 패킷은 활성 상태의 S-LIF를 갖는 호스트 머신에 송신될 것이다.
일부 실시예들에서, 브릿징 MPRE는 그들이 특정 MAC 어드레스를 첫번째로 본 논리적 인터페이스(또는 연관된 네트워크 세그먼트 식별자)를 학습하고, 브릿징 테이블(또는 학습 테이블)에서 해당 논리적 인터페이스를 해당 MAC 어드레스와 연관시킨다. 브릿지가 다음으로 그것의 브릿징 테이블의 엔트리와 매칭되는 목적지 MAC 어드레스를 갖는 데이터 프레임 또는 패킷을 수신할 때, 이것은 브릿징 테이블의 매칭하는 엔트리에 의해 표시되는 논리적 인터페이스상에 프레임을 송신하여 내보낸다. 일부 실시예들에서, 브릿지가 아직 패킷에 대한 목적지 MAC 어드레스를 보지 못했다면, 이것은 데이터 패킷이 그 상에서 수신된 논리적 인터페이스를 제외하고 모든 활동 상태의 논리적 인터페이스들상에 패킷을 플러딩하여 내보낸다. 특정 브릿징 인터페이스상에 패킷을 송신하여 내보낼 때, 일부 실시예들의 브릿징 MPRE는 연관된 네트워크 세그먼트에 대한 적절한 네트워크 세그먼트 식별자(예를 들어, 8비트 VLAN 태그, 24비트 VXLAN ID, MPLS 라벨, 기타 등등)를 갖도록 패킷을 수정한다. 일부 실시예들에서, 브릿징 테이블의 콘텐츠는, 브릿징 MPRE를 갖는 호스트가 실패하는 이벤트에서, 네트워크의 제어기들이 브릿징 MPRE의 역할을 하기 위해 또 다른 호스트 머신에서 실행되는 MPRE를 빠르게 어노인트(anoint)할 수 있도록 하나의 호스트로부터 또 다른 호스트로 전송될 수 있다.
도 31은 브릿징 MPRE에 의한 MAC 어드레스의 학습을 예시한다. 예시된 바와 같이, 호스트(3100)는 VM들(3111-3114)과 브릿징 MPRE(3130)를 인터페이싱하는 포트들을 갖는 MPSE(3120)를 갖는다. MPSE(3120)는 물리적 NIC(3190)와 물리적 네트워크에 연결되는 업링크(예시되지 않음)를 갖는다. 브릿징 MPRE(3130)는 각각 오버레이 네트워크들 "VLAN(10)", "VLAN(20)", "VXLAN(100)" 및 "VXLAN(200)"에 대한 브릿지 LIF들(3141-3144)을 갖는다.
일반적인 VMAC에 어드레싱되는 패킷들만을 받아들이는 라우팅 LIF들과는 달리, 브릿지 LIF들은 MPSE에 의해 포트를 통해 볼 수 있는 임의의 MAC 어드레스를 학습할 것이다. 일부 실시예들에서, MPSE는 출발지 MAC 어드레스의 네트워크 세그먼트 또는 오버레이 네트워크에서 발견될 수 없는 목적지 MAC 어드레스를 갖는 데이터 패킷과 같은, 포워드하는 방법을 스위치가 알지 못하는 임의의 데이터 패킷을 소프트웨어 브릿지에 송신할 것이다. 그와 같은 데이터 패킷들은 브릿징을 위한 브릿징 MPRE에 송신되고, 브릿징 MPRE는 출발지 MAC 어드레스와 연관되는 네트워크 세그먼트 식별자 또는 논리적 인터페이스를 학습할 것이다.
도 31은 3개의 동작 '1', '2', 및 '3'에서의 이 학습 프로세스를 예시한다. 동작 '1'동안, 출발지 어드레스 "MAC(200)"와 "VXLAN(200)"의 출발지 VNI(본 명세서에서 임의의 네트워크 세그먼트 식별자를 나타내기 위해 사용되는 VNI)를 갖는 패킷(3170)은 물리적 NIC(3190)로부터 VM(3112)으로 송신되고 있다. 이 패킷은 또한 VXLAN(200)과는 상이한 네트워크 세그먼트상에 있는 목적지 어드레스를 가지고, 그에 따라 스위치(3120)는 브릿징을 위한 브릿징 MPRE(3130)에게 패킷을 포워드한다.
동작 '2'에서, 브릿징 MPRE(3130)는 패킷을 보고, 그것의 출발지 MAC 어드레스("MAC(200)")와 그것의 네트워크 식별자("VXLAN(200)")를 학습한다. 일부 실시예들에서, 네트워크 "VXLAN(200)"를 인터페이싱하기 위한 논리적 인터페이스(3144)는 MAC 어드레스와 패킷의 VNI를 학습하는데 이용된다. 동작 '3'에서, 학습된 MAC 어드레스와 VNI 페어링은 브릿징 테이블(3150)의 엔트리에 저장된다. 브릿징 테이블(3150)은 이미 VNI "VLAN(20)"와 "MAC(20)"의 페어링을 학습했다. 도시되지는 않았지만, 브릿징 MPRE(3130)는 또한 MAC 어드레스에 대한 적절한 네트워크 세그먼트 식별자를 갖는 올바른 브릿징 LIF를 통해 이 패킷을 송신해 내보낼 것이다. 후속하는 3개의 도면들에 기술되는 바와 같이, 브릿징 MPRE(3130)의 브릿징 테이블들이 이 목적지 MAC와 브릿지 LIF들 중 하나 간의 바인딩을 안다면, 브릿지 LIF는 패킷을 수정하여 올바른 VNI를 포함시킬 것이며, 다음으로 식별된 LIF를 통해 패킷을 송신하여 내보낼 것이다. 그렇지 않다면, 도 34를 참조하여 후술되는 바와 같이, 브릿지는 LIF들을 플러딩하여 L2 학습을 수행할 것이다.
도 32는 호스트(3100)와 브릿징 MPRE(3120)에 의해 이전에 학습된 MAC-VNI 페어링을 이용하여 2개의 상이한 오버레이 네트워크상의 2개의 VM 간의 브릿징을 예시한다. 도면은 3개의 동작 '1', '2', 및 '3'에서의 이 브릿징 프로세스를 예시한다. 동작 '1'동안, VM(3113)은 목적지 어드레스 "MAC(20)"를 갖는 오버레이 네트워크 "VLAN(10)"로부터 패킷을 송신하지만, "MAC20"은 오버레이 네트워크 "VLAN(10)"에서 발견되는 어드레스가 아니기 때문에, 패킷은 브릿지 BDR(3130)로 송신된다. 동작 '2'동안, VLAN(10)에 대한 브릿지 LIF(3141)는 패킷을 수신하고, "MAC(20)"가 VNI "VLAN(20)"과 연관된다는 것을 이전에 학습한 브릿징 테이블(3150)에서 MAC 어드레스 "MAC(20)"에 대한 엔트리를 조사한다. 따라서, 동작 '3'동안, (VNI "VLAN(20)"과 연관되는) 브릿지 LIF(3142)는 VLAN(20)에 있고 MAC 어드레스 "MAC(20)"를 갖는 VM(3111)에 데이터 패킷을 송신해 내보낸다. 이러한 2개의 LIF 간의 브릿징을 수행하기 위해, 일부 실시예들의 브릿징 MPRE(3130)은 VLAN(10)을 위한 VNI(즉, 이 VLAN을 위한 VLAN 태그)를 떼어내서, 그 다음으로 VLAN(20)을 위한 VNI(즉, 이 VLAN을 위한 VLAN 태그)를 부가한다. 일부 실시예들에서, 브릿징 MPRE(3130)는 제어기 클러스터로부터의 구성 데이터의 일부로서 상이한 오버레이 네트워크들을 위한 VNI들을 떼어내서 부가하는 방법에 대한 명령어들을 수신한다.
도 33은 브릿징 MPRE(3130)를 구동하고 있는 호스트(3100)에서 동작하고 있지 않고 있는 2개의 VM 간의 브릿징을 예시한다. 언급된 바와 같이, 일부 실시예들에서, 모든 호스트 머신이 브릿지로서 구성되는 그것의 LRE 인스턴스를 가지고 있지는 않다. 이러한 실시예들 중 일부에서, 브릿징 MPRE는 다른 호스트 머신들의 2개의 원격 VM 간의 브릿징 기능성, 또는 로컬 VM(즉, VM들(3111-3114) 중 하나)과 또다른 호스트 머신의 원격 VM 간의 브릿징 기능성을 제공한다.
도면은 3개의 동작 '1', '2', 및 '3'에서의 이 브릿징 프로세스를 예시한다. 동작 '1'에서, 호스트(3100)는 물리적 NIC(3190)를 통하여 원격 VM으로부터 패킷을 수신한다. 패킷은 목적지 어드레스 "MAC(200)"를 갖는 오버레이 네트워크 "VXLAN(100)"로부터의 패킷이지만, "MAC(200)"는 오버레이 네트워크 "VXLAN(100)"에서 발견되는 어드레스가 아니다. 동작 '2'동안, VXLAN(100)에 대한 브릿지 LIF(3143)는 패킷을 수신하고, "MAC(200)"가 VNI "VXLAN(200)"과 연관된다는 것을 이전에 학습한 브릿징 테이블(3150)에서 MAC 어드레스 "MAC(200)"에 대한 엔트리를 조사한다. 동작 '3'동안, (VNI "VXLAN(200)"과 연관되는) 브릿지 LIF(3144)는 오버레이 네트워크 "VXLAN(200)"에서 MAC 어드레스 "MAC(200)"를 갖는 원격 VM에 대한 물리적 네트워크에게 데이터 패킷을 송신해 내보낸다. 이러한 2개의 LIF 간의 브릿징을 수행하기 위해, 일부 실시예들의 브릿징 MPRE(3130)는 VXLAN(100)을 위한 VNI(즉, 24비트 VXLAN ID)를 떼어내고, 그 다음에 VXLAN(200)을 위한 VNI(즉, 24비트 VXLAN ID)를 부가한다.
이러한 경우들(도 32 및 도 33) 양쪽에서, 도시되지는 않았지만, 인커밍 패킷은 출발지 MAC 어드레스를 가질 것이다. 도 31에서와 같이, 일부 실시예들의 브릿징 MPRE(3130)는 이러한 출발지 어드레스들의 인커밍 LIF와의 바인딩을 저장할 것이다. 즉, 도 32에서의 패킷의 출발지 어드레스는 VLAN(10) LIF에 바인딩되어 브릿징 테이블에 저장될 것이고, 도 33에서의 패킷의 출발지 어드레스는 VXLAN(100) LIF에 바인딩되어 브릿징 테이블에 저장될 것이다.
도 32 및 도 33은 브릿징 쌍이 이미 이전에 학습되었고 브릿징 테이블에서 발견될 수 있는 예들을 예시한다. 도 34a는 목적지 MAC 어드레스가 브릿징 테이블의 매칭된 엔트리를 가지고 있지 않으며 브릿징 MPRE(3130)가 페어링을 찾기 위해 네트워크를 플러딩하는 브릿징 동작을 예시한다. 도면은 5개의 동작 '1', '2', '3', '4', 및 '5'에서의 이 브릿징 프로세스를 예시한다.
동작 '1'에서, 호스트(3100)는 물리적 NIC(3190)를 통하여 원격 VM으로부터 패킷을 수신한다. 패킷은 목적지 어드레스 "MAC(300)"를 갖는 오버레이 네트워크 "VLAN(10)"으로부터의 패킷이지만, "MAC(300)"는 오버레이 네트워크 "VXLAN(100)"에서 발견되는 어드레스가 아니기 때문에 패킷은 올바른 오버레이 네트워크에의 브릿징을 요구한다. 패킷은 또한 "MAC(400)", VLAN(10)상의 VM의 출발지 어드레스를 갖는다.
동작 '2'동안, VLAN(10)에 대한 브릿지 LIF(3141)는 패킷을 수신하고, 브릿징 테이블(3150)에서 MAC 어드레스 "MAC(300)"에 대한 엔트리를 조사하지만, 매칭되는 페어링을 찾을 수 없다(즉, 브릿징 MPRE(3130)는 MAC(300)가 바인딩되는 VNI를 아직 학습하지 않았다). 게다가, 도시되지는 않았지만, VLAN(10)에 대한 "MAC(400)"의 바인딩이 저장된다. 따라서, 동작 '3'에서, 브릿징 MPRE(3130)는 VLAN(10)을 제외한 모든 VNI들에 (여전히 목적지 어드레스 "MAC(300)"를 가지고 있는) 데이터 패킷을 송신함으로써 모든 다른 브릿지 LIF들(3142-3144)을 플러딩시킨다. 다음으로, MPSE(3120)는 올바른 목적지에 대한 패킷을 얻기 위해 오버레이 네트워크들 내에 표준 L2 동작들을 담당한다.
동작 '4'에서, 상이한 VNI들을 갖는 플러딩된 데이터 패킷들은 호스트 머신(3100)상에서 동작하는 VM들에 도달하고, 동작 '5'에서, 상이한 VNI들을 갖는 플러딩된 데이터 패킷들은 다른 호스트 머신들에 대한 물리적 NIC를 통해 밖으로 송신된다. 일부 실시예들에서, MPSE(3120)는 올바른 오버레이 네트워크상의 모든 VM들에게 패킷을 플러딩한다. MPSE(3120)가 MAC(300)의 목적지를 알고 있다면, 패킷을 이 알려진 목적지로 송신할 수 있다. 게다가, 모든 3개의 오버레이 네트워크에 대한 패킷들이 물리적 네트워크상에서 송신되는 것으로 나타나 있지만, 일부 실시예들에서, MPSE는 목적지 어드레스가 위치하고 있지 않은 2개를 폐기할 것이다.
도 34b는 플러딩에 대한 응답으로부터의 MAC 어드레스 페어링의 학습을 예시한다. 도면은 4개의 동작 '1', '2' 및 '3'에서의 이 응답 및 학습 프로세스를 예시한다. 동작 '1'동안, "VXLAN(100)"을 위한 VNI를 갖는 "MAC(300)"으로부터의 응답은 호스트 머신(3100)에 도착한다. 일부 실시예들에서, 그러한 응답은, VM이 VLAN(10)상의 최초 패킷의 출발지, "MAC400"로 패킷을 반송할 때, VM으로부터 또는 MAC 어드레스 "MAC(300)"를 갖는 다른 머신으로부터 온다.
동작 '2'에서, 데이터 패킷은 브릿징 MPRE(3130)에 진입하고, "VXLAN(100)"에 대한 브릿지 LTF(3143)에 의해 수신된다. 동작 '4'에서, 브릿징 MPRE(3130)는 "MAC(300)"를 "VXLAN(100)"과 바인딩하는 엔트리로 브릿지 테이블(3150)을 갱신하고, 패킷을 VLAN(10)에 브릿지한다. 이 포인트로부터, 브릿징 MPRE(3130)는 플러딩에 의존하지 않고 "MAC(300)"로 정해진 데이터 패킷들을 브릿지할 수 있다.
일부 실시예들에 대해, 도 35는 VDR을 사용하는 논리적 네트워크에서 브릿징을 수행하기 위한 프로세스(3500)를 개념적으로 예시한다. 일부 실시예들에서, 프로세스는 브릿지 LIF들을 갖는 MPRE(즉, 브릿징 MPRE)에 의해 수행된다. 프로세스(3500)는 브릿징 MPRE가 MPSE로 그것의 포트를 통해 패킷을 수신할 때 시작한다. 이 패킷은 그것의 현재 VNI와 매칭되지 않는 목적지 MAC 어드레스를 가질 것이고, 그에 따라 브릿지에 송신되었다. 프로세스는 (3505에서) 브릿징 MPRE가 이전에 결코 볼 수 없었던 출발지 MAC 어드레스를 패킷이 가지고 있는지(즉, 출발지 MAC 어드레스가 특정 인터페이스에 바인딩되어 그것의 브릿징 테이블에 저장되는지)를 결정한다. 그렇다면, 프로세스는 3510으로 진행한다. 브릿징 MPRE가 이전에 출발지 MAC 어드레스를 보았다면, 프로세스는 3520으로 진행한다.
3510에서, 프로세스는 브릿징 MPRE가 데이터 패킷을 수신한 오버레이 네트워크의 VNI(또는 네트워크 세그먼트)(즉, 브릿징 MPRE에 의한 수신시 패킷이 태그되어 있는 VNI)와 출발지 MAC 어드레스를 쌍으로 하는 새로운 엔트리로 그것의 브릿지 테이블을 갱신한다. 출발지 MAC가 VNI에 의해 식별되는 네트워크 세그먼트에 있을 것이 확실하기 때문에, 이 정보는 그들의 목적지 어드레스와 동일한 MAC 어드레스를 갖는 장래의 패킷들을 브리지하기에 유용하다. 이 정보는 VNI와 이 MAC 어드레스 간의 페어링을 제공하기 위해 브릿지 테이블에 저장된다.
다음으로, 프로세스는 (3520에서) 목적지 MAC 어드레스에 대한 엔트리가 그것의 브릿징 테이블에서 발견될 수 있는지를 결정한다. 브릿징 MPRE가 이 MAC 어드레스로부터 패킷을 이전에 브릿지했을 때, 어드레스는 MAC:VNI 페어링(브릿징 MPRE가 타임 아웃되지 않는다면)으로서 그것의 테이블에 저장되어야 한다.
목적지 어드레스가 브릿징 테이블에 없다면, 프로세스는 (3530에서) 데이터 패킷이 수신된 오버레이 네트워크의 브릿지 LIF를 제외한 모든 브릿지 LIF들을 플러딩한다. 일부 실시예들에서, 프로세스는 상이한 VNI들을 감당하지만, 동일한 목적지 MAC 어드레스를 갖는 상이한 오버레이 네트워크들에 동일한 데이터 패킷을 송신함으로써, 모든 브릿지 LIF들을 플러딩시킨다. 패킷이 그것의 목적지에 도달한다고 가정하면, 브릿징 MPRE는 아마도 목적지로부터 응답 패킷을 수신할 것이고, 그 포인트에서, 프로세스(3500)의 또 다른 인스턴스는 (3505에서) 브릿징 MPRE가 MAC:VNI 페어링을 학습하게 할 것이다.
목적지 어드레스가 브릿지 테이블에 있을 때, 프로세스는 (3550에서) 목적지 MAC에 대한 VNI를 이용하여 그것의 목적지에 패킷을 브릿지한다. 이 VNI-MAC 페어링은 브릿징 테이블에서 발견되고, 일부 실시예들에서, LIF 구성은 브릿징을 수행하는 방법(즉, 패킷에 VNI를 첨부하는 방법)에 대한 명령어들을 포함한다. 패킷을 그것의 목적지 인터페이스에(또는 플러딩의 경우에, 모든 LIF들에) 브릿징한 이후에, 프로세스(3500)는 종료한다.
III. VDR의 제어 및 구성
일부 실시예들에서, 상술한 바와 같이 (라우팅 및/또는 브릿징을 위한) MPRE들로서 호스트 머신들에서 로컬로 동작하는 LRE 인스턴스들은 제어기들의 클러스터에 의해 생성되는 구성 데이터 세트들에 의해 구성된다. 일부 실시예들에서의 제어기들은 상이한 테넌트들 또는 사용자들에 의해 생성되고 특정되는 논리적 네트워크들에 기초하여 이러한 구성 데이터 세트들을 다음 차례로 생성한다. 일부 실시예들에서, 네트워크 가상 기반 구조를 위한 네트워크 매니저는 사용자들이 네트워크 가상 기반 구조를 통해 구현될 수 있는 상이한 논리적 네트워크들을 생성할 수 있게 하고나서, 이러한 논리적 네트워크들의 파라미터들을 제어기들에 밀어 넣어서 제어기들이 LRE들에 대한 구성 데이터를 포함하는, 호스트 머신 특정 구성 데이터 세트들을 생성할 수 있다. 일부 실시예들에서, 네트워크 매니저는 제어기들로부터 LRE들에 대한 구성 데이터를 페치하기 위한 명령어들을 호스트 머신들에 제공한다.
일부 실시예들에 대해, 도 36은 논리적 네트워크 사양들이 (MPRE들/브릿지들이 될) 호스트 머신들의 LRE들에 대한 구성들로 변환되는 네트워크 가상 기반 구조(3600)를 예시한다. 예시된 바와 같이, 네트워크 가상 기반 구조(3600)는 네트워크 매니저(3610), 제어기들(3620)의 하나 이상의 클러스터들 및 물리적 네트워크에 의해 상호연결되는 호스트 머신들(3630)을 포함한다. 호스트 머신들(3635-3639)이 이 도면에 도시되지 않았지만, 호스트 머신(3630)은 호스트 머신들(3631-3639)을 포함한다.
네트워크 매니저(3610)는 논리적 네트워크를 생성하는 하나 이상의 사용자를 위한 사양들을 제공한다. 일부 실시예들에서, 네트워크 매니저는 사용자들이 네트워크 가상 기반 구조(3600)를 통해 가상화될 수 있는 그들 자신의 논리적 네트워크들을 특정하도록 한 애플리케이션들의 세트를 포함한다. 일부 실시예들에서, 네트워크 매니저는 사용자들이 프래그래밍 환경에서 논리적 네트워크들을 특정하기 위한 응용 프로그래밍 인터페이스(API)를 제공한다. 네트워크 매니저는 호스트 머신들에서 구현하기 위해 제어기들(3620)의 클러스터들에 이러한 생성된 논리적 네트워크들을 다음 차례로 밀어 넣는다.
제어기 클러스터(3620)는 네트워크 가상 기반 구조(3600)에서의 호스트 머신들(3630)의 동작들을 제어하기 위한 다중 제어기들을 포함한다. 제어기는 네트워크 매니저들에 의해 생성되는 논리적 네트워크들에 기초하여 호스트 머신들에 대한 구성 데이터 세트들을 생성한다. 제어기들은 또한 동적으로 구성 갱신 및 라우팅 정보를 호스트 머신들(3631-3634)에게 제공한다. 일부 실시예들에서, 제어기들은 각각의 호스트 머신들이 일정한 제어 평면 노드가 실패할지라도 여전히 갱신들과 경로들을 수신할 수 있도록 보장하기 위해 분산되거나 융통성있는 제어 평면 아키텍처를 제공하기 위해 조직된다. 일부 실시예들에서, 제어기들 중 적어도 일부는 호스트 머신들에서 동작하는 가상 머신들이다.
호스트 머신(3630)은 LRE들을 구동시키고, 이 LRE들을 MPRE들/브릿지들로서 구성하기 위해 제어기 클러스터(3620)로부터 구성 데이터를 수신한다. 각각의 호스트 머신들은 구성 데이터를 제어기들(3620)의 클러스터로부터 검색하기 위한 제어기 에이전트를 포함한다. 일부 실시예들에서, 각각의 호스트 머신은 VDR 제어 평면에 따라 그것의 MPRE 포워딩 테이블을 갱신한다. 일부 실시예들에서, VDR 제어 평면은 최적 경로들을 광고하거나/결정하기 위해 라우팅 피어들에 OSPF(open shortest path first) 또는 BGP(border gateway protocol)과 같은 표준 경로-교환 프로토콜들을 이용하여 통신한다.
도 36은 또한 호스트 머신들(3630)의 LRE들을 구성하기 위해 네트워크 가상 기반 구조(3600)에서 일어나는 동작들을 예시한다. 동작 '1'에서, 네트워크 매니저(3610)는 LRE들에 대한 구성을 페치하기 위해 호스트 머신들에게 명령어들을 통신한다. 일부 실시예들에서, 이 명령어는 제어기들(3620)의 클러스터들의 특정 위치들을 가리키는 어드레스를 포함한다. 동작 '2'에서, 네트워크 매니저(3610)는 클러스터들(3620)에서 논리적 네트워크 사양들을 제어기들로 송신하고, 제어기들은 개별적인 호스트 머신들과 LRE들에 대한 구성 데이터를 생성한다.
동작 '3'에서, 호스트 머신들(3630)에서 동작하는 제어기 에이전트들은 동작 '2'에서 수신되는 명령어들에 기초하여, 제어기들(3620)의 클러스터로부터의 LRE 구성들에 대한 요청들을 송신한다. 즉, 제어기 에이전트들은 이들이 네트워크 매니저(3610)에 의해 지적된 제어기들과 접촉한다. 동작 '4'에서, 제어기들(3620)의 클러스터들은 요청들에 응답하여 호스트 머신들에게 LRE 구성들을 제공한다.
도 37은 네트워크 매니저(3610)로부터 개별적인 호스트 머신들(3631-3634)에서 동작하는 LRE들로의 구성 데이터의 전달을 개념적으로 예시한다. 예시된 바와 같이, 네트워크 매니저(3610)는 사용자 사양에 따라 상이한 테넌트들을 위한 논리적 네트워크들을 생성한다. 네트워크 매니저는 생성된 논리적 네트워크들(3710 및 3720)의 설명들을 제어기들(3620)로 전달한다. 제어기(3620)는 각각 개별적인 호스트 머신들(3631-3634)로의 전달을 위해 논리적 네트워크 설명들(3710 및 3720)을 구성 데이터 세트들(3731-3734)로 다음 차례로 처리한다. 그러나, 기타 실시예들에서, 네트워크 매니저는 이러한 구성 데이터 세트를 생성하고, 제어기들은 호스트 머신들로의 전달만을 담당한다. 이러한 구성 데이터 세트는 개별적인 호스트 머신들의 MPRE들로서 동작하는 상이한 논리적 네트워크들의 LRE들을 구성하는데 다음 차례로 이용된다.
도 38은 개별적인 호스트 머신들에게 전달되는 구성 데이터 세트의 구조를 예시한다. 도면은 호스트 머신들(3631-3639)에 대한 구성 데이터 세트(3731-3737)를 예시한다. 호스트 머신들은 2개의 상이한 테넌트 X 및 Y에 대한 2개의 LRE들(3810 및 3820)을 구동시키고 있다. 호스트 머신들(3631, 3632, 3634 및 3637)은 각각 (테넌트 X의) LRE(3810)의 MPRE를 구동하도록 구성되는 한편, 호스트 머신들(3632, 3633, 3634 및 3635)은 각각 (테넌트 Y의) LRE(3820)의 MPRE를 구동하도록 구성된다. 도 7을 참조하여 앞서 논의한 바와 같이, 상이한 테넌트들의 상이한 논리적 네트워크들에 대한 상이한 LRE들이 동일한 호스트 머신에 존재할 수 있다는 것은 주목할만하다. 도 38의 예에서, 호스트 머신(3632)은 테넌트 X에 대한 LRE(3810)와 테넌트 Y에 대한 LRE(3820) 양쪽에 대한 MPRE들을 구동시키고 있다.
테넌트 X에 대한 LRE(3810)는 네트워크 세그먼트들 A, B 및 C에 대한 LIF들을 포함한다. 테넌트 Y에 대한 LRE(3820)는 네트워크 세그먼트들 D, E 및 F에 대한 LIF들을 포함한다. 일부 실시예들에서, 각각의 논리적 인터페이스는 논리적 네트워크에 특정적이고, 어떠한 논리적 인터페이스도 상이한 테넌트들에 대한 상이한 LRE들에 나타나지 않을 수 있다.
일부 실시예들에서의 호스트에 대한 구성 데이터는 그것의 VMAC(이것은 모든 호스트들에 대해 일반적이다), 그것의 고유 PMAC, 및 해당 호스트상에서 실행되는 LRE들의 리스트를 포함한다. 예를 들어, 호스트(3633)에 대한 구성 데이터는 호스트(3633)가 LRE(3820)에 대한 MPRE를 구동하고 있다는 것을 보여줄 것이지만, 호스트(3634)에 대한 구성 데이터는 호스트(3634)가 LRE(3810) 및 LRE(3820)에 대한 MPRE들을 구동하고 있다는 것을 보여줄 것이다. 일부 실시예들에서, 주어진 호스트 머신의 테넌트 X에 대한 MPRE 및 테넌트 Y에 대한 MPRE는 둘다 호스트 머신에 할당되는 동일한 고유 PMAC에 의해 어드레스될 수 있다.
일부 실시예들에서의 LRE에 대한 구성 데이터는 LIF들의 리스트, 라우팅/포워딩 테이블, 및 제어기 클러스터 정보를 포함한다. 제어기 클러스터 정보는, 일부 실시예들에서, 갱신된 제어 및 구성 정보를 취득할 곳을 호스트에게 알린다. 일부 실시예들에서, LRE에 대한 구성 데이터는 상이한 호스트 머신들 전체에 걸쳐서 모든 LRE의 인스턴스(즉, MPRE들)에 대해 복제된다.
일부 실시예들에서의 LIF에 대한 구성 데이터는 논리적 인터페이스의 명칭(예를 들어, UUID), 그것의 IP 어드레스, 그것의 MAC 어드레스(즉, LMAC 또는 VMAC), 그것의 MTU(maximum transmission unit), 그것의 목적지 정보(예를 들어, 인터페이스하는 네트워크 세그먼트의 VNI), 특정 호스트상에서 활성 상태인지 비활성 상태인지, 및 브릿지 LIF 또는 라우팅 LIF인지를 포함한다. 일부 실시예들에서, 논리적 인터페이스에 대한 구성 데이터 세트는 또한 그것의 MPRE로서 호스트상에서 실행되는 LRE가 지정된 인스턴스이고, 물리적(즉, 비-가상, 비-VDR) 호스트들에 대한 어드레스 주소분해를 수행할 필요가 있는지를 나타내는 외부 페이싱 파라미터들을 포함한다.
일부 실시예들에서, LRE들은 네트워크 매니저에서 동작하는 API들에 의해 구성되고 제어된다. 예를 들어, 일부 실시예들은 LRE를 생성하고, LRE를 삭제하고, LIF를 부가하고, LIF을 삭제하기 위한 API들을 제공한다. 일부 실시예들에서, 제어기들은 (MPRE/브릿지들로서) 호스트 머신들에서 동작하는 LRE들을 구성하기 위한 정적 구성 데이터를 제공할 뿐만 아니라, MPRE들로서 실행되는 로컬 LRE 인스턴스에게 정적 및/또는 동적 라우팅 정보를 제공한다. 일부 실시예들은 LIF들을 갱신하기 위한(예를 들어, LIF의 MTU/MAC/IP 정보를 갱신하기 위한) API들을 제공하고, 주어진 LRE에 대한 경로 엔트리를 부가하거나 수정한다. 일부 실시예들에서의 라우팅 엔트리는 목적지 IP 또는 서브넷 마스크, 다음 홉 정보, 논리적 인터페이스, 메트릭, 경로 유형(인접한 엔트리 또는 다음 홉 또는 인터페이스, 기타 등등), 경로 제어 플래그들, 및 액션들(예를 들어, 포워드, 블랙홀, 기타 등등)과 같은 정보를 포함한다.
일부 실시예들은 MPRE들로서 동작하는 LRE들에 대한 라우팅 정보를 동적으로 컬렉션하고 전달한다. 도 39는 LRE들에 대한 동적 라우팅 정보의 컬렉션 및 전달을 예시한다. 예시된 바와 같이, 네트워크 가상 기반 구조(3600)는 제어기들(3620)의 클러스터와 호스트 머신들(3630)을 포함할 뿐만 아니라, 동적 라우팅 정보를 컬렉션하고 분배하기 위해 가상 머신("에지 VM")을 구동시키는 호스트 머신(3640)을 포함한다. 일부 실시예들에서, 에지 VM(3640)은 OSPF 또는 BGP 프로토콜들을 실행하고 또 다른 LAN 또는 다른 네트워크에 대한 외부 라우터로서 나타난다. 일부 실시예들에서, 에지 VM(3640)은 다른 라우터들로부터 네트워크 경로들을 학습한다. 그 자신의 네트워크 세그먼트에서 학습된 경로를 유효화한 이후에, 에지 VM(3640)은 학습된 경로들을 제어기 클러스터들(3620)로 송신한다. 제어기 클러스터(3620)는 호스트 머신들(3630)의 MPRE들에 학습된 경로들을 다음 차례로 전파한다.
IV. 전자 시스템
많은 상술한 특징들과 애플리케이션들은 컴퓨터 판독가능 저장 매체(컴퓨터 판독가능 매체로도 지칭된다)에 기록되는 한 세트의 명령어들로서 특정되는 소프트웨어 프로세스들로서 구현된다. 이러한 명령어들이 하나 이상의 프로세싱 유닛(들)(예컨대, 하나 이상의 프로세서, 프로세서의 코어들, 또는 기타 프로세싱 유닛들)에 의해 실행될 때, 프로세싱 유닛(들)으로 하여금 명령어에 나타낸 액션들을 수행하게 한다. 컴퓨터 판독가능 매체의 예들은 CD-ROM들, 플래시 드라이브들, RAM 칩들, 하드 드라이브들, EPROM들, 기타 등등을 포함하지만, 이들에 한정되지는 않는다. 컴퓨터 판독가능 매체는 무선으로 또는 유선 접속들을 통해 패스되는 반송파들 및 전자 신호들을 포함하지 않는다.
본 명세서에서, "소프트웨어"라는 용어는 프로세서에서 처리하기 위해 메모리 내로 판독될 수 있는, 판독 전용 메모리에 존재하는 펌웨어 또는 자기 저장 장치에 저장되는 애플리케이션들을 포함하는 것으로 보아야 한다. 또한, 일부 실시예들에서, 다중 소프트웨어 발명들은 개별 소프트웨어 발명으로 있으면서 큰 프로그램의 하위 부분으로서 구현될 수 있다. 일부 실시예들에서, 다중 소프트웨어 발명들은 또한 분리된 프로그램들로 구현될 수 있다. 마지막으로, 다같이 본 명세서에 기술되는 소프트웨어 발명을 구현하는 개별 프로그램의 임의의 조합은 본 발명의 범위 내에 속한다. 일부 실시예들에서, 소프트웨어 프로그램은, 하나 이상의 전자 시스템상에서 동작하도록 설치될 때, 소프트웨어 프로그램의 동작을 실행하고 수행하는 하나 이상의 특정 머신 구현을 정의한다.
도 40은 본 발명의 일부 실시예들이 구현되는 전자 시스템(4000)을 개념적으로 예시한다. 전자 시스템(4000)은 상술한 제어, 가상화, 또는 운영체제 애플리케이션들 중 임의의 것을 실행하기 위해 이용될 수 있다. 전자 시스템(4000)은 컴퓨터(예컨대, 데스크톱 컴퓨터, 개인용 컴퓨터, 태블릿 컴퓨터, 서버 컴퓨터, 메인프레임, 블레이드 컴퓨터 등), 전화, PDA, 또는 임의의 다른 종류의 전자 장치일 수 있다. 이러한 전자 시스템은 다양한 유형의 컴퓨터 판독가능 매체 및 다양한 다른 유형의 컴퓨터 판독가능 매체에 대한 인터페이스를 포함한다. 전자 시스템(4000)은 버스(4005), 프로세싱 유닛(들)(4010), 시스템 메모리(4025), 판독 전용 메모리(4030), 영구 스토리지 디바이스(4035), 입력 디바이스들(4040), 및 출력 디바이스들(4045)을 포함한다.
버스(4005)는 전자 시스템(4000)의 수많은 내부 디바이스들을 통신가능하게 연결시키는 모든 시스템, 주변 디바이스, 및 칩셋 버스를 모두 합하여 나타낸 것이다. 예를 들어, 버스(4005)는 프로세싱 유닛(들)(4010)을 판독 전용 메모리(4030), 시스템 메모리(4025) 및 영구 스토리지 디바이스(4035)와 통신가능하게 연결시킨다.
이 다양한 메모리 유닛들로부터, 프로세싱 유닛(들)(4010)은 본 발명의 프로세스들을 실행하기 위해 실행할 명령어들 및 처리할 데이터를 검색한다. 상이한 실시예들에서, 프로세싱 유닛(들)은 단일 프로세서 또는 멀티-코어 프로세서일 수 있다.
판독 전용 메모리(ROM)(4030)는 전자 시스템의 프로세싱 유닛(들)(4010) 및 다른 모듈에서 필요로 하는 정적 데이터 및 명령어들을 저장한다. 한편, 영구 스토리지 디바이스(4035)는 판독 및 기록 메모리 디바이스이다. 이 디바이스는 심지어 전자 시스템(4000)이 오프될 때에도 명령어들 및 데이터를 저장하는 비휘발성 메모리이다. 본 발명의 일부 실시예들은 대용량 스토리지 디바이스(예를 들어, 자기 또는 광 디스크 및 그의 대응하는 디스크 드라이브)를 영구 스토리지 디바이스(4035)로서 사용한다.
기타 실시예들은 이동식 스토리지 디바이스(예를 들어, 플로피 디스크, 플래시 드라이브, 기타 등등)를 영구 스토리지 디바이스로서 사용한다. 영구 스토리지 디바이스(4035)와 같이, 시스템 메모리(4025)도 판독 및 기록 메모리 디바이스이다. 그러나, 스토리지 디바이스(4035)와 달리, 시스템 메모리는 랜덤 액세스 메모리와 같은 휘발성 판독 및 기록 메모리이다. 시스템 메모리는 런타임 시에 프로세서가 필요로 하는 명령어들 및 데이터의 일부를 저장한다. 일부 실시예들에서, 본 발명의 프로세스가 시스템 메모리(4025), 영구 스토리지 디바이스(4035) 및/또는 판독 전용 메모리(4030)에 저장된다. 이 다양한 메모리 유닛들로부터, 프로세싱 유닛(들)(4010)은 일부 실시예들의 프로세스들을 실행하기 위해 실행할 명령어들 및 처리할 데이터를 검색한다.
버스(4005)는 또한 입력 및 출력 디바이스들(4040 및 4045)에 연결된다. 입력 디바이스는 사용자가 전자 시스템으로 정보를 통신하고 명령들을 선택할 수 있게 해준다. 입력 디바이스들(4040)은 영숫자 키보드들 및 포인팅 디바이스들("커서 제어 디바이스"라고도 함)을 포함한다. 출력 디바이스들(4045)은 전자 시스템에 의해 생성된 이미지들을 표시한다. 출력 디바이스들은 프린터들 및 CRT(cathode ray tube)들 또는 LCD(liquid crystal display)들과 같은 디스플레이 장치들을 포함한다. 일부 실시예들은 입력 및 출력 디바이스들 양쪽으로 기능하는 터치스크린과 같은 디바이스들을 포함한다.
최종적으로, 도 40에 도시된 바와 같이, 버스(4005)는 또한 네트워크 어댑터(도시 생략)를 통하여 전자 시스템(4000)을 네트워크(4065)에 결합시킨다. 이러한 방식으로, 컴퓨터는 컴퓨터들의 네트워크(예를 들어, LAN(local area network), WAN(wide area network) 또는 인트라넷), 또는 인터넷과 같은 네트워크들의 네트워크의 일부일 수 있다. 전자 시스템(4000)의 임의의 또는 모든 컴포넌트들은 본 발명과 함께 사용될 수 있다.
일부 실시예들은 마이크로프로세서, 기계 판독가능 또는 컴퓨터 판독가능 매체(다른 대안으로서,컴퓨터 판독가능 저장 매체, 기계 판독가능 매체, 또는 기계 판독가능 저장 매체라고 함)에 컴퓨터 프로그램 명령어들을 저장하는 스토리지 및 메모리와 같은 전자 컴포넌트들을 포함한다. 이러한 컴퓨터 판독가능 매체의 일부 예는 RAM, ROM, CD-ROM(read-only compact disc), CD-R(recordable compact disc), CD-RW(rewritable compact disc), 판독 전용 DVD(read-only digital versatile disc)(예를 들어, DVD-ROM, 2층(dual-layer) DVD-ROM), 각종의 기록가능/재기록가능(recordable/rewritable) DVD(예를 들어, DVD-RAM, DVD-RW, DVD+RW 등), 플래시 메모리(예컨대, SD 카드, 미니-SD 카드, 마이크로-SD 카드 등), 자기 및/또는 고상 하드 드라이브, 판독 전용 및 기록가능 Blu-Ray® 디스크, 초밀도(ultra density) 광 디스크, 임의의 다른 광 또는 자기 매체, 및 플로피 디스크를 포함한다. 컴퓨터 판독가능 매체는 적어도 하나의 프로세싱 유닛에 의해 실행될 수 있는 컴퓨터 프로그램을 저장할 수 있고, 다양한 동작을 수행하기 위한 명령어들의 세트를 포함한다. 컴퓨터 프로그램 또는 컴퓨터 코드의 예들은 컴파일러에 의해 발생되는 것과 같은 머신 코드, 및 인터프리터를 사용하여 컴퓨터, 전자 컴포넌트, 또는 마이크로프로세서에 의해 실행되는 상위 레벨 코드를 포함하는 파일을 포함한다.
상기 논의가 주로 소프트웨어를 실행하는 마이크로프로세서 또는 멀티-코어 프로세서를 참조하고 있지만, 일부 실시예는 ASIC(application specific integrated circuit) 또는 FPGA(field programmable gate array) 등의 하나 이상의 집적 회로에 의해 수행된다. 일부 실시예들에서, 이러한 집적 회로는 회로 자체 상에 저장되어 있는 명령어들을 실행한다.
본 명세서에서 사용되는 바와 같이, 용어들 "컴퓨터", "서버", "프로세서" 및 "메모리"는 모두 전자 또는 기타 기술적인 디바이스들을 지칭한다. 이 용어들은 사람들 또는 사람들의 그룹을 제외한다. 본 명세서의 목적상, '디스플레이' 또는 '디스플레이하는'이라는 용어는 전자 디바이스 상에 표시하는 것을 의미한다. 본 명세서에서 사용되는 바와 같이, "컴퓨터 판독가능 매체", "컴퓨터 판독가능 매체들", 및 "기계 판독가능 매체"라는 용어는 컴퓨터에 의해 판독될 수 있는 형태로 정보를 저장하는 유형의 물리적 물체(tangible, physical object)로 전적으로 제한된다. 이 용어들은 임의의 무선 신호, 유선 다운로드 신호, 및 임의의 다른 단명 신호(ephemeral signal)를 제외한다.
본 발명이 복수의 구체적인 상세를 참조하여 기술되어 있지만, 통상의 기술자라면 본 발명이 본 발명의 사상을 벗어나지 않고 다른 특정의 형태로 구현될 수 있다는 것을 잘 알 것이다. 게다가, (도 11, 도 14, 도 15, 도 22 및 도 35를 포함하는) 복수의 도면은 프로세스들을 개념적으로 예시한다. 이 프로세스들의 특정의 동작들이 도시되고 기술되는 바로 그 순서로 수행되지 않을 수 있다. 특정의 동작이 하나의 연속적인 일련의 동작들로 수행되지 않을 수 있고, 상이한 특정의 동작이 상이한 실시예에서 수행될 수 있다. 게다가, 프로세스가 몇개의 서브-프로세스를 사용하여 또는 더 큰 매크로 프로세스의 일부로서 구현될 수 있다. 따라서, 통상의 기술자라면 본 발명이 이상의 예시적 상세에 의해 제한되어서는 안되고 첨부된 특허청구범위에 의해 한정되어야 한다는 것을 잘 알 것이다.

Claims (20)

  1. 시스템으로,
    제1 오버레이 네트워크에 속하는 제1 복수의 가상 머신; 및
    제2 오버레이 네트워크에 속하는 제2 복수의 가상 머신 - 상기 제1 및 제2 복수의 가상 머신은 복수의 호스트 컴퓨터상에서 동작하고, 각각의 호스트는 MPRE(Managed Physical Routing Element)를 실행하고, 각각의 MPRE는 상이한 오버레이 네트워크들에 속하는 가상 머신들 간에 데이터 메시지들을 포워딩 하기 위한 것임 - 을 포함하고,
    특정 MPRE는 링크 계층 어드레스와 오버레이 네트워크 식별자 간의 페어링(pairing)을 사용하여 동일한 인터넷 프로토콜(IP) 서브넷에 있지만 상이한 오버레이 네트워크들에 있는 가상 머신들 간에 데이터 메시지들을 브리징하기 위한 브리지로 구성되며,
    (i) 상기 특정 MPRE의 논리 인터페이스(LIF)는 특정 오버레이 네트워크와 인터페이싱하기 위한 브리지 LIF로 구성되고, (ii) 상기 브리지 LIF는 상기 특정 오버레이 네트워크에 대한 오버레이 네트워크 식별자에 의해 식별되는, 시스템.
  2. 제1항에 있어서, 상기 제1 오버레이 네트워크는 VLAN이고 상기 제2 오버레이 네트워크는 VXLAN 인, 시스템.
  3. 제1항에 있어서,
    상기 특정 MPRE와 동일한 호스트 컴퓨터 상에서 동작하고 동일한 IP 서브넷에 있지만 상이한 오버레이 네트워크들에 있는 가상 머신들 간의 데이터 메시지는 상기 특정 MPRE에 의해 상기 호스트 컴퓨터를 나가지(exit) 않으면서 상기 데이터 메시지의 목적지로 포워딩되는, 시스템.
  4. 제1항에 있어서, 각각의 MPRE는 복수의 LIF를 포함하고, 각각의 LIF는 상이한 오버레이 네트워크와 인터페이싱하기 위한 것이고, 브리지 LIF들로서 구성되지 않은 LIF들은 상기 데이터 메시지들의 IP 어드레스들을 사용하여 데이터 메시지들을 라우팅하기 위한 라우팅 LIF들로서 구성되는, 시스템.
  5. 제4항에 있어서, 각각의 라우팅 LIF는 상기 MPRE에 속하는 목적지 MAC 어드레스들을 갖는 데이터 메시지들을 수신하는, 시스템.
  6. 제4항에 있어서, 각각의 브리지 LIF는 상기 브리지 LIF가 인터페이싱하는 상기 오버레이 네트워크로부터 브리징을 필요로 하는 데이터 메시지들을 수신하고, 특정 오버레이 네트워크로부터의 데이터 메시지는 상기 데이터 메시지의 목적지 MAC 어드레스가 상기 특정 오버레이 네트워크에 없을 때 브리징을 필요로 하는, 시스템.
  7. 제6항에 있어서, 수신한 데이터 메시지의 목적지 MAC 어드레스가 어느 오버레이 네트워크에 속하는지를 식별하는 정보를 상기 특정 MPRE가 갖지 않는 경우, 상기 특정 MPRE는 상기 수신한 데이터 메시지를 상기 데이터 메시지를 수신한 브리지 LIF 이외의 모든 브리지 LIF로부터 전송하는, 시스템.
  8. 제6항에 있어서, 상기 MPRE는 상기 수신한 데이터 메시지 내의 상기 오버레이 네트워크의 식별자와 소스 MAC 어드레스로부터 상기 오버레이 네트워크와 MAC 어드레스 간의 페어링을 학습하는, 시스템.
  9. 시스템으로서,
    제1 오버레이 네트워크에 속하는 제1 복수의 가상 머신; 및
    제2 오버레이 네트워크에 속하는 제2 복수의 가상 머신 - 상기 제1 및 제2 복수의 가상 머신은 복수의 호스트 컴퓨터에서 동작 하고, 각각의 호스트 컴퓨터는 상이한 오버레이 네트워크들 내의 가상 머신들 간에 데이터 메시지들을 포워딩하기 위한 MPRE(Managed Physical Routing Element)를 실행함 - 을 포함하고,
    상기 MPRE들 중 적어도 하나의 특정 MPRE는 포워딩된 상기 데이터 메시지들로부터 오버레이 네트워크 식별자들과 링크 계층 어드레스들 간의 페어링들을 학습하고 데이터 링크 계층 어드레스로부터 오버레이 네트워크 식별자를 룩업(look up)하도록 상기 학습된 페어링들을 사용함으로써 데이터 메시지를 브리징하는 브리지로서 구성되고,
    특정 오버레이 네트워크와 인터페이싱하기 위한 상기 특정 MPRE의 특정 브리지 논리 인터페이스(LIF)는 상기 특정 오버레이 네트워크에 대한 오버레이 네트워크 식별자에 의해 식별되는, 시스템.
  10. 제9항에 있어서, 동일한 IP 서브넷에 있지만 상이한 오버레이 네트워크들에 있고 상기 특정 MPRE와 동일한 호스트 상에서 둘 다 동작하는 가상 머신들 간의 데이터 메시지는 상기 특정 MPRE에 의해 상기 호스트 컴퓨터를 나가지(exit) 않으면서 상기 데이터 메시지의 목적지로 포워딩되는, 시스템.
  11. 제9항에 있어서, 각각의 MPRE는 복수의 LIF를 포함하고, 각각의 LIF는 상이한 오버레이 네트워크와 인터페이싱하기 위한 것이고, 브리지 LIF들로 구성되지 않은 LIF들은 네트워크 계층 IP 어드레스를 사용하여 데이터 메시지들을 라우팅하기 위한 라우팅 LIF들로서 구성되는, 시스템.
  12. 제11항에 있어서, 각각의 브리지 LIF는 상기 브리지 LIF가 인터페이싱하는 오버레이 네트워크로부터의 브리징을 필요로 하는 데이터 메시지들를 수신하고, 특정 오버레이 네트워크로부터의 특정 데이터 메시지는 상기 특정 데이터 메시지의 목적지 MAC 어드레스가 상기 특정 오버레이 네트워크 내에 없을 때에 브리징을 필요로 하는, 시스템.
  13. 제12항에 있어서, 상기 특정 MPRE가 상기 목적지 MAC 어드레스가 어느 오버레이 네트워크에 속하는지를 식별하는 정보를 갖지 않을 때, 상기 MPRE는 상기 데이터 메시지를 수신한 브리지 LIF 이외의 모든 브리지 LIF로부터 상기 수신한 데이터 메시지를 전송하는, 시스템.
  14. 제12항에 있어서, 상기 MPRE는 상기 수신한 데이터 메시지 내의 상기 오버레이 네트워크의 식별자와 소스 MAC 어드레스로부터 상기 오버레이 네트워크와 MAC 어드레스 간의 페어링을 학습하는, 시스템.
  15. 복수의 호스트 컴퓨터에서 동작하는 MPRE (Managed Physical Routing Element)를 정의하는 단계 - 각각의 MPRE는 논리 네트워크의 제1 세그먼트로부터 상기 논리 네트워크의 제2 세그먼트로 데이터 메시지들을 포워딩하기 위한 호스트 컴퓨터에서 동작함 - ; 및
    (i) 포워딩된 상기 데이터 메시지들로부터 오버레이 네트워크 식별자들과 링크 계층 어드레스들 간의 페어링들을 학습하고 (ii) 데이터 링크 계층 어드레스로부터 오버레이 네트워크 식별자를 룩업하도록 상기 학습된 페어링들을 사용하여 데이터 메시지들을 브리징하는 브리지로 작동하도록 특정 호스트 컴퓨터에서 동작하는 특정 MPRE를 구성하는 단계를 포함하고,
    특정 오버레이 네트워크와 인터페이싱하기 위한 상기 특정 MPRE의 특정 브리지 논리 인터페이스(LIF)는 상기 특정 오버레이 네트워크에 대한 오버레이 네트워크 식별자에 의해 식별되는, 방법.
  16. 제15항에 있어서, 동일한 IP 서브넷에 있지만 상이한 오버레이 네트워크들에 있고 상기 특정 호스트 컴퓨터 상에서 둘 다 동작하는 가상 머신들 사이의 데이터 메시지는 상기 특정 MPRE에 의해 상기 호스트 컴퓨터를 나가지(exit)하지 않으면서 상기 데이터 메시지의 목적지로 포워딩되는, 방법.
  17. 제15항에 있어서, 상기 제1 세그먼트는 VLAN이고 상기 제2 세그먼트는 VXLAN 캡슐화 네트워크인, 방법.
  18. 제15항에 있어서, 각각의 MPRE는 복수의 LIF를 포함하고, 각각의 LIF는 상기 논리 네트워크의 상이한 세그먼트와 인터페이싱하기 위한 것이고, 브리지 LIF들로 구성되지 않은 LIF들은 네트워크 계층 IP 어드레스를 사용하여 데이터 메시지들을 라우팅하기 위한 라우팅 LIF로서 구성되는, 방법.
  19. 제18항에 있어서, 각각의 브리지 LIF는 상기 브리지 LIF가 인터페이싱하는 오버레이 네트워크로부터 브리징을 필요로 하는 데이터 메시지들을 수신하고, 특정 오버레이 네트워크로부터의 특정 데이터 메시지는 상기 특정 데이터 메시지의 목적지 MAC 어드레스가 상기 특정 오버레이 네트워크 내에 없을 때 브리징을 필요로 하는, 방법.
  20. 적어도 하나의 처리 유닛에 의해 실행될 때 제15항 내지 제19항 중 어느 한 항의 방법을 수행하는 프로그램을 저장하는 비일시적 컴퓨터 판독 가능 매체.
KR1020207005714A 2013-10-13 2014-10-10 논리적 라우터 KR102181554B1 (ko)

Applications Claiming Priority (13)

Application Number Priority Date Filing Date Title
US201361890309P 2013-10-13 2013-10-13
US61/890,309 2013-10-13
US201361962298P 2013-10-31 2013-10-31
US61/962,298 2013-10-31
US14/137,877 2013-12-20
US14/137,869 2013-12-20
US14/137,867 2013-12-20
US14/137,877 US9977685B2 (en) 2013-10-13 2013-12-20 Configuration of logical router
US14/137,867 US9575782B2 (en) 2013-10-13 2013-12-20 ARP for logical router
US14/137,862 2013-12-20
US14/137,869 US9910686B2 (en) 2013-10-13 2013-12-20 Bridging between network segments with a logical router
US14/137,862 US9785455B2 (en) 2013-10-13 2013-12-20 Logical router
PCT/US2014/060183 WO2015054671A2 (en) 2013-10-13 2014-10-10 Logical router

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020167009633A Division KR102084243B1 (ko) 2013-10-13 2014-10-10 논리적 라우터

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020207033004A Division KR102251661B1 (ko) 2013-10-13 2014-10-10 논리적 라우터

Publications (2)

Publication Number Publication Date
KR20200024343A KR20200024343A (ko) 2020-03-06
KR102181554B1 true KR102181554B1 (ko) 2020-11-23

Family

ID=52813757

Family Applications (4)

Application Number Title Priority Date Filing Date
KR1020207005714A KR102181554B1 (ko) 2013-10-13 2014-10-10 논리적 라우터
KR1020207033004A KR102251661B1 (ko) 2013-10-13 2014-10-10 논리적 라우터
KR1020187018061A KR102083749B1 (ko) 2013-10-13 2014-10-10 논리적 라우터
KR1020167009633A KR102084243B1 (ko) 2013-10-13 2014-10-10 논리적 라우터

Family Applications After (3)

Application Number Title Priority Date Filing Date
KR1020207033004A KR102251661B1 (ko) 2013-10-13 2014-10-10 논리적 라우터
KR1020187018061A KR102083749B1 (ko) 2013-10-13 2014-10-10 논리적 라우터
KR1020167009633A KR102084243B1 (ko) 2013-10-13 2014-10-10 논리적 라우터

Country Status (6)

Country Link
US (7) US9910686B2 (ko)
EP (2) EP3627780B1 (ko)
JP (3) JP5925820B2 (ko)
KR (4) KR102181554B1 (ko)
CN (3) CN105684363B (ko)
WO (1) WO2015054671A2 (ko)

Families Citing this family (101)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9191360B2 (en) * 2013-01-22 2015-11-17 International Business Machines Corporation Address management in an overlay network environment
US9882713B1 (en) 2013-01-30 2018-01-30 vIPtela Inc. Method and system for key generation, distribution and management
US9531676B2 (en) * 2013-08-26 2016-12-27 Nicira, Inc. Proxy methods for suppressing broadcast traffic in a network
US9910686B2 (en) 2013-10-13 2018-03-06 Nicira, Inc. Bridging between network segments with a logical router
US9876715B2 (en) * 2013-11-05 2018-01-23 Cisco Technology, Inc. Network fabric overlay
US9967199B2 (en) 2013-12-09 2018-05-08 Nicira, Inc. Inspecting operations of a machine to detect elephant flows
US10158538B2 (en) * 2013-12-09 2018-12-18 Nicira, Inc. Reporting elephant flows to a network controller
US9467478B1 (en) * 2013-12-18 2016-10-11 vIPtela Inc. Overlay management protocol for secure routing based on an overlay network
CN103731353B (zh) * 2013-12-26 2017-07-14 华为技术有限公司 虚拟机的物理地址获取方法
US10200239B2 (en) * 2013-12-27 2019-02-05 Red Hat Israel, Ltd. Normalized management network
US9794128B2 (en) 2013-12-30 2017-10-17 International Business Machines Corporation Overlay network movement operations
KR20150088499A (ko) * 2014-01-24 2015-08-03 한국전자통신연구원 송신 노드의 ip 및 mac 테이블들 및 송신 노드와 연결된 서버의 arp 테이블을 관리하는 방법 및 장치
US10120729B2 (en) 2014-02-14 2018-11-06 Vmware, Inc. Virtual machine load balancing
CN106576075B (zh) 2014-03-27 2021-01-26 Nicira股份有限公司 在网络虚拟化基础设施上操作逻辑网络的方法和系统
US9893988B2 (en) 2014-03-27 2018-02-13 Nicira, Inc. Address resolution using multiple designated instances of a logical router
US9413644B2 (en) 2014-03-27 2016-08-09 Nicira, Inc. Ingress ECMP in virtual distributed routing environment
KR101945886B1 (ko) * 2014-06-27 2019-02-11 노키아 솔루션스 앤드 네트웍스 오와이 계층-2 스위칭에 기초한 초고속 모바일 네트워크
US20160050146A1 (en) * 2014-08-15 2016-02-18 Turbostor, Inc. Accelerated storage appliance using a network switch
US9858100B2 (en) 2014-08-22 2018-01-02 Nicira, Inc. Method and system of provisioning logical networks on a host machine
US20160065503A1 (en) * 2014-08-29 2016-03-03 Extreme Networks, Inc. Methods, systems, and computer readable media for virtual fabric routing
US10560353B1 (en) * 2014-09-16 2020-02-11 Amazon Technologies, Inc. Deployment monitoring for an application
US9501307B2 (en) * 2014-09-26 2016-11-22 Comcast Cable Communications, Llc Systems and methods for providing availability to resources
US10250443B2 (en) 2014-09-30 2019-04-02 Nicira, Inc. Using physical location to modify behavior of a distributed virtual network element
US10511458B2 (en) 2014-09-30 2019-12-17 Nicira, Inc. Virtual distributed bridging
US9768980B2 (en) 2014-09-30 2017-09-19 Nicira, Inc. Virtual distributed bridging
US10020960B2 (en) * 2014-09-30 2018-07-10 Nicira, Inc. Virtual distributed bridging
US10079779B2 (en) 2015-01-30 2018-09-18 Nicira, Inc. Implementing logical router uplinks
CN106209636B (zh) 2015-05-04 2019-08-02 新华三技术有限公司 从vlan至vxlan的组播数据报文转发方法和设备
CN106209648B (zh) 2015-05-04 2019-06-14 新华三技术有限公司 跨虚拟可扩展局域网的组播数据报文转发方法和设备
CN106209689B (zh) 2015-05-04 2019-06-14 新华三技术有限公司 从vxlan至vlan的组播数据报文转发方法和设备
US10554547B2 (en) * 2015-05-07 2020-02-04 Cisco Technology, Inc. Scalable network address translation at high speed in a network environment
US9558029B2 (en) 2015-05-17 2017-01-31 Nicira, Inc. Logical processing for containers
US9804880B2 (en) * 2015-06-16 2017-10-31 Vmware, Inc. Reservation for a multi-machine application
JP2017011487A (ja) * 2015-06-22 2017-01-12 富士通株式会社 情報処理システム、情報処理システムの制御プログラム及び情報処理システムの制御方法
US10243848B2 (en) * 2015-06-27 2019-03-26 Nicira, Inc. Provisioning logical entities in a multi-datacenter environment
US10348625B2 (en) 2015-06-30 2019-07-09 Nicira, Inc. Sharing common L2 segment in a virtual distributed router environment
WO2017003957A1 (en) 2015-06-30 2017-01-05 Nicira, Inc Intermediate logical interfaces in a virtual distributed router environment
US9992153B2 (en) * 2015-07-15 2018-06-05 Nicira, Inc. Managing link aggregation traffic in edge nodes
US10243914B2 (en) * 2015-07-15 2019-03-26 Nicira, Inc. Managing link aggregation traffic in edge nodes
US10567347B2 (en) * 2015-07-31 2020-02-18 Nicira, Inc. Distributed tunneling for VPN
US10033622B2 (en) * 2015-08-07 2018-07-24 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Controller-based dynamic routing in a software defined network environment
US10078526B2 (en) 2015-11-01 2018-09-18 Nicira, Inc. Securing a managed forwarding element that operates within a data compute node
US10063469B2 (en) 2015-12-16 2018-08-28 Nicira, Inc. Forwarding element implementation for containers
US9980303B2 (en) 2015-12-18 2018-05-22 Cisco Technology, Inc. Establishing a private network using multi-uplink capable network devices
JP6579258B2 (ja) * 2016-03-02 2019-09-25 日本電気株式会社 ネットワークシステム、制御装置、仮想ネットワーク機能の構築方法及びプログラム
US10581793B1 (en) * 2016-04-29 2020-03-03 Arista Networks, Inc. Address resolution in virtual extensible networks
US10034407B2 (en) * 2016-07-22 2018-07-24 Intel Corporation Storage sled for a data center
US10397136B2 (en) 2016-08-27 2019-08-27 Nicira, Inc. Managed forwarding element executing in separate namespace of public cloud data compute node than workload application
US10341371B2 (en) 2016-08-31 2019-07-02 Nicira, Inc. Identifying and handling threats to data compute nodes in public cloud
JP6744985B2 (ja) * 2016-08-27 2020-08-19 ニシラ, インコーポレイテッド ネットワーク制御システムのパブリッククラウドへの拡張
US20180150256A1 (en) 2016-11-29 2018-05-31 Intel Corporation Technologies for data deduplication in disaggregated architectures
CN107094187A (zh) * 2017-04-01 2017-08-25 汕头大学 一种自动查找mac地址的接入交换机端口的方法
WO2019018261A1 (en) * 2017-07-17 2019-01-24 Nicira, Inc. DISTRIBUTED MULTICAST LOGIC ROUTER
US10873473B2 (en) 2017-07-17 2020-12-22 Nicira, Inc. Distributed multicast logical router
US10523455B2 (en) * 2017-07-17 2019-12-31 Nicira, Inc. Distributed multicast logical router
US10218523B2 (en) 2017-07-17 2019-02-26 Nicira, Inc. Using a central controller cluster to configure a distributed multicast logical router
US10567482B2 (en) 2017-08-24 2020-02-18 Nicira, Inc. Accessing endpoints in logical networks and public cloud service providers native networks using a single network interface and a single routing table
US10491516B2 (en) 2017-08-24 2019-11-26 Nicira, Inc. Packet communication between logical networks and public cloud service providers native networks using a single network interface and a single routing table
US10778579B2 (en) 2017-08-27 2020-09-15 Nicira, Inc. Performing in-line service in public cloud
US10623369B2 (en) * 2017-09-13 2020-04-14 Charter Communications Operating, Llc Device and method for discovery and announcement of secondary end-point reachability information
US10116671B1 (en) * 2017-09-28 2018-10-30 International Business Machines Corporation Distributed denial-of-service attack detection based on shared network flow information
US10992636B2 (en) * 2017-09-29 2021-04-27 Cisco Technology, Inc. Mitigating network/hardware address explosion in network devices
CN107579900B (zh) * 2017-10-13 2020-07-28 锐捷网络股份有限公司 从vlan网络接入vxlan网络的方法、装置及系统
KR102352156B1 (ko) * 2017-10-26 2022-01-17 삼성전자주식회사 Arp를 수행하는 슬레이브 장치 및 이의 동작 방법
US10511459B2 (en) 2017-11-14 2019-12-17 Nicira, Inc. Selection of managed forwarding element for bridge spanning multiple datacenters
US10374827B2 (en) 2017-11-14 2019-08-06 Nicira, Inc. Identifier that maps to different networks at different datacenters
US10601705B2 (en) 2017-12-04 2020-03-24 Nicira, Inc. Failover of centralized routers in public cloud logical networks
US10862753B2 (en) 2017-12-04 2020-12-08 Nicira, Inc. High availability for stateful services in public cloud logical networks
CN108471397B (zh) * 2018-01-31 2020-12-15 华为技术有限公司 防火墙配置、报文发送方法和装置
US10536563B2 (en) * 2018-02-06 2020-01-14 Nicira, Inc. Packet handling based on virtual network configuration information in software-defined networking (SDN) environments
US11343229B2 (en) 2018-06-28 2022-05-24 Vmware, Inc. Managed forwarding element detecting invalid packet addresses
US10491466B1 (en) 2018-08-24 2019-11-26 Vmware, Inc. Intelligent use of peering in public cloud
US11374794B2 (en) 2018-08-24 2022-06-28 Vmware, Inc. Transitive routing in public cloud
US11196591B2 (en) 2018-08-24 2021-12-07 Vmware, Inc. Centralized overlay gateway in public cloud
US10992497B2 (en) * 2018-11-26 2021-04-27 Arrcus Inc. Logical router comprising disaggregated network elements
US10735541B2 (en) 2018-11-30 2020-08-04 Vmware, Inc. Distributed inline proxy
CN109873769A (zh) * 2018-12-28 2019-06-11 安徽中瑞通信科技股份有限公司 一种基于5g通信的智能路由器
US11101889B2 (en) * 2019-03-02 2021-08-24 Sealight Technologies, Inc. Virtual optical edge device
US11463398B2 (en) * 2019-07-10 2022-10-04 Vmware, Inc. Address resolution handling at logical distributed routers
US11115324B2 (en) * 2019-08-27 2021-09-07 Nokia Solutions Networks Oy System and method for performing segment routing over an MPLS network
CN113098749A (zh) * 2020-01-08 2021-07-09 华为技术有限公司 报文发送方法、装置及存储介质
US11394634B2 (en) 2020-04-06 2022-07-19 Vmware, Inc. Architecture for stretching logical switches between multiple datacenters
US11088919B1 (en) 2020-04-06 2021-08-10 Vmware, Inc. Data structure for defining multi-site logical network
US11374817B2 (en) 2020-04-06 2022-06-28 Vmware, Inc. Determining span of logical network element
US11496437B2 (en) * 2020-04-06 2022-11-08 Vmware, Inc. Selective ARP proxy
US11777793B2 (en) 2020-04-06 2023-10-03 Vmware, Inc. Location criteria for security groups
US11088902B1 (en) 2020-04-06 2021-08-10 Vmware, Inc. Synchronization of logical network state between global and local managers
US11689455B2 (en) 2020-05-28 2023-06-27 Oracle International Corporation Loop prevention in virtual layer 2 networks
US11962518B2 (en) 2020-06-02 2024-04-16 VMware LLC Hardware acceleration techniques using flow selection
JP2023535152A (ja) 2020-07-14 2023-08-16 オラクル・インターナショナル・コーポレイション 仮想レイヤ2ネットワーク
CN112019527B (zh) * 2020-08-13 2022-05-31 苏州浪潮智能科技有限公司 一种嵌入式设备固定mac地址的设置方法及系统
US11343283B2 (en) 2020-09-28 2022-05-24 Vmware, Inc. Multi-tenant network virtualization infrastructure
US11425044B2 (en) * 2020-10-15 2022-08-23 Cisco Technology, Inc. DHCP layer 2 relay in VXLAN overlay fabric
US11777849B2 (en) 2020-12-04 2023-10-03 Oracle International Corporation Multi-customer (multi-tenants) support with hypervisor based bond implementation
US11757773B2 (en) 2020-12-30 2023-09-12 Oracle International Corporation Layer-2 networking storm control in a virtualized cloud environment
US11671355B2 (en) 2021-02-05 2023-06-06 Oracle International Corporation Packet flow control in a header of a packet
US11777897B2 (en) 2021-02-13 2023-10-03 Oracle International Corporation Cloud infrastructure resources for connecting a service provider private network to a customer private network
US11805101B2 (en) 2021-04-06 2023-10-31 Vmware, Inc. Secured suppression of address discovery messages
US11595296B2 (en) 2021-06-29 2023-02-28 Vmware, Inc. Active-active support of multicast streams in virtualized environment
US11895010B2 (en) 2021-06-29 2024-02-06 VMware LLC Active-active support of multicast streams in virtualized environment
US11784926B2 (en) 2021-11-22 2023-10-10 Vmware, Inc. Optimized processing of multicast data messages in a host

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120158997A1 (en) 2010-12-15 2012-06-21 Industrial Technology Research Institute Network system and method of address resolution
US20130145008A1 (en) 2011-12-01 2013-06-06 International Business Machines Corporation Enabling Co-Existence of Hosts or Virtual Machines with Identical Addresses
US20130142048A1 (en) 2011-08-17 2013-06-06 Nicira, Inc. Flow templating in logical l3 routing

Family Cites Families (350)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0737921B1 (en) 1990-09-17 2000-06-28 Cabletron Systems, Inc. System and method for modelling a computer network
US5742760A (en) 1992-05-12 1998-04-21 Compaq Computer Corporation Network packet switch using shared memory for repeating and bridging packets at media rate
SE9402059D0 (sv) 1994-06-13 1994-06-13 Ellemtel Utvecklings Ab Sätt och anordning vid telekommunikation
US5751967A (en) 1994-07-25 1998-05-12 Bay Networks Group, Inc. Method and apparatus for automatically configuring a network device to support a virtual network
US5550816A (en) 1994-12-29 1996-08-27 Storage Technology Corporation Method and apparatus for virtual switching
US6035105A (en) 1996-01-02 2000-03-07 Cisco Technology, Inc. Multiple VLAN architecture system
JP3684262B2 (ja) 1996-01-17 2005-08-17 富士通株式会社 ネットワークシステム及び集線装置
US6108304A (en) 1996-03-08 2000-08-22 Abe; Hajime Packet switching network, packet switching equipment, and network management equipment
JPH09307587A (ja) 1996-05-09 1997-11-28 Fujitsu Ltd 交換機
CA2213984A1 (en) 1996-08-22 1998-02-22 Norand Corporation Enhanced mobility and address resolution in a wireless premises based network
US6456624B1 (en) 1997-10-29 2002-09-24 Enterasys Networks, Inc. Network address resolve blocker
US6172981B1 (en) * 1997-10-30 2001-01-09 International Business Machines Corporation Method and system for distributing network routing functions to local area network stations
JP3609256B2 (ja) 1998-05-19 2005-01-12 株式会社日立製作所 ネットワーク管理装置,ノード装置及びネットワーク管理システム
US6424659B2 (en) 1998-07-17 2002-07-23 Network Equipment Technologies, Inc. Multi-layer switching apparatus and method
EP0978977A1 (en) * 1998-08-07 2000-02-09 International Business Machines Corporation A method and system for improving high speed internetwork data transfers
US6584102B1 (en) 1998-12-21 2003-06-24 At&T Corp. Communication network apparatus and method
US6950428B1 (en) 1998-12-30 2005-09-27 Hewlett-Packard Development Company, L.P. System and method for configuring adaptive sets of links between routers in a system area network (SAN)
US6640251B1 (en) * 1999-03-12 2003-10-28 Nortel Networks Limited Multicast-enabled address resolution protocol (ME-ARP)
US6963585B1 (en) 1999-10-21 2005-11-08 International Business Machines Corporation Method and system for establishing a virtual path capability in a frame relay network
US6680934B1 (en) 1999-12-02 2004-01-20 Nortel Networks Limited System, device and method for expediting control flow in a communication system
US20020013858A1 (en) 2000-02-09 2002-01-31 Anderson Keith R. ARP caching apparatus and method
US7215637B1 (en) * 2000-04-17 2007-05-08 Juniper Networks, Inc. Systems and methods for processing packets
US20020093952A1 (en) 2000-06-30 2002-07-18 Gonda Rumi Sheryar Method for managing circuits in a multistage cross connect
US7389358B1 (en) 2000-09-13 2008-06-17 Fortinet, Inc. Distributed virtual system to support managed, network-based services
US7260648B2 (en) 2001-01-25 2007-08-21 Ericsson, Inc. Extension of address resolution protocol (ARP) for internet protocol (IP) virtual networks
US6999454B1 (en) 2001-02-09 2006-02-14 Nortel Networks Limited Information routing system and apparatus
US6785843B1 (en) 2001-02-23 2004-08-31 Mcrae Andrew Data plane restart without state change in a control plane of an intermediate network node
US7209439B2 (en) 2001-03-20 2007-04-24 Mci, Llc Pool-based resource management in a data network
US7069337B2 (en) 2001-03-20 2006-06-27 Mci, Inc. Policy-based synchronization of per-class resources between routers in a data network
EP1388057A4 (en) * 2001-04-20 2009-07-01 Egenera Inc VIRTUAL NETWORKING SYSTEM AND PROCESS IN A PROCESSING SYSTEM
US7102996B1 (en) 2001-05-24 2006-09-05 F5 Networks, Inc. Method and system for scaling network traffic managers
EP1267529B1 (en) 2001-06-14 2007-11-14 Hitachi Ltd. Data packets acknowledgment system
US20030026271A1 (en) * 2001-07-03 2003-02-06 Erb Guy C. L2/L3 network with LSP-enabled virtual routing
US7126944B2 (en) 2001-07-05 2006-10-24 Intel Corporation Routing packets across multiple forwarding elements
JP2003069609A (ja) 2001-08-23 2003-03-07 Fujitsu Ltd 仮想私設網サービスを提供するシステム
JP3879471B2 (ja) 2001-10-10 2007-02-14 株式会社日立製作所 計算機資源割当方法
US7200144B2 (en) 2001-10-18 2007-04-03 Qlogic, Corp. Router and methods using network addresses for virtualization
US7133365B2 (en) 2001-11-02 2006-11-07 Internap Network Services Corporation System and method to provide routing control of information over networks
US8095668B2 (en) 2001-11-09 2012-01-10 Rockstar Bidco Lp Middlebox control
US7801155B2 (en) 2002-03-01 2010-09-21 Verizon Business Global Llc Resource allocation in virtual routers
US6941487B1 (en) 2002-03-07 2005-09-06 Riverstone Networks, Inc. Method, system, and computer program product for providing failure protection in a network node
JP3904968B2 (ja) 2002-04-19 2007-04-11 日本電信電話株式会社 Vpnシステムおよびルータ
US7197572B2 (en) 2002-05-06 2007-03-27 Qlogic, Corporation System and method for implementing logical switches in a network system
US6907039B2 (en) 2002-07-20 2005-06-14 Redback Networks Inc. Method and apparatus for routing and forwarding between virtual routers within a single network element
US7339929B2 (en) 2002-08-23 2008-03-04 Corrigent Systems Ltd. Virtual private LAN service using a multicast protocol
US20040073659A1 (en) 2002-10-15 2004-04-15 Carl Rajsic Method and apparatus for managing nodes in a network
US7180899B2 (en) * 2002-10-29 2007-02-20 Cisco Technology, Inc. Multi-tiered Virtual Local area Network (VLAN) domain mapping mechanism
US20040098505A1 (en) 2002-11-20 2004-05-20 Clemmensen Daniel G. Forwarding system with multiple logical sub-system functionality
US7224668B1 (en) 2002-11-27 2007-05-29 Cisco Technology, Inc. Control plane security and traffic flow management
JP4157409B2 (ja) 2003-03-31 2008-10-01 富士通株式会社 仮想パス構築装置および仮想パス構築方法
US7283473B2 (en) 2003-04-10 2007-10-16 International Business Machines Corporation Apparatus, system and method for providing multiple logical channel adapters within a single physical channel adapter in a system area network
EP1625489A2 (en) 2003-04-21 2006-02-15 Netcell Corp. Disk array controller with reconfigurable data path
US7792987B1 (en) 2003-04-21 2010-09-07 Juniper Networks, Inc. Supporting virtual private networks using a first network topology for forwarding and a subset of the first network topology or a smaller topology for signaling
US7710874B2 (en) 2003-06-04 2010-05-04 International Business Machines Corporation System and method for automatic management of many computer data processing system pipes
JP4278445B2 (ja) 2003-06-18 2009-06-17 株式会社日立製作所 ネットワークシステム及びスイッチ
US20050022017A1 (en) 2003-06-24 2005-01-27 Maufer Thomas A. Data structures and state tracking for network protocol processing
US7356818B2 (en) 2003-06-24 2008-04-08 International Business Machines Corporation Virtual machine communicating to external device without going through other virtual machines by using a list of IP addresses managed only by a single virtual machine monitor
US7463579B2 (en) 2003-07-11 2008-12-09 Nortel Networks Limited Routed split multilink trunking
US20050018669A1 (en) 2003-07-25 2005-01-27 International Business Machines Corporation Infiniband subnet management queue pair emulation for multiple logical ports on a single physical port
US7697527B2 (en) 2003-07-30 2010-04-13 Nortel Networks Limited Method and apparatus for direct frame switching using frame contained destination information
US7593346B2 (en) 2003-07-31 2009-09-22 Cisco Technology, Inc. Distributing and balancing traffic flow in a virtual gateway
US8776050B2 (en) 2003-08-20 2014-07-08 Oracle International Corporation Distributed virtual machine monitor for managing multiple virtual resources across multiple physical nodes
US7366181B2 (en) 2003-09-06 2008-04-29 Fujitsu Limited Virtual private network (VPN) with channelized ethernet over sonet (EoS) interface and method
US7342916B2 (en) 2003-09-10 2008-03-11 Intel Corporation Method, apparatus and system for optimizing routing of mobile IP packets
WO2005038599A2 (en) 2003-10-14 2005-04-28 Raptor Networks Technology, Inc. Switching system with distributed switching fabric
US8009556B2 (en) 2003-10-17 2011-08-30 Ip Infusion, Inc. System and method for providing redundant routing capabilities for a network node
US7555002B2 (en) 2003-11-06 2009-06-30 International Business Machines Corporation Infiniband general services queue pair virtualization for multiple logical ports on a single physical port
US8146148B2 (en) 2003-11-19 2012-03-27 Cisco Technology, Inc. Tunneled security groups
US8095640B2 (en) 2003-12-12 2012-01-10 Alcatel Lucent Distributed architecture for real-time flow measurement at the network domain level
US7450598B2 (en) 2003-12-15 2008-11-11 At&T Intellectual Property I, L.P. System and method to provision MPLS/VPN network
US7478173B1 (en) 2003-12-18 2009-01-13 Wmware, Inc. Method and system for sharing a network connection in a virtual computer system
US8401024B2 (en) 2004-01-14 2013-03-19 Telefonaktiebolaget Lm Ericsson (Publ) Ethernet address management system
US7391771B2 (en) 2004-01-23 2008-06-24 Metro Packet Systems Inc. Method of sending information through a tree and ring topology of a network system
US8838743B2 (en) 2004-02-13 2014-09-16 Intel Corporation Apparatus and method for a dynamically extensible virtual switch
EP1730892A1 (en) 2004-03-24 2006-12-13 Koninklijke Philips Electronics N.V. Intelligent routing within wireless communication systems
EP1745631A1 (en) 2004-05-12 2007-01-24 Alcatel Automated containment of network intruder
US7502344B2 (en) 2004-06-25 2009-03-10 Fujifilm Corporation Communications terminal, server, playback control method and program
US8422500B2 (en) 2004-07-02 2013-04-16 Rockstar Consortium Us Lp VLAN support of differentiated services
DE602004011928T2 (de) 2004-08-02 2009-02-12 Alcatel Lucent Verfahren zur Steuerung einer gemeinsamen genutzten Ressource durch verschiedene Manager
US7515589B2 (en) * 2004-08-27 2009-04-07 International Business Machines Corporation Method and apparatus for providing network virtualization
US7706302B2 (en) 2004-09-14 2010-04-27 Alcatel Lucent Optimization of routing forwarding database in a network processor
GB2419703A (en) 2004-10-29 2006-05-03 Hewlett Packard Development Co Isolated virtual overlay infrastructures each having an interface to control interaction with others
US8068408B2 (en) 2004-11-01 2011-11-29 Alcatel Lucent Softrouter protocol disaggregation
US9014181B2 (en) 2004-11-01 2015-04-21 Alcatel Lucent Softrouter separate control network
US8458467B2 (en) 2005-06-21 2013-06-04 Cisco Technology, Inc. Method and apparatus for adaptive application message payload content transformation in a network infrastructure element
JP2008524916A (ja) 2004-12-21 2008-07-10 テレフオンアクチーボラゲット エル エム エリクソン(パブル) 通信システムにおけるパケットフローに関する装置及び方法
JP2008527772A (ja) 2004-12-31 2008-07-24 ブリティッシュ・テレコミュニケーションズ・パブリック・リミテッド・カンパニー コネクションレス通信トラフィックのためのコネクション型通信スキーム
JP4733399B2 (ja) 2005-01-28 2011-07-27 株式会社日立製作所 計算機システム、計算機、ストレージ装置及び管理端末
US8254285B2 (en) 2005-02-25 2012-08-28 Ip Infusion, Inc. Hardware abstraction layer
US7936770B1 (en) 2005-03-08 2011-05-03 Enterasys Networks, Inc. Method and apparatus of virtual class of service and logical queue representation through network traffic distribution over multiple port interfaces
WO2006099296A2 (en) 2005-03-10 2006-09-21 Nexthop Technologies, Inc. Flexible, scalable, wireless data forwarding and mobility for secure wireless networks
FR2883437B1 (fr) 2005-03-16 2007-08-03 Wavestorm Sarl Dispositif et procede de communication dans un reseau
US7529256B2 (en) 2005-07-08 2009-05-05 Cisco Technology, Inc. Communication device client update system and method
US20070201490A1 (en) 2005-07-13 2007-08-30 Mahamuni Atul B System and method for implementing ethernet MAC address translation
US7802000B1 (en) 2005-08-01 2010-09-21 Vmware Virtual network in server farm
US7721299B2 (en) 2005-08-05 2010-05-18 Red Hat, Inc. Zero-copy network I/O for virtual hosts
US8149737B2 (en) 2005-08-09 2012-04-03 Motorola Solutions, Inc. Method and system for data transmission in a wireless network
US8799431B2 (en) 2005-08-15 2014-08-05 Toutvirtual Inc. Virtual systems management
CN100446469C (zh) 2005-09-09 2008-12-24 广东省电信有限公司研究院 一种对软交换网实现分权分域管理的网管系统和方法
US7363404B2 (en) 2005-10-27 2008-04-22 International Business Machines Corporation Creation and management of destination ID routing structures in multi-host PCI topologies
JP2007135109A (ja) 2005-11-11 2007-05-31 Hitachi Ltd 仮想ネットワーク管理方法、仮想ネットワーク管理プログラム、仮想ネットワーク管理システムおよび仮想ネットワーク管理手段
US20070140235A1 (en) * 2005-12-21 2007-06-21 Nortel Networks Limited Network visible inter-logical router links
US8856862B2 (en) 2006-03-02 2014-10-07 British Telecommunications Public Limited Company Message processing methods and systems
US8838756B2 (en) 2009-07-27 2014-09-16 Vmware, Inc. Management and implementation of enclosed local networks in a virtual lab
US8619771B2 (en) * 2009-09-30 2013-12-31 Vmware, Inc. Private allocated networks over shared communications infrastructure
US7839847B2 (en) 2006-05-08 2010-11-23 Cisco Technology, Inc. Methods and apparatus providing VPN traffic matrix construction
US7953089B1 (en) 2006-05-16 2011-05-31 Cisco Technology, Inc. Systems and methods for multicast switching in a private VLAN
US8060875B1 (en) 2006-05-26 2011-11-15 Vmware, Inc. System and method for multiple virtual teams
JP4714081B2 (ja) 2006-06-01 2011-06-29 アラクサラネットワークス株式会社 ネットワーク接続装置
US20070286209A1 (en) 2006-06-12 2007-12-13 Research In Motion Limited System and method for handling address resolution protocol requests
US7706303B2 (en) 2006-06-26 2010-04-27 Cisco Technology, Inc. Port pooling
US7643482B2 (en) 2006-06-30 2010-01-05 Sun Microsystems, Inc. System and method for virtual switching in a host
JP4882555B2 (ja) 2006-07-07 2012-02-22 双葉電子工業株式会社 無線ブリッジ通信機
US7916682B2 (en) 2006-07-14 2011-03-29 Symbol Technologies, Inc. Wireless switch network architecture implementing layer 3 mobility domains
US20080059556A1 (en) 2006-08-31 2008-03-06 Egenera, Inc. Providing virtual machine technology as an embedded layer within a processing platform
US8204982B2 (en) 2006-09-14 2012-06-19 Quova, Inc. System and method of middlebox detection and characterization
US20080069107A1 (en) 2006-09-15 2008-03-20 Siemens Aktiengesellschaft Scalable packet based network
US7643488B2 (en) 2006-09-29 2010-01-05 Nortel Networks Limited Method and apparatus for supporting multiple customer provisioned IPSec VPNs
US7996835B2 (en) 2006-10-10 2011-08-09 International Business Machines Corporation System, method and program for managing communication with multiple configurations for virtual machine
JP5244332B2 (ja) 2006-10-30 2013-07-24 株式会社日立製作所 情報システム、データ転送方法及びデータ保護方法
US7826482B1 (en) 2006-11-17 2010-11-02 Juniper Networks, Inc. Service-specific forwarding in an LDP-RSVP hybrid network
US8223668B2 (en) 2006-12-14 2012-07-17 Rockstar Bidco Lp Method and apparatus for exchanging routing information and the establishment of connectivity across multiple network areas
US20080181243A1 (en) * 2006-12-15 2008-07-31 Brocade Communications Systems, Inc. Ethernet forwarding in high performance fabrics
US7738457B2 (en) 2006-12-20 2010-06-15 Oracle America, Inc. Method and system for virtual routing using containers
US20080159301A1 (en) 2006-12-29 2008-07-03 De Heer Arjan Arie Enabling virtual private local area network services
US20080189769A1 (en) 2007-02-01 2008-08-07 Martin Casado Secure network switching infrastructure
EP2109965B1 (en) 2007-02-02 2015-04-08 Groupe Des Ecoles Des Telecommunications (GET) Institut National Des Telecommunications (INT) Autonomic network node system
US7760735B1 (en) 2007-02-06 2010-07-20 Google Inc. Method and system for discovering network paths
US7796594B2 (en) 2007-02-14 2010-09-14 Marvell Semiconductor, Inc. Logical bridging system and method
US8055789B2 (en) 2007-03-27 2011-11-08 Amazon Technologies, Inc. Configuring intercommunications between computing nodes
US8111707B2 (en) 2007-12-20 2012-02-07 Packeteer, Inc. Compression mechanisms for control plane—data plane processing architectures
US8594085B2 (en) 2007-04-11 2013-11-26 Palo Alto Networks, Inc. L2/L3 multi-mode switch including policy processing
WO2008128194A2 (en) 2007-04-12 2008-10-23 Rutgers, The State University Of New Jersey System and method for controlling a file system
US7903655B2 (en) 2007-04-19 2011-03-08 Hewlett-Packard Development Company, L.P. Marked packet forwarding
JP4740897B2 (ja) 2007-05-24 2011-08-03 株式会社日立製作所 仮想ネットワーク構成方法及びネットワークシステム
US7948874B2 (en) 2007-05-24 2011-05-24 World Wide Packets, Inc. Transitioning a virtual interface from one tunnel to another tunnel
US8031633B2 (en) 2007-08-13 2011-10-04 Honeywell International Inc. Virtual network architecture for space data processing
US8798056B2 (en) 2007-09-24 2014-08-05 Intel Corporation Method and system for virtual port communications
US7751329B2 (en) * 2007-10-03 2010-07-06 Avaya Inc. Providing an abstraction layer in a cluster switch that includes plural switches
JP5427181B2 (ja) 2007-10-03 2014-02-26 ヴァーテラ テクノロジー サーヴィシズ インコーポレイテッド 仮想化アプリケーション加速化インフラストラクチャ
US8539098B2 (en) * 2007-10-17 2013-09-17 Dispersive Networks, Inc. Multiplexed client server (MCS) communications and systems
US8848544B2 (en) 2007-11-08 2014-09-30 Cisco Technology, Inc. Event correlation using network data flow simulation over unmanaged network segments
US7855982B2 (en) 2007-11-19 2010-12-21 Rajesh Ramankutty Providing services to packet flows in a network
US7984123B2 (en) 2007-12-10 2011-07-19 Oracle America, Inc. Method and system for reconfiguring a virtual network path
US7945647B2 (en) 2007-12-10 2011-05-17 Oracle America, Inc. Method and system for creating a virtual network path
US8199750B1 (en) 2007-12-18 2012-06-12 World Wide Packets, Inc. Communicating with a control plane using a forwarding information format and control plane processing of packets devoid of a virtual switch identifier
US8194674B1 (en) 2007-12-20 2012-06-05 Quest Software, Inc. System and method for aggregating communications and for translating between overlapping internal network addresses and unique external network addresses
US9432213B2 (en) 2007-12-31 2016-08-30 Rpx Clearinghouse Llc IP forwarding across a link state protocol controlled ethernet network
CN101232339A (zh) 2008-02-18 2008-07-30 中国网络通信集团公司 动态服务水平协议控制系统及控制方法
GB2458157B (en) 2008-03-07 2012-04-25 Hewlett Packard Development Co Virtual machine liveness check
GB2458154B (en) 2008-03-07 2012-06-27 Hewlett Packard Development Co Routing across a virtual network
US8155028B2 (en) 2008-03-17 2012-04-10 Alcatel Lucent Method and apparatus for providing full logical connectivity in MPLS networks
US8146147B2 (en) 2008-03-27 2012-03-27 Juniper Networks, Inc. Combined firewalls
US8429739B2 (en) 2008-03-31 2013-04-23 Amazon Technologies, Inc. Authorizing communications between computing nodes
US20110035494A1 (en) 2008-04-15 2011-02-10 Blade Network Technologies Network virtualization for a virtualized server data center environment
JP2009278261A (ja) 2008-05-13 2009-11-26 Toshiba Corp 情報処理装置および通信制御方法
US8339959B1 (en) 2008-05-20 2012-12-25 Juniper Networks, Inc. Streamlined packet forwarding using dynamic filters for routing and security in a shared forwarding plane
US8195774B2 (en) 2008-05-23 2012-06-05 Vmware, Inc. Distributed virtual switch for virtualized computer systems
US8849971B2 (en) 2008-05-28 2014-09-30 Red Hat, Inc. Load balancing in cloud-based networks
US8160063B2 (en) 2008-06-09 2012-04-17 Microsoft Corporation Data center interconnect and traffic engineering
US7787399B2 (en) * 2008-07-25 2010-08-31 Alcatel-Lucent Usa Inc. Automatically configuring mesh groups in data networks
US7885276B1 (en) 2008-09-30 2011-02-08 Emc Corporation Isolating network traffic in multi-tenant virtualization environments
US20120015899A1 (en) 2008-10-25 2012-01-19 Plant Bioscience, Limited Modified plant virus particles and uses therefor
US7962647B2 (en) 2008-11-24 2011-06-14 Vmware, Inc. Application delivery control module for virtual network switch
US8055770B2 (en) 2008-12-15 2011-11-08 At&T Intellectual Property I, L.P. Method and apparatus for providing network virtualization
US8271775B2 (en) 2008-12-17 2012-09-18 Cisco Technology, Inc. Layer two encryption for data center interconnectivity
US8331362B2 (en) 2008-12-30 2012-12-11 Juniper Networks, Inc. Methods and apparatus for distributed dynamic network provisioning
US8054832B1 (en) 2008-12-30 2011-11-08 Juniper Networks, Inc. Methods and apparatus for routing between virtual resources based on a routing location policy
US8255496B2 (en) 2008-12-30 2012-08-28 Juniper Networks, Inc. Method and apparatus for determining a network topology during network provisioning
US7995483B1 (en) 2009-01-20 2011-08-09 Juniper Networks, Inc. Simultaneously testing connectivity to multiple remote maintenance endpoints of the same maintenance association
US20100192225A1 (en) 2009-01-28 2010-07-29 Juniper Networks, Inc. Efficient application identification with network devices
US7948986B1 (en) 2009-02-02 2011-05-24 Juniper Networks, Inc. Applying services within MPLS networks
US8553581B2 (en) 2009-02-17 2013-10-08 Tellabs Operations, Inc. Method and apparatus for provisioning a network element
EP2399363B1 (en) 2009-02-19 2019-05-29 Huawei Technologies Co., Ltd. System and method for point to multipoint inter-domain multiprotocol label switching traffic engineering path calculation
US8213336B2 (en) 2009-02-23 2012-07-03 Cisco Technology, Inc. Distributed data center access switch
EP2408155A4 (en) 2009-03-09 2015-01-28 Nec Corp OPENFLOW COMMUNICATION SYSTEM AND OPENFLOW COMMUNICATION METHOD
US8265075B2 (en) 2009-03-16 2012-09-11 International Business Machines Corporation Method and apparatus for managing, configuring, and controlling an I/O virtualization device through a network switch
US9106540B2 (en) * 2009-03-30 2015-08-11 Amazon Technologies, Inc. Providing logical networking functionality for managed computer networks
EP2804350B1 (en) 2009-04-01 2019-07-24 Nicira, Inc. Method and apparatus for implementing and managing virtual switches
US9727508B2 (en) 2009-04-27 2017-08-08 Intel Corporation Address learning and aging for network bridging in a network processor
US8589919B2 (en) 2009-04-28 2013-11-19 Cisco Technology, Inc. Traffic forwarding for virtual machines
US8027354B1 (en) 2009-04-29 2011-09-27 Cisco Technology, Inc. Network consolidation for virtualized servers
US8429647B2 (en) 2009-05-06 2013-04-23 Vmware, Inc. Virtual machine migration across network by publishing routes to the associated virtual networks via virtual router after the start of migration of the virtual machine
US8867349B2 (en) 2009-05-18 2014-10-21 Cisco Technology, Inc. Regulation of network traffic in virtual private networks
US8259726B2 (en) * 2009-05-28 2012-09-04 Force10 Networks, Inc. Method and apparatus for forwarding table reduction
US8644188B1 (en) 2009-06-25 2014-02-04 Amazon Technologies, Inc. Providing virtual networking functionality for managed computer networks
US20110032830A1 (en) 2009-08-06 2011-02-10 Jacobus Van Der Merwe Live Router Migration
US8339994B2 (en) 2009-08-27 2012-12-25 Brocade Communications Systems, Inc. Defining an optimal topology for a group of logical switches
US8619779B2 (en) 2009-09-30 2013-12-31 Alcatel Lucent Scalable architecture for enterprise extension in a cloud topology
US8599864B2 (en) 2009-10-08 2013-12-03 Brocade Communications Systems, Inc. Transit switches in a network of logical switches
US20110085557A1 (en) 2009-10-08 2011-04-14 Brocade Communications Systems, Inc. Partitioning of Switches and Fabrics into Logical Switches and Fabrics
EP2497234B1 (en) 2009-11-02 2018-09-19 Marvell World Trade Ltd. Network device and method based on virtual interfaces
US8442048B2 (en) 2009-11-04 2013-05-14 Juniper Networks, Inc. Methods and apparatus for configuring a virtual network switch
US8848508B2 (en) 2009-11-16 2014-09-30 Cisco Technology, Inc. Method for the provision of gateway anycast virtual MAC reachability in extended subnets
US7937438B1 (en) 2009-12-07 2011-05-03 Amazon Technologies, Inc. Using virtual networking devices to manage external connections
US20110134931A1 (en) 2009-12-08 2011-06-09 Jacobus Van Der Merwe Virtual router migration
US8705513B2 (en) 2009-12-15 2014-04-22 At&T Intellectual Property I, L.P. Methods and apparatus to communicatively couple virtual private networks to virtual machines within distributive computing networks
US8224971B1 (en) 2009-12-28 2012-07-17 Amazon Technologies, Inc. Using virtual networking devices and routing information to initiate external actions
US7991859B1 (en) 2009-12-28 2011-08-02 Amazon Technologies, Inc. Using virtual networking devices to connect managed computer networks
US7953865B1 (en) 2009-12-28 2011-05-31 Amazon Technologies, Inc. Using virtual networking devices to manage routing communications between connected computer networks
JP5392137B2 (ja) 2010-02-17 2014-01-22 富士通株式会社 通信処理のためのプログラム、コンピュータ及び方法
US8345688B2 (en) 2010-02-23 2013-01-01 Google Inc. System and method for managing flow of packets
CN101808030B (zh) 2010-03-01 2013-01-30 浙江大学 一种基于虚拟路由器的逻辑网络构建方法
US8612627B1 (en) 2010-03-03 2013-12-17 Amazon Technologies, Inc. Managing encoded multi-part communications for provided computer networks
US9413649B2 (en) 2010-03-12 2016-08-09 Force10 Networks, Inc. Virtual network device architecture
US8224931B1 (en) 2010-03-31 2012-07-17 Amazon Technologies, Inc. Managing use of intermediate destination computing nodes for provided computer networks
US8611352B2 (en) 2010-04-20 2013-12-17 Marvell World Trade Ltd. System and method for adapting a packet processing pipeline
US8566257B2 (en) 2010-04-26 2013-10-22 International Business Machines Corporation Address data learning and registration within a distributed virtual bridge
US8504718B2 (en) 2010-04-28 2013-08-06 Futurewei Technologies, Inc. System and method for a context layer switch
US8989186B2 (en) 2010-06-08 2015-03-24 Brocade Communication Systems, Inc. Virtual port grouping for virtual cluster switching
US8625616B2 (en) 2010-05-11 2014-01-07 Brocade Communications Systems, Inc. Converged network extension
US8407366B2 (en) 2010-05-14 2013-03-26 Microsoft Corporation Interconnecting members of a virtual network
JP5617137B2 (ja) 2010-05-28 2014-11-05 ホアウェイ・テクノロジーズ・カンパニー・リミテッド 仮想レイヤ2およびそれをスケーラブルにするための機構
US8989187B2 (en) * 2010-06-04 2015-03-24 Coraid, Inc. Method and system of scaling a cloud computing network
US8374183B2 (en) 2010-06-22 2013-02-12 Microsoft Corporation Distributed virtual network gateways
US8549120B2 (en) 2010-06-28 2013-10-01 Cisco Technology, Inc. System and method for location based address assignment in the distribution of traffic in a virtual gateway
CN103270736B (zh) 2010-06-29 2016-08-10 华为技术有限公司 一种网络设备
US9014054B2 (en) 2010-06-29 2015-04-21 Futurewei Technologies, Inc. Layer two over multiple sites
US8239572B1 (en) 2010-06-30 2012-08-07 Amazon Technologies, Inc. Custom routing decisions
US10103939B2 (en) * 2010-07-06 2018-10-16 Nicira, Inc. Network control apparatus and method for populating logical datapath sets
US8447909B2 (en) 2010-07-19 2013-05-21 International Business Machines Corporation Register access in distributed virtual bridge environment
US8456984B2 (en) 2010-07-19 2013-06-04 Ciena Corporation Virtualized shared protection capacity
US8718063B2 (en) * 2010-07-26 2014-05-06 Juniper Networks, Inc. Methods and apparatus related to route selection within a network
US8837281B2 (en) 2010-09-10 2014-09-16 Futurewei Technologies, Inc. Use of partitions to reduce flooding and filtering database size requirements in large layer two networks
US8804747B2 (en) * 2010-09-23 2014-08-12 Cisco Technology, Inc. Network interface controller for virtual and distributed services
US8565108B1 (en) 2010-09-28 2013-10-22 Amazon Technologies, Inc. Network data transmission analysis
CN102457583B (zh) 2010-10-19 2014-09-10 中兴通讯股份有限公司 一种虚拟机移动性的实现方法及系统
CN102075591A (zh) 2010-12-21 2011-05-25 华为技术有限公司 获取介质访问控制地址的方法、装置和系统
WO2012093429A1 (en) 2011-01-05 2012-07-12 Nec Corporation Communication control system, control server, forwarding node, communication control method, and communication control program
US10142218B2 (en) 2011-01-14 2018-11-27 International Business Machines Corporation Hypervisor routing between networks in a virtual networking environment
US8665739B2 (en) 2011-03-16 2014-03-04 Juniper Networks, Inc. Packet loss measurement at service endpoints of a virtual private LAN service
CN103460653A (zh) 2011-03-31 2013-12-18 日本电气株式会社 计算机系统和通信方法
JP5760647B2 (ja) * 2011-04-27 2015-08-12 日本電気株式会社 仮想環境における仮想ルーティング方法及び仮想ルーティングシステム
US20120291024A1 (en) * 2011-05-13 2012-11-15 International Business Machines Corporation Virtual Managed Network
JP5776337B2 (ja) 2011-06-02 2015-09-09 富士通株式会社 パケット変換プログラム、パケット変換装置、及びパケット変換方法
WO2012170016A1 (en) 2011-06-07 2012-12-13 Hewlett-Packard Development Company, L.P. A scalable multi-tenant network architecture for virtualized datacenters
US9229867B2 (en) 2011-06-16 2016-01-05 International Business Machines Corporation Shared network response cache
JP5824911B2 (ja) 2011-06-29 2015-12-02 富士通株式会社 情報処理装置、情報処理プログラムおよび管理方法
US8964563B2 (en) * 2011-07-08 2015-02-24 Telefonaktiebolaget L M Ericsson (Publ) Controller driven OAM for OpenFlow
US9237124B2 (en) 2011-07-14 2016-01-12 Marvell Israel (M.I.S.L) Ltd. Scaling of virtual machine addresses in datacenters
US8935457B2 (en) 2011-07-29 2015-01-13 International Business Machines Corporation Network filtering in a virtualized environment
WO2013020126A1 (en) * 2011-08-04 2013-02-07 Midokura Pte. Ltd. System and method for implementing and managing virtual networks
US20130034094A1 (en) 2011-08-05 2013-02-07 International Business Machines Corporation Virtual Switch Data Control In A Distributed Overlay Network
AU2012296330B2 (en) 2011-08-17 2016-03-17 Nicira, Inc. Hierarchical controller clusters for interconnecting different logical domains
US9124538B2 (en) 2011-08-17 2015-09-01 Nicira, Inc. Dynamic generation of flow entries for last-hop processing
US8867403B2 (en) * 2011-08-18 2014-10-21 International Business Machines Corporation Virtual network overlays
US8762501B2 (en) 2011-08-29 2014-06-24 Telefonaktiebolaget L M Ericsson (Publ) Implementing a 3G packet core in a cloud computer with openflow data and control planes
US9167501B2 (en) * 2011-08-29 2015-10-20 Telefonaktiebolaget L M Ericsson (Publ) Implementing a 3G packet core in a cloud computer with openflow data and control planes
US8856518B2 (en) 2011-09-07 2014-10-07 Microsoft Corporation Secure and efficient offloading of network policies to network interface cards
US9319459B2 (en) 2011-09-19 2016-04-19 Cisco Technology, Inc. Services controlled session based flow interceptor
WO2013063332A1 (en) 2011-10-25 2013-05-02 Nicira, Inc. Network virtualization apparatus and method with scheduling capabilities
US9154433B2 (en) 2011-10-25 2015-10-06 Nicira, Inc. Physical controller
US9294351B2 (en) 2011-11-10 2016-03-22 Cisco Technology, Inc. Dynamic policy based interface configuration for virtualized environments
WO2013074855A1 (en) * 2011-11-15 2013-05-23 Nicira, Inc. Control plane interface for logical middlebox services
US8819267B2 (en) 2011-11-16 2014-08-26 Force10 Networks, Inc. Network virtualization without gateway function
US8767737B2 (en) * 2011-11-30 2014-07-01 Industrial Technology Research Institute Data center network system and packet forwarding method thereof
CN104067231B (zh) 2011-12-07 2017-03-29 西里克斯系统公司 使用虚拟交换代理控制网络接口
US8948054B2 (en) 2011-12-30 2015-02-03 Cisco Technology, Inc. System and method for discovering multipoint endpoints in a network environment
US9077640B2 (en) * 2012-01-13 2015-07-07 Board Of Regents, The University Of Texas System Method and system of congestion control in a mobile virtual network
US8660129B1 (en) 2012-02-02 2014-02-25 Cisco Technology, Inc. Fully distributed routing over a user-configured on-demand virtual network for infrastructure-as-a-service (IaaS) on hybrid cloud networks
US8954964B2 (en) 2012-02-27 2015-02-10 Ca, Inc. System and method for isolated virtual image and appliance communication within a cloud environment
JP5834999B2 (ja) 2012-02-27 2015-12-24 富士通株式会社 データ収集方法、情報処理システムおよびプログラム
US9313048B2 (en) 2012-04-04 2016-04-12 Cisco Technology, Inc. Location aware virtual service provisioning in a hybrid cloud environment
US8923149B2 (en) 2012-04-09 2014-12-30 Futurewei Technologies, Inc. L3 gateway for VXLAN
CN103379010B (zh) 2012-04-20 2018-09-21 中兴通讯股份有限公司 一种虚拟网络实现方法及系统
US9407450B2 (en) * 2012-05-01 2016-08-02 Cisco Technnology, Inc. Method and apparatus for providing tenant information for network flows
US9504089B2 (en) 2012-05-14 2016-11-22 Broadcom Corporation System and method for wireless station bridging
CN104272668B (zh) * 2012-05-23 2018-05-22 博科通讯系统有限公司 层3覆盖网关
US8811409B2 (en) * 2012-06-04 2014-08-19 Telefonaktiebolaget L M Ericsson (Publ) Routing VLAN tagged packets to far end addresses of virtual forwarding instances using separate administrations
WO2013184941A1 (en) 2012-06-06 2013-12-12 Huawei Technologies Co., Ltd. Method of seamless integration and independent evolution of information-centric networking via software defined networking
US8750288B2 (en) 2012-06-06 2014-06-10 Juniper Networks, Inc. Physical path determination for virtual network packet flows
US8953441B2 (en) 2012-06-06 2015-02-10 Juniper Networks, Inc. Re-routing network traffic after link failure
US20150124612A1 (en) 2012-06-07 2015-05-07 Michael Schlansker Multi-tenant network provisioning
US9304801B2 (en) 2012-06-12 2016-04-05 TELEFONAKTIEBOLAGET L M ERRICSSON (publ) Elastic enforcement layer for cloud security using SDN
US8972602B2 (en) 2012-06-15 2015-03-03 Citrix Systems, Inc. Systems and methods for using ECMP routes for traffic distribution
US20140006585A1 (en) 2012-06-29 2014-01-02 Futurewei Technologies, Inc. Providing Mobility in Overlay Networks
CN102801715B (zh) * 2012-07-30 2015-03-11 华为技术有限公司 一种网络中虚拟机迁移的方法、网关及系统
US9288162B2 (en) 2012-08-03 2016-03-15 Cisco Technology, Inc. Adaptive infrastructure for distributed virtual switch
US9225549B2 (en) 2012-08-06 2015-12-29 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Multi-chassis link aggregation in a distributed virtual bridge
US9210079B2 (en) * 2012-08-14 2015-12-08 Vmware, Inc. Method and system for virtual and physical network integration
US9172557B2 (en) 2012-08-17 2015-10-27 International Business Machines Corporation Load balancing overlay network traffic using a teamed set of network interface cards
US9602430B2 (en) * 2012-08-21 2017-03-21 Brocade Communications Systems, Inc. Global VLANs for fabric switches
US9215171B2 (en) 2012-08-29 2015-12-15 International Business Machines Corporation Hashing-based routing table management
US9104492B2 (en) 2012-09-04 2015-08-11 Wisconsin Alumni Research Foundation Cloud-based middlebox management system
CN102857416B (zh) 2012-09-18 2016-09-28 中兴通讯股份有限公司 一种实现虚拟网络的方法、控制器和虚拟网络
US9008095B2 (en) 2012-10-02 2015-04-14 Cisco Technology, Inc. System and method for hardware-based learning of internet protocol addresses in a network environment
US8989183B2 (en) 2012-10-10 2015-03-24 Microsoft Technology Licensing, Llc Virtual machine multicast/broadcast in virtual network
US9571507B2 (en) 2012-10-21 2017-02-14 Mcafee, Inc. Providing a virtual security appliance architecture to a virtual cloud infrastructure
CN103795623B (zh) * 2012-10-26 2017-03-15 杭州华三通信技术有限公司 一种在虚拟设备间实现流量互通的方法和装置
US8931046B2 (en) 2012-10-30 2015-01-06 Stateless Networks, Inc. System and method for securing virtualized networks
US9253140B2 (en) * 2012-11-20 2016-02-02 Cisco Technology, Inc. System and method for optimizing within subnet communication in a network environment
US9036639B2 (en) 2012-11-29 2015-05-19 Futurewei Technologies, Inc. System and method for VXLAN inter-domain communications
EP2932659A4 (en) * 2012-12-12 2016-05-18 Ericsson Telefon Ab L M METHOD AND DEVICE FOR VLAN INTERFACE ROUTING
US9049115B2 (en) 2012-12-13 2015-06-02 Cisco Technology, Inc. Enabling virtual workloads using overlay technologies to interoperate with physical network services
US9014056B2 (en) 2012-12-18 2015-04-21 Qualcomm Incorporated Bridging network devices in a hybrid communication network
US8982703B2 (en) * 2012-12-18 2015-03-17 Mellanox Technologies Ltd. Routing support for lossless data traffic
CN103905283B (zh) 2012-12-25 2017-12-15 华为技术有限公司 基于可扩展虚拟局域网的通信方法及装置
US9008097B2 (en) * 2012-12-31 2015-04-14 Mellanox Technologies Ltd. Network interface controller supporting network virtualization
US9116727B2 (en) * 2013-01-15 2015-08-25 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Scalable network overlay virtualization using conventional virtual switches
US9602334B2 (en) 2013-01-22 2017-03-21 International Business Machines Corporation Independent network interfaces for virtual network environments
US9210082B2 (en) 2013-02-19 2015-12-08 Avago Technologies General Ip (Singapore) Pte. Ltd. High speed network bridging
US9699034B2 (en) 2013-02-26 2017-07-04 Zentera Systems, Inc. Secure cloud fabric to connect subnets in different network domains
US9306837B1 (en) * 2013-03-08 2016-04-05 Cisco Technology, Inc. Source IP-based pruning of traffic toward dually-connected overlay hosts in a data communications environment
US9432287B2 (en) 2013-03-12 2016-08-30 International Business Machines Corporation Virtual gateways and implicit routing in distributed overlay virtual environments
US10355930B2 (en) 2013-03-14 2019-07-16 Fortinet, Inc. System and method of subnetting a virtual network identifier
US9027087B2 (en) 2013-03-14 2015-05-05 Rackspace Us, Inc. Method and system for identity-based authentication of virtual machines
US9967111B2 (en) 2013-03-15 2018-05-08 Rackspace Us, Inc. Software-defined multinetwork bridge
US9197551B2 (en) * 2013-03-15 2015-11-24 International Business Machines Corporation Heterogeneous overlay network translation for domain unification
US9197553B2 (en) 2013-03-29 2015-11-24 Cisco Technology, Inc. Using a virtual internet protocol address to represent dually connected hosts in an internet protocol overlay network
US9225636B2 (en) 2013-04-04 2015-12-29 Telefonaktiebolaget L M Ericsson (Publ) Method and apparatus for exchanging IP packets among network layer 2 peers
US9559952B2 (en) * 2013-05-06 2017-01-31 Cisco Technology, Inc. Routing internet protocol version 6 link-local addresses in a network environment
US9225638B2 (en) 2013-05-09 2015-12-29 Vmware, Inc. Method and system for service switching using service tags
US9203738B2 (en) * 2013-05-21 2015-12-01 Cisco Technology, Inc. Optimal forwarding for trill fine-grained labeling and VXLAN interworking
JP5980725B2 (ja) 2013-05-24 2016-08-31 日本電信電話株式会社 ネットワーク装置、中継管理方法、中継管理プログラムおよび通信システム
US9749231B2 (en) 2013-07-02 2017-08-29 Arista Networks, Inc. Method and system for overlay routing with VXLAN on bare metal servers
US9282033B2 (en) * 2013-08-06 2016-03-08 Cisco Technology, Inc. Intelligent handling of virtual machine mobility in large data center environments
US9426060B2 (en) 2013-08-07 2016-08-23 International Business Machines Corporation Software defined network (SDN) switch clusters having layer-3 distributed router functionality
US9621508B2 (en) 2013-08-20 2017-04-11 Arista Networks, Inc. System and method for sharing VXLAN table information with a network controller
US9531676B2 (en) 2013-08-26 2016-12-27 Nicira, Inc. Proxy methods for suppressing broadcast traffic in a network
US9565105B2 (en) * 2013-09-04 2017-02-07 Cisco Technology, Inc. Implementation of virtual extensible local area network (VXLAN) in top-of-rack switches in a network environment
CN103491006B (zh) 2013-09-13 2016-08-17 清华大学 虚拟网络路由器的数据统一转发方法
US9485168B2 (en) 2013-10-03 2016-11-01 International Business Machines Corporation Temperature sensitive routing of data in a computer system
US9596126B2 (en) 2013-10-10 2017-03-14 Nicira, Inc. Controller side method of generating and updating a controller assignment list
US9910686B2 (en) 2013-10-13 2018-03-06 Nicira, Inc. Bridging between network segments with a logical router
US9264330B2 (en) 2013-10-13 2016-02-16 Nicira, Inc. Tracing host-originated logical network packets
US9264362B2 (en) 2013-10-17 2016-02-16 Cisco Technology, Inc. Proxy address resolution protocol on a controller device
US9876715B2 (en) 2013-11-05 2018-01-23 Cisco Technology, Inc. Network fabric overlay
US10951522B2 (en) 2013-11-05 2021-03-16 Cisco Technology, Inc. IP-based forwarding of bridged and routed IP packets and unicast ARP
US9729578B2 (en) 2014-01-10 2017-08-08 Arista Networks, Inc. Method and system for implementing a network policy using a VXLAN network identifier
US9246821B1 (en) 2014-01-28 2016-01-26 Google Inc. Systems and methods for implementing weighted cost multi-path using two-level equal cost multi-path tables
US9893988B2 (en) 2014-03-27 2018-02-13 Nicira, Inc. Address resolution using multiple designated instances of a logical router
CN106576075B (zh) 2014-03-27 2021-01-26 Nicira股份有限公司 在网络虚拟化基础设施上操作逻辑网络的方法和系统
US9413644B2 (en) 2014-03-27 2016-08-09 Nicira, Inc. Ingress ECMP in virtual distributed routing environment
US10826768B2 (en) 2014-03-28 2020-11-03 Hewlett Packard Enterprise Development Lp Controlled node configuration
CN103957160B (zh) 2014-05-12 2017-04-19 华为技术有限公司 一种发送报文的方法及设备
US10019278B2 (en) 2014-06-22 2018-07-10 Cisco Technology, Inc. Framework for network technology agnostic multi-cloud elastic extension and isolation
US10250529B2 (en) 2014-07-21 2019-04-02 Big Switch Networks, Inc. Systems and methods for performing logical network forwarding using a controller
US9858100B2 (en) 2014-08-22 2018-01-02 Nicira, Inc. Method and system of provisioning logical networks on a host machine
US9768980B2 (en) 2014-09-30 2017-09-19 Nicira, Inc. Virtual distributed bridging
US10250443B2 (en) 2014-09-30 2019-04-02 Nicira, Inc. Using physical location to modify behavior of a distributed virtual network element
US10511458B2 (en) 2014-09-30 2019-12-17 Nicira, Inc. Virtual distributed bridging
US10020960B2 (en) 2014-09-30 2018-07-10 Nicira, Inc. Virtual distributed bridging
WO2016053372A1 (en) 2014-09-30 2016-04-07 Nicira, Inc. Virtual distributed bridging module
US10075337B2 (en) 2015-01-23 2018-09-11 Cisco Technology, Inc. Mechanism for serving hardware resource information to an attached appliance
US10079779B2 (en) 2015-01-30 2018-09-18 Nicira, Inc. Implementing logical router uplinks
US10348625B2 (en) 2015-06-30 2019-07-09 Nicira, Inc. Sharing common L2 segment in a virtual distributed router environment
WO2017003957A1 (en) 2015-06-30 2017-01-05 Nicira, Inc Intermediate logical interfaces in a virtual distributed router environment
US10587514B1 (en) * 2015-12-21 2020-03-10 Amazon Technologies, Inc. Filtering control plane decision requests for forwarding network packets
US10511459B2 (en) 2017-11-14 2019-12-17 Nicira, Inc. Selection of managed forwarding element for bridge spanning multiple datacenters
US10374827B2 (en) 2017-11-14 2019-08-06 Nicira, Inc. Identifier that maps to different networks at different datacenters

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120158997A1 (en) 2010-12-15 2012-06-21 Industrial Technology Research Institute Network system and method of address resolution
US20130142048A1 (en) 2011-08-17 2013-06-06 Nicira, Inc. Flow templating in logical l3 routing
US20130145008A1 (en) 2011-12-01 2013-06-06 International Business Machines Corporation Enabling Co-Existence of Hosts or Virtual Machines with Identical Addresses

Also Published As

Publication number Publication date
EP3031178A2 (en) 2016-06-15
US9910686B2 (en) 2018-03-06
CN105684363B (zh) 2020-06-19
US9977685B2 (en) 2018-05-22
US11029982B2 (en) 2021-06-08
JP2016158285A (ja) 2016-09-01
KR20160057433A (ko) 2016-05-23
EP3627780B1 (en) 2021-11-03
WO2015054671A3 (en) 2015-06-11
US9575782B2 (en) 2017-02-21
EP3031178B1 (en) 2019-11-20
JP6317851B1 (ja) 2018-04-25
KR20200024343A (ko) 2020-03-06
KR102083749B1 (ko) 2020-03-02
US10528373B2 (en) 2020-01-07
CN111585889B (zh) 2022-08-16
US20180276013A1 (en) 2018-09-27
US20150103839A1 (en) 2015-04-16
KR102251661B1 (ko) 2021-05-12
EP3627780A1 (en) 2020-03-25
CN115174470A (zh) 2022-10-11
WO2015054671A2 (en) 2015-04-16
US20200081728A1 (en) 2020-03-12
CN111585889A (zh) 2020-08-25
JP2015076874A (ja) 2015-04-20
JP5925820B2 (ja) 2016-05-25
JP6266035B2 (ja) 2018-01-24
JP2018082449A (ja) 2018-05-24
KR20200131358A (ko) 2020-11-23
KR102084243B1 (ko) 2020-03-03
KR20180073726A (ko) 2018-07-02
US20210294622A1 (en) 2021-09-23
US20150106804A1 (en) 2015-04-16
US9785455B2 (en) 2017-10-10
US20150103843A1 (en) 2015-04-16
US20150103842A1 (en) 2015-04-16
CN105684363A (zh) 2016-06-15

Similar Documents

Publication Publication Date Title
KR102181554B1 (ko) 논리적 라우터
US11736394B2 (en) Address resolution using multiple designated instances of a logical router
US20210377186A1 (en) Edge datapath using user space network stack
US11115465B2 (en) Accessing endpoints in logical networks and public cloud service providers native networks using a single network interface and a single routing table
US10491516B2 (en) Packet communication between logical networks and public cloud service providers native networks using a single network interface and a single routing table
US11095513B2 (en) Scalable controller for hardware VTEPs

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
A107 Divisional application of patent
GRNT Written decision to grant