JP6464631B2 - ネットワーク制御システム、ルータ仮想化装置、ネットワーク制御方法、ルータ仮想化方法およびプログラム - Google Patents

ネットワーク制御システム、ルータ仮想化装置、ネットワーク制御方法、ルータ仮想化方法およびプログラム Download PDF

Info

Publication number
JP6464631B2
JP6464631B2 JP2014192462A JP2014192462A JP6464631B2 JP 6464631 B2 JP6464631 B2 JP 6464631B2 JP 2014192462 A JP2014192462 A JP 2014192462A JP 2014192462 A JP2014192462 A JP 2014192462A JP 6464631 B2 JP6464631 B2 JP 6464631B2
Authority
JP
Japan
Prior art keywords
router
packet
virtual
input
networks
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.)
Active
Application number
JP2014192462A
Other languages
English (en)
Other versions
JP2016063511A (ja
Inventor
忍 後藤
忍 後藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2014192462A priority Critical patent/JP6464631B2/ja
Publication of JP2016063511A publication Critical patent/JP2016063511A/ja
Application granted granted Critical
Publication of JP6464631B2 publication Critical patent/JP6464631B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、ネットワーク制御システム、ルータ仮想化装置、ネットワーク制御方法、ルータ仮想化方法およびプログラムに関し、特に、ルータ仮想化技術を含むネットワーク制御システム、ルータ仮想化装置、ネットワーク制御方法、ルータ仮想化方法およびプログラムに関する。
クラウドコンピューティングやX as a Service(XaaS)で実現されるマルチテナント環境において、テナントごとに複数のサブネットをもつネットワークを構成する場合は、各テナントにルータを割り当てる必要がある。
特許文献1には、ローカルなイントラネットセグメントとしてのVirtual Local Area Network(以下、VLAN)間の経路を制御するローカルスイッチと、グローバルなインターネットセグメントとの間の経路を制御するメインルータと、ローカルスイッチからメインルータへはインターネットセグメントのトラヒックのみが送られるようにパケットをフィルタリングするローカルルータスイッチとを備えたネットワークスイッチング方式が開示されている。
しかし、テナントごとに物理ルータを用意するとシステムの規模が膨大になったり、システム構成が複雑になったりするため、仮想ルータと呼ばれる仮想化されたルータのインスタンスを生成し、それらをテナントに割り当てることが行われている。
仮想ルータを実現するためには、例えば、Virtual Routing and Forwarding(VRF)に対応したルータや、仮想ルータの機能をもつSoftware Defined Networking(SDN)製品を利用するといった方法がある。
特開平10−190715号公報
上述の方法で生成された仮想ルータでは、置き換え前に使用されていた物理ルータとの互換性が保証されないという課題があった。たとえば、ファイアウォールや性能情報監視、障害監視、管理用インターフェースといった、置換前の物理ルータで用いてきた様々な機能と仮想ルータ上で実現する対応する機能とに差異や不足がある。このため、既存のInformation and Communication Technology(ICT)環境をマルチテナント化する際、仮想ルータによって置き換える前と同様に、ルータによってネットワークを管理・保守することができなくなることがあった。
本発明のネットワーク制御システムは、ルータを仮想化し、かつ物理ルータとの互換性を維持することを可能とすることを目的とする。
請求項1
本発明によれば、ルータを仮想化し、かつ物理ルータによってネットワークの管理・保守が可能となる。
本発明の第一の実施形態におけるネットワーク制御システムの構成を示すブロック図である。 本発明の第一の実施形態における動作を示すフローチャートである。 本発明の第一の実施形態における動作を示すフローチャートである。 本発明の第二の実施形態におけるネットワーク制御システムの構成を示すブロック図である。 本発明の第二の実施形態におけるネットワーク制御システムのトポロジ定義テーブル、ルータ定義テーブル、送信待ちフレームテーブルの例を示す図である。 本発明の第二の実施形態における動作を示すフローチャートである。 本発明の第二の実施形態における動作を示すフローチャートである。 本発明の第二の実施形態における動作を示すフローチャートである。 本発明の第二の実施形態における動作を示すフローチャートである。 本発明の第二の実施形態における動作を示すフローチャートである。 本発明の他の実施形態におけるネットワーク制御システムの構成を示すブロック図である。
以下に、本発明を実施するための好ましい形態について図面を参照して詳細に説明する。ただし、以下に述べる実施形態は本発明を実施するために技術的に好ましい限定がされているが、発明の範囲を以下に限定するものではない。
[第一の実施形態]
まず、本実施形態について図面を参照して詳細に説明する。図1は、第一の実施形態におけるネットワーク制御システムの構成を示すブロック図である。
[構成の説明]
図1に示すように、本実施形態におけるネットワーク制御システム1は、ルータ10、仮想ネットワーク20~23、スイッチ30、ルータ仮想化装置40を備えている。
ルータ10は、複数のネットワーク間の経路を制御する。スイッチ30は、前述のネットワーク内の仮想ネットワーク20~23と接続される。
ルータ仮想化装置40は、ルータ10及びスイッチ30と接続し、ルータ10を、複数の仮想ネットワーク20~23間の経路を制御する複数の仮想ルータ50、51として提供する。具体的には、ルータ仮想化装置40は、スイッチ30から入力されたパケットをルータ10に転送し、ルータ10から入力されたパケットを複数の仮想ルータ50,51のうち所定の仮想ルータに応じて付与された識別子に基づいて、スイッチ30に転送する。
[動作の説明]
次に、第一の実施形態におけるネットワーク制御システム1の動作を、図1〜図3を参照して説明する。
まず、仮想ネットワーク20〜23で構成されたネットワークから、ルータ10までパケットが転送される動作について図2を参照して説明する。
図2において、仮想ネットワーク20~23で構成されたネットワークから、接続されるスイッチ30へとパケットが入力される(S200)。次に、この入力されたパケットが、スイッチ30からルータ仮想化装置40に入力される(S201)。ルータ仮想化装置40は、スイッチ30から入力されたパケットをルータ10に転送する(S203)。
次に、ルータ10から、仮想ネットワーク20〜23で構成されたネットワークまで、パケットが転送される動作について図3を参照して説明する。
図3において、ルータ10が、ルータ仮想化装置40にパケットを転送する(S300)と、ルータ仮想化装置40は、ルータ10から入力されたパケットを複数の仮想ルータ50,51のうち所定の仮想ルータに応じて付与された識別子に基づいて、スイッチ30に転送する(S301)。スイッチ30は、ルータ仮想化装置40から入力されたパケットを、付与された識別子に基づいて対応する仮想ネットワークへ転送する(S302)。
以上、説明した二つの動作において、ルータ10は、複数のネットワーク間のルーティングを制御する。つまり、仮想ネットワーク20~23で構成されたネットワークからスイッチ30とルータ仮想化装置40とを介して入力されるパケットを、ルータ10はルータ仮想化装置40へ転送する。
[効果の説明]
第一の実施形態におけるルータ仮想化装置40を用いたネットワーク制御システム1では、上述したように、ルータ10及びスイッチ30と接続したルータ仮想化装置40によって、ルータ10を活用して複数の仮想ルータ50,51を提供することができる。さらに、ルータ10を活用することで、ルータ10との互換性を維持することができる。加えて、ネットワークの管理・保守を、ルータ10の設定において行うことができる。
[第二の実施形態]
次に、発明の第二の実施形態を、図面を参照して説明する。
図4は、第二の実施形態におけるネットワーク制御システム1の構成を示すブロック図である。第二の実施形態では、仮想ネットワーク20〜23として、Virtual Local Area Network Identifier(以下、VLAN IDという)211〜214と対応するVLAN120〜123、スイッチ30としてレイヤ2スイッチ(以下、L2スイッチという)130を用いる。また、ルータ仮想化装置40は、オープンフロースイッチ(以下、OFSという)140とオープンフローコントローラ(以下、OFCという)150とを備える。OFC150は、トポロジ定義テーブル151、ルータ定義テーブル152、及び送信待ちフレームテーブル153を有する。
第二の実施形態では、OpenFlowプロトコルを使用してルータ仮想化装置40を実現する。
[構成の説明]
以下、図4、図5を参照して、第二の実施形態の構成を詳細に説明する。図5は、第二の実施形態におけるネットワーク制御システムのトポロジ定義テーブル151、ルータ定義テーブル152、及び送信待ちフレームテーブル153の例を示す図である。
ルータ10は、ルータ仮想化装置40によって仮想化される実際のルータである。図4に示すように、ルータ10は、192.168.1.254/24のIPアドレスを設定されたインターフェース11、172.16.255.254/16のIPアドレスを設定されたインターフェース12、及び192.168.2.254/24のIPアドレスを設定されたインターフェース13の、3つのインターフェースをもつ。また、インターフェース13についてはイントラネット80へのゲートウェイとなるため、10.0.0.0/8への経路も設定されている。
業務ネットワーク70は、仮想ルータ50、51によってルーティングされるネットワークである。業務ネットワーク70には、テナント61と、テナント62との、2つのテナントが存在する。ここで、VLAN120とVLAN121はテナント60内のネットワークであり、VLAN122とVLAN123はテナント61内のネットワークである。テナント61ではVLAN120およびVLAN121の間を仮想ルータ50によってルーティングする。また、テナント62ではVLAN122およびVLAN123の間を仮想ルータ51によってルーティングする。また、VLAN123については、仮想ルータ51によってイントラネット80に接続する。
ルータ仮想化装置40は、ルータ10を仮想ルータ50、51に仮想化する。ルータ仮想化装置40は、OFS140と、OFC150とで構成される。OFS140は、OpenFlowプロトコルで規定されるデータプレーンであり、OFC150の指示に従ってフレームの転送や破棄をおこなうスイッチである。OFS140は、内向きポートとしてポート41、ポート42、及びポート43を、外向きポートとしてポート44、ポート45、及びポート46を、それぞれ備える。
ここで「内向きポート」とは、ルータ10から業務ネットワーク70内のホストへ転送されるパケットが入力されるポートである。「外向きポート」とはホストからルータ10へ転送されるパケットが入力されるポートである。
ポート45へは、VLANタグ付きのフレーム(VLAN IDを有するフレーム)が入力され、またはポート45から転送される。その他のポートへはVLANタグ無しのフレームが入力される。
OFC150は、OpenFlowプロトコルで規定されるコントロールプレーンであり、OFS140を制御することでルータの仮想化を実現する装置である。OFC150は、仮想ルータの構成情報データベースとして、図5に示すトポロジ定義テーブル151と、ルータ定義テーブル152と、送信待ちフレームテーブル153とを備える。
L2スイッチ130は、VLAN120~123で構成されたネットワークとポート34〜37で接続される。また、L2スイッチ130は、ルータ仮想化装置40におけるOFS140の外向きポート44〜46と、ポート31〜33で接続される。
図5を参照すると、トポロジ定義テーブル151は、仮想ルータ50、51と、各仮想ルータ50、51がもつリンクを定義する。リンクとは、仮想ルータに接続する内向きポートおよびそのVLANタグと、外向きポートおよびそのVLANタグとを、1対1で関連づけるための識別子である。
ここで、仮想ルータ50が持つリンク5112は、ポート42及びVLANタグがない場合と、ポート45及びVLANタグ212を持つ場合とを対応付けている。一方、仮想ルータ51が有するリンク5113は、ポート42及びVLANタグがない場合と、ポート45及びVLANタグ213を持つ場合とを対応付けている。リンク5112とリンク5113とは、「ポート42及びVLANタグがない場合と、ポート45と」を対応付けている点では一致しているが、ポート45と対応づけられたVLANタグの差異によって、リンク5112におけるポート45からVLAN121への経路と、リンク5113におけるポート45からVLAN122への経路とに分岐している。
仮想ルータ50および仮想ルータ51は、それぞれテナント61およびテナント62が利用する仮想ルータであり(いいかえると、各テナントに対して仮想ルータが割り当てられており)、上述のようにポート45に対応付けられているVLANタグによって、テナント60、61内の経路をテナント間で分けることができる。
図5のトポロジ定義テーブル151に示すように、仮想ルータ50は、リンク5111でポート41とポート44と(いずれもVLANタグは無し)を、リンク5112でポート42(VLANタグ無し)とポート45のVLANタグ212とを、それぞれ関連づける。
一方、仮想ルータ51は、リンク5113でポート42(VLANタグ無し)とポート45のVLANタグ213とを、リンク5114でポート43とポート46と(いずれもVLANタグは無し)を、それぞれ関連づける。
ルータ定義テーブル152は、ルータ10がもつインターフェースの情報を定義する。たとえば、インターフェース11は、ポート41とVLANタグ無しで接続し、MACアドレスはde:ad:be:ef:00:01、IPアドレスは192.168.1.254、経路として192.168.1.0/24をもつ。インターフェース12、インターフェース13についても同様である。なお、インターフェース13がもつイントラネット80への経路10.0.0.0/8についても、ルータ定義テーブル152で定義する。
送信待ちフレームテーブル153は、ARP(Address Resolution Protocol)による宛先MACアドレスの解決待ちのため、外向きポートに出力できないフレームを格納するバッファである。例えば、送信待ちフレームテーブル153中のフレーム531とフレーム532のように、それぞれ別のVLAN上に存在する、MACアドレスは異なるがIPアドレスは同じであるようなホスト宛てにフレームを転送する事がある。この場合、ルータ10ではMACアドレスを解決できない。このため、ルータ10には疑似MACアドレスによりMACアドレスを解決させておき、ルータ10が送信した疑似MACアドレス宛てのフレームを送信待ちフレームテーブル153に格納したうえで、実際のMACアドレスの解決を行う。
[動作の説明]
次に、図6〜8を参照して、第二の実施形態における動作を詳細に説明する。また、第一の実施形態におけるルータ仮想化装置40としての動作と、第二の実施形態におけるルータ仮想化装置40がOFS140及びOFC150を備えた場合の動作とに差異がある場合には、適宜対比して説明する。図6〜8は、ルータ仮想化装置40がOFS140及びOFC150を備えた場合として記載する。
図6は第二の実施形態におけるメインルーチンを示すフローチャートである。図7は第二の実施形態における、外向きポート44〜46に入力されたフレームを処理するサブルーチンを示すフローチャートである。図8は第二の実施形態における、内向きポート41〜43に入力されたフレームを処理するサブルーチンを示すフローチャートである。図9は、第二の実施形態における、仮想ルータ候補を取得するサブルーチンを示すフローチャートである。図10は、第二の実施形態における、フレーム転送処理のサブルーチンを示すフローチャートである。
まず、図6を参照して、第二の実施形態におけるメインルーチンを説明する。ルータ仮想化装置40がOFS140及びOFC150を備えた場合、図6に示す動作は、OFS140にフレームが入力された際、そのフレームに合致するフローエントリが登録されていない場合にOFS140から発行されるPacket−Inメッセージを契機に、OFC150で実行される。図7〜10に示す動作も同様に、OFC150で実行される。
ここで、システムの構成変更に対応するため、フローエントリは永続性をもたないものとする。具体的には、フローエントリ登録時にOFC150がOFS140に発行するModify Flow Entryメッセージにおいて、適当なハードタイムアウトを指定する。
OFS140にフレームが到着し、OFS140からOFC150へPacket−inメッセージが発行されると、OFC150はまず任意のフレームに合致するように初期化された、フローエントリのマッチ条件の構造体を作成する(S400)。続いて、OFC150は、フレームの入力ポートと入力VLANタグをマッチ条件に追加して(S401)、入力ポートと入力VLANタグを元にトポロジ定義テーブル151を検索する(S402)。
一方、第一の実施形態に記載のルータ仮想化装置40においては、ルータ仮想化装置40にフレームが入力されるたびに図6の動作が実行される。フレームが到着すると、ルータ仮想化装置40はフレームの入力ポートと入力VLANタグを取得し、続いて入力ポートと入力VLANタグを元にトポロジ定義テーブル151を検索する。
ここで、トポロジ定義テーブル151内でマッチ条件と合致する行が見つからなかった場合は、未定義のポートまたは未定義のVLANタグであるため、OFC150は、Modify Flow Entryメッセージを用いて合致したフレームを破棄するフローエントリをフローテーブルに登録して処理を終了する(S403)。第一の実施形態におけるルータ仮想化装置40では、S403においてフレームを破棄して処理を終了する。以下、OFC150が「Modify Flow Entryメッセージを用いて合致したフレームを破棄するフローエントリをフローテーブルに登録して処理を終了する」場合、第一の実施形態に記載のルータ仮想化装置40では、フレームを破棄して処理を終了する。
一方、合致する行が見つかった場合は、OFC150は、フレームのイーサタイプをマッチ条件に追加するとともに(S404)、イーサタイプで示されるプロトコルがARPまたはIPであるかを検査する(S405)。第一の実施形態に記載のルータ仮想化装置40では、S404においてフレームのイーサタイプを取得し、S405においてイーサタイプで示されるプロトコルがARPまたはIPであるかを検査する。ここで、プロトコルがARPでもIPでもない場合は、処理できないプロトコルであるため、OFC150は、Modify Flow Entryメッセージを用いて合致したフレームを破棄するフローエントリをフローテーブルに登録して処理を終了する(S403)。
一方、プロトコルがARPまたはIPである場合は、OFC150は、入力ポートを元にルータ定義テーブル152を検索する(S406)。ここで、行が見つからなかった場合は、外向きポートからの入力なので、OFC150は、図7に示す外向きポートのフレームを処理するサブルーチンを実行する(S407)。一方、行が見つかった場合は、内向きポートからの入力なので、OFC150は、図8に示す内向きポートのフレームを処理するサブルーチンを実行する(S408)。
図7は、外向きポートから入力されたフレームを処理するサブルーチンである。まず、OFC150は、フレームのイーサタイプで示されるプロトコルがARPとIPのどちらであるか検査する(S500)。ここで、プロトコルがIPである場合は、OFC150は、フレームに含まれる送信元IPアドレスと宛先IPアドレスとをマッチ条件に追加し(S501)、続いて宛先IPアドレスを指定して図9に示す仮想ルータ候補を取得するサブルーチンを実行する(S502)。ルータ仮想化装置40では、S501においてフレームに含まれる送信元IPアドレスと宛先IPアドレスとを取得し、S502の処理を実行する。ここで、仮想ルータ候補の数が0個または複数個である場合は(S503)、仮想ルータを唯一に絞り込むことができない不正なIPアドレスであるため、OFC150は、Modify Flow Entryメッセージを用いて合致したフレームを破棄するフローエントリをフローテーブルに登録して処理を終了する(S504)。
一方、仮想ルータ候補の数が1個の場合は、OFC150は、その仮想ルータにおいて入力ポートおよび入力VLANタグと、同じリンクに関連づけられた出力ポートおよび出力VLANタグをトポロジ定義テーブル151から取得し(S505)、続いてフレームのVLANタグを出力VLANタグに変更するアクションと、出力ポートを出力先とするアクションとを指定して、図10に示すフレーム転送処理のサブルーチンを実行する(S506)。第一の実施形態に記載のルータ仮想化装置40では、S506においてフレームのVLANタグを出力VLANタグに変更して出力ポートからフレームを出力する
S500でプロトコルがARPであった場合は、OFC150は、ARPリプライかARPリクエストかを検査する(S507)。ここで、ARPの種別がARPリクエストであった場合は、OFC150は、トポロジ定義テーブル151から入力ポートおよび入力VLANタグとリンクを共有するポートおよびVLANタグを取得し、続いてルータ定義テーブル152からインターフェースのIPアドレスとMACアドレスを取得する(S508)。
そして、ARPリクエストに含まれるターゲットIPアドレスがルータのIPアドレスと一致する場合は(S509)、OFC150は、ルータのMACアドレスをセンダーMACアドレスとするARPリプライのフレームを生成し、Send Packetメッセージを用いて入力VLANタグを付与して入力ポートから出力する(S510)。第一の実施形態に記載のルータ仮想化装置40では、S510において生成したフレームを、入力VLANタグを付与して入力ポートから出力する。
一方、ARPの種別がARPリプライであった場合は、まず入力ポートと入力VLANタグ、ARPリプライに含まれるセンダーIPアドレスとを元に送信待ちフレームテーブル153を検索し(S511)、検索条件と合致した行の取得を試み、行が取得できたかどうか検査する(S512)。
ここで、行が取得できた場合は、以下のアクションを指定し、図10に示すフレーム転送処理のサブルーチンを実行する(S513)。つまり、行に含まれるフレームデータを出力フレームとし、フレームのVLANタグを、取得した行に含まれるVLANタグに変更するアクションと、フレームの宛先MACアドレスをARPリプライに含まれるセンダーMACアドレスに変更するアクションと、行に含まれるポートを出力先とするアクションとを指定する。第一の実施形態に記載のルータ仮想化装置40では、S513において行に含まれるフレームデータを出力フレームとし、フレームのVLANタグを行に含まれるVLANタグに変更するとともに、フレームの宛先MACアドレスをARPリプライに含まれるセンダーMACアドレスに変更して、行に含まれるポートからフレームを出力する。
そして、転送が完了したフレームの行を送信待ちフレームテーブル153から削除するとともに(S514)、残りの送信待ちフレームに対して同様の処理を繰り返す(S511)。
図8は、内向きポートから入力されたフレームを処理するサブルーチンである。まず、フレームのイーサタイプで示されるプロトコルがARPとIPのどちらであるか検査する(S600)。ここで、プロトコルがIPである場合は、フレームに含まれる送信元IPアドレスと宛先IPアドレスとをマッチ条件に追加し(S601)、続いて送信元IPアドレスを指定して図9に示す仮想ルータ候補を取得するサブルーチンを実行する(S602)。ルータ仮想化装置40では、S601においてフレームに含まれる送信元IPアドレスと宛先IPアドレスとを取得し、S602の処理を実行する。
ここで、仮想ルータ候補の数が0個または複数個である場合は(S603)、仮想ルータを唯一に絞り込むことができない不正なIPアドレスであるため、Modify Flow Entryメッセージを用いて合致したフレームを破棄するフローエントリを登録して処理を終了する(S604)。
一方、仮想ルータ候補の数が1個の場合は、その仮想ルータにおいて入力ポートおよび入力VLANタグとリンクを共有する出力ポートおよび出力VLANタグをトポロジ定義テーブル151から取得し(S605)、続いてフレームの宛先MACアドレスが疑似MACアドレスかどうかを検査する(S606)。
ここで、宛先が疑似MACアドレスであった場合は、疑似MACアドレス内にエンコードされた宛先IPアドレスを取得し(S607)、宛先IPアドレスと出力ポート、出力VLANタグ、およびフレーム全体のデータを送信待ちフレームテーブル153に登録するとともに(S608)、宛先IPアドレスをターゲットIPアドレスとするARPリクエストのフレームを生成し、Send Packetメッセージを用いて、フレームに出力VLANタグを付与して出力ポートから出力する(S609)。第一の実施形態に記載のルータ仮想化装置40では、S609において生成したフレームに出力VLANタグを付与して出力ポートから出力する。
一方、宛先が疑似MACアドレスでない場合は、フレームのVLANタグを出力VLANタグに変更するアクションと、出力ポートを出力先とするアクションとを指定して、図10に示すフレーム転送処理のサブルーチンを実行する(S610)。第一の実施形態に記載のルータ仮想化装置40では、S610においてフレームのVLANタグを出力VLANタグに変更して出力ポートからフレームを出力する。
S600でプロトコルがARPであった場合は、ARPリプライかARPリクエストかを検査し、ARPリプライであった場合は無視して処理を終了する(S611)。一方、ARPリクエストであった場合は、入力ポートと入力VLANタグを元にルータ定義テーブル152からインターフェースのIPアドレスを取得し、これがARPリクエストのターゲットIPアドレスと同じ場合は、ARPリプライを送信せずに処理を終了する(S612)。これは、ルータがIPアドレスの重複を確認するために自身のIPアドレスに対するARPリクエストを送信する事があり、そのようなARPリクエストを無視するための処理である。
一方、ARPリクエストのターゲットIPアドレスとルータのインターフェースのIPアドレスが異なる場合は、ターゲットIPアドレスをエンコードした疑似MACアドレスをセンダーMACアドレスとするARPリプライのフレームを生成し、Send Packetメッセージを用いて、フレームに入力VLANタグを付与して入力ポートから出力する(S613)。ここで、疑似MACアドレスは、下位32ビットにIPアドレスを格納するとともに、実際のMACアドレスとの重複を避けるためにU/Lビットを1に設定するものとする。第一の実施形態に記載のルータ仮想化装置40では、S613においてターゲットIPアドレスをエンコードした疑似MACアドレスをセンダーMACアドレスとするARPリプライのフレームを生成し、フレームに入力VLANタグを付与して入力ポートから出力する。
図9は、仮想ルータ候補を取得するサブルーチンである。まず、フレームの入力ポートと入力VLANタグをもつすべての行をトポロジー定義テーブル151から取得し、それらの行に含まれる仮想ルータの集合を仮想ルータ候補Aとする(S700)。例えば、ポート42にVLANタグなしで入力されたフレームに対しては、仮想ルータ候補Aは{511,512}となる。
次に、本サブルーチンの呼び出し時に指定されたIPアドレスが特殊なIPアドレスの場合は(S701)、仮想ルータ候補Aを仮想ルータ候補として返却する(S702)。ここで特殊なIPアドレスとは、255.255.255.255や0.0.0.0、マルチキャストアドレスである。このようなIPアドレスは以降の経路の検索に用いることができないため、仮想ルータ候補Aを仮想ルータ候補として返却する。
一方、特殊なIPアドレスでない場合は、ルータ定義テーブル152からIPアドレスの経路をロンゲストマッチで検索し、経路を唯一に絞り込む(S703)。ここで、経路が見つからなかった場合は(S704)、仮想ルータ候補Aを仮想ルータ候補として返却する(S702)。
一方、経路が見つかった場合は、その行に含まれるポートおよびVLANタグをもつすべての行をトポロジ定義テーブル151から取得し、それらの行に含まれる仮想ルータの集合を仮想ルータ候補Bとする(S705)。例えば、IPアドレスが10.0.0.1の場合は、仮想ルータ候補Bは{512}となる。そして、最後に仮想ルータ候補Aと仮想ルータ候補Bとの積集合を仮想ルータ候補として返却する(S706)。
図10は、フレーム転送処理のサブルーチンである。まず、本サブルーチンの呼び出し時に指定されたアクションを用いてSend Packetメッセージを発行し、フレームを送信する(S800)。次に、本サブルーチンの呼び出し時に指定されたアクションとマッチ条件を用いてModify Flow Entryメッセージを発行し、フローエントリを登録する(S801)。第一の実施形態に記載のルータ仮想化装置40では、図10における動作(S800、S801)を実行しない。
[効果の説明]
第二の実施形態におけるルータ仮想化装置40を用いたネットワーク制御システム1では、ルータ仮想化装置40において、仮想ルータとテナントとを対応付けることにより、VLANタグを用いて特定のテナントへの通信を制御する構成としたため、物理ルータを活用したマルチテナント環境において、互換性を維持したまま仮想ルータの導入をすることができる。
[他の実施形態]
以下、本発明のバリエーションについて説明する。第一の実施形態において説明した識別子は、ルータ仮想化装置40によって付与されてよい。また、識別子は所定の仮想ルータと、スイッチ30に転送するパケットが入力したルータ仮想化装置40のポートとの組み合わせに基づいて付与されてもよい。同様に、識別子は、前述のパケットの送信元の仮想ネットワークの識別子及びIP(Internet Protocol)アドレスと、スイッチ30に転送するパケットが入力されたルータ仮想化装置40のポートとの組み合わせに基づいて付与されてもよい。さらに、前述の組み合わせは、予めテーブルとして保存されていてよい。
第一の実施形態においては、ルータ10と、スイッチ30と、ルータ仮想化装置40と、を有するネットワーク制御システム1として説明した。しかし、ルータ仮想化装置40が単体の場合でも、上述した構成・動作であれば、作用効果を奏する。
第二の実施形態では、OpenFlowプロトコルを用いて、ルータ仮想化装置をOFSとOFCの組み合わせで実現する方法を説明した。しかし、本発明のルータ仮想化装置40は単一の物理的または仮想的なネットワーク装置を、その装置に内蔵されたハードウェアまたはファームウェアで制御することで実現することもできる。また、複数のネットワークインターフェースをもつ物理的または仮想的な計算機の上で動作するソフトウェアとして実現することもできる。
また、上述の第二の実施形態ではL2スイッチ130で構成したが、図11に示すように、ハイパーバイザー160上に仮想スイッチ165〜168を作成し、L2スイッチ130と同様に動作させることができる。ここで、図11はハイパーバイザー160とその構成要素のみ符号を示している。また、第二の実施形態において、IPv4のアドレス体系を用いて説明を行ったがIPv6のアドレス体系を用いてもよい。
上記の実施形態の一部または全部は、以下の付記のようにも記載されうるが、以下には限られない。
[付記1]
複数のネットワーク間の経路を制御するルータと、
前記ネットワーク内の仮想ネットワークと接続されるスイッチと、
前記ルータ及び前記スイッチと接続し、前記ルータを、複数の前記仮想ネットワーク間の経路を制御する複数の仮想ルータとして提供するルータ仮想化装置と、
を有し、
前記ルータ仮想化装置は、前記スイッチから入力されたパケットを前記ルータに転送し、前記ルータから入力されたパケットを前記複数の仮想ルータのうち所定の仮想ルータに応じて付与された識別子に基づいて、前記スイッチに転送する、
ネットワーク制御システム。
[付記2]
前記識別子は、前記所定の仮想ルータと、前記スイッチに転送する前記パケットが入力された前記ルータ仮想化装置のポートと、の組み合わせに基づいて付与される、
付記1に記載のネットワーク制御システム。
[付記3]
前記識別子は、前記パケットの送信元の仮想ネットワークの識別子及びIPアドレスと、前記スイッチに転送する前記パケットが入力された前記ルータ仮想化装置のポートと、の組み合わせに基づいて付与される、
付記1または2に記載のネットワーク制御システム。
[付記4]
前記組み合わせはテーブルとして保存されている、
付記3に記載のネットワーク制御システム。
[付記5]
テナント内に複数の前記仮想ネットワークを有し、複数の前記テナントの、おのおのの前記テナントに対して前記仮想ルータが割り当てられている、付記1から4のいずれかに記載のネットワーク制御システム。
[付記6]
ルータによって経路が制御される複数のネットワークにおいて、前記複数のネットワーク内の複数の仮想ネットワーク間の経路を制御する仮想ルータとして、前記ルータを提供し、
前記仮想ネットワークと接続されるスイッチから入力されたパケットを、前記ルータに転送し、前記ルータから入力されたパケットを前記複数の仮想ルータのうち所定の仮想ルータに応じて付与された識別子に基づいて、前記スイッチに転送する、
ルータ仮想化装置。
[付記7]
前記識別子は、前記所定の仮想ルータと、前記スイッチに転送する前記パケットが入力した前記ルータ仮想化装置ポートと、の組み合わせに基づいて付与される、
付記6に記載のルータ仮想化装置。
[付記8]
スイッチから入力されたパケットをルータに転送する第一のステップと、
前記ルータから入力されたパケットに、複数の仮想ネットワーク間の経路を制御する仮想ルータに応じた識別子を付与して、仮想ネットワークで構成された前記ネットワークと接続されるスイッチに転送する第二のステップと、を含むネットワーク制御方法。
[付記9]
前記第二のステップにおいて、前記スイッチに転送する前記パケットの識別子は、前記仮想ルータと、前記スイッチに転送する前記パケットが入力された前記ルータ仮想化装置のポートと、の組み合わせに基づいて付与される、
付記8に記載のネットワーク制御方法。
[付記10]
前記第二のステップにおいて、前記組み合わせはテーブルとして保存されている、
付記9に記載のネットワーク制御方法。
[付記11]
スイッチから入力されたパケットをルータに転送する第一のステップと、
前記ルータから入力されたパケットに、複数の仮想ネットワーク間の経路を制御する仮想ルータに応じた識別子を付与して、仮想ネットワークで構成された前記ネットワークと接続されるスイッチに転送する第二のステップと、を含む、
ルータ仮想化方法。
[付記12]
スイッチから入力されたパケットをルータに転送する処理と、
前記ルータから入力されたパケットに、複数の仮想ネットワーク間の経路を制御する仮想ルータに応じた識別子を付与して、仮想ネットワークで構成された前記ネットワークと接続されるスイッチに転送する処理と、
をコンピュータに実行させることを特徴とするプログラム。
但し、本発明は、上述の実施の形態に限定されず、要旨を逸脱しない範囲で当業者により適宜変更され得る。
1 ネットワーク制御システム
10 ルータ
11〜13 インターフェース
20〜23 仮想ネットワーク
30 スイッチ
31〜37 ポート
40 ルータ仮想化装置
41〜46 ポート
50、51 仮想ルータ
60、61 テナント
70 業務ネットワーク
80 イントラネット
120〜123 VLAN
130 L2スイッチ
140 オープンフロースイッチ
150 オープンフローコントローラ
151 トポロジ定義テーブル
152 ルータ定義テーブル
153 送信待ちフレームテーブル
160 ハイパーバイザー
161〜164 物理NIC
165〜168 仮想スイッチ
165a、 165b ポート
166a、 165b‘、 165b’‘ ポート
165a、 165b ポート
165a、 165b ポート

Claims (10)

  1. IPアドレスに基づき、複数のネットワークにそれぞれ対応する複数のインタフェース間のパケット転送を制御するルータと、
    MACアドレス及びVLAN識別子に基づき、前記複数のネットワークにそれぞれ対応する複数のポートの各々と前記複数のネットワーク内の複数の仮想ネットワークにそれぞれ対応する複数のポートの各々との間のパケット転送を制御するスイッチと、
    前記ルータの前記複数のインタフェースの各々と前記スイッチの当該インタフェースに対応するポートとの間でパケットを転送するとともに、前記ルータを、複数の仮想ルータであって、各々が、前記複数の仮想ネットワークの内の、当該仮想ルータに関連付けられた仮想ネットワーク間のパケット転送を制御する、複数の仮想ルータとして提供する、ルータ仮想化装置と、
    を備え、
    前記ルータ仮想化装置は、前記スイッチからパケットが入力された場合、当該パケットを前記ルータに転送し、前記ルータからパケットが入力された場合、当該パケットに基づき、前記複数の仮想ルータの内の当該パケットの転送を行う仮想ルータを特定し、当該パケットに、当該特定された仮想ルータに関連付けられたVLAN識別子を付与し、前記スイッチに転送する、
    ネットワーク制御システム。
  2. 前記ルータ仮想化装置は、前記ルータからパケットが入力された場合、当該パケットに、前記特定された仮想ルータと当該パケットが入力されたポートとの組み合わせに関連付けられたVLAN識別子を付与する、
    請求項1に記載のネットワーク制御システム。
  3. 前記ルータ仮想化装置は、前記ルータからパケットが入力された場合、当該パケットが入力されたポートと当該パケットの送信元アドレスへ到達可能なポートとに基づき、当該パケットの転送を行う仮想ルータを特定する
    請求項1または2に記載のネットワーク制御システム。
  4. IPアドレスに基づき、複数のネットワークにそれぞれ対応する複数のインタフェース間のパケット転送を制御するルータの前記複数のインタフェースの各々と、MACアドレス及びVLAN識別子に基づき、前記複数のネットワークにそれぞれ対応する複数のポートの各々と前記複数のネットワーク内の複数の仮想ネットワークにそれぞれ対応する複数のポートの各々との間のパケット転送を制御するスイッチの当該インタフェースに対応するポートと、の間でパケットを転送するとともに、前記ルータを、複数の仮想ルータであって、各々が、前記複数の仮想ネットワークの内の、当該仮想ルータに関連付けられた仮想ネットワーク間のパケット転送を制御する、複数の仮想ルータとして提供する、ルータ仮想化装置であって、
    前記スイッチからパケットが入力された場合、当該パケットを前記ルータに転送し、前記ルータからパケットが入力された場合、当該パケットに基づき、前記複数の仮想ルータの内の当該パケットの転送を行う仮想ルータを特定し、当該パケットに、当該特定された仮想ルータに関連付けられたVLAN識別子を付与し、前記スイッチに転送する、
    ルータ仮想化装置。
  5. 前記ルータからパケットが入力された場合、当該パケットに、前記特定された仮想ルータと当該パケットが入力されたポートとの組み合わせに関連付けられたVLAN識別子を付与する、
    請求項4に記載のルータ仮想化装置。
  6. IPアドレスに基づき、複数のネットワークにそれぞれ対応する複数のインタフェース間のパケット転送を制御するルータの前記複数のインタフェースの各々と、MACアドレス及びVLAN識別子に基づき、前記複数のネットワークにそれぞれ対応する複数のポートの各々と前記複数のネットワーク内の複数の仮想ネットワークにそれぞれ対応する複数のポートの各々との間のパケット転送を制御するスイッチの当該インタフェースに対応するポートと、の間でパケットを転送するとともに、前記ルータを、複数の仮想ルータであって、各々が、前記複数の仮想ネットワークの内の、当該仮想ルータに関連付けられた仮想ネットワーク間のパケット転送を制御する、複数の仮想ルータとして提供する、ルータ仮想化装置におけるネットワーク制御方法であって、
    前記スイッチからパケットが入力された場合、当該パケットを前記ルータに転送し、
    前記ルータからパケットが入力された場合、当該パケットに基づき、前記複数の仮想ルータの内の当該パケットの転送を行う仮想ルータを特定し、当該パケットに、当該特定された仮想ルータに関連付けられたVLAN識別子を付与し、前記スイッチに転送する、
    ネットワーク制御方法。
  7. 前記ルータからパケットが入力された場合、当該パケットに、前記特定された仮想ルータと当該パケットが入力されたポートとの組み合わせに関連付けられたVLAN識別子を付与する、
    請求項6に記載のネットワーク制御方法。
  8. 前記ルータからパケットが入力された場合、当該パケットが入力されたポートと当該パケットの送信元アドレスへ到達可能なポートとに基づき、当該パケットの転送を行う仮想ルータを特定する
    請求項6または7に記載のネットワーク制御方法。
  9. IPアドレスに基づき、複数のネットワークにそれぞれ対応する複数のインタフェース間のパケット転送を制御するルータの前記複数のインタフェースの各々と、MACアドレス及びVLAN識別子に基づき、前記複数のネットワークにそれぞれ対応する複数のポートの各々と前記複数のネットワーク内の複数の仮想ネットワークにそれぞれ対応する複数のポートの各々との間のパケット転送を制御するスイッチの当該インタフェースに対応するポートと、の間でパケットを転送するとともに、前記ルータを、複数の仮想ルータであって、各々が、前記複数の仮想ネットワークの内の、当該仮想ルータに関連付けられた仮想ネットワーク間のパケット転送を制御する、複数の仮想ルータとして提供する、ルータ仮想化装置におけるルータ仮想化方法であって、
    前記スイッチからパケットが入力された場合、当該パケットを前記ルータに転送し、
    前記ルータからパケットが入力された場合、当該パケットに基づき、前記複数の仮想ルータの内の当該パケットの転送を行う仮想ルータを特定し、当該パケットに、当該特定された仮想ルータに関連付けられたVLAN識別子を付与し、前記スイッチに転送する、
    ルータ仮想化方法。
  10. IPアドレスに基づき、複数のネットワークにそれぞれ対応する複数のインタフェース間のパケット転送を制御するルータの前記複数のインタフェースの各々と、MACアドレス及びVLAN識別子に基づき、前記複数のネットワークにそれぞれ対応する複数のポートの各々と前記複数のネットワーク内の複数の仮想ネットワークにそれぞれ対応する複数のポートの各々との間のパケット転送を制御するスイッチの当該インタフェースに対応するポートと、の間でパケットを転送するとともに、前記ルータを、複数の仮想ルータであって、各々が、前記複数の仮想ネットワークの内の、当該仮想ルータに関連付けられた仮想ネットワーク間のパケット転送を制御する、複数の仮想ルータとして提供する、コンピュータに、
    前記スイッチからパケットが入力された場合、当該パケットを前記ルータに転送し、
    前記ルータからパケットが入力された場合、当該パケットに基づき、前記複数の仮想ルータの内の当該パケットの転送を行う仮想ルータを特定し、当該パケットに、当該特定された仮想ルータに関連付けられたVLAN識別子を付与し、前記スイッチに転送する、
    処理を実行させるプログラム
JP2014192462A 2014-09-22 2014-09-22 ネットワーク制御システム、ルータ仮想化装置、ネットワーク制御方法、ルータ仮想化方法およびプログラム Active JP6464631B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014192462A JP6464631B2 (ja) 2014-09-22 2014-09-22 ネットワーク制御システム、ルータ仮想化装置、ネットワーク制御方法、ルータ仮想化方法およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014192462A JP6464631B2 (ja) 2014-09-22 2014-09-22 ネットワーク制御システム、ルータ仮想化装置、ネットワーク制御方法、ルータ仮想化方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2016063511A JP2016063511A (ja) 2016-04-25
JP6464631B2 true JP6464631B2 (ja) 2019-02-06

Family

ID=55798409

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014192462A Active JP6464631B2 (ja) 2014-09-22 2014-09-22 ネットワーク制御システム、ルータ仮想化装置、ネットワーク制御方法、ルータ仮想化方法およびプログラム

Country Status (1)

Country Link
JP (1) JP6464631B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230002635A (ko) * 2020-05-11 2023-01-05 프라임완 리미티드 가상 네트워크

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8094659B1 (en) * 2007-07-09 2012-01-10 Marvell Israel (M.I.S.L) Ltd. Policy-based virtual routing and forwarding (VRF) assignment
JP5707239B2 (ja) * 2011-06-02 2015-04-22 株式会社日立製作所 マルチテナント型情報処理システム、管理サーバ及び構成管理方法
JP6080313B2 (ja) * 2011-08-04 2017-02-15 ミドクラ エスエーアールエル 仮想ネットワークを実装及び管理するシステム及び方法

Also Published As

Publication number Publication date
JP2016063511A (ja) 2016-04-25

Similar Documents

Publication Publication Date Title
US11736394B2 (en) Address resolution using multiple designated instances of a logical router
JP6317851B1 (ja) 論理ルータ
US10243834B1 (en) Interconnecting virtual networks using an ethernet virtual private network (EVPN) and virtual extensible local area network (VXLAN) based overlay network
EP3099022B1 (en) Packet forwarding methods and apparatuses
CN105577548B (zh) 一种软件定义网络中报文处理方法和装置
US9438531B2 (en) LISP stretched subnet mode for data center migrations
US9225636B2 (en) Method and apparatus for exchanging IP packets among network layer 2 peers
JP5991424B2 (ja) パケット書換装置、制御装置、通信システム、パケット送信方法及びプログラム
CN112910750B (zh) 使用逻辑路由器进行地址解析的方法、设备、系统及介质
CN102857416B (zh) 一种实现虚拟网络的方法、控制器和虚拟网络
EP3069471B1 (en) Optimized multicast routing in a clos-like network
US20140211795A1 (en) Communication system, control device, node, node control method, and program
JP2017511069A5 (ja)
JP6323444B2 (ja) 通信システム、制御装置、通信方法およびプログラム
Yamanaka et al. AutoVFlow: Autonomous virtualization for wide-area OpenFlow networks
JP6464631B2 (ja) ネットワーク制御システム、ルータ仮想化装置、ネットワーク制御方法、ルータ仮想化方法およびプログラム
JP2015231212A (ja) データ転送システム、データ転送サーバ、データ転送方法、および、プログラム
US10812446B1 (en) Dynamic host configuration across multiple sites in software defined access networks
Jun et al. Building a Tunnel through NAT Using OpenFlow
JP2017183960A (ja) スイッチ制御装置、方法およびプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170809

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180613

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180619

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180807

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: 20181211

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181224

R150 Certificate of patent or registration of utility model

Ref document number: 6464631

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150