JP2015154149A - ネットワークシステム、スイッチ、ネットワーク管理方法およびネットワーク管理プログラム - Google Patents

ネットワークシステム、スイッチ、ネットワーク管理方法およびネットワーク管理プログラム Download PDF

Info

Publication number
JP2015154149A
JP2015154149A JP2014024590A JP2014024590A JP2015154149A JP 2015154149 A JP2015154149 A JP 2015154149A JP 2014024590 A JP2014024590 A JP 2014024590A JP 2014024590 A JP2014024590 A JP 2014024590A JP 2015154149 A JP2015154149 A JP 2015154149A
Authority
JP
Japan
Prior art keywords
flow table
packet
ofs
flowtable
flow
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
JP2014024590A
Other languages
English (en)
Inventor
辰之助 勝倉
Tatsunosuke Katsukura
辰之助 勝倉
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 JP2014024590A priority Critical patent/JP2015154149A/ja
Publication of JP2015154149A publication Critical patent/JP2015154149A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】複数のコントローラが一つのスイッチを適切に制御することができるネットワークシステムを提供する。【解決手段】ネットワークシステムは、複数のフローテーブル45を記憶し、フローテーブル45に記載された内容に従って、パケットを受信した際に行う動作を決定するフローテーブル管理手段44を含むスイッチ43と、スイッチを制御する複数のコントローラ41とを備える。フローテーブル45は、コントローラ41の識別子46を含み、フローテーブル管理手段44は、フローテーブル45に含まれる識別子46が示すコントローラ41以外による当該フローテーブル45の参照および更新を禁止する。【選択図】図12

Description

本発明は、複数のコントローラを含むネットワークシステム、ネットワーク管理方法およびネットワーク管理プログラム、ならびに複数のコントローラに接続されたスイッチに関する。
近年、NWスイッチやルータ、ファイアウォール、ロードバランサ等のネットワーク機器の多様化が進んでいる。管理するネットワーク機器の増加に伴いネットワーク機器の管理コストが増大することが問題視されていた。また、ネットワーク構成変更の際にネットワーク全体が正しく協調して動作するように設計を見直さなければならないためネットワーク構成変更の柔軟性が低いことが問題視されていた。このような問題を解決する技術としてOpenFlowと呼ばれる技術が生み出された。
OpenFlowを用いたネットワーク(以下、OpenFlowネットワークと略す)は、経路計算機能を有するOpenFlow Controller(以下、OFCと記載する)とパケットを転送するOpenFlow Switch(以下、OFSと記載する)とで構成される。OFCは、OFSが送受信するパケットの経路の制御を行う。また、OFCは、TCP/IPを用いて構築される通信経路(以下、OpenFlowチャネルと略す)でOFSと制御情報の送受信を行う。OpenFlowにより、1つ1つのネットワーク機器に対して手動で行われていた設定を、OFC内のソフトウェアがまとめて行うことができる。これにより、OpenFlowネットワークは、管理コストや構成変更コストを削減することができる。例えば、特許文献1には、OpenFlowを用いたネットワークにおける制御装置について開示されている。
また、近年、情報通信ネットワークを構成する計算機等の各種リソースを仮想化する、仮想化技術が普及している。また、その仮想化技術を用いて、仮想化したリソースや、そのリソースの組合せ等を、インターネット等の通信ネットワークを通じてサービスとして提供する、クラウドコンピューティングが普及している。このようなクラウドコンピューティングの普及により、ユーザが、リソースを保持せず、クラウドコンピューティングを提供する事業者(以下、クラウド事業者と記載する)から提供されるリソースをサービスとして利用するケースが存在する。
国際公開第2013/147053号
ユーザが、クラウド事業者が提供するOFCを利用して、ユーザ側のOFSを制御する場合、ユーザ側のOFSはクラウド事業者が提供するOFCによって制御される。しかし、クラウド事業者が提供するサービスの範囲内では十分でない場合、つまり、ユーザがやりたいことができない場合がある。例えば、ユーザの通信を監査サーバにミラーリングする(宛先とは異なる監視サーバにパケットのコピーを届けること)といった場合である。このような場合、ユーザは、クラウド事業者が提供するサービスをそのまま利用しつつ、ミラーリングのための制御をユーザ側のOFCで行えるようにしたい。しかし、複数のOFCが独立して1つのOFSを制御する方式には以下のような課題がある。
図13は、複数のOFCを含む一般的なOpenFlowネットワークの第1の例を示すブロック図である。図13において、OFC1とOFC2は、OFS13に接続されている。図13に示すネットワークにおいて、OFC1とOFC2がそれぞれOpenFlowチャネル12−1、OpenFlowチャネル12−2でOFS13に接続された場合、OFC1とOFC2はOFS13の経路情報を制御することは可能である。しかし、OFC1とOFC2とが、お互いの設定内容を打消し合ってしまい制御の整合性を保つことができず、うまくOFS13をうまく協調動作させることができない。
複数のOFCが独立して1つのOFSを制御する方式の他の例を説明する。図14は、複数のOFCを含む一般的なOpenFlowネットワークの第2の例を示すブロック図である。図14に示すOpenFlowネットワークは、ポートの集合が仮想的な2つのOFSとみなされ、仮想OFS毎に制御するOFCが異なっている。また、OFC1は、port1とport2の集合である仮想OFS13−1とOpenFlowチャネル12−1で接続し、OFS13−1の経路情報を制御する。また、OFC2は、port3とport4の集合である仮想OFS13−2とOpenFlowチャネル12−2で接続し、OFS13−2の経路情報を制御する。
しかし、図14に示す例では、OFC1はOFS13−1の経路情報を制御することはできるが、OpenFlowチャネルで接続していないOFS13−2の経路情報を制御することはできない。同様に、OFC2はOFS13−1の経路情報を制御することはできない。また、OFC1とOFC2がそれぞれOpenFlowチャネルでOFS13−1に接続した場合、OFC1とOFC2はOFS13−1の経路情報を制御することが可能であるが、経路情報毎に制御するOFCを振り分けることができない。すなわち、クラウド事業者がOFC2を管理しており、ユーザがOFC1を管理している場合、クラウド事業者のOFCとユーザのOFCが独立してユーザのOFSを制御することができない。
そこで、本発明は、複数のコントローラが一つのスイッチを適切に制御することができるネットワークシステム、スイッチ、ネットワーク管理方法およびネットワーク管理プログラムを提供することを目的とする。
本発明によるネットワークシステムは、複数のフローテーブルを記憶し、当該フローテーブルに記載された内容に従って、パケットを受信した際に行う動作を決定するフローテーブル管理手段を含むスイッチと、スイッチを制御する複数のコントローラとを備え、フローテーブルは、コントローラの識別子を含み、フローテーブル管理手段は、フローテーブルに含まれる識別子が示すコントローラ以外による当該フローテーブルの参照および更新を禁止することを特徴とする。
本発明によるスイッチは、複数のフローテーブルを記憶し、当該フローテーブルに記載された内容に従って、パケットを受信した際に行う動作を決定するフローテーブル管理手段を含むスイッチであって、フローテーブルは、スイッチを制御するコントローラの識別子を含み、フローテーブル管理手段は、フローテーブルに含まれる識別子が示すコントローラ以外による当該フローテーブルの参照および更新を禁止することを特徴とする。
本発明によるネットワーク管理方法は、複数のフローテーブルを記憶し、当該フローテーブルに記載された内容に従って、パケットを受信した際に行う動作を決定するフローテーブル管理手段を含むスイッチと、スイッチを制御する複数のコントローラとを備えたネットワークシステムに用いられるネットワーク管理方法であって、フローテーブル管理手段が、フローテーブルに含まれる識別子が示すコントローラ以外による当該フローテーブルの参照および更新を禁止することを特徴とする。
本発明によるネットワーク管理プログラムは、コントローラに制御されるスイッチに、複数のフローテーブルを記憶し、当該フローテーブルに記載された内容に従って、パケットを受信した際に行う動作を決定するフローテーブル管理処理を実行させるネットワーク管理プログラムであって、スイッチに、フローテーブル管理処理で、フローテーブルに含まれるコントローラの識別子が示すコントローラ以外による当該フローテーブルの参照および更新を禁止させることを特徴とする。
本発明によれば、複数のコントローラが一つのスイッチを適切に制御することができる。
本発明によるネットワークシステムの実施形態の構成を示すブロック図である。 本発明によるネットワークシステムの実施形態の動作を示すフローチャートである。 第1の実施例におけるネットワーク構成を示すブロック図である。 第1の実施例におけるネットワーク構成の一部を示すブロック図である。 OFCの構成を示すブロック図である。 OFSの構成を示すブロック図である。 FlowTable管理部の構成を示すブロック図である。 FlowTableの構成を示すブロック図である。 図3に示すネットワーク構成の一部を示すブロック図である。 暗号化されたパケットの構成例を示す説明図である。 ヘッダおよびAPヘッダの構成例を示す説明図である。 本発明によるネットワークシステムの主要部の構成を示すブロック図である。 複数のOFCを含む一般的なOpenFlowネットワークの第1の例を示すブロック図である。 複数のOFCを含む一般的なOpenFlowネットワークの第2の例を示すブロック図である。
図1は、ネットワークシステムの実施形態の構成を示すブロック図である。なお、本実施形態では、OpenFlow1.3を用いたネットワークを前提とするが、本発明によるネットワークシステムはそのようなネットワークに限られない。本実施形態のネットワークシステムは、複数のOFC(OFC1およびOFC2)と、OFC1およびOFC2にOpenFlowチャネルで接続したOFS13とを備える。図1において、OFC1は、OFS13とOpenFlowチャネル12−1で接続されOFS13を制御する。同様に、OFC2はOFS13とOpenFlowチャネル12−2で接続されOFS13を制御する。
OFS13は、port1、port2、port3、port4の4つのポートを備えている。また、OFS13は、FlowTable管理部132を含む。また、OFS13は、Table0、TableX、およびTable1からTableNまでのFlowTableを保持し、各FlowTableに記載された内容に従って、パケットを受信した際に行う動作を決定する。
各FlowTableは、経路情報を保持する。Tableに付与されている数(1〜N)は、Tableの識別子であり、優先度を示す任意の値である。各Tableは、Tableの識別子とは別に優先度を示す値を有していてもよい。OFS13は、優先度順に、受信したパケットの読み取りを行い、パケットがFlowTableに記載された条件に適合するかどうかの確認処理を行う。適合する場合に、OFS13は、そのFlowTableに記載された処理を実行する。
また、本実施形態では、OFS13は、Table0およびTableXを含むTable群142と、Table1からTableNを含むTable群143とを含む。OFS13は、Table0とTableXのOFCの識別子としてOFC1の識別子をあらかじめ設定する。この設定は、OFS13がOFC1とOpenFlowチャネル12−1で接続される前に行う。また、OFS13は、Table1からTableNまでのFlowTableにOFC2の識別子をあらかじめ設定する。この設定は、OFS13がOFC2とOpenFlowチャネル2で接続される前に行う。
OFS13およびOFC1の各処理は、例えば、特定の演算処理等を行うよう設計されたハ−ドウェア、またはプログラムに従って動作するCPU(Central Processing Unit)等の情報処理装置によって実現される。また、そのプログラムは、非一時的でコンピュータが読み取り可能な記憶媒体に記憶される。
次に、本実施形態のネットワークシステムの動作を説明する。図2は、ネットワークシステムの実施形態の動作を示すフローチャートである。ユーザは、OFS13が保持するFlowTableをOFCと対応づける(ステップS1)。OFS13は、具体的には、自身の保持する各FlowTableにOFCの識別子(以下、OFC識別子と略す)を追加する。また、OFS13は、FlowTableに記載されているOFC識別子が示すOFC以外のOFCからの、そのFlowTableの参照、更新を禁止する。
OFS13は、OFCと対応づけたFlowTableとは別のFlowTable(以下、TableXと記載する)を追加する(ステップS2)。また、OFS13は、TableXに、その他のFlowTableの処理が完了したときに必ず実行する設定を行う。また、OFS13は、TableXにも、その他のFlowTableと同様にOFC識別子を追加する。また、OFS13は、TableXも、記載されているOFC識別子が示すOFC以外のOFCからの、TableXの参照、更新を禁止する。
OFS13は、パケットを受信した場合、優先度が最も高いFlowTable(Table0)を用いてパケットのマッチング処理(条件に合致するかどうかの確認処理)を実行する(ステップS3)。OFS13は、マッチング処理として、パケットがTable0に記載された条件に合致した場合(ステップS4のYES)、Table0に記載された処理を実行する(ステップS5)。
OFS13は、パケットがTable0に記載された条件に合致しない場合、Table0の次に優先度の高いFlowTable(1回目は、Table1)のマッチング処理を実行する(ステップS6)。パケットがTableに記載された条件に合致した場合(ステップS7のYES)、OFS13は、そのTableに記載された処理を実行する(ステップS8)。パケットがTableに記載された条件に合致しない場合(ステップS7のNO)、すべてのTable(Table1〜TableN)のマッチングが終了していなければ(ステップS9のNO)、ステップS6に移行し、優先度の高い順にFlowTableのマッチング処理、実行を繰り返す(ステップS6〜ステップS8)。OFCの設定内容によっては、複数のTable処理をすることなく、Table1で処理が完了する場合がある。
Table1〜TableNのマッチングが終了したら(ステップS9のYES)、OFS13は、TableXでパケットのマッチング処理を実行する(ステップS10)。OFS13は、パケットがTableXに記載された条件に合致した場合(ステップS11のYES)、TableXに記載された処理を実行する(ステップS12)。OFS13は、パケットがTableXに記載された条件に合致しなかった場合(ステップS11のNO)、何も行わない。
本実施形態のネットワークシステムは、OFC識別子を用いてFlowTable毎にOFCを対応づける、FlowTableが優先度の高い順に処理される。また、OFSが、OFCの識別子により対応づけられたOFC以外からの、FlowTableの参照、更新を禁止する。これにより、1つのOFSをポート単位で分割することなく、複数のOFCが独立してOFSを制御することが可能となる。また、例えば、OFC1とOFC2とが、お互いの設定内容を打消し合ってしまうことがない。
本実施形態のネットワークシステムの具体的な動作例を説明する。以下に示す例では、OFC2は、port1から入ってきたパケットをport4から出力するような経路をOFS13に設定する。また、OFC1は、port1から入ってきたパケットをport2へミラーリングするような経路をOFS13に設定する。
port1からパケットを受信したOFS13は、まず、OFC1が制御するTable0でパケットを処理する。OFC1はミラーリングするパケットのマッチ情報をTable0に登録する。このとき、OFS13はTable0で処理されたパケットを、コピーしport2へ出力する。
パケットがTable0で処理された後、OFS13は、OFC2が制御するTable1でパケットを処理する。OFC2は、経路を制御するパケットのマッチ情報をTable1にあらかじめ登録しておく。その際、複数のFlowTableで処理する必要がある場合、OFS13はTable1からTableNのいずれかのTableでパケットを処理する。
OFC2が制御するFlowTableでパケットの処理が完了するとパケットはport4から出力されるが、OFS13はパケットをport4から出力する前に、パケットをTableXで処理する。OFSに入力されるパケットは必ずTableXで処理される。そのため、OFC1はOFS13でパケットが破棄される際に、または、OFS13でパケットを任意のポートから出力する際に、パケットに対して処理する内容がある場合にTableXに処理の内容を登録する。前述の例であるパケットのミラーリングはTable0での処理で完結するため、OFC1は、TableXに何も処理内容を登録していない。よって、OFS13は、TableNでパケットを処理した後、TableXで何も行わない為、port4からパケットを出力する。
(実施例1)
図3は、第1の実施例(実施例1)におけるネットワーク構成を示すブロック図である。本実施例では、図3に示すようなネットワーク構成を例として用いる。図3に示すネットワークは、パケットの経路を制御する複数のOFC1〜OFCNとパケットを転送する複数のOFS(OFS13〜OFSM、OFS13’〜OFSM’)とを備える。また、各OFSには、ホスト(ホスト21〜ホストLL)が接続されている。
図4は、第1の実施例におけるネットワーク構成の一部を示すブロック図である。本実施例におけるオープンフローネットワークは、OFC1と、OFS13とを備える。OFC1とOFS13は、OpenFlowチャネル12で接続され、OpenFlowチャネル12を通して制御用の通信を行う。
図5は、OFC1の構成を示すブロック図である。OFC1は、サーバ等により実現される。OFC1は、経路を計算する経路計算部111と、OFS13を管理するOFS制御部112と、OFSのOpenFlowチャネルの経路を管理するOpenFlowチャネル管理部113とを含む。OFC1は、複数のOFS13を管理することが可能であり、OFS13と専用線もしくは通常のネットワークで物理的に接続されている。また、OFC1は、OFS13とOpenFlowチャネル12によって論理的に関係付けられている。
経路計算部111、OFS制御部112およびOpenFlowチャネル管理部113は、例えば、特定の演算処理等を行うよう設計されたハ−ドウェア、またはプログラムに従って動作するCPU(Central Processing Unit)等の情報処理装置によって実現される。また、そのプログラムは、非一時的でコンピュータが読み取り可能な記憶媒体に記憶される。
図6は、OFS13の構成を示すブロック図である。OFS13は、パケットの送受信、および解析を行うパケット処理部131と、パケットの経路情報の集合であるFlowTable管理部132と、自身がOFC1と通信するためのポートを管理するOpenFlowチャネル管理部133とを含む。
パケット処理部131は、パケットの解析を行い、FlowTable管理部132に記憶されているFlowTableの条件に合致する場合、FlowTableの内容に従って、パケットの送受信等の処理を行う。
FlowTable管理部132は、パケットの経路情報を含むFlowTableの集合を記憶し、FlowTableの読み取りを行う。FlowTableに含まれるOFC識別子が示すOFC以外による当該FlowTableの参照および更新を禁止する。
FlowTable管理部132は、FlowTableに記載された優先度順に読み取りを行うが、パケット処理部131は、FlowTableに記載された優先度順と異なる順序で処理を行う場合がある。
パケット処理部131、FlowTable管理部132およびOpenFlowチャネル管理部133は、例えば、特定の演算処理等を行うよう設計されたハ−ドウェア、またはプログラムに従って動作するCPU(Central Processing Unit)等の情報処理装置によって実現される。また、そのプログラムは、非一時的でコンピュータが読み取り可能な記憶媒体に記憶される。また、FlowTable141は、OFS13内の記憶領域に記憶される。
図7は、FlowTable管理部132の構成を示すブロック図である。FlowTable管理部132は、図7に示すように、複数のFlowTable141を保持し、管理する。
図8は、FlowTable141の構成を示すブロック図である。FlowTable141は、各パケットに対応する経路情報が記載されたフローエントリ201を含む。フローエントリ201は、いくつあってもよく、一つであってもよい。フローエントリの数はいくつあってもよい。また、FlowTable141は、該当FlowTable141を参照、更新することのできるOFCを示すOFC識別子202を含む。また、FlowTable141は、FlowTable管理部132で読み取りがされる順番を示すTable識別子203を含む。
Table識別子203は、あらかじめ設定される値であり、変更できない値である。Table識別子203は、0から順番に1ずつ加算される値である。FlowTable管理部132は、Table識別子203の値が小さい順につまり0から順番に全てのFlowTable141のTable処理が完了するまで読み取りを行う。Table処理は、FlowTable141内のフローエントリ201にマッチし、かつ、マッチした場合のアクションが「以降のテ−ブル処理を継続する」ことでない場合に完了する。なお、異なるFlowTable141が、同じTable識別子203の値を持つことはない。
また、特別なTable識別子203の値として、Xが設定される。異なるFlowTable141に、Table識別子203としてXが設定されることはない。Table識別子203の値がXであるFlowTable141は、その他のFlowTable141が処理された後に、必ず読み取られる。そのため、Table識別子203の値が0であるFlowTable141、つまり、最初に処理されるFlowTable141においてパケットがマッチしない場合でもTable識別子203の値がXであるFlowTable141は、読み取られ、処理される。
Table識別子203の値がXであるFlowTable141の処理は、例えば、パケットの暗号化処理、復号処理である。また、Table識別子203の値がXであるFlowTable141の処理は、クラウド事業者が管理するOFCのパケット処理の統計情報である。
図9は、図3に示すネットワーク構成の一部を示すブロック図である。OFC2の構成は、OFC1と同様である。ホスト21、ホスト22、およびホスト31は、例えばPC(Personal Computer)またはサーバ等の情報端末により実現される。OFC1またはOFC2とOFS13またはOFS14との間、OFS13とOFS14との間、ホスト21、ホスト22とOFS13間、ホスト31とOFS14間はLAN(Local Area Network)等で接続されている。ホスト21とホスト22は、それぞれ別のポートでOFS13に接続している。
次に、本実施例の動作を説明する。以下に示す本実施例の動作は、ホスト21とホスト31間で通信を行い、その通信内容をミラーリングしたものをホスト22が監査する場合の動作である。
図9に示す例では、ユーザは、OFC1、OFS13、OFS14、ホスト21、ホスト22、ホスト31を物理的に管理している。また、クラウド事業者は、OFC2を物理的に管理している。クラウド事業者は、ホスト21とホスト31との間で通信を行うための経路制御を、ユーザから依頼されている。また、クラウド事業者は、OFS13、OFS14の物理的な接続状態等の経路制御に必要な情報をユーザから入手している。ユーザは、ホスト21とホスト31との間の通信を監査するためのホスト22を管理しており、ホスト22とその他のホストとの間の通信を行うための経路制御を、クラウド事業者には依頼していない。OFC1は、OFS13およびOFS14の経路情報を制御する。同様にOFC2は、OFS13およびOFS14の経路情報を制御する。
ホスト21とホスト31間で通信を行う前に、ユーザは、OFS13のFlowTable管理部132の内のTable識別子203の値が0とXであるFlowTable141のOFC識別子202に、OFC1を示す識別子を設定する。OFC1を示す識別子の値は、OFC1とOFC2とを識別可能な値であれば、どのような値でもよく、例えば、OFC1のIPアドレスでもよい。次に、ユーザは、Table識別子203の値が0、X以外のFlowTableのOFC識別子202にOFC2を示す識別子を設定する。OFC2を示す識別子の値は、同様に、OFC1とOFC2とを識別可能な値であれば、どのような値でもよい。
次に、ホスト21とホスト31との間で通信が行われる場合の動作を説明する。なお、OpenFlow1.3ではOFS13が未知のパケットを受信した場合、つまり、受信したパケットがOFS13またはOFS14の保持するFlowTable141中の全てのフローエントリの条件とマッチしなかった場合、デフォルトの動作として該当パケットは破棄する動作をする。しかし、本実施例では、OFS13が未知のパケットを受信した場合、OpenFlow1.3よりも以前の動作、つまり、該当パケットをOFC1およびOFC2へ転送する動作をするようにユーザがOFS13またはOFS14を設定しておくものとする。OFS13またはOFS14の動作をOpen Flow1.3のデフォルトの動作とする場合は、OFC1が設定するFlowTable141がホスト間で通信を行う前にその動作をユーザが設定しておけばよい。
ホスト21が、あて先がホスト31であるパケットを送信すると、OFS13は、ホスト21と接続しているポートからそのパケットを受信する。OFS13は、受信したパケットを物理ポートからパケット処理部131へ移し、FlowTable管理部132で処理する。OFS13は、FlowTable管理部132のFlowTable141の内、Table識別子203の値が0のFlowTable141で受信したパケットと条件がマッチするフローエントリ201がないかどうか検索を行う。このとき、Table識別子203の値が0であるFlowTable141には経路情報は存在していないため、OFS13は、OFC1へ受信パケットを通知する。
OFC1は、OFS13から通知されたパケットを、OpenFlowチャネル管理部113で受信する。経路計算部111は、受信したパケットをミラーリングするための経路情報を計算する。OFS制御部112は、計算した経路情報をOFS13に設定する。このとき、OFC1は、Table識別子203の値が0であるFlowTable141にフローエントリ201を追加する。追加されたフローエントリ201の内容は、ホスト21から受信したパケットをホスト22に接続されている物理ポートから出力し転送するアクションと、Table識別子203の値が1となるFlowTable141へ処理を継続するアクションである。
次に、OFC1は、OFS14のTable識別子203の値が0であるFlowTable141にフローエントリ201を追加する。追加されるフローエントリ201のアクションはTable識別子203の値が1のFlowTable141のマッチング処理へと継続させるアクションである。OFC1は、OFS13とOFS14への設定が完了すると、受信したパケットをOFS13へ通知する。
OFC1から通知を受けたOFS13は、Table識別子203の値が1のFlowTable141で受信したパケットと条件がマッチするフローエントリ201がないか検索を行う。この検索は、OFC1からの指示によるものである。このとき、Table識別子203の値が1のFlowTable141には経路情報は存在していないため、OFS13はOFC2へ受信パケットを通知する。OFC2はOFS13から通知されたパケットを、OpenFlowチャネル管理部113を通して受信する。
OFC2は、通知として受けたパケットをホスト21からホスト31へ転送するための経路情報を、経路計算部111で計算する。OFS制御部112は、その経路情報をOFS13へ設定する。OFS制御部112は、具体的には、OFS13のTable識別子203の値が0とX以外のFlowTable141にフローエントリ201を追加する。OFS制御部112は、追加したフローエントリ201にホスト31から受信するパケットをOFS14に接続されている物理ポートから出力するアクションを追加する。
次に、OFC2は、OFS14のTable識別子203の値が0とX以外のFlowTable141にフローエントリ201を追加する。追加されるフローエントリ201の内容は、OFS13に接続されているポートから受信したパケットをホスト31に接続されているポートから出力するアクションである。OFC2は、OFS13とOFS14への設定が完了すると、受信したパケットをOFS13へ通知する。
OFC1とOFC2によるフローエントリの追加によって、ホスト21からホスト31へパケットに対応する経路が設定されるため、以後のパケットは追加されたフローエントリ201の内容に従って処理される。具体的には以下のように処理される。
OFS13は、ホスト21からあて先がホスト31であるパケットを受信すると、Table識別子203の値が0であるFlowTable141中のフローエントリ201の内容に従って、受信したパケットをホスト22と接続している物理ポートから出力する。ただし、OFS13は、Table識別子203の値が0、X以外のFlowTable141でマッチング処理を継続するために、パケットのコピーを行った後に出力する。
次に、OFS13は、Table識別子203の値が1であるFlowTable141中のフローエントリ201のアクションの内容に従って、コピーしたパケットをOFS14に接続されている物理ポートから出力する。ただし、OFS13は、物理ポートから出力するアクションを実行する前にTable識別子203の値がXとなるFlowTable141でマッチング処理を実行する。本実施例の場合、Table識別子203の値がXとなるFlowTable141にフローエントリが存在しないため、OFS13はパケットをそのまま物理ポートから出力する。
OFS14は、OFS13からパケットを受信すると、パケットをTable識別子203の値が0であるFlowTable141でマッチング処理をする。条件にマッチしたフローエントリ201に従って、OFS14は、Table識別子203の値が1であるFlowTable141でマッチング処理を継続する。OFS14は、Table識別子203の値が1であるFlowTable141中のフローエントリ201のアクションの内容に従って、パケットをホスト31に接続されている物理ポートから出力する。この際、OFS14は、Table識別子201の値がXであるFlowTable141のマッチング処理の後にパケットを出力する。本実施例の場合、Table識別子201の値がXとなるFlowTable141にフローエントリ201が存在しないため、OFS14はパケットをそのまま物理ポートから出力する。
本実施形態のネットワークシステムは、OFS13が記憶するFlowTable201に制御可能なOFC1を対応づけて、OFS13が対応づけられたOFC1以外によるFlowTable201の参照および更新を禁止する。そのため、OFC1が、経路情報毎に適切にOFS13の制御をすることができる。また、1台のOFS13に対して、ポリシーや要求の異なる複数OFC1(運用者)が制御要求をマージした協調運用をすることができる。
本実施形態のネットワークシステムは、例えば、クラウド事業者のOFCの制御可能なFlowTableよりも優先度の高い、つまり、先に処理されるFlowTableにユーザのOFCの制御権を付与する。これにより、ユーザは、クラウド事業者の経路制御に影響を与えることなく、通信のミラーリングおよび監査等の処理を行うことができる。
(実施例2)
本実施例では、OFS13が、Table識別子201の値が0であるFlowTable141に基づいてパケットの暗号化を行い、Table識別子201の値がXであるFlowTable141に基づいてパケットの復号を行う例を説明する。
具体的には、ユーザが、OFS13に暗号化、または、復号を行うポートをあらかじめ静的に設定しておく。OFS13は、該当ポートからパケットを受信したときにTable識別子203の値が0のFlowTable141に基づいてパケットを暗号化する。また、OFS13は該当ポートからパケットを送信するときにTable識別子203の値がXであるFlowTable141に基づいてパケットを復号する。
本実施形態のオープンネットワークシステムは、パケットの暗号化および復号をする機能を、OFS13に暗号化および復号の機能を追加する方法により実現できる。また、本実施形態のオープンネットワークシステムは、暗号化、復号するサーバを経由するような経路をTable識別子203の値が0またはXとなるFlowTable141に設定することよって実現することもできる。
ここで、本実施例で暗号化に使用する鍵は、2種類用意される。1つはパケット暗号化用の鍵(第1の鍵)で、もう1つは第1の鍵を暗号化するための鍵(第2の鍵)である。第1の鍵は、初期値として静的にOFS13に設定される。または、第1の鍵は、動的に生成される鍵で、暗号化したパケットと合わせてOFS間で送受信される。第2の鍵は、静的にOFS13に設定される。OFS13は、パケットを暗号化する際に、第1の鍵の鍵でパケットを暗号化した後、第2の鍵で第1の鍵を暗号化する。OFS13は暗号化されたパケットと暗号された鍵を合わせて、OFC1によって設定される経路に従って転送する。
図10は、暗号化されたパケットの構成例を示す説明図である。OFS13は、ホスト間でやり取りされるIPパケットのデ−タ部を暗号化し、IPinIPトンネリングによりカプセル化する。オリジナルEtherヘッダは、OFS13が受信するパケットのEtherヘッダと等しいヘッダである。コピーIPヘッダは、OFS13が受信するパケットのIPヘッダのプロトコル番号を94、つまりIPinIPに変更したヘッダである。
次のコピーIPヘッダは、OFS13が受信するパケットのIPヘッダのプロトコル番号を17、つまりUDPに変更したヘッダである。次のUDPヘッダは、送信元ポート番号と送信先ポート番号は予約番号を入れたヘッダである。ユーザは、このパケットが暗号化されていることをクラウド事業者へ通知するため、事前に予約した番号をこの予約番号に入れる。
図11は、ヘッダおよびAPヘッダの構成例を示す説明図である。OFS13が受信するパケットでは、IPパケットが暗号化され、APヘッダの後ろに付与される。
また、パケットは、IPinIPトンネリングでEtherフレ−ムがカプセル化されるため、1500byteを超えてしまう可能性があるが、OFS13が分割、再構築の機能を備えることにより送信する際の容量を減少することができる。この分割、再構築の機能は、一般的なIPプロトコルの分割、再構築処理と同様の機能である。
図11に示すkeylenは、後で説明する「variable key」の領域サイズである。「Reserve for future use」は、今後のための予約フィ−ルドである。「packet sequence number」は、受信パケット毎のシーケンス番号であり、単調増加する。OFS13は、受信ポート単位で「packet sequence number」を保持する。パケットが分割された場合、分割された両パケットのシ−ケンス番号は等しくなる。
「more fragment flag」は、最後のパケットかどうかを示すフィールドであり、IPパケットのMFビットに相当する。「more fragment flag」には、分割されない場合は0がセットされる。分割される場合には、先に送信されるパケットの「more fragment flag」に1がセットされ、後のパケットの「more fragment flag」には0がセットされる。「flagment offset」は、IPパケットのフラグメントオフセットに相当し、分割された場合のデ−タ(暗号化済みIPパケット)の位置を示す。「variable key」は、デ−タ部、つまりOFS13が受信したIPパケットを暗号化および復号するための鍵である。先に説明した通り、鍵自体も別の鍵で暗号化されている。
図9に示す構成例を用いて、ホスト21とホスト31の間の通信内容を暗号化し、復号する処理を説明する。本実施例において、OFC2はホスト21とホスト31との間の経路情報をOFS13とOFS14に設定しているものとする。OFC1は、OFS13のTable識別子203の値が0であるFlowTable141に、暗号化のためのフローエントリ201を追加しているものとする。追加するフローエントリ201は、具体的には、OFS13がホスト21を接続している物理ポートから受信したパケットを暗号化するアクションを実行する処理を含んでいる。このとき暗号化は別サーバを経由して暗号化されるものとする。
また、OFC1は、OFS14のTable識別子203の値がXであるFlowTable141に復号するためのフローエントリ201を追加しているものとする。追加されるフローエントリ201は、OFS13がホスト31と接続している物理ポートへパケットを送信されるときにパケットを復号するアクションを実行する処理を含んでいる。この際、復号は別サーバを経由して暗号化されるものとする。
OFS13は、ホスト21からパケットを受信するとき、Table識別子203の値が0であるFlowTable141に基づいて暗号化する。暗号化処理の流れは次の通りである。OFS13は、受信したIPヘッダをコピーする。次に、OFS13は、パケット暗号化用の鍵を使用して、受信したパケットのIPパケットを暗号化する。パケット暗号化用の鍵は、OFS13に初期値として静的に設定された鍵、または、動的に生成される鍵である。
次に、OFS13は、パケットをカプセル化するため、図10に示すような構成でパケットを構築する。その際、パケットのサイズが1500byteを超えた場合は分割を行う。パケット暗号化用の鍵は、鍵暗号化用の鍵を使用して暗号化される。鍵暗号化用の鍵は、OFS13に静的に設定された鍵である。パケット暗号化用の鍵は自身が暗号化された後、APヘッダに格納される。
OFS13は、暗号化されたパケットをTable識別子203の値が0、X以外のFlowTable141の内容に従ってOFS14へ転送する。次に、OFS14は、Table識別子203の値がXであるFlowTable141でパケットの復号を行う。次に、OFS14は、受信したパケットをTable識別子203の値が0、X以外のFlowTable141の内容に従ってホスト31に転送する。
パケットの復号の流れを具体的に説明する。OFS14は、Table識別子203の値がX以外のFlowTable141を読み取り、処理される内容を監視する。そして、OFS14は、ポートへパケットを出力するアクションが実行されることを認識すると、パケットを出力する前にパケットを復号する。OFS14は、パケットのAPヘッダ中の鍵を、鍵暗号化用の鍵を使用して復号する。OFS14は、復号されたAPヘッダ中の鍵を使用して、暗号化されたIPパケットを復号する。OFS14は、OFS13から受信したパケットのEthernet(登録商標)ヘッダに復号したIPパケットを付けて、ホスト31へ転送する。
本実施例のネットワークシステムは、暗号化および復号するFlowTableが経路制御を行うクラウド事業者のOFCによる参照および更新が行われないため、クラウド事業者に対してユーザの通信を秘匿することができる。
図12は、本発明によるネットワークシステムの主要部の構成を示すブロック図である。ネットワークシステムは、主要な構成要素として、複数のフローテーブル45を記憶し、フローテーブル45に記載された内容に従って、パケットを受信した際に行う動作を決定するフローテーブル管理手段44を含むスイッチ43と、スイッチを制御する複数のコントローラ41とを備える。フローテーブル45は、コントローラ41の識別子46を含み、フローテーブル管理手段44は、フローテーブル45に含まれる識別子46が示すコントローラ41以外による当該フローテーブル45の参照および更新を禁止する。
また、上記の各実施形態には、下記の(1)〜(4)に示すネットワークシステムも開示されている。
(1)複数のフローテーブル(例えば、FlowTable141)を記憶し、当該フローテーブルに記載された内容に従って、パケットを受信した際に行う動作を決定するフローテーブル管理手段(例えば、FlowTable管理部132)を含むスイッチ(例えば、OFS13)と、スイッチを制御する複数のコントローラ(例えば、OFC1、OFC2)とを備え、フローテーブルは、コントローラの識別子(例えば、OFC識別子202)を含み、フローテーブル管理手段は、フローテーブルに含まれる識別子が示すコントローラ以外による当該フローテーブルの参照および更新を禁止するネットワークシステム。
(2)ネットワークシステムは、フローテーブルが、優先度を示す値(例えば、Table識別子203)を含み、フローテーブル管理手段が、パケットを受信した際に、優先度順に、当該パケットがフローテーブルに記載された条件に適合するかどうかの確認処理を行い、適合する場合には、当該フローテーブルに記載された処理を実行するように構成されていてもよい。このようなネットワークシステムによれば、例えば、ユーザが、クラウド事業者の経路制御に影響を与えることなく、通信のミラーリングおよび監査等の処理を優先的に行うことができる。
(3)ネットワークシステムは、フローテーブル管理手段が、パケットを受信した際に必ず実行されるフローテーブル(例えば、TableX)を含むように構成されていてもよい。
(4)ネットワークシステムは、フローテーブル(例えば、例えば、TableX)には、暗号化されたパケットを受信した際に、当該パケットを復号することが記載されていてもよい。このようなネットワークシステムによれば、復号するFlowTableが経路制御を行うクラウド事業者のOFCによる参照および更新が行われないため、クラウド事業者に対してユーザの通信を秘匿することができる。
1,2 OFC
13 OFS
12 OpenFlowチャネル
41 コントローラ
43 スイッチ
44 フローテーブル管理手段
45 フローテーブル
46 識別子
111 経路計算部
112 OFS制御部
113 チャネル管理部
131 パケット処理部
132 FlowTable管理部
133 OpenFlowチャネル管理部
141 FlowTable
142,143 Table群
201 フローエントリ
202 OFC識別子
203 Table識別子

Claims (10)

  1. 複数のフローテーブルを記憶し、当該フローテーブルに記載された内容に従って、パケットを受信した際に行う動作を決定するフローテーブル管理手段を含むスイッチと、
    前記スイッチを制御する複数のコントローラとを備え、
    前記フローテーブルは、前記コントローラの識別子を含み、
    前記フローテーブル管理手段は、前記フローテーブルに含まれる識別子が示すコントローラ以外による当該フローテーブルの参照および更新を禁止する
    ことを特徴とするネットワークシステム。
  2. フローテーブルは、優先度を示す値を含み、
    フローテーブル管理手段は、パケットを受信した際に、前記優先度順に、当該パケットが前記フローテーブルに記載された条件に適合するかどうかの確認処理を行い、適合する場合には、当該フローテーブルに記載された処理を実行する
    請求項1記載のネットワークシステム。
  3. フローテーブル管理手段は、パケットを受信した際に必ず実行されるフローテーブルを含む
    請求項1または請求項2記載のネットワークシステム。
  4. 一のフローテーブルには、暗号化されたパケットを受信した際に、当該パケットを復号することが記載されている
    請求項3記載のネットワークシステム。
  5. 複数のフローテーブルを記憶し、当該フローテーブルに記載された内容に従って、パケットを受信した際に行う動作を決定するフローテーブル管理手段を含むスイッチであって、
    前記フローテーブルは、前記スイッチを制御するコントローラの識別子を含み、
    前記フローテーブル管理手段は、前記フローテーブルに含まれる識別子が示すコントローラ以外による当該フローテーブルの参照および更新を禁止する
    ことを特徴とするスイッチ。
  6. フローテーブルは、優先度を示す値を含み、
    フローテーブル管理手段は、パケットを受信した際に、前記優先度順に、当該パケットが前記フローテーブルに記載された条件に適合するかどうかの確認処理を行い、適合する場合には、当該フローテーブルに記載された処理を実行する
    請求項5記載のスイッチ。
  7. 複数のフローテーブルを記憶し、当該フローテーブルに記載された内容に従って、パケットを受信した際に行う動作を決定するフローテーブル管理手段を含むスイッチと、前記スイッチを制御する複数のコントローラとを備えたネットワークシステムに用いられるネットワーク管理方法であって、
    前記フローテーブル管理手段が、前記フローテーブルに含まれる識別子が示すコントローラ以外による当該フローテーブルの参照および更新を禁止する
    ことを特徴とするネットワーク管理方法。
  8. フローテーブル管理手段が、パケットを受信した際に、フローテーブルに含まれる優先度の順に、当該パケットが前記フローテーブルに記載された条件に適合するかどうかの確認処理を行い、適合する場合には、当該フローテーブルに記載された処理を実行する
    請求項7記載のネットワーク管理方法。
  9. コントローラに制御されるスイッチに搭載されたコンピュータに、
    複数のフローテーブルを記憶し、当該フローテーブルに記載された内容に従って、パケットを受信した際に行う動作を決定するフローテーブル管理処理を実行させるためのネットワーク管理プログラムであって、
    前記スイッチに、
    前記フローテーブル管理処理で、前記フローテーブルに含まれるコントローラの識別子が示すコントローラ以外による当該フローテーブルの参照および更新を禁止させる
    ことを特徴とするネットワーク管理プログラム。
  10. コンピュータに、
    フローテーブル管理処理で、パケットを受信した際に、フローテーブルに含まれる優先度順に、当該パケットが前記フローテーブルに記載された条件に適合するかどうかの確認処理をさせ、適合する場合には、当該フローテーブルに記載された処理を実行させる
    請求項9記載のネットワーク管理プログラム。
JP2014024590A 2014-02-12 2014-02-12 ネットワークシステム、スイッチ、ネットワーク管理方法およびネットワーク管理プログラム Pending JP2015154149A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014024590A JP2015154149A (ja) 2014-02-12 2014-02-12 ネットワークシステム、スイッチ、ネットワーク管理方法およびネットワーク管理プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014024590A JP2015154149A (ja) 2014-02-12 2014-02-12 ネットワークシステム、スイッチ、ネットワーク管理方法およびネットワーク管理プログラム

Publications (1)

Publication Number Publication Date
JP2015154149A true JP2015154149A (ja) 2015-08-24

Family

ID=53896025

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014024590A Pending JP2015154149A (ja) 2014-02-12 2014-02-12 ネットワークシステム、スイッチ、ネットワーク管理方法およびネットワーク管理プログラム

Country Status (1)

Country Link
JP (1) JP2015154149A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019201374A (ja) * 2018-05-18 2019-11-21 アライドテレシスホールディングス株式会社 情報処理システム
WO2022101988A1 (ja) * 2020-11-10 2022-05-19 日本電信電話株式会社 通信装置、通信方法及び通信プログラム

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013133227A1 (ja) * 2012-03-05 2013-09-12 日本電気株式会社 ネットワークシステム、スイッチ、及びネットワーク構築方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013133227A1 (ja) * 2012-03-05 2013-09-12 日本電気株式会社 ネットワークシステム、スイッチ、及びネットワーク構築方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
前田繁章: "OpenFlow ver1.1およびver1.2の追加機能と活用例", 連載:OPENFLOW〜今までの概念を覆す新しいネットワークの実現〜, THINKIT, JPN6013036049, 23 February 2012 (2012-02-23) *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019201374A (ja) * 2018-05-18 2019-11-21 アライドテレシスホールディングス株式会社 情報処理システム
JP7083275B2 (ja) 2018-05-18 2022-06-10 アライドテレシスホールディングス株式会社 情報処理システム
WO2022101988A1 (ja) * 2020-11-10 2022-05-19 日本電信電話株式会社 通信装置、通信方法及び通信プログラム
JP7476979B2 (ja) 2020-11-10 2024-05-01 日本電信電話株式会社 通信装置、通信方法及び通信プログラム

Similar Documents

Publication Publication Date Title
EP3541044B1 (en) Technologies for accelerated quic packet processing with hardware offloads
US10789199B2 (en) Network traffic rate limiting in computing systems
US8713305B2 (en) Packet transmission method, apparatus, and network system
US9979704B2 (en) End-to-end security for virtual private service chains
US11469896B2 (en) Method for securing the rendezvous connection in a cloud service using routing tokens
US10237274B2 (en) Software defined network (SDN) application integrity
US11716314B2 (en) System and apparatus for enhanced QOS, steering and policy enforcement for HTTPS traffic via intelligent inline path discovery of TLS terminating node
KR102200857B1 (ko) 다중 경로 환경에서 IPsec 터널들의 효율적인 사용
US10404838B2 (en) Systems and methods for selecting microservices to process protocol data streams
US10498529B1 (en) Scalable node for secure tunnel communications
US10498669B2 (en) Communication system, switch, controller, ancillary data management apparatus, data forwarding method, and program
US10826916B2 (en) Agent-less network traffic inspection using an overlay network
US11558185B2 (en) Stream-based key management
EP3541007A1 (en) Cryptographic communication apparatus, cryptographic communication system, cryptographic communication method and computer-readable medium
US9219712B2 (en) WAN optimization without required user configuration for WAN secured VDI traffic
JP2015154149A (ja) ネットワークシステム、スイッチ、ネットワーク管理方法およびネットワーク管理プログラム
US20180262473A1 (en) Encrypted data packet
KR101755620B1 (ko) 네트워크 장비 및 그 제어 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170112

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20171026

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171031

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20180424