KR20230108254A - 인라인 투명 컴퓨터 네트워킹 장치의 효율적인 가상화를 위한 방법 및 시스템 - Google Patents

인라인 투명 컴퓨터 네트워킹 장치의 효율적인 가상화를 위한 방법 및 시스템 Download PDF

Info

Publication number
KR20230108254A
KR20230108254A KR1020237010178A KR20237010178A KR20230108254A KR 20230108254 A KR20230108254 A KR 20230108254A KR 1020237010178 A KR1020237010178 A KR 1020237010178A KR 20237010178 A KR20237010178 A KR 20237010178A KR 20230108254 A KR20230108254 A KR 20230108254A
Authority
KR
South Korea
Prior art keywords
network
virtual
addresses
address
nam
Prior art date
Application number
KR1020237010178A
Other languages
English (en)
Inventor
리처드 굿윈
폴 스프레이그
피터 제레미아
션 무어
Original Assignee
센트리페탈 리미티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 센트리페탈 리미티드 filed Critical 센트리페탈 리미티드
Publication of KR20230108254A publication Critical patent/KR20230108254A/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/2521Translation architectures other than single NAT servers
    • H04L61/2528Translation at a proxy
    • 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/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/256NAT traversal
    • H04L61/2582NAT traversal through control of the NAT server, e.g. using universal plug and play [UPnP]
    • 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/66Layer 2 routing, e.g. in Ethernet based MAN's
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/68Pseudowire emulation, e.g. IETF WG PWE3
    • 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/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/2514Translation of Internet protocol [IP] addresses between local and global IP addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/59Network arrangements, protocols or services for addressing or naming using proxies for addressing
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/618Details of network addresses
    • H04L2101/622Layer-2 addresses, e.g. medium access control [MAC] addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/668Internet protocol [IP] address subnets

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

네트워크 링크들에 인라인으로 삽입되고 통과 중인 패킷을 처리하는 네트워크 장치들은 L3 IP 주소들 및 L2 MAC 주소들을 네트워크 인터페이스들에 할당하지 않고, 이에 의해 운영 체제 커널을 통한 느린 경로를 우회하는 논리적 빠른 경로를 통해 패킷들을 처리함으로써 그들의 패킷 처리량 성능을 상당히 개선할 수 있다. 클라우드로 배치하기 위해 이러한 범프-인-더-와이어(BITW) 장치를 가상화할 때, 네트워크 인터페이스는 L3 IP 및 그에 할당된 L2 MAC 주소를 가져야 한다. 따라서, 패킷들은 가상 BITW 장치의 느린 경로를 통해 처리되어 성능을 상당히 감소시킨다. 가상 BITW 장치에 새로운 로직을 추가하고/하거나 프록시들, 주소, 서브넷, 및/또는 라우팅 테이블을 구성함으로써, 가상 BITW 장치는 패킷을 빠른 경로를 통해 처리할 수 있고 그에 따라 성능을 잠재적으로 향상시킬 수 있다. 예를 들어, 가상 BITW 장치는 가상 BITW 장치를 통해 가상 경로(빠른 경로를 포함함)를 시행하도록 구성될 수 있다.

Description

인라인 투명 컴퓨터 네트워킹 장치의 효율적인 가상화를 위한 방법 및 시스템
관련 출원의 상호 참조
본 출원은 2020년 8월 27일자로 출원된 미국 임시 특허 출원 제63/071,174호에 대한 우선권을 주장하는, 2021년 8월 5일자로 출원된 미국 특허 출원 제17/395,120호에 대한 우선권을 주장하며, 이들 각각은 그 전문이 본원에 참조로서 인용된다.
공용 인터넷과 같은 전송 제어 프로토콜/인터넷 프로토콜(TCP/IP) 네트워크는 현대 정보 시대를 위한 기초이다. TCP/IP 프로토콜 세트는 어떻게 데이터가 패킷화, 어드레싱, 전송, 라우팅 및 수신되어야 하는지를 구체화함으로서 엔드포인트 호스트 컴퓨터들 간의 데이터 통신을 가능하게 한다 TCP/IP 프로토콜 세트는 5개의 계층: 물리적 계층(계층 1, 또는 L1), 데이터 링크 계층(L2), 네트워크 계층(L3), 전송 계층(L4), 및 애플리케이션 계층으로 구성된다. 본 개시내용과 특히 관련된 것은 패킷을 그들의 목적지(예를 들어, 엔드포인트/호스트 컴퓨터)로 효율적으로 전달하기 위한 라우터와 같은 네트워크 노드/호스트에 의해 사용되는 계층3(L3) 프로토콜(예를 들어, IPv4 및 IPv6와 같은 인터넷 프로토콜(IP)), 뿐만 아니라 네트워크 노드/호스트를 연결하는 링크를 통해 패킷을 효율적으로 전송하는데 사용되는 계층2(L2) 링크 계층 프로토콜(예를 들어, 이더넷 802.3, 미디어 액세스 제어(MAC) 어드레싱, 주소 변환 프로토콜(ARP), 네이버 디스커버리 프로토콜(NDP), 등등)이다.
많은 조직들은 사업 운영을 지원하고 다른 네트워크화된 조직 및 소비자들에 컴퓨터 서비스들 및 자원들을 제공하기 위해 사설 TCP/IP 네트워크들을 운용한다. 이러한 사설 네트워크는 인터넷에 의해 상호 연결되며, 다른 조직이 서로 다른 조직의 컴퓨터 서비스 및 자원에 액세스할 수 있게 한다. 이러한 컴퓨터들은 인터넷의 공용 IP 주소 공간/세트의 요소들인 IP 주소들에 의해 어드레싱되거나 또는 식별된다. 사설 네트워크들은 종종 인터넷으로부터 자율적으로 운용/관리되고 인터넷의 공용 IP 주소 공간/세트와 구별되는 사설 IP 주소 공간/세트를 사용한다, 즉, 교차점은 빈 세트이다. 따라서, 사설 네트워크를 운용하는 조직이 그의 컴퓨터/호스트가 인터넷 호스트를 액세스하거나 인터넷 호스트들에 의해 액세스되는 것을 원하는 경우, 조직은 사설 네트워크와 인터넷 사이의 경계에 위치된 네트워크 주소 변환(NAT) 게이트웨이를 운용할 필요가 있다. NAT 게이트웨이는 인터넷 IP 주소 공간과 사설 네트워크의 IP 주소 공간 사이의 인터페이스로서 기능하며, 즉, NAT 게이트웨이는 인터넷 IP 주소와 사설 네트워크의 IP 주소 사이에서 변환한다. 따라서, 조직이 그의 사설 네트워크에 연결된 호스트 컴퓨터를 인터넷, 예를 들어, 회사 웹 사이트로부터 액세스 가능하도록/주소지정 가능하도록 하기를 원하는 경우, 호스트 컴퓨터는 사설 IP 주소 및 공용 IP 주소 모두와 연관되어야 한다. NAT 게이트웨이는 호스트 컴퓨터의 사설 IP 주소와 그의 공용 IP 주소 사이에서 변환하도록 구성된다. 이러한 연관은 정적이고 영구적이거나 또는 동적이고 일시적일 수 있다.
도 1a는 기업에 의해 운용/관리되는 (물리적 또는 비-가상) 사설 네트워크(104)가 공용 네트워크(102)(예를 들어, 인터넷)에 인터페이스되는 네트워크 환경(100)의 예를 도시한다. 기업은 예를 들어 IPv4 사설 주소 공간(10.0.0.0/8)으로부터 그의 호스트 컴퓨터, 라우터, 및/또는 다른 장치의 네트워크 인터페이스에 사설 IP 주소를 할당할 수 있다. 내부 라우팅 프로토콜(예를 들어, 개방 최단 경로 우선(OSPF))은 사설 네트워크(104)와 연관된 임의의 2개의 사설 IP 주소들 사이에서 네트워크 경로(108)를 결정하는 라우팅 정책을 정의하기 위해 기업에 의해 사용될 수 있다. 기업은 네트워크 주소 변환(NAT) 게이트웨이(NAT-G/W)(120)를 통해 그의 사설 네트워크(사설 IP 주소 공간을 사용할 수 있음)를 인터넷(공용 IP 주소 공간을 사용할 수 있음)에 인터페이스할 수 있다. NAT 게이트웨이 기능은 다이어그램에 도시되지 않은 네트워크 방화벽 및 에지 라우터와 같은 하나 이상의 네트워크 에지 장치에 포함될 수 있다. NAT-G/W(120)는 기업에 할당된 공용 인터넷 IP 주소를 사설 IP 주소로 변환할 수 있다. 이러한 방식으로, 사설 네트워크에 연결된 내부 호스트는 인터넷 호스트와 통신할 수 있고, 그 반대도 마찬가지이다. 예를 들어, 기업의 인터넷 서비스 제공자(ISP)는 공용 인터넷(IPv4) 주소 블록(예를 들어, 174.129.20.0/24)을 기업에 제공할 수 있다. 기업은, 예를 들어, 주소 블럭(174.129.20.0/24)을 그의 NAT-G/W(120)의 인터넷-대면 네트워크 인터페이스 N1(121)에 그리고 예를 들어, 사설 IP 주소(10.0.1.1)를 NAT-G/W(120)의 사설 네트워크-대면 네트워크 인터페이스 N2(122)에 할당할 수 있다.
기업은 또한 NAT-G/W(120)를 공용 IP 주소(예를 들어, 174.129.20.63)를 (물리적 또는 비-가상) 컴퓨터(160)에 할당된 사설 IP 주소(예를 들어, 10.0.2.157)에 맵핑하도록 구성할 수 있다. 따라서, 이 예에서 컴퓨터(160)의 공용 IP 주소는 174.129.20.63일 것이다. 사설 네트워크(104)에 대한 라우팅 정책 및 연관된 구성은 NAT-G/W(120)를 통과하는 컴퓨터(160)에 의해 공급되거나 또는 컴퓨터(160)로 향해진 패킷들(즉, 인터넷 호스트들로 향해지거나 또는 인터넷 호스트들에 의해 공급된 패킷)에 대해 사설 네트워크(104)를 통하는 경로(108)를 결정할 수 있다. 경로(108)는 예를 들어 NAT-G/W(120)의 네트워크 인터페이스를 컴퓨터(160)의 네트워크 인터페이스에 연결하는 단일 물리적 링크/케이블이거나, 또는 예를 들어, 네트워크 경로 상에 있는 하나 이상의 라우터 및/또는 스위치(노드)를 연결하는 다수의 물리적 링크일 수 있다. 이러한 구성으로, 예를 들어, 공용 네트워크(102)에 연결된 컴퓨터(HOST-0(110))는 원천 또는 목적지 IP 주소로서 174.129.20.63으로 인터넷을 통한 L3/IP 패킷의 전송을 통해 사설 네트워크(104)에 연결된 컴퓨터(160)와 양방향으로 통신할 수 있다.
기업은 네트워크 노드들의 네트워크 인터페이스들(예를 들어, 라우터, 스위치, 호스트 컴퓨터 등)을 연결하는 물리적 링크(예를 들어, 구리 및 광케이블)로 인라인으로 삽입되고, 패킷의 내용 및/또는 중개 장치의 애플리케이션 로직에 따라 통과 중인 패킷을 검사하고 처리할 수 있는 중개 장치를 배치할 수 있다. 이와 같이, 이러한 장치들은 통과 중인 패킷 처리 장치들로 지칭될 수 있다. 이러한 중개 패킷 처리 장치들은 사설 네트워크의 소유자/운영자/관리자(예를 들어, 기업)에 의해 정의된 바와 같이 데이터 통신 정책(예를 들어, 네트워크 보안 정책, 네트워크 액세스 제어 정책, 네트워크 애플리케이션 사용 정책, 네트워크 주소 변환 정책 등)을 시행할 수 있다. 특정 통신들에 대한 정책들을 시행하기 위해, 네트워크 관리자는 중재 패킷 처리 장치들의 위치들(예를 들어, 어느 링크에 중재 패킷 처리 장치들이 삽입되어야 하는 지를 결정함), 네트워크 구성들, 및/또는 특정 통신의 패킷은 항상 (하나 또는 양방향으로) 중재 패킷 처리 장치들을 통과하도록 하는 라우팅 정책을 조정할 수 있다. 이러한 정책들은 내부 호스트들(사설 네트워크, 예를 들어 컴퓨터(160)에 연결된)과 공용 네트워크(예를 들어, 인터넷) 호스트들 사이의 통신에 적용될 수 있기 때문에, 장치들은 사설 네트워크와 공용 네트워크 사이의 경계에 또는 그 근처에 위치될 수 있으며, 예를 들어, 장치들은 공용 네트워크 액세스 링크들에 삽입될 수 있다. 이러한 장치들의 예들은 네트워크 방화벽, 네트워크 액세스 제어기, 웹 프록시, TLS 프록시, 패킷 보안 게이트웨이, 위협 지능형 게이트웨이, IPsec 게이트웨이 등을 포함한다. 유사하게, 장치들은 임의의 상이한 네트워크들의 경계들 사이(예를 들어, 사설 네트워크와 공용 네트워크 사이로만 제한되지 않음) 및/또는 네트워크 내의 서브넷들 및/또는 세그먼트들의 경계들 사이에, 예를 들어, 집중 지점 및 부하 분산 지점들에서 위치될 수 있다.
도 1b를 참조하면, 2개의 네트워크 요소들 A(예를 들어, NAT-G/W(120))와 B(예를 들어, 컴퓨터(160)) 사이의 경로(108) 상의 링크에 인라인 작동/삽입을 위해 중재 패킷 처리 네트워크 장치 C(140)를 구성할 때, 경로(108)의 전부 또는 일부를 구성할 수 있는 물리적 링크(예를 들어, 구리 또는 광 케이블 및/또는 물리적 무선 연결)는, 요소 A의 네트워크 인터페이스 포트를 장치 C(140)의 네트워크 인터페이스 포트 C1(141)로 연결하는 하나의 링크 및 요소 B의 네트워크 인터페이스 포트를 장치 C(140)의 네트워크 인터페이스 포트 C2(142)로 연결하는 다른 링크인, 2개의 링크로 물리적으로 분할될 수 있다. 장치 C의 네트워크 인터페이스 C1 및 C2는 장치의 애플리케이션 로직(예를 들어, 패킷 필터링 및/또는 연관된 정책 시행 로직)에 의해 정의된 내부 논리적 링크에 의해 연결될 수 있다. 예를 들어, C1(또는 C2)에 유입하는 통과 중인 패킷은 장치 C의 애플리케이션 로직에 의해 처리된 다음, 로직이 패킷을 드롭하지 않도록 결정하고, 패킷은 C2(또는 C1)를 통해 장치 C에서 유출될 수 있다.
일부 시나리오들에서, 네트워크 장치들의 네트워크 인터페이스들은 그들과 연관된 L3/네트워크 계층(예를 들어, IPv4) 및 L2/링크 계층(예를 들어, MAC) 주소들을 가질 수 있다. 이러한 예에서, 인터페이스 및 장치는 비-투명한 것으로 설명된다. 비-투명 장치들은 직접적으로 어드레싱될 수 있고 라우팅 프로토콜들(예를 들어, OSPF) 및 (L2) 스위칭 및 전달 및 링크 계층 디스커버리 프로토콜들(예를 들어, ARP, NDP)을 통해 (L3) 라우팅 정책 및 구성들을 결정하는 것에 참여할 수 있는 인터페이스들을 가질 수 있다. 예를 들어, 웹 사용 및 웹 보안 정책을 시행하기 위해 통신 정책을 시행하는 것과 관련하여, 기업은 특정 (또는 모든) 아웃바운드 웹(즉, HTTP/HTTPS) 트래픽이 비-투명 웹 프록시를 통해 라우팅되어야 하고/하거나 네트워크 방화벽이 비-투명 웹 프록시로부터 아웃바운드 웹 트래픽만을 허용하도록 네트워크(예를 들어, 사설 네트워크(104)), 장치 및 애플리케이션을 구성할 수 있다. 이러한 구성은 (L3) IP 주소들로 할당되고/식별되는 웹 프록시의 네트워크 인터페이스들을 포함할 수 있다. 보다 일반적으로, 네트워크 관리자가 IP-주소지정 가능 네트워크 인터페이스로 패킷 처리 장치를 통한 특정 통신 경로를 요구하는 네트워크 통신 정책을 정의할 때, 관리자는 네트워크 및 라우팅 정책/라우팅 테이블이 요건을 충족하도록 적절하게 구성되도록 보장해야 한다. 네트워크 및/또는 라우팅 정책에 대한 변경들은 요건이 만족되지 않는 라우팅의 변화를 잠재적으로 야기할 수 있다; 따라서, 이러한 변경을 할 때, 관리자는 이러한 요건이 여전히 충족되는 것을 보장하기 위해 동작을 취할 필요가 있을 수 있다.
다른 시나리오들에서, 네트워크 장치들은 그들과 연관된 L3/네트워크 계층(예를 들어, IPv4, IPv6) 및 L2/링크 계층(예를 들어, MAC) 주소들을 갖지 않을 수 있다. 이러한 구성은 예를 들어, 통과 중인 패킷들, 예를 들어, 패킷 필터링 장치들을 처리하는 인라인 네트워크 장치들에서 사용될 수 있다. 이러한 예들에서, 장치들이 L3 또는 L2에서 작동하는 다른 네트워크 요소들 및 프로토콜들에 의해 "보이거나" 또는 관찰될 수 없기 때문에, 인터페이스들 및 장치들은 투명한 것으로(L 3- 및 L 2-) 설명된다. 당업자는 이러한 투명 인라인 장치를, "범프 인 더 와이어"(BITW)로 지칭하는데, BITW 장치를 통해 통과하는 프레임/패킷이 L2 또는 L3에서 변경되지 않고(예를 들어, MAC 주소 또는 IP 주소 또는 다른 헤더 필드에 대해 변경이 없음), 종종 어떤 계층에서도 수정되지 않는다는 것이 하나의 이유다.
BITW 장치의 이러한 투명 구성으로 인한 다수의 잠재적인 이점 및 잠재적인 효율이 있다. 예를 들어, 성능(장치의 패킷 처리량으로 측정된)은 다수의 이유로 개선될 수 있다. 한 가지 이유는, 유출하는 프레임/패킷이 예를 들어, L2 프레임에 대한 목적지 MAC 주소를 결정하기 위해, 예를 들어 운영 체제(OS) 커널로의 호출을 통해 라우팅 및 전달 테이블에 액세스할 필요가 없을 수 있다는 것이다. 또 다른 이유는, 비-투명 패킷 처리 장치들이 장치의 OS(예를 들어, 리눅스) 커널에 의해 제공되는 비교적 느린 TCP/IP 네트워킹 스택 로직을 사용하여 통과 중인 패킷들을 처리하고 L3 라우팅 및 L2 스위칭/전달 프로토콜에 참여할 수 있으며; 투명 장치들은 OS 커널의 TCP/IP 네트워킹 스택을 우회하고, 네트워크 인터페이스 제어기(NICs)들 예를 들어, 데이터 플레인 개발 키트(DPDK)에 직접 액세스하는 훨씬 더 빠른 패킷 처리 로직을 사용할 수 있다는 것이다. DPDK와 같은 빠른 패킷 처리 로직 모듈은 L3/IP 패킷 헤더(예를 들어, 패킷의 원천 또는 목적지 IP 주소 값을 변경하는 프록시 기능) 또는 L2/이더넷 프레임(예를 들어, 원천 또는 목적지 MAC 주소 값을 변경하는 링크 전달 기능)을 변경하는 기능을 기본적으로 지원하지 않을 수 있다. 특정 애플리케이션에 대해 이러한 기능들이 필요한 경우, 애플리케이션은 예를 들어, OS의 TCP/IP 네트워킹 스택으로의 호출들을 통해 그들에 액세스할 수 있다 그러나 이러한 접근법은 애플리케이션의 패킷 처리 성능에 영향을 미칠 수 있다.
당업자들은 종종 OS 우회 아키텍처/구현을 "빠른 경로"(OS 커널을 통한 "느린 경로" 대비)로서 지칭하고, 연관된 BITW 장치가 최소 지연을 추가하고 패킷들을 드롭(예를 들어, 큰 지연들로 인한 버퍼 오버플로우들 때문에)하지 않는다고 가정할 수 있다. 비-투명 장치들에서와 같이, 네트워크 관리자들이 특정 통신이 이러한 투명 장치들을 통해 통과하는 것을 요구하는 네트워크 통신 정책들을 정의할 때, 관리자들은 네트워크 및 라우팅 정책이 요건을 충족하도록 적절하게 구성되도록 보장해야 한다. 그러나, 투명 장치의 네트워크 인터페이스들이 IP 주소들을 갖지 않기 때문에, 관리자들은 특정 패킷들을 인터페이스들로 지향시키기 위해 라우팅 정책을 사용할 수 없지만, 대신 요건들이 충족되는 것을 보장하기 위해 간접적인 방법들을 사용해야 한다. 따라서, 비-투명 장치 경우와 유사하게, 네트워크 및/또는 라우팅 정책에 대한 변경들은 요건이 만족되지 않는 라우팅의 변화를 잠재적으로 야기할 수 있고; 따라서, 이러한 변경을 만들 때, 관리자는 이러한 요건이 여전히 충족되는 것을 보장하기 위해 동작을 취할 필요가 있을 수 있으며, 이는(예를 들어, 직접에 비해 간접 라우팅 방법만이 사용될 수 있기 때문에) 비-투명 경우보다 효과내기가 더 어려울 수 있다.
클라우드 컴퓨팅 플랫폼 및 서비스(예를 들어, 아마존 웹 서비스, 마이크로소프트 애저, 구글 클라우드 등)의 효율성은 많은 조직이 이들의 물리적 사설 네트워크의 부분을 가상 사설 클라우드로 이동하거나 가상화하게 하였다. 인라인 네트워크 장치를, 예를 들어 인라인 패킷-필터링 장치를, 아마존 가상 사설 클라우드(VPC)와 같은 서비스를 사용하여 가상 사설 클라우드 환경에서 제공할 때, 장치의 네트워크 인터페이스는 (사설) IP 주소가 할당되어야 하고, 장치의 네트워크 인터페이스는 더 이상 투명하지 않을 수 있다. 물리적 장치의 네트워크 인터페이스 포트에 대한 연결이 물리적 연결, 예를 들어 이더넷 케이블로 이루어질 수 있지만, 가상 환경에서 이러한 물리적 연결은 가능하지 않다. 이러한 물리적 연결을 가상 클라우드 환경에 매핑할 때, 연결은 L3 라우팅 및 연관된 라우팅 정책을 통해 모방/가상화되어야 한다.
도 2a는, 예를 들어, 기업 자체에 의해 호스팅되거나 또는 IaaS 제공자(예를 들어, 아마존, 마이크로소프트, 구글 등)에 의해 호스팅될 수 있는 인프라스트럭처-애즈-어-서비스(IaaS) 플랫폼의 상단 상에 기업에 의해 구성된 가상 사설 클라우드(204)를 공용 네트워크(102)에 인터페이스하는 예시적인 네트워크 환경(200)을 도시한다. 가상 사설 클라우드(204)는 도 1a의 물리적 사설 네트워크(104)의 가상화된 버전일 수 있다. IaaS 플랫폼에 의해 공급되거나 제공될 수 있는 가상 NAT-G/W(220) 기능은, 공용 주소(예를 들어, 인터넷 주소), 예를 들어 174.129.20.63을 가상 컴퓨터(260)에 대한 10.0.2.157과 같은 가상 컴퓨터의 사설 IP 주소에 매핑할 수 있다.
라우팅 프로토콜 및 연관된 라우팅 정책은 또한 가상 NAT-G/W(220)와 가상 컴퓨터(260) 사이의 네트워크 경로를 결정할 수 있으며, 이는 도 2a에 가상 경로(208)에 의해 표현된다. 가상 사설 클라우드에 대한 라우팅 프로토콜들 및 정책들은 IaaS 플랫폼 공급자, 예를 들어, IaaS 제공자에 의해, 그리고 반드시는 아니지만 플랫폼 가입자(예를 들어, 기업)에 의해 관리되어 질 수 있다. 라우팅 프로토콜들 및 정책들은 상이한 IaaS 제공자 간에 다를 수 있다 또한, IaaS 제공자는 IaaS 제공자의 가상 사설 클라우드 플랫폼을 사용하는 가입자/기업에게 라우팅 프로토콜 및 정책의 제어를 노출시키지 않을 수 있다. 따라서, 예를 들어, 기업이 특정 패킷들이 가상 사설 클라우드를 통해 특정 경로 또는 서브 경로 또는 링크를 통과하는 것을 요구하는 경우, 기업은 클라우드의 요소들의 IP 주소들을 구성해야 하고, 예를 들어, 서브넷들을 구성함으로써 그리고 클라우드의 라우팅 테이블들을 수정함으로써(IaaS 제공자들이 노출함), 특정 경로가 특정 패킷들에 의해 통과되는 방식으로 사설 클라우드를 구성해야 한다 기업은 라우팅 정책을 제어하지 않을 수 있기 때문에, 그런 요구가 만족되는 것을 보장하는 것은 특히 사설 클라우드가 동적일 때, 예를 들어, 라우팅 구성들을 변경하는 사설 클라우드에 대해 변경이 잦을 때 어렵고 문제가 될 수 있다(예를 들어, 클라우드의 잠재적인 장점 중 하나는 동적인 부하 변화로 인해 동적으로 서버를 추가하거나 제거하는 등 네트워크에 대한 변경이 물리적 네트워크에 비해 구현하는데 훨씬 효율적일 수 있기 때문일 수 있음).
하기 몇 개의 문단은 본 개시내용의 일부 양태의 기본적인 이해를 제공하기 위해 단순화한 개요를 제시한다. 그것들은 본 개시내용의 핵심 또는 중요한 요소를 확인하려는 것도, 본 개시내용의 범위를 기술하려는 것도 아니다. 하기 몇개의 문단은 본 개시내용의 일부 개념을 아래의 설명에 대한 서문으로서 간략한 형태로 단지 제시하는 것일 뿐이다.
상기 배경 논의를 고려하여, 투명 물리적 BITW 네트워크 장치들의 가상화를 지원하고/하거나 장치들을 동적 가상 사설 클라우드 환경들에 제공하는 방법, 시스템 및 로직이 필요하다. (a) 빠른 경로 패킷 처리 및 연관된 패킷 처리량 성능을 보존할 수 있는 방식, (b) 가상화된 BITW 장치들을 통과하는 가상 경로들을 특정/명시된 통신들을 포함하는 패킷이 통과하는 것을 보장하는 정책을 시행하는 방식, 및/또는 (c) 상이한 가상 사설 클라우드 플랫폼들에 걸쳐 라우팅 정책들의 차이들에 불변인 방식으로 수행될 필요가 더 있다.
본원에 설명된 양태들은 일반적으로 TCP/IP 네트워킹, 및 이의 관련 방법들을 위한 컴퓨터 하드웨어 및 소프트웨어에 관한 것이다. 예를 들어, 본 개시내용의 하나 이상의 비-제한적인 양태는 일반적으로 컴퓨터 네트워크에서 패킷화된 데이터 전송을 매개하는 네트워킹 장치에 관한 것이다.
예를 들어, 본원에 개시된 방법들, 장치들, 시스템들 및/또는 컴퓨터 판독가능 매체는, (1a) 인라인 투명한 물리적 통과 중인 패킷 처리 네트워크 장치들의 효율적인 가상화 및/또는 (1b) 가상 사설 클라우드 환경으로의 효율적인 배치를 지원할 수 있고/있거나 (2a) 장치의 패킷 처리 성능을 보전하고/하거나 (2b) 하나 이상의 인터넷 호스트와 가상 범프-인-더-와이어(BITW) 장치의 네트워크 인터페이스들 사이의 가상의 링크를 포함하는 가상의 경로를 통과하는 가상의 사설 클라우드에 연결된 하나 이상의 가상의 호스트들 사이의 통신을 포함하는 기업 통신 정책을 시행하는 로직 및 구성의 예를 기술한다. 이러한 속성들 및 특성들은 상이한 가상 사설 클라우드 플랫폼들에 걸쳐 발생할 수 있는 라우팅 정책들의 차이들 또는 변화들에 불변일 수 있다. 편의상, 용어 "가상 BITW 장치"는 물리적 BITW 장치들의, 예를 들어, 클라우드에 가상화되고 배치된 인라인 투명 통과 중인 빠른 경로 패킷 처리 물리적 네트워크 장치의, 가상화된 버전을 라벨링하기 위해 본원에서 사용될 수 있다.
클라우드에 가상화되고 제공될 때, 이러한 가상 BITW 장치들의 네트워크 인터페이스들은, 원하는 L3 프록시 기능들 및 L3/L2 라우팅 및 전달 기능들을 달성하기 위해, 장치의 효율적인 네트워크 주소 맵퍼(NAM) 로직 및 클라우드의 라우팅 테이블에 연관된 (L3) 사설 IP 주소들 및 (L2) MAC 주소들을 할당받을 수 있다. 가상화된 장치는 느린 경로 운영 체제의 TCP/IP 네트워킹 스택 로직을 우회하면서 BITW 장치의 물리적 버전에 의해 사용되는 동일하거나 유사한 빠른 경로 패킷 처리(FPPP) 로직(예를 들어, 데이터 플레인 개발 키트(DPDK))을 사용하여 통과 중인 패킷을 처리할 수 있다.
가상 사설 클라우드에 연결된 가상 호스트 컴퓨터는 그의 (사설) IP 주소에 의해 식별될 수 있고, 가상 호스트 컴퓨터와 인터넷 호스트 사이의 통신을 포함하는 통과 중인 패킷의 특정 또는 전부가 가상 호스트 컴퓨터와 클라우드 인터넷 인터페이스, 예를 들어, 네트워크 주소 변환(NAT) 게이트웨이 사이의 가상 경로에 배치된 가상 BITW 장치를 반드시 통과해야 한다는 정책과 연관될 수 있다. 가상 BITW 장치, 가상 호스트 컴퓨터, 및 NAT 게이트웨이의 IP 주소 및 연관된 서브넷은 인터넷과 가상 호스트 컴퓨터 사이의 통신이 가상 경로를 통과하고 가상 BITW 장치를 통과하도록 구성될 수 있다. 가상 BITW 장치의 인터넷 대면 네트워크 인터페이스는 가상 호스트 컴퓨터에 대한 IP 주소 프록시로서 식별될 수 있다. 인터넷을 사설 클라우드에 인터페이스하고 가상 호스트 컴퓨터의 인터넷 주소와 그의 사설 IP 주소 사이에서 기본적으로 변환하는 NAT 게이트웨이는 가상 호스트 컴퓨터의 인터넷 주소를 프록시 주소로 변환하도록 재구성될 수 있다. 인터넷 호스트에 의해 공급되고 가상 호스트 컴퓨터로 향해진 패킷들은 (클라우드에 의해) NAT 게이트웨이로부터 가상 BITW 장치의 프록시 네트워크 인터페이스로 라우팅될 수 있다. 프록시 인터페이스에서 패킷을 수신한 후, 장치의 NAM 로직은 패킷의 L3 목적지 주소 및 L2 MAC 주소를 수정하여, 장치가 패킷을 빠른-경로 로직을 통해 처리하고 패킷을 장치의 가상 호스트-대면 네트워크 인터페이스를 통해 밖으로 전달하고, 패킷은 가상 호스트 컴퓨터로 라우팅된다. 유사하게, 가상 호스트 컴퓨터에 의해 공급되고 인터넷 호스트로 향해진 패킷들은 장치의 가상 호스트-대면 네트워크 인터페이스로 라우팅되고, 장치의 가상 호스트-대면 네트워크 인터페이스에 의해 수신될 수 있고, NAM 로직에 의해 수정되고, 장치의 빠른 경로 로직에 의해 처리되고, 프록시 인터페이스를 통해 밖으로 전달되고, NAT 게이트웨이로 라우팅될 수 있으며, 이는 주소 변환을 수행하고 패킷을 인터넷 호스트를 향해 전달할 수 있다.
본원에 개시된 추가 양태들은 가상 BITW 장치의 빠른 경로를 통해 패킷들을 처리하도록 가상 BITW 장치를 구성하는 것에 관한 것이다.
본원에 개시된 추가 양태들은, 패킷들이 클라우드를 통해 가상 경로를 통과하는 것을 보장하기 위해 가상 BITW 장치의 프록시, 주소, 서브넷, 및/또는 라우팅 테이블을 구성하는 것에 관한 것이며, 가상 경로는 가상 BITW 장치를 통한 빠른 경로를 포함한다.
본원에 개시된 추가 양태들은 가상 BITW 장치를 가상 경로에 제공하는 단계; 가상 경로 단자들의 서브넷들에 대응하는 네트워크 인터페이스들에 IP 주소들을 할당하는 단계; NAM 로직을 (1) IP 및/또는 단자의 MAC 주소 및/또는 인터페이스, 및/또는 (2) 프록시 정보로 구성하는 단계; 적어도 하나의 공용 IP 주소를 가상 BITW 장치와 연관된 사설 IP 주소로 변환하도록 NAT 게이트웨이를 구성하는 단계; 및 가상 BITW 장치 및 NAT 게이트웨이를 통한 아웃바운드 가상 경로 라우팅을 시행하도록 구성된 적어도 하나의 클라우드 라우팅 테이블을 제공하는 단계에 관한 것이다.
예를 들어 다수의 가상 호스트 컴퓨터의 경우를 포함하여 위의 양태들에 대한 많은 가능한 변형 및 연장이 존재하며, 이들 중 일부는 예로서 아래에서 상세히 설명된다.
본 개시내용의 특징들은 본원에 함께 제공된 도면들을 포함하여 본 개시내용 전체를 검토할 때 더욱 명백해질 것이다.
본원의 일부 특징들은 유사한 참조 부호들이 유사한 요소들을 나타내는 첨부 도면의 각 도면에서 제한으로서가 아니라 예시로서 예시된다.
도 1a 및 도 1b는 물리적 인라인 BITW 장치들을 포함하는 물리적 사설 네트워크들에 대한 예시적인 네트워크 환경들을 도시한다.
도 2a 및 도 2b는 가상 BITW 장치들을 포함하는 가상 사설 클라우드들에 대한 예시적인 네트워크 환경들을 도시한다.
도 3은 사설 클라우드에서 가상 BITW 장치의 제공, 구성 및 동작 프로세스의 예시적인 블록도를 도시한다.
도 4는 가상 BITW 장치의 예시적인 아키텍쳐를 도시한다.
도 5는 인터넷 호스트와 가상 BITW 장치를 통과하는 사설 클라우드에 연결된 가상 호스트 컴퓨터 사이의 패킷 통신의 예시적인 래더 다이어그램을 도시한다.
도 6은 본원에 설명된 장치, 시스템 및 방법 중 임의의 것을 구현하는 데 사용될 수 있는 예시적인 컴퓨팅 장치를 도시한다.
다양한 예시적인 실시예에 대한 이하의 설명에서는, 본원의 일부를 형성하고 본 발명의 양태가 실시될 수 있는 다양한 실시예를 예시로서 도시하는 첨부 도면이 참조된다. 본 개시내용의 범위를 벗어나지 않으면서, 다른 실시예가 이용될 수 있고, 구조적 및 기능적 수정이 행해질 수 있다는 것을 이해해야 한다. 또한, 본 개시내용의 양태가 실시될 수 있는 특정 애플리케이션, 프로토콜, 및 실시예가 참조된다. 본 개시내용의 범위를 벗어나지 않으면서, 다른 애플리케이션, 프로토콜, 및 실시예가 이용될 수 있고, 구조적 및 기능적 수정이 행해질 수 있다는 것을 이해해야 한다. 설명, 도면 및 예는 IPv4 프로토콜을 참조하지만, IPv6 프로토콜 및 다른 프로토콜이 유사하게 참조될 수 있음을 이해해야 한다.
요소들 간의 다양한 접속은 이하의 설명에서 논의된다. 이러한 연결들은 일반적이며, 달리 명시되지 않는 한 임의의 조합에서 직접 또는 간접, 유선 또는 무선, 물리적 또는 논리적(예를 들어, 가상 또는 소프트웨어로 정의된)일 수 있다. 이와 관련하여, 본 명세서는 제한하려고 의도된 것은 아니다.
도 2b에 도시된 바와 같이, 가입 기업 또는 사설 클라우드 운영자와 같은 다른 단체가 통과 중인 패킷을 처리하기 위해 가상 경로(208)에 물리적 BITW 장치 C(240)(가상 BITW)의 가상화된 버전을 삽입할 때, 장치 C의 네트워크 인터페이스 C1(241) 및 C2(242)가 기저 사설 클라우드 플랫폼이 장치를 인식할 뿐만 아니라 패킷들을 장치를 통해 잠재적으로 라우팅할 수 있도록 하기 위해 (L3) IP 주소들을 그들에게 할당할 수 있다. 그러나, 기업이, 예를 들어, 컴퓨터(260)와 임의의 인터넷 호스트들 사이의 통신들을 포함하는 모든 패킷들이 장치 C(240)를 통과하는 것을 요구하는 정책을 정의하는 경우, 기업은 라우팅을 제어하지 않을 수 있기 때문에 정책을 직접 시행할 수 없다. 예를 들어, 라우팅 프로토콜은 NAT-G/W(220)와 컴퓨터(260) 사이의 최상의 경로(도 2b에 미도시)가 장치 C(240)를 통과하지 않는다고 결정할 수 있다. 기업은 장치 C(240)를 통해 특정 패킷들을 라우팅하도록 라우팅 프로토콜을 아마도 안내하는 조치들을 취할 수 있고; 예를 들어, 기업은 인터페이스 C1 및 인터페이스 C2의 각각의 IP 주소가 원하는 라우팅의 가능성을 증가시키기 위해 상이한 비-중첩 서브넷과 연관될 것을 요구할 수 있다. 예를 들어, 도 2B에서, 인터페이스 C1는 서브넷 10.0.1.0/24에서 10.0.1.6으로 할당될 수 있는 반면, 인터페이스 C2는 인터페이스 C1의 연관된 서브넷과 중첩되지 않는 서브넷 10.0.2.0/24에서 10.0.2.7로 할당될 수 있다. 그러나, 이러한 동작들은, 예를 들어, 서브넷 10.0.1.0/24와 서브넷 10.0.2.0/24 사이에 장치 C를 우회하는 경로(도 2b에 미도시)가 있을 수도 있고, 또는 예를 들어, 라우팅이 패킷을 장치 C를 통해 잘못된 방향으로 라우팅할 수도 있기 때문에, 원하는 라우팅을 보장하지 않는다. 또한, 장치 C(240)를 통하는 라우팅이 원하는/요구된대로 작업하는 것으로 보일 때에도, 네트워크에 대한, 예를 들어, 서버, 서브넷, IP 주소의 부가, 제거 및/또는 수정 등, 임의의 추가 변경은 장치 C(240)를 통한 패킷들의 라우팅이 더 이상 기업의 원하는 요구사항을 충족하지 않는 라우팅의 재구성을 야기할 수 있다.
(투명 물리적) BITW 네트워크 장치의 네트워크 인터페이스에 IP 주소 및 MAC 주소 할당을 지원하는 한 가지 접근법은, -- 장치가 가상화되고 IaaS 제공자의 가상 사설 클라우드에 제공될 수 있고 L3 라우팅 및 L2 전달에 참여할 수 있도록 -- 통과 중인 패킷을 처리하고 라우팅 및 전달 정보를 구성/결정하기 위해 장치 OS(느린 경로)의 TCP/IP 네트워크 스택 로직을 사용하는 것으로 복귀하는 것이다. 따라서, 물리적 BITW 장치에서 투명도 및 연관된 빠른 경로 패킷 처리 로직에 의해 가능해진 패킷 처리량 성능 이득들은 장치의 가상화를 지원하기 위해 희생될 수 있다. 그러나, OS의 TCP/IP 네트워크 스택 로직을 사용하는 것은 로컬 라우팅 및 전달 정보가 클라우드 플랫폼의 라우팅 및 스위칭 프로토콜에 의해 자동으로 구성되게 할 수 있다; 그러나, 위에서 언급한 바와 같이, 이는 클라우드에 대한 임의의 패킷 라우팅 정책/요건을 반드시 시행하는 것은 아니며 추가 성능 감소를 야기할 수 있다.
아래에서 설명되는 바와 같이, 다음의 상관 구성요소들은 가상 BITW의 지원에서 제공될 수 있다: (1) 어드레싱(예를 들어, IP 및 MAC 어드레싱), 주소 변환, 프록싱, 서브네팅, 및/또는 라우팅을 조정할 수 있는 클라우드 구성 컴포넌트; 및 (2) FPPP의 네트워크 인터페이스 제어기(NIC) 드라이브들 사이와 같은 가상 BITW 장치 시스템에 삽입(예: 끼워짐)할 수 있는 네트워크 주소 맵퍼(NAM) 로직 구성 요소 및 유입 및/또는 유출하는 L3/L2 패킷/프레임의 L3/IP 주소 및 L2/MAC 주소를 가상 경로를 따라 의도된 목적지로 라우팅/전송될 수 있게 하는 값에 효율적으로 매핑할 수 있는 FPPP의 코어 패킷 처리 로직.
도 3을 참조하면, 다음의 상호 관련된 하위구성 요소들을 포함하는 예시적인 클라우드 구성 구성요소를 먼저 고려한다:
가상 BITW 장치 및 연관된 서브네트를 가상 경로에 구성하는 단계;
NAT 게이트웨이 및 연관된 프록싱을 구성하는 단계; 및
클라우드 라우팅 테이블을 구성하는 단계.
서브구성요소들의 구성은 사설 클라우드 제공자의 인프라스트럭처의 맥락 및 조정에 따라 수행될 수 있으며, 라우팅 및 라우팅 테이블 생성, MAC 주소 생성 및 할당 등과 같은 기능들을 자동 및/또는 투명하게 수행할 수 있고, 이들의 동작들은 도시되지 않거나 설명되지 않는다는 것을 유의해야 한다. 또한, 설명된 예들/시나리오들은 단일 가상 호스트 컴퓨터(예를 들어, 컴퓨터(260)), 단일 인터넷 게이트웨이(예를 들어, NAT-G/W(220)), 및 단일 인터넷 호스트(예를 들어, HOST-0(110)) 사이에 중개하는 인라인 가상 BITW 장치(240)의 간단한 사례에 대한 것이라는 점에 유의해야 한다. 본원에 설명된 본 개시내용의 방법들 및 시스템들은 다수의 가상 호스트들, 인터넷 호스트들, 게이트웨이들, 및 가상 BITW 장치들을 갖는 더 복잡한 시나리오들로 당업자에 의해 쉽게 확장된다.
가상 BITW 장치가 배치되기 전의 예시적인 환경을 나타내는 도 2a에서, NAT-G/W(220)는 공용 네트워크(102)와 연관된 공용 IP 주소들(예를 들어, 공용 인터넷)과 가상 사설 클라우드(204)에 연관된 사설 IP 주소들 사이에서 변환하도록 구성될 수 있다. 예를 들어, 가상 컴퓨터(260)는 공용 IP 주소 174.129.20.63과 사설 IP 주소 10.0.2.157에 연관될 수 있다. 따라서, 도 2a에서, NAT-G/W(220)는 174.129.20.63을 10.0.2.157로/로부터 변환하는 것으로 도시된다. 클라우드 플랫폼 제공자(예를 들어, IaaS 제공자)의 라우팅 시스템은 NAT-G/W(220)의 네트워크 인터페이스 N2(222)(IP 주소 10.0.1.1)와 컴퓨터(260)(IP 주소 10.0.2.157) 사이의 가상 사설 클라우드(104)를 통해 (양방향) 경로(208)를 결정할 수 있다. IP 주소 10.0.1.1 및 10.0.2.157 및 연관된 네트워크 인터페이스는 경로(208)의 단자를 나타낸다.
도 3을 참조하면, 단계(3-1)에서, 가상 BITW 장치는 가상 경로에 제공, 구성 및 배치될 수 있다. 가상 경로의 각각의 단자는 서브넷 및 가상 BITW 장치의 네트워크 인터페이스와 배타적으로 연관될 수 있다. 가상 BITW 장치의 각각의 이러한 네트워크 인터페이스는 연관된 경로 단자와 동일한 서브넷 내에 있는 IP 주소를 할당받을 수 있다. 가상 BITW 장치의 NAM 로직은 가상 경로의 단자들 및 장치의 네트워크 인터페이스들의 IP 주소들 및 MAC 주소들로 구성될 수 있다. NAM 로직은 가상 BITW 장치의 프록시 인터페이스에 의해 수신된 패킷들을 프록싱되고 있는 가상 호스트 컴퓨터(들), 또는 가상 경로 단자(들)에 맵핑하기 위한 정보로 구성될 수 있다.
예를 들어, 도 2b를 참조하면, 인라인 가상 BITW 장치 C(240)를 경로(208)에 배치할 때, 네트워크 인터페이스 C1(241)는 예를 들어, IP 주소 10.0.1.1을 갖고 경로(208)의 하나의 단자인 NAT-G/W(220)의 네트워크 인터페이스 N2(222)와, 동일한 서브넷, 예를 들어 a/24 서브넷에 있는 IP 주소, 예를 들어 10.0.1.6으로 구성될 수 있다. C1(241)은 프록시 인터페이스로 지정될 수 있으며, 즉 IP 주소 10.0.1.6을 갖는 C1(241)은 가상 컴퓨터(260)(IP 주소 10.0.2.157을 가짐)에 대한 IP 주소 프록시로서 기능할 수 있다. 편의상, 가상 BITW 장치의 네트워크 인터페이스에 의해 프록싱되고 있는 가상 호스트 컴퓨터(들)은 "타겟(들)"으로 지칭될 수 있다. NAM 로직은 이러한 프록시 정보로 구성될 수 있으며, 이는 통과 중인 L3 패킷 IP 주소 필드 값 10.0.1.6 내지 10.0.2.157을 맵핑/수정하기 위해 NAM 로직에 의해 사용될 수 있다. 동시에, 네트워크 인터페이스 C2(242)는, 예를 들어, 타겟 가상 컴퓨터(260)(IP 주소 10.0.2.157, 경로(208)의 다른 단자)와 동일한 서브넷 내에 있는(예를 들어, a/24 서브넷) IP 주소 10.0.2.7로 구성될 수 있지만, C2를 함유하는 서브넷은 C1을 함유하는 서브넷과 상이하고 중첩되지 않는다. 네트워크 인터페이스들이 IP 주소들에 할당된 후, 클라우드 플랫폼은 새롭게 클라우드의 라우팅 구성에 배치된 가상 BITW 장치(240)를 통합/통합하기 위해 MAC 주소들을 생성하고 인터페이스들에 할당하고, 클라우드의 라우팅 테이블들을 갱신(예를 들어, OSPF 및 ARP를 사용하여)한다. 클라우드 플랫폼은 클라우드 내의 각각의 네트워크 인터페이스와 연관된 라우팅 테이블들을 생성 및 유지할 수 있으며, 네트워크 인터페이스들 사이의 경로들을 결정할 수 있다. 라우팅 테이블이 갱신된 후, NAM 로직은 라우팅 테이블 및 네트워킹 스택으로부터 다음 정보 중 임의의 것을 추출할 수 있다: 타겟 가상 컴퓨터(260)의 IP 및 MAC 주소; C1(241) 인터페이스(예를 들어, 타겟 가상 컴퓨터(260)에 대한 프록시)의 IP 및 MAC 주소; 및/또는 C1(241)과 동일한 서브넷에 있는 NAT-G/W(220) 게이트웨이의 네트워크 인터페이스의 MAC 주소. 아래에서 더 설명되는 바와 같이, 이 정보는 NAM 로직에 의해 사용되어, 인터넷 호스트와 타겟 가상 컴퓨터(260) 사이의 통신을 포함하는 특정 (또는 모든) 패킷이 가상 BITW 장치(240)를 통과하도록 보장하는 것을 돕는다. 이 정보는 또한, 빠른 경로 패킷 처리에 따라 라우팅 및 전달 정보를 효율적으로 액세스하는 데 사용될 수 있으며, 이는 그렇지 않으면 느린 경로(즉, OS의 TCP/IP 네트워킹 스택)를 통해 액세스될 수 있다.
도 3을 참조하면, 단계(3-2)에서, 가상 호스트 컴퓨터들의 공용(예를 들어, 인터넷) IP 주소들 및 사설(예를 들어, 클라우드) IP 주소들 사이를 변환함으로써 공용 네트워크(102)로 사설 클라우드(204)와 인터페이스하는 NAT 게이트웨이는 타겟 가상 호스트 컴퓨터의 공용 IP 주소들을 가상 BITW 장치의 프록시 인터페이스의 사설 IP 주소로 변환하도록 재구성될 수 있다.
예를 들어, 도 2b를 참조하면, NAT-G/W(220)는 컴퓨터(260)의 공용 IP 주소, 174.129.20.63을 타겟 컴퓨터(260)의 사설 IP 주소 10.0.2.157 대신 C1(241)의 사설 IP 주소 10.0.1.6으로 변환하도록 구성될 수 있다. 사실상, NAT-G/W(220)는 타겟 컴퓨터(260)에 대한 프록시로서 네트워크 인터페이스 C1을 지정하였다(그리고, 위에서 설명된 바와 같이, 가상 BITW의 NAM 로직은 유사하게 구성될 수 있다).
도 3을 참조하면, 단계(3-3)에서, 클라우드 플랫폼의 경로 테이블들은 경로의 단자들 사이의 가상 경로를 통과하는 아웃바운드 패킷들, 예를 들어, 단자 가상 컴퓨터에 의해 제공/발신되고 NAT 게이트웨이를 통해 인터넷 호스트(또는 다른 공용 네트워크 호스트)로 향해진 패킷들이 수정/구성/증강될 수 있으며, 단자 가상 컴퓨터에서 가상 BITW 장치의 프록시가 아닌 네트워크 인터페이스로 라우팅된 다음 가상 BITW 장치의 프록시 네트워크 인터페이스에서 사설 클라우드를 공용 네트워크로 인터페이스하는 NAT 게이트웨이로 라우팅된다. 구체적으로, 라우팅 테이블들은, (1) 단자 가상 컴퓨터 및 가상 BITW 장치의 비-프록시 인터페이스와 연관된 서브넷을 떠나는 아웃바운드 패킷들이 비-프록시 인터페이스를 향해 제공/전달되고/되거나, (2) 가상의 BITW의 프록시 인터페이스 및 NAT 게이트웨이 인터페이스 모두와 연관된 서브넷을 떠나는 아웃바운드 패킷들이 NAT 게이트웨이 인터페이스를 향해 제공/전달되도록 수정될 수 있다.
예를 들어, 도 2b를 참조하면, 클라우드의 라우팅 테이블에 대한 증강은 (1) NAT-G/W(220)의 N2(222) 인터페이스를 식별하는 엔트리를 포함할 수 있으며, 서브넷 10.0.1.0/24를 빠져나가는 모든 아웃바운드 패킷에 대한 인터넷 게이트웨이로 IP 주소 10.0.1.1을 갖는다. (1a) 이러한 서브넷 10.0.1.0/24는 가상 BITW 장치(240)의 C1(241) 프록시 인터페이스를 포함하고, (1b) N2(222)는 가상 경로(208)의 단자라는 것에 유의해야 한다. 따라서, 이 엔트리는 가상 경로(208)의 순회와 관련된 요건들을 시행하는 것을 도울 수 있다. 클라우드의 라우팅 테이블에 대한 증강은 (2) 서브넷 10.0.2.0/24를 빠져나가는 모든 아웃바운드 패킷에 대한 유출 지점으로서 IP 주소 10.0.2.7을 갖는 C2(242) 인터페이스를 식별하는 C2(242) 인터페이스에 대한 라우팅 테이블에 엔트리를 더 포함할 수 있다. (2a) 이러한 서브넷 (10.0.2.0/24)는 타겟 가상 컴퓨터(260)(IP 주소 10.0.2.157을 가짐)를 포함하고, (2b) 가상 컴퓨터(260)는 가상 경로(208)의 단자라는 것에 유의해야 한다. 따라서, 이 엔트리는 또한 가상 경로(208)의 순회와 관련된 요건들을 시행하는 것을 도울 수 있다.
단계(3-1), (3-2), 및 (3-3)의 완료 시, 가상 BITW 장치는 그의 가상 경로에서의 동작을 위해 준비될 수 있다 따라서 단계(3-4)에서, 가상 BITW는 동작으로 전환될 수 있다.
단계 (3-1), (3-2) 및 (3-3) 및 연관된 하위 단계들의 순서는 예시적이며 실제로 상이할 수 있다는 것에 유의해야 한다. 또한, 이러한 단계들 중 임의의 단계는 조합되고/되거나 추가로 세분될 수 있다.
파이프라인으로서의 가상 BITW 장치의 로직 아키텍처의 예를 나타내는 도 4를 참조하여, 다음 NAM 로직 구성요소를 고려해야 한다. NAM은 FPPP의 네트워크 인터페이스 제어기(NIC) 드라이버와 고속 경로 패킷 처리(FPPP) 애플리케이션 로직 사이에 삽입될 수 있으며, 애플리케이션은 예를 들어, 네트워크 방화, 네트워크 액세스 제어, 웹 프록시, TLS 프록시, 패킷 보안 게이트웨이, 위협 지능형 게이트웨이, IPsec 게이트웨이 등과 같은 것일 수 있다. NAM의 목적은 왜 물리적 BITW 장치에 의해서가 아니라 가상 BITW 장치에서 사용될 수 있는가 하는 면에서 설명될 수 있다. 예를 들어, 물리적 BITW 장치에 대한 도 4의 버전은 적어도 NAM 로직 구성요소에 의해 도 4(가상 BITW에 대해)와 상이할 수 있다.
NAM 구성요소는 하나 이상의 기능을 제공할 수 있다. 이러한 기능들의 예들은:
NAM 기능(1): 프록시 네트워크 인터페이스에 대해, 프록시 IP 주소와 타겟 가상 컴퓨터의 IP 주소 사이를 맵핑하는 기능;
NAM 기능(2): 통과 중인 L3 패킷들 및 L2 프레임들의 IP 및 MAC 주소들이 가상 경로 순회 정책/요건들을 시행하도록 구성하는 기능; 및/또는
NAM 기능(3): 프록싱하는 동안 손실되었을 수 있는 동일한 흐름 내의 패킷과 관련된 라우팅 및 전달 정보를 복구하고 신속하게 액세스하기 위해서 최근 관찰된 통과 중인 프레임/패킷과 관련된 정보를 포함하여 패킷의 흐름 특성에 의해 색인될 수 있는 효율적인 데이터 구조를 유지하는 기능을 포함할 수 있다.
위에서 열거된 모든 (3) NAM 기능들은 IP 주소들 및 MAC 주소들을 가상 BITW 장치의 네트워크 인터페이스(도 4의 C1 및 C2)에 할당하려는 욕구로부터 기인하고; 정의에 의해, 물리적 BITW 장치의 네트워크 인터페이스들은 L3 및 L2 투명(transparent)이며, 따라서 NAM에 대한 필요성이 없다.
NAM 기능(1)에 관하여: 위에서, 예를 들어, 도 3의 단계(3-2)를 생각하면, 인터넷-클라우드 NAT 게이트웨이는 타겟 가상 컴퓨터(들)의 공용 IP 주소(들)를 가상 BITW 장치의 프록시 인터페이스의 IP 주소로 변환하도록 구성될 수 있다. 따라서, 예를 들어 도 3의 단계(3-1)에서, NAM 로직은 프록시 인터페이스의 IP 주소를 타겟 가상 컴퓨터(들)의 사설 IP 주소(들)로 변환하도록 구성될 수 있다.
예를 들어, 도 2b를 참조하면, 인터페이스 C1(241)은 타겟 가상 컴퓨터(260)에 대한 프록싱을 할 수 있기 때문에, C1이 L3 목적지 IP 주소가 C1의 IP 주소 10.0.1.6으로 설정된 패킷을 수신할 때, NAM 로직은 패킷의 목적지 IP 주소를 타겟 컴퓨터(260)의 IP 주소 10.0.2.157로 변경한 다음, FPPP 애플리케이션 로직을 통한 빠른 경로를 통해 패킷을 인터페이스 C2로 전달하도록 구성될 수 있다. 반대로, C2가 L3 원천 IP 주소가 타겟 컴퓨터(260)의 IP 주소 10.0.2.157로 설정된 패킷을 수신할 때, 패킷은 빠른 경로를 통해 NAM으로 전달될 수 있으며, 패킷의 원천 IP 주소를 C1의 IP 주소 10.0.1.6으로 변경하도록 구성될 수 있다. 그 다음 C1은 패킷을 그의 목적지를 향해 전달할 수 있다. 패킷의 목적지 IP 주소가 인터넷(또는 다른 공용 네트워크) 주소인 경우, 패킷은 NAT-G/W(220)를 통과할 수 있으며, 패킷의 L3 원천 IP 주소를 C1의 IP 주소 10.0.1.6으로부터 컴퓨터(260)의 공용 IP 주소 174.129.20.63으로 변환할 수 있다.
NAM 기능(2)에 관하여: 가상 BITW 장치의 네트워크 인터페이스는 패킷을 그의 목적지로 전달하는 것을 담당할 수 있다. 전달 기능은 L3 패킷을 포함하는 L2 프레임들의 MAC 주소들을 적당한 값으로, 예를 들어, 가상 경로의 단자들의 MAC 주소로, 설정되게 하는 것을 담당할 수 있다. 이러한 MAC 주소 값들은 느린 경로를 통해, 즉, OS 커널의 TCP/IP 네트워킹 스택 로직으로의 호출들을 통해, 클라우드의 라우팅 테이블들로부터 획득될 수 있으며; 그러나 성능 이유로, 가상 BITW 장치는 통과 중인 패킷들을 처리할 때 느린 경로를 사용하지 않을 수 있다. 예를 들어, 도 3의 단계(3-1)에서와 같이 동작을 위해 가상 BITW 장치를 구성할 때의 적절한 MAC 주소 정보로 NAM 로직을 구성함으로써, 전달 기능은 (느린 경로) OS 커널의 TCP/IP 네트워킹 스택 대신에 (빠른 경로) NAM으로부터 MAC 주소 정보를 획득할 수 있다.
NAM 기능(3)에 관하여: 이러한 기능은, 예를 들어, 가상 BITW 장치를 통과하는 관련 통신을 갖는 다른 타겟 가상 컴퓨터, 예를 들어, 부하 밸런서, 웹 프록시 등에, 의해 프록싱되는 다수의 가상 컴퓨터가 있는 일부 클라우드 구성을 위해 사용될 수 있다. 예를 들어, NAM 기능(3)이 없는 것으로 가정하면; 그러면, 프록시 타겟 가상 컴퓨터(예를 들어, 부하 밸런서) 뒤의 다수의 가상 컴퓨터들 중 하나에 의해 유래되고 인터넷 호스트를 향해 예정된 요청 패킷은 인터넷 (또는 다른 공용 네트워크) 호스트가 프록싱하는 부하 밸런서의 IP 주소를 목적지로서 갖는 응답 패킷을 생성하고 전송하게 할 수 있다. 응답 패킷을 수신하면, 부하 밸런서는 어떤 프록싱된 가상 컴퓨터가 대응하는 요청을 제공했는지/유래했는지를 알지 못할 수 있으며; 따라서, 부하 밸런서는 응답 패킷을 전달하기 위해 프록싱된 가상 컴퓨터들 중 임의의 하나를 선택할 수 있다; 따라서, 선택된 프록싱된 가상 컴퓨터가 대응하는 요청 패킷의 유래/원천이 아닐 수 있는 경우일 수 있다.
위의 예시적인 시나리오 및 다른 것들을 처리하기 위해, NAM은 패킷의 5-튜플 값(L3 원천 및 목적지 IP 주소들, L4 원천 및 목적지 포트들, L3 프로토콜 유형), 연관된 프레임의 MAC 주소들 및/또는 방향을 포함하여 최근에 관찰된 L3 패킷들 및 연관된 L2 프레임들에 대한 정보를 저장/캐시하는 효율적인 데이터 구조를 포함할 수 있다. 이러한 방식으로, NAM은 대응하는 요청 패킷이 유래한 가상 컴퓨터의 IP 주소 및 MAC 주소를 복구하고 응답 패킷이 궁극적으로 적절한 가상 컴퓨터에 의해 수신되도록 응답 패킷 및 연관된 프레임을 그에 따라 수정함으로써 상기 예시적인 시나리오(및 유사한 시나리오)를 처리할 수 있다. 발생할 수 있는 빠른 경로 성능 요건들을 유지함에 있어서, 효율적인 데이터 구조, 예를 들어 LRU 캐시는 효율적인 삽입, 검색, 및/또는 삭제를 지원할 수 있다는 것에 유의해야 한다.
도 5는 가상 경로(208)에서 가상 BITW 장치(240)를 통과할 수 있는 사설 클라우드 내의 인터넷 호스트 HOST-0(110)과 가상 컴퓨터(260) 사이의 통신의 예를 예시한다. 도 5에 표현된 예시적인 네트워크 요소들은 도 2b에 표시된 예시적인 요소들 및 연관된 구성들에 대응하지만, 도 5의 요소들은 본원에 설명된 다른 구성들에 대응할 수 있다. 또한, 예를 들어, 도 3의 단계(3-1, 3-2) 및 (3-3)에 따라 가상 BITW 장치(240)가 배치 및 구성되었고 도 3의 단계(3-4)로 표현되는 작동 모드에 있다는 목적을 가정한다.
예를 들어, 가상 컴퓨터(260)은 DNS-등록된 도메인 이름 www.example-web-server.net으로 웹 서버 애플리케이션을 실행할 수 있고, HOST-0(110)(예를 들어, 공용 IP 주소 74.65.150.95에 의해 어드레싱됨)은 웹 클라이언트/웹 브라우저 애플리케이션을 실행할 수 있다. HOST-0(110) 상에 웹 브라우저를 동작시키는 사용자는 브라우저를 URLhttps://www.example-web-server.net으로 지정할 수 있다. 단계(5-0)(도 5에 미도시)에서, 브라우저는 www.example-web-server.net을 해결하기 위해 쿼리를 (인터넷)DNS에 보낼 수 있고, DNS는 IP 주소 174.129.20.63으로 응답할 수 있다.
단계(5-1)에서, HOST-0(110)은 L3 원천 IP 주소 74.65.150.95 및 L3 목적지 IP 주소 174.129.20.63을 갖는 TCP SYN 핸드셰이크 패킷 P0.0을 인터넷을 통해 가상 컴퓨터(260)를 향해 전송함으로써, 174.129.20.63(즉, 가상 컴퓨터(260))의 포트(443)(HTTPS)로 TCP 연결의 설정을 개시할 수 있다.
단계(5-2)에서, NAT-G/W(220)는 패킷 P0.0을 수신할 수 있다. NAT 기능은 컴퓨터(260)의 공용 IP 주소 174.129.20.63을 10.0.1.6으로 변환할 수 있으며, 이는 가상 BITW 장치(240)의 네트워크 인터페이스 C1(241)의 (사설) IP 주소일 수 있고, 타겟 가상 컴퓨터(260)에 대한 프록시 IP 주소일 수 있다. NAT-G/W(220)는 다음과 같이 패킷 P0.0을 P0.1로 변환할 수 있다: (1) L3 목적지 IP 주소는 10.0.1.6(프록시 네트워크 인터페이스 C1(241)의 IP 주소)으로 변경됨; (2) L2 원천 MAC 주소는 12:f7:4c:ac:de:7f(NAT-G/W(220)의 네트워크 인터페이스 N2(222)의 MAC 주소)로 변경됨: 그리고 (3) L2 목적지 MAC 주소는 12:3d:f8:07:f0:19(가상 BITW 장치(240)의 네트워크 인터페이스 C1(241)의 MAC 주소)로 변경됨. 네트워크 인터페이스 N2(222)는 가상 경로(208) 상의 가상 BITW 장치(240)의 네트워크 인터페이스 C1(241)을 향해 패킷 P0.1을 전송할 수 있다.
단계(5-3)에서, 가상 BITW 장치(240)는 그의 네트워크 인터페이스 C1(241)을 통해 패킷 P0.1을 수신할 수 있다. 전술한 NAM 기능(3)에 따르면, 프록시 변환(이 예에서 미예시) 동안에 손실될 수 있는 정보를 복구하기 위해 원점 컴퓨터 정보가 나중에 필요한 경우에, NAM은 패킷 P0.1과 연관된 정보를 최근에 관찰된 패킷들과 연관된 정보를 저장하기 위해 그의 효율적인 데이터 구조에 삽입할 수 있다. NAM은 다음과 같이 패킷 P0.1을 P0.2로 변환할 수 있다: (1) L3 목적지 IP 주소는 10.0.2.157(가상 컴퓨터(260)의 IP 주소)로 변경됨; (2) L2 원천 MAC 주소는 12:a8:84:40:b6:39(네트워크 인터페이스 C2(242)의 MAC 주소)로 변경됨: 그리고 (3) L2 목적지 MAC 주소는 12:43:9d:b6:7b:f3(가상 컴퓨터(260)의 네트워크 인터페이스의 MAC 주소)으로 변경됨. NAM은 패킷 P0.2를 C2(242)를 향해 전달/파이프라인할 수 있다. (빠른 경로) 패킷 처리 애플리케이션은 패킷 P0.2를 처리한다. 애플리케이션이 패킷 P0.2를 드롭/방해하지 않는다고 가정하면, 네트워크 인터페이스 C2(242)는 가상 경로(208) 상에 가상 컴퓨터(260)를 향해 패킷 P0.2를 전송할 수 있다.
단계(5-4)에서, 타겟 가상 컴퓨터(260)는 패킷 P0.2를 수신할 수 있다. 컴퓨터(260)는 TCP SYN-ACK 핸드셰이크 신호를 포함하는 패킷 P1.0을 생성함으로써 TCP SYN 핸드셰이크 신호에 응답할 수 있으며, (1) L3 원천 IP 주소는 10.0.2.157(가상 컴퓨터(260)의 사설 IP 주소)로 설정됨; (2) L3 목적지 IP 주소는 74.65.150.95(HOST-0(110)의 IP 주소)로 설정됨; (3) L2 원천 MAC 주소는 12:43:9d:b6:7b:f3(컴퓨터(260)의 MAC 주소)으로 설정됨: 그리고 (4) L2 목적지 MAC 주소는 12:a8:84:40:b6:39(가상 BITW 장치(240)의 네트워크 인터페이스 C2(242)의 MAC 주소)로 설정됨. P1.0의 L3 목적지 IP 주소가 C2(242)의 IP 주소가 아니더라도, 패킷 P1.0의 목적지 MAC 주소를 C2(242)의 MAC 주소로 설정하는 것은 패킷 P1.0이 가상 BITW 장치(240)를 통해 가상 경로(208)를 통과하는 것을 보장하는 것을 도울 수 있다. 컴퓨터(260)는 패킷 P1.0을 가상 경로(208) 상에서 HOST-0(110)을 향해 전송/전달할 수 있다.
단계(5-5)에서, 가상 BITW 장치(240)는 그의 네트워크 인터페이스(C2)(242)을 통해 패킷 P1.0을 수신할 수 있다. 전술한 NAM 기능(3)에 따르면, 프록시 변환(이 예에서 미예시) 동안에 손실될 수 있는 정보를 복구하기 위해 원점 컴퓨터 정보가 나중에 필요한 경우에, NAM은 패킷 P1.0과 연관된 정보를 최근에 관찰된 패킷들과 연관된 정보를 저장하기 위해 그의 효율적인 데이터 구조에 삽입할 수 있다. NAM은 다음과 같이 패킷 P1.0을 P1.1로 변환할 수 있다: (1) L3 원천 IP 주소는 (10.0.1.6)(컴퓨터(260)를 프록싱하는 네트워크 인터페이스 C1(241)의 IP 주소)으로 변경됨; (2) L2 원천 MAC 주소는 12:3d:f8:07:f0:19(네트워크 인터페이스 C1(241)의 MAC 주소)로 변경됨; 그리고 (3) L2 목적지 MAC 주소는 12:f7:4c:ac:de:7f(NAT-G/W(220)의 네트워크 인터페이스 N2(222)의 MAC 주소)로 변경됨. P1.1의 L3 목적지 IP 주소가 N2(222)의 IP 주소가 아니더라도, 패킷 P1.1의 목적지 MAC 주소를 N2(222)의 MAC 주소로 설정하는 것은 패킷 P1.1이 NAT-G/W(220)를 향해 가상 경로(208)를 통과하는 것을 보장하는 것을 도울 수 있다. NAM은 패킷 P1.1를 C1(241)를 향해 전달/파이프라인할 수 있다. (빠른 경로)패킷 처리 애플리케이션은 패킷 P1.1를 처리한다. 애플리케이션이 패킷 P1.1를 드롭/방해하지 않는다고 가정하면, 네트워크 인터페이스 C1(241)은 가상 경로(208) 상에 HOST-0(110)을 향해 패킷 P1.1를 전송/전달할 수 있다.
단계(5-6)에서, NAT-G/W(220)는 가상 경로(208)의 단자인 그것의 네트워크 인터페이스 N2(222)를 통해 패킷 P1.1을 수신할 수 있다. NAT-G/W(220)는 다음과 같이 패킷 P1.1을 P1.2로 변환할 수 있다: (1) L3 원천 IP 주소는 174.129.20.63(가상 컴퓨터(260)의 공용 IP 주소)로 변경됨. 네트워크 인터페이스 N1(221)은 패킷 P.1.2를 인터넷을 통해 HOST-0(110)을 향해 전송/전달한다.
단계(5-7)에서, HOST-0(110)과 가상 컴퓨터(260)(웹 사이트 www.example web-site.net를 호스팅하는) 사이의 TCP 연결 및 TLS 터널이 설정될 수 있고, (TLS-보장된) HTTP 세션(예를 들어, HTTPS)이 수행될 수 있다. HTTP 세션의 완료 시, TLS 터널 및 TCP 접속은 해제될 수 있다. 통신을 구성하는 모든 패킷들은 가상 경로(208)를 통과하고 양쪽 방향으로 가상 BITW 장치(240)를 통해 통과할 수 있다.
본 원에 설명되거나 도면들 중 임의의 것에 도시된 임의의 요소는 하나 이상의 컴퓨팅 장치를 사용하여 부분적으로 또는 완전히 구현될 수 있다. 본원에 설명된 다른 요소들 중 임의의 것을 구현하는 데 사용될 수 있는 예시적인 컴퓨팅 장치(600)의 하드웨어 요소들이 도 6에 도시되어 있다. 이러한 하드웨어 요소 및/또는 컴퓨팅 장치(600) 자체 중 임의의 것이 컴퓨팅 장치(600)의 가상 버전에서 모방될 수 있다. 컴퓨팅 장치(600)는 본원에 설명된 기능들 또는 다른 동작들 중 임의의 것을 수행하기 위해 컴퓨터 프로그램의 컴퓨터 판독가능 명령들을 실행할 수 있는 하나 이상의 프로세서들(601)을 포함할 수 있다. 명령들은, 다른 데이터와 함께, 예를 들어 판독 전용 메모리(ROM) 및/또는 랜덤 액세스 메모리(RAM), 하드 드라이브, 자기 또는 광학 디스크, 범용 직렬 버스(USB) 드라이브, 및/또는 임의의 다른 유형의 컴퓨터 판독 가능 매체와 같은 메모리를 포함할 수 있는 저장소(602)에 저장될 수 있다. 컴퓨팅 장치(600)는 또한 키보드, 마우스, 음성 입력 등과 같은 하나 이상의 입력 장치(605)에 인터페이스하기 위해 그리고 디스플레이, 스피커, 프린터 등과 같은 하나 이상의 출력 장치(606)에 인터페이스하기 위해 사용자 인터페이스(604)를 포함할 수 있다. 컴퓨팅 장치(600)는 또한, 컴퓨팅 장치(600)를 향한 외부 네트워크의 일부일 수 있는 하나 이상의 외부 장치와 인터페이스하기 위한 네트워크 인터페이스(603)를 포함할 수도 있다. 도 6이 예시적인 하드웨어 구성을 도시하지만, 컴퓨팅 장치(600)의 하나 이상의 요소는 소프트웨어 또는 하드웨어와 소프트웨어의 조합으로서 구현될 수 있다. 컴퓨팅 장치(600)의 구성요소들을 추가, 제거, 조합, 분할 등을 하는 수정이 이루어질 수 있다. 또한, 도 6에 도시된 요소들은 본원에 설명된 것과 같은 동작들을 수행하도록 구성된 기본 컴퓨팅 장치들 및 구성요소들을 사용하여 구현될 수 있다. 프로세서(들)(601) 및/또는 저장소(602)는 또한 또는 대안적으로 하나 이상의 집적 회로(IC)를 통해 구현될 수 있다. IC는 예를 들어, ROM에 저장되고/되거나 IC 내에 하드와이어되는 프로그래밍 명령 또는 다른 데이터에 액세스하는 마이크로프로세서일 수 있다. 예를 들어, IC는 본 원에 설명된 계산 및 다른 동작에 전용되는 게이트 및/또는 다른 로직을 갖는 어플리케이션 특화 집적 회로(ASIC)를 포함할 수 있다. IC는 ROM 또는 RAM으로부터 판독된 프로그래밍 명령들의 실행에 기초하여 게이트들 또는 다른 로직으로 하드와이어된 다른 동작들로 일부 동작들을 수행할 수 있다.
본원에 설명된 기능들 및 단계들은 본원에 설명된 하나 이상의 기능을 수행하기 위해 하나 이상의 컴퓨팅 장치(예를 들어, 컴퓨터 또는 다른 데이터 처리 장치)에 의해 실행되는, 하나 이상의 프로그램 모듈과 같은 컴퓨터 사용 가능 데이터 또는 컴퓨터 실행 가능 명령어들로 구현될 수 있다. 일반적으로, 프로그램 모듈들은 하나 이상의 컴퓨팅 장치의 하나 이상의 프로세서에 의해 실행될 때 특정 작업들을 수행하거나 특정 추상 데이터 유형들을 구현하는 루틴들, 프로그램들, 객체들, 구성요소들, 데이터 구조들 및/또한 다른 요소들을 포함할 수 있다. 컴퓨터 실행 가능 명령들은 하드 디스크, 광학 디스크, 이동식 저장 매체, 솔리드 스테이트 메모리, RAM 등과 같은 컴퓨터 판독 가능 매체 상에 저장될 수 있다. 이해되는 바와 같이, 프로그램 모듈들의 기능은 원하는 대로 조합되거나 분배될 수 있다. 또한, 그 기능은 집적 회로, 어플리케이션 특화 집적 회로(ASIC)들, 필드 프로그래밍가능한 게이트 어레이(FPGA) 등과 같은 펌웨어 또는 하드웨어 등가물에 전체적으로 또는 부분적으로 구현될 수 있다. 특정 데이터 구조들은 본 개시내용의 하나 이상의 양태를 보다 효과적으로 구현하기 위해 사용될 수 있으며, 이러한 데이터 구조들은 본원에 설명된 컴퓨터 실행 가능 명령들 및 컴퓨터 사용 가능 데이터의 범위 내에 있는 것으로 고려된다.
필요하지는 않지만, 당업자는 본원에 설명된 다양한 양태가 컴퓨팅 장치의 하나 이상의 프로세서에 의해 실행될 때 컴퓨팅 장치로 하여금 본 원에 개시된 바와 같은 단계를 수행하게 하는 컴퓨터 실행가능 명령을 저장하는 방법, 시스템, 장치, 또는 하나 이상의 컴퓨터 판독 가능 매체로서 구현될 수 있다는 것을 이해할 것이다. 따라서, 양태들은 완전히 하드웨어 실시예, 완전히 소프트웨어 실시예, 완전히 펌웨어 실시예, 완전히 가상 실시예 또는 소프트웨어, 하드웨어 가상화 및 펌웨어 양태들을 임의의 조합으로 결합하는 실시예의 형태를 취할 수 있다.
본원에 설명된 바와 같이, 다양한 방법들 및 동작들은 하나 이상의 물리적으로 분리된 또는 통합된 컴퓨팅 장치들(함께 컴퓨팅 장치를 형성할 수 있는) 및 네트워크에 걸쳐 동작할 수 있다. 기능은 임의의 방식으로 배포될 수 있거나 단일 물리적 컴퓨팅 장치 또는 컴퓨팅 장치의 가상 버전(예를 들어, 서버, 클라이언트 컴퓨터, 사용자 장치, 가상 환경 등)에 위치할 수 있다.
본 개시내용의 양태들은 그의 예시적인 실시예들의 관점에서 설명되었다. 첨부된 청구범위의 범위 및 개념 내에서 수많은 다른 실시예들, 수정들, 및 변형들이 본 개시내용의 검토로부터 당업자에게 떠오를 것이다. 예를 들어, 당업자는 예시적인 도면들에 예시된 단계들이 인용된 순서와 다른 순서로 수행될 수 있으며 하나 이상의 예시된 단계는 선택적일 수 있음을 이해할 것이다.

Claims (31)

  1. 방법으로서,
    장치를 가상 경로에 제공하는 단계;
    네트워크 주소 맵퍼(NAM) 로직을 구성하는 단계로서, 상기 네트워크 주소 맵퍼(NAM) 로직은:
    상기 가상 경로를 통해 연결된 가상 경로 단자들의 복수의 주소들;
    상기 가상 경로 단자들의 서브넷들에 대응하는 네트워크 인터페이스들의 복수의 주소들; 및
    프록시 정보로 구성하는 네트워크 주소 맵퍼(NAM) 로직인, 단계;
    적어도 하나의 공용 인터넷 프로토콜(IP) 주소를 상기 장치와 연관된 사설 IP 주소로 변환하기 위해 네트워크 주소 변환(NAT) 게이트웨이를 구성하는 단계; 및
    상기 장치 및 상기 NAT 게이트웨이를 통해 가상 경로 라우팅을 시행하도록 구성된 적어도 하나의 클라우드 라우팅 테이블을 제공하는 단계를 포함하는, 방법.
  2. 제1항에 있어서, 상기 장치는 가상 범프-인-더-와이어(BITW) 장치를 포함하는, 방법.
  3. 제1항 또는 제2항에 있어서, 상기 가상 경로 단자들의 상기 복수의 주소들은:
    상기 단자들의 복수의 인터넷 프로토콜(IP) 주소들; 및
    상기 단자들의 복수의 매체 액세스 제어(MAC) 주소들을 포함하는, 방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서, 상기 네트워크 인터페이스들의 상기 복수의 주소들은:
    상기 네트워크 인터페이스들의 복수의 인터넷 프로토콜(IP) 주소들; 및
    상기 네트워크 인터페이스들의 복수의 매체 액세스 제어(MAC) 주소들을 포함하는, 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서, 상기 네트워크 인터페이스들은:
    상기 NAT 게이트웨이의 네트워크 인터페이스와 인터페이스하도록 구성된 제1 서브넷에 대응하는 상기 장치의 제1 네트워크 인터페이스; 및
    타겟의 네트워크 인터페이스와 인터페이스하도록 구성된 제2 서브넷에 대응하는 상기 장치의 제2 네트워크 인터페이스를 포함하며,
    상기 제1 서브넷 및 상기 제2 서브넷은 중첩되지 않는, 방법.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서, 상기 가상 경로는 상기 장치를 통한 빠른 경로를 포함하고, 상기 장치는 상기 NAT 게이트웨이로부터 수신된 적어도 하나의 패킷을 상기 빠른 경로를 통해 라우팅하도록 구성된, 방법.
  7. 제1항 내지 제6항 중 어느 한 항에 있어서, 상기 클라우드 라우팅 테이블은 상기 장치 및 상기 NAT 게이트웨이를 통한 아웃바운드 가상 경로 라우팅을 시행하도록 구성된, 방법.
  8. 제1항 내지 제7항 중 어느 한 항에 있어서, 상기 NAM 로직을 구성하는 단계는 상기 가상 경로 단자들의 각각이 상기 네트워크 인터페이스들 중 하나에 배타적으로 매핑되도록 상기 NAM 로직을 구성하는 단계를 포함하는, 방법.
  9. 방법으로서,
    공용 인터넷 프로토콜(IP) 주소로 어드레싱된 패킷을 네트워크 주소 변환(NAT) 게이트웨이에 의해 수신하는 단계;
    상기 NAT 게이트웨이에 의해, 상기 공용 IP 주소를 가상 경로에 제공된 장치의 사설 IP 주소로 변환하는 단계로서, 상기 장치는 네트워크 주소 맵퍼(NAM) 로직을 포함하되, 상기 네트워크 주소 맵퍼(NAM) 로직은:
    상기 가상 경로를 통해 연결된 가상 경로 단자들의 복수의 주소들;
    상기 가상 경로 단자들의 서브넷들에 대응하는 네트워크 인터페이스들의 복수의 주소들; 및
    프록시 정보로 구성된 네트워크 주소 맵퍼(NAM) 로직인, 단계 및
    상기 NAT 게이트웨이에 의해, 상기 패킷을 상기 사설 IP 주소를 향해 전송하는 단계를 포함하는, 방법.
  10. 제9항에 있어서, 적어도 하나의 클라우드 라우팅 테이블을 사용하여, 상기 NAT 게이트웨이 및 상기 장치를 통해 상기 가상 경로를 통과하는 상기 패킷을 라우팅하는 단계를 더 포함하는, 방법.
  11. 제9항 또는 제10항에 있어서, 상기 장치는 가상 범프-인-더-와이어(BITW) 장치를 포함하는, 방법.
  12. 제9항 내지 제11항 중 어느 한 항에 있어서, 상기 가상 경로 단자들의 상기 복수의 주소들은:
    상기 단자들의 복수의 인터넷 프로토콜(IP) 주소들; 및
    상기 단자들의 복수의 매체 액세스 제어(MAC) 주소들을 포함하는, 방법.
  13. 제9항 내지 제12항 중 어느 한 항에 있어서, 상기 네트워크 인터페이스들의 상기 복수의 주소들은:
    상기 네트워크 인터페이스들의 복수의 인터넷 프로토콜(IP) 주소들; 및
    상기 네트워크 인터페이스들의 복수의 매체 액세스 제어(MAC) 주소들을 포함하는, 방법.
  14. 제9항 내지 제13항 중 어느 한 항에 있어서, 상기 네트워크 인터페이스들은:
    상기 NAT 게이트웨이의 네트워크 인터페이스와 인터페이스하도록 구성된 제1 서브넷에 대응하는 상기 장치의 제1 네트워크 인터페이스; 및
    타겟의 네트워크 인터페이스와 인터페이스하도록 구성된 제2 서브넷에 대응하는 상기 장치의 제2 네트워크 인터페이스를 포함하며,
    상기 제1 서브넷 및 상기 제2 서브넷은 중첩되지 않는, 방법.
  15. 제9항 내지 제14항 중 어느 한 항에 있어서, 상기 가상 경로는 상기 장치를 통한 빠른 경로를 포함하는, 방법.
  16. 제9항 내지 제15항 중 어느 한 항에 있어서, 상기 NAM 로직은 상기 가상 경로 단자들의 각각이 상기 네트워크 인터페이스들 중 하나에 배타적으로 매핑되도록 구성되는, 방법.
  17. 네트워크 주소 변환(NAT) 게이트웨이에 의해 실행될 때, 제9항 내지 제16항 중 어느 한 항에 언급된 단계들을 수행하도록 상기 NAT 게이트웨이를 구성하는 명령들을 저장하는 컴퓨터 판독가능 매체.
  18. 네트워크 주소 변환(NAT) 게이트웨이로서,
    하나 이상의 프로세서; 및
    명령을 저장하는 하나 이상의 컴퓨터 판독 가능 매체를 포함하되, 상기 하나 이상의 프로세서에 의해 실행될 때 상기 NAT 게이트웨이로 하여금,
    공용 인터넷 프로토콜(IP) 주소로 어드레싱된 패킷을 수신하게 하고;
    상기 공용 IP 주소를 가상 경로에 제공되는 장치의 사설 IP 주소로 변환하게 하고, 상기 장치는 네트워크 주소 맵퍼(NAM) 로직을 포함하되, 상기 네트워크 주소 맵퍼(NAM) 로직은:
    상기 가상 경로를 통해 연결된 가상 경로 단자들의 복수의 주소들;
    상기 가상 경로 단자들의 서브넷들에 대응하는 네트워크 인터페이스들의 복수의 주소들; 및
    프록시 정보로 구성된 네트워크 주소 맵퍼(NAM) 로직이며, 그리고
    상기 패킷을 상기 사설 IP 주소를 향해 전송하게 하는, 네트워크 주소 변환(NAT) 게이트웨이.
  19. 제18항에 있어서, 상기 명령들은, 상기 하나 이상의 프로세서들에 의해 실행될 때, 상기 NAT 게이트웨이로 하여금, 적어도 하나의 클라우드 라우팅 테이블을 사용하여, 상기 NAT 게이트웨이 및 상기 장치를 통해 상기 가상 경로를 통과하는 상기 패킷의 라우팅을 더 시행하게 하는, NAT 게이트웨이.
  20. 제18항 또는 제19항에 있어서, 상기 가상 경로 단자들의 상기 복수의 주소들은:
    상기 단자들의 복수의 인터넷 프로토콜(IP) 주소들; 및
    상기 단자들의 복수의 매체 액세스 제어(MAC) 주소들을 포함하는, NAT 게이트웨이.
  21. 제18항 내지 제20항 중 어느 한 항에 있어서, 상기 네트워크 인터페이스들의 복수의 주소들은:
    상기 네트워크 인터페이스들의 복수의 인터넷 프로토콜(IP) 주소들; 및
    상기 네트워크 인터페이스들의 복수의 매체 액세스 제어(MAC) 주소들을 포함하는, NAT 게이트웨이.
  22. 제18항 내지 제21항 중 어느 한 항에 있어서, 상기 네트워크 인터페이스들은:
    상기 NAT 게이트웨이의 네트워크 인터페이스와 인터페이스하도록 구성된 제1 서브넷에 대응하는 상기 장치의 제1 네트워크 인터페이스; 및
    타겟의 네트워크 인터페이스와 인터페이스하도록 구성된 제2 서브넷에 대응하는 상기 장치의 제2 네트워크 인터페이스를 포함하며,
    상기 제1 서브넷 및 상기 제2 서브넷은 중첩되지 않는, NAT 게이트웨이.
  23. 제18항 내지 제22항 중 어느 한 항에 있어서, 상기 NAM 로직은 상기 가상 경로 단자들의 각각이 상기 네트워크 인터페이스들 중 하나에 배타적으로 매핑되도록 구성되는, NAT 게이트웨이.
  24. 시스템으로서,
    네트워크 주소 변환(NAT) 게이트웨이로서,
    하나 이상의 프로세서; 및
    명령을 저장하는 하나 이상의 컴퓨터 판독 가능 매체; 및
    가상 경로에 제공되고 사설 인터넷 프로토콜(IP) 주소를 갖는 장치로서, 상기 장치는 네트워크 주소 맵퍼(NAM) 로직을 포함하되, 상기 네트워크 주소 맵퍼(NAM) 로직은:
    상기 가상 경로를 통해 연결된 가상 경로 단자들의 복수의 주소들;
    상기 가상 경로 단자들의 서브넷들에 대응하는 네트워크 인터페이스들의 복수의 주소들; 및
    프록시 정보로 구성된 네트워크 주소 맵퍼(NAM) 로직인, 장치를 포함하는 NAT 게이트웨이를 포함하고,
    상기 명령은 상기 하나 이상의 프로세서에 의해 실행될 때, 상기 NAT 게이트웨이로 하여금,
    공용 인터넷 프로토콜(IP) 주소로 어드레싱된 패킷을 수신하게 하고;
    상기 공용 IP 주소를 상기 장치의 상기 사설 IP 주소로 변환하고;
    상기 패킷을 상기 장치의 상기 사설 IP 주소로 전송하게 하는, 시스템.
  25. 제24항에 있어서, 상기 명령들은, 상기 하나 이상의 프로세서들에 의해 실행될 때, 상기 NAT 게이트웨이로 하여금, 적어도 하나의 클라우드 라우팅 테이블을 사용하여, 상기 NAT 게이트웨이 및 상기 장치를 통해 상기 가상 경로를 통과하는 상기 패킷의 라우팅을 더 시행하게 하는, 시스템.
  26. 제24항 또는 제25항에 있어서, 상기 장치는 가상 범프-인-더-와이어(BITW) 장치를 포함하는, 시스템.
  27. 제24항 내지 제26항 중 어느 한 항에 있어서, 상기 가상 경로 단자들의 상기 복수의 주소들은:
    상기 단자들의 복수의 인터넷 프로토콜(IP) 주소들; 및
    상기 단자들의 복수의 매체 액세스 제어(MAC) 주소들을 포함하는, 시스템.
  28. 제24항 내지 제27항 중 어느 한 항에 있어서, 상기 네트워크 인터페이스들의 상기 복수의 주소들은:
    상기 네트워크 인터페이스들의 복수의 인터넷 프로토콜(IP) 주소들; 및
    상기 네트워크 인터페이스들의 복수의 매체 액세스 제어(MAC) 주소들을 포함하는, 시스템.
  29. 제24항 내지 제28항 중 어느 한 항에 있어서, 상기 네트워크 인터페이스들은:
    상기 NAT 게이트웨이의 네트워크 인터페이스와 인터페이스하도록 구성된 제1 서브넷에 대응하는 상기 장치의 제1 네트워크 인터페이스; 및
    타겟의 네트워크 인터페이스와 인터페이스하도록 구성된 제2 서브넷에 대응하는 상기 장치의 제2 네트워크 인터페이스를 포함하며,
    상기 제1 서브넷 및 상기 제2 서브넷은 중첩되지 않는, 시스템.
  30. 제24항 내지 제29항 중 어느 한 항에 있어서, 상기 가상 경로는 상기 장치를 통한 빠른 경로를 포함하는, 시스템.
  31. 제24항 내지 제30항 중 어느 한 항에 있어서, 상기 NAM 로직은 상기 가상 경로 단자들의 각각이 상기 네트워크 인터페이스들 중 하나에 배타적으로 매핑되도록 구성되는, 시스템.
KR1020237010178A 2020-08-27 2021-08-26 인라인 투명 컴퓨터 네트워킹 장치의 효율적인 가상화를 위한 방법 및 시스템 KR20230108254A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202063071174P 2020-08-27 2020-08-27
US63/071,174 2020-08-27
US17/395,120 2021-08-05
US17/395,120 US11316823B2 (en) 2020-08-27 2021-08-05 Methods and systems for efficient virtualization of inline transparent computer networking devices
PCT/US2021/047735 WO2022047019A1 (en) 2020-08-27 2021-08-26 Methods and systems for efficient virtualization of inline transparent computer networking devices

Publications (1)

Publication Number Publication Date
KR20230108254A true KR20230108254A (ko) 2023-07-18

Family

ID=78049784

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237010178A KR20230108254A (ko) 2020-08-27 2021-08-26 인라인 투명 컴퓨터 네트워킹 장치의 효율적인 가상화를 위한 방법 및 시스템

Country Status (8)

Country Link
US (4) US11316823B2 (ko)
EP (1) EP4205372A1 (ko)
JP (1) JP2023546775A (ko)
KR (1) KR20230108254A (ko)
AU (1) AU2021331195A1 (ko)
CA (1) CA3190870A1 (ko)
DE (1) DE112021004469T5 (ko)
WO (1) WO2022047019A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114980232B (zh) * 2022-06-07 2023-08-08 中国联合网络通信集团有限公司 网络接入方法、装置、系统及存储介质

Family Cites Families (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5226141A (en) 1989-07-14 1993-07-06 Touch Technologies, Inc. Variable capacity cache memory
ATE301895T1 (de) 1999-06-10 2005-08-15 Alcatel Internetworking Inc System und verfahren zur automatischen erreichbarkeitsaktualisierung in virtuellen privaten netzen
US8204082B2 (en) 2000-06-23 2012-06-19 Cloudshield Technologies, Inc. Transparent provisioning of services over a network
FI20002377A (fi) 2000-10-27 2002-04-28 Ssh Comm Security Corp Menetelmä käännetyn suodatinkoodin hallitsemiseksi
AU2002230541B2 (en) 2000-11-30 2007-08-23 Cisco Technology, Inc. Flow-based detection of network intrusions
US7095716B1 (en) 2001-03-30 2006-08-22 Juniper Networks, Inc. Internet security device and method
US7287649B2 (en) 2001-05-18 2007-10-30 Broadcom Corporation System on a chip for packet processing
WO2002103547A1 (en) * 2001-06-15 2002-12-27 Advanced Network Technology Laboratories Pte Ltd. Computer networks
US7096498B2 (en) 2002-03-08 2006-08-22 Cipher Trust, Inc. Systems and methods for message threat management
US7254114B1 (en) 2002-08-26 2007-08-07 Juniper Networks, Inc. Network router having integrated flow accounting and packet interception
US7050394B2 (en) 2002-12-18 2006-05-23 Intel Corporation Framer
US20060048142A1 (en) 2004-09-02 2006-03-02 Roese John J System and method for rapid response network policy implementation
WO2006071985A2 (en) 2004-12-29 2006-07-06 Alert Logic, Inc. Threat scoring system and method for intrusion detection security networks
US20070097976A1 (en) 2005-05-20 2007-05-03 Wood George D Suspect traffic redirection
US20080229415A1 (en) 2005-07-01 2008-09-18 Harsh Kapoor Systems and methods for processing data flows
US7499412B2 (en) 2005-07-01 2009-03-03 Net Optics, Inc. Active packet content analyzer for communications network
US7716729B2 (en) 2005-11-23 2010-05-11 Genband Inc. Method for responding to denial of service attacks at the session layer or above
US7849502B1 (en) 2006-04-29 2010-12-07 Ironport Systems, Inc. Apparatus for monitoring network traffic
US20080320116A1 (en) 2007-06-21 2008-12-25 Christopher Briggs Identification of endpoint devices operably coupled to a network through a network address translation router
US8730946B2 (en) 2007-10-18 2014-05-20 Redshift Internetworking, Inc. System and method to precisely learn and abstract the positive flow behavior of a unified communication (UC) application and endpoints
US8220050B2 (en) 2008-03-31 2012-07-10 Sophos Plc Method and system for detecting restricted content associated with retrieved content
CN101552803B (zh) 2008-04-03 2011-10-05 华为技术有限公司 网络地址转换地址映射表维护方法、媒体网关及其控制器
US8856926B2 (en) 2008-06-27 2014-10-07 Juniper Networks, Inc. Dynamic policy provisioning within network security devices
US8413238B1 (en) 2008-07-21 2013-04-02 Zscaler, Inc. Monitoring darknet access to identify malicious activity
US9342691B2 (en) 2013-03-14 2016-05-17 Bandura, Llc Internet protocol threat prevention
US11277598B2 (en) * 2009-07-14 2022-03-15 Cable Television Laboratories, Inc. Systems and methods for network-based media processing
US8495725B2 (en) 2009-08-28 2013-07-23 Great Wall Systems Methods, systems, and computer readable media for adaptive packet filtering
US8271645B2 (en) 2009-11-25 2012-09-18 Citrix Systems, Inc. Systems and methods for trace filters by association of client to vserver to services
US8219675B2 (en) * 2009-12-11 2012-07-10 Tektronix, Inc. System and method for correlating IP flows across network address translation firewalls
US8560646B1 (en) * 2010-09-28 2013-10-15 Amazon Technologies, Inc. Managing communications using alternative packet addressing
GB201101723D0 (en) 2011-02-01 2011-03-16 Roke Manor Research A method and apparatus for identifier correlation
US9503529B2 (en) 2011-04-04 2016-11-22 Avaya Inc. System and method to transport HTTP over XMPP
US9118702B2 (en) 2011-05-31 2015-08-25 Bce Inc. System and method for generating and refining cyber threat intelligence data
US9197606B2 (en) 2012-03-28 2015-11-24 Bmc Software, Inc. Monitoring network performance of encrypted communications
US9392003B2 (en) 2012-08-23 2016-07-12 Raytheon Foreground Security, Inc. Internet security cyber threat reporting system and method
US9306949B1 (en) * 2013-03-12 2016-04-05 Amazon Technologies, Inc. Configure interconnections between networks hosted in datacenters
US9686233B2 (en) 2013-03-13 2017-06-20 The United States Of America, As Represented By The Secretary Of The Navy Tracking network packets across translational boundaries
US9172627B2 (en) 2013-03-15 2015-10-27 Extreme Networks, Inc. Device and related method for dynamic traffic mirroring
US9634911B2 (en) 2013-07-30 2017-04-25 Avaya Inc. Communication device event captures
US10218675B2 (en) * 2014-04-28 2019-02-26 Honeywell International Inc. Legacy device securitization using bump-in-the-wire security devices within a microgrid system
US9553806B2 (en) * 2015-02-06 2017-01-24 Telefonaktiebolaget L M Ericsson (Publ) Method and system for supporting port ranging in a software-defined networking (SDN) system
WO2018002695A1 (en) * 2016-07-01 2018-01-04 Telefonaktiebolaget Lm Ericsson (Publ) Efficient nat in sdn network
US10728174B2 (en) * 2018-03-27 2020-07-28 Nicira, Inc. Incorporating layer 2 service between two interfaces of gateway device
US11356534B2 (en) * 2019-04-23 2022-06-07 Tencent America LLC Function repository selection mode and signaling for cloud based processing
US20200344088A1 (en) * 2019-04-29 2020-10-29 Vmware, Inc. Network interoperability support for non-virtualized entities
US11256546B2 (en) * 2019-07-02 2022-02-22 Nokia Technologies Oy Methods, apparatuses and computer readable mediums for network based media processing
US20210120080A1 (en) * 2019-10-16 2021-04-22 Vmware, Inc. Load balancing for third party services
US11140132B1 (en) 2019-12-10 2021-10-05 Amazon Technologies, Inc. Network flow management
US11700236B2 (en) * 2020-02-27 2023-07-11 Juniper Networks, Inc. Packet steering to a host-based firewall in virtualized environments
US11743172B2 (en) * 2020-04-06 2023-08-29 Vmware, Inc. Using multiple transport mechanisms to provide services at the edge of a network
US11310098B2 (en) * 2020-06-09 2022-04-19 Cisco Technology, Inc. Diagnosing intermediary network nodes
US11652736B2 (en) * 2020-06-30 2023-05-16 Amazon Technologies, Inc. Transmitting network traffic to a pool of redundant network appliances
US20210409336A1 (en) 2020-06-30 2021-12-30 Amazon Technologies, Inc. Validating network flows in a multi-tenanted network appliance routing service
US11184277B1 (en) 2020-06-30 2021-11-23 Amazon Technologies, Inc. Reducing routing rules used to route traffic
US11310149B1 (en) 2020-09-25 2022-04-19 Amazon Technologies, Inc. Routing bidirectional flows in a stateless routing service
US11088948B1 (en) 2020-09-25 2021-08-10 Amazon Technologies, Inc. Correlating network flows in a routing service for full-proxy network appliances

Also Published As

Publication number Publication date
JP2023546775A (ja) 2023-11-08
EP4205372A1 (en) 2023-07-05
US11316823B2 (en) 2022-04-26
CA3190870A1 (en) 2022-03-03
WO2022047019A1 (en) 2022-03-03
US11902240B2 (en) 2024-02-13
US20230179563A1 (en) 2023-06-08
US20220210119A1 (en) 2022-06-30
US11570138B2 (en) 2023-01-31
DE112021004469T5 (de) 2023-06-07
US20230336522A1 (en) 2023-10-19
AU2021331195A1 (en) 2023-04-20
US20220070140A1 (en) 2022-03-03

Similar Documents

Publication Publication Date Title
US10944691B1 (en) Container-based network policy configuration in software-defined networking (SDN) environments
US10862732B2 (en) Enhanced network virtualization using metadata in encapsulation header
US10491424B2 (en) Servicing packets in a virtual network and a software-defined network (SDN)
US11190424B2 (en) Container-based connectivity check in software-defined networking (SDN) environments
US10187263B2 (en) Integrating physical and virtual network functions in a service-chained network environment
US7633864B2 (en) Method and system for creating a demilitarized zone using network stack instances
JP5763081B2 (ja) 仮想化ネットワークインフラストラクチャを用いたトランスペアレントなクラウドコンピューティングのための方法および装置
US11269673B2 (en) Client-defined rules in provider network environments
US20150124823A1 (en) Tenant dhcp in an overlay network
US20180139101A1 (en) Flow sate transfer for live migration of virtual machine
KR102632518B1 (ko) 가상 네트워크 기능의 투명 마이그레이션
US11005745B2 (en) Network configuration failure diagnosis in software-defined networking (SDN) environments
US20230336522A1 (en) Methods and Systems for Efficient Virtualization of Inline Tansparent Computer Netwokring Devices
US11595304B2 (en) Communication device, communication control system, communication control method, and communication control program
US11516125B2 (en) Handling packets travelling towards logical service routers (SRs) for active-active stateful service insertion
US10938632B2 (en) Query failure diagnosis in software-defined networking (SDN) environments
CN116457756A (zh) 用于内联透明计算机网络设备的高效虚拟化的方法和系统
de Alfonso et al. Realistic Networking in generic multi-site Cloud Deployments

Legal Events

Date Code Title Description
N231 Notification of change of applicant