IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ホアウェイ・テクノロジーズ・カンパニー・リミテッドの特許一覧

特許7432095SRv6サービス機能チェーンでパケットを転送する方法、SFF、およびSFデバイス
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-02-07
(45)【発行日】2024-02-16
(54)【発明の名称】SRv6サービス機能チェーンでパケットを転送する方法、SFF、およびSFデバイス
(51)【国際特許分類】
   H04L 45/50 20220101AFI20240208BHJP
【FI】
H04L45/50
【請求項の数】 15
(21)【出願番号】P 2022555904
(86)(22)【出願日】2021-05-17
(65)【公表番号】
(43)【公表日】2023-05-26
(86)【国際出願番号】 CN2021094206
(87)【国際公開番号】W WO2021233267
(87)【国際公開日】2021-11-25
【審査請求日】2022-10-20
(31)【優先権主張番号】202010421893.2
(32)【優先日】2020-05-18
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】504161984
【氏名又は名称】ホアウェイ・テクノロジーズ・カンパニー・リミテッド
(74)【代理人】
【識別番号】110000877
【氏名又は名称】弁理士法人RYUKA国際特許事務所
(72)【発明者】
【氏名】ジャン、ヨンカン
(72)【発明者】
【氏名】フ、ジボ
【審査官】小林 義晴
(56)【参考文献】
【文献】米国特許出願公開第2017/0244631(US,A1)
【文献】米国特許出願公開第2018/0198705(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 12/00-12/66
41/00-101/695
(57)【特許請求の範囲】
【請求項1】
SRv6サービス機能チェーンでパケットを転送する方法であって、前記方法が、
サービス機能転送器(SFF)が第1のインターネットプロトコルバージョン6を介したセグメントルーティング(SRv6)パケットを受信する段階であって、前記第1のSRv6パケットの宛先アドレスにはエンドポイント貫通セグメントID(End.PT.SID)が含まれており、前記End.PT.SIDが、セグメントルーティングヘッダ(SRH)を取り除くことなく前記第1のSRv6パケットをサービス機能(SF)デバイスに転送するよう前記SFFに指示するのに用いられる、受信する段階と、
前記SFFが前記End.PT.SIDおよび前記第1のSRv6パケットに基づいて第2のSRv6パケットを生成する段階であって、前記第2のSRv6パケットには制御フラグが含まれており、前記制御フラグが、前記第2のSRv6パケットにおいて前記制御フラグの後に続くインターネットプロトコルバージョン6(IPv6)拡張ヘッダをオフセットするよう前記SFデバイスに指示するのに用いられ、前記第2のSRv6パケットの前記IPv6拡張ヘッダにはSRHが含まれている、生成する段階と、
前記SFFが前記第2のSRv6パケットを前記SFデバイスに送信する段階と
を備えている、方法。
【請求項2】
前記制御フラグがさらに、前記SFFにパケットを戻すプロセスにおいて、前記IPv6拡張ヘッダを戻すよう前記SFデバイスに指示するのに用いられ、前記SFFが前記第2のSRv6パケットを前記SFデバイスに送信する前記段階の後に、前記方法がさらに、
前記SFFが前記SFデバイスから第3のSRv6パケットを受信する段階であって、前記第3のSRv6パケットには前記IPv6拡張ヘッダが含まれており、前記第3のSRv6パケットおよび前記第2のSRv6パケットが同じSRHを有している、受信する段階と、
前記SFFが前記第3のSRv6パケットの前記SRHに基づいて前記第3のSRv6パケットに対して転送処理を行う段階と
を備えている、請求項1に記載の方法。
【請求項3】
SRv6サービス機能チェーンでパケットを処理する方法であって、前記方法が、
サービス機能(SF)デバイスが第2のインターネットプロトコルバージョン6を介したセグメントルーティング(SRv6)パケットをサービス機能転送器(SFF)から受信する段階であって、前記第2のSRv6パケットには制御フラグが含まれており、前記制御フラグが、前記第2のSRv6パケットにおいて前記制御フラグの後に続くインターネットプロトコルバージョン6(IPv6)拡張ヘッダをオフセットするよう前記SFデバイスに指示するのに用いられ、前記第2のSRv6パケットの前記IPv6拡張ヘッダにはセグメントルーティングヘッダ(SRH)が含まれている、受信する段階と、
前記SFデバイスが前記制御フラグに基づいて前記第2のSRv6パケットの前記IPv6拡張ヘッダをオフセットする段階と
を備えている、方法。
【請求項4】
前記制御フラグがさらに、前記SFFにパケットを戻すプロセスにおいて、前記IPv6拡張ヘッダを戻すよう前記SFデバイスに指示するのに用いられ、前記方法がさらに、
前記SFデバイスが前記制御フラグに基づいて前記SFFに第3のSRv6パケットを送信する段階を備えており、前記第3のSRv6パケットには前記IPv6拡張ヘッダが含まれており、前記第3のSRv6パケットおよび前記第2のSRv6パケットが同じSRHを有している、請求項3に記載の方法。
【請求項5】
前記第2のSRv6パケットにはホップバイホップオプションヘッダが含まれており、前記ホップバイホップオプションヘッダには前記制御フラグが含まれている、請求項3または4に記載の方法。
【請求項6】
前記ホップバイホップオプションヘッダにはタイプ-長さ-値(TLV)が含まれており、前記TLVが前記制御フラグを搬送するのに用いられる、請求項5に記載の方法。
【請求項7】
前記制御フラグが、前記第2のSRv6パケットの前記SRHをオフセットするよう前記SFデバイスに指示するのに用いられる、または
前記制御フラグが、前記第2のSRv6パケットの前記SRHと前記SRH以外の別のIPv6拡張ヘッダとをオフセットするよう前記SFデバイスに指示するのに用いられ、前記第2のSRv6パケットにおいて前記別のIPv6拡張ヘッダが前記制御フラグの後に続く、請求項3から6のいずれか一項に記載の方法。
【請求項8】
前記SFデバイスが前記制御フラグに基づいて前記第2のSRv6パケットの前記IPv6拡張ヘッダをオフセットする前記段階の後に、前記方法がさらに、
前記SFデバイスがサービス処理を行う段階を備えている、請求項3に記載の方法。
【請求項9】
前記第2のSRv6パケットにはさらにターゲット情報が含まれており、前記ターゲット情報とは、前記SFデバイスが前記サービス処理を行うときに用いる必要がある情報であり、サービス処理を行う前記段階が、
前記ターゲット情報に基づいて前記サービス処理を行う段階を含んでいる、請求項8に記載の方法。
【請求項10】
前記ターゲット情報にはサービス機能チェーン(SFC)メタデータおよび仮想プライベートネットワークID(VPN ID)のうちの少なくとも一方が含まれている、請求項9に記載の方法。
【請求項11】
サービス機能転送器(SFF)であって、前記SFFが、
第1のインターネットプロトコルバージョン6を介したセグメントルーティング(SRv6)パケットを受信するように構成された受信モジュールであって、前記第1のSRv6パケットの宛先アドレスにはエンドポイント貫通セグメントID(End.PT.SID)が含まれており、前記End.PT.SIDが、セグメントルーティングヘッダ(SRH)を取り除くことなく前記第1のSRv6パケットをサービス機能(SF)デバイスに転送するよう前記SFFに指示するのに用いられる、受信モジュールと、
前記End.PT.SIDおよび前記第1のSRv6パケットに基づいて第2のSRv6パケットを生成するように構成された生成モジュールであって、前記第2のSRv6パケットには制御フラグが含まれており、前記制御フラグが、前記第2のSRv6パケットにおいて前記制御フラグの後に続くインターネットプロトコルバージョン6(IPv6)拡張ヘッダをオフセットするよう前記SFデバイスに指示するのに用いられ、前記第2のSRv6パケットの前記IPv6拡張ヘッダにはSRHが含まれている、生成モジュールと、
前記第2のSRv6パケットを前記SFデバイスに送信するように構成された送信モジュールと
を備えている、SFF。
【請求項12】
サービス機能(SF)デバイスであって、前記SFデバイスが、
第2のインターネットプロトコルバージョン6を介したセグメントルーティング(SRv6)パケットをサービス機能転送器(SFF)から受信するように構成された受信モジュールであって、前記第2のSRv6パケットには制御フラグが含まれており、前記制御フラグが、前記第2のSRv6パケットにおいて前記制御フラグの後に続くインターネットプロトコルバージョン6(IPv6)拡張ヘッダをオフセットするよう前記SFデバイスに指示するのに用いられ、前記第2のSRv6パケットの前記IPv6拡張ヘッダにはセグメントルーティングヘッダ(SRH)が含まれている、受信モジュールと、
前記制御フラグに基づいて前記第2のSRv6パケットの前記IPv6拡張ヘッダをオフセットするように構成された処理モジュールと
を備えている、SFデバイス。
【請求項13】
ネットワークシステムであって、前記システムがサービス機能転送器(SFF)とサービス機能(SF)デバイスとを備えており、前記SFFが請求項1または2に記載の方法を行うように構成されており、前記SFデバイスが請求項3から10のいずれか一項に記載の方法を行うように構成されている、ネットワークシステム。
【請求項14】
サービス機能転送器(SFF)に、請求項1または2に記載の方法を実行させるためのコンピュータプログラム。
【請求項15】
サービス機能(SF)デバイスに、請求項3から10のいずれか一項に記載の方法を実行させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本願は、2020年5月18日に出願された「SRv6サービス機能チェーンでパケットを転送する方法、SFF、およびSFデバイス(METHOD FOR FORWARDING PACKET IN SRV6 SERVICE FUNCTION CHAIN, SFF, AND SF DEVICE)」と題する中国特許出願第202010421893.2号に基づく優先権を主張し、当該中国特許出願はその全体が参照により本明細書に組み込まれる。
【0002】
本願は通信技術の分野に関し、特に、SRv6サービス機能チェーンでパケットを転送する方法、SFF、およびSFデバイスに関する。
【背景技術】
【0003】
セグメントルーティング(英名:segment routing、略してSR)とは、ソースルーティングに基づいてパケットを転送するのに用いられる技術である。インターネットプロトコルバージョン6(英名:internet protocol version 6、略してIPv6)を介したセグメントルーティング(略してSRv6)とは、SR技術とIPv6プロトコルとを組み合わせた技術である。具体的には、一般的なIPv6パケットでは、IPv6パケットの宛先アドレス(Destination Address、DA)が固定されている。しかしながら、SRv6フィールドでは、IPv6パケットのDAがSRv6セグメントID(英名:segment ID、略してSID)であり、IPv6パケットのDAはネクストホップノードを識別し、ホップバイホップ転送を完了させるためにSRv6ノードがDAを常に更新する。
【0004】
SRv6技術では、IPv6転送プレーンに基づいてSRを実施するために、セグメントルーティングヘッダ(英名:Segment Routing Header、略してSRH)と呼ばれるIPv6拡張ヘッダが追加される。SRHとは本質的に、ルーティングタイプのIPv6拡張ヘッダである。SRHには、SIDリスト(英名:SID list、セグメントリストとも呼ばれる)が含まれている。SIDリストには、順番に配置された1つまたは複数のSIDが含まれている。SRv6パケットとは、SRHを搬送するIPv6パケットを指す。
【0005】
サービス機能チェーン(英名:service function chain、略してSFC)とは、トラフィックが複数のサービス機能(英名:service function、略してSF)デバイスを指定された順番で通過するのを可能にする順序付きサービス機能セットであり、複数のSFデバイスはパケットを順番に処理して、サービス処理プロセスを完了させる。
【0006】
SFCはSRv6のSFCに向かって徐々に進化している。しかしながら、多くのSFデバイスが現在もまだSRv6をサポートしていない。言い換えれば、SFデバイスはSRv6非対応(英名:SRv6-unaware)デバイスであり、このSFデバイスはSRv6パケットのSRHを識別できない。このことを考慮して、SFデバイスは通常、1つまたは複数のサービス機能転送器(英名:Service Function Forwarder、略してSFF)に接続されている。SRv6サービス機能チェーンでパケットを転送するプロセスでは、SFFはSRプロキシ(英名:SR proxy)機能を実装して、SRHを取り除く方式でSRv6パケットをSFデバイスに転送し、SFデバイスがSRv6パケットを通常どおり処理できることを保証する。
【0007】
SRプロキシのタイプとしては、動的プロキシ、静的プロキシ、共有メモリプロキシ、またはマスカレードプロキシなどがあり得る。一例として、動的プロキシの処理プロセスを用いる。SFFがパケットを転送するプロセスとは、以下の通りである。SFFはSRv6パケットを受信し、SRv6パケットの宛先アドレスに基づいてローカルSIDテーブルに照会し、宛先アドレスがローカルSIDテーブルにあるエンドポイント動的プロキシSID(End.AD.SID、Endがendpointを示し、Dがdynamicを示し、SIDがセグメントIDを示す)である場合、SFFはEnd.AD.SIDに対応する動的プロキシオペレーションを行い(具体的には、SFFはSRv6パケットからSRHを取り除いて、SRHを含まないパケットを取得し)、SRHを含まないパケットをSFデバイスに送信し、SRHをキャッシュに格納する。SFデバイスはSRHを含まないパケットを受信し、そのパケットを処理し、処理したパケットをSFFに戻す。SFFは、SFデバイスから戻された、SRHを含まないパケットを受信した後に、SRHをキャッシュから取得し、処理されたパケットのSRHを復元し、このパケットをSRv6パケットに復元して、このSRv6パケットを転送する。
【0008】
前述の方法を用いる場合、転送プロセスにおいて、SFFはSRv6パケットのSRHを取り除き、SFデバイスから戻されたパケットに対してはSRHを復元する必要がある。その結果、SFFの実装が複雑になり、SFFのオーバーヘッドが高くなる。
【発明の概要】
【0009】
本願の実施形態では、SFFの実装を簡略化するために、SRv6サービス機能チェーンでパケットを転送する方法、SFF、およびSFデバイスを提供する。その技術的解決手段は、以下の通りである。
【0010】
第1態様によれば、SRv6サービス機能チェーンでパケットを転送する方法が提供される。本方法では、サービス機能転送器(SFF)が第1のインターネットプロトコルバージョン6を介したセグメントルーティング(SRv6)パケットを受信し、第1のSRv6パケットの宛先アドレスにはエンドポイント貫通セグメントID(End.PT.SID)が含まれており、End.PT.SIDは、セグメントルーティングヘッダ(SRH)を取り除くことなく第1のSRv6パケットをサービス機能(SF)デバイスに転送するようSFFに指示するのに用いられる。SFFは、End.PT.SIDと第1のSRv6パケットとに基づいて第2のSRv6パケットを生成し、第2のSRv6パケットには制御フラグが含まれており、制御フラグは、第2のSRv6パケットにおいて制御フラグの後に続くインターネットプロトコルバージョン6(IPv6)拡張ヘッダをオフセットするようSFデバイスに指示するのに用いられ、第2のSRv6パケットのIPv6拡張ヘッダにはSRHが含まれている。SFFは、第2のSRv6パケットをSFデバイスに送信する。
【0011】
以上では、SRv6サービス機能チェーンを実装する方法を提供している。End.PT.SIDを提供して用いるのは、SFFがSRHを取り除くことなくSRv6パケットをSFデバイスに転送するのを識別するためである。End.PT.SIDに基づいて、SFFは、SRv6パケットのSRHを取り除くのではなく、このSRv6パケットをSFデバイスに送信する。さらに、SFFが制御フラグをSRv6パケットに含めることで、制御フラグはIPv6拡張ヘッダをオフセットする必要があるシナリオを識別するのに用いられるようになる。SFデバイスは、SRv6パケットを受信した後に、制御フラグに基づいてSRv6パケットのIPv6拡張ヘッダを直接的にオフセットしてSRHを省略する。この方法を用いると、SFFはSRv6 SFCプロキシ機能をサポートする必要がない。具体的には、パケット転送プロセスにおいて、SFFはSRHを取り除いてSRHを復元するという段階を行う必要がないため、SFFを転送プレーンに実装するのが大幅に簡略化される。さらに、SFFはcacheの生成または維持を必要としないので、stateless転送プレーンが実装され得る。SFデバイスでは、SFデバイスはSRv6およびEnd.AN SID機能を実装することなく、SRv6のSFC機能を実装できる。
【0012】
任意選択で、制御フラグはさらに、SFFにパケットを戻すプロセスにおいてIPv6拡張ヘッダを戻すようSFデバイスに指示するのに用いられ、SFFが第2のSRv6パケットをSFデバイスに送信することの後に、本方法はさらに以下のことを含んでいる。
【0013】
SFFはSFデバイスから第3のSRv6パケットを受信し、第3のSRv6パケットにはIPv6拡張ヘッダが含まれており、第3のSRv6パケットおよび第2のSRv6パケットは同じSRHを有している。SFFは、第3のSRv6パケットのSRHに基づいて、第3のSRv6パケットに対して転送処理を行う。
【0014】
任意選択で、第3のSRv6パケットは、SFデバイスがサービス処理を行うことで取得されるパケットである。
【0015】
任意選択で、第2のSRv6パケットにはホップバイホップオプションヘッダが含まれており、ホップバイホップオプションヘッダには制御フラグが含まれている。
【0016】
ホップバイホップオプションヘッダは常にIPv6パケットの最初のIPv6拡張ヘッダとして用いられるため、ホップバイホップオプションヘッダがSFデバイスにより容易に解析されることで、SFデバイスは、ホップバイホップオプションヘッダに基づいて制御フラグおよびターゲット情報を識別して、関連する処理を行うことができるようになる。
【0017】
任意選択で、ホップバイホップオプションヘッダにはタイプ-長さ-値(TLV)が含まれており、TLVは制御フラグを搬送するのに用いられる。
【0018】
任意選択で、制御フラグは第2のSRv6パケットのSRHをオフセットするようSFデバイスに指示するのに用いられる、または、制御フラグは第2のSRv6パケットのSRHとSRH以外の別のIPv6拡張ヘッダとをオフセットするようSFデバイスに指示するのに用いられる。別のIPv6拡張ヘッダは、第2のSRv6パケットにおいて制御フラグの後に続く。
【0019】
任意選択で、第2のSRv6パケットにはさらにターゲット情報が含まれており、ターゲット情報は、SFデバイスがサービス処理を行うときに用いる必要がある情報であり、ターゲット情報は以下の方式で取得される。すなわち、SFFは第1のSRv6パケットのSRHからターゲット情報を取得する。
【0020】
サービス処理のために、SFデバイスは、SRHにカプセル化されているいくつかの情報を認識する必要があり得る。しかしながら、SFデバイスは通常、SRHを識別できない。その結果、SRHのサービス情報を取得できないため、SFデバイスはSRHのサービス情報に基づいてサービス処理を行うことができない。その代わりに、SFFがSRHを解析し、SRHに含まれているサービス情報をSFFがSFデバイスに渡すことで、SFデバイスはSRHに含まれているサービス情報を取得できるようになる。さらに、SFデバイスはSRHを解析する必要がない。この任意選択の方式は、SFデバイスがSRHのサービス情報に基づいてサービス処理を行うという要件を満たしており、この方式でSRv6-unawareのSFデバイスがSRHのサービス情報に基づいてサービス処理を行うことができるため、応用範囲が広がる。
【0021】
任意選択で、SFFは第1のSRv6パケットのSRHからサービス情報を取得し、サービス情報に基づいてマッピング関係情報に照会してターゲット情報を取得する。マッピング関係情報は、サービス情報とターゲット情報との対応関係を格納している。
【0022】
SFFは、SRHにあるサービス情報をSFデバイスが識別可能なターゲット情報にマッピングし、このターゲット情報をSFデバイスに送信される第2のSRv6パケットに含める。これにより、サービス情報はSFデバイスに理解される形態でSFデバイスに渡されるようになり、SFデバイスはターゲット情報に基づいてサービス処理を行うことができる。これにより、SFデバイスがSRHのサービス情報を識別せず、サービス情報に基づくサービス処理を行うことができないというケースが回避され、SFデバイスがSRHのサービス情報に基づいてサービス処理を行うという要件が満たされる。さらに、SRv6-unawareのSFデバイスに方式2を適用できるので、応用範囲が広がる。
【0023】
任意選択で、ターゲット情報には、サービス機能チェーン(SFC)メタデータおよび仮想プライベートネットワークID(VPN ID)のうちの少なくとも一方が含まれている。あるいは、サービス情報にはSFCメタデータおよびVPN IDのうちの少なくとも一方が含まれている。
【0024】
任意選択で、ターゲット情報および制御情報は、第2のSRv6パケットの同じTLVに位置している。
【0025】
第2態様によれば、SRv6サービス機能チェーンでパケットを処理する方法が提供される。本方法では、SFデバイスが第2のインターネットプロトコルバージョン6を介したセグメントルーティング(SRv6)パケットをサービス機能転送器(SFF)から受信する。第2のSRv6パケットには制御フラグが含まれており、制御フラグは、第2のSRv6パケットにおいて制御フラグの後に続くインターネットプロトコルバージョン6(IPv6)拡張ヘッダをオフセットするようSFデバイスに指示するのに用いられ、第2のSRv6パケットのIPv6拡張ヘッダにはセグメントルーティングヘッダ(SRH)が含まれている。SFデバイスは制御フラグに基づいて、第2のSRv6パケットのIPv6拡張ヘッダをオフセットする。
【0026】
任意選択で、制御フラグはさらに、SFFにパケットを戻すプロセスにおいて、IPv6拡張ヘッダを戻すようSFデバイスに指示するのに用いられ、本方法はさらに、SFデバイスが制御フラグに基づいてSFFに第3のSRv6パケットを送信する段階を含み、第3のSRv6パケットにはIPv6拡張ヘッダが含まれており、第3のSRv6パケットおよび第2のSRv6パケットは同じSRHを有している。
【0027】
任意選択で、第3のSRv6パケットは、SFデバイスがサービス処理を行うことで取得されるパケットである。
【0028】
任意選択で、第2のSRv6パケットにはホップバイホップオプションヘッダが含まれており、ホップバイホップオプションヘッダには制御フラグが含まれている。
【0029】
任意選択で、ホップバイホップオプションヘッダにはタイプ-長さ-値(TLV)が含まれており、TLVは制御フラグを搬送するのに用いられる。
【0030】
任意選択で、制御フラグは第2のSRv6パケットのSRHをオフセットするようSFデバイスに指示するのに用いられる、または制御フラグは第2のSRv6パケットのSRHとSRH以外の別のIPv6拡張ヘッダとをオフセットするようSFデバイスに指示するのに用いられる。別のIPv6拡張ヘッダは、第2のSRv6パケットにおいて制御フラグの後に続く。
【0031】
任意選択で、第2のSRv6パケットにはさらにターゲット情報が含まれており、ターゲット情報は、SFデバイスがサービス処理を行うときに用いられる必要がある情報であり、サービス処理を行うことは、ターゲット情報に基づいてサービス処理を行うことを含んでいる。
【0032】
任意選択で、ターゲット情報には、サービス機能チェーン(SFC)メタデータおよび仮想プライベートネットワークID(VPN ID)のうちの少なくとも一方が含まれている。
【0033】
任意選択で、ターゲット情報および制御情報は、第2のSRv6パケットの同じTLVに位置している。
【0034】
第3態様によれば、SRv6サービス機能チェーンでパケットを転送する方法が提供される。本方法は、サービス機能転送器(SFF)が第1のインターネットプロトコルバージョン6を介したセグメントルーティング(SRv6)パケットを受信する段階を含み、第1のSRv6パケットの宛先アドレスにはエンドポイント貫通セグメントID(End.PT.SID)が含まれており、End.PT.SIDは、セグメントルーティングヘッダ(SRH)を取り除くことなく第1のSRv6パケットをサービス機能(SF)デバイスに転送するようSFFに指示するのに用いられる。SFFは、End.PT.SIDと第1のSRv6パケットとに基づいて第2のSRv6パケットを生成し、第2のSRv6パケットのインターネットプロトコルバージョン6(IPv6)拡張ヘッダにはSRHが含まれており、SFFは第2のSRv6パケットをSFデバイスの第1のインタフェースに送信し、SFデバイスは第1のインタフェースを通じて受信したパケットのIPv6拡張ヘッダをオフセットするように構成されている。
【0035】
以上では、SRv6サービス機能チェーンを実装する方法を提供している。End.PT.SIDを提供して用いるのは、SFFがSRHを取り除くことなくSRv6パケットをSFデバイスに転送するのを識別するためである。End.PT.SIDに基づいて、SFFは、SRv6パケットのSRHを取り除くのではなく、このSRv6パケットをSFデバイスに送信する。さらに、SFデバイスに対して指定されたインバウンドインタフェースが、IPv6拡張ヘッダをオフセットする必要があるシナリオを識別するのに用いられる。SFFは、SFデバイスに対して指定されたインバウンドインタフェースにSRv6パケットを送信する。SFデバイスは、指定されたインバウンドインタフェースを通じてSRv6パケットを受信した後に、SRv6パケットのIPv6拡張ヘッダを直接的にオフセットして、サービス処理のためにSRHを省略する。この方法を用いると、SFFはSRv6のSFCプロキシ機能をサポートする必要がない。具体的には、パケット転送プロセスにおいて、SFFはSRHを取り除いてSRHを復元するという段階を行う必要がないため、SFFを転送プレーンに実装するのが大幅に簡略化される。さらに、SFFはcacheの生成または維持を必要としないので、stateless転送プレーンが実装され得る。SFデバイスでは、SFデバイスはSRv6およびEnd.AN SID機能を実装することなく、SRv6のSFC機能を実装できる。
【0036】
第4態様によれば、SRv6サービス機能チェーンでパケットを処理する方法が提供される。本方法は、サービス機能(SF)デバイスが第2のインターネットプロトコルバージョン6を介したセグメントルーティング(SRv6)パケットを第1のインタフェースを通じてサービス機能転送器(SFF)から受信する段階を含む。SFデバイスは、第1のインタフェースを通じて受信したパケットのインターネットプロトコルバージョン6(IPv6)拡張ヘッダをオフセットするように構成されており、第2のSRv6パケットのIPv6拡張ヘッダにはセグメントルーティングヘッダ(SRH)が含まれている。SFデバイスは第2のSRv6パケットのIPv6拡張ヘッダをオフセットする。
【0037】
第5態様によれば、SRv6サービス機能チェーンでパケットを転送する方法が提供される。本方法は、サービス機能転送器(SFF)が第1のインターネットプロトコルバージョン6を介したセグメントルーティング(SRv6)パケットを受信する段階を含む。第1のSRv6パケットの宛先アドレスにはエンドポイント貫通セグメントID(End.PT.SID)が含まれており、End.PT.SIDは、セグメントルーティングヘッダ(SRH)を取り除くことなく第1のSRv6パケットをサービス機能(SF)デバイスに転送するようSFFに指示するのに用いられる。SFFはEnd.PT.SIDおよび第1のSRv6パケットに基づいて第2のSRv6パケットを生成し、第2のSRv6パケットのインターネットプロトコルバージョン6(IPv6)拡張ヘッダにはSRHが含まれている。SFFは第2のSRv6パケットをSFデバイスに送信し、SFデバイスは、アクセス制御リスト(ACL)のマッチング条件を満たしているパケットのIPv6拡張ヘッダをオフセットするように構成されている。
【0038】
以上では、SRv6サービス機能チェーンを実装する方法を提供している。End.PT.SIDを提供して用いるのは、SFFがSRHを取り除くことなくSRv6パケットをSFデバイスに転送するのを識別するためである。End.PT.SIDに基づいて、SFFは、SRv6パケットのSRHを取り除くのではなく、このSRv6パケットをSFデバイスに送信する。さらに、SFデバイスに設定されるACLが、IPv6拡張ヘッダをオフセットする必要があるシナリオを識別するのに用いられる。SFデバイスがSRv6パケットを受信した後に、SRv6パケットがACLのマッチング条件を満たしているとSFデバイスが判定した場合、SFデバイスは、SRv6パケットのIPv6拡張ヘッダを直接的にオフセットしてSRHを省略する。この方法を用いると、SFFはSRv6のSFCプロキシ機能をサポートする必要がない。具体的には、パケット転送プロセスにおいて、SFFはSRHを取り除いてSRHを復元するという段階を行う必要がないため、SFFを転送プレーンに実装するのが大幅に簡略化される。さらに、SFFはcacheの生成または維持を必要としないので、stateless転送プレーンが実装され得る。SFデバイスでは、SFデバイスはSRv6およびEnd.AN SID機能を実装することなく、SRv6のSFC機能を実装できる。
【0039】
第6態様によれば、SRv6サービス機能チェーンでパケットを処理する方法が提供される。本方法は、サービス機能(SF)デバイスが第2のインターネットプロトコルバージョン6を介したセグメントルーティング(SRv6)パケットをサービス機能転送器(SFF)から受信する段階を含む。SFデバイスは、アクセス制御リスト(ACL)のマッチング条件を満たしているパケットのインターネットプロトコルバージョン6(IPv6)拡張ヘッダをオフセットするように構成されており、第2のSRv6パケットのIPv6拡張ヘッダにはセグメントルーティングヘッダ(SRH)が含まれている。SFデバイスは、第2のSRv6パケットがACLのマッチング条件を満たしていると判定し、SFデバイスは第2のSRv6パケットのIPv6拡張ヘッダをオフセットする。
【0040】
第7態様によれば、SFFが提供される。SFFは、第1態様または第1態様のいずれか任意選択の方式における、SRv6サービス機能チェーンでパケットを転送する機能を有している。SFFは少なくとも1つのモジュールを含み、少なくとも1つのモジュールは、第1態様または第1態様のいずれか任意選択の方式において提供された、SRv6サービス機能チェーンでパケットを転送する方法を実装するように構成されている。第7態様において提供されるSFFの具体的な詳細については、第1態様または第1態様のいずれか任意選択の方式を参照されたい。詳細については、再度ここで説明しない。
【0041】
第8態様によれば、SFデバイスが提供される。SFデバイスは、第2態様または第2態様のいずれか任意選択の方式における、SRv6サービス機能チェーンでパケットを転送する機能を有している。SFデバイスは少なくとも1つのモジュールを含み、少なくとも1つのモジュールは、第2態様または第2態様のいずれか任意選択の方式において提供された、SRv6サービス機能チェーンでパケットを転送する方法を実装するように構成されている。第8態様において提供されるSFデバイスの具体的な詳細については、第2態様または第2態様のいずれか任意選択の方式を参照されたい。詳細については、再度ここで説明しない。
【0042】
第9態様によれば、SFFが提供される。SFFは、第3態様または第3態様のいずれか任意選択の方式における、SRv6サービス機能チェーンでのパケット転送を実装できる。SFFは少なくとも1つのモジュールを含み、少なくとも1つのモジュールは、第3態様または第3態様のいずれか任意選択の方式において提供された、SRv6サービス機能チェーンでパケットを転送する方法を実装するように構成されている。第9態様において提供されるSFFの具体的な詳細については、第3態様または第3態様のいずれか任意選択の方式を参照されたい。詳細については、再度ここで説明しない。
【0043】
第10態様によれば、SFデバイスが提供される。SFデバイスは、第4態様または第4態様のいずれか任意選択の方式における、SRv6サービス機能チェーンでのパケット転送を実装できる。SFデバイスは少なくとも1つのモジュールを含み、少なくとも1つのモジュールは、第4態様または第4態様のいずれか任意選択の方式において提供された、SRv6サービス機能チェーンでパケットを転送する方法を実装するように構成されている。第10態様において提供されるSFデバイスの具体的な詳細については、第4態様または第4態様のいずれか任意選択の方式を参照されたい。詳細については、再度ここで説明しない。
【0044】
第11態様によれば、SFFが提供される。SFFは、第5態様または第5態様のいずれか任意選択の方式における、SRv6サービス機能チェーンでのパケット転送を実装できる。SFFは少なくとも1つのモジュールを含み、少なくとも1つのモジュールは、第5態様または第5態様のいずれか任意選択の方式において提供された、SRv6サービス機能チェーンでパケットを転送する方法を実装するように構成されている。第11態様において提供されるSFFの具体的な詳細については、第5態様または第5態様のいずれか任意選択の方式を参照されたい。詳細については、再度ここで説明しない。
【0045】
第12態様によれば、SFデバイスが提供される。SFデバイスは、第6態様または第6態様のいずれか任意選択の方式における、SRv6サービス機能チェーンでのパケット転送を実装できる。SFデバイスは少なくとも1つのモジュールを含み、少なくとも1つのモジュールは、第6態様または第6態様のいずれか任意選択の方式において提供された、SRv6サービス機能チェーンでパケットを転送する方法を実装するように構成されている。第12態様において提供されるSFデバイスの具体的な詳細については、第6態様または第6態様のいずれか任意選択の方式を参照されたい。詳細については、再度ここで説明しない。
【0046】
第13態様によれば、SFFが提供される。SFFは、プロセッサおよび物理インタフェースを含む。プロセッサが命令を実行するように構成されていることにより、SFFは、第1態様または第1態様のいずれか任意選択の方式において提供された、SRv6サービス機能チェーンでパケットを転送する方法を行うようになる。物理インタフェースは、パケットを受信する、またはパケットを送信するように構成されている。第13態様において提供されるSFFの具体的な詳細については、第1態様または第1態様のいずれか任意選択の方式を参照されたい。詳細については、再度ここで説明しない。
【0047】
第14態様によれば、SFデバイスが提供される。SFデバイスは、プロセッサおよび物理インタフェースを含む。プロセッサが命令を実行するように構成されていることにより、SFデバイスは、第2態様または第2態様のいずれか任意選択の方式において提供された、SRv6サービス機能チェーンでパケットを転送する方法を行うようになる。物理インタフェースは、パケットを受信するように構成されている。第14態様において提供されるSFデバイスの具体的な詳細については、第2態様または第2態様のいずれか任意選択の方式を参照されたい。詳細については、再度ここで説明しない。
【0048】
第15態様によれば、SFFが提供される。SFFは、プロセッサおよび物理インタフェースを含む。プロセッサが命令を実行するように構成されていることにより、SFFは、第3態様または第3態様のいずれか任意選択の方式において提供された、SRv6サービス機能チェーンでパケットを転送する方法を行うようになる。物理インタフェースは、パケットを受信する、またはパケットを送信するように構成されている。第15態様において提供されるSFFの具体的な詳細については、第3態様または第3態様のいずれか任意選択の方式を参照されたい。詳細については、再度ここで説明しない。
【0049】
第16態様によれば、SFデバイスが提供される。SFデバイスは、プロセッサおよび物理インタフェースを含む。プロセッサが命令を実行するように構成されていることにより、SFデバイスは、第4態様または第4態様のいずれか任意選択の方式において提供された、SRv6サービス機能チェーンでパケットを転送する方法を行うようになる。物理インタフェースは、パケットを受信するように構成されている。第16態様において提供されるSFデバイスの具体的な詳細については、第4態様または第4態様のいずれか任意選択の方式を参照されたい。詳細については、再度ここで説明しない。
【0050】
第17態様によれば、SFFが提供される。SFFは、プロセッサおよび物理インタフェースを含む。プロセッサが命令を実行するように構成されていることにより、SFFは、第5態様または第5態様のいずれか任意選択の方式において提供された、SRv6サービス機能チェーンでパケットを転送する方法を行うようになる。物理インタフェースは、パケットを受信する、またはパケットを送信するように構成されている。第17態様において提供されるSFFの具体的な詳細については、第5態様または第5態様のいずれか任意選択の方式を参照されたい。詳細については、再度ここで説明しない。
【0051】
第18態様によれば、SFデバイスが提供される。SFデバイスは、プロセッサおよび物理インタフェースを含む。プロセッサが命令を実行するように構成されていることにより、SFデバイスは、第6態様または第6態様のいずれか任意選択の方式において提供された、SRv6サービス機能チェーンでパケットを転送する方法を行うようになる。物理インタフェースは、パケットを受信するように構成されている。第18態様において提供されるSFデバイスの具体的な詳細については、第6態様または第6態様のいずれか任意選択の方式を参照されたい。詳細については、再度ここで説明しない。
【0052】
第19態様によれば、コンピュータ可読記憶媒体が提供される。記憶媒体は少なくとも1つの命令を格納しており、この命令をプロセッサが読み出して、第1態様または第1態様のいずれか任意選択の方式において提供された、SRv6サービス機能チェーンでパケットを転送する方法をSFFが行うことを可能にする。
【0053】
第20態様によれば、コンピュータ可読記憶媒体が提供される。記憶媒体は少なくとも1つの命令を格納しており、この命令をプロセッサが読み出して、第2態様または第2態様のいずれか任意選択の方式において提供された、SRv6サービス機能チェーンでパケットを転送する方法をSFデバイスが行うことを可能にする。
【0054】
第21態様によれば、コンピュータ可読記憶媒体が提供される。記憶媒体は少なくとも1つの命令を格納しており、この命令をプロセッサが読み出して、第3態様または第3態様のいずれか任意選択の方式において提供された、SRv6サービス機能チェーンでパケットを転送する方法をSFFが行うことを可能にする。
【0055】
第22態様によれば、コンピュータ可読記憶媒体が提供される。記憶媒体は少なくとも1つの命令を格納しており、この命令をプロセッサが読み出して、第4態様または第4態様のいずれか任意選択の方式において提供された、SRv6サービス機能チェーンでパケットを転送する方法をSFデバイスが行うことを可能にする。
【0056】
第23態様によれば、コンピュータ可読記憶媒体が提供される。記憶媒体は少なくとも1つの命令を格納しており、この命令をプロセッサが読み出して、第5態様または第5態様のいずれか任意選択の方式において提供された、SRv6サービス機能チェーンでパケットを転送する方法をSFFが行うことを可能にする。
【0057】
第24態様によれば、コンピュータ可読記憶媒体が提供される。記憶媒体は少なくとも1つの命令を格納しており、この命令をプロセッサが読み出して、第6態様または第6態様のいずれか任意選択の方式において提供された、SRv6サービス機能チェーンでパケットを転送する方法をSFデバイスが行うことを可能にする。
【0058】
第25態様によれば、コンピュータプログラム製品が提供される。コンピュータプログラム製品がSFFで実行されると、SFFは、第1態様もしくは第1態様のいずれか任意選択の方式、第3態様もしくは第3態様のいずれか任意選択の方式、または第5態様もしくは第5態様のいずれか任意選択の方式において提供された、SRv6サービス機能チェーンでパケットを転送する方法を行う。
【0059】
第26態様によれば、コンピュータプログラム製品が提供される。コンピュータプログラム製品がSFデバイスで実行されると、SFデバイスは、第2態様もしくは第2態様のいずれか任意選択の方式、第4態様もしくは第4態様のいずれか任意選択の方式、または第5態様もしくは第5態様のいずれか任意選択の方式において提供された、SRv6サービス機能チェーンでパケットを転送する方法を行う。
【0060】
第27態様によれば、チップが提供される。チップがSFFで実行されると、SFFは、第1態様もしくは第1態様のいずれか任意選択の方式、第3態様もしくは第3態様のいずれか任意選択の方式、または第5態様もしくは第5態様のいずれか任意選択の方式において提供された、SRv6サービス機能チェーンでパケットを転送する方法を行う。
【0061】
第28態様によれば、チップが提供される。チップがSFデバイスで実行されると、SFデバイスは、第2態様もしくは第2態様のいずれか任意選択の方式、第4態様もしくは第4態様のいずれか任意選択の方式、または第5態様もしくは第5態様のいずれか任意選択の方式において提供された、SRv6サービス機能チェーンでパケットを転送する方法を行う。
【0062】
第29態様によれば、ネットワークシステムが提供される。ネットワークシステムは、SFFおよびSFデバイスを含む。SFFは、第1態様または第1態様のいずれか任意選択の方式による方法を行うように構成されており、SFデバイスは、第2態様または第2態様のいずれか任意選択の方式による方法を行うように構成されている。
【0063】
第30態様によれば、ネットワークシステムが提供される。ネットワークシステムは、SFFおよびSFデバイスを含む。SFFは、第3態様または第3態様のいずれか任意選択の方式による方法を行うように構成されており、SFデバイスは、第4態様または第4態様のいずれか任意選択の方式による方法を行うように構成されている。
【0064】
第31態様によれば、ネットワークシステムが提供される。ネットワークシステムは、SFFおよびSFデバイスを含む。SFFは、第5態様または第5態様のいずれか任意選択の方式による方法を行うように構成されており、SFデバイスは、第6態様または第6態様のいずれか任意選択の方式による方法を行うように構成されている。
【図面の簡単な説明】
【0065】
図1】本願の一実施形態によるSRv6パケットの概略図である。
【0066】
図2】本願の一実施形態によるSRHの概略図である。
【0067】
図3】本願の一実施形態による、パケットのIPv6宛先アドレスの変換概略図である。
【0068】
図4】本願の一実施形態によるSRv6 SIDの概略図である。
【0069】
図5】本願の一実施形態によるSRv6 End SIDの概略図である。
【0070】
図6】本願の一実施形態によるEnd SIDベースの転送プロセスの概略図である。
【0071】
図7】本願の一実施形態によるSRv6 SFC実装原理の概略図である。
【0072】
図8】本願の一実施形態によるSRプロキシの概略図である。
【0073】
図9】本願の一実施形態による静的なSRプロキシの概略図である。
【0074】
図10】本願の一実施形態による転送シナリオの概略図である。
【0075】
図11】本願の一実施形態によるSRv6 SFCのジレンマ分析の概略図である。
【0076】
図12】本願の一実施形態によるシステムアーキテクチャ100の概略図である。
【0077】
図13】本願の一実施形態による、SRv6サービス機能チェーンでパケットを転送する方法200のフローチャートである。
【0078】
図14】本願の一実施形態による、SRv6パケットの挿入モードおよびカプセル化モードの概略図である。
【0079】
図15】本願の一実施形態による、SRv6サービス機能チェーンでのパケット転送の概略図である。
【0080】
図16】本願の一実施形態による、制御フラグを含むホップバイホップオプションヘッダの概略図である。
【0081】
図17】本願の一実施形態による、制御フラグおよびターゲット情報を含むホップバイホップオプションヘッダの概略図である。
【0082】
図18】本願の一実施形態による、SRv6サービス機能チェーンでパケットを転送する方法300のフローチャートである。
【0083】
図19】本願の一実施形態による、SRv6サービス機能チェーンでパケットを転送する方法400のフローチャートである。
【0084】
図20】本願の一実施形態によるSFFの構造概略図である。
【0085】
図21】本願の一実施形態によるSFデバイスの構造概略図である。
【0086】
図22】本願の一実施形態によるSFFの構造概略図である。
【0087】
図23】本願の一実施形態によるSFデバイスの構造概略図である。
【0088】
図24】本願の一実施形態によるネットワークシステムの構造概略図である。
【発明を実施するための形態】
【0089】
本願の目的、技術的解決手段、および利点をより明確にするために、以下では添付図面を参照しながら本願の実装形態についてさらに詳細に説明する。
【0090】
本願の本実施形態において提供される、インターネットプロトコルバージョン6を介したセグメントルーティング(英名:internet protocol version 6 for Segment Routing、略してSRv6)サービス機能チェーンでパケットを転送する方法が、セグメントルーティング(英名:segment routing、略してSR)分野におけるサービス機能チェーン(英名:service function chain、略してSFC、サービスチェーンとも呼ばれる)シナリオに適用され得る。以下では、SR技術、SFC技術、およびSR SFC技術について別々に簡潔に説明する。
【0091】
SRとは、ソースルーティング転送モードに基づくトンネリング技術である。SR技術には、2つのデータプレーンが含まれており、マルチプロトコルラベルスイッチング(Multi-Protocol Label Switching、MPLS)およびインターネットプロトコルバージョン6(英名:internet protocol version 6、略してIPv6)である。この2つのデータプレーンはそれぞれ、SR MPLSおよびSRv6と呼ばれている。SRv6は通常、SIDリスト(SID list、segment listまたはSIDリストとも呼ばれる)を搬送するためのセグメントルーティングヘッダ(英名:Segment Routing Header、略してSRH)を用いる。SID listは、IPv6パケットの転送経路を指定する。SRHとは、IPv6ルーティングヘッダ(IPv6 Routing Header)である。例えば、SRHのルーティングタイプ(Routing Type)の値が4である。
【0092】
SRの設計思想には、サービスフローの先頭ノードに関するフローごとの(per-flow)状態を維持することが含まれており、通過ノードおよび末尾ノードのper-flow状態を維持する必要性はない。サービスフローの先頭ノードは、SRトンネルの先頭ノードである。SRポリシー(SR policy)とは、per-flow状態を維持する機能である。
【0093】
セグメント(Segment、セグメント化とも呼ばれる)またはセグメントID(Segment ID、SID)とは、SRの中核要素である。Segmentの定義には、Segmentが任意のトポロジー、命令、またはサービスを表すことが含まれている。
【0094】
SRトンネル(SR Tunnel)とは、Segment listを先頭ノードのパケットヘッダにカプセル化することで形成されるトンネルである。SRトンネルは、トラフィックエンジニアリング(Traffic Engineering、TE)トンネルアプリケーションに用いられてもよく、運用・管理・保守(Operations, Administration, and Maintenance、OAM)検出および高速リルート(Fast Reroute、FRR)などに用いられてもよい。SRトンネルは、分散方式で確立されても、集中方式で確立されてもよい。分散方式は、インターミディエイト・システム・ツー・インターミディエイト・システム(Intermediate system to intermediate system、IS-IS)、オープン・ショーテスト・パス・ファースト(Open Shortest Path First、OSPF)、または境界ゲートウェイプロトコル(Border Gateway Protocol、BGP)を用いてSIDが広告される方式を指す。集中方式は、SDNコントローラ(英名:SDN controller)が境界ゲートウェイプロトコルリンクステート(border gateway protocol-link state、BGP-LS)または経路計算要素通信プロトコル(path computation element communication protocol、PCEP)を用いて経路を収集し計算する方式を指す。ここでのトンネルは概して、2点間の一連のエンドツーエンド経路を指し、この2点はそれぞれ、トンネルの始点およびトンネルの終点である。トンネルの始点は先頭ノードであり、トンネルの終点は末尾ノードである。トンネルは、1つの経路または複数の経路を含む。
【0095】
SRHは、ルーズソースルーティングモードを用いる。具体的には、転送経路上のあらゆるホップがSRHをサポートし解析する必要はなく、SRHのSID listが経路上のあらゆるホップノードを含む必要はない。SRv6トンネルパケットが、SRHを含まなくてもよい。
【0096】
先頭ノードは、2つの方式でSRトンネルのSID listを指定できる。一方の方式は明確な候補経路(Explicit candidate path)であり、他方の方式は動的な候補経路(Dynamic candidate path)である。さらに、バインディングSID(Binding SID、BSID)が、SRポリシーに対してトラフィックを誘導(steer)するのに用いられてよく、これにより、いくつかのネットワークのトポロジー詳細が保護され、ハードウェアチップのMSD仕様の不足が回避される。
【0097】
SR MPLSと比較すると、SRv6はSRの一般的な特徴を有しており、顕著なのは、SRv6がネットワークプログラミングをサポートしていることである。ネットワークプログラミングによって、SRv6は強力な拡張性を有しており、SRv6は様々なアプリケーションシナリオに適用され得る。例えば、SRv6は、BGPまたはSRレイヤー3仮想プライベートネットワーク(SR Layer 3 Virtual Private Network、SR L3 VPN)、イーサネット(登録商標)仮想プライベートネットワークレイヤー2仮想プライベートネットワーク(Ethernet virtual private network Layer 2 VPN、EVPN L2 VPN)またはEVPN L3 VPN、およびSFCなどを実装するのに用いられ得る。
【0098】
以上はSR技術の概要の紹介であり、以下ではSRv6技術の専門用語をいくつか説明する。
【0099】
Segment listは、パケット転送経路の順序付きSegmentリストを表している。SR MPLSでは、セグメントリストがラベルスタックである。SRv6では、セグメントリストがIPv6アドレスリストであり、これはIPv6パケットのSRHで搬送される。
【0100】
Segmentがパケット処理命令を表しており、例えば、最短経路を使ってまたは指定されたインタフェースによってパケットを宛先に転送する、あるいは指定されたアプリケーションまたはサービスインスタンスにパケットを転送するようデバイスに指示する。
【0101】
SIDは、SegmentのIDであり、セグメントを一意に識別する。SR MPLSの転送プレーンでは、SIDをMPLSラベルにマッピングすることができる。SRv6の転送プレーンでは、SIDをIPv6アドレスにマッピングすることができる。SIDは基本的に、トポロジー、命令、またはサービスを表すことができる。
【0102】
アクティブSID(active SID)とは、セグメントリストで処理されるセグメントである。パケットを受信すると、SRノードはアクティブセグメントを処理する。SR MPLSにおいてアクティブセグメントとは、ラベルスタックの最外ラベルである。SRv6では、アクティブセグメントが、SRHを搬送するIPv6パケットの宛先アドレスである。さらに、アクティブセグメントは、SLフィールドの値で示されてよい。例えば、セグメントリストがSID0、SID1、SID2、SID3、SID4という5つのSIDを含み、SL値が2である場合、これは、セグメントリスト内の処理されていない2つのSIDがSID0およびSID1であり、セグメントリスト内の現在処理されているSIDがSID2であり、セグメントリスト内の処理された2つのSIDがSID3およびSID4であることを示している。
【0103】
SRv6は、IPv6ネットワークに適用されるSR技術である。SRv6 SIDがIPv6アドレス(128ビット)を用いて符号化されて、SRHにカプセル化される。パケットを転送する場合、SRv6対応のノードがパケットの宛先アドレス(Destination Address、DA)に基づいてローカルSIDテーブル(local SID table、Local SIDテーブルとも呼ばれる)に照会する。パケットの宛先アドレスがローカルSIDテーブルにあるいずれかのSIDと一致すると、宛先アドレスがローカルSIDテーブルと一致していると判定され、このSIDに対応するトポロジー、命令、またはサービスに基づいて、対応するオペレーションが行われる。パケットの宛先アドレスがローカルSIDテーブルにあるどのSIDとも一致しない場合、宛先アドレスに基づいてIPv6ルーティング転送テーブルに照会し、宛先アドレスと一致したルーティング転送テーブルに基づいてパケットが転送される。
【0104】
ローカルSIDテーブルは、SRv6対応のノードにより維持される。ローカルSIDテーブルには、ローカルノードにより生成されるSRv6 SIDが含まれている。SRv6転送テーブルFIBが、ローカルSIDテーブルに基づいて生成され得る。ローカルSIDテーブルは3つの機能を有している。第1に、ローカルに生成されるSID(例えばEnd.X SID)を定義すること。第2に、SIDに結びつけられる命令を指定すること。第3に、アウトバウンドインタフェースおよびネクストホップなどの、命令に関連した転送情報を格納することである。
【0105】
SRv6パケットとは、IPv6標準ヘッダ、拡張ヘッダ(0…n)、およびペイロード(Payload)を含むIPv6パケットである。IPv6転送プレーンに基づくSegment Routing IPv6(SRv6)を実装するために、SRH(Segment Routing Header)拡張ヘッダと呼ばれるIPv6拡張ヘッダが追加される。この拡張ヘッダは、IPv6明示経路を指定し、IPv6 Segment list情報を格納する。先頭ノードがSRH拡張ヘッダをIPv6パケットに追加することで、通過ノードが、SRH拡張ヘッダに含まれた経路情報に基づいてパケットを転送できるようになる。拡張ヘッダを追加することで、SRは元のIPv6転送プレーンと支障なく統合される。
【0106】
図1を参照されたい。図1は、本願の一実施形態によるSRv6パケットの概略図である。SRv6パケットは、IPv6ヘッダ、SRH、およびペイロードを含んでよい。以下では、SRv6パケットの各部分を(1)~(3)で説明する。
【0107】
(1)SRv6パケットのIPv6ヘッダ
【0108】
SRv6パケットのIPv6ヘッダは、送信元アドレス(source address、SA)およびDAを含んでよい。一般的なIPv6パケットでは、IPv6 DAが固定されている。SRv6では、IPv6 DAが現パケットのネクストノードを識別する。SRトンネルでは、ホップバイホップ転送を完了させるために、SRノードが宛先アドレスを常に更新してよい。IPv6ヘッダの宛先アドレスで搬送されるSIDが、Active SIDと呼ばれることがある。
【0109】
(2)SRv6パケットのSRH
【0110】
SRHはIPv6拡張ヘッダである。SRHは、IPv6転送プレーンに基づいてSRv6を実装するのに用いられる。図2を参照されたい。図2は、本願の一実施形態によるSRHの概略図である。
【0111】
SRHは、以下の(2.1)~(2.9)を含んでよい。
【0112】
(2.1)セグメントリスト
【0113】
セグメントリストには、1つまたは複数のSIDが含まれてよく、そのそれぞれがIPv6アドレスのフォーマットでよく、したがって、セグメントリストも明確なIPv6アドレススタックとして理解されてよい。セグメントリストは、Segment list[n]で示されてよい。Segment list[n]の長さは、(128×n)ビットである。セグメントリストは、経路の最終セグメントから開始して符号化されてよい。Segment listは、IPv6アドレスのフォーマットである。
【0114】
(2.2)セグメント残数(Segments Left、SL)
【0115】
パケットが宛先ノードに到着するまでに、まだアクセスすべき通過ノードの数を示すのに、SLが用いられる。SLフィールドは、残ノードフィールドとも呼ばれることがある。SLフィールドの値が、セグメントリストのアクティブSIDを示してよい。SLの長さは8ビットでよい。例えば、セグメントリストがSID0、SID1、SID2、SID3、SID4という5つのSIDを含み、SL値が2である場合、これは、セグメントリスト内の処理されていない2つのSIDがSID0およびSID1であり、セグメントリスト内の現在処理されているSIDがSID2であり、セグメントリスト内の処理された2つのSIDがSID3およびSID4であることを示している。
【0116】
以上の(2.1)および(2.2)を参照して、SRHは以下のフォーマットに抽象化されてよい。
SRH(SL=n)
<segment list[0],segment list[1],segment list[2],...,segment list[n]>:
<segment list[0],segment list[1],segment list[2],...,segment list[n]>は、SRv6パケットのセグメントリストであり、これはSR MPLSのMPLSラベルスタック情報と同様であり、入力ノードで生成される。segment list[0]はSRv6経路で処理される1番目のセグメントリストであり、segment list[1]は2番目のセグメントリストであり、segment list[2]は3番目のセグメントリストであり、segment list[n]は類推によって(n+1)番目のセグメントリストである。
【0117】
IPv6パケットのSRHは逆の順序で表されてよいことに留意されたい。具体的には、SRHは(segment list[2],segment list[1],segment list[0])のフォーマットで表されてよい。
【0118】
図3に示すように、SRv6では、パケットがSRv6ノードを通過するたびに、Segments Left(SL)フィールドの値が1だけ減少し、IPv6 DAが変化する。Segments LeftおよびSegments Listの各フィールドは共同で、IPv6 DAの情報を判定する。
【0119】
SL値がn(n-0)である場合、IPv6 DAの値はSegments List[0]の値である。
【0120】
SL値が(n-1)である場合、IPv6 DAの値はSegments List[1]の値である。
【0121】
SL値が(n-2)である場合、IPv6 DAの値はSegments List[2]の値である。
【0122】
SL値が0(n-n=0)である場合、IPv6 DAの値はSegments List[n]の値である。
【0123】
(2.3)1つまたは複数のTLV
【0124】
TLVとは符号化フォーマットであり、TLVにはタイプ(type)、長さ(length)、および値(value)が含まれている。SRHは、1つのTLVを含んでもよく、複数のTLVを含んでもよい。SRHの異なるTLV同士が並列関係を有しても、入れ子関係を有してもよい。
【0125】
(2.4)ネクストヘッダのタイプ(Next Header):SRv6パケットはさらに、拡張ヘッダの後に1つまたは複数の拡張ヘッダを含んでも、1つまたは複数の上位層ヘッダを含んでもよい。Next Headerは、SRHの直後に続くパケットヘッダのタイプを識別するのに用いられる。ネクストヘッダタイプフィールドの長さは、8ビットでよい。
【0126】
(2.5)ヘッダ拡張長(英名:header Extended Length、略してHdr Ext Len)フィールド:SRHヘッダの長さを示すのに用いられる。SRHヘッダの長さは主に、セグメントリストの長さ、例えば、segment list[0]~segment list[n]により占有される長さを指す。
【0127】
(2.6)ルーティングタイプ(Routing Type)フィールド:ルーティングヘッダタイプを識別するのに用いられ、SRH Typeは4である。ルーティングタイプフィールドの長さは、8ビットでよい。
【0128】
(2.7)最終エントリインデックス(Last Entry)フィールド:セグメントリストの最終エレメントのインデックスである。Last Entryフィールドの長さは、8ビットでよい。
【0129】
(2.8)フラグ(Flag)フィールド:データパケットのいくつかのフラグを示すのに用いられる。Flagフィールドの長さは、8ビットでよい。
【0130】
(2.9)タグ(Tag)フィールド:同じグループのデータパケットを識別するのに用いられる。Tagフィールドの長さは、16ビットでよい。
【0131】
(3)SRv6パケットのペイロード
【0132】
SRv6パケットのペイロードは、例えば、IPv4パケット、IPv6パケット、またはイーサネット(Ethernet(登録商標)、略してEth)フレームである。SRv6パケットのペイロードは、元パケットと呼ばれることがある。
【0133】
以上ではSRv6パケットの構造について説明しており、以下ではSRv6 SIDについて説明する。
【0134】
SRv6 SIDは、128ビットを含み得る。SRv6 SIDは、16進フォーマットになり得る。SRv6 SIDのフォーマットは、X:X:X:X:X:X:X:Xであってよい。図4を参照されたい。図4は、本願の一実施形態によるSRv6 SIDの概略図である。SIDは位置情報(Locator)および機能情報(Function)を含んでよく、このSIDのフォーマットがLocator:Functionである。任意選択で、SIDはさらにパラメータ情報(Argument)を含んでよく、このSIDのフォーマットがLocator:Function:Argumentである。SRv6 SIDが生成された後に、このSRv6 SIDが現デバイスのLocal SIDテーブルに追加されて、ルーティングプロトコルを通じて広告もされる。実際に転送する際には、SRv6 SIDのLocator部分を用いて、ネットワーク上の他のノードによるルーティングおよびアドレス指定の実行に役立て、SRv6 SIDを生成したノードを探し、そのノードにSRv6パケットを転送する。Function部分は、SRv6 SIDを生成したノードに、対応する機能オペレーションを行うよう指示するのに用いられる。
【0135】
LocatorはSIDの上位ビットを占有している。Locatorフィールドは、IPv6プレフィックスIPv6アドレス(IPv6-prefix IPv6-address)パラメータに対応し、Locatorフィールドの長さがprefix-lengthパラメータにより決定される。LocatorはIPv6ネットワークセグメントであり、これに基づいて、全てのIPv6アドレスをSRv6 SIDとして割り当てることができる。ノードがLocatorを設定した後に、システムがLocatorネットワークセグメントルートを生成し、これによってローカルノードを配置することができ、ローカルノードにより広告されるSIDは全て、Locatorネットワークセグメントルートを通って到達できる。SRv6のLocatorは、SRv6 Locator TLVによって広告されてよい。別のSRv6対応のIS-ISデバイスが、TLVを受信した後に、対応するLocatorを現デバイスの転送テーブルに伝える。SRv6非対応のIS-ISデバイスが、Locatorを転送テーブルに伝えることはない。
【0136】
FunctionはSIDの下位ビットを占有している。Functionフィールドはオペレーションコード(Opcode)とも呼ばれており、これは、IGPプロトコルによって動的に割り当てられても、opcodeコマンドを用いて静的に設定されてもよい。SRv6では、Functionを用いて、各Segmentに対応するアクションを定義できる。
【0137】
SRv6 SIDが上述されている。SRv6のSIDタイプには、End SID、End.X SID、End.DT4 SID、およびEnd.OTP SIDなどが含まれてよい。以下では、一例としてEnd SIDを用い、SRv6 SIDベースの転送プロセスについて説明する。
【0138】
End SIDのEndがendpointを示す。End SIDはendpoint SIDを示す。End SIDは、ネットワークにおいて宛先アドレスプレフィックス(Prefix)を識別する。例えば、図5を参照されたい。図5は、本願の一実施形態によるEnd SIDの概略図である。ノードAのEnd SIDが[A::]でよい。ノードBのEnd SIDが[B::]でよい。ノードCのEnd SIDが[C::]でよい。
【0139】
End SIDベースの転送オペレーションには、以下の段階1~5が含まれてよい。
【0140】
段階1:SRノードがパケットを受信する。
【0141】
段階2:SRノードは、パケットのIPv6ヘッダの宛先アドレスに基づいて、Local SIDテーブルに照会する。
【0142】
段階3:SRノードは、Local SIDテーブルに基づいて、アクティブSIDのSIDタイプ(SID type、FuncTypeまたはFunctionタイプとも呼ばれる)がEndであると判定する。
【0143】
段階4:SRノードは、IPv6ルーティング転送テーブルに照会を続ける。
【0144】
段階5:SRノードは、IPv6ルーティング転送テーブルの、照会されたアウトバウンドインタフェースとネクストホップとに基づいて、パケットを転送する。
【0145】
例えば、以下の表1を参照されたい。表1は、ローカルSIDテーブルの一例である。パケットのIPv6 DAが10:1::1:0/128であると仮定する。SRノードは、SRv6パケットを受信すると、SRv6パケットのIPv6 DAに基づいて表1に照会し、10:1::1:0/128のSIDタイプがEndであると判定する。次に、SRノードは、10:1::1:0/128に基づいてIPv6ルーティング転送テーブルに照会を続け、10:1::1:0/128に基づいてIPv6ルーティング転送テーブルと一致したアウトバウンドインタフェースおよびネクストホップに基づいてパケットを転送する。
【表1】
【0146】
表1の表見出しである[My Local-SID End Forwarding Table]は、SRv6 EndのローカルSIDテーブルを示している。FuncTypeは、Functionタイプを示している。Flavorは特性を示しており、例えば、SRHの最後から2番目のセグメントPOP(penultimate segment POP of the SRH、略してPSP)である。Locator IDは、Locatorに割り当てられたIDを示している。
【0147】
図6を参照されたい。図6は、本願の一実施形態によるEnd SIDベースの転送プロセスの概略図である。この転送プロセスは以下のことを含んでいる。SRHがノードAのパケットにプッシュされ、SRHの経路情報が<Z::,F::,D::,B::>であり、パケットのIPv6ヘッダの宛先アドレスが[B::]である。パケットが通過ノード(例えば、ノードBまたはノードD)を通過するたびに、通過ノードはパケットのIPv6 DAに基づいてLocal SIDテーブルに照会する。タイプがEndであると通過ノードが判定すると、通過ノードはIPv6ルーティング転送テーブルに照会を続け、IPv6ルーティング転送テーブルに照会されたアウトバウンドインタフェースとネクストホップとに基づいて転送を行う。同時に、SL値が1だけ減少し、IPv6 DAが一度変換される。パケットがノードFに到着すると、ノードFは、パケットのIPv6ヘッダの宛先アドレスに基づいてLocal SIDテーブルに照会し、タイプがEndであると判定し、IPv6ルーティング転送テーブルに照会を続け、IPv6ルーティング転送テーブルに照会されたアウトバウンドインタフェースに基づいて転送を行う。同時に、SL値は0に減少し、IPv6 DAは[Z::]に変更される。この場合、経路情報<Z::,F::,D::,B::>に意味はない。したがって、PSP特性を用いて、ノードFはSRHを除去し、次いでSRHを除去したパケットをノードZに転送する。
【0148】
以下では、SFC技術を簡潔に説明する。
【0149】
従来の電気通信ネットワークによるサービスチェーンでは、データパケットが、ネットワーク上を伝送するときに様々なサービスノードを通過する必要があることが多い。これにより、ネットワークは、事前の計画に従って安全且つ高速で安定したサービスをユーザに提供できることが保証される。これらのサービスノードとしては、限定されることはないが、ファイアウォール(Fire Wall、FW)、負荷分散装置(Load Balancer、LB)、および侵入防御システム(Intrusion Prevention System、IPS)などが挙げられる。ネットワークトラフィックは、必要なサービスを実現するために、サービスロジックに必要な指定順序でこれらのサービスノードを通過する必要がある。しかしながら、従来の電気通信ネットワークによるサービスチェーンでは、複雑なコマンドラインをハードウェアデバイスに入力することで実現されるポリシー誘導の維持および変更が難しい。さらに、VASサーバの展開および物理的位置が制限されている。サービス機能チェーン(英名:service function chain、略してSFC、サービスチェーンとも呼ばれる)の出現によって、従来の電気通信ネットワークによるサービスチェーンの問題が効率的に解決される。
【0150】
SFCとは、アプリケーション層に順序付きサービスを提供するのに用いられる技術である。SFCは、ネットワークデバイスのサービスを論理的に接続して、順序付きサービス組み合わせを形成するのに用いられる。サービス機能経路情報を元パケットに追加することで、SFCは、指定された経路に沿ってパケットがサービスデバイスを順番に通過することを可能にする。従来のネットワークアーキテクチャでは、SFC技術が仮想ネットワークを用いてサービスをうまく統合することにより、前述の問題を解決する。ネットワークデバイス同士の大規模な結合により引き起こされる柔軟性のないサービス展開を解決するために、SFCは、オーバーレイ(Overlay)トポロジーに基づくネットワークプランニングから独立している。基本的な物理ネットワークトポロジーが変わったときに、サービスノードの展開および起動が影響を受けることはない。ベアラネットワークルートが到達可能である限り、仮想サービス機能チェーンを物理サービスノードにマッピングすることが可能である。低い転送効率を解決するために、SFCは情報をパケットヘッダにカプセル化する。これにより、サービス機能経路上にある各ノードは互いに情報を渡すことができるようになる。この情報を用いると、データに対する動的で柔軟性のあるポリシー処理を、サービス機能チェーン全体で行うことができる。サービスデバイスを共有できないという問題を解決するために、SFCは転送プレーンとサービスプレーンとを分離している。このようにして、ユーザがサービスデバイスを複数のリソースプールに分割でき、全てのデータトラフィックが分類され、次いでサービス機能チェーンを通じて複数のサービスデバイスに誘導される。したがって、データトラフィックのオフロードにより、サービスデバイスがピークトラフィックを処理する能力に対する性能要件が低下し、サービスデバイスの各リソースが共有される。
【0151】
SFCデータプレーンにあるネットワークエレメントタイプとしては、サービス分類器(英名:Service Classifier、略してSC)、サービス機能転送器(英名:Service Function Forwarder、略してSFF)、SFCプロキシ(SFC Proxy)、およびサービス機能(英名:service function、略してSF)デバイスなどが挙げられる。
【0152】
SCがSFCドメインの入口に配置されている。パケットがSFCドメインに入った後に、トラフィックが最初に分類される。分類の粒度が、分類器の能力およびSFCポリシーにより決定される。分類ルールが大雑把であっても、詳細であってもよい。例えば、大雑把なケースでは、ポートの全パケットがSFCルールを満たしている場合、これらのパケットはサービス機能経路1に沿って伝送される。詳細なケースでは、5倍の要件を満たしているパケットのみが、SFCルールを満たすことができ、サービス機能経路2に沿って伝送される。
【0153】
SFデバイスが、パケットに対してサービス処理を行うように構成されている。例えば、SFデバイスは、限定されることはないが、ファイアウォール、負荷分散装置、アプリケーションアクセラレータ、合法的傍受(LI)、ネットワークアドレス変換(英名:Network Address Translation、略してNAT)、帯域幅制御、ウイルス検出、クラウドストレージ、ディープパケットインスペクション(英名:Deep Packet Inspection、略してDPI)、侵入検出、または侵入防止などであってもよい。SFデバイスの物理エンティティが、コンピューティングデバイスであってよい。コンピューティングデバイスは、限定されることはないが、サーバ、ホスト、パーソナルコンピュータ、ネットワークデバイス、または端末デバイスであってもよい。いくつかの実現可能な実施形態では、SFデバイスは、次のような方式で実装されてよい。すなわち、仮想マシンまたはコンテナがX86アーキテクチャを用いる汎用サーバで作動し、アプリケーションプログラムが仮想マシンまたはコンテナで作動し、アプリケーションプログラムはサービス機能を処理するのに用いられてよい。SFがSRv6カプセル化を認識できるかどうかに基づいて、SFは、SRv6カプセル化対応のSF(SRv6-aware SF)とSRv6カプセル化未対応のSF(SRv6-unaware SF)とに分類される。SRv6-awareのSFは、受信したSRv6パケットを識別して処理する。SRv6-unawareのSFは、SRv6パケットを識別しないので、受信したSRv6パケットを破棄する。
【0154】
SFFが、ネットワークから受信したパケットを、SFFと関連付けられたいくつかのSFに転送する。この転送は、SRHにカプセル化された情報に基づいている。SFは、パケットを処理した後に、このパケットを同じSFFに戻し、ここで、パケットをネットワークに送り戻すかどうかが最終的に判定される。SFFの物理エンティティとは、ネットワークデバイス、例えば、ルータ(Router)であってもスイッチであってもよい。
【0155】
SFC分野では、SFデバイスが一般に、付加価値サービスデバイス(Value-added Service、VAS)と呼ばれており、SFFが一般に「Router」と呼ばれている。本願のいくつかの実施形態の本文および図面では、SFデバイスを指すのに「VAS」という言葉を用いており、SFFを指すのに「Router」という言葉を用いている。
【0156】
SFC proxyが、SFFとSFFに関連付けられたいくつかのSRv6-unawareのSFとの間に位置している。SFCプロキシはSFに代わって、SFFからパケットを受信し、SRv6カプセル化情報を削除する。SFCプロキシは、ローカルロジックコンポーネントを通じてSRv6-unawareのSFにパケットを送信し、SRv6-unawareのSFから送り返されるパケットを受信し、SRv6カプセル化情報をパケットに追加し、処理するためにパケットをSFFに送信する。SFFの観点では、SFCプロキシはSRv6-awareのSFに相当する。通常、SFC proxyおよびSFFは同じハードウェアデバイスに統合されている。
【0157】
以下では、SRv6 SFC技術について簡潔に説明する。
【0158】
SRv6技術の発展に伴い、SRv6 SFCの解決手段がサービス機能チェーンを実装するための優れた解決手段になっている。SRの設計思想とSR SIDのセマンティクスとに基づいて、ステートレスなサービス機能チェーン(Stateless SFC)が、トポロジー的SID(topological SID)とサービスSID(service SID)とを一体的にオーケストレートすることにより実装される。現在、SR SFCの実装フレームワークの主な特徴として、以下の特徴が挙げられる。
【0159】
特徴1:topological SIDおよびservice SIDを一体的にオーケストレートして、Stateless SFCを実装する。
【0160】
特徴2:SR対応(SR-aware)のSFデバイスの場合、SFデバイスは基本的なSRv6機能とSRv6 SFCのために定義されたEnd.AN SIDタイプとを実装する必要がある。
【0161】
SR-awareのSFは、SRをサポートするデバイスを指す。End.ANは、SR対応の機能(SR-aware function (native))を示すのに用いられる。言い換えれば、End.ANは、SRv6-awareのSFデバイスにより実装されたSRv6サービス機能チェーン機能のSIDタイプを示すのに用いられる。SFデバイスは、幅広い範囲の機能(例えば、ファイアウォール、フィルタ、DPI、およびNAT)を有している。したがって、他のSIDタイプと異なり、End.ANには、End.AS、End.AD、およびEnd.AMとして定義された特定の処理ロジックがない。通常、End.AN SIDタイプは、SRv6デバイス(すなわちSFデバイス)がEnd.AN SIDタイプのActive SIDを受信した場合、SRv6デバイスはSFC関連の機能処理を行うということを示す。SFデバイスの実際の処理は、具体的な実装形態および設定パラメータに依存する。End.ANのNは、nativeと理解されてよい。
【0162】
特徴3:SR非対応(SR-unaware)のSFデバイスの場合、SFCプロキシは、SFデバイスを置き換えてSRHを処理するのに用いられる。
【0163】
SFFは通常、SFC proxy機能も実装する。言い換えれば、SFFおよびSFC proxyは同じデバイスに統合されているので、このデバイスは、SFF機能だけでなく、SFC proxy機能も実装している。SR-unawareのSFデバイスは、SR(SR-MPLSまたはSRv6)をサポートしないデバイスを指す。
【0164】
SRv6 SFC技術が簡潔に上述されている。以下では、特徴2および特徴3を詳細に説明する。
【0165】
SR-awareのSFデバイス用のSRv6 SFC実装解決手段では、End.AN SIDはSR-awareのSFデバイスに実装され且つ展開されてよく、SRv6 SFCはEnd.AN SIDを用いて実装される。例えば、図7を参照されたい。SRv6 SFCの実装原理が図7に示されており、SRv6 SFCの実装解決手段には、S101~S103が含まれている。
【0166】
S101:Active SIDがEnd/End.XであるSRv6パケットをSFFが受信すると、SFFは、End/End.Xを用いてSRv6パケットをSFデバイスに転送する。SFFにより送信されたパケットのActive SIDはEnd.AN SIDである。
【0167】
S102:SFデバイスはSFFにより転送されたSRv6パケットを受信し、SRv6パケットの宛先アドレスに基づいてローカルSIDテーブルに照会する。End.ANタイプが一致している。SFデバイスはEnd.ANに基づいてトラフィック分類を行い、サービス関連の処理を完了させて、処理したSRv6パケットをSFFに戻す。SFデバイスから戻されたSRv6パケットのActive SIDは、End.AN SID以外の別のSIDである。図7では、End.AN SID以外の別のSIDが、XXXのSIDで表されている。
【0168】
S103:SFFはSFデバイスから戻されたSRv6パケットを受信し、XXXのSIDに基づいてSRv6パケットをダウンストリームデバイスに転送する。ダウンストリームデバイスは、例えば、SFFのネクストホップSFF、または別のSFデバイスである。
【0169】
SRv6 SFCの進化の最終的な目標には、SFデバイスがEnd.ANを実装することが含まれている。これは、SRv6-onlyネットワークが実装されることを意味している。しかしながら、これには多くの時間がかかると見込まれている。SFデバイスがEnd.ANの転送機能(様々なポリシーおよび様々なアクション)だけでなく、制御プレーン機能(SIDの割り当ておよび広告、ならびにSDN controllerのノースバウンドインタフェースを含む)も実装する必要があるためである。
【0170】
SRv6-onlyネットワークでは、SFFはEnd/End.Xなどの基本的なSRv6機能を実装するだけでよく、さらにSFFはネイティブIPv6(native IPv6)のルーティングおよび転送を実装するだけでよい。
【0171】
前述したSR-awareのSFデバイス用のSRv6 SFC実装解決手段の場合、本解決手段は以下の問題を含む。(1)SFデバイスはSRv6およびEnd.AN SIDをサポートする必要がある。(2)ライブネットワーク上にある多数の既存のSFデバイスにとっては実現可能ではない。
【0172】
SR-unawareのSFデバイス用のSRv6 SFC実装解決手段では、SFデバイスがSR-unawareのSFデバイスである場合、proxy SIDがSFFに実装され且つ展開されてよく、SR SFCを実現するためにSRプロキシ(SR proxy)機能がSFFにより実装される。図8を参照されたい。図8は、SR proxyの汎用アーキテクチャを示している。SR proxyのプロセスには、以下のS111およびS112が含まれている。
【0173】
S111:SR proxyがアップストリームノードからのSRトラフィック(SR traffic、このトラフィックでは各パケットにSRHが含まれている)を受信した場合、SR proxyはこのSR trafficをSFデバイスに転送する必要がある。SFデバイスがSR-unawareのSFデバイスであることをSR proxyが検出した場合、SR proxyはSRHを取り除き、次いで、アウトバウンドインタフェースを通じて非SRトラフィック(Non SR traffic、このトラフィックでは各パケットにSRHが含まれていない)をServiceに送信する。
【0174】
S112:SR proxyが、インバウンドインタフェース(IFACE IN)を通じて、Serviceから戻されたNon SR trafficを受信すると、SR proxyはSR headerカプセル化を復元し、次いでSR headerカプセル化が復元されたSR trafficをダウンストリームデバイスに転送する。
【0175】
SR proxyには4つのタイプがあり、これらは4つのプロキシモードとも呼ばれている。具体的には、SR proxyとして、静的プロキシ(static proxy)、動的プロキシ(dynamic proxy)、マスカレードプロキシ(masquerading proxy)、および共有メモリプロキシ(shared-memory proxy)が挙げられる。静的プロキシモードはEnd.AS SIDに基づいて実装される。動的プロキシモードはEnd.AD SIDに基づいて実装される。マスカレードプロキシモードはEnd.AM SIDに基づいて実装される。共有メモリプロキシモードでは、プロキシおよびSFデバイスは通常、同じデバイスに実装されているので、関連するSIDタイプを定義する必要はない。
【0176】
以下では、静的プロキシおよび動的プロキシの原理および利点を分析する。
【0177】
図9を参照されたい。静的プロキシ方法には、以下のS121~S123が含まれている。
【0178】
S121:SFFがSRv6パケットを受信する。SFFはSRv6パケットの宛先アドレスに基づいてローカルSIDテーブルに照会し、End.ASが一致する。SFFは、End.ASに対応するオペレーションを行う。End.ASに対応するオペレーションには、以下の(1)および(2)が含まれている。
【0179】
(1)SFFはSRv6パケットのSRHを取り除いて破棄する。
【0180】
(2)SFFはトンネルヘッダ(Tunnel header)を再カプセル化して、Tunnel headerを含むパケットをSFデバイスに転送する。
【0181】
S122:SFデバイスはSFFから送信されたパケットを受信し、Tunnel headerを終了させてサービス処理を実施する。サービス処理が完了した後に、SFデバイスはTunnel headerを再カプセル化して、このパケットをSFFに戻す。
【0182】
S123:SFFデバイスはSFデバイスから送信されたパケットを受信し、Tunnel headerを終了させる。インバウンドインタフェースおよびアクセス制御リスト(Access Control List、ACL)に基づいて、SFFは静的設定でSRHカプセル化を復元し、またSFFはSLを取り去りパケットの転送を続ける。
【0183】
この分析を通じて分かるのは、静的プロキシ(End.AS SID)の解決手段の利点として、制御プレーンおよび転送プレーンが両方ともステートレスであり、実装が容易であることが挙げられるということである。この解決手段の欠点には、SFFがSRHを直接的に破棄して、SRHにある動的情報の消失を引き起こすことにより、将来のSRv6進化要件(例えば、その場フロー情報テレメトリ(in-situ Flow information Telemetry、iFit)、IPv6用のアプリケーション対応ネットワーキング(Application-aware Networking for IPv6、APN6)、その場運用・管理・保守(In-situ Operations, Administration, and Maintenance In-situ OAM、略してIOAM)、およびネットワークスライシング(Network Slicing))を満たせないことが含まれている。したがって、この解決手段は、比較的単純で動的性能が低いSRv6ネットワークに適用可能である。
【0184】
消失した動的情報には複数のタイプがある。例えば、図10を参照されたい。ここには簡単なシナリオが示されている。具体的には、R1とR4との間に2つの異なる経路がある。一方の経路はR1→R2→R3→R4であり、3つのホップを通過する。他方の経路はR1→R5→R4であり、2つのホップを通過する。R4は、End.AS SID機能を実装している。パケットがR1からR4に送信されるとき、同じIPv6パケットが2つの異なる経路を通ってR4に到着する場合には、IPv6 HopLimitの値が異なる。これは、End.AS SID処理がR4で行われた後に、R4がHopLimitの値を復元できないためである。復元されたHopLimitがユーザによって設定されるので、HopLimitの値は設定されると常に固定値になり、前述の相違を認識することも、この相違に適合することも自動的にはできない。
【0185】
動的プロキシ方法には、以下のS131~S133が含まれている。
【0186】
S131:SFFがSRv6パケットを受信する。SFFはSRv6パケットの宛先アドレスに基づいてローカルSIDテーブルに照会し、End.ADが一致する。SFFは、End.ADに対応するオペレーションを行う。End.ADに対応するオペレーションには、以下の(1)および(2)が含まれている。
【0187】
(1)SFFはSRv6パケットのSRHを取り除いてキャッシュに格納する。
【0188】
(2)SFFはTunnel headerを再カプセル化して、Tunnel headerを含むパケットをSFデバイスに転送する。
【0189】
S132:SFデバイスはTunnel headerを終了させてサービス処理を実施する。サービス処理が完了した後に、SFデバイスはTunnel headerを再カプセル化して、Tunnel headerを含むパケットをSFFに戻す。
【0190】
S133:SFFはTunnel headerを終了し、インバウンドインタフェースおよびACLに基づきキャッシュ(cache)を使ってSRHカプセル化を復元し、SLを取り去ってパケットの転送を続ける。
【0191】
この分析を通じて分かるのは、動的プロキシ(End.AD SID)の解決手段の利点として、cacheの存在によって動的情報が消失しないこと、および自己適応によって将来のSRv6ネットワーク進化の要件を満たせることが挙げられるということである。この解決手段の欠点としては、転送プレーンがステートフル(stateful)(cache)であるため、実施が難しく、性能(容量、レート、および収束)などにある程度の負担をかけることが挙げられる。この方法は、ネットワーク上にある既存のSFデバイス、およびSRv6をサポートしていないSFデバイスにとって汎用的解決手段である。
【0192】
静的プロキシ解決手段および動的プロキシ解決手段の分析を通じて分かるのは、関連するオペレーションをSFFが全て行う場合、SRHを取り除いてSRHを復元するというアクションが過剰なSFFオーバーヘッドを引き起こすということである。SFデバイスは、SRv6をサポートする必要がない。その代わりに、SFデバイスとSFFとの間のトンネル(Tunnel)インターワーキングに注意を払う必要がある。
【0193】
最後に、SR-unawareのSFデバイス用の解決手段に関する問題には、2つの態様が含まれている。一方では、SFF(SFF)実装が複雑であり、特に転送チップに対して高い要件がある。他方では、様々なプロキシモードに対して、適用シナリオの限界がいくつかある。
【0194】
前述の分析を通じて分かるのは、SR-awareのSF用の解決手段およびSR-unawareのSF用の解決手段は、制御プレーンに大きな違いはないが、転送プレーンに2つの極端な状態を形成するということである。End.AN解決手段では、SFデバイスを実装するのが複雑である。しかしながら、End.AS解決手段およびEnd.AD解決手段では、SFFを実装するのが複雑である。明らかではあるが、SFデバイスおよびSFFのうちの一方を実装して展開するのは、どの解決手段を用いるかに関係なく複雑である。
【0195】
このことを考慮して、以下では、ジレンマ分析と前述した解決手段の改善策とを提供する。
【0196】
例えば、図11を参照されたい。SRv6パケットでは、トンネル層(Tunnel layer)情報がSRv6パケットのSRHに含まれている。サービス層(service layer)情報がSRv6パケットのpayloadに含まれている。SRv6の重要な利点とは、P/PEデバイスがステートレスであることである。しかしながら、サービスにはある状態があり、サービスのその状態がどこで得られるのだろうか。サービスの状態はSRv6パケットのSRHに含まれている。
【0197】
SFFおよびSFデバイスは、SFC転送プレーンに関して2つの重要な役割である。
【0198】
SFFには、パケットをサービス処理のためにSFデバイスに転送する役割がある。パケットカプセル化の観点から見ると、SFFはpayload部分ではなく、Tunnel header(SRH)部分だけに注意を払う。さらに、Tunnel layer情報の連続性を確保する必要がある。
【0199】
SFデバイスは主にpayload部分に注目しており、Tunnel header部分にはめったに注目しない(VPN IDなどの少量の情報を搬送するという要件は除く)。
【0200】
SFFおよびSFデバイスの要件が異なることによって、前述の解決手段はSRv6 SFC転送モデルにおいて異なるジレンマを有している。
【0201】
具体的には、SRv6 SFC技術におけるEnd.AN解決手段の場合、SFFの観点から見ると、SFデバイスは一般的なSRv6対応ネクストホップであり、したがってSFFは特別な処理を行う必要がない。SFデバイスの観点から見ると、SRHの後にサービスデータが隠されており、SFデバイスは、さらなる処理を行う前にEnd.AD SIDを認識する必要がある。したがって、SFデバイスが直面するジレンマとは、End.AD SIDが主にACLトラフィック分類に用いられ、SFデバイスはEnd.AD SIDしか用いないという点にある。しかしながら、SFFはSRH全体をSFデバイスに送信する。このことを考慮して、以下の方法の実施形態は、Tunnel layer情報の連続性を確保すると共に、SFデバイスがSRv6 SIDを解析する段階を省略するのに用いられてよく、これにより、SFデバイスが直面するジレンマが解決される。
【0202】
SRv6 SFC技術におけるEnd.AS解決手段およびEnd.AD解決手段の場合、SFFの観点から見ると、一方でSFFは、SFデバイスがSRHを受信できないため、Tunnel headerを置き換える必要がある。しかしながら、Tunnel headerを置き換えると、Tunnel layer情報は連続性を失う。他方では、Tunnel layer情報の連続性を確保するために、SFFは、静的設定(static configuration)またはcacheなどの様々な方式でTunnel headerを復元する必要がある。いずれの方式も非常に複雑である。
【0203】
SFデバイスの観点から見ると、SRv6カプセル化関連の解析タスクがSFFにより完了する。一方では、Tunnel layerカプセル化を変更した後に、SFFはVPN IDをマッピングする必要がある。そうしなければ、SFデバイスはVPN IDを取得できず、VPN分離を実施できない。他方では、SFデバイスは通常Tunnel layer情報を用いないため、SFデバイスは通常Tunnel layer情報の連続性に注目しない。したがって、SFFが直面するジレンマとは、SRv6技術を実装するために、SFFはSFデバイスがunawareのSFデバイスであるという問題を解決する必要があるという点にある。したがって、SFFはTunnel headerを置き換える。Tunnel headerを置き換えると、Tunnel layer情報の連続性は中断する。Tunnel layer情報の連続性を妨げるには、静的設定またはcacheなどの様々な方式を用いる必要がある。分析によれば、前述した解決手段の根本原因とは、前のパケットおよび次のパケットのTunnel headerを置き換えることにより、Tunnel layer情報の連続性を中断させたことである。
【0204】
以下の実施形態を説明する前に、本願のいくつかの実施形態の発明概念を最初に説明する。
【0205】
SR-awareのSFデバイス用の解決手段およびSR-unawareのSFデバイス用の解決手段では両方とも、SRv6 SFCの転送プレーン機能が1つのSFデバイスまたは1つのSFFによって実装されているというのが基本的な考えである。これは極端な考えであり、複雑な実装および展開を引き起こす。しかしながら、本願ではバランスのとれた考えが採用されている。SRv6 Tunnel layer情報の連続性を確保するという前提に基づいて、SFFおよびSFデバイスにわずかな修正をするだけで、SRv6 SFCの転送プレーン機能を実装できる。このように、SFFおよびSFデバイスの実装が簡略化されて、転送チップに対する要件が大幅に低下する。
【0206】
具体的には、Tunnel layer情報の連続性をどのように確保するかが、SFFの重要な要件である。本願のいくつかの実施形態では、以下のような解決手段を用いて、SFFの重要な要件を満たしている。すなわち、SFFはTunnel headerカプセル化を置き換えることはせずに、完全なSRv6パケットをSFデバイスに転送する。SFデバイスはTunnel headerを終了させるのではなく、Tunnel headerを元のまま戻す(いくつかの制御フラグを除く)。
【0207】
SFデバイスの重要な要件によって、トラフィック分類が容易になり、関連するポリシーとアクションとが関連付けられる。本願のいくつかの実施形態では、SFデバイスの重要な要件が以下のような解決手段を用いて満たされている。すなわち、SFFは、SFFによりSFデバイスに転送されるSRv6パケットに、関連する制御フラグを追加して、そのような適用シナリオを明確に識別する。SFデバイスは、SRv6パケットを一般的なIPv6サービスパケットおよびIPv6トンネルパケットと区別するために、制御フラグを識別する必要がある。SFデバイスは、そのようなパケットを識別する場合に以下のオペレーションを行う。最初に、SFデバイスはSRHを終了するのではなく、サービス処理の後にSRHを元のままSFFに戻す。次に、SFデバイスはSRH部分をオフセットして、payload部分に対してサービス処理を行う。
【0208】
以上の解決手段を用いて達成される効果には、限定されることはないが、以下のことが含まれている。
【0209】
1.Tunnel layer情報の連続性が中断されない。
【0210】
2.Tunnel headerのカプセル化フォーマットを修正する必要がなく、SFF転送プレーンの実装が簡単である。
【0211】
3.SFF設定が簡単であり(復元されるSRHを設定することはない)、転送プレーンはステートレスである(cacheがない)。
【0212】
4.SFデバイスは、End.AN SIDおよびSRv6インフラストラクチャをサポートする必要がなく、native IPv6をサポートするだけでよい。
【0213】
パケットのTunnel headerで示されている部分が、特定のカプセル化方式に依存することがある。例えば、図14および関連する説明を参照されたい。挿入(insert)モードを用いる場合、Tunnel headerはSRHパケットヘッダを指す。カプセル化(encapsulation)モードを用いる場合、Tunnel headerはSRHを含むIPv6 header全体を指す。例えば、Tunnel headerは最外IPv6標準ヘッダ、SRH、およびSRH以外の少なくとも1つのIPv6拡張ヘッダを指す。Tunnel layer情報の連続性が中断されるということは、ネットワークデバイスがパケットを転送するプロセスにおいてパケットの動的情報が破棄されて、その結果、サービス機能が影響を受けることを意味する。具体的には、ネットワーク上で伝送される情報がIPパケットを用いて搬送される。この情報は、2つのカテゴリ、つまり静的情報と動的情報とに分けられる。静的情報は、パケットが生成される前に決定された情報である。例えば、静的情報はユーザによって設定される。動的情報は、生成プロセスまたは伝送プロセスの際に、アルゴリズムを用いて動的に生成される。ユーザが動的情報を予め設定することはできない。例えば、TCPまたはUDPの送信元ポート番号が動的情報であり、送信元ポート番号は通常、ある範囲内で(疑似)ランダムに選択される。Tunnel headerは動的情報も搬送する。End.AS SIDを用いる場合、動的情報は無条件に破棄される。しかしながら、静的情報だけは指定されてよい。動的情報の消失はサービス機能に影響を与える。
【0214】
図12を参照されたい。本願の一実施形態がシステムアーキテクチャ100を提供する。システムアーキテクチャ100は、SRv6 SFCのアーキテクチャの一例である。
【0215】
制御プレーンの観点から見ると、SRv6 SFCのシステムアーキテクチャには、SDN controller、およびネットワーク機能仮想化インフラストラクチャ(Network Functions Virtualization Infrastructure、NFVI)などが含まれている。システムアーキテクチャ100には、SDNコントローラ、およびネットワーク機能仮想化(英名:Network Function Virtualization、略してNFV)管理デバイス1またはNFV管理デバイス1が含まれている。これらのデバイスは、SRv6 SFCの制御プレーンの例である。
【0216】
データプレーンの観点から見ると、SRv6 SFCネットワークエレメントには、サービス分類器、SFF、SFC proxy、およびSFデバイスが含まれている。システムアーキテクチャ100には、サービス分類器、SFデバイス1、SFデバイス2、SFデバイス3、またはSFデバイス4、およびSFF1またはSFF2が含まれている。これらのデバイスは、SRv6 SFCのデータプレーンの例である。SFデバイス1、SFデバイス2、SFデバイス3、またはSFデバイス4は、SFデバイスの一例である。SFF1またはSFF2はSFFの一例である。
【0217】
システムアーキテクチャ100におけるSFFは、End SIDおよびEnd.X SIDなどを含むSRv6機能をサポートする。任意選択で、SFFは、SRv6 SFCプロキシ機能に関連したSID、例えば、End.AS/End.AD/End.AM SIDをサポートする必要がない。
【0218】
システムアーキテクチャ100におけるSFデバイスは、IPv6転送機能をサポートし、本願における以下の方法200、方法300、または方法400に関連した機能もサポートする必要がある。任意選択で、SFデバイスはSRv6関連の機能を実装する必要がない。
【0219】
あるいは、任意選択で、SFFおよびSFデバイスは1つのデバイスに統合される。例えば、SFデバイス機能はルータに実装される。例えば、NATおよびFWなどのボードサポート機能がルータに挿入されることにより、ルータは、ボードを使ってNATおよびFWなどの機能を実装するようになる。
【0220】
システムアーキテクチャ100における各デバイスは、SR技術、SFC技術、およびSR SFC技術を上述したときに説明したデバイスに対応することを理解されたい。例えば、システムアーキテクチャ100におけるSFFは、SFC技術を上述したときに説明したSFFに対応する。さらに、システムアーキテクチャ100におけるSFFは、SRv6技術を上述したときに説明したSRv6ノードに対応する。システムアーキテクチャ100におけるSFFは、上述したSFC技術におけるSFFおよびSRv6ノードのいずれかの機能を含む。システムアーキテクチャ100におけるSFデバイスは、SFC技術を上述したときに説明したSFデバイスに対応する。システムアーキテクチャ100におけるSFデバイスは、上述したSFデバイスのいずれかの機能を含む。説明を簡潔にするために、システムアーキテクチャ100に関する詳細は、再度説明しない。
【0221】
以上では、システムアーキテクチャ100を用いて、SRv6 SFCのシステムアーキテクチャについて説明している。以下では、方法200~方法400を例に用いて、上記で提供したシステムアーキテクチャに基づいてSRv6 SFCを実装する方法のプロセスについて説明する。
【0222】
図13を参照されたい。図13は、本願の一実施形態による、SRv6サービス機能チェーンでパケットを転送する方法200のフローチャートである。方法200における相互作用主体には、SFデバイスとSFデバイスがアクセスするSFFとが含まれている。例えば、図12に示すシステムアーキテクチャ100では、SFデバイス1とSFデバイス1がアクセスするSFF1によって、方法200が行われる。別の例では、システムアーキテクチャ100におけるSFデバイス3とSFデバイス3がアクセスするSFF2によって、方法200が行われる。SFF1およびSFF2により転送されるSRv6パケットは、システムアーキテクチャ1に示すトラフィック分類器によってもたらされてよい。
【0223】
任意選択で、方法200は、汎用の中央演算処理装置(central processing unit、CPU)によって、ネットワークプロセッサ(network processor、NP)によって、CPUおよびNPが一緒に、またはCPUおよびNPの代わりにパケット転送に好適な別のプロセッサによって処理される。これは、本願において限定されない。
【0224】
例えば、方法200にはS201~S209が含まれている。S201は、方法200の事前設定処理プロセスである。S202~S209は、方法200の転送プロセスである。S201が行われる回数が、S202~S209が行われる回数と異なってよいことを理解されたい。例えば、S201は最初に1回行われ、次いでS202~S209が複数回行われる。
【0225】
S201:SFFにエンドポイント貫通セグメントID(End.PT.SID)を設定する。
【0226】
End.PTは、本願の本実施形態において定義された新たなSIDタイプである。Endはendpointを示している。PTは貫通(Penetrate)を意味しており、SRHを省略するアクションを表している。End.PT.SIDはSRv6 SIDである。End.PT.SIDのSIDタイプはEnd.PTである。End.PT.SIDは、SRHを取り除くことなく、受信したSRv6パケットをSFデバイスに転送するようSFFに指示するのに用いられる。任意選択で、SFデバイスは、IPv6をサポートするがSRv6をサポートしないデバイスである。任意選択で、End.PT.SIDはさらに、SRv6パケットに制御フラグをカプセル化するようSFFに指示するのに用いられる。
【0227】
任意選択で、End.PT.SIDはSFFのローカルSIDである。SFFは、End.PT.SIDをSFFのローカルSIDテーブルに格納する。End.PT.SIDのLocatorがSFFに対応し、End.PT.SIDのLocatorはSFFの位置を特定するのに用いられる。さらに、SFFはEnd.PT.SIDをSRv6ネットワークに広告してよい。
【0228】
End.PTは新たに定義されたSIDタイプの一例であり、End.PT SIDは新たに定義されたSIDの一例であり、SIDタイプおよびSIDの名称は単なる例にすぎず、SIDタイプおよびSIDは他の呼称も有してよいことを理解されたい。例えば、SIDは、異なるシナリオでは異なる名称を有することがある。例えば、異なるベンダーが異なる名称を用いる、または異なる規格が異なる名称を用いる。SIDの呼称が、本願の保護範囲を限定するのに用いられることはない。
【0229】
S202:SFFは第1のSRv6パケットを受信する。
【0230】
本実施形態では、SFFが受信するパケットとSFFが送信するパケットとを区別するために、SFFが受信するSRv6パケットが第1のSRv6パケットと呼ばれ、SFFが送信するSRv6パケットが第2のSRv6パケットと呼ばれ、SFデバイスからSFFに戻されるSRv6パケットが第3のSRv6パケットと呼ばれる。第1のSRv6パケット、第2のSRv6パケット、および第3のSRv6パケットには全て、SRHが含まれている。
【0231】
第1のSRv6パケットの生成には、複数の方式がある。いくつかの実施形態では、図14を参照されたい。第1のSRv6パケットの生成モードは2つある。一方の生成モードは挿入モードと呼ばれており、他方の生成モードはカプセル化モードと呼ばれている。
【0232】
挿入モードでは、IPv6パケットに基づいてSRv6パケットが生成される。先頭ノードが、IPv6パケットの最外層にあるIPv6標準ヘッダとペイロードとの間に、IPv6拡張ヘッダSRHを挿入する。挿入モードで生成されるSRv6パケットには、例えば、IPv6標準ヘッダ、SRH、SRH以外の別のIPv6拡張ヘッダ、およびペイロードが含まれている。SFデバイスの場合、挿入モードで生成されるSRv6パケットでは、SRHがトンネル層情報に属しており、SRH以外の別のIPv6拡張ヘッダおよびペイロードがサービス層情報に属している。本実施形態では、SRHをオフセットするが、SRH以外の別のIPv6拡張ヘッダまたはペイロードをオフセットしないよう、制御フラグを用いてSFデバイスを制御することにより、SFデバイスはSRv6パケットのトンネル層情報をオフセットして、SRv6パケットのサービス層情報を処理するようになる。例えば、SFデバイスは、SRv6パケットのサービス層情報の処理(例えば、ペイロード、別のIPv6拡張ヘッダ、またはその両方の処理)を含むSRv6パケットに対するサービス処理を行う。
【0233】
カプセル化モードでは、IPv4パケット、IPv6パケット、またはイーサネットフレームに基づいて、SRv6パケットが生成される。IPv4パケットに基づいてSRv6パケットが生成されるプロセスが、一例として用いられる。先頭ノードが、IPv4パケットの外側層にSRHおよびIPv6標準ヘッダを追加する。任意選択で、先頭ノードはさらに、SRH以外の別のIPv6拡張ヘッダを追加する。SFデバイスの場合、カプセル化モードで生成されるSRv6パケットでは、先頭ノードにより追加されるSRHおよび別のIPv6拡張ヘッダがトンネル層情報に属しており、ペイロードがサービス層情報に属している。本実施形態では、先頭ノードにより追加されたSRHおよび別のIPv6拡張ヘッダをオフセットするよう、制御フラグを用いてSFデバイスを制御することにより、SFデバイスは、SRv6パケットのトンネル層情報をオフセットして、SRv6パケットのサービス層情報を処理するようになる。例えば、カプセル化モードにおいて、SFデバイスはSRv6パケットに対して、ペイロードの処理を含むサービス処理を行う。
【0234】
第1のSRv6パケットの宛先アドレスにはEnd.PT.SIDが含まれている。SRv6パケットには通常、外側IPv6ヘッダおよび内側の元パケットが含まれている。外側IPv6ヘッダにはDAフィールドが含まれており、内側の元パケットにもDAフィールドが含まれている。ここでの宛先アドレスは、外側IPv6ヘッダのDAフィールドで搬送される宛先アドレスを指す。言い換えれば、第1のSRv6パケットの外側IPv6ヘッダにあるDAフィールドには、End.PT.SIDが含まれている。さらに、SRv6フィールドでは、Local SIDテーブルと一致するSRv6パケットのIPv6 DAがActive SIDと呼ばれることがある。したがって、第1のSRv6パケットのActive SIDがEnd.PT.SIDであると言われてもよい。
【0235】
S203:SFFは、End.PT.SIDおよび第1のSRv6パケットに基づいて、第2のSRv6パケットを生成する。
【0236】
SFFは、第1のSRv6パケットを受信した後に、第1のSRv6パケットのActive SIDに基づいて、第1のSRv6パケットに対して転送処理を行う。SRv6フィールドでは、Active SIDに基づく処理プロセスが通常、以下のことを含んでいる。SFFは、宛先アドレスとローカルSIDテーブル内のSIDとを一致させるために、第1のSRv6パケットの外側IPv6ヘッダにある宛先アドレスに基づいてローカルSIDテーブルに照会し、宛先アドレスと一致したSIDに基づいて、宛先アドレスと一致したSIDに対応するオペレーションを行う。S203では、第1のSRv6パケットのActive SIDがEnd.PT.SIDであるため、SFFがローカルSIDテーブルに照会したときに、End.PTタイプに一致する。したがって、SFFはEnd.PT.SIDに対応するオペレーションを行う。具体的には、SFFはSRHを取り除くことなく第1のSRv6パケットをSFデバイスに転送する。
【0237】
S203は、End.AS SIDおよびEnd.AD SIDなどのSRプロキシ方式と異なる。具体的には、SFFは、第1のSRv6パケットに対して転送処理を行うときに、第1のSRv6パケットのSRHを取り除くことはない。その代わりに、SFFは、第1のSRv6パケットをSRv6パケットのカプセル化形態として保つことにより、SRHを含む第2のSRv6パケットはSFデバイスに転送されるようになる。
【0238】
第2のSRv6パケットに含まれたSRHと第1のSRv6パケットに含まれたSRHとの関係については、複数のケースがある。以下では、説明のためにケースAおよびケースBを用いる。
【0239】
ケースA:第2のSRv6パケットに含まれたSRHは、第1のSRv6パケットに含まれたSRHと異なる。具体的には、第2のSRv6パケットに含まれたSRHのセグメントリストが、第1のSRv6パケットに含まれたSRHのセグメントリストと同じであり、第2のSRv6パケットに含まれたSRHのSLが、第1のSRv6パケットに含まれたSRHのSLより1だけ小さい。
【0240】
ケースAが適用可能なのは、SFFがActive SIDを更新し、次いでパケットをSFに送信する方式である。具体的には、SFFは最初に、第1のSRv6パケットのActive SIDを更新して、更新されたActive SIDを含む第2のSRv6パケットを取得し、次いで第2のSRv6パケットをSFデバイスに転送する。Active SIDを更新するアクションを行うため、第2のSRv6パケットに含まれたSRHは、第1のSRv6パケットに含まれたSRHと比較して変化する。例えば、SFFは、宛先アドレスをEnd.PT.SIDからセグメントリストにある次のSIDに変更することで、第1のSRv6パケットの外側IPv6ヘッダにある宛先アドレスを更新する。SFFがSLフィールドの値から1を差し引くことで、SLはセグメントリストにある次のSIDを示すようになり、これで、第1のSRv6パケットのActive SIDが更新される。
【0241】
ケースB:第2のSRv6パケットに含まれたSRHは、第1のSRv6パケットに含まれたSRHと同じである。
【0242】
ケースBが適用可能なのは、SFFが、SFデバイスから戻されたパケットを受信した後にActive SIDを更新する方式である。ケースBでは、任意選択で、SFFは第1のSRv6パケットに含まれたSRHを第2のSRv6パケットにカプセル化する。これにより、第2のSRv6パケットは、第1のSRv6パケットに含まれたSRHを含むようになる。
【0243】
任意選択で、第2のSRv6パケットの最外IPv6ヘッダは、第1のSRv6パケットの最外IPv6ヘッダと同じである。あるいは、第2のSRv6パケットの最外IPv6ヘッダは、第1のSRv6パケットの最外IPv6ヘッダと異なる。例えば、以下の通りである。
【0244】
SFFは、第1のSRv6パケットの最外IPv6ヘッダにあるホップリミット(Hop Limit)を更新する。例えば、SFFがHop Limitフィールドの値から1を差し引くことで、第2のSRv6パケットに含まれたIPv6ヘッダのHop Limitは、第1のSRv6パケットに含まれたIPv6ヘッダのHop Limitより1小さくなる。
【0245】
第2のSRv6パケットにおいてSRHの後にある部分としては、ペイロードが挙げられる。第2のSRv6パケットにおいてSRHの後にある部分としては、ペイロードが挙げられる。第2のSRv6パケットおよび第1のSRv6パケットは同じペイロードを有している。ペイロードとは、パケットのpayload部分を指す。ペイロードの異なる定義に基づいて、第2のSRv6パケットおよび第1のSRv6パケットが同じペイロードを有する複数のケースがあり得る。以下では、説明のためにケース1およびケース2を用いる。
【0246】
ケース1:第2のSRv6パケットおよび第1のSRv6パケットが同じペイロードを有するということは、第2のSRv6パケットに含まれた元パケットが第1のSRv6パケットに含まれた元パケットと同じであることを意味している。例えば、図15を参照されたい。第1のSRv6パケットに含まれた元パケットはIPv4パケットであり、第2のSRv6パケットに含まれた元パケットはIPv4パケットであり、第1のSRv6パケットに含まれたIPv4パケットは、第2のSRv6パケットに含まれたIPv4パケットと同じである。
【0247】
ケース2:第2のSRv6パケットおよび第1のSRv6パケットが同じペイロードを有するということは、第2のSRv6パケットに含まれた元パケットのペイロードが第1のSRv6パケットに含まれた元パケットのペイロードと同じであることを意味している。例えば、第1のSRv6パケットに含まれた元パケットがIPv4パケットであり、IPv4パケットにはIPv4パケットヘッダおよびペイロードが含まれており、ペイロードはTCPパケットである。第2のSRv6パケットに含まれた元パケットがIPv4パケットであり、IPv4パケットにはIPv4パケットヘッダおよびペイロードが含まれており、ペイロードはTCPパケットである。第1のSRv6パケットに含まれたTCPパケットは、第2のSRv6パケットに含まれたTCPパケットと同じである。
【0248】
第2のSRv6パケットには制御フラグが含まれている。具体的には、SFFが、第1のSRv6パケットに対して転送処理を行うときに制御フラグを追加することで、取得された第2のSRv6パケットには制御フラグが含まれるようになる。SFFが第2のSRv6パケットに制御フラグを追加するのは、SFFによりSFデバイスに転送されたパケットをどのように解析して処理するかを、制御フラグを用いてSFデバイスに指示するためである。
【0249】
制御フラグは、第2のSRv6パケットにおいて制御フラグの後に続くIPv6拡張ヘッダをオフセット(offset)するようSFデバイスに指示するのに用いられる。任意選択で、制御フラグは、第2のSRv6パケットにおいて制御フラグを含むIPv6拡張ヘッダの後に続くIPv6拡張ヘッダをオフセットするようSFデバイスに指示するのに用いられる。例えば、制御フラグは、第2のSRv6パケットにおいてホップバイホップオプションヘッダの後に続くIPv6拡張ヘッダをオフセットするようSFデバイスに指示するのに用いられる。ホップバイホップオプションヘッダは、制御フラグを含むIPv6拡張ヘッダの一例である。
【0250】
この段落では「オフセット」の意味について説明する。例えば、オフセットされる対象が別の拡張ヘッダAである。別の拡張ヘッダAをオフセットすることは、別の拡張ヘッダAを解析するのではなく、パケットにおいて別の拡張ヘッダAの後に続く部分を解析して処理することを意味している。
【0251】
任意選択で、制御フラグの指示機能には、以下の方式(1)および方式(2)のうちのいずれか一方が含まれている。
【0252】
方式(1):制御フラグは、第2のSRv6パケットのSRHをオフセットするようSFデバイスに指示するのに用いられる。
【0253】
任意選択で、方式(1)が適用可能なのは、第1のSRv6パケットの生成モードが挿入モードである場合である。方式(1)では、SRHを正確にオフセットするよう指示するのに制御フラグを用いる。任意選択で、SRH以外の別のIPv6拡張ヘッダをオフセットするのを省略するよう指示するのに制御フラグを用いることで、SFデバイスは、制御フラグで指示される通りに、SRH以外の別のIPv6拡張ヘッダを処理するようになる。
【0254】
例えば、先頭から末尾への順で、第2のSRv6パケットには、IPv6標準ヘッダ、制御フラグを含むホップバイホップオプションヘッダ、別の拡張ヘッダA、SRH、別の拡張ヘッダB、およびIPv4パケットが連続的に含まれている。制御フラグは、SRHをオフセットするが別の拡張ヘッダAおよび別の拡張ヘッダBをオフセットしないよう指示するのに用いられる。ホップバイホップオプションヘッダは、制御フラグを含むIPv6拡張ヘッダの一例である。別の拡張ヘッダAおよび別の拡張ヘッダBは、制御フラグの後に続く他のIPv6拡張ヘッダの例である。別の拡張ヘッダAは、SRHに先行する別のIPv6拡張ヘッダの一例である。別の拡張ヘッダBは、SRHの後に続く別のIPv6拡張ヘッダの一例である。
【0255】
方式(2):制御フラグは、第2のSRv6パケットのSRHおよびSRH以外の別のIPv6拡張ヘッダをオフセットするようSFデバイスに指示するのに用いられる。
【0256】
第2のSRv6パケットにおいて、別のIPv6拡張ヘッダは制御フラグの後に続く。例えば、別のIPv6拡張ヘッダは、ホップバイホップオプションヘッダの後に続き且つペイロードに先行するIPv6拡張ヘッダである。任意選択で、第2のSRv6パケットにおいて、別のIPv6拡張ヘッダはSRHに先行する。任意選択で、第2のSRv6パケットにおいて、別のIPv6拡張ヘッダはSRHの後に続く。ホップバイホップオプションヘッダは、制御フラグを含むIPv6拡張ヘッダの一例である。
【0257】
任意選択で、方式(2)が適用可能なのは、第1のSRv6パケットの生成モードがカプセル化モードである場合である。方式(2)では、制御フラグは、制御フラグを含むIPv6拡張ヘッダの後に続くそれぞれのIPv6拡張ヘッダをオフセットするよう指示するのに用いられる。例えば、制御フラグは、ホップバイホップオプションヘッダの後に続く最初のIPv6拡張ヘッダと、ペイロードとの間にあるそれぞれのIPv6拡張ヘッダをオフセットするよう指示するのに用いられる。
【0258】
例えば、先頭から末尾への順で、第2のSRv6パケットには、IPv6標準ヘッダ、制御フラグを含むホップバイホップオプションヘッダ、別の拡張ヘッダA、SRH、別の拡張ヘッダB、およびIPv4パケットが連続的に含まれている。制御フラグは、別の拡張ヘッダA、SRH、および別の拡張ヘッダBをオフセットするよう指示するのに用いられる。
【0259】
任意選択で、制御フラグは、上述したIPv6拡張ヘッダをオフセットする指示機能を有しているだけでなく、別の指示機能も有している。具体的には、制御フラグはさらに、パケットをSFFに戻すプロセスにおいて、第2のSRv6パケット内のオフセットされたIPv6拡張ヘッダを戻すようSFデバイスに指示するのに用いられる。制御フラグの指示機能を用いると、SFデバイスによりオフセットされたIPv6拡張ヘッダを元のままSFFに戻すことができるので、SFデバイスによりオフセットされたIPv6拡張ヘッダは、サービス機能チェーンにあるダウンストリームのネットワークエレメントにSFFを通じて常に渡されるようになる。これにより、SFデバイスによりオフセットされたIPv6拡張ヘッダの伝送がSFデバイスで中断されるのを防ぐ。以下では、制御フラグの別の指示機能を方式Iおよび方式IIを用いて説明する。
【0260】
方式I:この方式は前述の方式(1)および挿入モードに対応する。制御フラグはさらに、パケットをSFFに戻すプロセスにおいて、第2のSRv6パケットのSRHを戻すようSFデバイスに指示するのに用いられる。
【0261】
方式II:この方式は、前述の方式(2)およびカプセル化モードに対応する。制御フラグはさらに、パケットをSFFに戻すプロセスにおいて、第2のSRv6パケットのSRHと、第2のSRv6パケットにおいて制御フラグの後に続くSRH以外の別のIPv6拡張ヘッダとを戻すようSFデバイスに指示するのに用いられる。例えば、制御フラグはさらに、第2のSRv6パケット内にあり、且つホップバイホップオプションヘッダの後に続く最初のIPv6拡張ヘッダと、ペイロードとの間にある、それぞれのIPv6拡張ヘッダを戻すよう指示するのに用いられる。
【0262】
SFデバイスが第2のSRv6パケットを受信したときに、SFデバイスが第2のSRv6パケットの制御フラグを読み出す場合、SFデバイスは、第2のSRv6パケットをそのIPv6拡張ヘッダがオフセットされるパケットとみなし、IPv6拡張ヘッダをオフセットする方式で第2のSRv6パケットを処理する。任意選択で、制御フラグは「CtrlInfo」と表示される。
【0263】
以上では、SFFによりSRv6パケットに追加される制御フラグについて説明している。いくつかの実施形態では、SFFは、制御フラグだけでなくターゲット情報もSRv6パケットに追加する。ターゲット情報は、SFデバイスがサービス処理を行うときに用いる必要がある情報である。例えば、ターゲット情報は、SRv6 SFC関連の情報である。SFFによるターゲット情報の追加には、複数の方式がある。以下では、説明のために方式1および方式2を用いる。方式1はカプセル化方式の一例であり、方式2はマッピング方式の一例である。
【0264】
方式1:SFFが第1のSRv6パケットのSRHを解析し、SFFは第1のSRv6パケットに含まれたSRHからターゲット情報を取得する。
【0265】
方式1では、SFFはSRHからターゲット情報を取得し、第1のSRv6パケットのSRHにあるターゲット情報を第2のSRv6パケットにカプセル化する。
【0266】
例えば、ターゲット情報には、SFCメタデータ(SFC metadata)および仮想プライベートネットワークID(Virtual Private Network ID、VPN ID)のうちの少なくとも一方が含まれている。
【0267】
SFCメタデータには複数のシナリオが含まれている。例えば、データ通信ネットワーク(Data Communication Network、DCN)では、SFCメタデータはDCコンテキスト割り当て(DC Context Allocation)情報である。例えば、SFCメタデータには、送信元ノードID(Source Node ID)、送信元インタフェースID(Source Interface ID)、テナントID(Tenant ID)、宛先クラス(Destination Class)、送信元クラス(Source Class)、および不透明なサービスクラス(Opaque Service Class)が含まれている。例えば、高精度時間プロトコル(Precision Time Protocol、PTP)では、SFCメタデータは32ビットのPTPベースのタイムスタンプである。例えば、SFCメタデータはナノ秒(Nanosecond)の情報である。例えば、ネットワークタイムプロトコル(Network Time Protocol、NTP)では、SFCメタデータは32ビットのNTPベースのタイムスタンプである。例えば、SFCメタデータは秒(Second)および端数(Fraction)である。例えば、SFCメタデータには、コンテキストID(Context ID)、サブ/エンドポイントID(Sub/Endpoint ID)、およびサービス情報(Service Information)が含まれている。例えば、SFCメタデータには、コンテキストID(Context ID)、サブ/エンドポイントID(Sub/Endpoint ID)、およびサービス情報(Service Information)が含まれている。例えば、無線アクセスネットワーク(wireless access network、RAN)において、SFCメタデータには、サービス品質(Quality of Service、QoS)/差別化サービスコードポイント(Differentiated Services Code Point、DSCP)およびアプリケーション(application、App)IDのうちの少なくとも一方が含まれている。
【0268】
任意選択で、VPN IDは128ビットのSRv6 VPN SIDで表される。SRv6 VPN SIDはSRv6 SIDである。SRv6 VPN SIDは、対応するVPNを識別するのに用いられる。具体的には、SRv6 VPN SIDの機能情報(Function)が、パケットをVPNインスタンスに送信するよう宛先デバイスに指示するのに用いられることで、パケットは宛先デバイスから対応するVPNに入り、テナント分離が実現されるようになる。VPN SIDタイプとしては、限定されることはないが、End.DXおよびEnd.DTが挙げられる。End.DX SIDに対応するオペレーションとしては、外側IPv6パケットヘッダを脱カプセル化すること、およびEnd.DX SIDに結びつけられたアウトバウンドインタフェースを通じて残りのパケットを転送することが挙げられる。End.DXとしては、限定されることはないが、End.DX6、End.DX4、End.DX2、またはEnd.DX2Vが挙げられる。End.DT SIDに対応するオペレーションとしては、外側IPv6パケットヘッダを脱カプセル化すること、および残りのパケットに含まれた宛先アドレスに基づいてVPNインスタンスのルーティングテーブルを検索すること、およびパケットを転送することが挙げられる。End.DTとしては、限定されることはないが、End.DT4またはEnd.DT6が挙げられる。
【0269】
この段落では、方式1の効果について説明する。サービス処理のために、SFデバイスは、SRHにカプセル化されているいくつかの情報を認識する必要があり得る。しかしながら、SFデバイスは通常、SRHを識別できない。その結果、SRHのサービス情報を取得できないため、SFデバイスはSRHのサービス情報に基づいてサービス処理を行うことができない。しかしながら、方式1を用いると、SFFがSRHを解析し、SRHに含まれているサービス情報をSFFがSFデバイスに渡すことで、SFデバイスはSRHに含まれているサービス情報を取得できるようになる。さらに、SFデバイスはSRHを解析する必要がない。したがって、方式1は、SFデバイスがSRHのサービス情報に基づいてサービス処理を行うという要件を満たしており、この方式でSRv6-unawareのSFデバイスがSRHのサービス情報に基づいてサービス処理を行うことができるため、応用範囲が広がる。
【0270】
方式2:SFFは第1のSRv6パケットのSRHからサービス情報を取得し、サービス情報に基づいてマッピング関係情報に照会してターゲット情報を取得する。
【0271】
方式2では、第1のSRv6パケットのSRHに含まれたサービス情報をマッピングすることで、ターゲット情報が取得される。具体的には、SFFはマッピング関係情報を予め設定する。SFFが第1のSRv6パケットのSRHにあるサービス情報を取得した後に、SFFはマッピング関係情報に基づいてサービス情報をターゲット情報に変換し、次いで変換によって取得したターゲット情報を第2のSRv6パケットにカプセル化する。マッピング関係情報は、サービス情報とターゲット情報との対応関係を格納する。任意選択で、サービス情報およびターゲット情報は1対1の対応関係にある。任意選択で、サービス情報にはSFCメタデータおよびVPN IDのうちの少なくとも一方が含まれている。
【0272】
任意選択で、ターゲット情報のフォーマットが、SRHに含まれたサービス情報のフォーマットと異なる。例えば、ターゲット情報のフォーマットは、SFが識別可能なフォーマットであり、SRHに含まれたサービス情報のフォーマットは、SFが識別できないフォーマットである。SFFが方式2を実行することは、SRHのサービス情報に対してフォーマット変換を行ってターゲット情報を取得することに相当する。例えば、サービス情報はSRv6 VPN SIDであり、SRv6 VPN SIDのフォーマットが128ビットのIPv6アドレスである。ターゲット情報のフォーマットは数値である。マッピング関係情報内の異なるSRv6 VPN SIDが、異なる数値に対応する。
【0273】
例えば、マッピング関係情報は表2に示されている。表2では、10:1::1:0/128がSRv6 VPN SIDの一例であり、SIDである10:1::1:0/128に対応するターゲット情報の一例が1である。20:1::1:0/128がSRv6 VPN SIDの一例であり、SIDである20:1::1:0/128に対応するターゲット情報の一例が2である。30:1::1:0/128がSRv6 VPN SIDの一例であり、SIDである30:1::1:0/128に対応するターゲット情報の一例が3である。
【表2】
【0274】
この段落では、方式2の効果について説明する。SFFは、SRHからサービス情報を解析して取り出し、SRHのサービス情報をSFデバイスが識別可能なターゲット情報にマッピングし、このターゲット情報をSFデバイスに送信される第2のSRv6パケットに含める。これにより、サービス情報はSFデバイスに理解される形態でSFデバイスに渡されるようになり、SFデバイスはターゲット情報に基づいてサービス処理を行うことができる。これにより、SFデバイスがSRHのサービス情報を識別せず、サービス情報に基づくサービス処理を行うことができないというケースが回避され、SFデバイスがSRHのサービス情報に基づいてサービス処理を行うという要件が満たされる。さらに、SRv6-unawareのSFデバイスに方式2を適用できるので、応用範囲が広がる。
【0275】
例えば、第1のSRv6パケットのSRHにはSRv6 SIDが含まれており、SRv6 SIDはサービス情報を示す。SFFは第1のSRv6パケットのSRHを解析して、第1のSRv6パケットのSRHにあるSRv6 SIDを取得する。SFFは、SRv6 SIDに基づいてマッピング関係情報に照会し、SRv6 SIDに対応するターゲット情報を取得する。SRv6 SIDは、例えば、VPN SIDである。前述の方式を用いることで達成される効果には、以下のことが挙げられる。VPN SIDは通常、VPN IDとして機能し得るが、SRv6-unawareのSFデバイスでは、SFデバイスがSRv6 SIDを識別できないため、VPN SIDをSFデバイスに直接的に渡すことができない。その結果、SFデバイスがVPN IDを用いてトラフィックを分離するという要件を満たすのが難しい。しかしながら、SFFはSRHからVPN SIDを解析して取り出し、サービス情報のVPN IDをSRv6 SIDフォーマットからターゲット情報フォーマットに変換し、ターゲット情報をSFデバイスに渡す。このように、SFデバイスは、ターゲット情報に基づいてVPNベースのトラフィック分離を実現できる。
【0276】
SFFは任意選択でターゲット情報をSRv6パケットに追加することを理解されたい。いくつかの他の実施形態では、SFFは代替的に、制御フラグをSRv6パケットに追加してよいが、ターゲット情報を追加しなくてもよい。これにより、第2のSRv6パケットはターゲット情報を含まなくなる。
【0277】
SFCメタデータおよびVPN IDはターゲット情報の例であることを理解されたい。ターゲット情報の具体的なフォーマットおよび内容は、適用シナリオおよびサービス要件に基づいて定義され得る。ターゲット情報の具体的なフォーマットおよび内容は、本願において限定されることはない。
【0278】
前述の方式1および方式2は、ターゲット情報を取得する方式の単なる例にすぎず、SFFは代替的に、別の方式でターゲット情報を取得してもよいことを理解されたい。ターゲット情報の情報源が本実施形態において限定されることはない。
【0279】
第2のSRv6パケットで制御フラグおよびターゲット情報を搬送することについては、複数の実装形態がある。以下では、一例を用いて、制御フラグおよびターゲット情報を搬送する方式を説明する。
【0280】
SRv6パケットの場合、任意選択の情報を搬送するのに以下の3つのメカニズムを用いることができる。
【0281】
メカニズム1:ホップバイホップオプションヘッダ(Hop-by-Hop Option Header、HBH)が、各ホップの制御プレーンにより処理された情報を搬送する。
【0282】
この段落では、ホップバイホップオプションヘッダについて説明する。ホップバイホップオプションヘッダは、IPv6拡張ヘッダである。ホップバイホップオプションヘッダは、転送プロセスで通過する通過ノードのそれぞれによって処理されてよい。IPv6パケットがホップバイホップオプションヘッダを搬送する場合、ホップバイホップオプションヘッダに先行するヘッダにあるnext headerフィールドの値が0である。任意選択で、ホップバイホップオプションヘッダは、IPv6ヘッダの後に続く最初のIPv6拡張ヘッダである。言い換えれば、ホップバイホップオプションヘッダの前のヘッダはIPv6ヘッダであり、IPv6ヘッダのnext headerフィールドの値が0である。図16を参照されたい。図16は、ホップバイホップオプションヘッダの構造の一例である。ホップバイホップオプションヘッダには、ネクストヘッダのインデックス(Next Header)フィールド、ヘッダ拡張長(header Extended Length、略してHdr Ext Len)フィールド、および少なくとも1つのオプションが含まれている。ホップバイホップオプションヘッダにあるNext Headerフィールドの値が、ホップバイホップオプションヘッダの後に続く最初のヘッダのタイプを示すのに用いられる。ホップバイホップオプションヘッダにあるHdr Ext Lenフィールドの値が、ホップバイホップオプションヘッダの長さを示すのに用いられる。ホップバイホップオプションヘッダのオプションは、ホップバイホップオプションとも呼ばれている。ホップバイホップオプションは通常、TLVのフォーマットで符号化されている。1つのホップバイホップオプションには、オプションタイプフィールド、オプション長フィールド、および値フィールドが含まれている。
【0283】
メカニズム2:宛先オプションヘッダ(Destination Option Header)が、routing header通過ノードおよび/またはターゲットノードにより処理される情報を搬送する。
【0284】
メカニズム3:SRHが情報を搬送する。SRH自体には1つまたは複数のTLVが含まれており、SRHのTLVは、ハッシュベースのメッセージ認証コード(Hash-based Message Authentication Code、HMAC)ダイジェストおよびSFC metadataなどの情報を搬送するのに用いられてよい。
【0285】
本願のいくつかの実施形態では、制御フラグおよびターゲット情報のうちの少なくとも一方を搬送するのに前述のメカニズム1が用いられる。SFFにより送信される第2のSRv6パケットにはホップバイホップオプションヘッダが含まれており、ホップバイホップオプションヘッダには制御フラグおよびターゲット情報のうちの少なくとも一方が含まれている。例えば、第2のSRv6パケットには、IPv6標準ヘッダ、制御フラグおよびターゲット情報を含むホップバイホップオプションヘッダ、SRHおよびホップバイホップオプションヘッダ以外の別のIPv6拡張ヘッダ、ならびにペイロードが含まれている。ホップバイホップオプションヘッダは、第2のSRv6パケットにおいて最初のIPv6拡張ヘッダである。ホップバイホップオプションヘッダは、IPv6標準ヘッダの後に且つSRHおよび別のIPv6拡張ヘッダの前に配置されている。さらに、SRHおよびホップバイホップオプションヘッダ以外の別のIPv6拡張ヘッダは、第2のSRv6パケットの任意選択部分である。いくつかの他の実施形態では、第2のSRv6パケットには、IPv6標準ヘッダ、制御フラグおよびターゲット情報を含むホップバイホップオプションヘッダ、ならびにペイロードが含まれている。
【0286】
ホップバイホップオプションヘッダを用いて制御フラグまたはターゲット情報を搬送することについては、複数の方式がある。例えば、制御フラグまたはターゲット情報を搬送するために、新たなTLVがホップバイホップオプションヘッダに拡張される。このTLVは、符号化フォーマットである。1つのTLVには、タイプ(type)フィールド、長さ(length)フィールド、および値(value)フィールドが含まれている。タイプフィールドは、TLVの意味を示すのに用いられ、値フィールドはTLVの内容を示すのに用いられ、長さフィールドはTLVの長さを示すのに用いられる。具体的には、ホップバイホップオプションヘッダにはTLVが含まれており、TLVは制御フラグおよびターゲット情報のうちの少なくとも一方を搬送するのに用いられる。
【0287】
制御フラグおよび/またはターゲット情報を搬送するTLVのフォーマットについては、複数のケースがある。任意選択で、制御フラグおよび/またはターゲット情報はTLVの値フィールドに位置しており、TLVのタイプフィールドは、TLVが制御フラグおよび/またはターゲット情報を搬送することを示し、TLVのタイプフィールドの値が、例えば、新たに追加されたタイプ値である。例えば、制御フラグおよび/またはターゲット情報を搬送するTLVは、ホップバイホップオプションヘッダのオプションであり、このオプションにはオプションタイプ(OptionType、OptType)フィールド、オプション長(Opt Len)フィールド、および制御フラグが含まれている。オプションタイプフィールドはオプションが制御フラグおよび/またはターゲット情報を搬送することを示し、オプション長フィールドはオプションの長さを示し、OptTypeフィールドの値が新たに追加されたOptType値である。追加されたOptType値は、特定の状況に基づいて、標準化方式であっても非標準化方式であってもよい。非標準化方式の場合、OptType値は、インターネット番号割当機関(Internet Assigned Numbers Authority、IANA)により予約された複数の実験的オプション値(Experimental Option value)を用いてよい。
【0288】
制御フラグおよび/またはターゲット情報を搬送するTLVのタイプには、複数のケースがある。任意選択で、制御フラグおよび/またはターゲット情報を搬送するTLVは、新たなトップ(top)TLVであり、制御フラグおよび/またはターゲット情報を搬送するTLVのタイプ(type)フィールドの値が、未使用のtop TLVタイプを示す。任意選択で、制御フラグおよび/またはターゲット情報を搬送するTLVは、top TLVの新たなサブTLVであり、制御フラグおよび/またはターゲット情報を搬送するTLVのtypeフィールドの値が、未使用のサブTLVタイプを示す。任意選択で、制御フラグおよび/またはターゲット情報を搬送するTLVは、top TLVの新たなサブサブTLV(sub-sub-TLV)であり、制御フラグおよび/またはターゲット情報を搬送するTLVのtypeが、未使用のsub-sub-TLVタイプを示す。制御フラグおよび/またはターゲット情報を搬送するTLVがtop TLV、sub-TLV、またはsub-sub-TLVのいずれであるかは、本実施形態において限定されることはない。
【0289】
任意選択で、制御フラグはTLVの値フィールドにおいて1つのビットを占有する。例えば、制御フラグはTLVの値フィールドにおいてビット[a]を占有する。ビット[a]を設定した場合、SFデバイスは、第2のSRv6パケットにおいて制御フラグの後に続くIPv6拡張ヘッダをオフセットするよう指示される。ビット[a]を設定しない場合、SFデバイスは、第2のSRv6パケットにおいて制御フラグの後に続くIPv6拡張ヘッダをオフセットしないよう指示される。
【0290】
任意選択で、SFFは、1つのTLVを用いてターゲット情報および制御フラグを搬送する。この方式では、ターゲット情報および制御フラグは、第2のSRv6パケットの同じTLVに位置している。例えば、第2のSRv6パケットのホップバイホップオプションヘッダには第1のTLVが含まれており、第1のTLVの値フィールドにはターゲット情報および制御フラグが含まれている。第1のTLVのタイプフィールドは、第1のTLVがターゲット情報および制御フラグを搬送することを示す。ターゲット情報および制御フラグは、第1のTLVの値フィールドにおいて異なるビットを占有する。
【0291】
任意選択で、SFFは、2つのTLVを用いてターゲット情報および制御フラグを別々に搬送する。この方式では、ターゲット情報および制御フラグは、第2のSRv6パケットの異なるTLVに位置している。例えば、第2のSRv6パケットのホップバイホップオプションヘッダには、第1のTLVおよび第2のTLVが含まれている。第1のTLVの値フィールドには制御フラグが含まれており、第1のTLVのタイプフィールドは、第1のTLVが制御フラグを搬送することを示す。第2のTLVの値フィールドにはターゲット情報が含まれており、第2のTLVのタイプフィールドは、第2のTLVがターゲット情報を搬送することを示す。任意選択で、第1のTLVのタイプフィールドの値が、第2のTLVのタイプフィールドの値と異なる。言い換えれば、第1のTLVと第2のTLVとは、異なるTypeを用いて区別される。あるいは、第1のTLVおよび第2のTLVには両方ともflagフィールドが含まれており、第1のTLVのflagフィールドの値が第2のTLVのflagフィールドの値と異なる。言い換えれば、第1のTLVと第2のTLVとは、異なるflagを用いて区別される。
【0292】
図17を参照されたい。図17は、制御フラグおよびターゲット情報を搬送するホップバイホップオプションヘッダの一例である。制御フラグおよびターゲット情報の両方は、オプションタイプフィールドおよびオプション長フィールドの後に位置している。図17のVPN IDは、ターゲット情報の一例である。図17では、フィールドの括弧の後に続く数字がフィールドのバイト長を示している。例えば、Next Header(1)は、Next Headerフィールドが1つのバイトを占有することを示している。Next HeaderフィールドおよびHdr Ext Lenフィールドは、RFC8200において定義されているIPv6ホップバイホップオプションヘッダの一般的なフィールドである。OptTypeフィールドおよびOptLenフィールドは、RFC8200において定義されているオプションの一般的なフィールドである。図17に示すOptTypeフィールドの意味とは、例えば、ホップバイホップオプションには制御フラグおよびVPN IDが含まれているということである。
【0293】
任意選択で、ホップバイホップオプションヘッダを用いて制御フラグを搬送する方式には、以下の方式aおよび方式bが含まれている。
【0294】
方式a:SFFのアップストリームデバイスが、ホップバイホップオプションヘッダを第1のSRv6パケットにカプセル化する。任意選択で、この場合、SFFはホップバイホップオプションヘッダをカプセル化する必要はないが、アップストリームデバイスによりカプセル化されるホップバイホップオプションヘッダにオプション(option、HBH optionとも呼ばれる)を追加し、追加したオプションに制御フラグを含める。
【0295】
方式aにおいて、第1のSRv6パケットにはホップバイホップオプションヘッダが含まれており、第2のSRv6パケットにもホップバイホップオプションヘッダが含まれている。第2のSRv6パケットに含まれたホップバイホップオプションヘッダと第1のSRv6パケットに含まれたホップバイホップオプションヘッダの関係には、以下のことが含まれている。すなわち、第2のSRv6パケットに含まれたホップバイホップオプションヘッダは、第1のSRv6パケットに含まれたホップバイホップオプションヘッダより多くのオプションを含んでいる。第1のSRv6パケットと比較して、第2のSRv6パケットに追加されたオプションには制御フラグが含まれている。
【0296】
例えば、SFFのアップストリームデバイスはホップバイホップオプションヘッダを第1のSRv6パケットにカプセル化する。ホップバイホップオプションヘッダには第1のTLVが含まれている。SFFは、第1のSRv6パケットのホップバイホップオプションヘッダに第2のTLVを追加し、第2のTLVには制御フラグが含まれている。第2のSRv6パケットには、第1のTLVおよび第2のTLVが含まれている。
【0297】
方式b:SFFにより受信される第1のSRv6パケットには、ホップバイホップオプションヘッダが含まれていない。この場合、SFFはホップバイホップオプションヘッダを生成し、このホップバイホップオプションヘッダを第1のSRv6パケットに追加する。
【0298】
以下では、3つのメカニズムを分析し、(1)~(4)によってメカニズム1の効果について説明する。
【0299】
(1)メカニズム2の場合、標準仕様によれば、宛先オプションヘッダを用いて、通過ノードおよび/またはターゲットノードに情報を渡す。しかしながら、SFデバイスは通常、通過ノードでもターゲットノードでもなく、メカニズム1の選択は標準仕様に適合しない。メカニズム3については、SFデバイスが通常、SRHの識別をサポートしないため、SRHを用いて制御フラグを搬送する方式が直接的に排除されてよい。
【0300】
(2)メカニズム1については、ホップバイホップオプションヘッダが制御フラグを搬送するのに用いられる場合、ホップバイホップオプションヘッダがIPv6パケットの最初のIPv6拡張ヘッダとして常に用いられるため、ホップバイホップオプションヘッダがSFデバイスによって容易に解析される。これにより、SFデバイスはホップバイホップオプションヘッダに基づいて制御フラグとターゲット情報とを識別して、関連する処理を行うことができるようになる。したがって、制御フラグをSFデバイスに伝送するのにホップバイホップオプションヘッダを用いるのが、3つのメカニズムの中で最も適切である。
【0301】
(3)IPv6 Option Typeの最上位ビット2つで、通過ノードが未認識オプションを処理する方式を定義することにより、SFFおよびSFデバイスは、ワンホップIPリンク(on-link)に展開される必要がなくなる。標準仕様によれば、オプションタイプ識別子が内部で符号化され、オプションタイプ識別子は、オプションタイプを識別できないときに、最上位ビット2つを用いて、IPv6パケットを処理するノードにより行われるオペレーションを示す。具体的には、オプションタイプ識別子の最上位ビット2つの値が00である場合、ノードはオプションを省略し、パケットヘッダの処理を続ける。オプションタイプ識別子の最上位ビット2つの値が01である場合、ノードはパケットを破棄する。オプションタイプ識別子の最上位ビット2つの値が10である場合、ノードはパケットを破棄する。オプションタイプ識別子の最上位ビット2つの値が11である場合、ノードはパケットを破棄して、パケットの宛先アドレスがマルチキャストアドレスではないときに、インターネット制御メッセージプロトコル(Internet Control Message Protocol、ICMP)のパラメータ問題メッセージをパケットの送信元アドレスに送信する。
【0302】
(4)下位互換性を保証できる。具体的には、本実施形態では、制御フラグを搬送するのにIPv6オプション(IPv6 option)が用いられる。これは、RFC4727で定義されている実験的オプションタイプ(Experimental Option type)空間を用いて実現できるため、規格の互換性が確保されるようになる。
【0303】
S204:SFFは第2のSRv6パケットをSFデバイスに送信する。
【0304】
S205:SFデバイスは第2のSRv6パケットをSFFから受信する。
【0305】
S206:SFデバイスは第2のSRv6パケットに含まれた制御フラグを取得し、SFデバイスは、この制御フラグに基づいて、第2のSRv6パケットにおいて制御フラグの後に続くIPv6拡張ヘッダをオフセットし、サービス処理を行う。
【0306】
SFFとSFデバイス(SF device)との間で転送されるパケットはSRv6パケットであるが、SFFおよびSFデバイスは転送パケットについて異なる理解をしている。SFFの観点から見れば、SFFは転送されるパケットをSRv6パケットとみなしている。SFデバイスの観点から見れば、SFデバイスはSFFから受信するパケットをSRv6パケットではなくIPv6パケットとみなしている。言い換えれば、SFデバイスは、第2のSRv6パケットを受信した後に、第2のSRv6パケットを、IPv6拡張ヘッダを含むIPv6パケットとして用いる。SFデバイスが、制御フラグに基づいて、第2のSRv6パケットはそのIPv6拡張ヘッダがオフセットされるパケットであるとみなした後に、SFデバイスは第2のSRv6パケットにおいて制御フラグの後に続くIPv6拡張ヘッダをオフセットする。具体的には、SFデバイスは、制御フラグの後に続くIPv6拡張ヘッダを省略し、制御フラグの後に続くIPv6拡張ヘッダを解析しないで、サービス関連の処理を実施する。第2のSRv6パケットのIPv6拡張ヘッダにはSRHが含まれているため、SFデバイスは、SRHを未認識拡張ヘッダとしてオフセットし、SRHの内容を解析する必要がない。
【0307】
SFデバイスがサービス処理を行うことには、複数の実装形態がある。任意選択で、SFデバイスは、第2のSRv6パケットのペイロードに基づいてサービス処理を行う。任意選択で、挿入モードに対応して、SFデバイスは、第2のSRv6パケットにおいてIPv6標準ヘッダまたはホップバイホップオプションヘッダの後に続くSRH以外の別のIPv6拡張ヘッダに基づいて、サービス処理を行う。
【0308】
例えば、図15を参照されたい。カプセル化モードでは、SFデバイスにより行われるサービス処理は、ペイロード部分の処理を含む。挿入モードでは、SFデバイスにより行われるサービス処理は、ペイロード部分の処理を含み、任意選択で、SFデバイスにより行われるサービス処理はさらに、別の拡張ヘッダAの処理および別の拡張ヘッダBの処理を含む。
【0309】
制御フラグに基づいてSFデバイスにより行われるオフセットアクションとは、SRv6に関連したヘッダカプセル化のオフセットを指す。SFデバイスにより行われるオフセットアクションとしては、少なくともSRHをオフセットするアクションが挙げられる。任意選択で、SFにより行われるオフセットアクションとしてはさらに、SRH以外の別のIPv6拡張ヘッダをオフセットすることが挙げられる。任意選択で、SFにより行われるオフセットアクションとしてはさらに、最外IPv6標準ヘッダをオフセットすることが挙げられる。
【0310】
以下では、例として方式Aおよび方式Bを用いて、SFデバイスが制御フラグに基づいてオフセットアクションをどのように行うかを説明する。方式Aは、S203の方式(1)に対応する。方式Aに示されていない詳細については、前述の方式(1)を参照されたい。方式Bは、S203の方式(2)に対応する。方式Bに示されていない詳細については、前述の方式(2)を参照されたい。
【0311】
方式A:この方式は挿入モードに対応する。第2のSRv6パケットのSRHをオフセットするようSFデバイスに指示するのに制御フラグが用いられる場合、SFデバイスは、制御フラグに基づいて第2のSRv6パケットのSRHをオフセットする。方式Aでは、制御フラグに基づいて、SFデバイスはIPv6拡張ヘッダのSRHをオフセットし、制御フラグの後に続くSRH以外の別のIPv6拡張ヘッダを解析して処理する。
【0312】
方式B:この方式はカプセル化モードに対応する。第2のSRv6パケットのSRHとSRH以外の別のIPv6拡張ヘッダとをオフセットするようSFデバイスに指示するのに制御フラグが用いられる場合、SFデバイスは、制御フラグに基づいて、第2のSRv6パケットのSRHとSRH以外の別のIPv6拡張ヘッダとをオフセットする。方式Bでは、制御フラグに基づいて、SFデバイスはIPv6拡張ヘッダのSRHをオフセットするだけでなく、制御フラグの後に続くSRH以外の別のIPv6拡張ヘッダもオフセットする。したがって、制御フラグを含むIPv6拡張ヘッダ(例えば、ホップバイホップオプションヘッダ)の後に続く最初のIPv6拡張ヘッダから最後のIPv6拡張ヘッダまでは、SFデバイスにより処理されることはない。
【0313】
SFデバイスが制御フラグの後に続くIPv6拡張ヘッダをオフセットすることは、例えば、IPv6拡張ヘッダのHdr Ext Lenフィールドを用いて実現される。具体的には、規格に定義されているように、IPv6 Routing headerにはHdr Ext Lenフィールドが含まれている。Hdr Ext Lenフィールドは、拡張ヘッダの長さを示すのに用いられる。Routing headerを処理しないデバイスは、Hdr Ext Lenフィールドを用いて、Routing header範囲全体を直接的にオフセットしてよい。SRHは、IPv6 Routing headerのサブタイプである。図2に示すように、SRHにもHdr Ext Lenフィールドが含まれている。SRHに含まれたHdr Ext Lenフィールドは、SRHヘッダの長さを示すのに用いられる。したがって、SFデバイスは、SRHに含まれたHdr Ext Lenフィールドに基づいて、SRv6パケットのSRHの終了位置を判定してよく、SFデバイスはSRHの後に続くフィールドから開始するパケットを解析し、SRH全体を直接的にオフセットする。Hdr Ext Lenで示す長さは通常、IPv6拡張ヘッダの最初の8バイトを含まない。言い換えれば、Hdr Ext Lenが示す長さは、IPv6拡張ヘッダの9番目のバイトから最後のバイトまでの長さである。Hdr Ext Lenは、8バイト単位であってよい。
【0314】
第2のSRv6パケットはそのIPv6拡張ヘッダをオフセットする必要があるパケットであることをSFデバイスが識別することについては、複数の実装形態がある。方法200は、識別のために制御フラグが用いられる一例を用いて示されている。例えば、SFデバイスが第2のSRv6パケットを受信した後に、SFデバイスは、第2のSRv6パケットが制御フラグを含んでいるかどうかを判定する。第2のSRv6パケットが制御フラグを含んでいることをSFデバイスが識別した場合、SFデバイスは、第2のSRv6パケットにおいて制御フラグの後に続くIPv6拡張ヘッダを直接的にオフセットする。
【0315】
それに加えて、第2のSRv6パケットがさらにターゲット情報を含んでいる場合、SFデバイスは、ターゲット情報に基づいて、ペイロードに対してサービス処理を行う。ターゲット情報の意味は、予め設定されてSFデバイスに格納されてよい。
【0316】
SFデバイスが第2のSRv6パケットに基づいてサービス処理を行う段階は、任意選択の段階であることに留意されたい。いくつかの他の実施形態では、SFデバイスはサービス処理の段階を行わない。
【0317】
S207:SFデバイスは、制御フラグに基づいて第3のSRv6パケットをSFFに送信する。
【0318】
パケットをSFFに戻すプロセスにおいてIPv6拡張ヘッダを戻すようSFデバイスに指示するのに制御フラグがさらに用いられる場合、SFデバイスは、制御フラグの指示に基づいてサービス処理を行うときに、オフセットされたIPv6拡張ヘッダを常に保持している。SFデバイスが第3のSRv6パケットをSFFに戻すプロセスでは、SFデバイスはオフセットされたIPv6拡張ヘッダをSFFに戻す。
【0319】
第3のSRv6パケットは、SFデバイスがサービス処理を行うことで取得されるパケットであり、第3のSRv6パケットおよび第2のSRv6パケットは同じSRHを有している。任意選択で、第3のSRv6パケットのペイロードは、第2のSRv6パケットのペイロードに基づいてサービス処理を行うことで取得される。SFデバイスは、SFFにより事前にSFデバイスに送信されたSRH(すなわち、第2のSRv6パケットのSRH)を元のままSFFに戻すために、第3のSRv6パケットをSFFに送信する。以下では、ケースIおよびケースIIを用いて、SFデバイスがオフセットされたIPv6拡張ヘッダを戻す一例を説明する。
【0320】
任意選択で、制御フラグはさらに、パケットをSFFに戻すプロセスにおいて、第2のSRv6パケットのホップバイホップオプションヘッダを戻すようSFデバイスに指示するのに用いられる。
【0321】
ケースI:このケースは挿入モードに対応する。制御フラグはさらに、パケットをSFFに戻すプロセスにおいて、第2のSRv6パケットのSRHを戻すようSFデバイスに指示するのに用いられ、SFデバイスは、制御フラグに基づいて第2のSRv6パケットのSRHを戻す。ケースIでは、SFデバイスがSRH以外の別のIPv6拡張ヘッダを戻すかどうかは任意選択である。
【0322】
ケースII:このケースはカプセル化モードに対応する。制御フラグはさらに、パケットをSFFに戻すプロセスにおいて、第2のSRv6パケットのSRHとSRH以外の別のIPv6拡張ヘッダとを戻すようSFデバイスに指示するのに用いられ、SFデバイスは、制御フラグに基づいて、第2のSRv6パケットのSRHだけでなく、SRH以外の別のオフセットされたIPv6拡張ヘッダも戻す。例えば、SFデバイスは、第2のSRv6パケットにおいてホップバイホップオプションヘッダの後に続くそれぞれのIPv6拡張ヘッダを戻す。任意選択で、SFデバイスは第2のSRv6パケットのIPv6標準ヘッダを戻す。
【0323】
例えば、先頭から末尾への順で、第2のSRv6パケットには、IPv6標準ヘッダ、制御フラグを含むホップバイホップオプションヘッダ、別の拡張ヘッダA、SRH、別の拡張ヘッダB、およびIPv4パケット1が連続的に含まれている。制御フラグは、別の拡張ヘッダA、SRH、および別の拡張ヘッダBをオフセットするよう指示するのに用いられる。SFデバイスは、制御フラグに基づいて第3のSRv6パケットをSFFに戻す。第3のSRv6パケットには、IPv6標準ヘッダ、別の拡張ヘッダA、SRH、別の拡張ヘッダB、およびIPv4パケット2が連続的に含まれている。IPv4パケット1は、第2のSRv6パケットにおけるペイロードの一例であり、IPv4パケット2は第3のSRv6パケットにおけるペイロードの一例であり、IPv4パケット2は、SFデバイスがIPv4パケット1に対してサービス処理を行った後に取得される。
【0324】
SFデバイスがペイロードに対してサービス処理を行う場合、SFデバイスは、SFFから事前に受信したSRHを常に保持している。SFデバイスは、サービス処理を完了させた後に、SFFから事前に受信したSRHを元のままSFFに戻す。したがって、SFデバイスからSFFに戻されるSRv6パケット(第3のSRv6パケット)に含まれたSRHは、SFデバイスがSFFから事前に受信したSRv6パケット(第2のSRv6パケット)に含まれたSRHと同じである。すなわち、第3のSRv6パケットおよび第2のSRv6パケットは同じSRHを有している。
【0325】
この段落では、第3のSRv6パケットのホップバイホップオプションヘッダと第2のSRv6パケットのホップバイホップオプションヘッダとの関係について、一例を用いて説明する。ホップバイホップオプションヘッダを用いて制御フラグを搬送する場合、任意選択で、制御フラグはさらに、パケットをSFFに戻すプロセスにおいて、第2のSRv6パケットのホップバイホップオプションヘッダを戻すようSFデバイスに指示するのに用いられる。SFデバイスは、SFFから事前に受信したホップバイホップオプションヘッダを保持している。SFデバイスは、サービス処理を完了させた後に、SFFから事前に受信したホップバイホップオプションヘッダを元のままSFFに戻す。これにより、第3のSRv6パケットおよび第2のSRv6パケットは同じホップバイホップオプションヘッダを有するようになる。任意選択で、SFデバイスは制御フラグを修正し、制御フラグ以外のホップバイホップオプションヘッダの別の部分を元のまま戻す。これにより、第3のSRv6パケットおよび第2のSRv6パケットは異なる制御フラグを有するようになる。例えば、SFデバイスは必要に応じて制御フラグに関連情報を追加する。これにより、第3のSRv6パケットの制御フラグは、第2のSRv6パケットの制御フラグより多くの内容を有するようになる。任意選択で、SFデバイスは、制御フラグが位置しているオプションを修正し、制御フラグが位置しているオプション以外のホップバイホップオプションヘッダの別の部分を元のまま戻す。これにより、第3のSRv6パケットおよび第2のSRv6パケットは異なるオプションを有するようになり、異なるオプションには当該制御フラグが含まれている。任意選択で、SFデバイスは、制御フラグが位置しているオプションを元のまま戻すが、制御フラグが位置しているオプション以外のホップバイホップオプションヘッダの別の部分を修正する。これにより、第3のSRv6パケットおよび第2のSRv6パケットは同じオプションを有するようになり、同じオプションには当該制御フラグが含まれている。
【0326】
この段落では、第3のSRv6パケットの最外IPv6 headerと第2のSRv6パケットの最外IPv6 headerとの関係について、一例を用いて説明する。任意選択で、SFデバイスは最外IPv6 headerを保持する。SFデバイスは、サービス処理を完了させた後に、最外IPv6 headerを元のままSFFに戻す。これにより、第3のSRv6パケットおよび第2のSRv6パケットは同じ最外IPv6 headerを有するようになる。任意選択で、SFデバイスは最外IPv6 headerを修正する。これにより、第3のSRv6パケットおよび第2のSRv6パケットは異なる最外IPv6 headerを有するようになる。例えば、第2のSRv6パケットの最外IPv6 headerには、SFデバイスに渡されるいくつかの情報が含まれており、この情報はSFデバイスがサービス処理を行うのに用いられる。SFデバイスは、情報に対してサービス処理を行った後に、この情報を削除する。これにより、第3のSRv6パケットの最外IPv6 headerは第2のSRv6パケットの最外IPv6 headerより少ない内容を有することになる。あるいは、SFデバイスは、サービス処理を行うときに、いくつかの情報を最外IPv6 headerに追加し、最外IPv6 headerを通じてこの情報をSFCの別のデバイスに渡す。したがって、第3のSRv6パケットの最外IPv6 headerは、第2のSRv6パケットの最外IPv6 headerより多くの内容を有している。任意選択で、SFデバイスが最外IPv6 headerを保持するかどうかは、SFFに設定されているSRv6パケット生成モードに依存する。例えば、SRv6パケット生成モードがSFFにカプセル化モードとして設定されている場合、SFデバイスは最外IPv6 headerを元のまま戻すように構成されている。SRv6パケット生成モードがSFFに挿入モードとして設定されている場合、SFデバイスは最外IPv6 headerを元のまま戻すように、または最外IPv6 headerを修正するように構成されている。
【0327】
S208:SFFはSFデバイスから第3のSRv6パケットを受信する。
【0328】
S209:SFFは、第3のSRv6パケットのSRHに基づいて、第3のSRv6パケットに対して転送処理を行う。
【0329】
SFFがSFデバイスから戻されたパケットを受信すると、SFFは更新されたActive SIDに基づいて転送処理を続ける。更新されたActive SIDは、例えば、セグメントリストにあるEnd.PT.SIDの次のSIDである。前述のケースAに対応して、任意選択で、SFFが最初にActive SIDを更新してからパケットをSFデバイスに送信する方式を用いる場合、SFFは、S203を行うときにActive SIDを更新している。これにより、第2のSRv6パケットの最外IPv6 headerにある宛先アドレスは、更新されたActive SIDになる。SFデバイスは最外IPv6 headerの宛先アドレスを変えないままにしておくので、SFデバイスから戻される第3のSRv6パケットの最外IPv6 headerにある宛先アドレスは、更新されたActive SIDである。SFFは、第3のSRv6パケットの最外IPv6 headerにある宛先アドレスに基づいてローカルSIDテーブルに照会し、宛先アドレスが一致したローカルSIDテーブルのSIDに基づいて転送処理を行う。前述のケースBに対応して、任意選択で、SFデバイスがパケットを戻した後にActive SIDを更新する方式をSFFが用いる場合、SFFはS203を行うときにActive SIDを更新しない。これにより、第2のSRv6パケットの最外IPv6 headerにある宛先アドレスは依然としてEnd.PT.SIDである。この場合、SFFから戻される第3のSRv6パケットの最外IPv6 headerにある宛先アドレスはEnd.PT.SIDである。SFFは、第3のSRv6パケットを受信した後に、第3のSRv6パケットのActive SIDを最初に更新してから、更新されたActive SIDに基づいて転送処理を行う。
【0330】
任意選択で、SFFが制御フラグをカプセル化するアクションとは異なり、SFFがSFデバイス(SF device)から戻されたパケットを受信すると、SFFは、第3のSRv6パケットの制御フラグを取り除いて第4のSRv6パケットを取得し、第4のSRv6パケットを送信する。第4のSRv6パケットは、制御フラグを含んでいない。
【0331】
任意選択で、制御フラグがホップバイホップオプションヘッダを用いて搬送される場合、SFFがSFから戻されたパケットから取り除く部分が、SFFが事前にカプセル化する部分と同じである。
【0332】
例えば、第3のSRv6パケットのホップバイホップオプションヘッダがSFFのアップストリームデバイスによりカプセル化され、且つSFFがホップバイホップオプションヘッダを追加するのではなく、制御フラグを搬送するオプションをホップバイホップオプションヘッダに追加する場合、SFFは制御フラグを搬送するオプションを取り除き、制御フラグを搬送するオプション以外の、ホップバイホップオプションヘッダの別のオプションを保持する。このように、第4のSRv6パケットには、制御フラグを搬送するオプションが含まれているのではなく、ホップバイホップオプションヘッダの別のオプションが含まれている。これにより、アップストリームデバイスによって事前にカプセル化されたホップバイホップオプションヘッダの別のオプションは、ネクストノードに渡されるようになる。
【0333】
例えば、第3のSRv6パケットのホップバイホップオプションヘッダには、SFFのアップストリームネットワークエレメントにより追加された第1のTLVと、SFFにより追加された第2のTLVとが含まれており、第2のTLVには制御フラグが含まれている。SFFは第3のSRv6パケットでは第2のTLVを取り除くが、第1のTLVを取り除くことはない。このため、第4のSRv6パケットにはホップバイホップオプションヘッダが含まれており、第4のSRv6パケットのホップバイホップオプションヘッダには第1のTLVが含まれているが、第2のTLVは含まれていない。
【0334】
第3のSRv6パケットのホップバイホップオプションヘッダがSFFによりカプセル化されている場合、SFFはホップバイホップオプションヘッダを取り除く。この場合、第4のSRv6パケットはホップバイホップオプションヘッダを含まない。例えば、図15を参照されたい。SFFにより受信され且つSFデバイスにより送信されるSRv6パケットには、SRH、HBH、およびIPv4パケットが含まれており、後でSFFにより送信されるSRv6パケットには、SRHおよびIPv4パケットが含まれている。この2つのパケットを比較すると、SFFにより送信されるSRv6パケットにはHBHが含まれておらず、このHBHはSFFにより取り除かれている。
【0335】
本実施形態は、SRv6サービス機能チェーンを実装する方法を提供する。End.PT.SIDを提供して用いるのは、SFFがSRHを取り除くことなくSRv6パケットをSFデバイスに転送するのを識別するためである。End.PT.SIDに基づいて、SFFは、SRv6パケットのSRHを取り除くのではなく、このSRv6パケットをSFデバイスに送信する。さらに、SFFが制御フラグをSRv6パケットに含めることで、制御フラグはIPv6拡張ヘッダをオフセットする必要があるシナリオを識別するのに用いられるようになる。SFデバイスは、SRv6パケットを受信した後に、制御フラグに基づいてSRv6パケットのIPv6拡張ヘッダを直接的にオフセットし、SRHを省略して、SRHの後に続くペイロードに対してサービス処理を行う。この方法を用いると、SFFはSRv6 SFCプロキシ機能をサポートする必要がない。具体的には、パケット転送プロセスにおいて、SFFはSRHを取り除いてSRHを復元するという段階を行う必要がないため、SFFを転送プレーンに実装するのが大幅に簡略化される。さらに、SFFはcacheの生成または維持を必要としないので、stateless転送プレーンが実装され得る。SFデバイスでは、SFデバイスはSRv6およびEnd.AN SID機能を実装することなく、SRv6のSFC機能を実装できる。
【0336】
前述の方法200では、制御フラグを用いて、パケットがそのIPv6拡張ヘッダをオフセットすべきパケットであることを識別する。本願のいくつかの他の実施形態では、制御フラグ以外の別の方式を用いて、パケットがそのIPv6拡張ヘッダをオフセットする必要があるパケットであることを識別してよい。例えば、SFデバイスは、パケットがそのIPv6拡張ヘッダをオフセットすべきパケットであるかどうかを、ローカル設定を用いて識別する。以下では、方法300および方法400を例として用い、パケットがそのIPv6拡張ヘッダをオフセットすべきパケットであるかどうかを、ローカル設定を用いてどのように識別するかについて説明する。
【0337】
いくつかの実施形態では、SFデバイスは、指定されたインバウンドインタフェースを用いて、パケットがそのIPv6拡張ヘッダをオフセットする必要があるパケットであることを識別する。以下では、説明のための一例として方法300を用いる。方法200の段階と同様の方法300の段階については、方法200を参照するものと理解されたい。方法300では、詳細について再度説明しない。
【0338】
図18を参照されたい。図18は、本願の一実施形態による、SRv6サービス機能チェーンでパケットを転送する方法300のフローチャートである。例えば、方法300にはS300~S309が含まれている。
【0339】
S300:SFFにEnd.PT.SIDを設定する。
【0340】
S301では、End.PT.SIDは、SRHを取り除くことなく、受信したSRv6パケットをSFデバイスに転送するようSFFに指示するのに用いられる。任意選択で、End.PT.SIDはさらに、受信したSRv6パケットを指定されたインタフェース(すなわち、以下の第2のインタフェース)を通じて転送するようSFFに指示するのに用いられる。
【0341】
S301:第1のインタフェースを通じて受信したパケットのIPv6拡張ヘッダをオフセットして、IPv6拡張ヘッダの後に続くペイロードに対してサービス処理を行うようにSFデバイスを構成する。
【0342】
第1のインタフェースは、SFデバイスの1つまたは複数のインバウンドインタフェースである。
【0343】
S302:SFFは第1のSRv6パケットを受信する。第1のSRv6パケットの宛先アドレスにはEnd.PT.SIDが含まれている。
【0344】
S303:SFFは、End.PT.SIDおよび第1のSRv6パケットに基づいて第2のSRv6パケットを生成する。第2のSRv6パケットのIPv6拡張ヘッダにはSRHが含まれており、第2のSRv6パケットおよび第1のSRv6パケットは同じペイロードを有している。
【0345】
S304:SFFは第2のSRv6パケットをSFデバイスの第1のインタフェースに送信する。
【0346】
S305:SFデバイスは第1のインタフェースを通じてSFFから第2のSRv6パケットを受信する。
【0347】
任意選択で、SFFは第2のインタフェースを通じて第2のSRv6パケットを送信する。第2のインタフェースはSFFのアウトバウンドインタフェースである。第2のインタフェースとEnd.PT.SIDとの間に結合関係が事前に確立されている。
【0348】
方法200と異なり、方法300では、SFデバイスは、パケットがそのIPv6拡張ヘッダをオフセットすべきパケットであるかどうかを制御フラグに基づいて識別するのではなく、パケットがそのIPv6拡張ヘッダをオフセットすべきパケットであるかどうかを、指定されたインタフェースに基づいて識別する。指定されたインタフェースを通じて受信したパケットに対して、SFデバイスは、このパケットがIPv6拡張ヘッダをオフセットすべきパケットであると判定する。例えば、SFFの第2のインタフェースは、SFデバイスに接続するのに用いられる専用インタフェースとして予め構成されており、SFFは、Active SIDがEnd.PTであるSRv6パケットを受信した場合、SRHを取り除くことなくSRv6パケットを第2のインタフェースを通じて転送するように構成されている。さらに、SFデバイスの第1のインタフェースは、SFFに接続される専用インタフェースとして予め構成されており、SFデバイスは、第1のインタフェースを通じて受信したパケットのIPv6拡張ヘッダをオフセットして、IPv6拡張ヘッダの後に続くペイロードに対してサービス処理を行うように構成されている。このように、SFFが第1のSRv6パケットを受信した後に、SFFは、SFFの構成情報に基づいて第1のSRv6パケットのSRHを取り除くことはせず、第2のSRv6パケットを第2のインタフェースを通じてSFデバイスに送信する。これにより、第2のSRv6パケットはSFデバイスの第1のインタフェースに到着するようになる。SFデバイスは、第2のSRv6パケットを受信した後に、第2のSRv6パケットが第1のインタフェースを通じて受信されたと判定し、SFデバイスの構成情報に基づいて、SFデバイスは、第2のSRv6パケットのIPv6拡張ヘッダをオフセットして、第2のSRv6パケットにおいてIPv6拡張ヘッダの後に続くペイロードに対してサービス処理を行う。
【0349】
任意選択で、第2のSRv6パケットにはさらに、ターゲット情報が含まれている。ターゲット情報の説明については、方法200の関連する説明を参照されたい。
【0350】
S306:ローカル設定に基づいて、SFデバイスは、第2のSRv6パケットのIPv6拡張ヘッダをオフセットし、第2のSRv6パケットにおいてIPv6拡張ヘッダの後に続くペイロードに対してサービス処理を行い、第3のSRv6パケットを取得する。第3のSRv6パケットおよび第2のSRv6パケットは同じSRHを有している。
【0351】
S307:SFデバイスは第3のSRv6パケットをSFFに送信する。
【0352】
S308:SFFはSFデバイスから第3のSRv6パケットを受信する。第3のSRv6パケットおよび第2のSRv6パケットは同じSRHを有している。
【0353】
S309:SFFは、第3のSRv6パケットのSRHに基づいて、第3のSRv6パケットに対して転送処理を行う。
【0354】
本実施形態は、SRv6サービス機能チェーンを実装する方法を提供する。End.PT.SIDを提供して用いるのは、SFFがSRHを取り除くことなくSRv6パケットをSFデバイスに転送するのを識別するためである。End.PT.SIDに基づいて、SFFは、SRv6パケットのSRHを取り除くのではなく、このSRv6パケットをSFデバイスに送信する。さらに、SFデバイスに対して指定されたインバウンドインタフェースが、IPv6拡張ヘッダをオフセットする必要があるシナリオを識別するのに用いられる。SFFは、SFデバイスに対して指定されたインバウンドインタフェースにSRv6パケットを送信する。SFデバイスは、指定されたインバウンドインタフェースを通じてSRv6パケットを受信した後に、SRv6パケットのIPv6拡張ヘッダを直接的にオフセットし、SRHを省略してSRHの後に続くペイロードに対してサービス処理を行う。この方法を用いると、SFFはSRv6 SFCプロキシ機能をサポートする必要がない。具体的には、パケット転送プロセスにおいて、SFFはSRHを取り除いてSRHを復元するという段階を行う必要がないため、SFFを転送プレーンに実装するのが大幅に簡略化される。さらに、SFFはcacheの生成または維持を必要としないので、stateless転送プレーンが実装され得る。SFデバイスでは、SFデバイスはSRv6およびEnd.AN SID機能を実装することなく、SRv6のSFC機能を実装できる。
【0355】
いくつかの実施形態では、SFデバイスは、アクセス制御リスト(Access Control List、ACL)に基づいて、パケットがそのIPv6拡張ヘッダをオフセットする必要があるパケットであることを識別する。以下では、説明のための一例として方法400を用いる。方法200の段階と同様の方法400の段階については、方法200を参照するものと理解されたい。方法400では、詳細について再度説明しない。
【0356】
図19を参照されたい。図19は、本願の一実施形態による、SRv6サービス機能チェーンでパケットを転送する方法400のフローチャートである。例えば、方法400にはS400~S410が含まれている。
【0357】
S400:SFFにEnd.PT.SIDを設定する。
【0358】
S401では、End.PT.SIDは、SRHを取り除くことなく、受信したSRv6パケットをSFデバイスに転送するようSFFに指示するのに用いられる。
【0359】
S401:ACLのマッチング条件を満たしているパケットのIPv6拡張ヘッダをオフセットして、IPv6拡張ヘッダの後に続くペイロードに対してサービス処理を行うようSFデバイスを構成する。
【0360】
ACLには、マッチング条件およびアクションが含まれている。パケットがマッチング条件を満たしている場合、SFデバイスはマッチング条件に対応するアクションを行う。方法300では、マッチング条件に対応するアクションは、IPv6拡張ヘッダをオフセットして、IPv6拡張ヘッダの後に続くペイロードに対してサービス処理を行うことである。
【0361】
マッチング条件には以下の条件のうちの少なくとも1つが含まれている。すなわち、パケットの送信元IPアドレスがACLのIPアドレスと一致すること、パケットの宛先IPアドレスがACLのIPアドレスと一致すること、パケットの送信元ポート番号がACLのポート番号と一致すること、およびパケットの宛先ポート番号がACLのポート番号と一致することである。ポート番号は、例えば、TCPポート番号またはUDPポート番号である。
【0362】
S402:SFFは第1のSRv6パケットを受信する。第1のSRv6パケットの宛先アドレスにはEnd.PT.SIDが含まれている。
【0363】
S403:SFFは、End.PT.SIDおよび第1のSRv6パケットに基づいて第2のSRv6パケットを生成する。第2のSRv6パケットのIPv6拡張ヘッダにはSRHが含まれており、第2のSRv6パケットおよび第1のSRv6パケットは同じペイロードを有している。
【0364】
S404:SFFは第2のSRv6パケットをSFデバイスに送信する。
【0365】
S405:SFデバイスは第2のSRv6パケットをSFFから受信する。
【0366】
S406:SFデバイスは、第2のSRv6パケットがACLのマッチング条件を満たしていると判定する。
【0367】
SFデバイスは、第2のSRv6パケットがACLのマッチング条件を満たしているかどうかを判定する。第2のSRv6パケットがACLのマッチング条件を満たしている場合、SFデバイスは以下のS407を行う。
【0368】
S407:SFデバイスは、第2のSRv6パケットのIPv6拡張ヘッダをオフセットし、第2のSRv6パケットにおいてIPv6拡張ヘッダの後に続くペイロードに対してサービス処理を行い、第3のSRv6パケットを取得する。第3のSRv6パケットおよび第2のSRv6パケットは同じSRHを有している。
【0369】
任意選択で、第2のSRv6パケットにはさらに、ターゲット情報が含まれている。ターゲット情報の説明については、方法200の関連する説明を参照されたい。
【0370】
S408:SFデバイスは第3のSRv6パケットをSFFに送信する。
【0371】
S409:SFFはSFデバイスから第3のSRv6パケットを受信する。第3のSRv6パケットおよび第2のSRv6パケットは同じSRHを有している。
【0372】
S410:SFFは、第3のSRv6パケットのSRHに基づいて、第3のSRv6パケットに対して転送処理を行う。
【0373】
本実施形態は、SRv6サービス機能チェーンを実装する方法を提供する。End.PT.SIDを提供して用いるのは、SFFがSRHを取り除くことなくSRv6パケットをSFデバイスに転送するのを識別するためである。End.PT.SIDに基づいて、SFFは、SRv6パケットのSRHを取り除くのではなく、このSRv6パケットをSFデバイスに送信する。さらに、SFデバイスに設定されるACLは、IPv6拡張ヘッダをオフセットする必要があるシナリオを識別するのに用いられる。SFデバイスがSRv6パケットを受信した後に、SRv6パケットがACLのマッチング条件を満たしているとSFデバイスが判定した場合、SFデバイスは、SRv6パケットのIPv6拡張ヘッダを直接的にオフセットし、SRHを省略してサービス処理を行う。この方法を用いると、SFFはSRv6のSFCプロキシ機能をサポートする必要がない。具体的には、パケット転送プロセスにおいて、SFFはSRHを取り除いてSRHを復元するという段階を行う必要がないため、SFFを転送プレーンに実装するのが大幅に簡略化される。さらに、SFFはcacheの生成または維持を必要としないので、stateless転送プレーンが実装され得る。SFデバイスでは、SFデバイスはSRv6およびEnd.AN SID機能を実装することなく、SRv6のSFC機能を実装できる。
【0374】
方法200、方法300、および方法400では、SFデバイスがSFFに第3のSRv6パケットを戻す段階は任意選択であることを理解されたい。いくつかの他の実施形態では、SFデバイスは、SFFから第2のSRv6パケットを受信した後に、SFFに第3のSRv6パケットを戻すことはしない。例えば、SFデバイスはネットワークセキュリティデバイス、例えば、ファイアウォールであり、SFデバイスにより行われるサービス処理アクションとは、パケットを破棄することである。したがって、SFデバイスは、第2のSRv6パケットがパケット破棄条件を満たしていると判定した場合、第2のSRv6パケットを破棄する。
【0375】
以上では、本願の実施形態における方法200、方法300、および方法400を説明している。以下では、本願の実施形態におけるSFFおよびSFデバイスについて説明する。後述するSFFは、方法200、方法300、および方法400におけるSFFのいずれかの機能を有していることを理解されたい。後述するSFデバイスは、方法200、方法300、および方法400におけるSFデバイスのいずれかの機能を有している。
【0376】
図20は、本願の一実施形態によるSFFの構造概略図である。図20に示すように、SFF500には、S202、S302、またはS402を行うように構成された受信モジュール501と、S203、S303、またはS404を行うように構成された生成モジュール502と、S204、S304、またはS404を行うように構成された送信モジュール503とが含まれている。
【0377】
SFF500は前述した方法の実施形態におけるSFFに対応しており、SFF500における各モジュールならびに前述した他のオペレーションおよび/または機能はそれぞれ、方法200、方法300、および方法400におけるSFFにより行われる様々な段階および方法を実現するのに用いられることを理解されたい。具体的な詳細については、方法200、方法300、および方法400を参照されたい。簡潔にするために、詳細については再度ここで説明しない。
【0378】
前述の機能モジュールの分割は、SFF500がSRv6サービス機能チェーンでパケットをどのように転送するかを説明するための一例として用いられていることを理解されたい。実際に適用する際には、必要に応じて前述の機能を異なる機能モジュールに割り当ててもよい。言い換えれば、SFF500の内部構造は、上述した機能の全部または一部を実装するために様々な機能モジュールに分割される。さらに、前述の実施形態において提供されたSFF500は、方法200、方法300、および方法400と同じ考えに属している。具体的な実装プロセスについては、方法200、方法300、および方法400を参照されたい。詳細については、再度ここで説明しない。
【0379】
図21は、本願の一実施形態によるSFデバイスの構造概略図である。図21に示すように、SFデバイス600には、S205、S305、またはS405を行うように構成された受信モジュール601と、S206、S306、S406、またはS407を行うように構成された処理モジュール602とが含まれている。
【0380】
任意選択で、SFデバイス600はさらに送信モジュールを含み、送信モジュールはS207、S307、またはS408を行うように構成されている。
【0381】
SFデバイス600は前述した方法の実施形態におけるSFデバイスに対応しており、SFデバイス600における各モジュールならびに前述した他のオペレーションおよび/または機能はそれぞれ、方法200、方法300、および方法400におけるSFデバイスにより行われる様々な段階および方法を実現するのに用いられることを理解されたい。具体的な詳細については、方法200、方法300、および方法400を参照されたい。簡潔にするために、詳細については再度ここで説明しない。
【0382】
前述の機能モジュールの分割は、SFデバイス600がSRv6サービス機能チェーンでパケットをどのように転送するかを説明するための一例として用いられていることを理解されたい。実際に適用する際には、必要に応じて前述の機能を異なる機能モジュールに割り当ててもよい。言い換えれば、SFデバイス600の内部構造は、上述した機能の全部または一部を実装するために様々な機能モジュールに分割される。さらに、前述の実施形態において提供されたSFデバイス600は、方法200、方法300、および方法400と同じ考えに属している。具体的な実装プロセスについては、方法200、方法300、および方法400を参照されたい。詳細については、再度ここで説明しない。
【0383】
本願において提供された方法の実施形態および仮想装置の実施形態に対応して、本願の本実施形態はさらに、SFFおよびSFデバイスを提供する。以下では、SFFおよびSFデバイスのハードウェア構造について説明する。
【0384】
後述するSFF700およびSFデバイス800はそれぞれ、方法200、方法300、および方法400におけるSFFおよびSFデバイスに対応する。SFF700およびSFデバイス800におけるハードウェア、モジュール、ならびに前述した他のオペレーションおよび/または機能がそれぞれ、方法の実施形態におけるSFFおよびSFデバイスにより行われる様々な段階および方法を実現するのに用いられる。SFF700およびSFデバイス800がSRv6サービス機能チェーンでパケットをどのように転送するかという詳細なプロセスに関して、具体的な詳細については、方法200、方法300、および方法400を参照されたい。簡潔にするために、詳細については再度ここで説明しない。方法200、方法300、および方法400の各段階は、ハードウェアの集積ロジック回路またはSFF700およびSFデバイス800のプロセッサにおいてソフトウェアの形態にある命令を用いて完了する。本願の実施形態に関連して開示された方法の各段階は、ハードウェアプロセッサにより直接的に行われてもよく、プロセッサのハードウェアとソフトウェアモジュールとの組み合わせを用いて行われてもよい。ソフトウェアモジュールは、当該技術分野において成熟した記憶媒体、例えば、ランダムアクセスメモリ、フラッシュメモリ、読み出し専用メモリ、プログラム可能型読み出し専用メモリ、電気的消去可能プログラム可能型メモリ、またはレジスタなどに配置されてよい。記憶媒体はメモリに配置されており、プロセッサは、メモリにある情報を読み出し、プロセッサのハードウェアと組み合わせて前述した方法における各段階を完了させる。繰り返しを避けるために、詳細については再度ここで説明しない。
【0385】
SFF700は、図20に示すSFF500に対応する。SFF500の機能モジュールが、SFF700のソフトウェアを用いて実装されている。言い換えれば、SFF500に含まれている機能モジュールは、SFF700のプロセッサがメモリに格納されたプログラムコードを読み出した後に生成される。
【0386】
SFデバイス800は、図21に示すSFデバイス600に対応する。SFデバイス600の機能モジュールが、SFデバイス800のソフトウェアを用いて実装される。言い換えれば、SFデバイス600に含まれている機能モジュールは、SFデバイス800のプロセッサがメモリに格納されたプログラムコードを読み出した後に生成される。
【0387】
図22を参照されたい。図22は、本願の例示的実施形態によるSFFの構造概略図である。SFF700は、例えば、ネットワークデバイスである。SFF700には、メイン制御ボード710およびインタフェースボード730が含まれている。
【0388】
メイン制御ボードは、メイン処理ユニット(main processing unit、MPU)またはルートプロセッサカード(route processor card)とも呼ばれている。メイン制御ボード710は、ルート計算、デバイス管理、デバイス保守、およびプロトコル処理の機能を含むSFF700の各コンポーネントの制御および管理を行うように構成されている。メイン制御ボード710には、中央演算処理装置711およびメモリ712が含まれている。
【0389】
インタフェースボード730は、ラインインタフェースユニット(line processing unit、LPU)、ラインカード(line card)、またはサービスボードとも呼ばれている。インタフェースボード730は、様々なサービスインタフェースを提供して、データパケット転送を実現するように構成されている。サービスインタフェースとしては、限定されることはないが、イーサネットインタフェースおよびPOS(Packet over SONET/SDH)インタフェースなどが挙げられる。イーサネットインタフェースは、例えば、フレキシブルイーサネットサービスインタフェース(Flexible Ethernet Client、FlexE Client)である。インタフェースボード730には、中央演算処理装置731、ネットワークプロセッサ732、転送エントリメモリ734、および物理インタフェース(physical interface card、PIC)733が含まれている。
【0390】
インタフェースボード730の中央演算処理装置731は、インタフェースボード730の制御および管理を行い、メイン制御ボード710の中央演算処理装置711と通信するように構成されている。
【0391】
ネットワークプロセッサ732は、パケット転送処理を実現するように構成されている。ネットワークプロセッサ732の形態が転送チップであってよい。具体的には、ネットワークプロセッサ732は、転送エントリメモリ734に格納された転送テーブルに基づいて、受信したパケットを転送するように構成されている。パケットの宛先アドレスがSFF700のアドレスである場合、ネットワークプロセッサ732はパケットを処理のためにCPU(例えば、中央演算処理装置711)に送信する。パケットの宛先アドレスがSFF700のアドレスではない場合、ネットワークプロセッサ732は、宛先アドレスに基づいて宛先アドレスに対応するネクストホップおよびアウトバウンドインタフェースを求めて転送テーブルを検索し、宛先アドレスに対応するアウトバウンドインタフェースにパケットを転送する。アップリンクパケットの処理としては、パケットのインバウンドインタフェースを処理すること、および転送テーブルを検索することが挙げられる。ダウンリンクパケットの処理としては、転送テーブルを検索することなどが挙げられる。
【0392】
物理インタフェース733は、物理層相互接続機能を実装するように構成されている。元のトラフィックが物理インタフェース733からインタフェースボード730に入り、処理されたパケットが物理インタフェース733から送信される。物理インタフェース733は、サブカードとも呼ばれており、インタフェースボード730に搭載されてよく、光/電気信号をパケットに変換し、パケットに対して有効性チェックを行い、次いでパケットを処理のためにネットワークプロセッサ732に転送する役割がある。いくつかの実施形態では、中央演算処理装置はネットワークプロセッサ732の機能も行うことができ、例えば、汎用CPUに基づくソフトウェア転送を実装できる。したがって、ネットワークプロセッサ732は、物理インタフェース733において必要とされない。
【0393】
任意選択で、SFF700には複数のインタフェースボードが含まれている。例えば、SFF700にはさらにインタフェースボード740が含まれている。インタフェースボード740には、中央演算処理装置741、ネットワークプロセッサ742、転送エントリメモリ744、および物理インタフェース743が含まれている。
【0394】
任意選択で、SFF700にはさらにスイッチングボード720が含まれている。スイッチングボード720は、スイッチファブリックユニット(switch fabric unit、SFU)とも呼ばれることがある。ネットワークデバイスが複数のインタフェースボード730を有している場合、スイッチングボード720は、インタフェースボード同士のデータ交換を完了させるように構成されている。例えば、インタフェースボード730およびインタフェースボード740は、スイッチングボード720を用いて互いに通信することができる。
【0395】
メイン制御ボード710はインタフェースボード730に結合されている。例えば、メイン制御ボード710、インタフェースボード730、インタフェースボード740、およびスイッチングボード720は、システムバスを通じてシステムバックプレーンに接続されて、インターワーキングを実現する。実現可能な一実装形態では、メイン制御ボード710とインタフェースボード730との間に、プロセス間通信プロトコル(inter-process communication、IPC)チャネルが確立されており、メイン制御ボード710とインタフェースボード730との間でIPCを用いて通信が行われる。
【0396】
論理的に、SFF700には制御プレーンおよび転送プレーンが含まれている。制御プレーンには、メイン制御ボード710および中央演算処理装置731が含まれている。転送プレーンには、転送を行う様々なコンポーネント、例えば、転送エントリメモリ734、物理インタフェース733、およびネットワークプロセッサ732が含まれている。制御プレーンは、ルーティング、転送テーブルの生成、シグナリングおよびプロトコルパケットの処理、ならびにデバイス状態の設定および維持などの機能を行う。制御プレーンは、生成された転送テーブルを転送プレーンに伝える。転送プレーンにおいて、ネットワークプロセッサ732は、制御プレーンから伝えられた転送テーブルを検索して、物理インタフェース733で受信したパケットを転送する。制御プレーンから伝えられた転送テーブルは、転送エントリメモリ734に格納されてよい。いくつかの実施形態では、制御プレーンおよび転送プレーンは完全に分離されてよく、同じデバイス上にはない。
【0397】
例えば、方法200、方法300、または方法400は、インタフェースボード730で行われる。物理インタフェース733は第1のSRv6パケットを受信し、第1のSRv6パケットをネットワークプロセッサ732に送信する。ネットワークプロセッサ732は、End.PT.SIDおよび第1のSRv6パケットに基づいて第2のSRv6パケットを生成し、リンク層のカプセル化を完了させた後にアウトバウンドインタフェースなどの情報に基づいて、物理インタフェース733を通じて第2のパケットを送信する。これにより、第2のパケットはSFデバイスに伝送されるようになる。方法200、方法300、または方法400をインタフェースボード740で実行するプロセスも同様である。
【0398】
SFF500の受信モジュール501および送信モジュール503はSFF700の物理インタフェース733に相当し、SFF500の生成モジュール502はネットワークプロセッサ732または中央演算処理装置711に相当し得ることを理解されたい。
【0399】
本願の本実施形態では、インタフェースボード740でのオペレーションがインタフェースボード730でのオペレーションと一致していることを理解されたい。簡潔にするために、詳細については再度説明しない。本実施形態におけるSFF700は、前述した方法の実施形態におけるSFFに対応し得ることを理解されたい。SFF700のメイン制御ボード710ならびにインタフェースボード730および/または740は、SFFの諸機能および/または前述した方法の実施形態におけるSFFにより行われる様々な段階を実現し得る。簡潔にするために、詳細については再度ここで説明しない。
【0400】
1つまたは複数のメイン制御ボードがあり得ることに留意されたい。複数のメイン制御ボードがある場合、メイン制御ボードには、アクティブメイン制御ボードおよびスタンバイメイン制御ボードが含まれてよい。1つまたは複数のインタフェースボードがあってよく、より大きいデータ処理能力を有するネットワークデバイスによって、より多くのインタフェースボードが提供される。インタフェースボードには、1つまたは複数の物理インタフェースがあってよい。スイッチングボードがなくてもよく、1つまたは複数のスイッチングボードがあってもよい。複数のスイッチングボードがある場合、負荷共有および冗長バックアップが一緒に実装されてよい。集中型転送アーキテクチャでは、ネットワークデバイスはスイッチングボードを必要としないことがあり、インタフェースボードによって、システム全体のサービスデータを処理する機能が提供される。分散型転送アーキテクチャでは、ネットワークデバイスは少なくとも1つのスイッチングボードを有してよく、複数のインタフェースボード間のデータ交換が、スイッチングボードを使用して実現され、大容量のデータ交換および処理能力が提供される。したがって、分散型アーキテクチャにおけるネットワークデバイスのデータアクセスおよび処理能力は、集中型アーキテクチャにおけるデバイスより良い。任意選択で、ネットワークデバイスは代替的に、カードが1つしかない形態であってもよい。具体的には、スイッチングボードがなく、インタフェースボードおよびメイン制御ボードの機能はこのカードに統合される。この場合、インタフェースボード上の中央演算処理装置およびメイン制御ボード上の中央演算処理装置は、カード上の1つの中央演算処理装置に組み合わされて、2つの中央演算処理装置が組み合わされた後に取得される機能を行ってよい。この形態のデバイス(例えば、低性能のスイッチまたはルータなどのネットワークデバイス)は、比較的不十分なデータ交換および処理能力しか有していない。用いられる具体的なアーキテクチャは、具体的なネットワーキング展開シナリオに依存する。これについては、ここで限定しない。
【0401】
図23を参照されたい。図23は、本願の例示的実施形態によるSFデバイス800の構造概略図である。例えば、SFデバイス800はコンピューティングデバイス、例えば、ホスト、サーバ、またはパーソナルコンピュータであってよい。SFデバイス800は、汎用バスアーキテクチャで実装されてよい。
【0402】
SFデバイス800は、方法の実施形態において説明された内容の全部または一部に関わる任意のデバイス、例えば8888であってよい。SFデバイス800には、少なくとも1つのプロセッサ801、通信バス802、メモリ803、および少なくとも1つの物理インタフェース804が含まれている。
【0403】
プロセッサ801は、汎用の中央演算処理装置(central processing unit、CPU)、ネットワークプロセッサ(network processor、NP)、またはマイクロプロセッサであってもよく、本願の解決手段を実現するように構成された1つまたは複数の集積回路、例えば、特定用途向け集積回路(application-specific integrated circuit、ASIC)、プログラム可能型ロジックデバイス(programmable logic device、PLD)、またはその組み合わせであってもよい。PLDは、複雑なプログラム可能型ロジックデバイス(complex programmable logic device、CPLD)、フィールドプログラマブルロジックゲートアレイ(field-programmable gate array、FPGA)、汎用アレイロジック(generic array logic、GAL)、またはその任意の組み合わせであってもよい。
【0404】
通信バス802は、前述のコンポーネント間で情報を伝送するのに用いられる。通信バス802は、アドレスバス、データバス、または制御バスなどに分類されてよい。表現しやすくするために、図23では1本の太線だけを用いてバスを表しているが、これは、バスが1つしかない、またはバスのタイプが1つしかないことを意味するものではない。
【0405】
メモリ803は、読み出し専用メモリ(read-only memory、ROM)または静的情報および命令を格納できる別のタイプの静的ストレージデバイスであってもよく、ランダムアクセスメモリ(random access memory、RAM)または情報および命令を格納できる別のタイプの動的ストレージデバイスであってもよく、電気的消去可能プログラム可能型読み出し専用メモリ(electrically erasable programmable read-only Memory、EEPROM)、コンパクトディスク読み出し専用メモリ(compact disc read-only memory、CD-ROM)もしくは他のコンパクトディスクストレージ、光ディスクストレージ(圧縮光ディスク、レーザディスク、光ディスク、デジタル多用途光ディスク、またはブルーレイ光ディスクなどを含む)、磁気ディスク記憶媒体もしくは別の磁気ストレージデバイス、または期待されるプログラムコードを命令もしくはデータ構造体の形態で搬送もしくは格納でき且つコンピュータがアクセスできる任意の他の媒体であってもよい。これについては、上記に限定されるものではない。メモリ803は独立して存在してよく、通信バス802を通じてプロセッサ801に接続されている。あるいは、メモリ803はプロセッサ801と統合されてもよい。
【0406】
物理インタフェース804は、別のデバイスまたは通信ネットワークと通信する送受信機のような任意のデバイスを用いる。物理インタフェース804には、有線による物理インタフェースが含まれ、代替的に無線による物理インタフェースが含まれてよい。有線による物理インタフェースは、例えば、イーサネットインタフェースであってよい。イーサネットインタフェースは、光インタフェース、電気的インタフェース、またはその組み合わせであってもよい。無線による物理インタフェースは、無線ローカルエリアネットワーク(wireless local area network、WLAN)インタフェース、セルラネットワーク物理インタフェース、またはその組み合わせであってもよい。
【0407】
具体的な実装の際に、一実施形態では、プロセッサ801には、1つまたは複数のCPU、例えば、図23に示すCPU0およびCPU1が含まれてよい。
【0408】
具体的な実装の際に、一実施形態では、SFデバイス800には複数のプロセッサ、例えば、図23に示すプロセッサ801およびプロセッサ805が含まれてよい。各プロセッサはシングルコア(single-CPU)プロセッサであってもよく、マルチコア(multi-CPU)プロセッサであってもよい。ここでのプロセッサは、データ(コンピュータプログラム命令など)を処理するように構成された1つまたは複数のデバイス、回路、および/または処理コアを指し得る。
【0409】
具体的な実装の際に、一実施形態では、SFデバイス800には出力デバイス806および入力デバイス807が含まれてよい。出力デバイス806はプロセッサ801と通信し、複数の方式で情報を表示できる。例えば、出力デバイス806は、液晶ディスプレイ(liquid crystal display、LCD)、発光ダイオード(light-emitting diode、LED)ディスプレイデバイス、陰極線管(cathode ray tube、CRT)ディスプレイデバイス、またはプロジェクタ(projector)などであってもよい。入力デバイス807はプロセッサ801と通信し、複数の方式でユーザの入力を受信できる。例えば、入力デバイス807は、マウス、キーボード、タッチスクリーンデバイス、またはセンサデバイスなどであってよい。
【0410】
いくつかの実施形態では、メモリ803は、本願の解決手段を実行するためのプログラムコード810を格納するように構成されており、プロセッサ801はメモリ803に格納されたプログラムコード810を実行できる。言い換えれば、SFデバイス800は、プロセッサ801とメモリ803にあるプログラムコード810とを用いて、方法の実施形態において提供された方法200、方法300、または方法400を実現できる。
【0411】
本願の本実施形態におけるSFデバイス800は、前述した方法の実施形態におけるSFデバイスに対応し得ることを理解されたい。SFデバイス800のプロセッサ801および物理インタフェース804などにより、SFデバイスの諸機能および/または前述した方法の実施形態においてSFデバイスにより行われる様々な段階および方法が実現され得る。簡潔にするために、詳細についてはここで説明しない。
【0412】
SFデバイス600の受信モジュール601および送信モジュールはSFデバイス800の物理インタフェース804に相当し、SFデバイス600の処理モジュール602はSFデバイス800のプロセッサ801に相当し得ることを理解されたい。
【0413】
図24を参照されたい。本願の一実施形態がネットワークシステム900を提供する。システム900には、SFF901およびSFデバイス902が含まれている。任意選択で、SFF901はSFF500またはSFF700であり、SFデバイス902はSFデバイス600またはSFデバイス800である。
【0414】
当業者であれば、本明細書に開示された実施形態を参照して説明されている方法の段階およびユニットは、電子的ハードウェア、コンピュータソフトウェア、またはその組み合わせによって実現され得ることを認識しているであろう。ハードウェアとソフトウェアとの間の互換性を明確に説明するために、以上では、各実施形態の段階および構成を機能に基づいて大まかに説明した。これらの機能がハードウェアまたはソフトウェアのいずれで行われるかは、技術的解決手段の具体的な用途および設計上の制約で決まる。当業者であれば、異なる方法を用いて、説明された機能を具体的な用途ごとに実現するかもしれないが、その実装形態が本願の範囲を超えるものとみなされるべきではない。
【0415】
当業者であれば、簡便且つ簡潔な説明のために、前述のシステム、装置、およびモジュールの詳細な動作プロセスについては、前述した方法の実施形態における対応する処理を参照することを明確に理解するであろう。詳細については、再度ここで説明しない。
【0416】
本願で提供されているいくつかの実施形態では、開示されたシステム、装置、および方法が他の方式で実現され得ることを理解されたい。例えば、説明された装置の実施形態は単なる一例にすぎない。例えば、モジュール分割は単なる論理的な機能分割にすぎず、実際の実装では他の分割であってもよい。例えば、複数のモジュールまたはコンポーネントが組み合わされるか、または統合されて別のシステムになってもよく、一部の機能が無視されても、行われなくてもよい。さらに、表示されたり説明されたりした相互結合または直接的結合または通信接続は、いくつかのインタフェース、装置同士もしくはモジュール同士の間接的結合もしくは通信接続、または電気的接続、機械的接続、もしくは他の形態の接続を用いて実現されてよい。
【0417】
別個の部分として説明されているモジュールは、物理的に分かれていてもいなくてもよく、モジュールとして表示されている部分が、物理モジュールであってもなくてもよく、同じ位置に配置されてもよく、複数のネットワークモジュールに分散されてもよい。本願の実施形態の解決手段が持つ目的を達成するために、これらのモジュールの一部または全部が実際の必要性に従って選択されてよい。
【0418】
さらに、本願の実施形態における各機能モジュールが1つの処理モジュールに統合されてもよく、これらのモジュールのそれぞれが物理的に単独で存在してもよく、2つまたはそれより多くのモジュールが1つのモジュールに統合されてもよい。統合されたモジュールは、ハードウェアの形態で実現されてもよく、ソフトウェア機能モジュールの形態で実現されてもよい。
【0419】
統合されたモジュールがソフトウェア機能モジュールの形態で実現されて、独立した製品として販売または使用される場合、統合されたモジュールはコンピュータ可読記憶媒体に格納されてよい。そのような理解に基づいて、本願における技術的解決手段は本質的になるが、従来技術に寄与する部分、またはその技術的解決手段の全部もしくは一部も、ソフトウェア製品の形態で実現されてよい。コンピュータソフトウェア製品は記憶媒体に格納されており、本願の実施形態において説明された方法の段階の全部または一部を行うようコンピュータデバイス(これはパーソナルコンピュータ、サーバ、またはネットワークデバイスなどであってよい)に指示するための命令をいくつか含んでいる。前述の記憶媒体としては、プログラムコードを格納できる任意の媒体、例えば、USBフラッシュドライブ、着脱式ハードディスク、読み出し専用メモリ(read-only memory、ROM)、ランダムアクセスメモリ(random access memory、RAM)、磁気ディスク、または光ディスクなどが挙げられる。
【0420】
本願では、「第1」および「第2」などの用語を用いて、基本的に同じ目的または機能を有する同じ項目同士または類似した項目同士を区別している。「第1」と「第2」との間には論理的依存性も時系列的依存性もなく、数および実行順序が限定されることはないものと理解されたい。以下の説明では様々な要素を説明するために「第1」および「第2」などの用語が用いられているが、こうした用語によって、これらの要素が限定されるべきではないことも理解されたい。これらの用語は単に、ある要素を別の要素と区別するのに用いられている。例えば、様々な例の範囲から逸脱することなく、第1のSRv6パケットが第2のSRv6パケットと呼ばれてもよく、同様に第2のSRv6パケットが第1のSRv6パケットと呼ばれてもよい。第1のSRv6パケットおよび第2のSRv6パケットは両方ともSRv6パケットであってもよく、いくつかのケースでは別々の異なるSRv6パケットであってもよい。
【0421】
本願では、「少なくとも1つ」という用語は、1つまたは複数を意味する。
【0422】
「~の場合(if)」という用語は、「~のとき」(「when」または「upon」)、「~の判定に応答して」、または「~の検出に応答して」という意味として解釈されてよいことをさらに理解されたい。同様に、文脈に従って、「~と判定された場合」または「(定められた条件またはイベント)が検出された場合」という表現は、「~と判定されたとき」「~の判定に応答して」、「(定められた条件またはイベント)が検出されたとき」、または「(定められた条件またはイベント)の検出に応答して」という意味に解釈されてよい。
【0423】
前述の説明は単なる本願の特定の実施形態にすぎず、本願の保護範囲を限定することを意図するものではない。本願において開示された技術的範囲内で当業者が容易に考え出すあらゆる均等な修正または置換は、本願の保護範囲に含まれるものとする。したがって、本願の保護範囲は特許請求の範囲の保護範囲に従うものとする。
【0424】
前述の実施形態の全部または一部は、ソフトウェア、ハードウェア、ファームウェア、またはその任意の組み合わせを用いることにより実現されてよい。ソフトウェアを用いて実現する場合、実施形態の全部または一部がコンピュータプログラム製品の形態で実現されてよい。コンピュータプログラム製品には、1つまたは複数のコンピュータプログラム命令が含まれている。このコンピュータプログラム命令がコンピュータにロードされて、ここで実行される場合、本願の実施形態による手順または機能は、全てまたは部分的に生成される。コンピュータは、汎用コンピュータ、専用コンピュータ、コンピュータネットワーク、または他のプログラム可能型装置であってもよい。コンピュータ命令は、コンピュータ可読記憶媒体に格納されてもよく、あるコンピュータ可読記憶媒体から別のコンピュータ可読記憶媒体に伝送されてもよい。例えば、コンピュータプログラム命令は、有線方式または無線方式で、あるウェブサイト、コンピュータ、サーバ、またはデータセンタから、別のウェブサイト、コンピュータ、サーバ、またはデータセンタへ伝送されてよい。コンピュータ可読記憶媒体は、コンピュータがアクセス可能な任意の使用可能な媒体であっても、1つまたは複数の使用可能な媒体を統合した、サーバまたはデータセンタなどのデータストレージデバイスであってもよい。使用可能な媒体は、磁気媒体(例えば、フロッピディスク、ハードディスク、または磁気テープ)、光媒体(例えば、デジタルビデオディスク(digital video disc、DVD))、または半導体媒体(例えば、ソリッドステートドライブ)などであってもよい。
【0425】
当業者であれば、実施形態の段階の全部または一部が、ハードウェア、または関連するハードウェアに指示を与えるプログラムにより実現され得ることを理解するであろう。プログラムは、コンピュータ可読記憶媒体に格納されてよい。記憶媒体には、読み出し専用メモリ、磁気ディスク、または光ディスクが含まれてよい。
【0426】
前述の説明は、単なる本願の任意選択の実施形態にすぎず、本願を限定することを意図するものではない。本願の趣旨および原理から逸脱することなく行われるあらゆる修正、均等な置換、または改良は、本願の保護範囲に含まれるはずである。
[他の可能な項目]
[項目1]
SRv6サービス機能チェーンでパケットを転送する方法であって、前記方法が、
サービス機能転送器SFFが第1のインターネットプロトコルバージョン6を介したセグメントルーティングSRv6パケットを受信する段階であって、前記第1のSRv6パケットの宛先アドレスにはエンドポイント貫通セグメントID End.PT.SIDが含まれており、前記End.PT.SIDが、セグメントルーティングヘッダSRHを取り除くことなく前記第1のSRv6パケットをサービス機能SFデバイスに転送するよう前記SFFに指示するのに用いられる、受信する段階と、
前記SFFが前記End.PT.SIDおよび前記第1のSRv6パケットに基づいて第2のSRv6パケットを生成する段階であって、前記第2のSRv6パケットには制御フラグが含まれており、前記制御フラグが、前記第2のSRv6パケットにおいて前記制御フラグの後に続くインターネットプロトコルバージョン6 IPv6拡張ヘッダをオフセットするよう前記SFデバイスに指示するのに用いられ、前記第2のSRv6パケットの前記IPv6拡張ヘッダにはSRHが含まれている、生成する段階と、
前記SFFが前記第2のSRv6パケットを前記SFデバイスに送信する段階と
を備えている、方法。
[項目2]
前記制御フラグがさらに、前記SFFにパケットを戻すプロセスにおいて、前記IPv6拡張ヘッダを戻すよう前記SFデバイスに指示するのに用いられ、前記SFFが前記第2のSRv6パケットを前記SFデバイスに送信する前記段階の後に、前記方法がさらに、
前記SFFが前記SFデバイスから第3のSRv6パケットを受信する段階であって、前記第3のSRv6パケットには前記IPv6拡張ヘッダが含まれており、前記第3のSRv6パケットおよび前記第2のSRv6パケットが同じSRHを有している、受信する段階と、
前記SFFが前記第3のSRv6パケットの前記SRHに基づいて前記第3のSRv6パケットに対して転送処理を行う段階と
を備えている、項目1に記載の方法。
[項目3]
前記第2のSRv6パケットにはホップバイホップオプションヘッダが含まれており、前記ホップバイホップオプションヘッダには前記制御フラグが含まれている、項目1または2に記載の方法。
[項目4]
前記ホップバイホップオプションヘッダにはタイプ-長さ-値TLVが含まれており、前記TLVが前記制御フラグを搬送するのに用いられる、項目3に記載の方法。
[項目5]
前記制御フラグが、前記第2のSRv6パケットの前記SRHをオフセットするよう前記SFデバイスに指示するのに用いられる、または
前記制御フラグが、前記第2のSRv6パケットの前記SRHと前記SRH以外の別のIPv6拡張ヘッダとをオフセットするよう前記SFデバイスに指示するのに用いられ、前記第2のSRv6パケットにおいて前記別のIPv6拡張ヘッダが前記制御フラグの後に続く、項目1から4のいずれか一項に記載の方法。
[項目6]
前記第2のSRv6パケットにはさらにターゲット情報が含まれており、前記ターゲット情報とは、前記SFデバイスがサービス処理を行うときに用いる必要がある情報であり、前記ターゲット情報が、
前記SFFが前記第1のSRv6パケットの前記SRHから前記ターゲット情報を取得する方式、または
前記SFFが前記第1のSRv6パケットの前記SRHからサービス情報を取得し、前記サービス情報に基づいてマッピング関係情報に照会して前記ターゲット情報を取得する方式であって、前記マッピング関係情報が前記サービス情報と前記ターゲット情報との対応関係を格納している、取得する方式
で取得される、項目1に記載の方法。
[項目7]
前記ターゲット情報にはサービス機能チェーンSFCメタデータおよび仮想プライベートネットワークID VPN IDのうちの少なくとも一方が含まれている、または
前記サービス情報にはSFCメタデータおよびVPN IDのうちの少なくとも一方が含まれている、項目6に記載の方法。
[項目8]
前記ターゲット情報および前記制御情報が前記第2のSRv6パケットの同じTLVに位置している、項目6または7に記載の方法。
[項目9]
SRv6サービス機能チェーンでパケットを処理する方法であって、前記方法が、
サービス機能SFデバイスが第2のインターネットプロトコルバージョン6を介したセグメントルーティングSRv6パケットをサービス機能転送器SFFから受信する段階であって、前記第2のSRv6パケットには制御フラグが含まれており、前記制御フラグが、前記第2のSRv6パケットにおいて前記制御フラグの後に続くインターネットプロトコルバージョン6 IPv6拡張ヘッダをオフセットするよう前記SFデバイスに指示するのに用いられ、前記第2のSRv6パケットの前記IPv6拡張ヘッダにはセグメントルーティングヘッダSRHが含まれている、受信する段階と、
前記SFデバイスが前記制御フラグに基づいて前記第2のSRv6パケットの前記IPv6拡張ヘッダをオフセットする段階と
を備えている、方法。
[項目10]
前記制御フラグがさらに、前記SFFにパケットを戻すプロセスにおいて、前記IPv6拡張ヘッダを戻すよう前記SFデバイスに指示するのに用いられ、前記方法がさらに、
前記SFデバイスが前記制御フラグに基づいて前記SFFに第3のSRv6パケットを送信する段階を備えており、前記第3のSRv6パケットには前記IPv6拡張ヘッダが含まれており、前記第3のSRv6パケットおよび前記第2のSRv6パケットが同じSRHを有している、項目9に記載の方法。
[項目11]
前記第2のSRv6パケットにはホップバイホップオプションヘッダが含まれており、前記ホップバイホップオプションヘッダには前記制御フラグが含まれている、項目9または10に記載の方法。
[項目12]
前記ホップバイホップオプションヘッダにはタイプ-長さ-値TLVが含まれており、前記TLVが前記制御フラグを搬送するのに用いられる、項目11に記載の方法。
[項目13]
前記制御フラグが、前記第2のSRv6パケットの前記SRHをオフセットするよう前記SFデバイスに指示するのに用いられる、または
前記制御フラグが、前記第2のSRv6パケットの前記SRHと前記SRH以外の別のIPv6拡張ヘッダとをオフセットするよう前記SFデバイスに指示するのに用いられ、前記第2のSRv6パケットにおいて前記別のIPv6拡張ヘッダが前記制御フラグの後に続く、項目9から12のいずれか一項に記載の方法。
[項目14]
前記SFデバイスが前記制御フラグに基づいて前記第2のSRv6パケットの前記IPv6拡張ヘッダをオフセットする前記段階の後に、前記方法がさらに、
前記SFデバイスがサービス処理を行う段階を備えている、項目9に記載の方法。
[項目15]
前記第2のSRv6パケットにはさらにターゲット情報が含まれており、前記ターゲット情報とは、前記SFデバイスが前記サービス処理を行うときに用いる必要がある情報であり、サービス処理を行う前記段階が、
前記ターゲット情報に基づいて前記サービス処理を行う段階を含んでいる、項目14に記載の方法。
[項目16]
前記ターゲット情報にはサービス機能チェーンSFCメタデータおよび仮想プライベートネットワークID VPN IDのうちの少なくとも一方が含まれている、項目15に記載の方法。
[項目17]
前記ターゲット情報および前記制御情報が前記第2のSRv6パケットの同じTLVに位置している、項目15または16に記載の方法。
[項目18]
SRv6サービス機能チェーンでパケットを転送する方法であって、前記方法が、
サービス機能転送器SFFが第1のインターネットプロトコルバージョン6を介したセグメントルーティングSRv6パケットを受信する段階であって、前記第1のSRv6パケットの宛先アドレスにはエンドポイント貫通セグメントID End.PT.SIDが含まれており、前記End.PT.SIDが、セグメントルーティングヘッダSRHを取り除くことなく前記第1のSRv6パケットをサービス機能SFデバイスに転送するよう前記SFFに指示するのに用いられる、受信する段階と、
前記SFFが前記End.PT.SIDおよび前記第1のSRv6パケットに基づいて第2のSRv6パケットを生成する段階であって、前記第2のSRv6パケットのインターネットプロトコルバージョン6 IPv6拡張ヘッダにはSRHが含まれている、生成する段階と、
前記SFFが前記第2のSRv6パケットを前記SFデバイスの第1のインタフェースに送信する段階であって、前記SFデバイスが、前記第1のインタフェースを通じて受信したパケットのIPv6拡張ヘッダをオフセットするように構成されている、送信する段階と
を備えている、方法。
[項目19]
SRv6サービス機能チェーンでパケットを処理する方法であって、前記方法が、
サービス機能SFデバイスが第2のインターネットプロトコルバージョン6を介したセグメントルーティングSRv6パケットを第1のインタフェースを通じてサービス機能転送器SFFから受信する段階であって、前記SFデバイスが、前記第1のインタフェースを通じて受信したパケットのインターネットプロトコルバージョン6 IPv6拡張ヘッダをオフセットするように構成されており、前記第2のSRv6パケットの前記IPv6拡張ヘッダにはセグメントルーティングヘッダSRHが含まれている、受信する段階と、
前記SFデバイスが前記第2のSRv6パケットの前記IPv6拡張ヘッダをオフセットする段階と
を備えている、方法。
[項目20]
SRv6サービス機能チェーンでパケットを転送する方法であって、前記方法が、
サービス機能転送器SFFが第1のインターネットプロトコルバージョン6を介したセグメントルーティングSRv6パケットを受信する段階であって、前記第1のSRv6パケットの宛先アドレスにはエンドポイント貫通セグメントID End.PT.SIDが含まれており、前記End.PT.SIDが、セグメントルーティングヘッダSRHを取り除くことなく前記第1のSRv6パケットをサービス機能SFデバイスに転送するよう前記SFFに指示するのに用いられる、受信する段階と、
前記SFFが前記End.PT.SIDおよび前記第1のSRv6パケットに基づいて第2のSRv6パケットを生成する段階であって、前記第2のSRv6パケットのインターネットプロトコルバージョン6 IPv6拡張ヘッダにはSRHが含まれている、生成する段階と、
前記SFFが前記第2のSRv6パケットを前記SFデバイスに送信する段階であって、前記SFデバイスが、アクセス制御リストACLのマッチング条件を満たしているパケットのIPv6拡張ヘッダをオフセットするように構成されている、送信する段階と
を備えている、方法。
[項目21]
SRv6サービス機能チェーンでパケットを処理する方法であって、前記方法が、
サービス機能SFデバイスが第2のインターネットプロトコルバージョン6を介したセグメントルーティングSRv6パケットをサービス機能転送器SFFから受信する段階であって、前記SFデバイスが、アクセス制御リストACLのマッチング条件を満たしているパケットのインターネットプロトコルバージョン6 IPv6拡張ヘッダをオフセットするように構成されており、前記第2のSRv6パケットの前記IPv6拡張ヘッダにはセグメントルーティングヘッダSRHが含まれている、受信する段階と、
前記SFデバイスが、前記第2のSRv6パケットが前記ACLの前記マッチング条件を満たしていると判定する段階と、
前記SFデバイスが前記第2のSRv6パケットの前記IPv6拡張ヘッダをオフセットする段階と
を備える、方法。
[項目22]
サービス機能転送器SFFであって、前記SFFが、
第1のインターネットプロトコルバージョン6を介したセグメントルーティングSRv6パケットを受信するように構成された受信モジュールであって、前記第1のSRv6パケットの宛先アドレスにはエンドポイント貫通セグメントID End.PT.SIDが含まれており、前記End.PT.SIDが、セグメントルーティングヘッダSRHを取り除くことなく前記第1のSRv6パケットをサービス機能SFデバイスに転送するよう前記SFFに指示するのに用いられる、受信モジュールと、
前記End.PT.SIDおよび前記第1のSRv6パケットに基づいて第2のSRv6パケットを生成するように構成された生成モジュールであって、前記第2のSRv6パケットには制御フラグが含まれており、前記制御フラグが、前記第2のSRv6パケットにおいて前記制御フラグの後に続くインターネットプロトコルバージョン6 IPv6拡張ヘッダをオフセットするよう前記SFデバイスに指示するのに用いられ、前記第2のSRv6パケットの前記IPv6拡張ヘッダにはSRHが含まれている、生成モジュールと、
前記第2のSRv6パケットを前記SFデバイスに送信するように構成された送信モジュールと
を備えている、SFF。
[項目23]
サービス機能SFデバイスであって、前記SFデバイスが、
第2のインターネットプロトコルバージョン6を介したセグメントルーティングSRv6パケットをサービス機能転送器SFFから受信するように構成された受信モジュールであって、前記第2のSRv6パケットには制御フラグが含まれており、前記制御フラグが、前記第2のSRv6パケットにおいて前記制御フラグの後に続くインターネットプロトコルバージョン6 IPv6拡張ヘッダをオフセットするよう前記SFデバイスに指示するのに用いられ、前記第2のSRv6パケットの前記IPv6拡張ヘッダにはセグメントルーティングヘッダSRHが含まれている、受信モジュールと、
前記制御フラグに基づいて前記第2のSRv6パケットの前記IPv6拡張ヘッダをオフセットするように構成された処理モジュールと
を備えている、SFデバイス。
[項目24]
サービス機能転送器SFFであって、前記SFFが、
第1のインターネットプロトコルバージョン6を介したセグメントルーティングSRv6パケットを受信するように構成された受信モジュールであって、前記第1のSRv6パケットの宛先アドレスにはエンドポイント貫通セグメントID End.PT.SIDが含まれており、前記End.PT.SIDが、セグメントルーティングヘッダSRHを取り除くことなく前記第1のSRv6パケットをサービス機能SFデバイスに転送するよう前記SFFに指示するのに用いられる、受信モジュールと、
前記End.PT.SIDおよび前記第1のSRv6パケットに基づいて第2のSRv6パケットを生成するように構成された生成モジュールであって、前記第2のSRv6パケットのインターネットプロトコルバージョン6 IPv6拡張ヘッダにはSRHが含まれている、生成モジュールと、
前記第2のSRv6パケットを前記SFデバイスの第1のインタフェースに送信するように構成された送信モジュールであって、前記SFデバイスが前記第1のインタフェースを通じて受信したパケットのIPv6拡張ヘッダをオフセットするように構成されている、送信モジュールと
を備えている、SFF。
[項目25]
サービス機能SFデバイスであって、前記SFデバイスが、
第2のインターネットプロトコルバージョン6を介したセグメントルーティングSRv6パケットをサービス機能転送器SFFから第1のインタフェースを通じて受信するように構成された受信モジュールであって、前記SFデバイスが、前記第1のインタフェースを通じて受信したパケットのインターネットプロトコルバージョン6 IPv6拡張ヘッダをオフセットするように構成されており、前記第2のSRv6パケットの前記IPv6拡張ヘッダにはセグメントルーティングヘッダSRHが含まれている、受信モジュールと、
前記第2のSRv6パケットの前記IPv6拡張ヘッダをオフセットするように構成された処理モジュールと
を備えている、SFデバイス。
[項目26]
サービス機能転送器SFFであって、前記SFFが、
第1のインターネットプロトコルバージョン6を介したセグメントルーティングSRv6パケットを受信するように構成された受信モジュールであって、前記第1のSRv6パケットの宛先アドレスにはエンドポイント貫通セグメントID End.PT.SIDが含まれており、前記End.PT.SIDが、セグメントルーティングヘッダSRHを取り除くことなく前記第1のSRv6パケットをサービス機能SFデバイスに転送するよう前記SFFに指示するのに用いられる、受信モジュールと、
前記End.PT.SIDおよび前記第1のSRv6パケットに基づいて第2のSRv6パケットを生成するように構成された生成モジュールであって、前記第2のSRv6パケットのインターネットプロトコルバージョン6 IPv6拡張ヘッダにはSRHが含まれている、生成モジュールと、
前記第2のSRv6パケットを前記SFデバイスに送信するように構成された送信モジュールであって、前記SFデバイスが、アクセス制御リストACLのマッチング条件を満たしているパケットのIPv6拡張ヘッダをオフセットするように構成されている、送信モジュールと
を備えている、SFF。
[項目27]
サービス機能SFデバイスであって、前記SFデバイスが、
第2のインターネットプロトコルバージョン6を介したセグメントルーティングSRv6パケットをサービス機能転送器SFFから受信するように構成された受信モジュールであって、前記SFデバイスが、アクセス制御リストACLのマッチング条件を満たしているパケットのインターネットプロトコルバージョン6 IPv6拡張ヘッダをオフセットするように構成されており、前記第2のSRv6パケットの前記IPv6拡張ヘッダにはセグメントルーティングヘッダSRHが含まれている、受信モジュールと、
前記第2のSRv6パケットが前記ACLの前記マッチング条件を満たしていると判定するように構成された判定モジュールと、
前記第2のSRv6パケットの前記IPv6拡張ヘッダをオフセットするように構成された処理モジュールと
を備えている、SFデバイス。
[項目28]
サービス機能転送器SFFであって、前記SFFがプロセッサと物理インタフェースとを備えており、前記プロセッサが、前記SFFが項目1から8、項目18、および項目20のいずれか一項に記載の方法を行うのを可能にする命令を実行するように構成されており、前記物理インタフェースがパケットを受信するまたは送信するように構成されている、SFF。
[項目29]
サービス機能SFデバイスであって、前記SFデバイスがプロセッサと物理インタフェースとを備えており、前記プロセッサが、前記SFデバイスが項目9から17、項目19、および項目21のいずれか一項に記載の方法を行うのを可能にする命令を実行するように構成されており、前記物理インタフェースがパケットを受信するまたは送信するように構成されている、SFデバイス。
[項目30]
ネットワークシステムであって、前記システムがサービス機能転送器SFFとサービス機能SFデバイスとを備えており、前記SFFが項目1から8、項目18、および項目20のいずれか一項に記載の方法を行うように構成されており、前記SFデバイスが項目9から17、項目19、および項目21のいずれか一項に記載の方法を行うように構成されている、ネットワークシステム。
[項目31]
コンピュータ可読記憶媒体であって、前記記憶媒体が少なくとも1つの命令を格納しており、前記命令がプロセッサにより読み出されると、サービス機能転送器SFFが項目1から8、項目18、および項目20のいずれか一項に記載の方法を行う、コンピュータ可読記憶媒体。
[項目32]
コンピュータ可読記憶媒体であって、前記記憶媒体が少なくとも1つの命令を格納しており、前記命令がプロセッサにより読み出されると、サービス機能SFデバイスが項目9から17、項目19、および項目21のいずれか一項に記載の方法を行う、コンピュータ可読記憶媒体。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24