JP2023546775A - インライン・トランスペアレント・コンピュータ・ネットワーキングデバイスの仮想化のための方法およびシステム - Google Patents

インライン・トランスペアレント・コンピュータ・ネットワーキングデバイスの仮想化のための方法およびシステム Download PDF

Info

Publication number
JP2023546775A
JP2023546775A JP2023513332A JP2023513332A JP2023546775A JP 2023546775 A JP2023546775 A JP 2023546775A JP 2023513332 A JP2023513332 A JP 2023513332A JP 2023513332 A JP2023513332 A JP 2023513332A JP 2023546775 A JP2023546775 A JP 2023546775A
Authority
JP
Japan
Prior art keywords
addresses
network
address
virtual
virtual path
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
JP2023513332A
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 JP2023546775A publication Critical patent/JP2023546775A/ja
Pending legal-status Critical Current

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]
    • 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/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
    • 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
    • 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
    • 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
    • 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

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

【課題】クラウドへの展開のためにバンプ・イン・ザ・ワイヤ(BITW)デバイスを仮想化するとき、ネットワークインターフェースは、それらに割り当てられたLレイヤー_IPアドレスおよびレイヤー2_MACアドレスを有しなければならない。したがって、パケットは、仮想BITWデバイスの低速パスを通して処理され、性能を著しく低下させる。【解決手段】仮想BITWデバイスに新たな論理を追加すること、並びに/またはプロキシ、アドレス、サブネット、および/若しくはルーティングテーブルを構成することによって、仮想BITWデバイスは、高速パスを通してパケットを処理し、その結果、性能を向上させる可能性があり得る。仮想BITWデバイスは、レイヤー3_IPアドレスおよびレイヤー2_MACアドレスをそれらのネットワークインターフェースに割り当てず、それによって、オペレーティングシステムカーネルによる低速パスをバイパスする論理高速パスを通してパケットを処理することによって、ネットワークデバイスのパケットスループット性能を改善する。【選択図】図3

Description

(関連出願の相互参照)
本出願は、2020年8月27日に出願された米国特許仮出願第63/071,174号に基づき2021年8月5日に出願された米国特許出願第17/395,120号の優先権を主張するものであり、これらの出願の各々は、その全体が参照により本明細書に組み込まれる。
パブリックインターネットなどの伝送制御プロトコル/インターネットプロトコル(Transmission Control Protocol/Internet Protocol、TCP/IP)ネットワークは、現代の情報化時代の基礎となる。TCP/IPプロトコルスイートは、データがどのようにパケット化され、アドレス指定され、送信され、ルーティングされ、受信されるべきかを指定することによって、エンドポイントホストコンピュータ間のデータ通信を可能にする。TCP/IPプロトコルスイートは、5つの層、具体的には、物理層(層1すなわちL1)、データリンク層(L2)、ネットワーク層(L3)、トランスポート層(L4)、およびアプリケーション層からなる。本開示に特に関連するのは、パケットをそれらの宛先(例えば、エンドポイント/ホストコンピュータ)に効率的に向けるためにルータなどのネットワークノード/ホストによって使用される層3(L3)プロトコル(例えば、IPv4およびIPv6などのインターネットプロトコル(Internet Protocol、IP))、並びにネットワークノード/ホストを接続するリンクにわたってパケットを効率的に送信するために使用される層2(L2)リンク層プロトコル(例えば、イーサネット802.3、媒体アクセス制御(Media Access Control、MAC)アドレス指定、アドレス解決プロトコル(Address Resolution Protocol、ARP)、近隣探索プロトコル(Neighbor Discovery Protocol、NDP)など)である。
多くの組織は、プライベートTCP/IPネットワークを運用して、それらの組織の業務をサポートし、コンピュータサービスおよびリソースを他のネットワーク接続された組織およびコンシューマに提供する。これらのプライベートネットワークは、異なる組織が互いのコンピュータサービスおよびリソースにアクセスすることを可能にするインターネットによって相互接続される。これらのコンピュータは、インターネットのパブリックIPアドレス空間/セットの要素であるIPアドレスによってアドレス指定されるか、または識別される。プライベートネットワークは、多くの場合、インターネットから自律的に運用/管理され、インターネットのパブリックIPアドレス空間/セットとは異なるプライベートIPアドレス空間/セットを使用し、すなわち、共通部分は空のセットである。したがって、プライベートネットワークを運用する組織が、そのコンピュータ/ホストがインターネットホストにアクセスすること、またはインターネットホストによってアクセスされることを望む場合、その組織は、プライベートネットワークとインターネットとの間の境界に位置するネットワークアドレス変換(network address translation、NAT)ゲートウェイを運用する必要がある。NATゲートウェイは、インターネットIPアドレス空間とプライベートネットワークのIPアドレス空間との間のインターフェースとして機能し、すなわち、NATゲートウェイは、インターネットIPアドレスとプライベートネットワークのIPアドレスとの間で変換する。したがって、組織が、そのプライベートネットワークに接続されたホストコンピュータ(例えば会社のウェブサイト)を、インターネットからアクセス可能/アドレス指定可能にしたい場合、ホストコンピュータは、プライベートIPアドレスおよびパブリックIPアドレスの両方に関連付けられなければならない。NATゲートウェイは、ホストコンピュータのプライベートIPアドレスとそのパブリックIPアドレスとの間で変換するように構成される。これらの関連付けは、静的かつ恒久的、または動的かつ一過性であり得る。
図1Aは、企業によって運用/管理される(物理または非仮想)プライベートネットワーク104がパブリックネットワーク102(例えば、インターネット)とインターフェース(整合)するネットワーク環境100の例を示す。企業は、例えば、IPv4プライベートアドレス空間10.0.0.0/8からのプライベートIPアドレスを、そのホストコンピュータ、ルータ、および/または他のデバイスのネットワークインターフェースに割り当てることができる。内部ルーティングプロトコル(例えば、オープン・ショーテスト・パス・ファースト(Open Shortest Path First、OSPF))は、プライベートネットワーク104に関連付けられた任意の2つのプライベートIPアドレス間のネットワークパス108を決定するルーティングポリシーを定義するために、企業によって使用され得る。企業は、ネットワークアドレス変換(NAT)ゲートウェイ(NAT gateway、NAT-G/W)120を介して、その企業のプライベートネットワーク(プライベートIPアドレス空間を使用し得る)をインターネット(パブリックIPアドレス空間を使用し得る)とインターフェース接続し得る。NATゲートウェイ機能は、図に示されていないネットワークファイアウォールおよびエッジルータなどの1つ以上のネットワークエッジデバイスに含まれ得る。NAT-G/W120は、企業に割り当てられたパブリックインターネットIPアドレスをプライベートIPアドレスに変換し得る。このようにして、プライベートネットワークに接続された内部ホストは、インターネットホストと通信することができ、その逆も同様である。例えば、企業のインターネットサービスプロバイダ(Internet Service Provider、ISP)は、パブリックインターネット(IPv4)アドレスブロック(例えば、174.129.20.0/24)を企業にプロビジョニングし得る。企業は、例えば、アドレスブロック174.129.20.0/24をそのNAT-G/W120のインターネット向けネットワークインターフェースN1 121に割り当て、例えば、プライベートIPアドレス10.0.1.1をNAT-G/W120のプライベートネットワーク向けネットワークインターフェースN2 122に割り当てることができる。
企業はまた、パブリックIPアドレス(例えば、174.129.20.63)を、(物理または非仮想)コンピュータ160に割り当てられたプライベートIPアドレス(例えば、10.0.2.157)にマッピングするようにNAT-G/W120を構成し得る。したがって、この例におけるコンピュータ160のパブリックIPアドレスは、174.129.20.63である。プライベートネットワーク104のためのルーティングポリシーおよび関連する構成は、NAT-G/W120を通過する、コンピュータ160をソースとする、またはそれを宛先とするパケット(すなわち、インターネットホストを宛先とする、またはそれをソースとするパケット)のためのプライベートネットワーク104を通るパス108を決定し得る。パス108は、例えば、NAT-G/W120のネットワークインターフェースをコンピュータ160のネットワークインターフェースに接続する単一の物理リンク/ケーブル、または、例えば、ネットワークパス上にある1つ以上のルータおよび/またはスイッチ(ノード)を接続する複数の物理リンクであってもよい。この構成では、例えば、パブリックネットワーク102に接続されたコンピュータHOST-0 110は、ソースまたは宛先IPアドレスとして174.129.20.63を有するインターネットを介したL3/IPパケットの送信を介して、プライベートネットワーク104に接続されたコンピュータ160と双方向に通信し得る。
企業は、ネットワークノード(例えば、ルータ、スイッチ、ホストコンピュータ等)のネットワークインターフェースを接続する物理リンク(例えば、銅線および光ケーブル)にインラインで挿入され、パケットのコンテンツおよび/または中間デバイスのアプリケーション論理に従って、伝送中のパケットを検査および処理し得る中間デバイスを展開し得る。したがって、これらのデバイスは、伝送中パケット処理デバイスと呼ばれることがある。これらの中間パケット処理デバイスは、プライベートネットワークの所有者/オペレータ/管理者(例えば、企業)によって定義されたデータ通信ポリシー(例えば、ネットワークセキュリティポリシー、ネットワークアクセス制御ポリシー、ネットワークアプリケーション使用ポリシー、ネットワークアドレス変換ポリシー等)を施行し得る。特定の通信にポリシーを施行するために、ネットワーク管理者は、特定の通信のパケットが常に中間パケット処理デバイスを(一方向または両方向に)通過するように、中間パケット処理デバイスの場所(例えば、どのリンクに中間パケット処理デバイスが挿入されるかを決定する)、ネットワーク構成、および/またはルーティングポリシーを調整し得る。これらのポリシーは、内部ホスト(プライベートネットワーク、例えば、コンピュータ160に接続された)とパブリックネットワーク(例えば、インターネット)ホストとの間の通信に適用され得るため、デバイスは、プライベートネットワークとパブリックネットワークとの間の境界に、またはその近くに位置してもよく、例えば、デバイスは、パブリックネットワークアクセスリンクに挿入されてもよい。これらのデバイスの例には、ネットワークファイアウォール、ネットワークアクセスコントローラ、ウェブプロキシ、TLSプロキシ、パケットセキュリティゲートウェイ、脅威インテリジェンスゲートウェイ、IPsecゲートウェイなどが含まれる。同様に、デバイスは、任意の異なるネットワークの境界間(例えば、プライベートネットワークとパブリックネットワークとの間に限定されない)、並びに/または、例えば、集中点および負荷分散点の、ネットワーク内のサブネットおよび/若しくはセグメントの境界間に位置し得る。
図1Bを参照する:2つのネットワーク要素A(例えば、NAT-G/W120)とB(例えば、コンピュータ160)との間のパス108上のリンクにおけるインライン動作/挿入のために中間パケット処理ネットワークデバイスC140を構成するとき、パス108の全てまたは一部を構成し得る物理リンク(例えば、銅線または光ケーブル、および/または物理無線接続)は、2つのリンクに物理的に分割され得、一方のリンクは、要素AのネットワークインターフェースポートをデバイスC140のネットワークインターフェースポートC1 141に接続し、他方のリンクは、要素BのネットワークインターフェースポートをデバイスC140のネットワークインターフェースポートC2 142に接続する。デバイス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で動作する他のネットワーク要素およびプロトコルによって「見られる」または観察されることができないので、インターフェースおよびデバイスは、(L3-およびL2-)トランスペアレントであるものとして説明される。当業者は、このようなトランスペアレントインラインデバイスを「バンプ・イン・ザ・ワイヤ」(bump in the wire、BITW)と呼ぶ場合があり、1つの理由は、BITWデバイスを通過するフレーム/パケットがL2またはL3において変更されないことであり(例えば、MACアドレスまたはIPアドレス若しくは他のヘッダフィールドに変更が加えられない)、多くの場合、どの層においても変更されない。
BITWデバイスのこの透過性構成から生じる複数の潜在的な利点および潜在的な効率が存在する。例えば、(デバイスのパケットスループットによって測定される)性能は、複数の理由で改善され得る。1つの理由は、出て行くフレーム/パケットが、例えば、L2フレームの宛先MACアドレスを決定するために、例えば、オペレーティングシステム(operating system、OS)カーネルへの呼び出しを介して、ルーティングおよび転送テーブルにアクセスする必要がない場合があることである。別の理由は、非トランスペアレントパケット処理デバイスが、デバイスのOS(例えば、Linux(登録商標))カーネルによって提供される比較的低速のTCP/IPネットワーキングスタック論理を使用して、伝送中パケットを処理し、L3ルーティングおよびL2スイッチング/転送プロトコルに関与し得ることであり、一方、トランスペアレントデバイスは、OSカーネルのTCP/IPネットワーキングスタックをバイパスし、ネットワークインターフェースコントローラ(network interface controller、NIC)、例えば、データプレーン開発キット(Data Plane Development Kit、DPDK)に直接アクセスするはるかに高速のパケット処理論理を使用し得る。DPDKなどの高速パケット処理論理モジュールは、L3/IPパケットヘッダ(例えば、パケットのソースまたは宛先IPアドレス値を変更するプロキシ機能)またはL2/イーサネットフレーム(例えば、ソースまたは宛先MACアドレス値を変更するリンク転送機能)を変える機能をネイティブにサポートしない場合がある。そのような機能が特定のアプリケーションに必要とされる場合、アプリケーションは、例えば、OSのTCP/IPネットワーキングスタックへの呼び出しを介してそれらにアクセスし得、しかしながら、このアプローチは、アプリケーションのパケット処理性能に影響を及ぼす可能性がある。
当業者は、多くの場合、OSバイパスアーキテクチャ/実装を「高速パス」と称し(OSカーネルを通る「低速パス」に対して)、関連するBITWデバイスが最小限のレイテンシを追加し、パケットをドロップしないと仮定し得る(例えば、大きなレイテンシから生じるバッファオーバーフローのために)。非トランスペアレントデバイスと同様に、ネットワーク管理者が、特定の通信がそのようなトランスペアレントデバイスを通過することを要求するネットワーク通信ポリシーを定義するとき、管理者は、ネットワークおよびルーティングポリシーが要件を満たすように適切に構成されることを確実にしなければならない。しかし、トランスペアレントデバイスのネットワークインターフェースはIPアドレスを有していないので、管理者は、ルーティングポリシーを使用して特定のパケットをインターフェースに向けることができず、代わりに、間接的な方法を使用して要件が満たされることを確実にしなければならない。したがって、非トランスペアレントデバイスの場合と同様に、ネットワークおよび/またはルーティングポリシーへの変更は、要件が満たされないようなルーティングの変更を潜在的に引き起こす可能性があり、したがって、そのような変更を行うとき、管理者は、そのような要件が依然として満たされることを確実にするためのアクションをとる必要があり得、それは、非トランスペアレントの場合よりも効果をもたらすことがより困難であり得る(例えば、間接対直接ルーティング方法のみが使用され得るため)。
クラウドコンピューティングプラットフォームおよびサービス(例えば、Amazon Web Services、Microsoft Azure、Google Cloud、等)の効率性は、多くの組織に、それらの物理的プライベートネットワークの一部を仮想プライベートクラウドに移行または仮想化させている。Amazon Virtual Private Cloud(Virtual Private Cloud、VPC)などのサービスを使用する仮想プライベートクラウド環境において、インラインネットワークデバイス、例えば、インラインパケットフィルタリングデバイスをプロビジョニングするとき、デバイスのネットワークインターフェースは、(プライベート)IPアドレスを割り当てられなければならず、デバイスのネットワークインターフェースは、もはやトランスペアレントであることができない。物理デバイスのネットワークインターフェースポートへの接続は、物理接続、例えば、イーサネットケーブル、を用いて行われ得るが、そのような物理接続は、仮想環境では可能ではない。そのような物理接続を仮想クラウド環境にマッピングするとき、接続は、L3ルーティングおよび関連するルーティングポリシーを介してエミュレート/仮想化されなければならない。
図2Aは、-例えば、Infrastructure-as-a-Service(IaaS)プラットフォームの上に企業によって構成されており、企業自体によってホストされ得るか、またはIaaSプロバイダ(例えば、Amazon、Microsoft、Google、等)によってホストされ得る-仮想プライベートクラウド204が、パブリックネットワーク102にインターフェースする、例示的なネットワーク環境200を示す。仮想プライベートクラウド204は、図1Aの物理プライベートネットワーク104の仮想化バージョンであり得る。IaaSプラットフォームによって供給/プロビジョニングされ得る仮想NAT-G/W220機能は、パブリックアドレス(例えば、インターネットアドレス)、例えば174.129.20.63を、仮想コンピュータ260のための10.0.2.157などの仮想コンピュータのプライベートIPアドレスにマッピングし得る。
ルーティングプロトコルおよび関連するルーティングポリシーはまた、仮想NAT-G/W220と仮想コンピュータ260との間のネットワークパスを決定することができ、これは図2Aでは仮想パス208によって表されている。仮想プライベートクラウドのためのルーティングプロトコルおよびポリシーは、IaaSプラットフォームサプライヤ、例えば、IaaSプロバイダによって管理されてもよく、必ずしもプラットフォームサブスクライバ(例えば、企業)によって管理されなくてもよい。ルーティングプロトコルおよびポリシーは、異なるIaaSプロバイダ間で異なってもよく、さらに、IaaSプロバイダは、ルーティングプロトコルおよびポリシーの制御を、IaaSプロバイダの仮想プライベートクラウドプラットフォームを使用する加入者/企業に公開しなくてもよい。したがって、例えば、企業が、特定のパケットが仮想プライベートクラウドを通して特定のパスまたはサブパス若しくはリンクを横断することを要求する場合、企業は、例えば、サブネットを構成することによって、およびクラウドのルートテーブル(IaaSプロバイダが公開する)を修正することによって、特定のパスが特定のパケットによって横断されるそのような方法で、クラウドの要素のIPアドレスを構成し、プライベートクラウドを構成しなければならない。企業はルーティングポリシーを制御しない場合があるため、特にプライベートクラウドが動的である場合、例えばルーティング構成を修正する変更がプライベートクラウドに頻繁に行われる場合(クラウドの潜在的利点の1つが、ネットワークへの変更、例えば負荷の動的変化のためにサーバを動的に追加または除去することが、物理的ネットワークと比較して実装するのにはるかに効率的であり得るためである可能性が高い)、そのような要件が満たされることを確実にすることは困難であり問題があり得る。
以下のいくつかのパラグラフは、本開示のいくつかの態様の基本的な理解を提供するための簡略化された概要を提示する。それらは、本開示の主要なまたは重要な要素を特定することも、本開示の範囲を定めることも意図されていない。以下のいくつかのパラグラフは、以下の説明の前置きとして、本開示のいくつかの概念を簡略化した形式で提示するに過ぎない。
上記の「背景技術」の考察に鑑みて、トランスペアレント物理BITWネットワークデバイスの仮想化および/または動的な仮想プライベートクラウド環境へのデバイスのプロビジョニングをサポートする方法、システム、および論理が必要とされている。さらに、(a)高速パスパケット処理および関連するパケットスループット性能を維持し、(b)特定の/指定された通信を含むパケットが、仮想化されたBITWデバイスを通過する仮想パスを横断することを確実にするためのポリシーを施行し、および/または(c)異なる仮想プライベートクラウドプラットフォームにわたるルーティングポリシーの差異に対して不変であり得るように、これが行われる必要がある。
本明細書で説明する発明の態様は、概して、TCP/IPネットワーキングのためのコンピュータハードウェアおよびソフトウェア、並びにその関連する方法に関する。例えば、本開示の1つ以上の非限定的な態様は、概して、コンピュータネットワークにおいてパケット化されたデータ送信を仲介するネットワーキングデバイスに関する。
例えば、本明細書に開示される方法、デバイス、システム、および/またはコンピュータ可読媒体は、(1a)インライン・トランスペアレント物理伝送中パケット処理ネットワークデバイスの効率的な仮想化、および/または(1b)仮想プライベートクラウド環境への効率的な展開をサポートし得る、並びに/あるいは(2a)デバイスのパケット処理性能を維持し得る、および/または(2b)1つ以上のインターネットホストと仮想プライベートクラウドに接続された1つ以上の仮想ホストとの間の通信を構成する一部または全部のパケットが、仮想バンプ・イン・ザ・ワイヤ(BITW)デバイスのネットワークインターフェース間の仮想リンクを含む仮想パスを横断する企業通信ポリシーを施行し得る、論理および構成の例を説明する。これらのプロパティおよび特性は、異なる仮想プライベートクラウドプラットフォームにわたって生じ得るルーティングポリシーにおける差異または変さらに対して不変であり得る。便宜上、「仮想BITWデバイス」という用語は、本明細書では、仮想化されたバージョンの物理BITWデバイス、例えば、仮想化されてクラウドに展開されたインライン・トランスペアレント伝送中高速パスパケット処理物理ネットワークデバイスにラベル付けするために使用され得る。
仮想化され、クラウドにプロビジョニングされるとき、これらの仮想BITWデバイスのネットワークインターフェースは、所望のL3プロキシ機能並びにL3/L2ルーティングおよび転送機能をもたらすために、デバイスの効率的なネットワークアドレスマッパー(Network Address Mapper、NAM)論理およびクラウドのルーティングテーブルに関連付けられた(L3)プライベートIPアドレスおよび(L2)MACアドレスを割り当てられ得る。仮想化されたデバイスは、低速パスオペレーティングシステムのTCP/IPネットワーキングスタック論理をバイパスしながら、BITWデバイスの物理バージョンによって使用される同じまたは同様の高速パスパケット処理(fast path packet processing、FPPP)論理(例えば、データプレーン開発キット(DPDK))を使用して、伝送中パケットを処理し得る。
仮想プライベートクラウドに接続された仮想ホストコンピュータは、その(プライベート)IPアドレスによって識別されてもよく、仮想ホストコンピュータとインターネットホストとの間の通信を構成する特定の、または全ての、伝送中パケットが、仮想ホストコンピュータとクラウドのインターネットインターフェース、例えば、ネットワークアドレス変換(NAT)ゲートウェイとの間のクラウド内の仮想パスに展開された仮想BITWデバイスを通過しなければならないというポリシーに関連付けられてもよい。仮想BITWデバイス、仮想ホストコンピュータ、およびNATゲートウェイのIPアドレスおよび関連サブネットは、インターネットと仮想ホストコンピュータとの間の通信が仮想パスを横断し、仮想BITWデバイスを通過するように構成され得る。仮想BITWデバイスのインターネットに面するネットワークインターフェースは、仮想ホストコンピュータのためのIPアドレスプロキシとして識別され得る。インターネットをプライベートクラウドとインターフェースし、仮想ホストコンピュータのインターネットアドレスとそのプライベートIPアドレスとの間でネイティブに変換するNATゲートウェイは、仮想ホストコンピュータのインターネットアドレスをプロキシアドレスに変換するように再構成され得る。インターネットホストをソースとし、仮想ホストコンピュータに宛てられたパケットは、NATゲートウェイから仮想BITWデバイスのプロキシネットワークインターフェースに(クラウドによって)ルーティングされ得る。プロキシインターフェースでパケットを受信した後、デバイスのNAM論理は、パケットのL3宛先アドレスおよびL2 MACアドレスを修正することができ、その結果、デバイスが高速パス論理を通してパケットを処理し、デバイスの仮想ホスト向けネットワークインターフェースからパケットを転送した後、パケットは仮想ホストコンピュータにルーティングされる。同様に、仮想ホストコンピュータをソースとし、インターネットホストに宛てられたパケットは、デバイスの仮想ホスト向けネットワークインターフェースにルーティングされ、それによって受信され、NAM論理によって修正され、デバイスの高速パス論理を通して処理され、プロキシインターフェースから転送され、NATゲートウェイにルーティングされ得、NATゲートウェイは、アドレス変換を実行し、パケットをインターネットホストに向けて転送し得る。
本明細書で開示する更なる態様は、仮想BITWデバイスの高速パスを通してパケットを処理するように仮想BITWデバイスを構成することを対象とする。
本明細書で開示する更なる態様は、パケットがクラウドを通る仮想パスを横断することを確実にするように、仮想BITWデバイスのプロキシ、アドレス、サブネット、および/またはルーティングテーブルを構成することを対象とし、仮想パスは、仮想BITWデバイスを通る高速パスを備える。
本明細書で開示される更なる態様は、仮想パスに仮想BITWデバイスをプロビジョニングすることと、仮想パス端末のサブネットに対応するネットワークインターフェースにIPアドレスを割り当てることと、NAM論理を、(1)端末および/またはインターフェースのIPアドレスおよび/またはMACアドレスを用いて、および/若しくは(2)プロキシ情報を用いて構成することと、少なくとも1つのパブリックIPアドレスを、仮想BITWデバイスに関連付けられたプライベートIPアドレスに変換するようにNATゲートウェイを構成することと、仮想BITWデバイスおよびNATゲートウェイを通したアウトバウンド仮想パスルーティングを施行するように構成された少なくとも1つのクラウドルーティングテーブルを提供することと、を対象とする。
例えば、複数の仮想ホストコンピュータの場合を含めて、上記の態様に対する多くの可能な変形形態および拡張形態があり、それらのうちのいくつかは、例として以下で詳述される。
本開示の特徴は、本明細書とともに提供される図面を含めて、本開示全体を検討することでより明らかになるであろう。
本明細書のいくつかの特徴は、添付の図面の図において、限定としてではなく例として示され、ここで、同様の参照番号は、同様の要素を指す。
物理インラインBITWデバイスを含む物理プライベートネットワークのための例示的なネットワーク環境を示す。 物理インラインBITWデバイスを含む物理プライベートネットワークのための例示的なネットワーク環境を示す。 仮想BITWデバイスを含む仮想プライベートクラウドのための例示的なネットワーク環境を示す。 仮想BITWデバイスを含む仮想プライベートクラウドのための例示的なネットワーク環境を示す。 プライベートクラウドにおいて仮想BITWデバイスをプロビジョニングし、構成し、動作させるプロセスの一例を示す流れ図である。 仮想BITWデバイスのアーキテクチャの一例を示す図である。 仮想BITWデバイスを通過する、インターネットホストとプライベートクラウド接続仮想ホストコンピュータとの間のパケット通信の一例を示すラダー図である。 本明細書で説明されるデバイス、システム、および方法のうちのいずれかを実装するために使用され得る、コンピューティングデバイスの一例を示すブロック図である。
本開示の様々な実施形態の以下の説明において、添付図面が参照されるが、添付図面は、本明細書の一部を形成するものであり、そこには、本開示の態様が実施され得る様々な実施形態が例示として示されている。本開示の範囲から逸脱することなく、他の実施形態が利用され得、構造的および機能的な変更が行われ得ることを理解されたい。さらに、本開示の態様が実施され得る特定の適用例、プロトコル、および実施形態が参照される。本開示の範囲から逸脱することなく、他の適用例、プロトコル、および実施形態が利用され得、構造的および機能的な変更が行われ得ることを理解されたい。説明、図、および例は、IPv4プロトコルを参照するが、IPv6プロトコルおよび他のプロトコルも同様に参照され得ることを理解されたい。
以下の説明では、要素間の様々な接続について考察する。これらの接続は一般的なものであり、特に明記されていない限り、直接的または間接的、有線または無線、物理的または論理的(例えば、仮想またはソフトウェア定義)、任意の組み合わせであり得る。この点において、本明細書は限定することを意図したものではない。
図2Bに示すように、加入企業、またはプライベートクラウドオペレータなどの他のエンティティが、伝送中のパケットを処理するために仮想パス208に物理BITWデバイスC240の仮想化バージョン(仮想BITW)を挿入するとき、デバイスCのネットワークインターフェースC1 241およびC2 242は、基礎となるプライベートクラウドプラットフォームがデバイスを認識するだけでなく、デバイスを通してパケットを潜在的にルーティングすることができるように、それらに割り当てられた(L3)IPアドレスを有し得る。しかしながら、企業が、例えば、コンピュータ260と任意のインターネットホストとの間の通信を構成する全てのパケットがデバイスC240を通過することを要求するポリシーを定義する場合、企業は、ルーティングを制御しない可能性があるため、ポリシーを直接施行することができない可能性がある。例えば、ルーティングプロトコルは、NAT-G/W220とコンピュータ260との間の最良のパス(図2Bには図示せず)がデバイスC240を通過しないことを決定する場合がある。企業は、デバイスC240を通して特定のパケットをルーティングするためにルーティングプロトコルを可能な限りガイドするための手段を講じ得、例えば、企業は、所望のルーティングの可能性を高めるために、インターフェース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を通して誤った方向にルーティングさせる可能性があるので、そのようなアクションは所望のルーティングを保証しない。さらに、デバイスC240を通るルーティングが、所望された/要求されたように機能しているように見える場合であっても、ネットワークに対する任意の更なる変更、例えば、サーバ、サブネット、IPアドレス、等の追加、除去、および/または修正は、ルーティングの再構成を引き起こす可能性があり、その結果、デバイスC240を通るパケットのルーティングがもはや企業の所望の要件を満たさない。
(トランスペアレントな物理)BITWネットワークデバイスのネットワークインターフェースへのIPアドレスおよびMACアドレス割り当てをサポートするための1つのアプローチ--その結果、デバイスが仮想化され、IaaSプロバイダの仮想プライベートクラウドにプロビジョニングされ得、L3ルーティングおよびL2転送に参加し得る--は、伝送中パケットを処理し、ルーティングおよび転送情報を構成/決定するために、デバイスOSの(低速パス)TCP/IPネットワークスタック論理を使用することに戻ることである。したがって、物理BITWデバイスにおける透過性および関連する高速パスパケット処理論理によって可能になるパケットスループット性能利得は、デバイスの仮想化をサポートするために犠牲にされ得る。しかしながら、OSのTCP/IPネットワークスタック論理を使用することは、ローカルルーティングおよび転送情報が、クラウドプラットフォームのルーティングおよびスイッチングプロトコルによって自動的に構成されることを引き起こし得、しかし、上述したように、これは、クラウドに対する任意のパケットルーティングポリシー/要件を必ずしも施行せず、更なる性能低下を引き起こし得る。
以下で説明するように、仮想BITWをサポートするために、次の相関コンポーネントが提供され得る:(1)アドレス指定(例えば、IPおよびMACアドレス指定)、アドレス変換、プロキシ化、サブネット化、および/またはルーティングを調整することができるクラウド構成コンポーネント、および(2)FPPPのネットワークインターフェースコントローラ(NIC)ドライバと、L3/L2パケット/フレームを入力および/または出力するL3/IPアドレスおよびL2/MACアドレスを、仮想パスに沿って意図された宛先にルーティング/転送させることができる値に効率的にマッピングすることができるFPPPのコアパケット処理論理との間など、仮想BITWデバイスシステムに挿入(例えば、シミング)することができるネットワークアドレスマッパー(NAM)論理コンポーネント。
図3を参照して、最初に、次の相互に関連するサブコンポーネントのうちのいずれかから構成され得るクラウド構成コンポーネントの例を考える:
仮想BITWデバイスおよび関連するサブネットを仮想パスに構成すること、
NATゲートウェイおよび関連するプロキシ化を構成すること、および
クラウドルートテーブルを構成すること。
サブコンポーネントの構成は、ルーティングおよびルートテーブル生成、MACアドレス生成および割り当て、等などの機能を自動的におよび/または透過的に実行し得るプライベートクラウドプロバイダのインフラストラクチャのコンテキストにおいて、およびそれと協調して実行され得、その動作は図示されず、または説明されないことに留意されたい。また、説明される例/シナリオは、単一の仮想ホストコンピュータ(例えば、コンピュータ260)、単一のインターネットゲートウェイ(例えば、NAT-G/W220)、および単一のインターネットホスト(例えば、HOST-0 110)の間を仲介するインライン仮想BITWデバイス240の単純なケースに対してであることに留意されたい。本明細書で説明される本開示の方法およびシステムは、当業者によって、複数の仮想ホスト、インターネットホスト、ゲートウェイ、および仮想BITWデバイスを有するより複雑なシナリオに容易に拡張される。
仮想BITWデバイスが展開される前の例示的な環境を表す図2Aにおいて、NAT-G/W220は、パブリックネットワーク102(例えば、パブリックインターネット)に関連付けられたパブリックIPアドレスと、仮想プライベートクラウド204に関連付けられたプライベートIPアドレスとの間で変換するように構成され得る。例えば、仮想コンピュータ260は、パブリックIPアドレス174.129.20.63およびプライベートIPアドレス10.0.2.157に関連付けられ得る。したがって、図2Aでは、NAT-G/W220は、174.129.20.63を10.0.2.157へ/から変換するものとして示されている。クラウドプラットフォームプロバイダの(例えば、IaaSプロバイダの)ルーティングシステムは、NAT-G/W220のネットワークインターフェース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デバイスC240をパス208にインライン展開するとき、ネットワークインターフェースC1 241は、IPアドレス10.0.1.1を有し、パス208の1つの端末であるNAT-G/W220のネットワークインターフェースN2 222と同じサブネット、例えば/24サブネット内にあるIPアドレス、例えば10.0.1.6を用いて構成され得る。C1 241は、プロキシインターフェースとして指定され得、すなわち、IPアドレス10.0.1.6を有するC1 241は、仮想コンピュータ260(IPアドレス10.0.2.157を有する)のためのIPアドレスプロキシとして機能し得る。便宜上、仮想BITWデバイスのネットワークインターフェースによってプロキシされている仮想ホストコンピュータは、「ターゲット」と呼ばれることがある。NAM論理は、このプロキシ情報を用いて構成され得、プロキシ情報は、NAM論理によって使用されて、10.0.1.6~10.0.2.157までの伝送中のL3パケットのIPアドレスフィールド値をマッピング/修正し得る。同時に、ネットワークインターフェースC2 242は、ターゲット仮想コンピュータ260(IPアドレス10.0.2.157を有し、パス208の他の端末である)と同じサブネット、例えば/24サブネット内にあるIPアドレス、例えば10.0.2.7を有するように構成され得るが、C2を含むサブネットは、C1を含むサブネットとは異なり、重ならない。ネットワークインターフェースがIPアドレスを割り当てられた後、クラウドプラットフォームは、MACアドレスを生成してインターフェースに割り当て、クラウドのルーティングテーブルを(例えば、OSPFおよびARPを使用して)更新して、新たに展開された仮想BITWデバイス240をクラウドのルーティング構成に組み込む/統合することができる。クラウドプラットフォームは、ネットワークインターフェース間のルートを決定し得る、クラウド内の各ネットワークインターフェースに関連付けられたルーティングテーブルを作成および維持し得る。ルーティングテーブルが更新された後、NAM論理は、ルーティングテーブルおよびネットワーキングスタックから、次の情報のうちのいずれかを抽出し得る:ターゲット仮想コンピュータ260のIPおよびMACアドレス、C1 241インターフェース(例えば、ターゲット仮想コンピュータ260のプロキシ)のIPおよびMACアドレス、および/またはC1 241と同じサブネット内にあるNAT-G/W220ゲートウェイのネットワークインターフェースのMACアドレス。以下でさらに説明するように、この情報は、インターネットホストとターゲット仮想コンピュータ260との間の通信を含む特定の(または全ての)パケットが仮想BITWデバイス240を通過することを確実にするのを助けるために、NAM論理によって使用され得る。この情報はまた、高速パスパケット処理に従ってルーティングおよび転送情報に効率的にアクセスするために使用され得、そうでなければ低速パス(すなわち、OSのTCP/IPネットワーキングスタック)を介してアクセスされ得る。
図3を参照すると、ステップ3-2において、パブリック(例えば、インターネット)IPアドレスと仮想ホストコンピュータのプライベート(例えば、クラウド)IPアドレスとの間で変換することによってプライベートクラウド204をパブリックネットワーク102とインターフェースするNATゲートウェイは、ターゲット仮想ホストコンピュータのパブリックIPアドレスを仮想BITWデバイスのプロキシインターフェースのプライベートIPアドレスに変換するように再構成され得る。
例えば、図2Bを参照すると、NAT-G/W220は、コンピュータ260のパブリックIPアドレスである174.129.20.63を、ターゲットコンピュータ260のプライベートIPアドレスである10.0.2.157の代わりに、C1 241のプライベートIPアドレスである10.0.1.6に変換するように構成され得る。実際には、NAT-G/W220は、ターゲットコンピュータ260のプロキシとしてネットワークインターフェースC1を指定している(また、上で説明したように、仮想BITWのNAM論理は、同様に構成され得る)。
図3を参照すると、ステップ3-3において、クラウドプラットフォームのルートテーブルは、修正され/構成され/拡張され得、その結果、パスの端末間の仮想パスを横断するアウトバウンドパケット、例えば、端末仮想コンピュータによってソース/発信され、NATゲートウェイを介してインターネットホスト(または他のパブリックネットワークホスト)に宛てられたパケットが、端末仮想コンピュータから仮想BITWデバイスの非プロキシネットワークインターフェースにルーティングされ、次いで、仮想BITWデバイスのプロキシネットワークインターフェースからプライベートクラウドをパブリックネットワークとインターフェースするNATゲートウェイにルーティングされ得る。具体的には、ルートテーブルは、次のように修正され得る:(1)端末仮想コンピュータおよび仮想BITWデバイスの非プロキシインターフェースの両方に関連付けられたサブネットを離れるアウトバウンドパケットが、非プロキシインターフェースに向けて方向付けられる/転送される、および/または(2)仮想BITWのプロキシインターフェースおよびNATゲートウェイインターフェースの両方に関連付けられたサブネットを離れるアウトバウンドパケットが、NATゲートウェイインターフェースに向けて方向付けられる/転送される。
例えば、図2Bを参照すると、クラウドのルートテーブルへの拡張は、(1)サブネット10.0.1.0/24を出る全てのアウトバウンドパケットのためのインターネットゲートウェイとして、IPアドレス10.0.1.1を有するNAT-G/W220のN2 222インターフェースを識別するエントリを含み得る。(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論理コンポーネントによって、(仮想BITWのための)図4とは異なり得る。
NAMコンポーネントは、1つ以上の機能を提供し得る。これらの機能の例としては、以下のものが挙げられる:
NAM機能1:プロキシネットワークインターフェースに対して、プロキシIPアドレスとターゲット仮想コンピュータのIPアドレスとの間をマッピングする、
NAM機能2:仮想パス横断ポリシー/要件を施行するために、伝送中のL3パケットおよびL2フレームのIPおよびMACアドレスを構成する、および/または、
NAM機能3:プロキシ中に失われた可能性がある同じフロー内のパケットに関連付けられたルーティングおよび転送情報を回復し、迅速にアクセスするために、最近観察された伝送中のフレーム/パケットに関連付けられた情報を含む、パケットのフロー特性によってインデックス付けされ得る効率的なデータ構造を維持する。
上に列挙した3つの(3)NAM機能は全て、IPアドレスおよびMACアドレスを仮想BITWデバイスのネットワークインターフェース(図4のC1およびC2)に割り当てたいという欲求から生じ、一方、定義上、物理BITWデバイスのネットワークインターフェースは、L3-およびL2-トランスペアレントであり、したがって、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に転送され得、NAMは、パケットのソースIPアドレスをC1のIPアドレス10.0.1.6に変更するように構成され得る。次いで、C1は、パケットをその宛先に向けて転送し得る。パケットの宛先IPアドレスが、インターネット(または他のパブリックネットワーク)アドレスである場合、パケットは、パケットのL3ソースIPアドレスをC1のIPアドレス10.0.1.6からコンピュータ260のパブリックIPアドレス174.129.20.63に変換し得るNAT-G/W220を通過し得る。
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がないと仮定し、次いで、プロキシターゲット仮想コンピュータ(例えば、ロードバランサ)の背後の複数の仮想コンピュータのうちの1つによって発信され、インターネットホストに宛てられた要求パケットは、インターネット(または他のパブリックネットワーク)ホストに、プロキシロードバランサのIPアドレスを宛先として有する応答パケットを作成させ、送信させ得る。応答パケットを受信すると、ロードバランサは、どのプロキシされた仮想コンピュータが対応する要求をソースし/発信したかを知らない場合があり、したがって、ロードバランサは、プロキシされた仮想コンピュータのうちのいずれか1つを選択して、応答パケットを転送し得、したがって、選択されたプロキシされた仮想コンピュータが、対応する要求パケットの発信元/ソースではない場合があり得る。
上記の例示的なシナリオおよび他のシナリオを扱うために、NAMは、パケットの5タプル値(L3ソースおよび宛先IPアドレス、L4ソースおよび宛先ポート、L3プロトコルタイプ)、関連するフレームのMACアドレス、および/または方向を含む、最近観察されたL3パケットおよび関連するL2フレームに関する情報を記憶/キャッシュする効率的なデータ構造を含み得る。このようにして、NAMは、応答パケットが最終的に適切な仮想コンピュータによって受信されるように、対応する要求パケットを発信した仮想コンピュータのIPアドレスおよびMACアドレスを回復し、それに応じて応答パケットおよび関連するフレームを修正することによって、上記の例示的なシナリオ(および同様のシナリオ)を処理することができ得る。適切であり得る高速パス性能要件に合わせて、効率的なデータ構造、例えば、LRUキャッシュは、効率的な挿入、検索、および/または削除をサポートし得ることに留意されたい。
図5は、仮想パス208内の仮想BITWデバイス240を通過し得るインターネットホストHOST-0 110とプライベートクラウド内の仮想コンピュータ260との間の通信の例を示す。図5に表される例示的なネットワーク要素は、図2Bに表される例示的な要素および関連する構成に対応するが、図5の要素は、本明細書で説明される他の構成に対応し得る。また、例示的な目的のために、仮想BITWデバイス240が、図3のステップ3-1、3-2、および3-3に従って展開および構成されており、図3のステップ3-4によって表される動作モードにあると仮定する。
例として、仮想コンピュータ260は、DNS登録されたドメイン名www.example-web-server.netを有するウェブサーバアプリケーションを実行し得、HOST-0 110(例えば、パブリックIPアドレス74.65.150.95によってアドレス指定される)は、ウェブクライアント/ウェブブラウザアプリケーションを実行し得る。HOST-0 110上でウェブブラウザを動作させるユーザは、ブラウザを、URL https://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/W220は、パケットP0.0を受信することができる。NAT機能は、コンピュータ260のパブリックIPアドレス174.129.20.63を、仮想BITWデバイス240のネットワークインターフェースC1 241の(プライベート)IPアドレスであってもよく、ターゲット仮想コンピュータ260のプロキシIPアドレスであってもよい10.0.1.6に変換し得る。NAT-G/W220は、次のようにパケット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/W220のネットワークインターフェース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)10.0.2.157(仮想コンピュータ260のプライベートIPアドレス)に設定されたL3ソースIPアドレス、(2)74.65.150.95(HOST-0 110のIPアドレス)に設定されたL3宛先IPアドレス、(3)12:43:9d:b6:7b:f3(コンピュータ260のMACアドレス)に設定されたL2ソースMACアドレス、(4)12:a8:84:40:b6:39(仮想BITWデバイス240のネットワークインターフェースC2 242のMACアドレス)に設定されたL2宛先MACアドレス、を有する。パケットP1.0の宛先MACアドレスをC2 242のMACアドレスに設定することは、P1.0のL3宛先IPアドレスがC2 242のIPアドレスでない場合であっても、パケットP1.0が仮想BITWデバイス240を介して仮想パス208を横断することを確実にするのに役立ち得る。コンピュータ260は、仮想パス208上でHOST-0 110に向けてパケットP1.0を送信/転送することができる。
ステップ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/W220のネットワークインターフェースN2 222のMACアドレス)に変更される。パケットP1.1の宛先MACアドレスをN2 222のMACアドレスに設定することは、P1.1のL3宛先IPアドレスがN2 222のIPアドレスでない場合であっても、パケットP1.1がNAT-G/W220への仮想パス208を横断することを確実にするのに役立ち得る。NAMは、パケットP1.1をC1 241に向けて転送/パイプライン化することができる。(高速パス)パケット処理アプリケーションは、パケットP1.1を処理する。アプリケーションがパケットP1.1をドロップ/ブロックしないと仮定すると、ネットワークインターフェースC1 241は、仮想パス208上でHOST-0 110に向けてパケットP1.1を送信/転送することができる。
ステップ5-6において、NAT-G/W220は、仮想パス208の端末であるそのネットワークインターフェースN2 222を通してパケットP1.1を受信することができる。NAT-G/W220は、次のようにパケットP1.1をP1.2に変換することができる:(1)L3ソースIPアドレスが174.129.20.63(仮想コンピュータ260のパブリックIPアドレス)に変更される。ネットワークインターフェースN1 221は、インターネットを介してHOST-0 110に向けてパケットP.1.2を送信/転送する。
ステップ5-7において、HOST-0 110と仮想コンピュータ260(ウェブサイトwww.example-web-site.netをホストする)との間のTCP接続およびTLSトンネルが確立され得、(TLSで保護された)HTTPセッション(例えば、HTTPS)が行われ得る。HTTPセッションが完了すると、TLSトンネルおよびTCP接続を切断することができる。通信を構成する全てのパケットは、仮想パス208を横断し、両方向に仮想BITWデバイス240を通過することができる。
本明細書で説明されるか、または図のうちのいずれかに示される要素のいずれも、1つ以上のコンピューティングデバイスを使用して部分的にまたは完全に実装され得る。本明細書で説明される他の要素のうちのいずれかを実装するために使用され得る、例示的コンピューティングデバイス600のハードウェア要素が、図6に示されている。これらのハードウェア要素のうちのいずれか、および/またはコンピューティングデバイス600自体は、コンピューティングデバイス600の仮想バージョンにおいてエミュレートされ得る。コンピューティングデバイス600は、1つ以上のプロセッサ601を含み得、プロセッサ601は、コンピュータプログラムのコンピュータ可読命令を実行して、本明細書に説明される機能または他の動作のうちのいずれかを実施し得る。命令は、他のデータとともに、例えば、読み出し専用メモリ(read-only memory、ROM)および/またはランダムアクセスメモリ(random access memory、RAM)、ハードドライブ、磁気若しくは光ディスク、ユニバーサルシリアルバス(Universal Serial Bus、USB)ドライブ、並びに/または任意の他のタイプのコンピュータ可読媒体などのメモリを含み得る、記憶装置602に記憶され得る。コンピューティングデバイス600はまた、キーボード、マウス、音声入力、等などの1つ以上の入力デバイス605とインターフェースするための、および、ディスプレイ、スピーカ、プリンタ、等などの1つ以上の出力デバイス606とインターフェースするためのユーザインターフェース604を含み得る。コンピューティングデバイス600はまた、コンピューティングデバイス600の外部のネットワークの一部であり得る1つ以上の外部デバイスとインターフェースするためのネットワークインターフェース603を含み得る。図6は、例示的なハードウェア構成を示すが、コンピューティングデバイス600の要素のうちの1つ以上は、ソフトウェアとして、またはハードウェアおよびソフトウェアの組み合わせとして実装されてもよい。コンピューティングデバイス600のコンポーネントを追加、除去、結合、分割、等をするための変更を行うことができる。加えて、図6に示される要素は、本明細書に説明されるものなどの動作を実施するように構成されている基本的なコンピューティングデバイスおよびコンポーネントを使用して実装され得る。プロセッサ601および/または記憶装置602はまた、若しくは代替的に、1つ以上の集積回路(Integrated Circuit、IC)を通じて実装され得る。ICは、例えば、ROMに記憶された、および/またはIC内に組み込まれた、プログラミング命令または他のデータにアクセスするマイクロプロセッサであり得る。例えば、ICは、本明細書に説明される計算および他の動作専用のゲートおよび/または他の論理を有する特定用途向け集積回路(Application Specific Integrated Circuit、ASIC)を含み得る。ICは、ROMまたはRAMから読み出されたプログラミング命令の実行に基づいていくつかの動作を、ゲートまたは他の論理に組み込まれた他の動作とともに実施し得る。
本明細書で説明される機能およびステップは、本明細書で説明される1つ以上の機能を実施するために1つ以上のコンピューティングデバイス(例えば、コンピュータまたは他のデータ処理デバイス)によって実行される、1つ以上のプログラムモジュールなどの中のコンピュータ使用可能データまたはコンピュータ実行可能命令において具体化され得る。一般に、プログラムモジュールは、1つ以上のコンピューティングデバイスのうちの1つ以上のプロセッサによって実行されるとき、特定のタスクを実行する、または特定の抽象データタイプを実現するルーチン、プログラム、オブジェクト、コンポーネント、データ構造、および/または他の要素を含み得る。コンピュータ実行可能命令は、ハードディスク、光ディスク、リムーバブル記憶媒体、ソリッドステートメモリ、RAMなどのコンピュータ可読媒体に記憶され得る。理解されるように、プログラムモジュールの機能は、所望に応じて組み合わせられ得るか、または分散され得る。さらに、機能は、集積回路、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(field-programmable gate array、FPGA)などのファームウェア等価物またはハードウェア等価物において、全体的にまたは部分的に具体化できる。特定のデータ構造を使用して、本開示の1つ以上の態様をより効果的に実装し得、このようなデータ構造は、本明細書で説明されるコンピュータ実行可能命令およびコンピュータ使用可能データの範囲に収まると企図される。
必須ではないが、本明細書で説明される様々な態様は、コンピューティングデバイスの1つ以上のプロセッサによって実行されるとき、コンピューティングデバイスに本明細書で開示するステップを実施させる、方法、システム、装置、またはコンピュータ実行可能命令を記憶する1つ以上のコンピュータ可読媒体として具現化され得ることを当業者は理解するであろう。したがって、態様は、完全にハードウェア実施形態、完全にソフトウェア実施形態、完全にファームウェア実施形態、完全に仮想実施形態、またはソフトウェア態様、ハードウェア態様、仮想化態様、および/若しくはファームウェア態様を任意の組み合わせで組み合わせた実施形態の形態を取り得る。
本明細書で説明されるように、様々な方法および行為は、1つ以上の物理的に別個のまたは統合されたコンピューティングデバイス(一緒にコンピューティングデバイスを形成し得る)およびネットワークにわたって動作し得る。機能は、任意の様態で分散され得、または単一の物理コンピューティングデバイス若しくはコンピューティングデバイスの仮想バージョン(例えば、サーバ、クライアントコンピュータ、ユーザデバイス、仮想環境、など)内に配置され得る。
本開示の態様が、その例示的な実施形態に関して説明されてきた。添付の特許請求項の範囲および趣旨に収まる多数の他の実施形態、変形、および変更は当業者であれば、本開示を検討することにより想到するであろう。例えば、当業者は、例示的な図に示されたステップが、列挙された順序以外の順序で実行され得、示された1つ以上のステップは、任意選択的であり得ることを理解するであろう。

Claims (31)

  1. 方法であって、
    デバイスを仮想パスにプロビジョニングすることと、
    ネットワークアドレスマッパー(NAM)論理を、
    前記仮想パスを介して接続された仮想パス端末の複数のアドレスと、
    前記仮想パス端末のサブネットに対応するネットワークインターフェースの複数のアドレスと、
    プロキシ情報と、を用いて構成することと、
    少なくとも1つのパブリックインターネットプロトコル(IP)アドレスを、前記デバイスに関連付けられたプライベートIPアドレスに変換するようにネットワークアドレス変換(NAT)ゲートウェイを構成することと、
    前記デバイスおよび前記NATゲートウェイを通した仮想パスルーティングを施行するように構成された少なくとも1つのクラウドルーティングテーブルを提供することと、を含む、方法。
  2. 前記デバイスが、仮想バンプ・イン・ザ・ワイヤ(BITW)デバイスを含む、請求項1に記載の方法。
  3. 前記仮想パス端末の前記複数のアドレスが、
    前記端末の複数のインターネットプロトコル(IP)アドレスと、
    前記端末の複数の媒体アクセス制御(MAC)アドレスと、を含む、請求項1または請求項2に記載の方法。
  4. 前記ネットワークインターフェースの前記複数のアドレスが、
    前記ネットワークインターフェースの複数のインターネットプロトコル(IP)アドレスと、
    前記ネットワークインターフェースの複数の媒体アクセス制御(MAC)アドレスと、を含む、請求項1~請求項3のいずれか一項に記載の方法。
  5. 前記ネットワークインターフェースが、
    前記NATゲートウェイのネットワークインターフェースとインターフェースするように構成された第1のサブネットに対応する前記デバイスの第1のネットワークインターフェースと、
    ターゲットのネットワークインターフェースとインターフェースするように構成された第2のサブネットに対応する前記デバイスの第2のネットワークインターフェースと、を含み、
    前記第1のサブネットと前記第2のサブネットとが重ならない、請求項1~請求項4のいずれか一項に記載の方法。
  6. 前記仮想パスが、前記デバイスを通る高速パスを含み、前記デバイスが、前記NATゲートウェイから受信された少なくとも1つのパケットを前記高速パスを通してルーティングするように構成されている、請求項1~請求項5のいずれか一項に記載の方法。
  7. 前記クラウドルーティングテーブルが、前記デバイスおよび前記NATゲートウェイを通したアウトバウンド仮想パスルーティングを施行するように構成されている、請求項1~請求項6のいずれか一項に記載の方法。
  8. 前記NAM論理を前記構成することが、前記仮想パス端末の各々が前記ネットワークインターフェースのうちの1つに排他的にマッピングされるように前記NAM論理を構成することを含む、請求項1~請求項7のいずれか一項に記載の方法。
  9. 方法であって、
    ネットワークアドレス変換(NAT)ゲートウェイによって、パブリックインターネットプロトコル(IP)アドレスにアドレス指定されたパケットを受信することと、
    前記NATゲートウェイによって、前記パブリックIPアドレスを、仮想パスにプロビジョニングされたデバイスのプライベートIPアドレスに変換することであって、前記デバイスが、
    前記仮想パスを介して接続された仮想パス端末の複数のアドレスと、
    前記仮想パス端末のサブネットに対応するネットワークインターフェースの複数のアドレスと、
    プロキシ情報と、を用いて構成されたネットワークアドレスマッパー(NAM)論理を含む、変換することと、
    前記NATゲートウェイによって、前記パケットを前記プライベートIPアドレスに向けて送信することと、を含む、方法。
  10. 少なくとも1つのクラウドルーティングテーブルを使用して、前記NATゲートウェイおよび前記デバイスを介して前記仮想パスを通して前記パケットをルーティングすること、をさらに含む、請求項9に記載の方法。
  11. 前記デバイスが、仮想バンプ・イン・ザ・ワイヤ(BITW)デバイスを含む、請求項9または請求項10に記載の方法。
  12. 前記仮想パス端末の前記複数のアドレスが、
    前記端末の複数のインターネットプロトコル(IP)アドレスと、
    前記端末の複数の媒体アクセス制御(MAC)アドレスと、を含む、請求項9~請求項11のいずれか一項に記載の方法。
  13. 前記ネットワークインターフェースの前記複数のアドレスが、
    前記ネットワークインターフェースの複数のインターネットプロトコル(IP)アドレスと、
    前記ネットワークインターフェースの複数の媒体アクセス制御(MAC)アドレスと、を含む、請求項9~請求項12のいずれか一項に記載の方法。
  14. 前記ネットワークインターフェースが、
    前記NATゲートウェイのネットワークインターフェースとインターフェースするように構成された第1のサブネットに対応する前記デバイスの第1のネットワークインターフェースと、
    ターゲットのネットワークインターフェースとインターフェースするように構成された第2のサブネットに対応する前記デバイスの第2のネットワークインターフェースと、を含み、
    前記第1のサブネットと前記第2のサブネットとが重ならない、請求項9~請求項13のいずれか一項に記載の方法。
  15. 前記仮想パスが、前記デバイスを通る高速パスを含む、請求項9~請求項14のいずれか一項に記載の方法。
  16. 前記NAM論理が、前記仮想パス端末の各々が前記ネットワークインターフェースのうちの1つに排他的にマッピングされるように構成されている、請求項9~請求項15のいずれか一項に記載の方法。
  17. ネットワークアドレス変換(NAT)ゲートウェイによって実行されるとき、請求項9~請求項16のいずれか一項に記載のステップを実行するように前記NATゲートウェイを構成する命令を記憶する、コンピュータ可読媒体。
  18. ネットワークアドレス変換(NAT)ゲートウェイであって、
    1つ以上のプロセッサと、
    命令を記憶する1つ以上のコンピュータ可読媒体であって、前記命令が、前記1つ以上のプロセッサによって実行されるとき、前記NATゲートウェイに、
    パブリックインターネットプロトコル(IP)アドレスにアドレス指定されたパケットを受信することと、
    前記パブリックIPアドレスを、仮想パスにプロビジョニングされたデバイスのプライベートIPアドレスに変換することであって、前記デバイスが、
    前記仮想パスを介して接続された仮想パス端末の複数のアドレスと、
    前記仮想パス端末のサブネットに対応するネットワークインターフェースの複数のアドレスと、
    プロキシ情報と、を用いて構成されたネットワークアドレスマッパー(NAM)論理を含む、変換することと、
    前記プライベートIPアドレスに向けて前記パケットを送信することと、を行わせる、1つ以上のコンピュータ可読媒体と、を備える、ネットワークアドレス変換(NAT)ゲートウェイ。
  19. 前記命令が、前記1つ以上のプロセッサによって実行されるとき、前記NATゲートウェイに、少なくとも1つのクラウドルーティングテーブルを使用して、前記NATゲートウェイおよび前記デバイスを介した前記仮想パスを通る前記パケットのルーティングをさらに施行させる、請求項18に記載のNATゲートウェイ。
  20. 前記仮想パス端末の前記複数のアドレスが、
    前記端末の複数のインターネットプロトコル(IP)アドレスと、
    前記端末の複数の媒体アクセス制御(MAC)アドレスと、を含む、請求項18または請求項19に記載のNATゲートウェイ。
  21. 前記ネットワークインターフェースの前記複数のアドレスが、
    前記ネットワークインターフェースの複数のインターネットプロトコル(IP)アドレスと、
    前記ネットワークインターフェースの複数の媒体アクセス制御(MAC)アドレスと、を含む、請求項18~請求項20のいずれか一項に記載のNATゲートウェイ。
  22. 前記ネットワークインターフェースが、
    前記NATゲートウェイのネットワークインターフェースとインターフェースするように構成された第1のサブネットに対応する前記デバイスの第1のネットワークインターフェースと、
    ターゲットのネットワークインターフェースとインターフェースするように構成された第2のサブネットに対応する前記デバイスの第2のネットワークインターフェースと、を含み、
    前記第1のサブネットと前記第2のサブネットとが重ならない、請求項18~請求項21のいずれか一項に記載のNATゲートウェイ。
  23. 前記NAM論理が、前記仮想パス端末の各々が前記ネットワークインターフェースのうちの1つに排他的にマッピングされるように構成されている、請求項18~請求項22のいずれか一項に記載のNATゲートウェイ。
  24. システムであって、
    ネットワークアドレス変換(NAT)ゲートウェイであって、
    1つ以上のプロセッサと、
    命令を記憶する1つ以上のコンピュータ可読媒体と、を備える、ネットワークアドレス変換(NAT)ゲートウェイと、
    仮想パスにプロビジョニングされ、プライベートインターネットプロトコル(IP)アドレスを有するデバイスであって、前記デバイスが、
    前記仮想パスを介して接続された仮想パス端末の複数のアドレスと、
    前記仮想パス端末のサブネットに対応するネットワークインターフェースの複数のアドレスと、
    プロキシ情報と、を用いて構成されたネットワークアドレスマッパー(NAM)論理を含む、デバイスと、を備え、
    前記命令が、前記1つ以上のプロセッサによって実行されるときに、前記NATゲートウェイに、
    パブリックインターネットプロトコル(IP)アドレスにアドレス指定されたパケットを受信することと、
    前記パブリックIPアドレスを前記デバイスの前記プライベートIPアドレスに変換することと、
    前記デバイスの前記プライベートIPアドレスに向けて前記パケットを送信することと、を行わせる、システム。
  25. 前記命令が、前記1つ以上のプロセッサによって実行されるとき、前記NATゲートウェイに、少なくとも1つのクラウドルーティングテーブルを使用して、前記NATゲートウェイおよび前記デバイスを介した前記仮想パスを通る前記パケットのルーティングをさらに施行させる、請求項24に記載のシステム。
  26. 前記デバイスが、仮想バンプ・イン・ザ・ワイヤ(BITW)デバイスを含む、請求項24または請求項25に記載のシステム。
  27. 前記仮想パス端末の前記複数のアドレスが、
    前記端末の複数のインターネットプロトコル(IP)アドレスと、
    前記端末の複数の媒体アクセス制御(MAC)アドレスと、を含む、請求項24~請求項26のいずれか一項に記載のシステム。
  28. 前記ネットワークインターフェースの前記複数のアドレスが、
    前記ネットワークインターフェースの複数のインターネットプロトコル(IP)アドレスと、
    前記ネットワークインターフェースの複数の媒体アクセス制御(MAC)アドレスと、を含む、請求項24~請求項27のいずれか一項に記載のシステム。
  29. 前記ネットワークインターフェースが、
    前記NATゲートウェイのネットワークインターフェースとインターフェースするように構成された第1のサブネットに対応する前記デバイスの第1のネットワークインターフェースと、
    ターゲットのネットワークインターフェースとインターフェースするように構成された第2のサブネットに対応する前記デバイスの第2のネットワークインターフェースと、を含み、
    前記第1のサブネットと前記第2のサブネットとが重ならない、請求項24~請求項28のいずれか一項に記載のシステム。
  30. 前記仮想パスが、前記デバイスを通る高速パスを含む、請求項24~請求項29のいずれか一項に記載のシステム。
  31. 前記NAM論理が、前記仮想パス端末の各々が前記ネットワークインターフェースのうちの1つに排他的にマッピングされるように構成されている、請求項24~請求項30のいずれか一項に記載のシステム。
JP2023513332A 2020-08-27 2021-08-26 インライン・トランスペアレント・コンピュータ・ネットワーキングデバイスの仮想化のための方法およびシステム Pending JP2023546775A (ja)

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 US11316823B2 (en) 2020-08-27 2021-08-05 Methods and systems for efficient virtualization of inline transparent computer networking devices
US17/395,120 2021-08-05
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
JP2023546775A true JP2023546775A (ja) 2023-11-08

Family

ID=78049784

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2023513332A Pending JP2023546775A (ja) 2020-08-27 2021-08-26 インライン・トランスペアレント・コンピュータ・ネットワーキングデバイスの仮想化のための方法およびシステム

Country Status (8)

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

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 (57)

* 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
ATE360937T1 (de) 1999-06-10 2007-05-15 Alcatel Internetworking Inc System und verfahren zur selektiven ldap- datenbank synchronisierung
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
EP1338130B1 (en) 2000-11-30 2006-11-02 Lancope, 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
CN100472506C (zh) * 2001-06-15 2009-03-25 先进网络科技私人有限公司 具有唯一标识的计算机网络以及为节点提供服务的nat相关方法
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
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
AU2014244137B2 (en) 2013-03-14 2018-12-06 Threater, Inc. Internet protocol threat prevention
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
EP3143733B1 (en) 2014-05-13 2018-12-05 Telefonaktiebolaget LM Ericsson (publ) Virtual flow network in a cloud environment
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
EP3479553B1 (en) * 2016-07-01 2020-04-29 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
US11212356B2 (en) * 2020-04-06 2021-12-28 Vmware, Inc. Providing services at the edge of a network using selected virtual tunnel interfaces
US11310098B2 (en) * 2020-06-09 2022-04-19 Cisco Technology, Inc. Diagnosing intermediary network nodes
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
US11652736B2 (en) * 2020-06-30 2023-05-16 Amazon Technologies, Inc. Transmitting network traffic to a pool of redundant network appliances
US11088948B1 (en) 2020-09-25 2021-08-10 Amazon Technologies, Inc. Correlating network flows in a routing service for full-proxy network appliances
US11310149B1 (en) 2020-09-25 2022-04-19 Amazon Technologies, Inc. Routing bidirectional flows in a stateless routing service

Also Published As

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

Similar Documents

Publication Publication Date Title
US10645056B2 (en) Source-dependent address resolution
CN112470436B (zh) 用于提供多云连通性的系统、方法、以及计算机可读介质
US9979605B2 (en) Virtualization mapping
US9979694B2 (en) Managing communications between virtual computing nodes in a substrate network
US20190190770A1 (en) Enhanced Network Virtualization using Metadata in Encapsulation Header
EP2859444B1 (en) Elastic enforcement layer for cloud security using sdn
US8239572B1 (en) Custom routing decisions
KR101371993B1 (ko) 가상화 네트워크 인프라구조를 갖는 투명 클라우드 컴퓨팅을 위한 방법 및 장치
US8988983B1 (en) Managing failure behavior for computing nodes of provided computer networks
US9282027B1 (en) Managing use of alternative intermediate destination computing nodes for provided computer networks
US9356860B1 (en) Managing external communications for provided computer networks
US11269673B2 (en) Client-defined rules in provider network environments
US20150124823A1 (en) Tenant dhcp in an overlay network
US20150372840A1 (en) Servicing packets in a virtual network and a software-defined network (sdn)
US20130010797A1 (en) Custom routing decisions
CN112671938B (zh) 业务服务提供方法及系统、远端加速网关
AU2024220182A1 (en) Methods and systems for efficient virtualization of inline transparent computer networking devices
US20220209989A9 (en) HANDLING PACKETS TRAVELLING FROM LOGICAL SERVICE ROUTERS (SRs) FOR ACTIVE-ACTIVE STATEFUL SERVICE INSERTION
CN116457756A (zh) 用于内联透明计算机网络设备的高效虚拟化的方法和系统
Rangisetti Importance of Virtual Networks in Cloud and Telecom Networks

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20230815

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20240823

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240827