(57)【要約】【課題】仮想化されたネットワークサービス機能の可用性を高める。【解決手段】サービスチェイニングシステム１において、各装置間の死活監視と、リンクの障害検知及び障害復旧並びに各装置のリンクの障害検知及び障害復旧とを、各装置が自律的に行い、かつ分散して行う。また、サービスチェイニングシステム１において、各装置間のサービスチェイニングを可能にするためのサービスファンクションステートアドバタイズメント情報の相互交換を、ＳＣＦ装置１０間で自律的に行い、かつ分散して行う。また、各ＳＣＦ装置１０が、自装置が管理するトポロジ情報テーブルに基づき、転送先のＳＦを「リソース情報」及び「コスト合計値」に基づき適切に選択する。【選択図】図１
2016046736.tif 000002
【特許請求の範囲】
【請求項１】
通信可能に接続された複数のサービスチェイニングフォワーダ装置と、
各前記サービスチェイニングフォワーダ装置配下に接続された、データに対してネットワーク処理を実行するネットワーク処理機能を有するネットワーク処理装置と、
外部から受信したデータを処理するネットワーク処理機能を識別し、前記サービスチェイニングフォワーダ装置へ該データを転送し、前記サービスチェイニングフォワーダ装置から受信したデータを外部へ転送するクラシファイヤ装置と
を含み、
前記サービスチェイニングフォワーダ装置のそれぞれは、
各ネットワーク処理機能の種別に、該ネットワーク処理機能を有するネットワーク処理装置が配下に接続されたサービスチェイニングフォワーダ装置の装置識別情報を対応付けた転送情報を管理する管理部と、
前記クラシファイヤ装置又は他のサービスチェイニングフォワーダ装置からデータを受信すると、前記転送情報において、該データが処理されるネットワークサービス機能に対応する装置識別情報に、自装置が該当する場合、自装置配下に接続される該ネットワークサービス機能を有するネットワーク処理装置へ該データを転送し、自装置が該当しない場合、他のサービスチェイニングフォワーダ装置又は前記クラシファイヤ装置へ該データを転送する転送部と
を備える
ことを特徴とするサービスチェイニングシステム。
【請求項２】
さらに、
前記サービスチェイニングフォワーダ装置のそれぞれにおいて、
前記管理部は、前記転送情報において、各ネットワーク処理機能の種別に該ネットワークサービス機能に割り当てられた計算機資源のリソース情報を対応付けて管理し、
自装置が受信した受信データについて、該受信データを処理するネットワークサービス機能のうち該受信データを未処理のネットワークサービス機能の有無を判定する判定部と、
前記判定部により未処理のネットワークサービス機能があると判定された場合、前記転送情報において、該未処理のネットワークサービス機能に対応する前記リソース情報が最良であるネットワークサービス機能を選択する選択部と
を備え、
前記転送部は、前記選択部により選択されたネットワークサービス機能に対応する装置識別情報に、自装置が該当する場合、自装置配下に接続される該ネットワークサービス機能を有するネットワーク処理装置へ前記受信データを転送し、自装置が該当しない場合、他のサービスチェイニングフォワーダ装置へ前記受信データを転送し、又は、前記判定部により未処理のネットワークサービス機能がないと判定された場合、前記クラシファイヤ装置へ前記受信データを転送する
ことを特徴とする請求項１に記載のサービスチェイニングシステム。
【請求項３】
さらに、
前記サービスチェイニングフォワーダ装置のそれぞれは、
前記管理部は、前記転送情報において、自装置と前記ネットワーク処理機能を有する他のサービスチェイニングフォワーダ装置との間の経路を、該ネットワーク処理機能の種別に対応付けて管理し、
前記選択部は、前記受信データを処理するネットワークサービス機能のうち、前記転送情報において対応する前記リソース情報が最良であるネットワークサービス機能が複数である場合、該複数のネットワークサービス機能のうち、前記転送情報において対応する前記経路が最短であるネットワークサービス機能を選択する
ことを特徴とする請求項２に記載のサービスチェイニングシステム。
【請求項４】
さらに、
前記サービスチェイニングフォワーダ装置のそれぞれは、
自装置の装置識別情報、及び、自装置配下に接続されるネットワーク処理装置から受信した、該ネットワーク処理装置が有するネットワークサービス機能の種別を含むサービス機能情報を、自装置と接続される他のサービスチェイニングフォワーダ装置へ送信する送信部と、
自装置と接続される他のサービスチェイニングフォワーダ装置から、該他のサービスチェイニングフォワーダ装置における前記サービス機能情報を受信する受信部と、
自装置及び前記他のサービスチェイニングフォワーダ装置における前記サービス機能情報を格納するデータベースと、
前記データベースに格納される前記サービス機能情報から前記転送情報を生成する生成部と
を備えることを特徴とする請求項１、２又は３に記載のサービスチェイニングシステム。
【請求項５】
自装置の装置識別情報、及び、自装置配下に接続されるネットワーク処理装置から受信した、該ネットワーク処理装置が有するネットワークサービス機能の種別を含むサービス機能情報を、自装置と接続される他のサービスチェイニングフォワーダ装置へ送信する送信部と、
前記他のサービスチェイニングフォワーダ装置から、該他のサービスチェイニングフォワーダ装置における前記サービス機能情報を受信する受信部と、
自装置及び前記他のサービスチェイニングフォワーダ装置における前記サービス機能情報を格納するデータベースと、
前記データベースに格納される前記サービス機能情報から、各ネットワーク処理機能の種別に、該ネットワーク処理機能を有するネットワーク処理装置が配下に接続されたサービスチェイニングフォワーダ装置の装置識別情報を対応付けた転送情報を生成する生成部と、
他のサービスチェイニングフォワーダ装置又はクラシファイヤ装置から受信したデータを処理するネットワークサービス機能を特定し、特定した該データを処理するネットワークサービス機能に該当する、前記転送情報において対応するネットワークサービス機能を選択する選択部と、
前記転送情報において、前記選択部により選択されたネットワークサービス機能に対応する装置識別情報に該当するサービスチェイニングフォワーダ装置が自装置である場合、自装置配下に接続される該ネットワークサービス機能を有するネットワーク処理装置へ前記データを転送し、前記選択部により選択されたネットワークサービス機能に対応する装置識別情報に該当するサービスチェイニングフォワーダ装置が前記他のサービスチェイニングフォワーダ装置である場合、該他サービスチェイニングフォワーダ装置又はクラシファイヤ装置へ前記データを転送する転送部と
を備えることを特徴とするサービスチェイニングフォワーダ装置。
【請求項６】
さらに、
前記サービス機能情報は、前記ネットワーク処理装置が有するネットワークサービス機能に該ネットワークサービス機能に割り当てられた計算機資源のリソース情報を対応付けられ、
前記生成部は、前記リソース機能情報から、各ネットワーク処理機能の種別に該ネットワークサービス機能に割り当てられた計算機資源のリソース情報を対応付けて前記転送情報を生成し、
前記選択部は、前記転送情報において、前記未処理のネットワークサービス機能に対応する前記リソース情報が最良であるネットワークサービス機能を選択する
ことを特徴とする請求項５に記載のサービスチェイニングフォワーダ装置。
【請求項７】
さらに、
前記生成部は、自装置と前記ネットワーク処理機能を有する他のサービスチェイニングフォワーダ装置との間の経路を算出し、該ネットワーク処理機能の種別に該経路を対応付けて前記転送情報を生成し、
前記選択部は、前記データを処理するネットワークサービス機能のうち、前記転送情報において対応する前記リソース情報が最良であるネットワークサービス機能が複数である場合、該複数のネットワークサービス機能のうち、前記転送情報において対応する前記経路が最短であるネットワークサービス機能を選択する
ことを特徴とする請求項６に記載のサービスチェイニングフォワーダ装置。
【請求項８】
サービスチェイニングシステムにおいて実行されるサービスチェイニング方法であって、
前記サービスチェイニングシステムは、
通信可能に接続された複数のサービスチェイニングフォワーダ装置と、
各前記サービスチェイニングフォワーダ装置配下に接続された、データに対してネットワーク処理を実行するネットワーク処理機能を有するネットワーク処理装置と、
外部から受信したデータを処理するネットワーク処理機能を識別し、前記サービスチェイニングフォワーダ装置へ該データを転送し、前記サービスチェイニングフォワーダ装置から受信したデータを外部へ転送するクラシファイヤ装置と
を含み、
前記サービスチェイニングフォワーダ装置のそれぞれが、
各ネットワーク処理機能の種別に、該ネットワーク処理機能を有するネットワーク処理装置が配下に接続されたサービスチェイニングフォワーダ装置の装置識別情報を対応付けた転送情報を管理し、
前記クラシファイヤ装置又は他のサービスチェイニングフォワーダ装置からデータを受信すると、前記転送情報において、該データが処理されるネットワークサービス機能に対応する装置識別情報に、自装置が該当する場合、自装置配下に接続される該ネットワークサービス機能を有するネットワーク処理装置へ該データを転送し、自装置が該当しない場合、他のサービスチェイニングフォワーダ装置又は前記クラシファイヤ装置へ該データを転送する
各処理を含むことを特徴とするサービスチェイニング方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サービスチェイニングシステム、サービスチェイニングフォワーダ装置、及びサービスチェイニング方法に関する。
【背景技術】
【０００２】
近年、仮想化技術の進展、汎用サーバ装置のＣＰＵ（Central  Processing  Unit）等の処理装置の性能向上が著しい。そして、従来、専用のハードウェアに実装されていたネットワークサービス機能が、汎用サーバ装置上に仮想的に実装されるＮＦＶ（Network  Functions  Virtualization）なる技術が検討されている。
【０００３】
ＮＦＶでは、通信事業者のキャリアネットワークにおいて、サービスチェイニングが行われる。サービスチェイニングとは、ユーザのフローが、フロー毎にユーザの契約状況に基づき、該当する仮想化されたネットワークサービス機能へ送信されて処理された後、宛先又は他の仮想化されたネットワークサービス機能へ転送されるものである。
【０００４】
例えば、サービスチェイニングの一手法として、ユーザが、仮想化されたネットワークサービス機能を選択的に利用できるように、ユーザのパケットが、識別子を付与され、識別子をもとに適切な仮想化されたネットワークサービス機能へ転送される方式がある。この方式では、ＣＬ（CLassifier：クラシファイヤ）が、パケットごとに判定してパケットに対して適切な識別子を付与する。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】“Network  Functions  Virtualization”、［online］、ETSI-European  Telecommunications  Standards  Institute、［平成２６年８月６日検索］、インターネット＜ＵＲＬ：http://www.etsi.org/technologies-clusters/technologies/nfv＞
【非特許文献２】Network  Working  Group（P.  Quinn,  Ed.  他）、“Service  Function  Chaining  （SFC）  Architecture  draft-quinn-sfc-arch-05.txt”、［online］、May  5,  2014、The  Internet  Engineering  Task  Force（IETF（登録商標））、［平成２６年８月６日検索］、インターネット＜ＵＲＬ：http://tools.ietf.org/pdf/draft-quinn-sfc-arch-05.pdf＞
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述の従来技術では、仮想化されたネットワークサービス機能が制御装置により集中制御される。このため、従来技術では、制御装置が故障した場合に影響が大きく、仮想化されたネットワークサービス機能の可用性の問題がある。
【０００７】
本願が開示する実施形態の一例は、上記に鑑みてなされたものであって、仮想化されたネットワークサービス機能の可用性を高めることを目的とする。
【課題を解決するための手段】
【０００８】
本願が開示する実施形態の一例は、サービスチェイニングシステムは、通信可能に接続された複数のサービスチェイニングフォワーダ装置と、各サービスチェイニングフォワーダ装置配下に接続された、データに対してネットワーク処理を実行するネットワーク処理機能を有するネットワーク処理装置と、外部から受信したデータを処理するネットワーク処理機能を識別し、サービスチェイニングフォワーダ装置へデータを転送し、サービスチェイニングフォワーダ装置から受信したデータを外部へ転送するクラシファイヤ装置とを含む。サービスチェイニングフォワーダ装置のそれぞれが、各ネットワーク処理機能の種別に、ネットワーク処理機能を有するネットワーク処理装置が配下に接続されたサービスチェイニングフォワーダ装置の装置識別情報を対応付けた転送情報を管理する。そして、サービスチェイニングフォワーダ装置のそれぞれが、クラシファイヤ装置又は他のサービスチェイニングフォワーダ装置からデータを受信すると、転送情報において、データが処理されるネットワークサービス機能に対応する装置識別情報に、自装置が該当する場合、自装置配下に接続される該ネットワークサービス機能を有するネットワーク処理装置へデータを転送し、自装置が該当しない場合、他のサービスチェイニングフォワーダ装置又はクラシファイヤ装置へデータを転送する。
【発明の効果】
【０００９】
本願が開示する実施形態の一例によれば、例えば、仮想化されたネットワークサービス機能の可用性を高めることができる。
【図面の簡単な説明】
【００１０】
【図１】図１は、サービスチェイニングシステムの構成の一例を示す図である。
【図２】図２は、サービスチェイニングフォワーダ装置の構成の一例示す図である。
【図３】図３は、サービスファンクションステートアドバタイズメントテーブルの一例を示す図である。
【図４】図４は、ネイバーテーブルの一例を示す図である。
【図５】図５は、サービスファンクションステートデータテーブルの一例を示す図である。
【図６】図６は、トポロジ情報テーブルの一例を示す図である。
【図７】図７は、セッション情報テーブルの一例を示す図である。
【図８】図８は、サービスチェイニングフォワーダ装置が有する情報の一覧を示す図である。
【図９】図９は、サービスファンクション装置の構成の一例を示す図である。
【図１０】図１０は、クラシファイヤ装置の構成の一例を示す図である。
【図１１】図１１は、サービスチェイニングフォワーダ装置が実行する転送処理の一例を示すフローチャートである。
【図１２】図１２は、トポロジ情報の生成過程の一例を示す図である。
【図１３】図１３は、各装置間の死活監視並びに障害検知及び障害復旧の一例を示す図である。
【図１４】図１４は、ユーザネットワーク／端末から外部ネットワークへパケットが送信される際に、パケットがサービスファンクションへ転送されるパケットフローの流れの一例を示す図である。
【図１５】図１５は、外部ネットワークからユーザネットワーク／端末へパケットが送信される際に、パケットがサービスファンクションへ転送されるパケットフローの流れの一例を示す図である。
【図１６】図１６は、各プログラムが実行されることにより、サービスチェイニングフォワーダ装置、サービスファンクション装置、クラシファイヤ装置が実現されるコンピュータの一例を示す図である。
【発明を実施するための形態】
【００１１】
［実施形態］
以下、本願が開示するサービスチェイニングシステム等の実施形態を説明する。なお、以下の実施形態は、一例を示すに過ぎず、本願が開示する技術を限定するものではない。また、以下に示す実施形態及びその変形例は、矛盾しない範囲で適宜組合せてもよい。
【００１２】
（サービスチェイニングシステムの構成）
図１は、サービスチェイニングシステムの構成の一例を示す図である。図１に示すサービスチェイニングシステム１は、仮想化されたネットワークサービス機能を提供する仮想化されたネットワークに適用される。サービスチェイニングシステム１は、ＳＣＦ（Service  Chaining  Forwarder：サービスチェイニングフォワーダ）装置１０、ＳＦ（Service  Function：サービスファンクション）装置２０、ＣＬ（CLassifier：クラシファイヤ）装置３０、ユーザネットワーク／端末４０、ＧＷＲ（GateWay  Router）装置５０を有する。サービスチェイニングシステム１は、ＧＷＲ５０を介して外部ネットワーク６０と接続される。
【００１３】
図１に示すＳＣＦ＿Ａ１０ａ、ＳＣＦ＿Ｂ１０ｂ、ＳＣＦ＿Ｃ１０ｃ、ＳＣＦ＿Ｄ１０ｄを総称してＳＣＦ装置１０という。また、図１に示すＳＦ（ＳＢＣ：Session  Border  Controller）２０ａ、ＳＦ（ＮＡＴ：Network  Address  Translation）２０ｂ−１、ＳＦ（ＤＰＩ：Deep  Packet  Inspection）２０ｂ−２、ＳＦ（ＢＡＳ：Broadband  Access  Server）２０ｃ、ＳＦ（ＤＰＩ）２０ｄを総称してＳＦ装置２０という。また、図１に示すＣＬ３０ａ、ＣＬ３０ｂを総称してＣＬ装置３０という。
【００１４】
図１に示すように、ＳＣＦ＿Ａ１０ａ及びＳＣＦ＿Ｂ１０ｂ、ＳＣＦ＿Ｂ１０ｂ及びＳＣＦ＿Ｃ１０ｃ、ＳＣＦ＿Ｃ１０ｃ及びＳＣＦ＿Ｄ１０ｄ、ＳＣＦ＿Ｂ１０ｂ及びＳＣＦ＿Ｄ１０ｄのそれぞれが接続される。図１に示すように、隣接して接続された２つのＳＣＦ装置１０、例えば、ＳＣＦ＿Ａ１０ａに対するＳＣＦ＿Ｂ１０ｂ、ＳＣＦ＿Ｂ１０ｂに対するＳＣＦ＿Ａ１０ａを、隣接するＳＣＦ装置１０という。また、図１に示すように、ＣＬ３０ａ及びＳＣＦ＿Ｄ２０ｄ、ＣＬ３０ｂ及びＳＣＦ＿Ｃ２０ｃがそれぞれ接続される。すなわち、ＳＣＦ＿Ｄ２０ｄは、ＣＬ３０ａに隣接するＳＣＦ装置２０であり、ＳＣＦ＿Ｃ２０ｃは、ＣＬ３０ｂに隣接するＳＣＦ装置２０である。
【００１５】
なお、ＳＣＦ＿Ａ１０ａは、ＩＰ（Internet  Protocol）アドレス“192.168.1.2”が割り当てられている。ＳＣＦ＿Ｂ１０ｂは、ＩＰアドレス“162.168.1.3”が割り当てられている。ＳＣＦ＿Ｃ１０ｃは、ＩＰアドレス“162.168.1.4”が割り当てられている。ＳＣＦ＿Ｄ１０ｄは、ＩＰアドレス“162.168.1.5”が割り当てられている。また、各ＳＦ装置２０、各ＣＬ装置３０も、それぞれ異なるＩＰアドレスが割り当てられている。
【００１６】
ＳＦ装置２０は、ＳＣＦ装置１０に接続され、ネットワークサービス機能を提供する。図１の例では、ＳＦ（ＳＢＣ：Session  Border  Controller）装置２０ａが、ＳＣＦ＿Ａ１０ａに接続される。ＳＦ（ＳＢＣ）装置２０ａは、セッションボーダコントローラの機能を提供する。また、ＳＦ（ＮＡＴ：Network  Address  Translation）装置２０ｂ−１、ＳＦ（ＤＰＩ：Deep  Packet  Inspection）装置２０ｂ−２が、ＳＣＦ＿Ｂ１０ｂに接続される。ＳＦ（ＮＡＴ）装置２０ｂ−１は、ネットワークアドレス変換の機能を提供する。ＳＦ（ＤＰＩ）装置２０ｂ−２は、ディープパケットインスペクションの機能を提供する。
【００１７】
また、ＳＦ（ＢＡＳ：Broadband  Access  Server）装置２０ｃが、ＳＣＦ＿Ｃ１０ｃに接続される。ＳＦ（ＢＡＳ）装置２０ｃは、セッションボーダコントローラの機能を提供する。また、ＳＦ（ＤＰＩ）装置２０ｄが、ＳＣＦ＿Ｄ１０ｄに接続される。ＳＦ（ＤＰＩ）装置２０ｄは、ディープパケットインスペクションの機能を提供する。
【００１８】
ＣＬ装置３０は、ユーザネットワーク／端末４０及び外部ネットワーク６０に対するサービスチェイニングレイヤの接続側に位置するＳＣＦ装置１０に接続される。図１の例では、ＳＦＣ＿Ｄ１０ｄにＣＬ３０ａが接続され、ＳＦＣ＿Ｃ１０ｃにＣＬ３０ｂが接続される。
【００１９】
ＳＣＦ装置１０、ＳＦ装置２０、ＣＬ装置３０により構築されるネットワークが、サービスチェイニングが実行されるサービスチェイニングレイヤである。ＣＬ装置３０は、ユーザネットワーク／端末４０及び外部ネットワーク６０に対するサービスチェイニングレイヤのゲートウェイとなる。
【００２０】
（サービスチェイニングフォワーダ装置の構成）
図２は、サービスチェイニングフォワーダ装置の構成の一例示す図である。ＳＣＦ装置１０は、ＮＰ（Network  Processor）及び／又はＣＰＵ（Central  Processing  Unit）を有するネットワーク装置である。ＳＦＣ装置１０は、サービスチェイニングレイヤにおけるパケットの経路制御等を実行するコントロールプレーン部１１、データ転送処理等を実行するデータプレーン部１２を有する。
【００２１】
ＳＣＦ装置１０は、受信パケットを処理するＳＦが稼働するＳＦ装置２０が接続された他のＳＣＦ装置１０へ、受信パケットを送信する。ＳＣＦ装置１０は、受信パケットの５ｔｕｐｌｅ情報、及びＳＦの識別子を含む受信パケットのメタデータに該当するセッション情報をデータプレーン部１２が管理している場合、データプレーン部１２に受信パケットの転送を実行させる。一方、ＳＣＦ装置１０は、５ｔｕｐｌｅ情報及びＳＦの識別子を含む受信パケットのメタデータに該当するセッション情報をデータプレーン部１２が管理していない場合、コントロールプレーン部１１が管理するトポロジ情報に基づき、コントロールプレーン部１１の制御下でデータプレーン部１２に受信パケットの転送を実行させる。なお、５ｔｕｐｌｅ情報は、パケットフローの属性であり、送信元及び送信先ＩＰアドレス、送信元及び送信先ポート番号、プロトコル番号の組である。
【００２２】
なお、パケットのメタデータは、当該パケットが処理を要するＳＦの識別子、各ＳＦでの処理結果に応じてさらに当該パケットが処理を要するＳＦの識別子、及びＳＦの識別子ごとの処理済み情報を含む。ＳＦの識別子ごとの処理済み情報は、該当ＳＦにて当該パケットが処理済みであるか否かを示す情報である。なお、メタデータは、クラシファイヤした結果も含む場合がある。すなわち、ＣＬ装置３０は、高位レイヤ（例えば７レイヤ）までパケットを分析するが、さらに分析が必要なサービスの場合であっても、ＣＬ装置３０によるクラシファイヤの結果がメタデータに含まれていると、再度高位レイヤまで分析する必要がなくなる。
【００２３】
コントロールプレーン部１１は、データプレーン部１２が、ＳＣＦ装置１０間でのデータ転送処理を行うために用いる各種情報を管理する。コントロールプレーン部１１は、処理部１１ａ、サービスファンクションステートアドバタイズメント管理部１１ｂ、ネイバーテーブル管理部１１ｃ、サービスファンクションステートデータベース１１ｄ、トポロジ情報管理部１１ｅを有する。処理部１１ａは、ＮＰ、ＣＰＵ等の処理装置である。
【００２４】
サービスファンクションステートアドバタイズメント管理部１１ｂは、サービスファンクションステートアドバタイズメントテーブル１１ｂ−１（図３参照）を格納する。図３は、サービスファンクションステートアドバタイズメントテーブルの一例を示す図である。図３は、ＳＣＦ＿Ａ１０ａが有するサービスファンクションステートアドバタイズメントテーブル１１ｂ−１の例である。
【００２５】
図３に示すように、サービスファンクションステートアドバタイズメントテーブル１１ｂ−１は、「ＳＣＦ装置」「ＩＰアドレス」「ＳＦ」「リソース情報」のカラムを有する。「ＳＣＦ装置」は、該当ＳＦ装置２０が接続されるＳＣＦ装置１０の名称である。「ＩＰアドレス」は、該当ＳＦ装置２０が接続されるＳＣＦ装置１０に割り当てられたＩＰアドレスである。「ＳＦ」は、該当ＳＦ装置２０が有するサービスファンクション（ＳＦ）の名称である。「リソース情報」は、該当のＳＦが稼働するＳＦ装置２０のリソース状況を示す、例えば残ＣＰＵ使用率等である。
【００２６】
図３の例では、ＳＣＦ＿Ａ１０ａの配下に接続されるＳＦ装置２０において、“ＳＢＣ”のＳＦが稼働していることを示す。そして、“ＳＢＣ”のＳＦが稼働しているＳＦ装置２０の残ＣＰＵ使用率が６０％であることを示す。
【００２７】
ネイバーテーブル管理部１１ｃは、ネイバーテーブル１１ｃ−１（図４参照）を格納する。図４は、ネイバーテーブルの一例を示す図である。図４は、ＳＣＦ＿Ａ１０ａが有するネイバーテーブル１１ｃ−１の例である。ネイバーテーブル１１ｃ−１のテーブル構成は、サービスファンクションステートアドバタイズメントテーブル１１ｂ−１と同様である。
【００２８】
ネイバーテーブル１１ｃ−１は、ＳＣＦ装置１０に隣接する他のＳＣＦ装置１０の「ＳＣＦ装置」「ＩＰアドレス」「ＳＦ」「リソース情報」をリストしたものである。図４の例では、ＳＣＦ＿Ａ１０ａに隣接するＳＣＦ装置１０は、ＳＣＦ＿Ｂ１０ｂであることを示す。そして、ＳＣＦ＿Ｂ１０ｂの配下に接続されるＳＦ装置２０において、識別子が“ＮＡＴ”“ＤＰＩ”のＳＦが稼働していることを示す。そして、識別子が“ＮＡＴ”のＳＦが稼働しているＳＦ装置２０の残ＣＰＵ使用率が１００％であり、識別子が“ＤＰＩ”のＳＦが稼働しているＳＦ装置２０の残ＣＰＵ使用率が５０％であることを示す。
【００２９】
サービスファンクションステートデータベース１１ｄは、サービスファクションステートデータテーブル１１ｄ−１（図５参照）を格納する。図５は、サービスファンクションステートデータベースのテーブルの一例を示す図である。図５は、全てのＳＣ装置１０が共通して有するサービスファクションステートデータテーブル１１ｄ−１の例である。サービスファクションステートデータテーブル１１ｄ−１のテーブル構成は、サービスファンクションステートアドバタイズメントテーブル１１ｂ−１と同様である。すなわち、サービスファクションステートデータテーブル１１ｄ−１は、ＳＣＦ装置１０が有する全てのＳＦ装置２０からのサービスファンクションステートアドバタイズメント情報を集約したものである。サービスファクションステートデータテーブル１１ｄ−１は、全てのＳＣＦ装置１０において同一である。
【００３０】
トポロジ情報管理部１１ｅは、トポロジ情報テーブル１１ｅ−１（図６参照）を格納する。図６は、トポロジ情報テーブルの一例を示す図である。図６は、ＳＣＦ＿Ａ１０ａが有するトポロジ情報テーブル１１ｅ−１の例である。トポロジ情報テーブル１１ｅ−１は、サービスファクションステートデータテーブル１１ｄ−１が有するレコードのうち「ＳＦ」が“ＣＬ”であるレコード以外のレコードを抽出し、自装置であるＳＣＦ装置１０から該当のＳＦが稼働するＳＦ装置２０までの最短ホップ数を「コスト合計値」として算出し、「ＳＦ」「ＳＣＦ」「ＩＰアドレス」「リソース情報」「コスト合計値」の順序でカラムを並べ替えたものである。
【００３１】
図６の例では、識別子が“ＳＢＣ”の「ＳＦ」は、自装置であるＳＣＦ＿Ａ１０ａの配下のＳＦ装置２０で稼働し、「リソース情報」が“６０”であることを示す。また、図６の例では、識別子が“ＮＡＴ”の「ＳＦ」は、ＳＣＦ＿Ｂ１０ｂの配下のＳＦ装置２０で稼働し、「リソース情報」が“１００”であり、「コスト合計値」が“１”であることを示す。
【００３２】
処理部１１ａは、ＳＦＣ装置１０に接続された配下のＳＦ装置２０から定期的に受信するサービスファンクションステートアドバタイズメント情報を、サービスファンクションステートアドバタイズメント管理部１１ｂへ格納する。サービスファンクションステートアドバタイズメント情報は、ＳＦ装置２０が有するサービスファンクション（ＳＦ）の種別、ＳＦ装置２０のリソース情報（例えば残ＣＰＵ使用率等）を含む。なお、処理部１１ａは、サービスファンクションステートアドバタイズメント情報に関し、ＳＣＦ装置１０に接続されるＣＬ装置３０も、１つの機能として、ＳＦ装置２０同様に扱う。
【００３３】
処理部１１ａは、配下のＳＦ装置２０からサービスファンクションステートアドバタイズメント情報を受信すると、受信したサービスファンクションステートアドバタイズメント情報を、ＳＣＦ装置１０の装置識別情報、ＳＣＦ装置１０に割り当てられたＩＰアドレスに対応付けて、サービスファンクションステートアドバタイズメントテーブル１１ｂ−１へ登録する。そして、処理部１１ａは、サービスファンクションステートアドバタイズメントテーブル１１ｂ−１へ登録した情報を、サービスファンクションステートデータベース１１ｄへ登録する。
【００３４】
また、処理部１１ａは、サービスファンクションステートアドバタイズメント管理部１１ｂへ格納したサービスファンクションステートアドバタイズメントテーブル１１ｂ−１の情報を、ネイバーテーブル管理部１１ｃが管理するネイバーテーブル１１ｃ−１に登録される、隣接するＳＣＦ装置１０へ送信する。また、処理部１１ａは、隣接するＳＣＦ装置１０から受信したサービスファンクションステートアドバタイズメントテーブル１１ｂ−１の情報を、サービスファンクションステートデータベース１１ｄへ登録する。なお、処理部１１ａは、隣接するＳＣＦ装置１０から受信した、当該隣接するＳＣＦ装置１０が有するサービスファンクションステートアドバタイズメントテーブル１１ｂ−１の情報を、ネイバーテーブル管理部１１ｃに格納されるネイバーテーブル１１ｃ−１へ登録する。すなわち、ネイバーテーブル１１ｃ−１は、隣接するＳＣＦ装置１０から受信する、当該隣接するＳＣＦ装置１０が有するサービスファンクションステートアドバタイズメントテーブル１１ｂ−１の情報にて更新されることにより、サービスファンクションステートアドバタイズメント情報の交換の過程でネイバーテーブル１１ｃ−１も常に最新情報の状態に保たれる。なお、ネイバーテーブル１１ｃ−１は、「ＳＣＦ装置」「ＩＰアドレス」のカラムのみを有するとしてもよい。
【００３５】
そして、処理部１１ａは、隣接するＳＣＦ装置１０から受信したサービスファンクションステートアドバタイズメントテーブル１１ｂ−１の情報を、ネイバーテーブル１１ｃ−１に登録されている、他の隣接するＳＣＦ装置１０へ転送する。処理部１１ａが、受信したサービスファンクションステートアドバタイズメントテーブル１１ｂ−１の情報を他の隣接するＳＣＦ装置１０へ転送することを、ＳＣＦ装置１０間で繰り返すことにより、各ＳＦ装置２０から送信されたサービスファンクションステートアドバタイズメント情報が、全てのＳＣＦ装置１０へ通知されることになる。
【００３６】
また、処理部１１ａは、隣接するＳＣＦ装置１０から受信したサービスファンクションステートアドバタイズメントテーブル１１ｂ−１の情報を、サービスファンクションステートデータベース１１ｄへ登録する。サービスファンクションステートデータベース１１ｄは、各ＳＦ装置２０から送信されたサービスファンクションステートアドバタイズメント情報に基づく、全てのＳＦ装置２０のサービスファンクションステートアドバタイズメントテーブル１１ｂ−１の情報が登録されることになる。
【００３７】
また、処理部１１ａは、サービスファンクションステートデータベース１１ｄに格納されるサービスファクションステートデータテーブル１１ｄ−１に基づき、トポロジ情報テーブル１１ｅ−１を生成する。すなわち、処理部１１ａは、サービスファクションステートデータテーブル１１ｄ−１の情報に基づき、ダイクストラ等のアルゴリズムに基づき最短経路を計算した結果である「コスト合計値」を含むトポロジ情報テーブル１１ｅ−１を生成する。
【００３８】
データプレーン部１２は、ＳＣＦ装置１０間でのデータ転送処理を行う。データプレーン部１２は、処理部１２ａ、セッション情報管理部１２ｂを有する。処理部１２ａは、ＮＰ、ＣＰＵ等の処理装置である。
【００３９】
セッション情報管理部１２ｂは、セッション情報テーブル１２ｂ−１（図７参照）を格納する。図７は、セッション情報テーブルの一例を示す図である。セッション情報テーブル１２ｂ−１は、「送信元ＩＰアドレス」「送信先ＩＰアドレス」「送信元ポート番号」「送信先ポート番号」「プロトコル番号」の５ｔｕｐｌｅ情報及び「ＳＦ１」「ＳＦ２」・・・のカラムを有する。「ＳＦ１」「ＳＦ２」「ＳＦ３」・・・のカラムは、対応する５ｔｕｐｌｅ情報で特定されるフローが通過したＳＦの識別子を格納する。すなわち、セッション情報テーブル１２ｂ−１は、５ｔｕｐｌｅ情報と、該当５ｔｕｐｌｅ情報で特定されるフローが通過したＳＦの識別子を対応付けて管理する。
【００４０】
処理部１２ａは、コントロールプレーン部１１が管理するトポロジ情報に基づき、コントロールプレーン部１１の制御下で、受信パケットの転送を実行する。
【００４１】
図８は、サービスチェイニングフォワーダ装置が有する情報の一覧を示す図である。上述のＳＣＦ装置１０の動作により、各ＳＣＦ装置１０は、図８に示すような情報を有することになる。すなわち、各ＳＣＦ装置１０は、サービスファンクションステートアドバタイズメント管理部１１ｂに、それぞれの配下のＳＦ装置２０のサービスファンクションステートアドバタイズメント情報を格納する。そして、各ＳＣＦ装置１０は、自装置が管理するサービスファンクションステートアドバタイズメント情報を転送して全てのＳＣＦ装置１０へ通知する。
【００４２】
各ＳＣＦ装置１０は、他のＳＣＦ装置１０から受信したサービスファンクションステートアドバタイズメント情報をサービスファンクションステートデータベース１１ｄへ集約する。そして、各ＳＣＦ装置１０は、各サービスファンクションステートデータベース１１ｄの登録情報から、自装置から各サービスファンクションへのコスト合計値を算出し、算出したコスト合計値を含む、自装置から各サービスファンクションへのトポロジ情報をトポロジ情報管理部１１ｅにて管理する。
【００４３】
（サービスファンクション装置の構成）
図９は、サービスファンクション装置の構成の一例を示す図である。ＳＦ装置２０は、所定のネットワークサービス機能を提供するプログラムがＣＰＵ等の処理装置を有するサーバ装置で実行されることにより実装される、仮想化されたネットワークサービス機能である。ＳＦ装置２０は、受信パケットに対して各種のネットワークサービス処理を行い、又は、受信パケットを制御する。
【００４４】
ＳＦ装置２０は、制御部２１、サービスファンクション情報送信部２２、サービスファンクション管理部２３、サービスファンクション処理部２４を有する。制御部２１は、ＣＰＵ等の処理装置であり、ＳＦ装置２０全体を制御する。
【００４５】
サービスファンクション情報送信部２２は、サービスファンクション管理部２３が管理する、ＳＦ装置２０で稼働するＳＦの情報を、ＳＦ装置２０が接続されるＳＣＦ装置１０へ定期的に送信する。例えば、ＳＦ装置２０が図１に示すＳＦ（ＳＢＣ）２０ａである場合、ＳＦ（ＳＢＣ）２０ａは、サービスファンクション管理部２３は、図３に示すサービスファンクションステートアドバタイズメントテーブル１１ｂ−１と同一のサービスファンクションステートアドバタイズメント情報を管理する。そして、サービスファンクション情報送信部２２は、サービスファンクション管理部２３が管理するサービスファンクションステートアドバタイズメント情報を、図１に示すＳＣＦ＿Ａ１０ａへ定期的に送信する。
【００４６】
サービスファンクション処理部２４は、ＣＰＵ等の処理装置である。サービスファンクション処理部２４は、制御部２１が所定のプログラムを実行することにより実装される、所定のＳＦの機能である。サービスファンクション処理部２４は、ＳＦ装置２０がＳＣＦ装置１０から受信したパケットに対して、所定のＳＦの処理を実行する。そして、サービスファンクション処理部２４は、所定のＳＦの処理を実行したパケットを、ＳＦ装置２０が接続されるＳＣＦ装置１０へ送信する。例えば、ＳＦ装置２０が図１に示すＳＦ（ＳＢＣ）２０ａである場合、サービスファンクション処理部２４は、図１に示すＳＣＦ＿Ａ１０ａから受信したパケットに対してセッションボーダコントローラの処理を実行する。そして、制御部２１は、サービスファンクション処理部２４がセッションボーダコントローラの処理を実行したパケットをＳＣＦ＿Ａ１０ａへ送信する。
【００４７】
（クラシファイヤ装置の構成）
図１０は、クラシファイヤ装置の構成の一例を示す図である。ＣＬ装置３０は、ＮＰ及び／又はＣＰＵを有するネットワーク装置である。ＣＬ装置３０は、ＣＬの機能を提供するプログラムがＮＰ、ＣＰＵ等の処理装置を有するサーバ装置で実行されることにより実装される。ＣＬ装置３０は、制御部３１、サービスファンクションステートデータベース３２、メタデータ除去部３３、セッション情報管理部３４、パケット分析部３５（５ｔｕｐｌｅ）、パケット分析部（高レイヤ）３６を有する。
【００４８】
制御部３１は、ＮＰ、ＣＰＵ等の処理装置であり、ＣＬ装置３０全体を制御する。制御部３１は、隣接するＳＣＦ装置１０の名称、該当ＳＣＦ装置１０に割り当てられたＩＰアドレス、自装置がＣＬ装置３０であることを示す情報を含むアドバタイズメント情報を、隣接するＳＣＦ装置１０へ定期的に送信する。そして、制御部３１は、隣接するＳＣＦ装置１０へ送信したアドバタイズメント情報を、サービスファンクョンステートデータベース３２へ登録する。なお、サービスファンクションステートデータベース３２に格納されるサービスファンクョンステートデータテーブルは、図５に示すサービスファクションステートデータテーブル１１ｄ−１と同一のものとなる。
【００４９】
また、制御部３１は、隣接するＳＣＦ装置１０から受信したサービスファンクションステートアドバタイズメント情報を、サービスファンクョンステートデータベース３２へ登録する。
【００５０】
メタデータ除去部３３は、隣接するＳＣＦ装置２０から受信した受信パケットのメタデータを参照し、各ネットワークサービス機能において処理済みであることを確認する。そして、メタデータ除去部３３は、ＣＬ装置３０を通過するパケットに付加されているメタデータを除去する。セッション情報管理部３４は、図７に示すセッション情報テーブル１２ｂ−１と同様のセッション情報テーブルを格納する。
【００５１】
パケット分析部３５（５ｔｕｐｌｅ）は、ユーザネットワーク／端末４０若しくは外部ネットワーク６０からの受信パケットに該当する５ｔｕｐｌｅ情報を解析する。そして、制御部３１は、受信パケットに該当する５ｔｕｐｌｅ情報がセッション情報管理部３４に格納されるセッション情報テーブルに存在するか否かを判定する。そして、制御部３１は、受信パケットに該当する５ｔｕｐｌｅ情報がセッション情報管理部３４に格納されるセッション情報テーブルに存在する場合、次の動作を実行する。
【００５２】
すなわち、制御部３１は、セッション情報管理部３４に格納されるセッション情報テーブルを参照して、該当する５ｔｕｐｌｅ情報に対応するネットワークサービス機能の識別子を受信パケットのメタデータへ格納し、隣接するＳＣＦ装置２０へ受信パケットを転送する。なお、ここでの該当する５ｔｕｐｌｅ情報は、アップストリームに対するダウンストリームであるので、セッション情報テーブルにおいて、送信元ＩＰアドレスを送信先ＩＰアドレスとし、送信先ＩＰアドレスを送信元ＩＰアドレスとし、送信元プロトコルを送信先プロトコルとし、送信先プロトコルを送信元プロトコルとした、送信元情報と送信先情報とを入れ替えた５ｔｕｐｌｅ情報が該当する。
【００５３】
一方、制御部３１は、受信パケットに該当する５ｔｕｐｌｅ情報がセッション情報テーブルに存在しない場合、受信パケットの５ｔｕｐｌｅ情報、及び／又は、パケット分析部（高レイヤ）３６による受信パケットをＬ７（レイヤ７）解析したＬ７情報に基づいて、受信パケットに対して実行するべきネットワークサービス機能を決定する。ＣＬ装置３０は、あらゆるパタンの５ｔｕｐｌｅ情報及び／又はＬ７情報にネットワークサービス機能を対応付けて、図示しない記憶部にポリシとして記憶している。そして、制御部３１は、決定したネットワークサービス機能の識別子を受信パケットのメタデータへ格納し、隣接するＳＣＦ装置２０へ受信パケットを転送する。
【００５４】
また、制御部３１は、隣接するＳＣＦ装置２０からの受信パケットをユーザネットワーク／端末４０若しくは外部ネットワーク６０へ送信する。この際、制御部３１は、受信パケットに該当する情報がセッション情報テーブルに存在しない場合に、受信パケットの５ｔｕｐｌｅ情報に処理済みの各ネットワークサービス機能の識別子を対応付けてセッション情報テーブルに格納する。
【００５５】
（サービス抽出処理）
図１１は、サービスチェイニングフォワーダ装置が実行する転送処理の一例を示すフローチャートである。図１１に示す転送処理は、各ＳＣＦ装置１０が、隣接するＳＣＦ装置１０又はＣＬ装置３０からパケットを受信するごとに各ＳＣＦ装置１０において実行される。
【００５６】
ＳＣＦ装置１０のデータプレーン部１２の処理部１２ａは、受信パケットのメタデータを解析し、メタデータから、当該受信パケットが処理を要するＳＦのうち、未処理のＳＦの識別子を抽出する（ステップＳ１１）。次に、ＳＣＦ装置１０のコントロールプレーン部１１の処理部１１ａは、トポロジ情報管理部１１ｅが管理するトポロジ情報テーブル１１ｅ−１を参照し、ステップＳ１１で抽出したＳＦの識別子に該当するＳＦの識別子がトポロジ情報テーブル１１ｅ−１に複数存在するか否かを判定する（ステップＳ１２）。
【００５７】
処理部１１ａは、ステップＳ１２で、該当するＳＦの識別子がトポロジ情報テーブル１１ｅ−１に複数存在すると判定した場合（ステップＳ１２：複数存在する場合）、ステップＳ１３へ処理を移す。一方、処理部１１ａは、該当するＳＦの識別子がトポロジ情報テーブル１１ｅ−１に１つ存在すると判定した場合（ステップＳ１２：１つ存在する場合）、ステップＳ１６へ処理を移す。
【００５８】
ステップＳ１３では、処理部１１ａは、トポロジ情報テーブル１１ｅ−１において、該当する複数のＳＦに対応する各「リソース情報」を参照し、各「リソース情報」が同一値であるか否かを判定する。処理部１１ａは、ステップＳ１３で、各「リソース情報」が同一値であると判定した場合（ステップＳ１３：同一値である）、ステップＳ１４へ処理を移す。一方、処理部１１ａは、各「リソース情報」が同一値でないと判定した場合（ステップＳ１４：同一値でない）、ステップＳ１５へ処理を移す。
【００５９】
ステップＳ１４では、処理部１１ａは、トポロジ情報テーブル１１ｅ−１において、該当する複数のＳＦに対応する各「コスト合計値」のうち、最小値に該当するＳＦを選択する。処理部１１ａは、ステップＳ１４が終了すると、ステップＳ１６へ処理を移す。一方、ステップＳ１５では、処理部１１ａは、トポロジ情報テーブル１１ｅ−１において、該当する複数のＳＦに対応する各「リソース情報」のうち、最良値に該当するＳＦを選択する。処理部１１ａは、ステップＳ１５が終了すると、ステップＳ１６へ処理を移す。
【００６０】
ステップＳ１６では、処理部１１ａは、一意に決定されたＳＦが配下に接続される該当ＳＣＦ装置２０、又は、該当ＳＣＦ装置２０への最短経路となる、隣接するＳＣＦ装置へ、パケットを転送する。ステップＳ１６が終了すると、処理部１１ａは、転送処理を終了する。
【００６１】
（トポロジ情報の生成過程）
図１２は、トポロジ情報の生成過程の一例を示す図である。図１２では、ＳＦ（ＳＢＣ）２０ａからのサービスファンクションステートアドバタイズメント情報が、最終的に各ＳＣＦ装置１０へ通知され、トポロジ情報が生成される過程を示す。各ＳＦ装置２０からのサービスファンクションステートアドバタイズメント情報が、各ＳＣＦ装置１０へ通知され、トポロジ情報が生成される過程も同様である。
【００６２】
（１−１）ＳＦ（ＳＢＣ）２０ａは、自装置で稼働する１又は複数のＳＦ、リソース情報を、ＳＣＦ＿Ａ１０ａへ定期的に送信する。（１−２）次に、ＳＣＦ＿Ａ１０ａは、配下のＳＦ（ＳＢＣ）２０ａからの情報を用い、サービスファンクションステートアドバタイズメントテーブル１１ｂ−１を生成する。（１−３）また、ＳＣＦ＿Ａ１０ａは、サービスファンクションステートアドバタイズメントテーブル１１ｂ−１を、隣接するＳＣＦ＿Ｂ１０ｂへ定期的に送信する。
【００６３】
（１−４）次に、ＳＣＦ＿Ｂ１０ｂは、ＳＣＦ＿Ａ１０ａから受信したサービスファンクションステートアドバタイズメントテーブル１１ｂ−１の情報を、サービスファンクションステートデータベース１１ｄへ格納する。そして、ＳＣＦ＿Ｂ１０ｂは、ＳＣＦ＿Ａ１０ａから受信したサービスファンクションステートアドバタイズメントテーブル１１ｂ−１の情報を、ＳＣＦ＿Ｄ１０ｄへ転送する。
【００６４】
（１−５）最終的に、サービスチェイニングシステム１の各ＳＣＦ装置１０が、同一サービスファンクションステートデータベース１１ｂ−１を有することになる。そして、各ＳＣＦ装置１０は、サービスファンクションステートデータベース１１ｂ−１の情報をもととする、他のＳＣＦ装置１０からの経路に関する「コスト合計値」、各ＳＦが稼働する資源の「リソース情報」を含むトポロジ情報テーブル１１ｅ−１を生成する。
【００６５】
（各装置間の死活監視並びに障害検知及び障害復旧）
図１３は、各装置間の死活監視の一例を示す図である。（２−１）ＳＣＦ装置１０及びＳＦ装置２０は、定期的なテーブル送受信により、通信リンク及び対向装置の正常性を確認する。（２−２）ＳＦＣ装置１０間は、定期的なテーブル送受信により、通信リンク及び対向装置の正常性を確認する。
【００６６】
なお、通信リンク断及び装置故障の検知及び対処動作は、次のとおりである。すなわち、ＳＣＦ装置１０は、対向するＳＦ装置２０から、一定期間、受信パケットがない場合、ＳＣＦ装置１０において、該当ＳＦ装置２０のレコードを削除したサービスファンクションステートアドバタイズメントテーブル１１ｂ−１を、他のＳＣＦ装置１０へ送信する。隣接するＳＣＦ装置１０から、サービスファンクションステートアドバタイズメントテーブル１１ｂ−１の受信が一定期間ない場合、該当ＳＣＦ装置１０以外の他のＳＣＦ装置１０へ、サービスファンクションステートアドバタイズメントテーブル１１ｂ−１を送信する。
【００６７】
また、ＳＣＦ装置１０は、対向するＳＦ装置２０からのサービスファンクションステートアドバタイズメント情報の受信により、該当ＳＦ装置２０の復旧を検知し、他のＳＣＦ装置１０へ、サービスファンクションステートアドバタイズメントテーブル１１ｂ−１を送信する。また、ＳＣＦ装置１０は、隣接するＳＣＦ装置１０から、サービスファンクションステートアドバタイズメントテーブル１１ｂ−１の受信を検知し、該当ＳＣＦ装置１０を含めた他のＳＣＦ装置１０へ、サービスファンクションステートアドバタイズメントテーブル１１ｂ−１を送信する。
【００６８】
（ユーザネットワーク／端末から外部ネットワークへのパケットフローの流れ）
図１４は、ユーザネットワーク／端末から外部ネットワークへパケットが送信される際に、パケットがサービスファンクションへ転送されるパケットフローの流れの一例を示す図である。
【００６９】
（３−１）先ず、ＣＬ３０ａは、ユーザネットワーク／端末４０からパケットを受信し、５ｔｕｐｌｅベース若しくは７Ｌ（レイヤ７）ベースでパケット解析を行い、受信パケットが処理されるべきＳＦを決定する。そして、ＣＬ３０ａは、決定したＳＦの識別子を、受信パケットのメタデータへ格納する。なお、ＣＬ３０ａは、ユーザネットワーク／端末４０からの受信パケットのメタデータが含む５ｔｕｐｌｅ情報に該当するレコードが、自装置が管理するセッション情報テーブルに存在する場合、該当レコードにおいて該当５ｔｕｐｌｅ情報に対応付けられるＳＦの識別子を、受信パケットのメタデータに格納する。そして、ＣＬ３０ａは、隣接するＳＣＦ＿Ｄ１０ｄへ、受信パケットを転送する。なお、７レイヤは、ＯＳＩ（Open  Systems  Interconnection）参照モデルの第７層のアプリケーション層である。
【００７０】
（３−２）ＳＣＦ＿Ｄ１０ｄは、ＣＬ３０ａからパケットを受信すると、受信パケットのメタデータからＳＦの識別子を抽出し、自装置のトポロジ情報管理部１１ｅが管理するトポロジ情報テーブル１１ｅ−１を参照し、最初に転送するＳＦを、ＳＣＦ＿Ａ１０ａの配下のＳＦと決定する。
【００７１】
（３−３）ＳＣＦ＿Ａ１０ａは、ＳＣＦ＿Ｄ１０ｄからパケットを受信すると、自装置が管理するサービスファンクションステートアドバタイズメントテーブル１１ｂ−１を参照し、転送先のＳＦが、ＳＣＦ＿Ａ１０ａの配下のＳＦ（ＳＢＣ）２０ａであることを認識し、ＳＦ（ＳＢＣ）２０ａへ受信パケットを転送する。（３−４）ＳＦ（ＳＢＣ）２０ａは、ＳＣＦ＿Ａ１０ａから受信したパケットを処理する。そして、ＳＦ（ＳＢＣ）２０ａは、処理済みパケットを、ＳＣＦ＿Ａ１０ａへ転送する。
【００７２】
（３−５）ＳＣＦ＿Ａ１０ａは、ＳＦ（ＳＢＣ）２０ａにて処理されたパケットのメタデータに、ＳＦ（ＳＢＣ）２０ａでの処理済みを示す情報を格納する。そして、ＳＣＦ＿Ａ１０ａは、自装置が管理するトポロジ情報テーブル１１ｅ−１を参照して、次の転送先のＳＦをＳＦ（ＮＡＴ）２０ｂ−１と決定し、ＳＣＦ＿Ｂ１０ｂへパケットを転送する。
【００７３】
（３−６）ＳＣＦ＿Ｂ１０ｂは、ＳＣＦ＿Ａ１０ａからパケットを受信すると、次の転送先のＳＦが、ＳＣＦ＿Ｂ１０ｂの配下のＳＦ（ＮＡＴ）２０ｂ−１であることを認識し、ＳＦ（ＮＡＴ）２０ｂ−１へ受信パケットを転送する。（３−７）ＳＦ（ＮＡＴ）２０ｂ−１は、ＳＣＦ＿Ｂ１０ｂから受信したパケットを処理する。そして、ＳＦ（ＮＡＴ）２０ｂ−１は、処理済みパケットを、ＳＣＦ＿Ｂ１０ｂへ転送する。
【００７４】
（３−８）ＳＣＦ＿Ｂ１０ｂは、ＳＦ（ＮＡＴ）２０ｂ−１にて処理されたパケットのメタデータに、ＳＦ（ＮＡＴ）２０ｂ−１での処理済みを示す情報を格納する。そして、ＳＣＦ＿Ｂ１０ｂは、受信パケットが、処理されるべき全てのＳＦにおいて処理済みである場合、自装置が管理するサービスファクションステートデータテーブル１１ｄ−１を参照して、次の転送先のＣＬ３０ｂが接続されるＳＣＦ＿Ｃ１０ｃへパケットを転送する。
【００７５】
（３−９）次に、ＣＬ３０ｂは、ＳＣＦ＿Ｃ１０ｃを経由して受信したパケットからメタデータを除去する。そして、ＣＬ３０ｂは、受信パケットから除去したメタデータが含む５ｔｕｐｌｅ情報及び通過ＳＦの識別子を、自装置が管理するセッション情報テーブルへ登録する。そして、ＣＬ３０ｂは、メタデータを除去したパケットを、ＧＷＲ５０介して外部ネットワーク６０へ送出する。
【００７６】
（外部ネットワークからユーザネットワーク／端末へのパケットフローの流れ）
図１５は、外部ネットワークからユーザネットワーク／端末へパケットが送信される際に、パケットがサービスファンクションへ転送されるパケットフローの流れの一例を示す図である。
【００７７】
（４−１）先ず、ＣＬ３０ｂは、ＧＷＲ５０を介して外部ネットワーク６０からパケットを受信する。ＣＬ３０ｂは、受信パケットを５ｔｕｐｌｅベースで認識し、自装置が管理するセッション情報テーブルに該当レコードが存在するか否かを判定する。ＣＬ３０ｂは、自装置が管理するセッション情報テーブルに該当レコードが存在する場合、該当レコードにおいて該当５ｔｕｐｌｅ情報に対応付けられるＳＦの識別子を、受信パケットのメタデータに格納する。一方、ＣＬ３０ｂは、自装置が管理するセッション情報テーブルに該当レコードが存在しない場合、５ｔｕｐｌｅベース若しくは７Ｌ（レイヤ７）ベースで受信パケットの解析を行い、受信パケットが処理されるべきＳＦを決定する。そして、ＣＬ３０ｂは、隣接するＳＣＦ＿Ｃ１０ｃへ、受信パケットを転送する。
【００７８】
（４−２）次に、ＳＣＦ＿Ｃ１０ｃは、ＣＬ３０ｂから受信した受信パケットのメタデータから、ＳＦの識別子を抽出する。そして、ＳＣＦ＿Ｃ１０ｃは、自装置が管理するトポロジ情報テーブル１１ｅ−１を参照し、最初に転送すべきＳＦであるＳＦ（ＮＡＴ）２０ｂ−１が接続されるＳＣＦ＿Ｂ１０ｂへ、受信パケットを転送する。
【００７９】
（４−３）次に、ＳＣＦ＿Ｂ１０ｂは、ＳＣＦ＿Ｃ１０ｃから受信した受信パケットが処理されるべきＳＦが、自装置が管理するサービスファンクションステートアドバタイズメントテーブル１１ｂ−１を参照し、ＳＣＦ＿Ｂ１０ｂの配下のＳＦであるＳＦ（ＮＡＴ）２０ｂ−１であることを認識し、ＳＦ（ＮＡＴ）２０ｂ−１へ、受信パケットを転送する。
【００８０】
（４−４）次に、ＳＦ（ＮＡＴ）２０ｂ−１は、ＳＣＦ＿Ｂ１０ｂからの受信パケットを処理する。そして、ＳＦ（ＮＡＴ）２０ｂ−１は、処理済みパケットを、ＳＣＦ＿Ｂ１０ｂへ転送する。そして、ＳＣＦ＿Ｂ１０ｂは、ＳＦ（ＮＡＴ）２０ｂ−１にて処理されたパケットのメタデータに、ＳＦ（ＮＡＴ）２０ｂ−１での処理済みを示す情報を格納する。そして、ＳＣＦ＿Ｂ１０ｂは、ＳＦ（ＮＡＴ）２０ｂ−１から受信したパケットが次に処理されるべきＳＦがＳＣＦ＿Ａ１０ａ配下のＳＦ（ＳＢＣ）２０ａであることを認識し、ＳＣＦ＿Ａ１０ａへパケットを転送する。
【００８１】
（４−５）次に、ＳＣＦ＿Ａ１０ａは、自装置が管理するサービスファンクションステートアドバタイズメントテーブル１１ｂ−１を参照し、ＳＣＦ＿Ｂ１０ｂからの受信パケットが次に処理されるべきＳＦが、ＳＣＦ＿Ａ１０ａの配下のＳＦ（ＳＢＣ）２０ａであることを認識し、ＳＦ（ＳＢＣ）２０ａへ受信パケットを転送する。
【００８２】
（４−６）次に、ＳＦ（ＳＢＣ）２０ａは、ＳＣＦ＿Ａ１０ａからの受信パケットを処理する。そして、ＳＦ（ＳＢＣ）２０ａは、処理済みパケットを、ＳＣＦ＿Ａ１０ａへ転送する。（４−７）次に、ＳＣＦ＿Ａ１０ａは、ＳＦ（ＳＣＢ）２０ａにて処理されたパケットのメタデータに、ＳＦ（ＳＣＢ）２０ａでの処理済みを示す情報を格納する。そして、ＳＣＦ＿Ａ１０ａは、受信パケットが、処理されるべき全てのＳＦにおいて処理済みである場合、自装置が管理するサービスファクションステートデータテーブル１１ｄ−１を参照して、次の転送先のＣＬ３０ａが接続されるＳＣＦ＿Ｄ１０ｄへパケットを転送する。ＳＣＦ＿Ｄ１０ｄは、ＳＣＦ＿Ａ１０ａからの受信パケットを、ＣＬ３０ｂへ転送する。
【００８３】
（４−８）次に、ＣＬ３０ａは、ＳＣＦ＿Ｄ１０ｄを経由して受信したパケットからメタデータを除去する。そして、ＣＬ３０ａは、受信パケットから除去したメタデータが含む５ｔｕｐｌｅ情報及び通過ＳＦの識別子を、自装置が管理するセッション情報テーブルへ登録する。そして、ＣＬ３０ａは、メタデータを除去したパケットを、ユーザネットワーク／端末４０へ送出する。
【００８４】
（実施形態による効果）
従来のサービスチェイニング手法は、集中制御型であり、次の課題が存在する。すなわい、設備増設、設備減設のたびに、転送情報の設定を行うため、設備増設、設備減設の際の工数が増大する。また、従来のサービスチェイニング手法は、冗長を考慮した設備設計を要し、設計工数、設備規模が増大する。また、従来のサービスチェイニング手法は、ＳＦＣコントローラが集中制御型のため、ＳＦＣコントローラが故障した場合、影響が大きく、仮想化ネットワークの可用性が低い。また、従来のサービスチェイニング手法は、集中制御のＳＦＣコントローラによる制御のための物理リンク及び論理リンクの制御を要する。また、従来のサービスチェイニング手法は、経路情報、経路状態を考慮した、最適なＳＦの選択が不可能である。
【００８５】
一方、実施形態は、サービスチェイニングシステム１において、各装置間の死活監視と、リンクの障害検知及び障害復旧並びに各装置のリンクの障害検知及び障害復旧とを、各装置が自律的に行い、かつ分散して行う。また、実施形態は、サービスチェイニングシステム１において、各装置間のサービスチェイニングを可能にするためのサービスファンクションステートアドバタイズメント情報の相互交換を、ＳＣＦ装置１０間で自律的に行い、かつ分散して行う。また、実施形態は、各ＳＣＦ装置１０が、自装置が管理するトポロジ情報テーブルに基づき、転送先のＳＦを「リソース情報」及び「コスト合計値」に基づき適切に選択する。よって、実施形態は、全ＳＣＦ装置１０が、自律的にＳＦを選択し、パケット転送する。すなわち、実施形態は、自律的なサービスファンクションチェイニングを実現できる。
【００８６】
また、実施形態は、設備増設、設備減設の際に、転送情報の設定を要さないため、設備増設、設備減設の際の工数を削減できる。また、実施形態は、冗長を考慮した設備設計を要さず、設計工数、設備規模の増大を抑制できる。また、実施形態は、ＳＦＣコントローラが分散制御型のため、ＳＣＦコントローラが故障した場合でも、影響が限定的であり、仮想化ネットワークの可用性が高まる。また、実施形態は、各装置が対向装置との物理リンク及び論理リンクの自律制御を行うため、制御負荷を分散できるとともに、メンテナンス工数を削減できる。また、実施形態は、経路情報、経路状態を考慮した、最適なＳＦの選択を行うことができる。
【００８７】
（変形例）
実施形態で示したサービスチェイニングシステム１の構成及び各要素の配置は、図１に示したものに限られず、ネットワーク設計に応じて、適宜変更可能である。
【００８８】
実施形態では、ＳＦ装置２０は、ＳＦごとに異なる物理サーバ装置で実現されるとした。しかし、同一のＳＣＦ装置１０に接続されるＳＦは、１台の物理サーバ装置で実行される複数のプログラムによりそれぞれ実現されてもよい。同一のＳＣＦ装置１０に接続されるＳＦが、１台の物理サーバ装置で実行される複数のプログラムによりそれぞれ実現される場合、ＳＦ装置２０は、図９に示すＳＦ装置２０の機能ブロック図と比較して、サービスファンクション処理部２４を、ＳＦの数だけ有することになる。
【００８９】
また、同一のＳＣＦ装置１０に接続されるＳＦは、１台の物理サーバ装置上で実行される複数の仮想マシンそれぞれにおいて実行される各プログラムにより実現されてもよい。
【００９０】
すなわち、ＳＦを実装する物理サーバ装置又は仮想マシンの統合及び分散は、適宜変更可能である。この場合、図３等に示す「リソース情報」は、ＳＦを実装する物理サーバ装置又は仮想マシンに割り当てられたＣＰＵについての残ＣＰＵ使用率である。
【００９１】
実施形態では、図３等に示す「リソース情報」は、残ＣＰＵ使用率であるとしたが、これに限らず、ＳＦを実装する物理サーバ装置又は仮想マシンに割り当てられた物理的計算資源、仮想的計算資源、物理的ネットワーク資源、仮想ネットワーク資源等の使用率又は残使用率、セッション処理可能数を示す各種情報であってもよい。
【００９２】
実施形態では、ＳＣＦ装置１０、ＣＬ装置３０は、ネットワーク装置であるとしたが、これに限らず、物理サーバ装置上で実行される所定プログラムにより実現されてもよい。
【００９３】
また、実施形態では、ＳＦの例として、ＳＢＣ、ＮＡＴ、ＤＰＩ、ＢＡＳを挙げたが、これらに限られず、他のネットワーク機能であってもよい。また、実施形態では、サービスチェイニングシステム１内を流通するデータは、パケットであるとしたが、これに限らず、フレーム、セル、セグメント、データグラム、メッセージ等であってもよい。
【００９４】
（実施形態のシステム及び装置構成について）
図１に示すサービスチェイニングシステム１、図２に示すＳＣＦ装置１０、図９に示すＳＦ装置２０、図１０に示すＣＬ装置３０の各構成要素は機能概念的なものであり、必ずしも物理的に図示のように構成されていることを要しない。すなわち、サービスチェイニングシステム１、ＳＣＦ装置１０、ＳＦ装置２０、ＣＬ装置３０の機能の分散および統合の具体的形態は図示のものに限られず、全部又は一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的又は物理的に分散又は統合して構成することができる。
【００９５】
また、ＳＣＦ装置１０、ＳＦ装置２０、ＣＬ装置３０においておこなわれる各処理は、全部又は任意の一部が、ＮＰ若しくはＣＰＵ、並びに、ＮＰ若しくはＣＰＵにより解析実行されるプログラムにて実現されてもよい。また、ＳＣＦ装置１０、ＳＦ装置２０、ＣＬ装置３０においておこなわれる各処理は、ワイヤードロジックによるハードウェアとして実現されてもよい。
【００９６】
また、実施形態において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部又は一部を手動的に行うこともできる。若しくは、実施形態において説明した各処理のうち、手動的に行われるものとして説明した処理の全部又は一部を公知の方法で自動的に行うこともできる。この他、上述及び図示の処理手順、制御手順、具体的名称、各種のデータやパラメタを含む情報については、特記する場合を除いて適宜変更することができる。
【００９７】
（プログラムについて）
図１６は、ＳＣＦ装置１０、ＳＦ装置２０、ＣＬ装置３０における各処理がコンピュータを用いて具体的に実現されることを示す図である。図１６に例示するように、コンピュータ１０００は、例えば、メモリ１０１０と、ＣＰＵ１０２０と、ハードディスクドライブインタフェース１０３０と、ディスクドライブインタフェース１０４０と、シリアルポートインタフェース１０５０と、ビデオアダプタ１０６０と、ネットワークインタフェース１０７０とを有し、これらの各部はバス１０８０によって接続される。
【００９８】
メモリ１０１０は、ＲＯＭ（Read  Only  Memory）１０１１及びＲＡＭ（Random  Access  Memory）１０１２を含む。ＲＯＭ１０１１は、例えば、ＢＩＯＳ（Basic  Input  Output  System）等のブートプログラムを記憶する。ハードディスクドライブインタフェース１０３０は、ハードディスクドライブ１０３１に接続される。ディスクドライブインタフェース１０４０は、ディスクドライブ１０４１に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ１０４１に挿入される。シリアルポートインタフェース１０５０は、例えばマウス１０５１、キーボード１０５２に接続される。ビデオアダプタ１０６０は、例えばディスプレイ１０６１に接続される。
【００９９】
ハードディスクドライブ１０３１は、例えば、ＯＳ１０９１、アプリケーションプログラム１０９２、プログラムモジュール１０９３、プログラムデータ１０９４を記憶する。すなわち、ＳＣＦ装置１０、ＳＦ装置２０、ＣＬ装置３０の各処理の規定するプログラムは、コンピュータ１０００によって実行される指令が記述されたプログラムモジュール１０９３として、例えばハードディスクドライブ１０３１に記憶される。例えば、ＳＣＦ装置１０、ＳＦ装置２０、ＣＬ装置３０における機能構成と同様の情報処理を実行するためのプログラムモジュール１０９３が、ハードディスクドライブ１０３１に記憶される。
【０１００】
また、上述した実施形態の処理で用いられる設定データは、プログラムデータ１０９４として、例えばメモリ１０１０やハードディスクドライブ１０３１に記憶される。そして、ＣＰＵ１０２０が、メモリ１０１０やハードディスクドライブ１０３１に記憶されたプログラムモジュール１０９３やプログラムデータ１０９４を必要に応じてＲＡＭ１０１２に読み出して実行する。
【０１０１】
なお、プログラムモジュール１０９３やプログラムデータ１０９４は、ハードディスクドライブ１０３１に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ１０４１等を介してＣＰＵ１０２０によって読み出されてもよい。あるいは、プログラムモジュール１０９３やプログラムデータ１０９４は、ネットワーク（ＬＡＮ（Local  Area  Network）、ＷＡＮ（Wide  Area  Network）等）を介して接続された他のコンピュータに記憶され、ネットワークインタフェース１０７０を介してＣＰＵ１０２０によって読み出されてもよい。
【０１０２】
以上の実施形態並びにその変形例は、本願が開示する技術に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【０１０３】
１・・・・・サービスチェイニングシステム
１０・・・・ＳＣＦ装置
１１・・・・コントロールプレーン部
１１ａ・・・処理部
１１ｂ・・・サービスファンクションステートアドバタイズメント管理部
１１ｃ・・・ネイバーテーブル管理部
１１ｄ・・・サービスファンクションステートデータベース
１１ｅ・・・トポロジ情報管理部
１２・・・・データプレーン部
１２ａ・・・処理部
１２ｂ・・・セッション情報管理部
２０・・・・ＳＦ装置
２１・・・・制御部
２２・・・・サービスファンクション情報送信部
２３・・・・サービスファンクション管理部
２４・・・・サービスファンクション処理部
３０・・・・ＣＬ装置
３１・・・・制御部
３２・・・・サービスファンクションステートデータベース
３３・・・・メタデータ除去部
３４・・・・セッション情報管理部
３５・・・・パケット分析部（５ｔｕｐｌｅ）
３６・・・・パケット分析部（高レイヤ）
【図１】
2016046736.tif 000003
【図２】
2016046736.tif 000004
【図３】
2016046736.tif 000005
【図４】
2016046736.tif 000006
【図５】
2016046736.tif 000007
【図６】
2016046736.tif 000008
【図７】
2016046736.tif 000009
【図８】
2016046736.tif 000010
【図９】
2016046736.tif 000011
【図１０】
2016046736.tif 000012
【図１１】
2016046736.tif 000013
【図１２】
2016046736.tif 000014
【図１３】
2016046736.tif 000015
【図１４】
2016046736.tif 000016
【図１５】
2016046736.tif 000017
【図１６】
2016046736.tif 000018