JP5837989B2 - コントローラでネットワークハードウェアアドレス要求を管理するためのシステム及び方法 - Google Patents

コントローラでネットワークハードウェアアドレス要求を管理するためのシステム及び方法 Download PDF

Info

Publication number
JP5837989B2
JP5837989B2 JP2014534662A JP2014534662A JP5837989B2 JP 5837989 B2 JP5837989 B2 JP 5837989B2 JP 2014534662 A JP2014534662 A JP 2014534662A JP 2014534662 A JP2014534662 A JP 2014534662A JP 5837989 B2 JP5837989 B2 JP 5837989B2
Authority
JP
Japan
Prior art keywords
network
packet
controller
end host
switch
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.)
Expired - Fee Related
Application number
JP2014534662A
Other languages
English (en)
Other versions
JP2014531158A (ja
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 JP2014531158A publication Critical patent/JP2014531158A/ja
Application granted granted Critical
Publication of JP5837989B2 publication Critical patent/JP5837989B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/04Network management architectures or arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/12Discovery or management of network topologies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/34Signalling channels for network management communication
    • H04L41/342Signalling channels for network management communication between virtual entities, e.g. orchestrators, SDN or NFV entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/42Centralised routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/66Layer 2 routing, e.g. in Ethernet based MAN's
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3009Header conversion, routing tables or routing tags
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/10Mapping addresses of different types
    • H04L61/103Mapping addresses of different types across network layers, e.g. resolution of network layer into physical layer addresses or address resolution protocol [ARP]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks

Description

本発明は、通信ネットワークに関するもので、より詳細には、コントローラを使用してネットワークのハードウェアアドレス発見を管理することに関する。
本出願は、2011年10月4日に出願された米国特許出願第13/252,966号の優先権を主張するもので、この出願は、参考としてここにそのまま援用される。
インターネット、及びインターネットに接続されたローカルデータネットワークのようなパケットベースのネットワークは、ネットワークスイッチを備えている。ネットワークスイッチは、パケットソースからパケット行先へパケットを転送するのに使用される。パケットは、時々、フレームとも称される。
ある売主のスイッチを、別の売主の装置を使用してコントロールすることは困難であるか又は不可能である。これは、ある売主のスイッチ装置が、別の売主のスイッチ装置とは異なるオペレーティングシステム及び1組のコントロール手順を使用するからである。異なる形式のスイッチプラットホームをコントロールすることに関連した難題に対処するために、クロスプラットホームプロトコルが開発された。それらのプロトコルは、互換性のないスイッチを集中的にコントロールできるようにする。
ネットワークのスイッチにクロスプラットホームコントローラクライアントを含ませることができる。コントローラクライアントは、ネットワーク経路を経て、それに対応するコントローラサーバーと通信することができる。コントローラクライアントは、種々のスイッチハードウェアにおいて実施できるので、単一のコントローラで、互換性のないスイッチ装置をコントロールすることができる。
ネットワークスイッチに結合されるエンドホストは、ネットワークアドレス及びハードウェアアドレスを有する。第1のエンドホストは、第2のエンドホストのネットワークアドレス及びハードウェアアドレスを識別するヘッダフィールドをもつネットワークパケットを送信することにより、第2のエンドホストと通信する。あるシナリオでは、エンドホストは、他のエンドホストのネットワークアドレスにはアクセスするが、それらのハードウェアアドレスにはアクセスしない。第2のエンドホストのハードウェアアドレスを発見するために、第1のエンドホストは、第2のエンドホストをそのネットワークアドレスで識別するアドレス解決プロトコル(ARP)要求と、第2のエンドホストがそのハードウェアアドレスで応答する要求とでネットワークが溢れるようにする。
ARP要求を送信するためにネットワークが溢れることは、不必要なネットワークトラフィックでネットワークに望ましからぬ負荷がかかる。というのは、ARP要求が多数のエンドホストへ送信されて、それらの要求が無視されるからである(例えば、それらのエンドホストは、ARP要求で識別されるネットワークアドレスに関連していないからである)。不必要なARP要求を転送することは、ネットワークの性能に影響する。それ故、ネットワークにおけるエンドホストのアドレス発見を遂行するための改良された構成体を提供できることが望まれる。
ネットワークは、コントローラによってコントロールされるクライアントスイッチと、コントローラによってコントロールされない非クライアントスイッチとを備えている。クライアントスイッチは、少なくとも1つの非クライアントスイッチにより分離されたグループに編成される。コントローラは、ネットワークにおいてクライアントスイッチにより受け取られたハードウェアアドレス要求を満足させる。ハードウェアアドレス要求は、スイッチに結合されたソースエンドホストから送られる。ソースエンドホストから送られたハードウェアアドレス要求は、行先エンドホストのハードウェアアドレス(例えば、メディアアクセスコントロールアドレス、イーサネット(登録商標)アドレス、又は他のハードウェアアドレス)を要求する。
クライアントスイッチで受け取られるネットワークパケットは、クライアントスイッチによりコントローラへ転送される。コントローラサーバーは、パケットのパケットヘッダフィールドからパケット情報を検索して、ネットワークパケットがARP要求パケットであるかどうか決定する。ネットワークパケットがARP要求パケットであるとの決定に応答して、コントローラは、ネットワークトポロジー情報を使用して、ハードウェアアドレス要求をどのように処理するか決定する。コントローラは、要求されたハードウェアアドレスをエンドホストアドレスのデータベースから検索する。データベースは、ネットワークを経て流れるネットワークパケットから検索されたアドレス情報で更新される。
コントローラが、エンドホストアドレスのデータベースからソースエンドホストにより要求された行先エンドホストのハードウェアアドレスを検索できる場合には、コントローラは、要求されたハードウェアアドレスを含む応答パケットをソースエンドホストに与える。コントローラが要求されたハードウェアアドレスを検索できない場合には、コントローラは、行先エンドホストのハードウェアアドレスを発見し及び/又はソースエンドホストと行先エンドホストとの間のパケット転送経路を発見するために、変更された要求パケットを形成する。
本発明の更に別の特徴、その特性及び種々の効果は、添付図面及び以下の詳細な説明から明らかとなろう。
本発明の一実施形態によるコントローラ及びパケット転送システムを備えたネットワークを例示する図である。 本発明の一実施形態によりパケット処理エンジンを実行するマイクロプロセッサベースの装置を使用してパケット転送システムをどのように実施するか示す図である。 本発明の一実施形態によるパケット転送システム及びその関連コントローラを示す図で、パケット転送システムはコントロールユニット及びその関連スイッチング集積回路を含むものである。 本発明の一実施形態によりパケット転送システムがマスター及びスレーブコントローラを有し、且つコントローラサーバーがリモートコンピューティング装置又はパケット転送システムのラインカードにおいて実施されるネットワークを示す図である。 本発明の一実施形態によりネットワーク接続を経て通信するコントローラサーバー及びコントローラクライアントを示す図である。 本発明の一実施形態によりパケット処理システムによって使用される形式のフローテーブルを示す図である。 本発明の一実施形態によりパケット処理システムによって使用される形式の例示的フローテーブルを示す図で、フローテーブルのフローテーブルエントリーに基づいて遂行される3つの例示的形式のパケット転送を示す図である。 本発明の一実施形態により特定のアドレスをもつパケットがスイッチの第3の物理的ポートへ転送される例示的フローテーブルを示す図である。 本発明の一実施形態により特定のアドレスをもつパケットがスイッチの第5の物理的ポートへ転送される例示的フローテーブルを示す図である。 本発明の一実施形態によるパケット処理システムでパケットを処理するのに含まれる例示的ステップを示すフローチャートである。 本発明の一実施形態により第1のエンドホストがスイッチを経て第2のエンドホストと通信する例示的ネットワークを示す図である。 本発明の一実施形態により第2のエンドホストのハードウェアアドレスを発見するために第1のエンドホストにより送られるARP要求を例示する図である。 本発明の一実施形態によるユニキャストARP要求を例示する図である。 本発明の一実施形態によるコントローラ発生のARP応答を例示する図である。 本発明の一実施形態により第1のエンドホストが中間の非クライアントスイッチを経てクライアントスイッチに結合されるネットワークを例示する図である。 本発明の一実施形態により予約されたハードウェアソースアドレスを使用してコントローラ発生ARP応答を例示する図である。 本発明の一実施形態によりネットワークトポロジー情報に基づきネットワークトラフィックを減少するためにコントローラにより遂行されるステップを例示するフローチャートである。 本発明の一実施形態によりネットワークトポロジー情報に基づきARPパケットを処理するためにコントローラにより遂行されるステップを例示するフローチャートである。
インターネット、及びインターネットに結合された地域的ネットワークのようなネットワークは、パケットベーススイッチに依存する。ここでネットワークスイッチとも称されるそれらのスイッチ、パケット処理システム、或いはパケット転送システムは、アドレス情報を基づいてパケットを転送する。このように、パケットソースにより送信されるデータパケットは、パケット行先へ配送される。ネットワーク用語では、パケットソース及び行先は、時々、エンドホストとも称される。エンドホストは、例えは、パーソナルコンピュータ、サーバー、及び他のコンピューティング装置である。
ネットワークスイッチの範囲は、能力という点で、比較的小さなイーサネットスイッチ及びワイヤレスアクセスポイントから、複数のラインカード、冗長電源、及びスーパーバイザー能力を含む大きなラックベースシステムまでである。ネットワークが複数の売主からの装置を備えることは、珍しくない。異なる売主からのネットワークスイッチは、パケット転送ネットワークを形成するように相互接続できるが、それらのオペレーティングシステムとコントロールプロトコルとの間には互換性がないために集中的に管理することが困難である。
これらの潜在的な非互換性は、共通のクロスプラットホームコントロールモジュール(ここでは、時々、コントローラクライアントとも称される)を各ネットワークスイッチに合体することにより克服することができる。集中化クロスプラットホームコントローラサーバーが各ネットワークリンクを経て各コントロールクライアントと相互作用する。クロスプラットホームコントローラサーバー及びそれに対応するコントローラクライアントを使用することで、潜在的に異種のネットワークスイッチ装置を集中的に管理できるようにする。
一例として時々ここに述べる1つの例示的構成では、図1のコントローラサーバー18のような1つ以上のコントローラサーバーにより集中的コントロールが提供される。コントローラサーバー18は、スタンドアローンコンピュータ、コンピュータのクラスター、複数の位置に分散された1組のコンピュータ、ネットワークスイッチ内に埋め込まれるハードウェア、又は他の適当なコンピューティング装置12において実施される。コントローラサーバー18は、単一コンピュータ上の単一プロセスとして実行されるか、又は冗長性のために多数のホストにわたって分散される。分散型構成の使用は、予期せぬネットワーク区画(例えば、2つのキャンパス間のネットワークリンクが破壊された状態)に対してネットワーク10に融通性を与える上で役立つ。
分散型コントローラ構成では、コントローラノードは、コントローラ内プロトコルを使用して情報を交換する。例えば、新たなエンドホストが、第1のコントローラノードにしか接続されていないネットワークハードウェア(例えば、スイッチ)に接続される場合には、その第1のコントローラノードは、コントローラ内プロトコルを使用して、他のコントローラノードに新たなエンドホストの存在を通知する。要望があれば、スイッチ又は他のネットワークコンポーネントが複数のコントローラノードに接続される。単一のコントローラサーバーを使用して関連スイッチのネットワークをコントロールする構成が、ここでは、一例として時々説明される。
図1のコントローラサーバー18は、ネットワーク10のトポロジーに関する情報を収集する。例えば、コントローラサーバー18は、クライアントスイッチ間のネットワーク接続を発見するためにネットワーク全体にわたり「リンクレイヤ発見プロトコル(LLDP)」プローブパケットを送信する。別の例として、コントローラサーバー18は、スイッチ能力情報をコントローラサーバー18へ送信し及び/又はネットワークトラフィックを監視して、ネットワークのスイッチに結合されたエンドホストのデータベースを維持するように、クライアントスイッチに命令する。コントローラサーバー18は、ネットワークトポロジー情報、及びネットワーク装置の能力に関する情報を使用して、ネットワーク流れるパケットのための適当な経路を決定する。適当な経路が識別されると、コントローラサーバー18は、それに対応する設定データをネットワーク10のハードウェアへ送信して、パケットが正しい経路に流れるように保証する。そのようなネットワーク構成オペレーションは、システムセットアップオペレーション中に遂行されるか、バックグランドで連続的に遂行されるか、又は新たなデータパケット(例えば、既存の経路が確立されていないパケット)の出現に応答して遂行される。
コントローラサーバー18は、ネットワーク構成ルール20を実施するのに使用される。このルール20は、種々のネットワークエンティティに対してどのサービスが利用できるか明示する。一例として、ルール20は、ネットワーク10のどのユーザ(又はユーザの形式)が特定のサーバーにアクセスできるか明示する。ルール20は、例えば、コンピューティング装置12のデータベースに維持される。
コントローラサーバー18、及び各ネットワークスイッチ14のコントローラクライアント30は、ネットワークプロトコルスタックを使用して、ネットワークリンク16を経て通信する。
各スイッチ(パケット転送システム)14は、入力−出力ポート34を有する。ケーブルを使用して、装置の断片がポート34に接続される。例えば、パーソナルコンピュータ、ウェブサーバー及び他のコンピューティング装置のようなエンドホストがポート34にプラグインされる。又、ポート34は、1つのスイッチ14を他のスイッチ14に接続するのにも使用される。
パケット処理回路32は、1つのポート34から別のポート34へパケットを転送するのに使用されると共に、到来するパケットに対して他の適当なアクションを遂行するのにも使用される。パケット処理回路32は、専用高速スイッチ回路のような1つ以上の集積回路を使用して実施され、そしてハードウェアデータ経路として働く。要望があれば、コントロールユニット24において実行されるパケット処理ソフトウェア26は、ソフトウェアデータ経路を実施するのに使用される。
コントロールユニット24は、コントロールソフトウェアを記憶し実行するための処理及びメモリ回路(例えば、1つ以上のマイクロプロセッサ、メモリチップ、及び他のコントロール回路)を含む。例えば、コントロールユニット24は、パケット処理ソフトウェア26のようなソフトウェアを記憶し及び実行し、フローテーブル28を記憶し、そしてコントローラクライアント30のオペレーションをサポートするのに使用される。
コントローラクライアント30及びコントローラサーバー18は、OpenFlowプロトコル(例えば、OpenFlowスイッチ仕様書バージョン1.0.0を参照)のようなネットワークスイッチプロトコルに準拠する。コントローラクライアント30の中の1つ以上のクライアントは、他のプロトコル(例えば、簡単なネットワークマネージメントプロトコル)にも準拠する。OpenFlowプロトコル或いは他の適当なプロトコルを使用して、コントローラサーバー18は、入力−出力ポート34から到来するパケットをスイッチ14がどのように処理するか決定するデータをコントローラクライアント30に与える。
1つの適当な構成では、コントローラサーバー18からのフローテーブルデータは、フローテーブル28のようなフローテーブルに記憶される。フローテーブル28のエントリーは、スイッチ14(例えば、パケット処理回路32及び/又はパケット処理ソフトウェア26のファンクション)を構成するのに使用される。典型的なシナリオにおいて、フローテーブル28は、フローテーブルエントリーのためのキャッシュ記憶装置として働き、そしてそれらフローテーブルエントリーの対応するバージョンが、パケット処理回路32の回路により維持される設定内に埋め込まれる。しかしながら、これは、単なる例示に過ぎない。フローテーブル28は、スイッチ14のフローテーブルエントリーに対して排他的記憶装置として働いてもよいし、又はパケット処理回路32内のフローテーブル記憶リソースのために省略されてもよい。一般的に、フローテーブルエントリーは、適当なデータ構造(例えば、1つ以上のテーブル、リスト、等)を使用して記憶される。明瞭化のために、フローテーブル28のデータ(コントロールユニット24のデータベースに維持されるか又はパケット処理回路32の構成内に埋め込まれる)は、ここでは、フローテーブルエントリー(例えば、フローテーブル28の行)を形成するものと称される。
到来するパケットをスイッチ14がどのように処理すべきか決定するデータを記憶するフローテーブル28の例は、単なる例示に過ぎない。ネットワークパケットをどのように転送すべきかの決定を行う上でパケット転送システム14の助けとなるように任意のパケット転送決定エンジンが使用される。例えば、パケット転送決定エンジン28は、ネットワークパケットの属性に基づいて(例えば、ネットワークプロトコルヘッダに基づいて)ネットワークパケットを所定のポートへ転送するようにパケット転送システム14に命令する。
要望があれば、スイッチ14は、コントロールソフトウェアを実行し且つ図2のパケット処理回路32を省略する汎用処理プラットホームを使用して実施されてもよい。この形式の構成が図2に示されている。図2の例示的構成に示されたように、コンピューティング装置12のコントローラサーバー18は、ネットワークリンク16を経てスイッチ(パケット転送システム)14のコントローラクライアント30と通信する。コントローラサーバー18は、例えば、コントローラクライアント30へフローテーブルエントリーを搬送し、それらは、フローテーブル28に維持される。パケット処理ソフトウェア40は、ネットワークインターフェイス38を使用して、パケット(例えば、ポート34を使用して送信及び受信されるパケット)を転送し、さもなければ、処理する。ネットワークインターフェイス38は、(一例として)スイッチ14のシステムボードにプラグインされる1つ以上のネットワークインターフェイスカードを使用して実施される。
図1のネットワークスイッチ14のようなネットワークスイッチは、1つ以上の高速スイッチング集積回路(スイッチIC)に結合されるコントロール回路を使用して実施される。この形式の構成が図3に示されている。図3に示すように、コンピューティング装置12のコントローラサーバー18は、経路16を経てネットワークスイッチ14と通信する。スイッチ14は、処理回路24と、スイッチIC32−1・・・スイッチIC32−Nのような1つ以上の関連スイッチIC32とを備えている。コントロール回路24は、例えば、マイクロプロセッサ及びメモリをベースとする。スイッチIC32−1・・・32−Nは、高い速度でパケットスイッチングタスクを取り扱うことのできる専用スイッチング回路である。一例として、コントロール回路24は、500MHzマイクロプロセッサをベースとし、そしてスイッチIC32−1・・・32−Nは、入力−出力ポート34の48からのデータを取り扱うことができ、その各々は、(一例として)1−10Gbpsの関連データレートを有する。
図1のネットワークスイッチ14を実施するのに使用される別の例示的スイッチアーキテクチャーが図4に示されている。図4の例では、スイッチ(パケット転送システム)14は、プロセッサ24−1のようなマスタープロセッサと、スレーブプロセッサ24−2のような1つ以上の関連スレーブプロセッサとを含む。スイッチIC32と、プロセッサ24−2のようなスレーブプロセッサは、ラインカード48のようなラインカードにおいて実施される。ラインカード50のような1つ以上のラインカードは、処理回路(例えば、マイクロプロセッサ及びメモリ)を含む。ラインカード48及び50は、バックプレーン52を使用して相互接続される。
図4に示す形式の構成では、コントローラサーバーは、ラインカードの処理リソースを使用して実施される。例えば、コントローラサーバーは、図4にコントローラサーバー18−Bで示されたように、ラインカード50において実施される。要望があれば、コントローラサーバーは、コンピューティング装置12において実施されてもよい(例えば、図4のコントローラサーバー18−Aとして)。コントローラサーバー18−A又はコントローラサーバー18−Bは、プロセッサ24−1及び/又は24−2のようなプロセッサを使用して実施されるコントローラクライアント30と通信する。コントローラサーバー18−Aとコントローラクライアントとの間の通信は、ネットワーク接続16を経て行われる。コントローラサーバー18−Bとコントローラクライアントとの間の通信は、バックプレーン52を経て(例えば、TCP/IPのようなプロトコルを使用してネットワーク接続を経て)行われる。
図5に示すように、コントローラサーバー18及びコントローラクライアント30は、ネットワークプロトコルスタック58及びネットワークプロトコルスタック60のようなネットワークプロトコルスタックを使用してネットワーク経路66を経て通信する。それらのスタック58及び60は、例えば、Linux TCP/IPスタック又はVxWorksオペレーティングシステムにおけるTCP/IPスタックである(一例として)。経路66は、例えば、スイッチ14と外部装置との間のネットワーク接続をサポートする経路(例えば、図1のネットワーク経路16)でもよいし、又は図4に示すように、スイッチ14のバックプレーン52におけるネットワーク接続をサポートする経路でもよい。経路66が経路16のようなネットワーク経路である構成が、ここでは、一例として説明される。
コントロールプロトコルスタック56は、ネットワークプロトコルスタック58とコントロールソフトウェア54との間のインターフェイスとして働く。コントロールプロトコルスタック62は、ネットワークプロトコルスタック60とコントロールソフトウェア64との間のインターフェイスとして働く。オペレーション中に、コントローラサーバー18がコントローラクライアント30と通信するときに、コントロールプロトコルスタック56は、コントロールプロトコルメッセージ(例えば、ポートをアクチベートするか、又は特定のフローテーブルエントリーをフローテーブル28へインストールするためのコントロールメッセージ)を発生してパースする。図5に示す形式の構成を使用することにより、コントローラサーバー18とコントローラクライアント30との間のリンクを経てネットワーク接続が形成される。コントローラサーバー18及びコントローラクライアント30は、インターネットプロトコル(IP)ネットワーク接続を経て送信コントロールプロコル(TCP)又はユーザデータグラムプロトコル(UDP)を使用して通信することができる。コントローラサーバー18とコントローラクライアント30との間でネットワーク接続を経て通信するときに使用されるコントロールプロトコルは、例えば、SNMP及びOpenFlowプロトコルスタックバージョン1.0.0を含む(一例として)。
フローテーブル28は、複数のフィールド(ヘッダフィールドとも称される)を有するフローテーブルエントリー(例えば、テーブルの行)を含む。スイッチ14により受信されたパケットのフィールドは、フローテーブルのフィールドと比較される。各フローテーブルエントリーには、アクションが関連している。パケットのフィールドとフローテーブルエントリーのフィールドとが一致するときには、そのフローテーブルエントリーに対応するアクションが行われる。
例示的フローテーブルが図6に示されている。図6Aに示すように、テーブル28は、フローテーブルエントリー(行)68を有する。各フローテーブルエントリーは、ヘッダ70、アクション72、及び統計値74に関連している。ヘッダ70は、各々、複数のヘッダフィールド76を含む。各フローテーブルエントリーのアクションは、パケットのフィールドと、そのフローテーブルエントリーのヘッダの対応フィールドとの間の一致が検出されたときに、スイッチ14がパケットに対してどんなアクションを遂行するか指示する。スイッチ14は、スイッチ14の遂行に関する情報を得ることが望まれるときにコントローラサーバー18により要求される統計データ(カウンタ値)をフローテーブル28の統計部分に維持する。
ヘッダ70のヘッダフィールド(及び各到来パケットの対応フィールド)は、次のフィールドを含む。進入ポート(即ち、パケットが受け取られるところのスイッチ14の物理的ポートのアイデンティティ)、イーサネットソースアドレス、イーサネット行先アドレス、イーサネット形式、バーチャルローカルエリアネットワーク(VLAN)id、VLANプライオリティ、IPソースアドレス、IP行先アドレス、IPプロトコル、IP ToS(サービスの形式)ビット、トランスポートソースポート/インターネットコントロールメッセージプロトコル(ICMP)形式(ソースTCPポートとも称される)、及びトランスポート行先ポート/ICMPコード(行先TCPポートとも称される)。必要に応じて、他のフィールドも使用される。例えば、ネットワークプロトコルフィールド及びプロトコルポートフィールドが使用される。
各フローテーブルエントリー(フローエントリー)には、一致するパケットをスイッチがどのように取り扱うか指令するゼロ以上のアクションが関連される。転送アクションが存在しない場合には、パケットがドロップされるのが好ましい。パケットフィールドとフローテーブルエントリーのヘッダフィールドとの間の一致が検出されたときにスイッチ14により行われるアクションは、次のアクションを含む。転送(例えば、到来するインターフェイスを含まない全てのインターフェイスを経てパケットを送出するALL;パケットをカプセル化してコントローラサーバーへ送るCONTROLLER;スイッチのローカルネットワーキングスタックへパケットを送るLOCAL;フローテーブル28におけるアクションを遂行するTABLE;入力ポートからパケットを送出するIN_PORT;例えば、慣習的なレベル2、VLAN、及びレベル3処理を使用してスイッチによりサポートされるデフォールト転送経路でパケットを処理するNORMAL;及び到来するインターフェイスを含まない最小スパンツリーに沿ってパケットを溢れさせるFLOOD)。スイッチ14により行われる付加的なアクションは、次のものを含む。ポートにアタッチされたキューを通してパケットを転送するエンキューアクション、及びドロップアクション(例えば、特定のアクションを伴わずにフローテーブルエントリーに一致するパケットをドロップする)。変更フィールドアクションもスイッチ14によりサポートされる。行われる変更フィールドアクションは、例えば、セットVLAN ID、セットVLANプライオリティ、ストリップVLANヘッダ、変更イーサネットソースMAC(メディアアクセスコントロール)アドレス、変更イーサネット行先MACアドレス、変更IPv4ソースアドレス、変更IPv4 ToSビット、変更トランスポート行先ポートを含む。
図6Bは、3つのフローテーブルエントリーを有するフローテーブルを例示するものである。それらエントリーは、ワイルドカード(例えば、“*”記号)を伴うフィールドを含む。ワイルドカードが特定のフィールドに存在するときには、全ての到来するパケットは、到来するパケットのフィールドの特定値に関わりなく、フィールドに対して「一致」を形成するとみなされる。
図6Bのテーブルの第1行のエントリーは、フローテーブルエントリーが動作しているスイッチに、イーサネットスイッチングを遂行するように指令する。特に、一致するイーサネット行先アドレスを伴う到来するパケットは、ポート3へ転送される。
図6Bのテーブルの第2行のエントリーは、インターネットルーティングを遂行するためにスイッチをどのように構成するか示す(即ち、パケットは、それらの行先IPアドレスに基づいて転送される)。
図6Bのテーブルの第3行は、ファイアウオールを形成するためにスイッチをどのように構成するか示すエントリーを含む。行先IPポート値が80のパケットが受け取られると、そのパケットはドロップされる(即ち、スイッチは、ポート80のトラフィックを遮るファイアウオールとして働くように構成される)。
図6Bに示す形式のフローテーブルエントリーは、システム設定オペレーション中にコントローラサーバー18によりスイッチ14へロードされるか、又はスイッチ14からコントローラサーバー18においてパケットを受け取って処理するのに応答してリアルタイムでコントローラサーバー18からスイッチ14へ送られる。多数のスイッチ14を伴うネットワークでは、ネットワークを通る経路を形成するために各スイッチに適当なフローテーブルエントリーが与えられる。
一例として、各エンドホスト間に直列に接続された第1及び第2スイッチを含むネットワークについて考える。第1のエンドホストから第2のエンドホストへトラフィックを送るときには、第1及び第2のスイッチを通してトラフィックをルーティングすることが望ましい。第2のスイッチが第1のスイッチのポート3に接続される場合、第2のエンドホストが第2のスイッチのポート5に接続される場合、及び第2のエンドホストの行先IPアドレスが172.12.3.4である場合には、コントローラサーバー18は、第1のスイッチに図6Cのフローテーブルエントリーを与えると共に、第2のスイッチに図6Dのフローテーブルエントリーを与える。行先IPアドレス172.12.3.4をもつパケットが第1のスイッチに受け取られると、それらは、図6Cのテーブルの「ポート3へ転送」アクションに基づいて第2のスイッチへ転送される。それらパケットが第2のスイッチに受け取られると、それらは、図6Dの「ポート5へ転送」アクションに基づき第2のスイッチのポート5に接続された第2のエンドホストへ転送される。
入力/出力ポート34を経て受け取られるパケットの処理中にスイッチ14により遂行される例示的ステップが図7に示されている。ステップ78において、スイッチ14は、そのポートの1つ(例えば、図1の入力/出力ポート34の1つ)でパケットを受け取る。
ステップ80において、スイッチ14は、受け取ったパケットのフィールドを、そのスイッチのフローテーブル28におけるフローテーブルエントリーのフィールドと比較して、一致があるかどうか決定する。フローテーブルエントリーのあるフィールドは、完全な値(即ち、完全なアドレス)を含む。他のフィールドは、ワイルドカードを含む(即ち、“*”の“don’t care”ワイルドカードキャラクタでマークされたフィールド)。更に別のフィールドは、部分的に完全なエントリー(即ち、部分的にワイルドカード化された部分的アドレス)を有する。あるフィールドは、範囲を使用し(例えば、TCPポート番号を1と4096との間の値に制限することにより)、そして実際にその範囲を使用して、ある形式の部分的ワイルドカード化を実施する。受け取ったパケットとフローテーブルエントリーとの間のフィールドごとの比較を行う際に、スイッチ14は、フローテーブルエントリーの各フィールドが、ワイルドカード化なしの完全な値を含むか、ワイルドカード化を伴う部分的値を含むか、又はワイルドカードキャラクタ(即ち、完全にワイルドカード化されたフィールド)を含むか、考慮することができる。
ステップ80の動作中に、パケットのフィールドと、フローテーブルエントリーの対応フィールドとの間に一致がないことが決定された場合には、スイッチ14は、リンク16を経てコントローラサーバー18へパケットを送出する(ステップ84)。
ステップ80の動作中に、パケットとフローテーブルエントリーとの間に一致があると決定された場合には、スイッチ14は、そのフローテーブルエントリーに関連したアクションを遂行し、そしてそのフローテーブルエントリーの統計値フィールドにおけるカウンタ値を更新する(ステップ82)。次いで、処理は、線86で示すようにステップ78へループバックし、スイッチ14により別のパケットが処理されるようにする。
スイッチのネットワークをコントロールするコントローラ(例えば、コンピューティング装置において実施されるコントローラ又は他のコントローラ)は、エンドホストに関連したネットワークトポロジー又は情報のようなネットワーク情報を収集し又は監視する。コントローラは、1つ以上のコントローラサーバーを含んでもよいし、或いは1つ以上のスイッチ全体に分散されてもよい。コントローラは、エンドホストのネットワーク位置を監視してもよいし、又はネットワーク内のスイッチ間の接続を監視してもよい。コントローラは、エンドホスト間の通信をコントロールするためのネットワーク情報を使用することによりネットワークのトラフィック負荷を減少することができる。図8は、コントローラサーバー18によりコントロールされるスイッチ(又は他のパケット処理システム)を伴う例示的ネットワーク100を示す。
図8に示したように、ネットワーク100は、スイッチSW1、SW2、SW3、SW4、SW5、SW6を備えている。幾つかのスイッチは、コントローラクライアントを含み、それ故、クライアントスイッチと称される(例えば、スイッチSW1、SW2、SW3、SW4及びSW5は、クライアントスイッチと称される)。コントローラサーバー18は、ネットワーク経路66を経てクライアントスイッチと通信する(例えば、クライアントスイッチにインストラクションを与えたり、或いはクライアントスイッチから情報を受信したりするために)。幾つかのスイッチは、コントローラクライアントがなく、それ故、非クライアントスイッチと称される(例えば、スイッチSW6は、非クライアントスイッチである)。各スイッチは、各物理的ポートを有する(例えば、スイッチSW1は、ポートA、B、C及びDを含み、スイッチSW5は、ポートE及びFを含み、等々である)。
エンドホストEH1及びEH2は、それらが結合された各ポートにネットワークトラフィックを送信することによりネットワークを通して通信する。例えば、エンドホストEH2と通信するために、エンドホストEH1は、クライアントスイッチSW1のポートDにネットワークパケットを送信する。このシナリオにおいて、クライアントスイッチSW1は、それに対応するフローテーブルを検査して、エンドホストEH1から送られたネットワークパケットに対してフローテーブルエントリーが存在するかどうか決定する。クライアントスイッチSW1は、適当なフローテーブルエントリーが存在しないことを決定する(例えば、コントローラサーバー18がエンドホストEH1とEH2とのクライアントスイッチを通るパケット転送経路をまだ生成していないために)。次いで、クライアントスイッチSW1は、ネットワークパケットをコントローラサーバー18へ転送する。コントローラサーバー18は、ネットワークパケットからパケットソース及びパケット行先情報のような情報を得、そしてその情報を使用して、エンドホストEH1とEH2との間にネットワークパケットのためのパケット転送経路を生成する(例えば、エンドホストEH1とEH2との間のパケット転送経路に関連したクライアントスイッチの各々に適当なフローテーブルエントリーを送信することにより)。一例として、コントローラサーバー18は、クライアントスイッチSW1、SW2、SW3、SW4、及びSW5を通るパケット転送経路を生成する。
エンドホスト間に送られるネットワークパケットは、エンドホストに関する情報を含む。エンドホストEH1からエンドホストEH2へ送られるネットワークパケットは、パケットソース情報及びパケット行先情報を含む。パケットソース情報は、ソースハードウェアアドレス(例えば、ソースエンドホストに関連したソースMACアドレス又は他のハードウェアアドレス)、及びソースネットワークアドレス(例えば、ソースエンドホストに対応するソースIPアドレス又は他のネットワークプロトコルアドレス)を含む。パケット行先情報は、行先ハードウェアアドレス(例えば、行先エンドホストに対応する行先MACアドレス)、及び行先ネットワークアドレス(例えば、行先エンドホストに対応する行先IPアドレス)を含む。MACアドレスは、イーサネットハードウェアアドレスとも称される。エンドホストEH1は、2のMACアドレスを有し、そしてエンドホストEH2は、1のMACアドレスを有する。これらの例は、単なる例示に過ぎない。エンドホストEH1及びエンドホストEH2は、任意の望ましいMACアドレス(又は他のハードウェアアドレス)を有する。要望があれば、MACアドレスは、分離16進フォーマットで表示される。例えば、MACアドレス1は、00:00:00:00:00:01として表示され、そしてMACアドレス2は、00:00:00:00:00:02として表示される。
エンドホストは、他のエンドホストのネットワークアドレスについて完全な知識をもたないことがある。エンドホストEH1がエンドホストEH2と通信したいが、エンドホストEH2のIPアドレスしか知らないシナリオについて考える。エンドホストEH2へネットワークパケットを送信するために、エンドホストEH1は、先ず、エンドホストEH2のMACアドレスを発見しなければならない(例えば、エンドホストEH1は、正しいパケット行先情報をもつネットワークパケットを形成するためにエンドホストEH2のMACアドレスを発見しなければならない)。エンドホストEH2のMACアドレスを発見するために、エンドホストEH1は、図9Aのアドレス解決パケット(ARP)要求パケット122を送信する。
図9Aに示すように、ARP要求パケット122は、ソースネットワークアドレス(例えば、IPアドレス)フィールドと、ソースハードウェアアドレス(例えば、MACアドレス)フィールドと、行先ネットワークアドレスフィールドと、行先ハードウェアアドレスフィールドとを含む。エンドホストEH1は、それ自身のIP及びMACアドレスをソースネットワークアドレス及びソースハードウェアアドレスフィールドに与える(即ち、各々、192.168.1.3及び2)。エンドホストEH1は、エンドホストEH2の行先IPアドレス(即ち、192.168.1.2)を行先ネットワークアドレスフィールドに与え、そしてARP要求パケット122を全てのMACアドレスへブロードキャストしなければならないことを識別する(例えば、FF:FF:FF:FF:FF:FFのようなブロードキャストMACアドレスを行先MACアドレスフィールドに与えることにより)。
ARP要求パケット122は、イーサネットフレーム(例えば、ネットワーク100のスイッチ間のイーサネットリンクを通して送られるデータパケット)として送信される。イーサネットフレームは、ARPフィールド128及びイーサネットヘッダフィールド126を含む。ARPフィールド128は、ソースネットワークアドレスフィールド、ソースハードウェアアドレスフィールド、行先ネットワークアドレスフィールド、及び行先ハードウェアアドレスフィールドを含み、そしてイーサネットペイロードの一部分として形成される(例えば、イーサネットフレームのデータ部分)。イーサネットヘッダフィールド126は、2のイーサネットソースアドレス、及びブロードキャストイーサネット行先アドレス(例えば、FF:FF:FF:FF:FF:FFのようなブロードキャストイーサネットアドレス)を含む。ARPフィールド128の行先ハードウェアアドレスフィールドは、任意である。というのは、ARP要求パケット122をネットワーク100の全てのエンドホストへブロードキャストしなければならないことをイーサネット行先アドレスが予め指示するからである。
ARP要求パケット122を各エンドホストへブロードキャストしなければならないことを指示することにより、エンドホストEH1は、ネットワーク100がARP要求で溢れるようにする。ARP要求パケット122を受信するネットワーク100の各スイッチは、そのスイッチの各ポートへパケットを転送する。ARP要求パケット122を受信する各エンドホストは、パケットの行先IPアドレスフィールドをそのエンドホストのIPアドレスと比較する。エンドホストEH2は、それがARP要求パケット122を受信すると、行先IPアドレスフィールドがエンドホストEH2のIPアドレスに一致することを識別し、そしてエンドホストEH2のMACアドレスを含むARP応答パケットをエンドホストEH1へ送信する。このように、エンドホストEH1は、ネットワークパケットをエンドホストEH2へ送信するのに必要なアドレス情報を得る。
ARP要求パケット122は、ブロードキャストパケットと称される。というのは、ARP要求パケット122は、ネットワーク100内の全エンドホストへ転送されるからである(例えば、ARP要求パケット122は、各エンドホストへネットワーク100全体にわたって溢れる)。所与のエンドホストを行先とする(例えば、特定のIPアドレス及びMACアドレスへ送られる)ARP応答のようなネットワークパケットは、単一のエンドホストを行先とするので、ユニキャストパケットとも称される。
ネットワーク100の全体を通してARP要求パケット122が溢れることは、望ましからぬことに、ネットワークの負荷を高める。第2のエンドホストのハードウェアアドレスを発見するために第1のエンドホストにより発生されるネットワークトラフィックの量は、ネットワークにおけるスイッチ及びエンドホストの数に関連している(例えば、ARP要求パケット122を受信する各スイッチは、そのスイッチに結合された他のスイッチ及びエンドホストへパケットをブロードキャストするからである)。
ネットワーク負荷を減少するために、コントローラサーバー18は、ARP要求をブロードキャストするのではなくコントローラサーバーへ転送するようにクライアントスイッチに命令する(例えば、適当なフローテーブルエントリーをクライアントスイッチに与えることにより)。クライアントスイッチからARP要求パケットを受信するのに応答して、コントローラサーバー18は、ARP要求パケットから行先IPアドレス(及び/又は他のパケット情報)を検索する。コントローラサーバー18は、ネットワークのトポロジーに関して知られた情報を使用して、ARP要求パケットから検索された行先IPアドレスに対応するハードウェアアドレス(例えば、MACアドレス)を識別する。例えば、コントローラサーバー18は、ネットワーク100に接続されることが知られているエンドホストの記憶装置170にデータベースを維持する。データベースは、各エンドホストを、それに対応するIPアドレス、ハードウェアアドレス、及びネットワーク内のそのエンドホストの位置により各々識別するエントリーを含む。例えば、ネットワーク100のエンドホストEH1は、「IPアドレス:192.168.1.3、MACアドレス:2、及び位置:スイッチSW1のポートD」を含むデータベースエントリーによって識別される。エンドホストのデータベースのエントリーは、現在ネットワーク属性を反映するように更新される。例えば、エンドホストEH1に対応するエントリーは、エンドホストEH1からネットワークを通して送信されたネットワークパケットから検索された情報に基づいて更新される。
ARP要求パケットの行先IPアドレスに対応するMACアドレス(例えば、イーサネットハードウェアアドレス)が(例えば、エンドホスト情報のデータベースを使用して)識別される場合には、コントローラサーバー18は、ブロードキャストARP要求パケットをユニキャストARP要求へと変換し、そして(例えば、ネットワークがブロードキャストARP要求で溢れるようにするのではなく)識別されたMACアドレスに対応するエンドホストへユニキャストARP要求を直接転送するようにネットワーク100のクライアントスイッチに命令する。図9Bは、ARP要求122からコントローラサーバー18により発生される例示的なユニキャストARP要求123を示す。
図9Bに示すように、ユニキャストARP要求123は、1のイーサネット行先アドレスと、1の行先ハードウェアアドレスとを含む。ユニキャストARP要求123は、イーサネット行先アドレス及び行先ハードウェアアドレスフィールドに使用されるブロードキャストアドレスをエンドホストEH2のハードウェアアドレス(例えば、ブロードキャストARP要求122に応答したエンドホストのハードウェアアドレス)に置き換えることによりブロードキャストARP要求122から発生される。
コントローラサーバー18は、ユニキャストARP要求123をエンドホストEH2へ直接転送するようにネットワーク100のクライアントスイッチに命令し、これは、エンドホストEH1からエンドホストEH2へのネットワークスイッチ転送経路に沿ってARP要求123を転送するようにクライアントスイッチに命令する適当なフローテーブルエントリーをクライアントスイッチに与えることにより行われる。要望があれば、コントローラサーバー18は、それに対応するARP応答をエンドホストEH2からエンドホストEH1へ転送するためのフローテーブルエントリーをクライアントスイッチに与える。ブロードキャストARP要求122を、ユニキャストARP要求123のような指向されたARP要求へと変換することにより、コントローラサーバー18は、不必要なネットワーク負荷を減少し、そしてネットワーク性能を改善する。というのは、ネットワークを通して転送されるARP要求パケットがより少ないからである。
要望があれば、コントローラサーバー18は、エンドホストEH2が分からないという決定に応答して、ユニキャストARP要求123をクライアントスイッチに与える。例えば、コントローラサーバー18が、ARP要求パケットの行先IPアドレスに対応するMACアドレスを識別できない場合には、コントローラサーバー18は、ブロードキャストARP要求パケットをユニキャストARP要求パケット123へ変換し、そしてクライアントスイッチSW1の各ポートからユニキャストARP要求を転送するようにクライアントスイッチSW1に命令する。
ブロードキャストARP要求パケットを複数のユニキャスト要求パケットへ変換することにより、コントローラサーバー18は、ARP要求を満足するのに関連したネットワークトラフィックを減少する。というのは、エンドホストEH2の位置を既に発見したネットワークスイッチは、ARP要求をエンドホストEH2へ直接転送するからである(例えば、ARP要求をコントローラサーバー18へ転送したり又はARP要求をブロードキャストしたりするのではなく)。例えば、非クライアントスイッチSW6は、非クライアントスイッチSW6で受け取られるパケットを監視することによりエンドホストEH2へのルートを発見する。別の例として、クライアントスイッチSW4及びSW5は、エンドホストEH2へパケットをルーティングするためにフローテーブルエントリーを既に与えている。前記例では、エンドホストEH2の位置を既に発見しているスイッチは、ユニキャストARP要求123をエンドホストEH2へ直接転送する。
要望があれば、コントローラサーバー18は、ネットワーク100のクライアントスイッチに、他のクライアントスイッチに結合されていないポートのみにARP要求を転送するように命令する。例えば、コントローラサーバー18は、ネットワーク100のセットアップ中に収集されるか又はネットワーク100のオペレーション中に連続的に収集されるネットワークトポロジー情報を使用して、少なくとも1つのエンドホストに結合されたクライアントスイッチ又は非クライアントスイッチを識別する。このシナリオにおいて、コントローラサーバー18は、識別されたクライアントスイッチにARP要求(例えば、ARP要求122又は123)を与え、そしてそれらのクライアントスイッチに、他のクライアントスイッチに結合されていないポートから(例えば、非クライアントスイッチ又はエンドホストに結合されたポートへ)ARP要求を送信するように命令する。他のクライアントスイッチに結合されていないポートのみにARP要求を転送するようにクライアントスイッチに命令することにより、コントローラサーバー18は、ARP要求を満足することに関連したネットワークトラフィックを減少する(例えば、クライアントスイッチ間にARP要求が送信されないために)。
要望があれば、コントローラサーバー18は、ARP要求パケットに対するARP応答を発生し、そしてコントローラ発生のARP応答を、ARP要求パケットを送信したエンドホストへ送信する(例えば、ARP要求パケットをARP行先エンドホストへ転送するのではなく)。図10は、図9AのARP要求122に応答してコントローラサーバー18によりエンドホストEH1に与えられる例示的なコントローラ発生のARP応答パケット124Aを示す。
図10に示すように、コントローラ発生のARP応答124Aは、イーサネットヘッダフィールド126、及びARP情報フィールド128を含む。イーサネットヘッダフィールド126は、1のイーサネットソースアドレス(例えば、エンドホストEH2のハードウェアアドレス)、及び2のイーサネット行先アドレス(例えば、エンドホストEH1のハードウェアアドレス)を含む。ARP情報フィールド128は、イーサネットペイロードの一部分又はデータ部分として形成され、そして192.168.1.2のソースネットワークアドレス、1のソースハードウェアアドレス、192.168.1.3の行先ネットワークアドレス、及び2の行先ハードウェアアドレスを含む。コントローラ発生のARP応答124Aは、エンドホストEH2からエンドホストEH1へ送信されたARP応答と同一である(例えば、エンドホストEH2がARP応答を発生したかのように)。
ARP応答パケット124Aは、コントローラサーバー18から、エンドホストEH1に結合されたクライアントスイッチ(例えば、スイッチSW1)を通り、エンドホストEH2に結合されたクライアントスイッチを通り、又はネットワークパケットをエンドホストEH1へ転送できるネットワーク100内の望ましいクライアントスイッチを通して、エンドホストEH1へ送信される。例えば、コントローラサーバー18は、ネットワーク経路66を経てスイッチSW1へARP応答パケット124Aを送信し、そしてスイッチSW1に、ポートDを経てエンドホストEH1へパケットを転送するよう命令する。エンドホストEH1からのARP要求122に対してコントローラ発生のARP応答パケット124Aで応答することにより、コントローラサーバー18は、ネットワーク100内のスイッチによりARP要求122のブロードキャストに関連した不要なネットワークトラフィックを減少する。
コントローラサーバー18は、ネットワーク100のトラフィックを監視して、データベースのエントリーを追加し及び変更することにより、エンドホストのデータベースを維持する。例えば、コントローラサーバー18は、所与のエンドホストから送られたARP要求パケットのようなネットワークパケットを監視して、エンドホストが知られたものであるかどうか(例えば、そのエンドホストのエントリーがデータベースに存在する)、或いはそのエンドホストに対応するエントリーを更新すべきか又はデータベースに追加すべきかどうか識別する。ネットワークパケットは、ネットワークパケットからヘッダフィールドのようなパケット情報を検索することにより監視される。
コントローラサーバー18は、ネットワーク100内のクライアントスイッチを、クライアントスイッチのクラスター(グループ)へと編成する(クライアントスイッチクラスターとも称される)。クライアントスイッチクラスターは、非クライアントスイッチにより分離される(例えば、第1のクライアントスイッチクラスターは、1つ以上の非クライアントスイッチにより第2のクライアントスイッチクラスターから分離される)。スイッチSW1、SW2及びSW3は、第1のクライアントスイッチクラスター102Aへと編成され、そしてスイッチSW4及びSW5は、第2のクライアントスイッチクラスター102Bへと編成される。クライアントスイッチクラスター102A及び102Bは、非クライアントスイッチSW6により分離される。クライアントスイッチクラスターは、クラスターのクライアントスイッチに結合された(例えば、クライアントスイッチに直結されるか又は非クライアントスイッチを通して結合された)エンドホストを含む。ネットワークパケットを送信するエンドホストに関連したクライアントスイッチクラスターは、ソースクライアントスイッチクラスター又はソースクラスターとも称される。ネットワークパケットを受信するエンドホストに関連したクライアントスイッチクラスターは、行先クライアントスイッチクラスター又は行先クラスターとも称される。
クライアントスイッチクラスターは、クライアントスイッチクラスター内のクライアントスイッチのポートを経て非クライアントスイッチに結合される。例えば、クライアントスイッチクラスター102Aは、ポートXを経て非クライアントスイッチSW6に結合され、そしてクライアントスイッチクラスター102Bは、ポートYを経てクライアントスイッチSW6に結合される。非クライアントスイッチがクライアントスイッチクラスターに結合されるポートは、アタッチメントポイント又はクラスターインターフェイスポートとも称される。例えば、ポートXは、クラスター102Aのクラスターインターフェイスポート108Aとも称され、そしてポートYは、クラスター102Bのクラスターインターフェイスポート108Bとも称される。
所与のクライアントスイッチクラスターのクライアントスイッチは、非クライアントスイッチを含まない転送経路を経てそのクライアントスイッチクラスターの他のクライアントスイッチに結合される。例えば、クライアントスイッチSW1は、クライアントスイッチSW3を通してクライアントスイッチSW2に結合される。異なるクライアントスイッチクラスターのクライアントスイッチは、非クライアントスイッチを含むネットワーク経路を経て結合される。例えば、クライアントスイッチSW2は、非クライアントスイッチSW6を通してネットワークパケットを送信することによりクライアントスイッチSW4と通信する。
コントローラサーバー18が、エンドホストにより送られたARP要求を使用してネットワークのクライアントスイッチを通る転送経路を決定することが望まれる。コントローラサーバー18は、このように決定された転送経路を使用して、ネットワーク100のクライアントスイッチをコントロールする。例えば、コントローラサーバー18は、第1のエンドホストから第2のエンドホストへのARP要求を使用して決定された転送経路を使用して、クライアントスイッチへ適当なフローテーブルエントリーを与え、第1及び第2のエンドホスト間の将来のネットワークトラフィックがクライアントスイッチを通してその決定された転送経路に沿って転送されるようにする。
コントローラサーバー18がクラスター102Aと102Bとの間のネットワークトポロジーを知らないシナリオについて考える(例えば、コントローラサーバー18は、それが非クライアントスイッチをコントロールできないために、SW6のような非クライアントスイッチに関して限定された情報しかもたない)。このシナリオでは、コントローラサーバー18が、エンドホストEH1からエンドホストEH2へブロードキャストされたARP要求を使用して、クラスター102Aと102Bとの間のネットワークトポロジーを識別する上で助けとなるようにすることが望まれる(例えば、エンドホストEH1からエンドホストEH2への転送経路を決定するために)。
ブロードキャストARP要求を使用して、第1のクライアントスイッチクラスターに結合された第1のエンドホストと、第2のクライアントスイッチクラスターに結合された第2のエンドホストとの間の転送経路を決定するために、コントローラサーバー18は、ブロードキャストARP要求をユニキャストARP要求へ変換し、そして第1のクライアントスイッチクラスター内のスイッチに、非クライアントスイッチに結合されたポートからユニキャストARP要求を送信することを命令する。非クライアントスイッチに結合された所与のクライアントスイッチクラスターのポートは、そのクライアントスイッチクラスターがそれらのポートにおいて非クライアントスイッチに結合されるので、アタッチメントポイント又はクラスターインターフェイスポートと称される。コントローラサーバー18は、第1のクライアントスイッチクラスター内のクライアントスイッチに、非クライアントスイッチへユニキャストARP要求を送信することを命令し、これは、第1のクライアントスイッチクラスター内のクライアントスイッチに、非クライアントスイッチに結合されたポートからユニキャストARP要求を転送することを命令するパケット転送ルール(例えば、フローテーブルエントリー)を与えることにより行われる。要望があれば、コントローラサーバー18は、非クライアントスイッチに結合された第1のクライアントスイッチクラスター内のクライアントスイッチにユニキャストARP要求を直接与え、そしてそれらのクライアントスイッチに、ユニキャストARP要求を非クライアントスイッチへ転送するよう命令することにより、第1のクライアントスイッチクラスター内の中間クライアントスイッチをバイパスする。
一例として、コントローラサーバー18は、ブロードキャストARP要求122をユニキャストARP要求123へ変換し、そしてネットワーク100のクライアントスイッチSW2に、ポートXを経て非クライアントスイッチSW6へユニキャストARP要求123を転送することを命令する。このシナリオでは、非クライアントスイッチSW6は、ユニキャストARP要求123を受信し、そしてそのユニキャストARP要求をクライアントスイッチSW4へ転送する(例えば、非クライアントスイッチSW6のどのポートがエンドホストEH2に関連しているか識別した後に)。クライアントスイッチSW4は、非クライアントスイッチSW6からユニキャストARP要求123を受信し、そしてその要求をコントローラサーバー18へ転送する。非クライアントスイッチSW6からユニキャストARP要求123を受信するのに応答して、コントローラサーバー18は、クライアントスイッチクラスター102Aとクライアントスイッチクラスター102Bとの間のパケット転送経路がスイッチSW2のポートXからスイッチSW4のポートYへと存在することを決定する。次いで、コントローラサーバー18は、識別されたパケット転送経路に沿ってエンドホストEH2へユニキャストARP要求123を転送する(例えば、エンドホストEH2がそれに対応するARP応答を発生できるように)か、又はエンドホストEH1にコントローラ発生のARP応答を与えるようにクライアントスイッチに指令する。
ネットワーク100のスイッチSW6のような非クライアントスイッチは、ARP要求を使用して、ハードウェアアドレス(例えば、MACアドレス)をスイッチポートに関連付ける。例えば、所与のポートにおいてコントローラ発生のARP応答を受信する非クライアントスイッチは、ARP応答のイーサネットソースアドレスを所与のポートに関連付ける。そのイーサネットアドレスに向けられる将来のネットワークパケットは、所与のポートから非クライアントスイッチにより送られる。というのは、非クライアントスイッチは、そのイーサネットアドレスに対応するエンドホストに、そのポートを経て到達できると仮定するからである。あるシナリオでは、非クライアントスイッチは、コントローラ発生のARP応答124から関連性を誤って学習することがある。
非クライアントスイッチが誤った関連性を学習するのを防止するために、コントローラサーバー18は、イーサネットソースアドレスをコントローラサーバー18により予約されたハードウェアアドレスにセットした状態でコントローラ発生のARP応答を形成することが望ましい。図11は、コントローラサーバー18が、予約されたハードウェアアドレスをもつコントローラ発生のARP応答を形成する例示的なシナリオを示す。図11に示すように、エンドホストEH1からエンドホストEH2へ送信されるネットワークパケットは、先ず、非クライアントスイッチを横断しなければならない(例えば、エンドホストEH1が非クライアントスイッチSW9に結合されているために)。エンドホストEH2のハードウェアアドレスを発見するため、エンドホストEH1は、図9AのARP要求122を非クライアントスイッチSW9へ送信する。このシナリオでは、非クライアントスイッチSW9は、その非クライアントスイッチSW9に結合された各スイッチ(即ち、クライアントスイッチSW11及びSW10)へ要求を転送することによりARP要求122をブロードキャストする。ブロードキャストされたARP要求122を受信するのに応答して、クライアントスイッチSW10及びSW11は、各々、ネットワーク経路66を経てコントローラサーバー18へARP要求122を転送する。
コントローラサーバー18は、クライアントスイッチSW11及びSW10から受信されたARP要求122間を区別することができない。というのは、その両方の要求が非クライアントスイッチSW9から発生するためである。コントローラサーバー18が、エンドホストEH1からクライアントスイッチSW11及びSW10で受信されたARP要求に対して、エンドホストEH2のイーサネットソースアドレスを有するコントローラ発生のARP応答で応答した場合には、非クライアントスイッチSW9は、エンドホストEH2に向けられるネットワークトラフィックに対して誤った転送経路を潜在的に学習する(例えば、非クライアントスイッチSW9は、エンドホストEH2をクライアントスイッチSW11に誤って関連付けることがある)。
非クライアントスイッチが誤った転送経路を学習するのを防止するために、コントローラサーバー18は、コントローラ発生のARP応答のイーサネットソースアドレスフィールドに対して予約されたハードウェアアドレスを使用する。図12は、図11のエンドホストEH1によりブロードキャストされたARP要求122に応答してコントローラサーバー18により発生される例示的なコントローラ発生のARP応答124Bを示す。図12に示すように、コントローラ発生のARP応答124Bは、イーサネットソースアドレスフィールドに使用される予約されたハードウェアアドレスXを含む。予約されたハードウェアアドレスXは、ネットワーク100の他の装置(例えば、スイッチ、エンドホスト、等)により使用されないハードウェアアドレス(例えば、MACアドレス)である。
イーサネットソースアドレスフィールドの予約されたハードウェアアドレスを使用することにより、コントローラサーバー18は、図11のスイッチSW9のような非クライアントスイッチがコントローラ発生のARP応答124Bからの間違った転送経路を学習するのを防止する。例えば、非クライアントスイッチSW9がクライアントスイッチSW10及びSW11からのコントローラ発生のARP応答パケット124Bを受信する場合には、非クライアントスイッチSW9は、予約されたハードウェアアドレスXを、クライアントスイッチSW10及びSW11に結合されたスイッチSW9のポートに関連付ける。非クライアントスイッチSW9により学習される関連付けは、ネットワーク150を通しての通常のトラフィックの転送に影響しない。というのは、通常のトラフィックは、予約されたハードウェアアドレスXへ送られないからである(例えば、予約されたハードウェアアドレスXは、エンドホストに関連していないからである)。
ネットワークのクライアントスイッチで受信されるARP要求のようなネットワークパケットを処理するために、コントローラサーバー18は、図13のフローチャートの例示的ステップを遂行する。
ステップ201において、コントローラサーバー18は、ネットワークトポロジー情報を収集する。ネットワークトポロジー情報は、ネットワークスイッチ間の接続、ネットワークアドレス及びハードウェアアドレスのようなエンドホスト情報、又は他のネットワーク情報を含む。ネットワークトポロジー情報は、スイッチ能力及び接続のようなネットワーク情報を転送するようにネットワークのクライアントスイッチに命令することにより得られる。例えば、コントローラサーバー18は、リンクレイヤ発見プロトコル(LLDP)メッセージを送信してクライアントスイッチのポート間の接続を発見するようにクライアントスイッチに命令する。コントローラサーバー18は、ネットワークトポロジー情報を使用して、クライアントスイッチを、非クライアントスイッチにより分離されたクライアントスイッチクラスターへと編成する。コントローラサーバー18は、ネットワークの初期セットアップ中に及び/又はネットワークのオペレーション中に連続的に(例えば、ネットワークパケットがネットワークを通して転送される間に)ネットワークトポロジーを収集する。
ステップ202において、コントローラサーバー18は、新たなパケットを受信する。新たなパケットは、エンドホストからクライアントスイッチを経て受信され、クライアントスイッチは、新たなパケットをコントローラサーバー18へ転送する。
ステップ204において、コントローラサーバー18は、パケットから検索された情報に基づいてエンドホストのデータベースを更新する。エンドホストのデータベースは、ネットワークにおける各既知のエンドホストのためのエントリーを含む。各エントリーは、ハードウェアアドレス(例えば、MAC又は他のイーサネットアドレス)及びネットワークアドレス(例えば、IPアドレス又は他のプロトコルアドレス)のようなエンドホストアドレス情報を含む。コントローラサーバーは、パケットのヘッダフィールドからソース及び/又は行先アドレスを検索することによりエンドホストのハードウェアアドレス及びネットワークアドレスを検索する(一例として)。
ステップ206において、コントローラサーバー18は、パケットがARP要求であるかどうか識別する。コントローラサーバー18は、パケットから検索された情報(パケットから検索され、パケットをARP要求として識別するヘッダフィールド)に基づいてARP要求パケットを識別する。新たなパケットがARP要求パケットであることをコントローラサーバー18が識別する場合には、ステップ210のオペレーションが遂行される。新たなパケットがARP要求パケットでないことをコントローラサーバー18が識別した場合には、ステップ208のオペレーションが遂行される。
ステップ208において、コントローラサーバー18は、新たなパケットを通常に処理する。例えば、コントローラサーバー18は、新たなパケットのためのパケット転送経路生成する(例えば、パケットソースからパケット行先へ新たなパケットを転送するようにクライアントスイッチに命令するフローテーブルエントリーをネットワークのクライアントスイッチに与えることにより)。
ステップ210において、コントローラサーバー18は、ARPパケットの行先エンドホストが知られているかどうか(例えば、ARPパケットの行先ネットワークアドレスフィールドから検索されたネットワークアドレスに対して、それに対応するハードウェアアドレスが知られているかどうか)識別する。コントローラサーバー18は、ステップ204で発生されたエンドホストデータベースに記憶された情報を使用して、ARPパケットの行先エンドホストが知られているかどうか識別する。ARP行先エンドホストが未知である場合には、コントローラサーバー18は、ステップ212のオペレーションを遂行する。ARP行先エンドホストが既知である場合には、コントローラサーバー18は、ステップ214のオペレーションを遂行する。
ステップ212において、コントローラサーバー18は、ネットワークトポロジー情報を使用して、ARP要求により明示される行先エンドホストの発見を最適化する。行先エンドホストの発見を最適化するために、コントローラサーバー18は、ARP要求をブロードキャストするか、ARP要求を、行先エンドホストに向けられるユニキャストARP要求へ変換するか、又はネットワークの縁にあるスイッチポートから(例えば、ネットワークの他のスイッチに結合されないスイッチポートから)ARP要求を転送するように、クライアントスイッチに命令する。
ステップ214において、コントローラサーバー18は、ネットワークトポロジー情報に基づきARP要求を処理する。ARP要求を処理するため、コントローラサーバー18は、エンドホストデータベースから検索された情報に基づいてコントローラ発生のARP要求を形成するか、又はARP要求を行先エンドホストに転送するようにスイッチに命令する。例えば、コントローラサーバー18は、ARP要求を、図9BのユニキャストARP要求123のようなユニキャストARP要求へ変換し、そしてネットワーク内のクライアントスイッチに、そのユニキャストARP要求をARP行先エンドホストへ転送するように命令する。別の例として、コントローラサーバー18は、ARP要求に基づいてコントローラ発生のARP応答(例えば、図10のコントローラ発生のARP応答124A、又は図12のコントローラ発生のARP応答124B)を形成する。コントローラサーバー18は、コントローラ発生のARP応答を、ARP要求を送信したエンドホストに結合されたクライアントスイッチ(例えば、エンドホストに直結されるか又は非クライアントスイッチを通してエンドホストに結合されたクライアントスイッチ)に与える。
要望があれば、図14に示すフローチャートの例示的ステップは、ARP行先エンドホストが知られているところのARP要求を処理するためにコントローラサーバー(又は他のコントローラ)によって遂行される(例えば、図13のステップ214は、図14のステップを含む)。
ステップ222において、コントローラサーバー18は、ARPソースと行先エンドホストとの間のネットワークトポロジー情報が知られているかどうか識別する。例えば、コントローラサーバー18は、ソース及び行先エンドホストに関連したスイッチクラスターを識別する。別の例として、コントローラサーバー18は、ネットワークを通して(例えば、クライアントスイッチ及び非クライアントスイッチを通して)ソースエンドホストから行先エンドホストへ至る転送経路を決定する。このシナリオでは、転送経路は、ソースエンドホストから行先エンドホストへパケットが流れるところのポート及び関連スイッチのリストを含む。
ソース及び行先エンドホスト間のネットワークトポロジーが既知である場合には、ステップ224のオペレーションが遂行される。ソース及び行先エンドホスト間のネットワークトポロジーが未知である(例えば、コントローラサーバー18が2つのエンドホスト間の転送経路を決定することができない)場合には、ステップ226のオペレーションが遂行される。
ステップ224において、コントローラサーバー18は、ARP要求に対応するコントローラ発生のARP応答を形成し、そしてそのコントローラ発生のARP応答をソースエンドホストに与える。例えば、コントローラサーバー18は、図10のコントローラ発生のARP応答124A又は図12のコントローラ発生のARP応答124Bを形成する。コントローラサーバー18は、(例えば、ネットワーク経路66を経て)ソースエンドホストに結合されたクライアントスイッチへ応答を送信し、そしてそのクライアントスイッチに、ソースエンドホストへ応答を送信するよう命令することにより、コントローラ発生のARP応答をソースエンドホストに与える。
ステップ226において、コントローラサーバー18は、ソースクラスターインターフェイスポートが既知であるかどうか識別する。換言すれば、コントローラサーバー18は、ソースエンドホストに関連したクライアントスイッチクラスターが既知のインターフェイスポートにおいて非クライアントスイッチに結合されているかどうか識別する。例えば、コントローラサーバー18は、図8のネットワーク100のソースクラスター102Aに対するインターフェイスポート108Aを識別する。所与のクライアントスイッチクラスターに対する既知のインターフェイスポートは、コントローラサーバー18のデータベースから検索されるか、又はネットワークトポロジー情報から決定される。
コントローラサーバー18がソースクラスターインターフェイスポートを識別できない(例えば、ソースクラスターに対するインターフェイスポートが存在しないか、又はコントローラサーバー18がインターフェイスポートをまだ知らない)場合には、ステップ228のオペレーションが遂行される。コントローラサーバー18がソースクラスターインターフェイスポートを識別できる場合には、ステップ230のオペレーションが遂行される。
ステップ228において、コントローラサーバー18は、ARP要求をブロードキャストする。例えば、コントローラサーバー18は、ネットワーク内のクライアントスイッチに、全てのポートへARP要求をブロードキャストするか、又はARP要求をユニキャストARP要求へ変換するように命令すると共に、ネットワーク内のクライアントスイッチに、そのクライアントスイッチの各ポートからユニキャストARP要求送信するように命令する。
ステップ230において、コントローラサーバー18は、受信したARP要求から1つ以上のユニキャストARP要求を形成し、そしてそのユニキャストARP要求を、識別されたソースクラスターインターフェイスポートに配送する。例えば、コントローラサーバー18は、ブロードキャストARP要求をユニキャストARP要求へ変換する。コントローラサーバー18は、識別されたインターフェイスポートに関連したクライアントスイッチに、インターフェイスポートから(例えば、非クライアントスイッチに結合されたポートから)ユニキャストARP要求を送信するように命令することにより、ユニキャストARP要求を配送する。
図13(及び任意であるが、図14)のステップを遂行して、ネットワークトポロジー情報を使用してARP要求をブロードキャストするのを減少することにより、コントローラサーバー18のようなコントローラは、ネットワークトラフィックを減少し、且つネットワーク性能を改善する上で役立つ。図13及び14においてARP要求を処理するコントローラサーバー18の例は、単なる例示に過ぎない。コントローラサーバー18は、ネットワーク内のエンドホストのハードウェアアドレス情報を要求する望ましいネットワークパケットを処理する。例えば、コントローラサーバー18は、インターネットプロトコルバージョン6(IPv6)アドレスに対応するハードウェアアドレスを要求する近隣者発見プロトコル(NBP)を使用して送られたパケットを処理するか、或いはインターネットプロトコルの他のプロトコル又は他のバージョンに対応するハードウェアアドレスを要求するパケットを処理する。
コントローラサーバー18のような1つ以上の集中化コントローラを使用してネットワークスイッチをコントロールすることは、単なる例示に過ぎない。要望があれば、パケット転送システムのネットワークをコントロールする任意の形式のコントローラ(例えば、コンピューティング装置で実施されるコントローラ)を使用して、ARP要求のようなネットワークパケットを処理する(例えば、図13及び14のフローチャートのステップを遂行する)ことができる。
図15は、ネットワーク300全体を通してスイッチ14にコントローラ302が分散された例を示す。コントローラ302は、ネットワークスイッチ14の幾つか又は全部に分散される。コントローラクライアント30のようなコントローラクライアントは、ネットワーク通信リンクを経てコントローラ302の1つ以上と通信する(例えば、コントローラ302は、通信リンクを経てコントローラクライアント30へインストラクションを送信する)。コントローラ302は、スイッチ14を総体的にコントロールするように互いに通信するか、又はスイッチ14を個々にコントロールする。
一例として、コントローラ302は、互いに通信することによりネットワーク300を総体的にコントロールする。コントローラ302は、ネットワークトポロジー、ネットワークトラフィック、スイッチ14に結合されたエンドホスト、等に関する情報を共有する。ネットワーク情報を共有することにより、コントローラ302は、ネットワークトポロジー情報を収集し、そしてそのネットワークトポロジー情報を使用して、ハードウェアアドレス情報を要求するARPパケット又は他のパケットを処理することができる。
一実施形態によれば、コントローラを使用してネットワーク内のスイッチをコントロールし、スイッチからネットワークトポロジー情報を収集し、第1のエンドホストから送られたネットワークパケットが第2のエンドホストのハードウェアアドレスを要求するかどうか識別し、及びネットワークパケットが第2のエンドホストのハードウェアアドレスを要求することを識別するのに応答して、その収集されたネットワークトポロジー情報を使用してコントローラでネットワークパケットを処理することを含む方法が提供される。
別の実施形態によれば、ネットワークパケットが第2のエンドホストのハードウェアアドレスを要求するかどうか識別することは、ネットワークパケットのパケットヘッダフィールドからパケット情報を検索することを含む。
別の実施形態によれば、ネットワークパケットが第2のエンドホストのハードウェアアドレスを要求することを識別することは、ネットワークパケットがアドレス解決プロトコル要求であることを識別することを含む。
別の実施形態によれば、スイッチは、ポートを有し、スイッチからネットワークトポロジー情報を収集することは、そのポートからリンクレイヤ発見プロトコルパケットを送信するようにスイッチに指令することを含む。
別の実施形態によれば、前記方法は、エンドホストデータベースにおけるネットワークパケットから検索されたソースアドレス情報を記憶することを含む。
別の実施形態によれば、前記方法は、エンドホストデータベースにおける以前に記憶されたソースアドレス情報を検査することにより第2のエンドホストのハードウェアアドレスが既知であるかどうか識別することを含む。
別の実施形態によれば、第2のエンドホストのハードウェアアドレスが既知であると識別するのに応答して、コントローラでコントローラ発生のARP応答を形成し、及びそのコントローラ発生のARP応答を第1のエンドホストに与えることを含む。
別の実施形態によれば、ネットワークトポロジー情報に基づいてコントローラでネットワークパケットを処理し、第1のエンドホストからスイッチを通して第2のエンドホストへ至るパケット転送経路が既知であるかどうか識別し、そのパケット転送経路が既知であると識別することに応答して、コントローラでコントローラ発生のARP応答を形成し、及びそのコントローラ発生のARP応答を第1のエンドホストに与える。
別の実施形態によれば、コントローラでネットワークパケットを処理することは、パケット転送経路が未知であることを識別するのに応答して、ネットワークパケットをブロードキャストするようにスイッチに命令することを更に含む。
別の実施形態によれば、前記スイッチの各々は、関連ポートを有し、ネットワークパケットは、行先アドレスヘッダフィールドを有し、そしてネットワークパケットをブロードキャストするようにスイッチに命令することは、そのネットワークパケットの行先アドレスヘッダフィールドに第2のエンドホストのハードウェアアドレスを記憶することにより変更パケットを形成し;及び第1エンドホストに結合されたスイッチの所与の1つに、このスイッチの所与の1つに関連したポートの各々から変更パケットを送信するように命令することを含む。
一実施形態によれば、スイッチのネットワークにおけるハードウェアアドレス要求を満足させる方法において、前記スイッチは、少なくとも第1及び第2のスイッチグループへと編成され、それらのグループは、コントローラによってコントロールされ、そしてコントローラによりコントロールされない少なくとも1つの介在スイッチによって互いに分離され、前記方法は、コントローラで、第1のスイッチグループ内のスイッチから受信されたネットワークパケットがアドレス解決プロトコル要求パケットであるかどうか識別し;及びコントローラで、第1のスイッチグループからの所与のスイッチに、そのネットワークパケットがアドレス解決プロトコル要求パケットであることを識別するのに少なくとも一部分応答して介在スイッチにアドレス解決プロトコル要求を送信するように指令することを含むものである方法が提供される。
別の実施形態によれば、コントローラで、第1及び第2のグループ並びに介在スイッチを識別するネットワークトポロジー情報を収集する。
別の実施形態によれば、コントローラで、ネットワークパケットが、第1のスイッチグループに関連したパケットソースから、第2のスイッチグループに関連したパケット行先へ送信されるかどうか識別し;及びネットワークパケットが、第1のスイッチグループに関連したパケットソースから、第2のスイッチグループに関連したパケット行先へ送信されることを識別するのに応答して、アドレス解決プロトコル要求パケットの変更バージョンを発生し、更に、第1のスイッチグループからの所与のスイッチに、介在スイッチへアドレス解決プロトコル要求を送信するように指令することは、所与のスイッチに、アドレス解決プロトコル要求パケットの変更バージョンを送信するように命令することを含む。
別の実施形態によれば、アドレス解決プロトコル要求パケットは、行先アドレスヘッダフィールドを有し、アドレス解決プロトコル要求パケットの変更バージョンを発生することは、アドレス解決プロトコル要求パケットの行先アドレスヘッダフィールドに第2のエンドホストのハードウェアアドレスを記憶することを含む。
別の実施形態によれば、パケットソースとパケット行先との間にパケット転送経路を形成するパケット転送ルールを第1及び第2のスイッチグループにもたせる方法が提供される。
一実施形態によれば、コントローラを使用して、ネットワーク内のスイッチを通るネットワークトラフィックをコントロールする方法において、コントローラで、第1のエンドホストから送られたネットワークパケットが第2のエンドホストのハードウェアアドレスを要求するかどうか識別し;そのネットワークパケットが第2のエンドホストのハードウェアアドレスを要求することを識別するのに応答して、コントローラを使用してデータベースから第2のエンドホストのハードウェアアドレスを検索し;及びコントローラで、データベースから検索されたハードウェアアドレスを第1のエンドホストに与える;ことを含む方法が提供される。
別の実施形態によれば、ネットワークパケットが第2のエンドホストのハードウェアアドレスを要求することを識別することは、ネットワークパケットのヘッダフィールドからパケット情報を検索することによりネットワークパケットがアドレス解決プロトコル要求であることを識別することを含む。
別の実施形態によれば、第1のエンドホストにハードウェアアドレスを与えることは、コントローラで、ネットワークパケットに対応するアドレス解決プロトコル応答パケットを形成し;及びそのアドレス解決プロトコル応答パケットを第1のエンドホストへ送信することを含む。
別の実施形態によれば、コントローラで、第2のエンドホストへネットワークパケットを送信し;コントローラで、第2のエンドホストから応答パケットを受信し;及びコントローラで、その応答パケットを第1のエンドホストへ送信する;ことを含む方法が提供される。
別の実施形態によれば、第2のエンドホストへネットワークパケットを送信することは、コントローラで、第1のエンドホストから第2のエンドホストへネットワークパケットを転送するようにスイッチに指令するフローテーブルエントリーをスイッチに与えることを含む。
別の実施形態によれば、ネットワークパケットに対応するアドレス解決プロトコル応答パケットを形成することは、コントローラで、コントローラに対して予約されたイーサネットソースアドレスと、第2のエンドホストのハードウェアアドレスとを伴うアドレス解決プロトコル応答パケットを形成することを含む。
以上の説明は、本発明の原理を単に例示したものに過ぎず、当業者であれば、本発明の精神及び範囲から逸脱せずに種々の変更がなされ得るであろう。
10:ネットワーク
12:コンピューティング装置
18:コントローラサーバー
18−A、18−B:コントローラサーバー
14:パケット転送システム(ネットワークスイッチ)
16:ネットワークリンク
18:コントローラサーバー
20:ネットワーク構成ルール
24:コントロールユニット
24−1:マスターCPU
24−2:スレーブCPU
26:パケット処理ソフトウェア
28:フローテーブル
30:コントローラクライアント
32:パケット処理回路
32−1・・・32−N:スイッチIC
34:入力−出力ポート
36:マイクロプロセッサベースの装置
38:ネットワークインターフェイス
40:パケット処理ソフトウェア
48、50:ラインカード
52:バックプレーン
54、64:コントロールソフトウェア
56、62:コントロールプロトコルスタック
58、60:ネットワークプロトコルスタック
66:ネットワーク経路

Claims (14)

  1. コントローラを使用してネットワーク内のスイッチをコントロールする方法において、
    前記コントローラで、前記スイッチからネットワークトポロジー情報を収集し;
    前記コントローラで、第1のエンドホストから送られたネットワークパケットが第2のエンドホストのハードウェアアドレスを要求するかどうか識別し;
    前記ネットワークパケットが第2のエンドホストのハードウェアアドレスを要求することを識別するのに応答して、前記収集されたネットワークトポロジー情報を使用して前記コントローラでネットワークパケットを処理
    エンドホストデータベースにおけるネットワークパケットから検索されたソースアドレス情報を記憶し、及び
    前記エンドホストデータベースにおける以前に記憶されたソースアドレス情報を検査することにより前記第2のエンドホストのハードウェアアドレスが既知であるかどうか識別する;
    ことを含む方法。
  2. ネットワークパケットが第2のエンドホストのハードウェアアドレスを要求するかどうかの前記識別は、ネットワークパケットのパケットヘッダフィールドからパケット情報を検索することを含む、請求項1に記載の方法。
  3. ネットワークパケットが第2のエンドホストのハードウェアアドレスを要求するとの前記識別は、ネットワークパケットがアドレス解決プロトコル要求であることを識別することを含む、請求項1に記載の方法。
  4. 前記スイッチは、ポートを有し、前記スイッチからネットワークトポロジー情報を収集することは、前記ポートからリンクレイヤ発見プロトコルパケットを送信するように前記スイッチに指令することを含む、請求項1に記載の方法。
  5. 前記第2のエンドホストのハードウェアアドレスが既知であると識別するのに応答して、前記コントローラでコントローラ発生のARP応答を形成し;及び
    前記コントローラ発生のARP応答を前記第1のエンドホストに与える;
    ことを含む、請求項に記載の方法。
  6. 前記コントローラでネットワークパケットを処理することは、
    前記ネットワークトポロジー情報に基づいて前記第1のエンドホストから前記スイッチを通して前記第2のエンドホストへ至るパケット転送経路が既知であるかどうか識別し;
    前記パケット転送経路が既知であると識別することに応答して、前記コントローラでコントローラ発生のARP応答を形成し;及び
    前記コントローラ発生のARP応答を前記第1のエンドホストに与える;
    ことを含む、請求項1に記載の方法。
  7. 前記コントローラでネットワークパケットを処理することは、前記パケット転送経路が未知であることを識別するのに応答して、前記ネットワークパケットをブロードキャストするように前記スイッチに命令することを更に含む、請求項に記載の方法。
  8. 前記スイッチの各々は、関連ポートを有し、前記ネットワークパケットは、行先アドレスヘッダフィールドを有し、そして前記ネットワークパケットをブロードキャストするように前記スイッチに命令することは、
    前記ネットワークパケットの行先アドレスヘッダフィールドに前記第2のエンドホストのハードウェアアドレスを記憶することにより変更パケットを形成し;及び
    前記第1のエンドホストに結合された前記スイッチの所与の1つに、該スイッチの所与の1つに関連した前記ポートの各々から前記変更パケットを送信するように命令する;
    ことを含む請求項に記載の方法。
  9. コントローラを使用して、ネットワーク内のスイッチを通るネットワークトラフィックをコントロールする方法において、
    前記コントローラで、第1のエンドホストから送られたネットワークパケットが第2のエンドホストのハードウェアアドレスを要求するかどうか識別し;
    前記ネットワークパケットが第2のエンドホストのハードウェアアドレスを要求することを識別するのに応答して、前記コントローラを使用してデータベースから第2のエンドホストのハードウェアアドレスを検索し;及び
    前記コントローラで、前記データベースから検索された前記ハードウェアアドレスを前記第1のエンドホストに与える;
    ことを含む方法。
  10. 前記ネットワークパケットが第2のエンドホストのハードウェアアドレスを要求することを識別することは、
    前記ネットワークパケットのヘッダフィールドからパケット情報を検索することにより前記ネットワークパケットがアドレス解決プロトコル要求であることを識別することを含む、請求項に記載の方法。
  11. 前記第1のエンドホストにハードウェアアドレスを与えることは、
    前記コントローラで、前記ネットワークパケットに対応するアドレス解決プロトコル応答パケットを形成し;及び
    前記アドレス解決プロトコル応答パケットを前記第1のエンドホストへ送信する;
    ことを含む、請求項に記載の方法。
  12. 前記コントローラで、前記第2のエンドホストへネットワークパケットを送信し;
    前記コントローラで、前記第2のエンドホストから応答パケットを受信し;及び
    前記コントローラで、前記応答パケットを前記第1のエンドホストへ送信する;
    ことを更に含む、請求項11に記載の方法。
  13. 前記第2のエンドホストへ前記ネットワークパケットを送信することは、
    前記コントローラで、前記第1のエンドホストから前記第2のエンドホストへ前記ネットワークパケットを転送するように前記スイッチに指令するフローテーブルエントリーを前記スイッチに与えることを含む、請求項12に記載の方法。
  14. 前記ネットワークパケットに対応するアドレス解決プロトコル応答パケットを形成することは、
    前記コントローラで、前記コントローラに対して予約されたイーサネットソースアドレスと、前記第2のエンドホストのハードウェアアドレスとを伴うアドレス解決プロトコル応答パケットを形成することを含む、請求項11に記載の方法。
JP2014534662A 2011-10-04 2012-10-04 コントローラでネットワークハードウェアアドレス要求を管理するためのシステム及び方法 Expired - Fee Related JP5837989B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/252,966 US10142160B1 (en) 2011-10-04 2011-10-04 System and methods for managing network hardware address requests with a controller
US13/252,966 2011-10-04
PCT/US2012/058587 WO2013052564A2 (en) 2011-10-04 2012-10-04 System and methods for managing network hardware address requests with a controller

Publications (2)

Publication Number Publication Date
JP2014531158A JP2014531158A (ja) 2014-11-20
JP5837989B2 true JP5837989B2 (ja) 2015-12-24

Family

ID=47080820

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014534662A Expired - Fee Related JP5837989B2 (ja) 2011-10-04 2012-10-04 コントローラでネットワークハードウェアアドレス要求を管理するためのシステム及び方法

Country Status (4)

Country Link
US (1) US10142160B1 (ja)
EP (1) EP2748992B1 (ja)
JP (1) JP5837989B2 (ja)
WO (1) WO2013052564A2 (ja)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10404583B1 (en) * 2012-12-27 2019-09-03 Sitting Man, Llc Routing methods, systems, and computer program products using multiple outside-scope identifiers
US10419335B1 (en) * 2012-12-27 2019-09-17 Sitting Man, Llc Region scope-specific outside-scope indentifier-equipped routing methods, systems, and computer program products
US10397100B1 (en) * 2012-12-27 2019-08-27 Sitting Man, Llc Routing methods, systems, and computer program products using a region scoped outside-scope identifier
US10404582B1 (en) * 2012-12-27 2019-09-03 Sitting Man, Llc Routing methods, systems, and computer program products using an outside-scope indentifier
US10397101B1 (en) * 2012-12-27 2019-08-27 Sitting Man, Llc Routing methods, systems, and computer program products for mapping identifiers
US10212076B1 (en) 2012-12-27 2019-02-19 Sitting Man, Llc Routing methods, systems, and computer program products for mapping a node-scope specific identifier
US10904144B2 (en) 2012-12-27 2021-01-26 Sitting Man, Llc Methods, systems, and computer program products for associating a name with a network path
US10411998B1 (en) * 2012-12-27 2019-09-10 Sitting Man, Llc Node scope-specific outside-scope identifier-equipped routing methods, systems, and computer program products
US10411997B1 (en) * 2012-12-27 2019-09-10 Sitting Man, Llc Routing methods, systems, and computer program products for using a region scoped node identifier
US10447575B1 (en) 2012-12-27 2019-10-15 Sitting Man, Llc Routing methods, systems, and computer program products
CN104158745B (zh) * 2013-05-13 2018-11-06 南京中兴新软件有限责任公司 一种实现数据包转发的方法及系统
WO2016114750A1 (en) * 2015-01-12 2016-07-21 Hewlett Packard Enterprise Development Lp Data link layer information
US10798048B2 (en) * 2015-04-07 2020-10-06 Nicira, Inc. Address resolution protocol suppression using a flow-based forwarding element
EP3313031B1 (en) * 2015-07-27 2019-09-25 Huawei Technologies Co., Ltd. Sdn-based arp realization method and apparatus
WO2017186316A1 (en) 2016-04-27 2017-11-02 Nec Europe Ltd. Method for controlling a network
CN107547293B (zh) * 2016-06-29 2020-09-08 新华三技术有限公司 一种流路径探测方法和装置
CN107666428B (zh) * 2016-07-28 2020-03-06 新华三技术有限公司 静默设备探测方法以及装置
US10797959B2 (en) * 2017-08-11 2020-10-06 Quanta Computer Inc. LLDP based rack management controller
US10873476B2 (en) 2018-12-31 2020-12-22 Big Switch Networks Llc Networks with multiple tiers of switches
US10855644B1 (en) 2019-09-09 2020-12-01 Vmware, Inc. Address resolution protocol entry verification
US11496437B2 (en) * 2020-04-06 2022-11-08 Vmware, Inc. Selective ARP proxy
US11740919B2 (en) * 2020-05-18 2023-08-29 Dell Products L.P. System and method for hardware offloading of nested virtual switches
CN114095508A (zh) * 2020-07-31 2022-02-25 南京理工大学 一种同交换机下p2p传输的方法
CN111935334B (zh) * 2020-08-14 2022-09-20 株洲市慧纳科技有限责任公司 智能分配网络地址的方法、系统、服务器及可读存储介质
US11805101B2 (en) 2021-04-06 2023-10-31 Vmware, Inc. Secured suppression of address discovery messages
WO2023150527A1 (en) * 2022-02-02 2023-08-10 Oracle International Corporation Configuring a network-link for establishing communication between different cloud environments
EP4283946A1 (en) * 2022-05-23 2023-11-29 Telia Company AB Managing an establishment of a communication connection

Family Cites Families (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3654554B2 (ja) 1997-11-21 2005-06-02 株式会社小松製作所 ネットワークシステム及びdhcpサーバ選択方法
US6640251B1 (en) 1999-03-12 2003-10-28 Nortel Networks Limited Multicast-enabled address resolution protocol (ME-ARP)
US7318089B1 (en) 1999-09-30 2008-01-08 Intel Corporation Method and apparatus for performing network-based control functions on an alert-enabled managed client
US7231660B1 (en) 1999-11-25 2007-06-12 International Business Machines Corporation Method and system for preventing unauthorized server interference in an internet protocol network
WO2002061599A1 (en) 2001-01-25 2002-08-08 Crescent Networks, Inc. Extension of address resolution protocol (arp) for internet protocol (ip) virtual networks
WO2002073933A1 (en) 2001-03-08 2002-09-19 British Telecommunications Public Limited Company Address translator
US7072354B1 (en) 2001-10-03 2006-07-04 Cisco Technology, Inc. Token registration of managed devices
US6937602B2 (en) 2001-10-23 2005-08-30 Meshnetworks, Inc. System and method for providing a congestion optimized address resolution protocol for wireless ad-hoc networks
US7213065B2 (en) 2001-11-08 2007-05-01 Racemi, Inc. System and method for dynamic server allocation and provisioning
US7337224B1 (en) 2002-10-24 2008-02-26 Cisco Technology, Inc. Method and apparatus providing policy-based determination of network addresses
US7386629B2 (en) 2003-06-30 2008-06-10 Intel Corporation System and method for synchronous configuration of DHCP server and router interfaces
JP3838437B2 (ja) 2003-09-26 2006-10-25 日本電気株式会社 ネットワークスイッチ及びその動作方法、並びにブレードサーバ
JP2006020085A (ja) 2004-07-01 2006-01-19 Fujitsu Ltd ネットワークシステム、ネットワークブリッジ装置、ネットワーク管理装置およびネットワークアドレス解決方法
US7920577B2 (en) 2004-07-08 2011-04-05 Avaya Communication Israel Ltd. Power saving in wireless packet based networks
US7729284B2 (en) 2005-01-19 2010-06-01 Emulex Design & Manufacturing Corporation Discovery and configuration of devices across an Ethernet interface
DE102005006889B4 (de) 2005-02-15 2007-01-11 Siemens Ag Verfahren, Kommunikationsanordnung und Kommunikationsvorrichtung zum Einrichten einer Kommunikationsbeziehung in zumindest einem Kommunikationsnetz
US7756976B2 (en) 2005-03-18 2010-07-13 Hewlett-Packard Development Company, L.P. Systems and methods for denying rogue DHCP services
US7937494B2 (en) 2005-09-01 2011-05-03 Cisco Technology, Inc. Methods and apparatus for processing a DHCP request using rule-based classification
EP1780943A1 (en) 2005-10-31 2007-05-02 Hewlett-Packard Development Company, L.P. Discovery of ISO Layer-2 Topology
US8966018B2 (en) 2006-05-19 2015-02-24 Trapeze Networks, Inc. Automated network device configuration and network deployment
US20070286209A1 (en) 2006-06-12 2007-12-13 Research In Motion Limited System and method for handling address resolution protocol requests
JP4882555B2 (ja) 2006-07-07 2012-02-22 双葉電子工業株式会社 無線ブリッジ通信機
CN101529400A (zh) 2006-09-11 2009-09-09 创蕊信通公司 多网关系统与方法
US20080101381A1 (en) 2006-10-25 2008-05-01 Mediatek Inc. Address resolution protocol (arp) cache management methods and devices
US20080189769A1 (en) 2007-02-01 2008-08-07 Martin Casado Secure network switching infrastructure
US9419867B2 (en) 2007-03-30 2016-08-16 Blue Coat Systems, Inc. Data and control plane architecture for network application traffic management device
CN102217228B (zh) * 2007-09-26 2014-07-16 Nicira股份有限公司 管理和保护网络的网络操作系统
US8099764B2 (en) 2007-12-17 2012-01-17 Microsoft Corporation Secure push and status communication between client and server
CN102027761B (zh) 2008-05-15 2015-05-20 哈里斯施特拉特克斯网络运行公司 用于无线网络中的分布式数据路由的系统和方法
US8238315B2 (en) 2008-09-16 2012-08-07 Marvell World Trade Ltd. Rapid local address assignment for wireless communication networks
KR101352852B1 (ko) 2008-09-30 2014-01-20 삼성전자주식회사 Dhcp를 이용한 화상형성장치의 ip 주소 할당 방법, 그 화상형성장치, 및 dhcp를 이용한 ip주소 할당 시스템
US7957374B2 (en) * 2008-10-22 2011-06-07 Fortinet, Inc. Mechanism for enabling layer two host addresses to be shielded from the switches in a network
US8588082B2 (en) 2009-09-23 2013-11-19 Ixia Network testing using control plane and data plane convergence
US20120314605A1 (en) 2010-03-05 2012-12-13 Ippei Akiyoshi Communication system, path control apparatus, packet forwarding apparatus, and path control method
US8989187B2 (en) * 2010-06-04 2015-03-24 Coraid, Inc. Method and system of scaling a cloud computing network
US20130024553A1 (en) 2011-07-18 2013-01-24 Cisco Technology, Inc. Location independent dynamic IP address assignment
US8971334B2 (en) * 2011-08-02 2015-03-03 Telefonaktiebolaget L M Ericsson (Publ) Packet broadcast mechanism in a split architecture network
US9250941B2 (en) 2011-09-30 2016-02-02 Telefonaktiebolaget L M Ericsson (Publ) Apparatus and method for segregating tenant specific data when using MPLS in openflow-enabled cloud computing
US9413695B1 (en) * 2012-09-18 2016-08-09 Chelsio Communications, Inc. Multi-function interconnect having a plurality of switch building blocks
US9173158B2 (en) * 2013-03-08 2015-10-27 Tellabs Operations, Inc. Method and apparatus for improving LTE enhanced packet core architecture using openflow network controller

Also Published As

Publication number Publication date
EP2748992A2 (en) 2014-07-02
WO2013052564A2 (en) 2013-04-11
WO2013052564A3 (en) 2013-08-15
EP2748992B1 (en) 2018-08-22
JP2014531158A (ja) 2014-11-20
US10142160B1 (en) 2018-11-27

Similar Documents

Publication Publication Date Title
JP5837989B2 (ja) コントローラでネットワークハードウェアアドレス要求を管理するためのシステム及び方法
JP5813885B2 (ja) コントローラでネットワークプロトコルアドレス指定を管理するためのシステム及び方法
JP6004405B2 (ja) コントローラでネットワークパケット転送を管理するシステム及び方法
JP5864758B2 (ja) バーチャルスイッチを介してネットワークトラフィックをコントロールするシステム及び方法
US9130870B1 (en) Methods for determining network topologies
CN106797351B (zh) 使用控制器执行逻辑网络转发的系统和方法
US9215175B2 (en) Computer system including controller and plurality of switches and communication method in computer system
US9654380B1 (en) Systems and methods for determining network topologies
US10270645B2 (en) Systems and methods for handling link aggregation failover with a controller
US8787388B1 (en) System and methods for forwarding packets through a network
JP2017506025A (ja) ネットワークサービス挿入を実行するシステム及び方法
US9008080B1 (en) Systems and methods for controlling switches to monitor network traffic
EP3248331A1 (en) Systems and methods for controlling switches to capture and monitor network traffic
US9548900B1 (en) Systems and methods for forwarding network packets in a network using network domain topology information
US10291533B1 (en) Systems and methods for network traffic monitoring
JP5861772B2 (ja) ネットワークアプライアンス冗長化システム、制御装置、ネットワークアプライアンス冗長化方法及びプログラム
US9264295B1 (en) Systems and methods for forwarding broadcast network packets with a controller
JP2016225933A (ja) 制御装置、中継装置の制御方法、プログラム及び通信システム

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150430

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150511

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20150811

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150910

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20151007

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151106

R150 Certificate of patent or registration of utility model

Ref document number: 5837989

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees