本願は、2020年4月24日に中国国家知的所有権庁に出願され、「SRV6の信頼領域境界フィルタリングの方法および装置」と題された中国特許出願第202010333905.6号に対する優先権を主張し、2020年4月2日に中国国家知的所有権庁に出願され、「SRV6の信頼領域に基づく境界フィルタリングの方法および装置」と題された中国特許出願第202010256371.1号に対する優先権を主張する。両出願は、その全体においてここに参照によって組み込まれる。
技術分野
本願は、通信分野に関し、特にパケット転送方法および装置に関する。
インターネットプロトコル・バージョン6を通じたセグメント・ルーティング(Segment Routing over Internet Protocol Version 6、SRv6)技術では、インターネットプロトコル・バージョン6(internet protocol version 6、IPv6)パケットを転送することにセグメント・ルーティング(segment routing、SR)が適用されうる。
現在、SRv6技術を使用してパケットを転送する際にセキュリティ・リスクが存在する。
本願の実施形態は、攻撃パケットによって占有されるSRv6の信頼領域のネットワーク資源を大幅に削減するためのパケット転送方法を提供する。
第1の側面によれば、本願のある実施形態は、パケット転送方法を提供する。この方法は、SRv6の信頼領域内のエッジ・ノードによって実行されうる。信頼領域の外の場所からSRv6パケットを受信するとき、信頼領域におけるエッジ・ノードが、SRv6パケットを検証し、SRv6パケットが検証に合格したときにSRv6パケットを転送することがある。この方法は以下を含む:信頼領域におけるエッジ・ノードは第1のパケットを受信し、第1のパケットはSRv6パケットであり、第1のパケットの宛先アドレスはバインディング・セグメント識別子(binding segment ID、BSID)である。第1のパケットを受信した後、信頼領域におけるエッジ・ノードは第1のパケット内のBSIDと第1のパケットのセグメント・ルーティング・ヘッダ(segment routing header、SRH)内のターゲット・フィールドに基づいて第1のパケットを検証し、第1のパケットが検証に失敗したときに第1のパケットを破棄してもよい。本願のこの実施形態では、信頼領域の外のノードは、BSIDを使用することによって信頼領域にアクセスすることが要求されるだけでなく、第1のパケットが、セグメント・ルーティング・ヘッダ内のターゲット・フィールドを参照して検証される必要がある。信頼領域内のエッジ・ノードが、BSIDを使用することによってのみ、第1のパケットに対して境界フィルタリングを実行する解決策と比較して、本願のこの実施形態の解決策は、攻撃パケットを効果的に識別し、検証に失敗する大量の攻撃パケットを適時に破棄し、攻撃パケットによって占有される信頼領域のネットワーク資源を効果的に削減し、SRv6技術を使用することによってパケットを転送することによって引き起こされるセキュリティ・リスクを効果的に低減することができる。
本願に記載されるSRv6信頼領域は、SRv6セキュリティ領域と称されることもある。
ある実装では、エッジ・ノードは、制御管理装置によって示されるように、第1のパケットを、BSIDおよび第1のパケットのSRH内のターゲット・フィールドに基づいて検証することができる。具体的には、エッジ・ノードは、制御管理装置からセキュリティ保護ポリシーを受信することができ、ここで、セキュリティ保護ポリシーは、エッジ・ノードに、BSIDおよびSRH内のターゲット・フィールドに基づいて第1のパケットを検証することを指示する。
ある実装では、SRv6パケットが信頼領域を通して転送される必要があるとき、信頼領域は、信頼領域内のSRv6パケットの転送経路を示すBSIDを提供することがある。よって、BSIDの次ホップSIDは、理論的に、信頼領域の外側のノードが、信頼領域と直接対話することを示す。よって、ターゲット・フィールドはBSIDの次ホップSIDを含むことがある。エッジ・ノードは、BSIDの次ホップSIDを使用して、第1のパケットが有効な宛先ノードに転送されるかどうかを決定してもよく、またはエッジ・ノードは、BSIDを使用して、第1のパケットが信頼領域に対する攻撃を引き起こすかどうかを決定してもよい。
ある実装では、SIDリスト内のBSIDおよびN個のSIDを含む第1のSIDリストが、エッジ・ノードから宛先ノードへの第1のパケットの転送経路を示してもよく、または、第1のSIDリストは、エッジ・ノードから第1のノードへの第1のパケットの転送経路を示してもよく、ここで、第1のノードは、エッジ・ノードと宛先ノードとの間のノードである。よって、ターゲット・フィールドはSIDリストにおけるN個のSIDを含んでいてもよい。このように、エッジ・ノードは、第1のSIDリストを検証し、第1のSIDリストによって示される経路が有効な経路であることが保証される場合にのみ、第1のパケットを転送してもよく、それにより、SIDリストによって示される経路上に含まれるノードがネットワーク攻撃を回避できる。
ある実装では、信頼領域外のノードが信頼領域にSRv6パケットを転送する必要があるとき、信頼領域は、信頼領域内のSRv6パケットの転送経路を示すBSIDを提供してもよい。この場合、SRv6パケットのSRHは、BSIDの次ホップSIDを含まない。言い換えると、BSIDはSRv6パケットの転送経路を示す最後のSIDである。この場合、SRv6パケット内のSLフィールドの値は0である。したがって、ターゲット・フィールドは残りセグメントSLフィールドを含んでいてもよく、信頼領域に転送されるSRv6パケットが正常に信頼領域に転送されることを保証する。
ある実装では、ターゲット・フィールドがBSIDの次ホップSIDを含む場合、エッジ・ノードが第1のパケット内のBSIDとセグメント・ルーティング・ヘッダSRH内のターゲット・フィールドに基づいて第1のパケットを検証する特定の実装において、エッジ・ノードは、BSIDが信頼領域内であることを判別し、ターゲット・フィールドが有効なネットワーク・セグメント内であるかどうかを判別してもよい。第1のパケットの有効な宛先ノードは、有効なネットワーク・セグメントに位置する。BSIDの次ホップSIDが有効なネットワーク・セグメントにある場合、そのことは、BSIDの次ホップSIDによって示されるノードが第1のパケットの有効な宛先ノードであることを示す。すなわち、BSIDによって示された経路を通じて転送された後、第1のパケットは第1のパケットの有効な宛先ノードに転送される。この場合、第1のパケットが検証を通過すると考えられてもよい。対応して、BSIDの次ホップSIDが有効なネットワーク・セグメントにない場合、そのことは、BSIDによって示される経路を通じて転送された後、第1のパケットは第1のパケットの有効な宛先ノードに転送されず、他のノードに転送されることを示す。この場合、BSIDの次ホップSIDが改竄された可能性がある。したがって、第1のパケットが他のノードへの攻撃を引き起こす可能性がある。したがって、BSIDの次ホップSIDが有効なネットワーク・セグメントにない場合、第1のパケットは検証に失敗する。
ある実装では、SRv6パケットが転送されるとき、パケットの宛先ノードを示すSIDは、ノードのSIDであってもよいし、またはノード上に配備されたVPNインスタンスのSIDであってもよい。VPNインスタンスのSIDは、略してVPN SIDと呼ばれる。SRHのSIDリストは、宛先ノードのSIDと、宛先ノード上に配備されているVPN SIDの両方を含んでいてもよい。ノードについては、ノードのSIDとノードのVPN SIDの両方が、ノードのロケーター・ルートによって示されるネットワーク・セグメントにある。ノードのロケーター・ルートとは、ノードのSIDが属するネットワーク・セグメント・ルートをいう。よって、有効なネットワーク・セグメントは、有効な宛先ノードのロケーター・ルートによって示されてもよい。このようにして、BSIDの次ホップSIDがノードSIDであるかVPN SIDであるかにかかわらず、第1のパケットが改竄されたかどうかが、有効なネットワーク・セグメントを使用することによって判定できる。
ある実装では、有効なネットワーク・セグメントは、セキュリティ保護ポリシーにおいて制御管理装置によって含められ、エッジ・ノードに送られてもよい。
ある実装では、有効なネットワーク・セグメントはエッジ・ノードにおいて静的に設定される。
ある実装では、ターゲット・フィールドがBSIDの次ホップSIDを含む場合、第1のパケットによる信頼領域への攻撃を避けるために、エッジ・ノードは、たとえば、BSIDが信頼領域内にあるかどうかを判定することができる。次いで、エッジ・ノードは、BSIDの次ホップSIDが第1のネットワーク・セグメント内にあるかどうかを判定する。ここで、信頼領域内のノードが第1のネットワーク・セグメントに属する。BSIDの次ホップSIDが第1のネットワーク・セグメントにある場合、そのことは、BSIDの次ホップSIDによって示されるノードが信頼領域内のノードであることを示す。すなわち、BSIDによって示された経路を通して転送された後、第1のパケットは信頼領域を離れず、信頼領域内で転送され続ける。この場合、BSIDの次ホップSIDが改竄された可能性がある。したがって、第1のパケットは、おそらく、信頼領域内のノードに対するネットワーク攻撃を引き起こしうる。よって、BSIDの次ホップSIDが第1のネットワーク・セグメントにある場合、第1のパケットは検証に失敗する。対応して、BSIDの次ホップSIDが第1のネットワーク・セグメントにない場合、そのことは、BSIDによって示される経路を通して転送された後、第1のパケットは信頼領域を離れ、信頼領域の外の別のノードに転送されることを示す。この場合、第1のパケットが検証に合格すると考えられてもよい。
ある実装では、第1のネットワーク・セグメントは、セキュリティ保護ポリシーにおいて制御管理装置によって含められ、エッジ・ノードに送られてもよい。
ある実装では、第1のネットワーク・セグメントは、エッジ・ノード内で静的に構成される。
ある実装では、ターゲット・フィールドがBSIDの次ホップSIDを含む場合、エッジ・ノードはSIDリストをあらかじめ記憶していてもよく、エッジ・ノードに記憶されたSIDリストが有効な経路を示す。具体的には、エッジ・ノードは、一つまたは複数のSIDリストをあらかじめ記憶していてもよく、1つのSIDリストが1つの有効な経路を示す。エッジ・ノードは、第1のSIDリストを、ローカルに記憶された諸SIDリストと比較してもよい。ローカルに記憶されたSIDリストが第1のSIDリストを含む場合、そのことは、第1のSIDリストによって示される経路が有効な経路であることを示す。したがって、エッジ・ノードは、第1のパケットが検証に合格することを判別しうる。逆に、ローカルに記憶されたSIDリストが第1のSIDリストを含まない場合、第1のパケットは検証に失敗すると判断される。
ある実装では、エッジ・ノードに記憶されたSIDリストは、セキュリティ保護ポリシーを使用することによって、制御管理装置によってエッジ・ノードに送達されてもよい。
ある実装では、エッジ・ノードに記憶されたSIDリストは、エッジ・ノードにおいて静的に構成されていてもよい。
ある実装では、ターゲット・フィールドがBSIDの次ホップSIDを含むとき、エッジ・ノードはいくつかのハッシュ値をあらかじめ記憶していてもよい。エッジ・ノードにおいて記憶されているハッシュ値は、有効な経路に対応するSIDリストに対してハッシュ演算を実行することによって得られる。この場合、エッジ・ノードは、第1のSIDリストに対してハッシュ演算を実行して、第1のハッシュ値を得ることができる。第1のハッシュ値を得た後、エッジ・ノードは、ローカルに記憶されているいくつかのハッシュ値を探索して、それらローカルに記憶されているハッシュ値が、計算された第1のハッシュ値を含むかどうかを判定してもよい。ローカルに記憶されたハッシュ値が第1のハッシュ値を含む場合、そのことは、第1のSIDリストによって示される経路が有効な経路であることを示す。よって、第1のパケットが検証に合格すると判定されてもよい。逆に、ローカルに記憶されたハッシュ値が第1のハッシュ値を含まない場合、第1のパケットが検証に失敗すると判断される。
ある実装では、第1のパケットは、第1のフィールドを含んでいてもよく、第1のフィールドは、検証されるべきSIDの数を示してもよい。第1のパケットを受信した後、エッジ・ノードは第1のパケットをパースして第1のフィールドの値を得て、さらにBSIDとSRH内のN個のSIDとを取得し、BSIDとSRH内のN個のSIDに基づいて第1のパケットを検証する。
ある実装では、ターゲット・フィールドがSLフィールドを含む場合、エッジ・ノードが第1のパケット内のBSIDとセグメント・ルーティング・ヘッダSRH内のターゲット・フィールドに基づいて第1のパケットを検証する特定の実装では、エッジ・ノードは、BSIDが信頼領域内にあることを判別し、ターゲット・フィールドの値が0であるかどうかを判定してもよい。ターゲット・フィールドの値が0である場合、そのことは、第1のパケットが、信頼領域の外の場所から信頼領域に転送される有効なパケットであることを示す。よって、第1のパケットが検証を合格すると判定されてもよい。ターゲット・フィールドの値が0でない場合、第1のパケットが検証に失敗すると判断されてもよい。
ある実装では、エッジ・ノードは、さらに、第2のパケットを受信してもよい。第2のパケットは第1のパケットに似ており、第2のパケットもSRv6パケットであり、第2のパケットの宛先アドレスは前記BSIDである。第2のパケットを受信した後、エッジ・ノードは第2のパケットを検証してもよい。エッジ・ノードが第1のパケットを検証するのと同様に、エッジ・ノードは、第2のパケット内のBSIDと第2のパケットのSRH内のターゲット・フィールドに基づいて、第2のパケットを検証し、第2のパケットが検証に合格したときに、第2のパケットを転送してもよい。第2のパケットの検証中に、BSIDが検証されるだけでなく、ターゲット・フィールドも検証される。したがって、検証に合格する第2のパケットは、有効なパケットと見なされ、信頼領域を通じて第2のパケットを転送することは、セキュリティ・リスクをもたらさない。本願のこの実施形態において提供される解決策は、SRv6技術を使用してパケットを転送することによって引き起こされるセキュリティ・リスクを低減することができる。
第2の側面によれば、本願のある実施形態は、パケット転送方法を提供する。この方法は、信頼領域内のエッジ・ノードが、第1のパケットを受信し、第1のパケットはSRv6パケットであり、第1のパケットの宛先アドレスがバインディング・セグメント識別子BSIDであり;エッジ・ノードが、第1のパケット内のBSIDと、第1のパケットのセグメント・ルーティング・ヘッダSRH内のターゲット・フィールドに基づいて、第1のパケットを検証し;エッジ・ノードが、検証に合格する第1のパケットを転送する、ことを含む。本願のこの実施形態では、信頼領域の外のノードは、BSIDを使用することによって信頼領域にアクセスすることが要求されるだけでなく、第1のパケットが、セグメント・ルーティング・ヘッダ内のターゲット・フィールドを参照して検証される必要がある。第1のパケットをBSIDのみを使用して検証する解決策と比較して、この解決策は、第1のパケットを検証する際により多くの要因を考慮する。つまり、SRv6パケットが信頼領域を通じて転送されることを許容するための検証基準が、より厳格である。よって、SRv6技術を使用してパケットを転送することによって引き起こされるセキュリティ・リスクが低減される。
第3の側面によれば、本願の実施形態は、転送制御方法を提供する。この方法は以下を含む:制御管理装置が、セキュリティ保護ポリシーを取得する。セキュリティ保護ポリシーは、信頼領域内のエッジ・ノードに、受信されたSRv6パケットをBSIDとSRH内のターゲット・フィールドとに基づいて検証することを指示する。制御管理装置は、セキュリティ保護ポリシーを信頼領域のエッジ・ノードに送信する。本願のこの実施形態では、制御管理装置は、信頼領域内のエッジ・ノードに、受信されたSRv6パケットを、BSIDおよびSRH内のターゲット・フィールドに基づいて検証することを指示するために、セキュリティ保護ポリシーを送達する。第1のパケットをBSIDのみを使用して検証する解決策と比較して、この解決策は、第1のパケットを検証する際により多くの要因を考慮する。つまり、SRv6パケットが信頼領域を通じて転送されることを許容するための検証基準が、より厳格である。よって、SRv6技術を使用してパケットを転送することによって引き起こされるセキュリティ・リスクが低減できる。
ある実装では、制御管理装置は、経路計算要素通信プロトコルPCEPメッセージを使用することにより、信頼領域内のエッジ・ノードにセキュリティ保護ポリシーを送信してもよい。たとえば、セキュリティ保護ポリシーを搬送するために、PCEPメッセージにおいて新しいオブジェクトが拡張される、または既存のオブジェクトにおいて新しいTLVフィールドが拡張される。
ある実装では、制御管理装置は、境界ゲートウェイ・プロトコルBGPメッセージを使用して、信頼領域内のエッジ・ノードにセキュリティ保護ポリシーを送信してもよい。たとえば、セキュリティ保護ポリシーを運ぶために、拡張属性がBGPメッセージに追加されてもよく、または、新しいTLVフィールドが既存の属性において拡張されてもよい。既存の属性は、たとえば、境界ゲートウェイ・プロトコル・フロー仕様BGP FS属性であってもよい。
ある実装では、制御管理装置は、ネットワーク構成プロトコルNETCONFパケットを使用して、信頼領域内のエッジ・ノードにセキュリティ保護ポリシーを送信してもよい。
ある実装では、制御管理装置は、単純ネットワーク管理プロトコルSNMPパケットを使用して、信頼領域内のエッジ・ノードにセキュリティ保護ポリシーを送信してもよい。
ある実装では、ターゲット・フィールドはBSIDの次ホップSIDを含む;ターゲット・フィールドはフィールド識別子SIDリストにおいてN個のSIDを含み、N個のSIDにおける最初のSIDはBSIDの次ホップSIDであり、N個は1以上である;または、ターゲット・フィールドは残りセグメントSLを含む。
ある実装では、Nが1より大きい場合、N個のSIDはSIDリストにおけるN個の連続するSIDである。
ある実装では、ターゲット・フィールドがBSIDの次ホップSIDを含む場合、セキュリティ保護ポリシーは、信頼領域内の有効なBSIDおよび有効なネットワーク・セグメントを担持する。
ある実装では、信頼領域内の有効なBSIDおよび有効なネットワーク・セグメントは、BGP FSの拡張属性において搬送されてもよい。たとえば、信頼領域内の有効なBSIDは、BGP FSの拡張属性タイプ17において搬送され、有効なネットワーク・セグメントはBGP FSの拡張属性タイプ18において搬送される。
ある実装では、ターゲット・フィールドがBSIDの次ホップSIDを含む場合、セキュリティ保護ポリシーは、信頼領域内の有効なBSIDおよび第1のネットワーク・セグメントを担持する。
ある実装では、信頼領域内の有効なBSIDおよび第1のネットワーク・セグメントは、BGP FSの拡張属性において担持されてもよい。たとえば、信頼領域内の有効なBSIDは、BGP FSの拡張属性タイプ17において担持され、第1のネットワーク・セグメントはBGP FSの拡張属性タイプ18において担持される。
ある実装では、ターゲット・フィールドがセグメント識別子SIDリストにおけるN個のSIDを含む場合、セキュリティ保護ポリシーは、有効な経路を示すSIDリストを担持し、SIDリストは信頼領域における有効なBSIDを含む。
ある実装では、有効な経路を示すSIDリストは、BGP FSメッセージの拡張属性において担持されてもよい。たとえば、有効な経路を示すSIDリストは、BGP FSメッセージの拡張属性タイプ19において担持されてもよい。
第4の側面によれば、本願のある実施形態は、通信インターフェースおよび該通信インターフェースに接続されたプロセッサを含むエッジ・ノードを提供する。エッジ・ノードは、通信インターフェースおよびプロセッサを使用することによって、第1の側面または第1の側面の実装のいずれか1つによる方法を実行する、または第2の側面または第2の側面の実装のいずれか1つによる方法を実行するように構成される。
第5の側面によれば、本願のある実施形態は、通信インターフェースおよび該通信インターフェースに接続されたプロセッサを含む制御管理装置を提供する。制御管理装置は、通信インターフェースおよびプロセッサを使用することによって、第3の側面または第3の側面の可能な実装のいずれか1つによる方法を実行するように構成される。
第6の側面によれば、本願のある実施形態は、エッジ・ノードを提供する。エッジ・ノードは、メモリおよびプロセッサを含む。メモリはプログラム・コードを記憶するように構成される。プロセッサは、プログラム・コード内の命令を実行して、エッジ・ノードが第1の側面または第1の側面の可能な実装のいずれか1つによる方法を実行できるようにする、またはエッジ・ノードが第2の側面または第2の側面の可能な実装のいずれか1つによる方法を実行できるようにするように構成される。
第7の側面によれば、本願の実施形態は、制御管理装置を提供する。制御管理装置は、メモリおよびプロセッサを含む。メモリはプログラム・コードを記憶するように構成される。プロセッサは、プログラム・コード内の命令を実行して、制御管理装置が第3の側面または第3の側面の可能な実装のいずれか1つによる方法を実行できるようにするように構成される。
第8の側面によれば、本願のある実施形態は、コンピュータ読み取り可能な記憶媒体を提供する。コンピュータ読み取り可能記憶な媒体は命令を記憶する。命令がコンピュータ上で実行されると、コンピュータは、第1の側面または第1の側面の可能な実装のいずれか1つによる方法を実行できるようにされる、コンピュータは、第2の側面または第2の側面の可能な実装のいずれか1つによる方法を実行できるようにされる、またはコンピュータは、第3の側面または第3の側面の可能な実装のいずれか1つによる方法を実行できるようにされる。
第9の側面によれば、本願のある実施形態は、通信システムを提供する。通信システムは、エッジ・ノードおよび制御管理装置を含む。制御管理装置は、第3の側面または第3の側面の可能な実装のいずれか1つによる方法を実行するように構成される。
第10の側面によれば、本願のある実施形態は、通信システムを提供する。通信システムは、エッジ・ノードおよび制御管理装置を含む。エッジ・ノードは、第1の側面または第1の側面の可能な実装のいずれか1つによる方法を実行するように構成される、またはエッジ・ノードは、第2の側面または第2の側面の可能な実装のいずれか1つによる方法を実行するように構成される。
本願の実施形態または従来技術における技術的解決策をより明確に記述するために、以下では実施形態または従来技術を説明するために使用される添付の図面を簡単に説明する。以下の説明における添付の図面は、本願のいくつかの実施形態を示すものであり、当業者が創造的努力なしにこれら添付の図面から他の図面を引き出しうることは明らかである。
本願のある実施形態によるSRv6パケットの概略構造図である。
本願のある実施形態によるパケット転送方法の概略図である。
本願のある実施形態によるネットワークの概略構造図である。
本願のある実施形態による別のネットワークの概略構造図である。
本願のある実施形態による別のネットワークの概略構造図である。
本願のある実施形態による別のSRv6パケットの概略構造図である。
本願のある実施形態によるパケット転送方法の概略フローチャートである。
本願のある実施形態によるパケット転送方法の概略フローチャートである。
本願のある実施形態によるパケット転送方法の概略フローチャートである。
本願のある実施形態による転送制御方法の概略フローチャートである。
本願のある実施形態によるエッジ・ノードの概略構造図である。
本願のある実施形態による制御管理装置の概略構造図である。
本願のある実施形態によるエッジ・ノードの概略構造図である。
本願のある実施形態による制御管理装置の概略構造図である。
本願のある実施形態によるエッジ・ノードの概略構造図である。
本願のある実施形態による制御管理装置の概略構造図である。
本願の実施形態は、SRv6技術を使用してパケットを転送する際に存在するセキュリティ・リスクを低減するためのパケット転送方法を提供する。
理解を容易にするために、SRv6技術を使用してパケットを転送することについて最初に簡単に説明する。
SRv6技術がパケットを転送するために使われるとき、ヘッド・ノードがパケット転送経路を指定し、トランジット・ノードが、パケットが宛先ノードに転送されるまで、ヘッド・ノードによって指定された転送経路に基づいてパケット転送を案内する。SRv6技術を使用して転送されるパケットは、SRv6パケットとも呼ばれる。具体的には、理解のために図1を参照する。図1は、本願のある実施形態によるSRv6パケットの概略構造図である。図1に示されるように、SRv6パケットは、IPv6ヘッダ(IPv6 header)101、セグメント・ルーティング・ヘッダ102、およびペイロード103を含む。セグメント・ルーティング・ヘッダ102は、パケット転送経路を示すセグメント識別子リスト(segment identifier list、SIDリスト)を含む。ある実装では、SIDリストはいくつかのノードSIDを含んでいてもよく、たとえば、いくつかのIPv6アドレスを含んでいてもよい。ノードSIDは、パケット転送プロセスにおいて通過されるノードを示す。さらに別の実装では、SIDリストは、いくつかの隣接リンクSIDを含んでいてもよく、隣接リンクSIDは、パケットが転送されるときに通る隣接リンクを示す。隣接リンクは、2つのノード間の直接リンクを指す。さらに別の実装では、SIDリストは、ノードSIDおよび隣接リンクSIDをさらに含んでいてもよい。
IPv6ヘッダ101は宛先アドレス(destination address、DA)フィールド(図1には示さず)を含む。DAフィールドの値は、SRv6パケット転送中に変化する。SRH 102は、残りセグメント(segment left、SL)フィールド(図1には示さず)を含む。SLフィールドは、SIDリストにおける、処理されていないSIDの数を示す。SLは0からの番号である。SLの値がmであるとき、SIDリスト内の未処理のSIDの数は(m+1)であり、セグメント・リストsegment list[m]が処理中である。SIDリスト内のSIDを処理するとは、SIDによって示されるノードにパケットを転送することを意味する。SLの値がmに等しいとき、IPv6ヘッダ101における宛先アドレスはsegment list[m]である。SRv6パケットを転送するとき、ヘッド・ノードとトランジット・ノードは、SLフィールドの値とSIDリストに基づいて、パケット転送のための次ホップ宛先ノードを決定できる。具体的には、トランジット・ノードがSRv6パケットを受信した後、もしSRv6パケット内の宛先アドレスがそのトランジット・ノードのアドレスであるなら、トランジット・ノードはSLフィールドの値から1を引いて、1を引くことによって得られるSLフィールドの値をインデックスとして使って、パケットが転送される次ホップ宛先ノードを決定し、パケットが転送される次ホップ宛先ノードを決定した後、宛先アドレス・フィールドの値を、決定された次ホップ宛先ノードのIPv6アドレスに修正してもよい。
図2を参照すると、以下は、ヘッド・ノードおよびトランジット・ノードがSRv6技術を使用してパケットを転送する具体的な仕方を説明する。図2は、本願のある実施形態によるパケット転送方法の概略図である。図2に示されるように、ヘッド・ノード201は、パケットがノード202およびノード203を順番に通過し、宛先ノード204に転送されることを決定する。ヘッド・ノード201によって取得されたSRv6パケットのSRHは、SIDリストを担持する。SIDリストは3つのIPv6アドレスを含む:segment list[2]において担持されるアドレス2、segment list[1]において担持されるアドレス3、およびsegment list[0]において担持されるアドレス4である。アドレス2はノード202のアドレスであり、アドレス3はノード203のアドレスであり、アドレス4はノード204のアドレスである。SRv6パケットを取得した後、ヘッド・ノード201は、SRv6パケットの宛先アドレスをアドレス2に修正し、SLフィールドの値を2に修正する。次いで、ノード201は、修正されたSRv6パケットをノード202に転送する。ノード202によって受信されたSRv6パケットはSIDリストを含み、SLフィールドの値は2に等しい。SRv6パケットを受信した後、ノード202は、宛先アドレスがノード202のアドレスであることを判別する。よって、ノード202は、SLフィールドの値から1を減算して1を得て、1をインデックスとして使用することによって、パケット転送のための次ホップ宛先ノードが、segment list[1]において担持されるアドレス3によって示されるノード203であることを判別し、SRv6パケットの宛先アドレスをアドレス3に修正する。次いで、ノード202は、SRv6パケットをノード203に転送する。同様に、ノード203によって受信されたSRv6パケットはSIDリストを含み、SLフィールドの値は1に等しい。SRv6パケットを受信した後、ノード203は、宛先アドレスがノード203のアドレスであることを判別する。よって、ノード203は、SLフィールドの値から1を減算して0を得て、0をインデックスとして使用することによって、パケット転送のための次ホップ宛先ノードが、segment list[0]において担持されるアドレス3によって示されるノード204であることを判別し、SRv6パケットの宛先アドレスをアドレス4に修正し、SRv6パケットをノード204に転送して、パケット転送を完了する。
ノード201、ノード202、ノード203、およびノード204はすべて、SRv6技術をサポートするノードである。ノード201がSRv6パケットをノード202に転送するプロセスにおいて、SRv6パケットは、図2には示されていないいくつかの他のノードを通過してもよい。さらに、図2は、SRH 102がノードSIDを担持する例を用いて記述されている。しかしながら、SRH 102は隣接リンクSIDを担持する、またはSRH 102はノードSIDおよび隣接リンクSIDを担持する。具体的なパケット転送方法の仕方は、SRH 102において担持されるノードSIDの転送の仕方と同じであり、詳細は、ここでは再度説明されない。
いくつかの実施形態では、イーサネットパケットの長さが適正な範囲内である必要があることを考慮して、SIDリストが比較的大量のデータを占有する場合、ペイロード103のデータ量が影響を受ける。ペイロード103のデータ量が小さくなるほど、ネットワーク全体のネットワーク性能により大きな影響を与える。よって、ノード201によって取得されたSRv6パケット内のSIDリストは、アドレス2を含まなくてもよく、それにより、SIDリストによって占有されるデータの量が低減される。このシナリオでは、ノード201によって取得されたSRv6パケット内のSLフィールドの値は、まだ2である。SRv6パケット転送中において、SIDリストがアドレス2を含まない場合、そのようなSRv6パケット転送モードは、Reduce〔リデュース〕モードと呼ばれることもある。対応して、SIDリストがアドレス2を含む場合、そのようなSRv6パケット転送モードは、普通モードと呼ばれることもある。
前述の記述から、パケットがSRv6技術を使用して転送される場合、トランジット・ノードはSIDリストに基づいてパケットを転送するが、SIDリストを検証しないことがわかる。この場合、ネットワーク・ハッカーが、ネットワーク攻撃を実行するために悪意をもってSIDリストを改竄し、ネットワーク・セキュリティに影響する可能性がある。
現在、ネットワーク攻撃を避けるために、SRv6信頼領域が定義されてもよい。信頼領域は、ネットワーク攻撃を避けるネットワーク範囲を示す。信頼領域は、複数の仕方で決定でき、たとえばネットワーク・シナリオに基づいて決定されてもよい。たとえば、ネットワーク内のコア・ネットワーク部分が信頼領域として指定される。あるいはまた、信頼領域は、サービス・タイプに基づいて決定されてもよい。たとえば、特定のサービス・パケットを送信するネットワーク範囲が、信頼領域として決定される。具体的には、信頼領域が攻撃されないことを保証するために、アクセス制御リスト(access control list、ACL)トラフィック・フィルタリング・ポリシーが、信頼領域内のエッジ・ノードまたはトランジット・ノードにおいて構成されてもよい。たとえば、信頼領域内のエッジ・ノードは、受信されたSRv6パケットを検証する。もしSRv6パケットの宛先アドレスが信頼領域内のノードのアドレスであれば、エッジ・ノードはSRv6パケットを破棄する。別の例では、信頼領域内のトランジット・ノードは、受信されたSRv6パケットを検証する。もしSRv6パケットの送信元アドレスが信頼領域の外のノードのアドレスであれば、トランジット・ノードはSRv6パケットを破棄する。このように、信頼領域外のSRv6パケットは、信頼領域に送信されることができない。信頼領域で生成されたSRv6パケットだけが転送され、信頼領域が攻撃されることが防止される。信頼領域におけるエッジ・ノードは、信頼領域外のノードと直接通信するノードである。信頼領域におけるトランジット・ノードは、エッジ・ノード以外のノードである。
いくつかの実施形態では、SRv6パケットは、信頼領域を通して転送される必要がある。たとえば、信頼領域外のSRv6パケットが信頼領域に転送される必要がある、または、第1の領域で生成されたSRv6パケットが信頼領域を通じて第2の領域に転送される必要がある。ここで、第1の領域と第2の領域は、前記信頼領域とは異なる。この場合、どのようにしてネットワーク・セキュリティを保証するかが、現在解決すべき緊急の課題である。
本願の発明者は、信頼領域のセキュリティを確保するために、信頼領域のネットワーク・トポロジーの漏洩を防ぎ、信頼領域が攻撃される可能性を減らすことを見出す。SRv6パケットが信頼領域を通じて転送される必要があるとき、SRv6パケットはBSIDを使用して信頼領域にアクセスできる。BSIDは、転送経路を同定することができる。
具体的には、一例では、制御管理装置が、信頼領域内の転送経路を同定するBSIDを生成することができる。対応して、SRv6パケットの転送経路を計算する際に、制御管理装置は、BSIDを含むSIDリストを取得することができる。また、BSID生成後、制御管理装置は、BSIDとBSIDによって示される転送経路との間の対応を信頼領域内のエッジ・ノードに送ってもよく、それにより、信頼領域内のエッジ・ノードは、SRv6パケットをチェックし、SRv6パケットが検証に合格した場合に、信頼領域においてパケットを転送する。別の例では、信頼領域におけるエッジ・ノードがBSIDを生成し、BSIDとBSIDによって示される転送経路との間の対応を制御管理装置に送信してもよく、それにより、SRv6パケットの転送経路を計算するとき、制御管理装置は、BSIDを含むSIDリストを取得する。本願の実施形態で言及される制御管理装置は、たとえば、ネットワーク管理ソフトウェアが実行される装置であってもよく、または、たとえば、コントローラであってもよい。これは、本願のこの実施形態において特に限定されない。
BSIDと、BSIDによって示される転送経路との間の対応については、ここでは記述のための例が使用される:BSID 1は信頼領域内の転送経路1を示し、その対応は、たとえば、BSID 1と転送経路1を示すSIDリストとの間の対応であってもよい。これは、次の表1を参照して理解されうる。
表1に示されるように、BSID 1によって示される転送経路は、ノード1、ノード2、ノード3を順に通過する経路である。表1は、理解を容易にするために示されているだけであり、本願のこの実施形態に対する制限を構成しない。
図3aを参照して、以下では、信頼領域内のエッジ・ノードがBSIDに基づいてSRv6パケットを検証し、信頼領域内のエッジ・ノードが検証に合格するSRv6パケットを信頼領域内で転送する具体的な実装について説明する。
図3aは、本願のある実施形態によるネットワークの概略構造図である。図3aに示されるように、ノードR1は第1の領域100内のノードであり、ノードR2およびノードR4は信頼領域200におけるエッジ・ノードであり、ノードR5は第2の領域300内のノードである。ノードR2はノードR1と直接通信することができ、ノードR4はノードR5と直接通信することができる。ノードR6、ノードR7、およびノードR8はみな、信頼領域200内のノードである。いくつかの実施形態では、第1の領域100および第2の領域300も、信頼領域として定義されてもよい。
本願のこの実施形態では、信頼領域200は、アクセス・ネットワーク、ベアラ・ネットワーク、コア・ネットワーク、オペレーター・ネットワーク、またはキャンパス・ネットワークに属してもよい。これは、本願のこの実施側面において特に限定されない。一例では、信頼領域200はオペレーター・ネットワークに属してもよく、ノードR2は、セル・サイト・ゲートウェイ(cell site gateway、CSG)装置として顧客設備室に配備され、第1の領域100は、企業ネットワークに属し、ノードR1は、顧客施設装置(customer premise equipment、CPE)装置である。
図3aに示されるシナリオでは、ヘッド・ノードR1は、BSIDを含むSRv6パケットを取得する。SRv6パケットを転送するとき、ノードR1は、SRv6パケットの宛先アドレスをBSIDに修正し、修正されたパケットを信頼領域200内のノードR2に転送する。SRv6パケットを受信した後、ノードR2は、SRv6パケットの宛先アドレスを使用することによってSRv6パケットを検証し、宛先アドレスが信頼領域200内の有効なBSIDである場合、SRv6パケットが検証に合格することを決定する。具体的には、SRv6パケット中の宛先アドレスがアドレスAであるとすると、ノードR2は、たとえば、ローカルに記憶されたBSIDリストにおいてアドレスAを検索することができる。アドレスAが存在すれば、そのことは、アドレスAが信頼領域における有効なBSIDであることを示す。この場合、ノードR2は、信頼領域においてSRv6パケットを転送する。ノードR2にローカルに記憶されたBSIDリストは、信頼領域における有効なBSIDを含む。
SRv6パケットを転送するとき、ノードR2はSRv6パケットを再カプセル化し、BSIDを、転送経路を示すSIDリストに変換し、該SIDリストをSRv6パケットにおけるSRHのSIDリストにカプセル化してもよい。このようにして、SRv6パケットは信頼領域において転送される。
本願のこの実施形態では、ノードR2は、複数のカプセル化態様でSRv6パケットを再カプセル化することができる。具体的なカプセル化態様は、SRv6パケットの転送態様に関係する。以下は、ノードR2がSRv6パケットを再カプセル化するための2つの可能な実装を説明する。
ある実装では、SRv6パケットがトンネルに基づいて転送される場合、SRv6パケットを再カプセル化するとき、ノードR2は、IPv6ヘッダおよびSRHをもとのIPv6ヘッダおよびもとのSRHに追加してもよい。もとのIPv6ヘッダと宛先アドレス・フィールドともとのSRHにおけるSLフィールドは、従来技術と同じ技術を用いて更新される。追加されたIPv6ヘッダの送信元アドレスはノードR2のアドレスであり、宛先アドレスはBSIDに対応するSIDリストにおける次ホップSIDである。
理解のために図3bを参照する。図3bは、本願のある実施形態による別のネットワークの概略構造図である。図3bに示されるように、ノードR1によって取得されたSRv6パケットでは、IPv6ヘッダ301において担持される送信元アドレスはノードR1のアドレスであり、宛先アドレスはノードR2のアドレスである。SRH 302内のSIDリスト・フィールドは、(R5,R2,…)を含む。R2は、信頼領域内のBSIDであり、BSIDによって示される経路は、ノードR2、ノードR3、およびノードR4を順に通過する転送経路である。SIDリスト・フィールドにおける省略記号は、SRv6パケットがノードR1によって他のノードから受信される場合に有効であり、ノードR1より前のSRv6パケットの転送経路を示す。SIDリスト・フィールドにおけるR5は、ノードR5のSIDである。ノードR1がSRv6パケットを取得するとき、SLフィールドの値は2である。SLフィールドの値を1に修正した後、ノードR1はノードR2にSRv6パケットを送信する。SRv6パケットを受信した後、ノードR2は、BSIDに対応するSIDリストをローカルに探す。見つかったSIDリストは(R3,R4)である。SIDリストにおけるR3はノードR3のSIDであり、SIDリストにおけるR4はノードR4のSIDである。ノードR2は、追加されたSRH 303において、見つかったSIDリストをカプセル化する。図3bに示されるように、SRH 303内のSLフィールドの値は1に等しく、ノードR2は、SLフィールドの値に基づいて、宛先アドレスがR3であると判断する。よって、ノードR2は、追加されたIPv6ヘッダ304における宛先アドレスをR3に修正し、パケット・ヘッダ304の送信元アドレスをR2に修正する。もとのIPv6ヘッダ301では、送信元アドレスはR1であり、宛先アドレスはR5である。もとのSRH 302におけるSLフィールドの値は0である。SRv6パケットが信頼領域200において転送されるとき、IPv6ヘッダ301における送信元アドレス・フィールドと宛先アドレス・フィールドの内容は変わらないままであり、SRH 302におけるSLフィールドの値も変わらないままである。SRv6パケットがR4ノードに転送された後、R4ノードはSRH 303からIPv6ヘッダ304を除去し、R4ノードはSRH 302に基づいてSRv6パケットを転送し続ける。
別の実装では、SRv6パケットがトンネルに基づいて転送されない場合、SRv6パケットを再カプセル化するとき、ノードR2は、もとのSRHにおいて、BSIDに対応するSIDリストを直接含める。
理解のために図3cを参照する。図3cは、本願のある実施形態による別のネットワークの概略構造図である。図3cおよび図3bにおける同じ部分については、図3bの前述の説明を参照されたい。詳細は、ここでは再度説明しない。図3cに示されるように、ノードR2は、BSID 302に対応するSIDリスト(R3,R4)をSRHに直接含める。IPv6ヘッダ301において、送信元アドレスはR1であり、宛先アドレスはR3である。SRv6パケットがノードR4に転送された後、R4はSRv6パケットをノードR5に転送することに進む。
ヘッド・ノードがBSIDを使用して信頼領域にアクセスする上記の仕方は、信頼領域のネットワーク・トポロジーが開示されないことをある程度、保証することができる。しかしながら、信頼領域におけるエッジ・ノードは、BSIDのみを検証し、SIDリスト内の他のSIDを検証しない。この場合、SIDリスト内の他のSIDが改竄された場合でも、ネットワークが攻撃される可能性がある。たとえば、理解のために図3aを参照されたい。SRv6パケットの有効な宛先ノードはノードR5であると想定される。SRv6パケット内のSIDリスト内のあるSIDが、ノードR5が信頼領域200内の別のノードのSIDに改竄されたことを示す場合、信頼領域200のセキュリティが影響を受ける。SRv6パケット内のSIDリスト内のあるSIDが、ノードR5が第2の領域300内の別のノードのSIDに改竄されたことを示す場合、第2の領域300のセキュリティが影響を受ける。
本願の発明者は、さらに別の実装では、SRHが改竄されるのを防止するために、鍵関連のハッシュベースのメッセージ認証コード(hashed-based message authentication code、HMAC)チェックが、信頼領域内のエッジ・ノードにおいて構成されてもよいことを見出す。HMAC演算は、鍵とデータを入力として使用し、データを固定長のデータ・ダイジェストに圧縮する。具体的には、理解のために図4を参照する。図4は、本願のある実施形態によるSRv6パケットの概略構造図である。図4に示されるように、セグメント・ルーティング・ヘッダSRHは、HMAC鍵IDフィールドおよびHMACフィールドを含む。HMAC鍵IDフィールドは、HMACチェックにおいて使用される鍵およびハッシュ・アルゴリズムを同定し、4バイトを含む。HMACフィールドはSRv6パケットにおける特定フィールドのデータ・ダイジェストを示し、32バイトを含む。該特定フィールドは、たとえば、図4に示される送信元アドレス(source address、SA)フィールド、最終エントリー(英語:last entry)フィールド、フラグ(英語:flags)フィールド、SIDリスト・フィールド、およびHMAC鍵IDフィールドを含む。図4に示されるSRv6パケットのフィールドは、本明細書では詳細に説明しない。
図4に示されるSRv6パケットでは、SAフィールドは16バイトを含み、最終エントリー・フィールドは1バイトを含み、フラグ・フィールドは1バイトを含み、SIDリスト・フィールドは3つのフィールド識別子、すなわち、segment list[2]、segment list[1]、およびsegment list[0]を含み、これらは合計48バイトを占める。HMACフィールドの値は、HMAC鍵IDによって示される鍵およびハッシュ・アルゴリズムを使用して前記特定フィールドを含む70バイトのデータを計算することによって得られるデータ・ダイジェストである。特定フィールドの総バイト数は、SIDリスト・フィールドに含まれるSIDの数に基づいて決定されてもよい。ここでは図4を参照して説明するだけだが、特定フィールドの総バイト数は70バイトに限定されない。
ある具体的な実装では、SRHが改竄されるのを防ぐためにHMACチェックが使われるとき、信頼領域の外のヘッド・ノードが鍵およびハッシュ・アルゴリズムを記憶していてもよい。SRv6パケットを生成するとき、信頼領域の外側のノードは、鍵、ハッシュ・アルゴリズム、および特定フィールドを使用することによってHMACを計算して、図4に示される構造を有するSRv6パケットを得て、該SRv6パケットを信頼領域内のエッジ・ノードに転送することができる。鍵およびハッシュ・アルゴリズムは、信頼領域におけるエッジ・ノードにあらかじめ記憶されていてもよい。SRv6パケットを受信した後、信頼領域内のエッジ・ノードは、HMAC鍵IDフィールドをパースし、HMAC鍵IDをインデックスとして使用して、HMACチェックのために使用される鍵およびハッシュ・アルゴリズムを検索する。次いで、信頼領域内のエッジ・ノードは、見つかった鍵およびハッシュ・アルゴリズムに基づいて、受信されたSRv6パケットにおける特定フィールドを計算して、データ・ダイジェストを得る。エッジ・ノードは、計算されたデータ・ダイジェストをSRv6パケットにおけるHMACフィールドの値と比較する。両者が同じなら、そのことは、SRv6パケットが改竄されていないことを示し、エッジ・ノードはそのパケットを転送を続けてもよい。両者が異なる場合、そのことは、SRv6パケットが改竄されていることを示し、エッジ・ノードはパケットを破棄してもよい。この場合、信頼領域外のヘッド・ノードが信頼されるノードとみなされる可能性があることに注意するべきである。鍵およびハッシュ・アルゴリズムをもつヘッド・ノードが積極的にパケットを改竄する場合、ネットワーク全体のセキュリティは保証できない。
いくつかの実施形態では、鍵およびハッシュ・アルゴリズムを有するヘッド・ノードが攻撃されたときに生じるネットワーク全体のセキュリティに対する脅威を避けるために、代替的に、制御管理装置がHMACを計算して、HMACをヘッド・ノードに送達してもよい。これは、本願のこの実施形態において特に限定されない。
上記の態様は、SRv6パケットが改竄されないことを保証することができるが、鍵およびハッシュ・アルゴリズムは、信頼領域内のエッジ・ノードにあらかじめ記憶される必要がある。鍵とハッシュ・アルゴリズムのセキュリティは、検証結果の信頼性にとって特に重要であるため、鍵とハッシュ・アルゴリズムのセキュリティを保護するために、追加的な保護施策が必要とされる。一般に、信頼領域内のエッジ装置は、小型の転送装置であり、限られたデータ処理能力をもつ。鍵とハッシュ・アルゴリズムのセキュリティの保護は、エッジ装置の比較的大量の計算資源を消費する。この場合、SRv6パケットが改竄されているかどうかを検証するために上記の態様が使用されると、信頼領域におけるエッジ装置のパフォーマンスが影響を受ける。結果として、上記の態様はおそらく使用されないことがありうる。
よって、信頼領域におけるエッジ・ノードの性能を保証しながら、SRv6技術を使用してパケットを転送する際に存在するセキュリティ・リスクをいかに最小化するかが、現在解決されるべき緊急の問題である。
この問題を解決するために、本願の実施形態は、パケット転送方法を提供する。以下は、図3aに示されるネットワークアーキテクチャーを参照して、本願の実施形態において提供されるパケット転送方法を説明する。図5は、本願のある実施形態によるパケット転送方法の概略フローチャートである。図5に示される方法100は、たとえば、S101、S102、およびS103aを使用することによって、またはS101、S102、およびS103bを使用することによって実装されうる。
S101:ノードR2が第1のパケットを受信する。ここで、第1のパケットはSRv6パケットであり、第1のパケットの宛先アドレスはBSIDである。
ノードR2については、図3aの前述の説明を参照されたい。詳細は、ここでは再度説明しない。SRv6パケットおよびSRv6パケットの宛先アドレスについては、SRv6パケットおよびSRv6パケット転送プロセスの前述の説明を参照されたい。詳細は、ここでは再度説明しない。
本願のこの実施形態では、第1のパケットは、信頼領域の外側のノードによってノードR2に送信され、信頼領域の外側のノードは、たとえば、図3aに示されるノードR1であってもよい。
本願のこの実施形態では、信頼領域のネットワーク・トポロジー・セキュリティを保証するために、信頼領域の外のノードは、信頼領域内の有効なBSIDを使用することによってのみ、信頼領域にアクセスすることができる。
S102:ノードR2が、前記BSIDと第1のパケットのSRH内のターゲット・フィールドとに基づいて、第1のパケットを検証する。
ノードR2が第1のパケットを受信した後、ネットワーク攻撃を避けるために、ノードR2は、第1のパケットが攻撃パケットであるかどうかを判定するために、第1のパケットを検証してもよい。具体的には、第1のパケットが検証に合格するとき、そのことは、第1のパケットが攻撃パケットではないことを示す。よって、ノードR2は、S103aにおける第1のパケットを転送するステップ、すなわち、信頼領域を横切る第1のパケットの転送を許容するステップを実行してもよい。第1のパケットが検証に失敗するときは、そのことは、第1のパケットが攻撃パケットかもしれないことを示す。この場合、第1のパケットが信頼領域を通じて転送されたら、信頼領域または別のネットワーク(たとえば、図3aに示される第2の領域300)に対してネットワーク攻撃が引き起こされる可能性がある。よって、ノードR2は、S103bにおいて、第1のパケットを破棄するステップを実行してもよい。
本願のこの実施形態において、ある側面では、信頼領域の外のノードは、信頼領域内の有効なBSIDを使用することによってのみ、信頼領域にアクセスすることができる。よって、第1のパケットが攻撃パケットであるかどうかは、第1のパケットの宛先アドレスが信頼領域内の有効なBSIDであるかどうかに基づいて決定されてもよい。別の側面では、SRv6パケットのSRHがパケット転送を案内するための鍵情報、たとえばSIDリストを含むことを考慮して、第1のパケットが攻撃パケットであるかどうかは、鍵情報を検証することによって決定されうる。よって、ノードR2は、第1のパケットにおけるBSIDと第1のパケットのSRH内のターゲット・フィールドとに基づいて、第1のパケットを検証することができる。
本願のこの実施形態のある実装では、ノードR2は、制御管理装置によって指示されるようにS102を実行してもよい。具体的には、制御管理装置は、セキュリティ保護ポリシーをノードR2に送信してもよい。ここで、セキュリティ保護ポリシーは指示情報を伝達し、該指示情報は、受信されたSRv6パケットを検証することをノードR2に指示する。具体的には、指示情報は、ノードR2に、受信されたSRv6パケット中のBSIDとSRH中のターゲット・フィールドに基づいてSRv6パケットを検証することを指示する。具体的には、制御管理装置は、ネットワーク構成プロトコル(Network Configuration Protocol、NETCONF)、簡易ネットワーク管理プロトコル(Simple Network Management Protocol、SNMP)、経路計算要素通信プロトコル(Path Computation Element Communication Protocol、PCEP)、境界ゲートウェイ・プロトコル(Border Gateway Protocol、BGP)などを用いて、ノードR2にセキュリティ保護ポリシーを送信してもよい。ある具体的な実装では、セキュリティ保護ポリシーは、境界ゲートウェイ・プロトコル・フロー仕様(Border Gateway Protocol Flow Specification、BGP FS)ルートを使用して送信されてもよい。
以下は、BGP FSルートについて説明する。
BGP FSルートは新しいBGPネットワーク層到達可能性情報と新しい拡張コミュニティ属性を含む。新しいネットワーク層到達可能性情報と新しい拡張コミュニティ属性を使うことによって、BGP FSルートは、対応するBGP FS規則を搬送することができ、BGP FS規則もトラフィック制御ポリシーとして考慮されてもよい。具体的には、BGP FS規則は、トラフィック・マッチング条件とトラフィック・マッチング後の対応するトラフィック処理アクションを含みうる。現在、トラフィック・マッチング条件はネットワーク層到達可能性情報としてBGP FSルートで運ばれ、トラフィック処理アクションは拡張コミュニティ属性としてBGP FSルートで運ばれる。現在、16のタイプのトラフィック・マッチング条件(タイプ1ないしタイプ16)がBGP FSにおいて定義されている。16のタイプのトラフィック・マッチング条件は、ここでは詳述しない。S102のある具体的な実装は、ターゲット・フィールドに基づいて決定されうる。S102の具体的な実装は、ターゲット・フィールドによって異なる。以下では、ターゲット・フィールドの具体的な内容と、ターゲット・フィールドに対応するS102の具体的な実装について説明する。
実装1:ターゲット・フィールドはBSIDの次ホップSIDである。
本願のこの実施形態では、一般に、SRv6パケットが信頼領域を通じて転送される必要があるとき、信頼領域は、信頼領域内のSRv6パケットの転送経路を示すBSIDを提供しうる。言い換えれば、BSIDの次ホップSIDは、理論的には、信頼領域と直接対話する、信頼領域外のノードを示す。理解のために図3bを参照する。BSIDの次ホップSIDは、第2の領域300内のノードR5を示す。
いくつかの実施形態において、第1のパケットが改竄されていない有効なパケットである場合、BSIDの次ホップSIDは、第1のパケットの有効な宛先ノードを示しうる。第1のパケットが有効な宛先ノードに正確に転送されることを保証するとともに、他のノードへのネットワーク攻撃を引き起こすことを避けるために、S102のある具体的な実装では、たとえば、ノードR2は、BSIDが信頼領域にあるかどうかを判定することができる。次に、ノードR2は、BSIDの次ホップSIDが、有効なネットワーク・セグメントにあるかどうかを判定する。ここで、第1のパケットの有効な宛先ノードは、該有効なネットワーク・セグメントにある。BSIDの次ホップSIDが有効なネットワーク・セグメントにある場合、そのことは、BSIDの次ホップSIDによって示されるノードが第1のパケットの有効な宛先ノードであることを示す。すなわち、BSIDによって示された経路を通して転送された後、第1のパケットは、第1のパケットの有効な宛先ノードに転送される。この場合、第1のパケットが検証に合格すると考えられてもよい。対応して、BSIDの次ホップSIDが前記有効なネットワーク・セグメントにない場合、そのことは、BSIDによって示される経路を通じて転送された後、第1のパケットは、第1のパケットの有効な宛先ノードに転送されず、他のノードに転送されることを示す。この場合、BSIDの次ホップSIDが改竄された可能性がある。したがって、第1のパケットが他のノードへの攻撃を引き起こす可能性がある。したがって、本願のこの実施形態では、BSIDの次ホップSIDが有効なネットワーク・セグメントにない場合、第1のパケットは検証に失敗する。
本願のこの実施形態では、たとえば、有効なネットワーク・セグメントは、ノードR2内に静的に構成されてもよく、または制御管理装置によってノードR2に送信されてもよい。これは、本願のこの実施形態において特に限定されない。有効なネットワーク・セグメントが制御管理装置によってノードR2に送信される場合、たとえばセキュリティ保護ポリシーをノードR2に送信するとき、制御管理装置は、有効なネットワーク・セグメントをセキュリティ保護ポリシーに含めて、該セキュリティ保護ポリシーをノードR2に送信してもよい。このように、制御管理装置がセキュリティ保護ポリシーおよび第1のネットワーク・セグメントを別々にノードR2に送信する解決策と比較して、この解決策は、制御管理装置とノードR2との間の対話の量を減らし、制御管理装置およびノードR2との入出力(input-output、IO)資源を節約することができる。
上述のように、制御管理装置は、BGP FSルートにセキュリティ保護ポリシーを含めて、該BGP FSルートをノードR2に送信してもよい。さらに、16のタイプのトラフィック・マッチング条件がBGP FSにおいて定義されている。よって、本願のこの実施形態では、BGP FSが拡張される可能性がある。たとえば、トラフィック・マッチング条件タイプ17とトラフィック・マッチング条件タイプ18が追加され、追加されたトラフィック・マッチング条件タイプ17はBSIDを搬送してもよく、追加されたトラフィック・マッチング条件タイプ18は有効なネットワーク・セグメントを搬送してもよい。
いくつかの実施形態では、有効なネットワーク・セグメントに含まれるノードが、第1のパケットの有効な宛先ノードに限定されなくてもよいことを考慮して、ネットワーク・ハッカーが、有効なネットワーク・セグメント内の他のノードへのネットワーク攻撃を引き起こすために第1のパケットを改竄することを防止するために、本願のこの実施形態のある実装では、有効なネットワーク・セグメントのマスクが、可能な限り長く設定されてもよい。一例では、タイプ18は、さらに、有効なネットワーク・セグメントのマスク長を担持してもよい。むろん、タイプ18は、本明細書に一つ一つ記載されていない他の情報をさらに担持していてもよい。
ノードR2がBSIDが信頼領域内にあるかどうかを判定する具体的な実装については、上述の図3aの関連する説明を参照されたい。詳細は、ここでは再度説明しない。
上記の有効なネットワーク・セグメントは、本願のこの実施形態では特に限定されない。実際の適用では、SRv6パケットが転送されるとき、パケットの宛先ノードを示すSIDは、ノードSIDであってもよいし、またはノード上に配備された仮想プライベートネットワーク(virtual private network、VPN)インスタンスのSIDであってもよい。VPNインスタンスのSIDは、略してVPN SIDと呼ばれる。むろん、SRHのSIDリストは、宛先ノードのSIDと、宛先ノードに配備されたVPN SIDの両方を含みうる。ノードについては、ノードのSIDとノードのVPN SIDの両方が、ノードのロケーター・ルートによって示されるネットワーク・セグメントにある。ノードのロケーター・ルートは、ノードのノードSIDが属するネットワーク・セグメント・ルートをいう。よって、ある実施形態では、有効なネットワーク・セグメントは、有効な宛先ノードのロケーター・ルートによって示されてもよい。このようにして、BSIDの次ホップSIDがノードSIDであるかVPN SIDであるかにかかわらず、第1のパケットが改竄されたかどうかは、有効なネットワーク・セグメントを使用することによって決定できる。
以下は、タイプ17とタイプ18を、例を用いて簡単に説明する。なお、制御管理装置がセキュリティ保護ポリシーを送達する関連する解決策は、単に例として記載されており、本願のこの実施形態は、それに限定されるものではないことを理解しておくべきである。
タイプ17は、タイプとBSIDの2つのフィールド、すなわち<type,BSID>を含む。BSIDフィールドは、信頼領域内の有効なBSIDを担持し、タイプ・フィールドは、17の固定値をもつ。
タイプ18のフィールドは、タイプ・フィールド、演算子フィールド、および値フィールド、すなわち<type,[operator,value]+>を担持する。
タイプ・フィールドは18の値をもつ。
値フィールドは、有効なネットワーク・セグメントを担持する。値フィールドは、ネットワーク・プレフィクスとマスク長を含む。ネットワーク・プレフィクスは1バイトを含み、マスク長は16バイトを含む。
演算子フィールドは、それぞれビット0ないしビット7の8ビットを含む。
プラス記号「+」は、[演算子,値]の複数の組み合わせを含めることができることを示す。
演算子フィールドの各ビットの意味は、次の表2に示されている。
E:リスト終端ビット。Eの値は1で、現在の<operator,value>が<operator,value>の最後の組み合わせであることを示す。
A:「and」ビット。aの値が1である場合、そのことは、<operator,value>の現在のフィールドが<operator,value>の前のフィールドと「OR」関係をもつことを示す。aの値が0である場合、そのことは、<operator,value>の現在のフィールドは<operator,value>の前のフィールドと「AND」関係にあることを示す。
リザーブ:「リザーブ」フィールド。
Miss:BSIDの次のホップが、前記値によって示されるネットワーク・セグメント内にない場合に実行される処理アクションを示す。Missの値が0である場合、パケットは転送される。Missの値が1である場合、パケットは破棄される。
Match:BSIDの次のホップが前記値によって示されるネットワーク・セグメント内にある場合に実行される処理アクションを示す。Matchの値が0である場合、パケットは転送される。Matchの値が1であれば、パケットは破棄される。
BSIDおよび有効なネットワーク・セグメントを担持するセキュリティ保護ポリシーについて、ここで例が記載される:サービスについては、信頼領域内の転送経路に関する案内を提供するために、信頼領域の外側のノードについてはBSID b::1が提供される。サービスに対応するサービス・パケットの有効な宛先ノードは、c::1/64のネットワーク・セグメント内にある。信頼領域における境界ノードについては、BGP FSは、セキュリティ保護ポリシーを送達するために使用される。具体的には、次のセキュリティ保護ポリシーは、<0x11,b::1>および<0x12,[0x82,c::1/64]>を含む。
0x11はタイプ17を示す。b::1はノードR2に、受信されたパケット1の宛先アドレスが有効なBSID b::1であるかどうかを検証することを指示する。0x12は、タイプ18を示す。[0x82,c::1/64]は、ノードR2に、BSIDの次ホップSIDがc::1/64によって示されるネットワーク・セグメント内にある場合、パケット1を転送し、それ以外の場合はパケット1を破棄することを指示する。
いくつかの実施形態では、第1のパケットが信頼領域を攻撃することを防止するために、S102のある具体的な実装では、たとえば、ノードR2は、BSIDが信頼領域内にあるかどうかを判定してもよい。次いで、ノードR2は、BSIDの次ホップSIDが第1のネットワーク・セグメント内にあるかどうかを判定する。ここで、信頼領域内のノードは、第1のネットワーク・セグメントに属する。BSIDの次ホップSIDが第1のネットワーク・セグメントにある場合、そのことは、BSIDの次ホップSIDによって示されるノードが信頼領域内のノードであることを示す。すなわち、BSIDによって示される経路を通して転送された後、第1のパケットは信頼領域を離れず、信頼領域において転送され続ける。この場合、BSIDの次ホップSIDが改竄された可能性がある。したがって、第1のパケットは、おそらく、信頼領域内のノードに対するネットワーク攻撃を引き起こしうる。したがって、本願のこの実施形態では、BSIDの次ホップSIDが第1のネットワーク・セグメントにある場合、第1のパケットは検証に失敗する。対応して、BSIDの次ホップSIDが第1のネットワーク・セグメントにない場合、そのことは、BSIDによって示される経路を通じて転送された後、第1のパケットは信頼領域を離れ、信頼領域外の別のノードに転送されることを示す。この場合、第1のパケットが検証に合格すると考えられてもよい。
本願のこの実施形態では、たとえば、第1のネットワーク・セグメントは、ノードR2内で静的に構成されてもよく、または制御管理装置によってノードR2に送信されてもよい。
これは、本願のこの実施形態において特に限定されない。第1のネットワーク・セグメントが制御管理装置によってノードR2に送信される場合、たとえば、セキュリティ保護ポリシーをノードR2に送信するとき、制御管理装置は、セキュリティ保護ポリシーに第1のネットワーク・セグメントを含めて、セキュリティ保護ポリシーをノードR2に送信してもよい。このように、制御管理装置がセキュリティ保護ポリシーおよび第1のネットワーク・セグメントをノードR2に別々に送信する解決策と比較して、この解決策は、制御管理装置とノードR2との間の対話の量を減らし、制御管理装置およびノードR2の入出力IO資源を節約することができる。
上述のように、制御管理装置は、BGP FSルートにセキュリティ保護ポリシーを含めて、BGP FSルートをノードR2に送信してもよい。さらに、16のタイプのトラフィック・マッチング条件がBGP FSで定義されている。よって、本願のこの実施形態では、BGP FSは拡張されてもよく、トラフィック・マッチング条件タイプ17とトラフィック・マッチング条件タイプ18が追加され、追加されたトラフィック・マッチング条件タイプ17はBSIDを担持してもよく、追加されたトラフィック・マッチング条件タイプ18は第1のネットワーク・セグメントを担持する。むろん、タイプ18は、他の情報、たとえば、第1のネットワーク・セグメントのマスク長、をさらに担持してもよく、これは、本明細書では一つ一つ説明されていない。
タイプ17およびタイプ18については、前述の関連説明を参照されたい。詳細は、ここでは再度説明しない。
BSIDおよび第1のネットワーク・セグメントを担持するセキュリティ保護ポリシーについては、ここでは例が記述される:信頼領域200内のあるアドレス範囲が、a::1/64のネットワーク・セグメントに対応する。サービスについては、BSID b::1が、信頼領域の外のノードのために提供され、信頼領域の中の転送経路に関する案内を提供する。信頼領域内の境界ノードについて、BGP FSは、セキュリティ保護ポリシーを送達するために使用される。具体的には、次のセキュリティ保護ポリシーは:<0x11,b::1>および<0x12,[0x81,a::1/64]>を含む。
0x11は、タイプ17を示す。b::1は、ノードR2に、受信されたパケット1の宛先アドレスが有効なBSID b::1であるかどうかを検証することを指示する。0x11は、タイプ18を示す。[0x81,a::1/64]は、ノードR2に、BSIDの次ホップSIDがa::1/64によって示されるネットワーク・セグメントにない場合、パケット1を転送し、それ以外の場合は、パケット1を破棄することを指示する。
ノードR2が、たとえば、BSIDが信頼領域内にあるかどうかを判定しうる具体的な実装については、上述の図3aの関連する説明を参照されたい。詳細は、ここでは再度説明しない。
以上の説明から、実装1においては、SRv6パケットがBSIDを使用して信頼領域にアクセスした後、信頼領域が攻撃されないことが保証されることができる、または第1のパケットが有効な宛先ノードに転送されることができる。それにより、有効な宛先ノード以外のノードが攻撃されるのを防ぐことができる。加えて、鍵およびハッシュ・アルゴリズムの保護は含まれないので、ノードR2の計算資源が節約できる。よって、本願のこの実施形態の解決策によれば、ノードR2の性能を保証することを前提として、SRv6技術を使用してパケットを転送する際に存在するセキュリティ・リスクを可能な限り低減することができる。
実装2:ターゲット・フィールドは、第1のパケットのSRHのSIDリストにおけるN個のSIDである。
本願のこの実施形態では、Nの値は、1以上である。Nが1に等しい場合、SIDはBSIDの次ホップSIDである。Nの値が1より大きい場合、N個のSIDは、SRHのSIDリストにおけるN個の連続するSIDであり、N個のSIDの最初のSIDは、BSIDの次ホップSIDである。換言すれば、BSIDおよびN個のSIDは、第1のSIDリストを形成することができ、第1のSIDリストは、転送経路を示す。本願のこの実施形態では、第1のSIDリストは、ノードR2から宛先ノードへの第1のパケットの完全な転送経路を示してもよく、または第1のSIDリストは、完全な転送経路の一部を示しめしてもよい、すなわち、ノードR2から第1のノードへの第1のパケットの転送経路を示してもよい。第1のノードは、ノードR2と第1のパケットの宛先ノードとの間のノードである。
本願のこの実施形態のある実装では、ターゲット・フィールドがSRHのSIDリスト内のN個のSIDである場合、S102のある具体的な実装では、ノードR2はSIDリストをあらかじめ記憶してもよく、ノードR2に記憶されたSIDリストは有効な経路を示す。具体的には、ノードR2は、一つまたは複数のSIDリストをあらかじめ記憶していてもよく、1つのSIDリストは、1つの有効な経路を示す。ノードR2は、第1のSIDリストを、ローカルに記憶された諸SIDリストと比較してもよい。ローカルに記憶された諸SIDリストが第1のSIDリストを含んでいる場合、そのことは、第1のSIDリストによって示す経路が有効な経路であることを示す。よって、ノードR2は、第1のパケットが検証に合格すると判定してもよい。逆に、ローカルに記憶されたSIDリストが第1のSIDリストを含まない場合、第1のパケットは検証に失敗すると判断される。
ノードR2に記憶されるSIDリストは、次の表3を参照して理解されうる。表3は、2つのSIDリストを示す。表3は、理解を容易にするためにのみ出力され、本願のこの実施形態に対する限定を構成しない。ノードR2に記憶されるSIDリストの量は、表3に示される2つに限定されない。ノードR2に記憶されるSIDリストは、表3に示されるBSID-SID 1-SID 2およびBSID-SID 3に限定されない。
表3に示されるように、ノードR2に記憶されたSIDリストにおけるすべての最初のSIDはBSIDである。本願のこの実施形態のある実装では、ローカルに記憶されたSIDリストが第1のSIDリストを含むことをノードR2が判別する効率を改善するために、SIDリストを記憶するときに、ノードR2は、SIDリスト内の最初のBSIDをSIDリストのインデックスとして記憶してもよい。ローカルに記憶された諸SIDリストが第1のSIDリストを含むかどうかが決定される場合、第1のSIDリストにおけるBSIDは、ローカルに記憶されたSIDリストが第1のSIDリストを含むかどうかを決定するためのインデックスとして使用されうる。
ある実装では、ノードR2に記憶されたSIDリストは、ノードR2において静的に構成されていてもよい。さらに別の実装では、ノードR2に記憶されたSIDリストは、セキュリティ保護ポリシーを使用することによって、制御管理装置によってノードR2に送達されてもよい。
上述のように、制御管理装置は、BGP FSルートにセキュリティ保護ポリシーを含めて、該BGP FSルートをノードR2に送信してもよい。具体的には、BGP FSが拡張されてもよく、トラフィック・マッチング条件タイプ17とトラフィック・マッチング条件タイプ19が追加され、追加されたトラフィック・マッチング条件タイプ17がBSIDを担持してもよく、追加されたトラフィック・マッチング条件タイプ19が検証されるべき他のSIDを担持してもよい。
タイプ17については、上記のタイプ17の説明を参照されたい。詳細は、ここでは再度説明しない。以下は、タイプ19について簡単に説明する。
タイプ18と同様に、タイプ19は、タイプ・フィールド、演算子フィールド、および値フィールド、すなわち、<type,[operator,value]+>を含む。
タイプ・フィールドは19の値をもつ。
値フィールドは、SIDを識別するために使用される。
演算子フィールドは、それぞれビット0ないしビット7の8ビットを含む。
プラス記号「+」は、[演算子,値]の複数の組み合わせを含めることができることを示す。
演算子フィールドにおける各ビットの意味は、次の表4に示される。
E:リスト終端ビット。Eの値は1であり、現在の<operator,value>が<operator,value>の最後の組み合わせであることを示す。
セグメント・リスト番号:SID番号を担持する。
BSIDとN個のSIDとを担持するセキュリティ保護ポリシーについて、ここでは例が記述される:サービスについて、領域内の転送経路に関する案内を提供するために、BSID b::1が、信頼領域の外側のノードのために提供される。転送のための有効な経路は、次の表5に示されるSIDリストによって表されてもよい。
この場合、信頼領域における境界ノードについて、制御管理装置はセキュリティ保護ポリシーを送達するためにBGP FSを使ってもよい。具体的には、セキュリティ保護ポリシーは:<0x11,b::1>、<0x13,[0x00,D1::1]、[0x01,D2::1]、[0x02,D3::1]、[0x83,B::1]を含む。
0x11はタイプ17を示す。b::1が有効なBSIDを示す。0x13は19を示す。[0x00,D1::1]はSegment list[0]=D1::1を同定する。<0x13,[0x01,D2::1]はSegment list[1]=D2::1を示す。[0x02,D3::1]はSegment list[2]=D3::1を示す。[0x83,B::1]はSegment list[3]=B::1を示し、<0x13.[0x83,B::1]は<operator,value>の最後の組み合わせである。
<0x11,b::1>、<0x13,[0x00,D1::1],[0x01,D2::1],[0x02,D3::1]および[0x83,B::1]>を受信した後、ノードR2は、SIDリストを記憶してもよい。SIDリストは、b::1、B::1、D3::1、D2::1、D3::1を含む。
本願のこの実施形態のさらに別の実装では、ターゲット・フィールドがSRHのSIDリストにおけるN個のSIDである場合、S102のある具体的な実装では、ノードR2は、いくつかのハッシュ値をあらかじめ記憶してもよい。たとえば、ノードR2は、ハッシュ・テーブルをあらかじめ記憶してもよく、ハッシュ・テーブルは、いくつかのハッシュ値を含む。ノードR2に記憶されたハッシュ値は、有効な経路に対応するSIDリストに対してハッシュ演算を実行することによって得られる。この場合、ノードR2は、第1のSIDリストに対してハッシュ演算を実行して、第1のハッシュ値を得ることができる。第1のハッシュ値を得た後、ノードR2は、ローカルに記憶されたいくつかのハッシュ値を探索し、それらのローカルに記憶されたハッシュ値が、計算された第1のハッシュ値を含むかどうかを判定することができる。具体的には、ローカルに記憶されたいくつかのハッシュ値は、第1のハッシュ値をインデックスとして使用することによって探索されてもよく、それにより、それらのローカルに記憶されたハッシュ値が第1のハッシュ値を含むかどうかを判定する。ローカルに記憶されたハッシュ値が第1のハッシュ値を含む場合、そのことは、第1のSIDリストによって示された経路が有効な経路であることを示す。よって、第1のパケットが検証を合格すると判定されてもよい。逆に、ローカルに記憶されたハッシュ値が第1のハッシュ値を含まない場合、第1のパケットは検証に失敗すると判断される。
本願のこの実施形態では、有効な経路に対応するSIDリストにおける最初のSIDはBSIDである。ローカルに記憶されたハッシュ値が第1のハッシュ値を含むことをノードR2が判別するのを助けるために、ノードR2は、ハッシュ値のインデックスとして、第1のBSIDを、そのハッシュ値が計算されるときに使ったSIDリストに記憶してもよい。対応して、ローカルに記憶されたハッシュ値が第1のハッシュ値を含むかどうかが決定されるとき、第1のSIDリストにおけるBSIDが、ローカルに記憶されたハッシュ値が第1のハッシュ値を含むかどうかを判定するためのインデックスとして使用されうる。むろん、ハッシュ値を記憶するとき、ノードR2は、そのハッシュ値が計算されるのに使用したSIDリストも、対応して記憶してもよい。これは、本願のこの実施側面において特に限定されない。
ノードR2にローカルに記憶されたハッシュ値は、次の表6を参照して理解されうる。表6は、3つの可能なハッシュ値記憶態様を示す。第1の態様では、ハッシュ値のみが記憶される。第2の態様では、ハッシュ値とBSIDが記憶される。第3の態様では、ハッシュ値と、そのハッシュ値が計算されるときに使用されたSIDリストが記憶される。表6は、理解を容易にするために示されているだけであり、本願のこの実施形態に対する限定を構成しない。
本願のこの実施形態のある実装では、第1のパケットは、第1のフィールドを含んでいてもよく、第1のフィールドは、検証されるべきSIDの数を示してもよい。第1のパケットを受信した後、ノードR2は、第1のパケットをパースして、第1のフィールドの値を得てもよく、それによりさらに、BSIDおよびSRH内のN個のSIDを得て、第1のパケットを検証するS102を実行してもよい。第1のフィールドは、本願のこの実施形態において特に限定されない。第1のフィールドは、SRv6パケットにおける予約フィールドであってもよい、あるいは第1のフィールドはSRv6パケットにおける拡張フィールドであってもよい。たとえば、第1のフィールドは、図4に示されるフラグ・フィールドの最後の4ビットであってもよい。本願のこの実施形態では、第1のフィールドに担持される値はNであってもよく、またはN+1であってもよい。これは、本願のこの実施形態において特に限定されない。具体的には、第1のフィールドに担持される値がNに等しい場合、第1のフィールドによって示されるSIDは第1のパケットの宛先アドレスを含まない、すなわち、BSIDを含まない。第1のフィールドで担持される値がN+1に等しいとき、第1のフィールドによって示されるSIDは第1のパケットの宛先アドレスを含む、すなわちBSIDを含む。
いくつかの実施形態では、ハッシュ値を記憶するとき、ノードR2は、さらに、ハッシュ値が計算されるのに使用したSIDリストに含まれるSIDの数を対応して記憶してもよい。対応して、第1のハッシュ値とローカルに記憶されたハッシュ値との間でマッチングが実行されるとき、ノードR2は、さらに、第1のフィールドの値に基づいてマッチングを実行し、第1のハッシュ値が計算されるときに使用された第1のSIDリストに含まれるSIDの数を、ローカルに記憶されたハッシュ・テーブル内のSIDの数と比較する。ローカルに記憶されたハッシュ・テーブルが第1のハッシュ値を含み、ローカルに記憶された第1のハッシュ値に対応するSIDの数が第1のSIDリストに含まれるSIDの数と等しい場合にのみ、第1のパケットが検証に合格することが決定される。さもなければ、第1のパケットが検証に失敗すると決定される。
この場合、ノードR2にローカルに記憶されたハッシュ・テーブルは、次の表7を参照して理解されうる。
ノードR2が第1のパケットを検証する態様を、表7を参照して例を用いて記述する。ノードR2にハッシュ値を記憶する態様は、表7に示される最初の態様であると想定される。この場合、第1のパケットを検証するとき、ノードR2は、たとえば、ローカルに記憶されたハッシュ値が第1のハッシュ値を含むかどうかを見出してもよい。第1のハッシュ値がハッシュ値1である場合、ノードR2は、ローカルに記憶されたハッシュ値が第1のハッシュ値を含むと判定する。さらに、ハッシュ値1が計算されるときに使用されたSIDリストに含まれるSIDの数がaであり、ハッシュ値1はローカルに記憶されたハッシュ値のうちにあるので、第1のSIDリストに含まれるSIDの数がaである場合、ノードR2は、第1のパケットが検証に合格すると決定してもよい。第1のSIDリストに含まれるSIDの数がaでない場合、ノードR2は、第1のパケットが検証に失敗すると決定してもよい。第1のSIDリストに含まれるSIDの数は、第1のフィールドの値に基づいて決定されてもよい。具体的には、第1のフィールドの値によって示される検証されるべきSIDがBSIDを含まない場合、第1のSIDリストに含まれるSIDの数は、第1のフィールドの値に1を加えたものに等しい。第1のフィールドの値によって示される検証されるべきSIDがBSIDを含む場合には、第1のSIDリストに含まれるSIDの数は、第1のフィールドの値に等しい。
上記の記述から、第1のSIDリストがノードR2から宛先ノードへの第1のパケットの完全な転送経路を示す場合、実装2では、第1のパケットが第1のパケットの有効な宛先ノードに転送できることが保証できる。第1のSIDリストがノードR2から第1のノードへの第1のパケットの転送経路を示す場合、実装2では、ノードR2と第1のノードとの間のネットワークは、ネットワーク攻撃を避けうる。
さらに、ローカルに記憶されたSIDリストまたはハッシュ値を維持するためにノードR2によって消費される計算資源は、鍵を保護し、ハッシュ・アルゴリズムのセキュリティを確保するためにノードR2によって消費される計算資源よりもはるかに少ない。よって、本願のこの実施形態における解決策によれば、ノードR2の性能を保証することを前提として、SRv6技術を使用してパケットを転送する際に存在するセキュリティ・リスクを可能な限り低減することができる。
実装3:ターゲット・フィールドはSLフィールドである。
上述のように、信頼領域は、信頼領域内のSRv6パケットの転送経路を示すBSIDを提供してもよい。いくつかの実施形態では、領域外のノードは、信頼領域にSRv6パケットを転送する必要がある。この場合、第1のパケットのSRHは、BSIDの次ホップSIDを含まない。言い換えると、BSIDは第1のパケットの転送経路を示す最後のSIDである。この場合、第1のパケットにおけるSLフィールドの値は0である。したがって、信頼領域に転送されるSRv6パケットが正常に信頼領域に転送されることを保証するために、S102のある具体的な実装では、たとえば、ノードR2は、BSIDが信頼領域内にあるかどうかを判定してもよい。次いで、ノードR2は、SLフィールドの値が0であるかどうかを判定する。SLフィールドの値が0である場合、そのことは、第1のパケットの宛先ノードが信頼領域内のノードであることを示す。よって、第1のパケットが検証に合格すると決定されてもよい。SLフィールドの値が0でない場合、ノードR2は、上記の実装1または実装2において第1のパケットを検証してもよい。
S103a:ノードR2は検証に失敗した第1のパケットを破棄する。
ノードR2が第1のパケットを破棄することは、たとえば、ノードR2がローカル記憶装置から第1のパケットを削除することであってもよい。
S103b:ノードR2は検証に合格する第1のパケットを転送する。
本願のこの実施形態では、第1のパケットを転送する特定の実装において、たとえば、ノードR2は、BSIDに対応するSIDリストを取得し、SIDリストに基づいて第1のパケットを再カプセル化し、再カプセル化された第1のパケットを転送してもよい。ノードR2がSIDリストに基づいて第1のパケットを再カプセル化する具体的な実装については、図3bおよび図3cの前述の説明を参照されたい。詳細は、ここでは再度説明しない。
前述の説明から、本願のこの実施形態におけるパケット転送方法によれば、ノードR2の性能を保証することを前提として、SRv6技術を使用してパケットを転送する際に存在するセキュリティ・リスクを可能な限り低減することができることがわかる。
本願の実施形態のある実施形態において、ノードR2は、さらに第2のパケットを取得してもよい。第1のパケットと同様に、第2のパケットもSRv6パケットであり、第2のパケットの宛先アドレスは前記BSIDである。第2のパケットを受信した後、ノードR2は、第2のパケットのBSIDおよび第2のパケットのSRH内のターゲット・フィールドに基づいて、第2のパケットを検証してもよい。ノードR2が第2のパケットを検証する具体的な実装は、ノードR2が第1のパケットを検証する方法に類似しており、詳細はここでは再度説明しない。第2のパケットを検証した後、ノードR2は、第2のパケットが検証に合格したときに、第2のパケットを転送してもよい。第2のパケットの検証中に、BSIDが検証されるだけでなく、ターゲット・フィールドも検証される。よって、検証に合格する第2のパケットは、有効なパケットと見なされてもよく、信頼領域を通じて第2のパケットを転送することは、セキュリティ・リスクをもたらさない。
本願の実施形態は、パケット転送方法200をさらに提供する。図6は、本願のある実施形態によるパケット転送方法の概略フローチャートである。以下は、図6を参照して、この方法を説明する。図6に示される方法は、たとえば、S201~S203を使用することによって実装されうる。
S201:信頼領域におけるエッジ・ノードが、第1のパケットを受信する。第1のパケットはSRv6パケットであり、第1のパケットの宛先アドレスは、バインディング・セグメント識別子BSIDである。
S202:エッジ・ノードは、第1のパケット内のBSIDと、セグメント・ルーティング・ヘッダSRH内のターゲット・フィールドに基づいて、第1のパケットを検証する。
S203:エッジ・ノードは検証に失敗した第1のパケットを破棄する。
方法200は、上述の実施形態において述べた方法100において、ノードR2によって実行されるS101、S102、S103aを実装するために用いられてもよい。方法200が上述の実施形態において述べた方法100においてノードR2によって実行されるS101、S102、S103aを実装するために使用される場合、信頼領域内のエッジ・ノードは、方法100におけるノードR2に対応し、第1のパケットは、方法100における第1のパケットに対応する。
ある実装では、エッジ・ノードは、さらに、制御管理装置からセキュリティ保護ポリシーを受け取ってもよい。ここで、セキュリティ保護ポリシーは、エッジ・ノードに、BSIDおよびSRH内のターゲット・フィールドに基づいて、第1のパケットを検証することを指示する。
ある実装では、ターゲット・フィールドは、BSIDの次ホップSIDを含む;ターゲット・フィールドは、フィールド識別子SIDリストにおいてN個のSIDを含み、N個のSIDにおける最初のSIDは、BSIDの次ホップSIDであり、Nは1以上であり、Nが1より大きい場合、N個のSIDは、SIDリストにおける連続するN個のSIDである;または、ターゲット・フィールドは、残りセグメントSLフィールドを含む。
ある実装では、ターゲット・フィールドがBSIDの次ホップSIDを含む場合、エッジ・ノードが第1のパケット内のBSIDおよびセグメント・ルーティング・ヘッダSRH内のターゲット・フィールドに基づいて第1のパケットを検証することは:BSIDが信頼領域にあり、ターゲット・フィールドが有効なネットワーク・セグメントにない場合、エッジ・ノードは第1のパケットが検証に失敗すると判断する。ここで、第1のパケットの有効な宛先ノードは有効なネットワーク・セグメントにある。
ある実装では、有効なネットワーク・セグメントは、有効な宛先ノードのロケーター・ルートによって示される。ここで言及される有効な宛先ノードは、たとえば、図3aに示される第2の領域300内のノードR5に対応してもよい。
ある実装では、セキュリティ保護ポリシーは、有効なネットワーク・セグメントを担持する、または有効なネットワーク・セグメントはエッジ・ノードにおいて静的に構成されている。
ある実装では、ターゲット・フィールドがBSIDの次ホップSIDを含む場合、エッジ・ノードが第1のパケット内のBSIDおよびセグメント・ルーティング・ヘッダSRH内のターゲット・フィールドに基づいて第1のパケットを検証することは:BSIDが信頼領域にあり、ターゲット・フィールドが第1のネットワーク・セグメントにある場合、エッジ・ノードは第1のパケットが検証に失敗すると判断する。ここで、信頼領域内のノードは第1のネットワーク・セグメントに属する。ここで言及される第1のネットワーク・セグメントは、図3cに示されるように、信頼領域200内のノードが属するネットワーク・セグメントに対応しうる。
ある実装では、セキュリティ保護ポリシーは、第1のネットワーク・セグメントを担持する、または第1のネットワーク・セグメントがエッジ・ノードにおいて静的に構成されている。
ある実装では、ターゲット・フィールドがSIDリストにおけるN個のSIDを含む場合、エッジ・ノードが第1のパケット内のBSIDおよびセグメント・ルーティング・ヘッダSRH内のターゲット・フィールドに基づいて第1のパケットを検証することは:エッジ・ノードが前記BSIDおよび前記ターゲット・フィールドを含む第1のSIDリストを、エッジ・ノードに記憶されたSIDリストと比較し、エッジ・ノードに記憶されたSIDリストが第1のSIDリストを含まない場合、エッジ・ノードは、第1のパケットが検証に失敗すると判断する。ここで、エッジ・ノードに記憶されたSIDリストは有効な経路を示す。
ある実装では、ターゲット・フィールドがSIDリストにN個のSIDを含む場合、エッジ・ノードが第1のパケット内のBSIDおよびセグメント・ルーティング・ヘッダSRH内のターゲット・フィールドに基づいて第1のパケットを検証することは:エッジ・ノードが、BSIDおよびターゲット・フィールドを含む第1のSIDリストに対してハッシュ演算を実行して第1のハッシュ値を得て;エッジ・ノードに記憶されているあるハッシュ値が第1のハッシュ値を含まない場合、エッジ・ノードは、第1のパケットが検証に失敗すると判断し、ここで、エッジ・ノードに記憶されたハッシュ値は、有効な経路を示すSIDリストに対して前記ハッシュ演算を実行することによって取得される、ことを含む。
ある実装では、第1のパケットは、第1のフィールドを含み、第1のフィールドは、検証されるべきSIDの数を示す。
ある実装では、セキュリティ保護ポリシーが有効な経路を示すSIDリストを担持するか、または有効な経路を示すSIDリストがエッジ・ノードにおいて静的に構成されている。
ある実装では、ターゲット・フィールドがSLフィールドを含む場合、エッジ・ノードが第1のパケット内のBSIDとセグメント・ルーティング・ヘッダSRH内のターゲット・フィールドに基づいて第1のパケットを検証することは、以下を含む。
エッジ・ノードが、BSIDが信頼領域内にあると判定し;ターゲット・フィールドの値が0に等しくない場合、エッジ・ノードは、第1のパケットが検証に失敗すると判定する。
ある実装では、エッジ・ノードは、さらに、第2のパケットを取得してもよく、ここで、第2のパケットはSRv6パケットであり、第2のパケットの宛先アドレスは、前記バインディング・セグメント識別子BSIDである。エッジ・ノードは、第2のパケット内のBSIDおよび第2のパケットのSRH内のターゲット・フィールドに基づいて第2のパケットを検証し;エッジ・ノードは検証に合格する第2のパケットを転送する。
方法200の具体的な実装については、方法100におけるS101、S102、およびS103aの前述の説明を参照されたい。詳細は、ここでは再度説明しない。
本願の実施形態は、パケット転送方法300をさらに提供する。図7は、本願のある実施形態によるパケット転送方法の概略フローチャートである。以下は、図7を参照してこの方法を説明する。図7に示される方法は、たとえば、S301~S303を使用することによって実装されうる。
S301:信頼領域内のエッジ・ノードが、第1のパケットを受信する。ここで、第1のパケットはSRv6パケットであり、第1のパケットの宛先アドレスはバインディング・セグメント識別子BSIDである。
S302:エッジ・ノードが、第1のパケット内のBSIDおよび第1のパケットのセグメント・ルーティング・ヘッダSRH内のターゲット・フィールドに基づいて、第1のパケットを検証する。
S303:エッジ・ノードは検証に合格する第1のパケットを転送する。
方法300は、上記の実施形態で述べた方法100においてノードR2によって実行されるS101、S102、S103bを実装するために使用されてもよい。方法200が上記の実施形態で述べた方法100においてノードR2によって実行されるS101、S102、S103bを実装するために使用される場合、信頼領域内のエッジ・ノードは、方法100におけるノードR2に対応し、第1のパケットは、方法100における第1のパケットに対応する。
ある実装では、エッジ・ノードは、さらに、制御管理装置からセキュリティ保護ポリシーを受け取ってもよい。ここで、セキュリティ保護ポリシーは、エッジ・ノードが、BSIDおよびSRH内のターゲット・フィールドに基づいて第1のパケットを検証することを、エッジ・ノードに指示する。
ある実装では、ターゲット・フィールドは、BSIDの次ホップSIDを含み;ターゲット・フィールドは、フィールド識別子SIDリストにおいてN個のSIDを含み、N個のSIDにおける最初のSIDは、BSIDの次ホップSIDであり、N個が1以上であり、N個が1より大きい場合、N個のSIDは、SIDリストにおける連続するN個のSIDである。または、ターゲット・フィールドは、残りセグメントSLフィールドを含む。
ある実装では、ターゲット・フィールドがBSIDの次ホップSIDを含む場合、エッジ・ノードが第1のパケット内のBSIDおよびセグメント・ルーティング・ヘッダSRH内のターゲット・フィールドに基づいて第1のパケットを検証するある特定の実装では、BSIDが信頼領域内にあり、ターゲット・フィールドが有効なネットワーク・セグメント内にあると判断するとき、エッジ・ノードは第1のパケットが検証に合格すると判断する。第1のパケットの有効な宛先ノードは、有効なネットワーク・セグメント内に位置する。
ある実装では、有効なネットワーク・セグメントは、有効な宛先ノードのロケーター・ルートによって示される。ここでいう有効な宛先ノードは、たとえば、図3aに示される第2の領域300内のノードR5に対応しうる。
ある実装では、セキュリティ保護ポリシーが有効なネットワーク・セグメントを担持するか、または有効なネットワーク・セグメントがエッジ・ノードにおいて静的に構成されている。
ある実装では、ターゲット・フィールドがBSIDの次ホップSIDを含む場合、エッジ・ノードが第1のパケット内のBSIDおよびセグメント・ルーティング・ヘッダSRH内のターゲット・フィールドに基づいて第1のパケットを検証するある特定の実装では、たとえば、エッジ・ノードは、BSIDが信頼領域内にあり、ターゲット・フィールドが第1のネットワーク・セグメント内にないと判断し、エッジ・ノードは、第1のパケットが検証に合格すると判断する。信頼領域内のノードは、第1のネットワーク・セグメントに属する。ここでいう第1のネットワーク・セグメントは、図3cに示されるような、信頼領域200内のノードが属するネットワーク・セグメントに対応しうる。
ある実装では、セキュリティ保護ポリシーが第1のネットワーク・セグメントを担持するか、または第1のネットワーク・セグメントがエッジ・ノードにおいて静的に構成されている。
ある実装では、ターゲット・フィールドがSIDリストにおいてN個のSIDを含む場合、エッジ・ノードが第1のパケット内のBSIDおよびセグメント・ルーティング・ヘッダSRH内のターゲット・フィールドに基づいて第1のパケットを検証するある特定の実装において、たとえば、エッジ・ノードは、BSIDおよびターゲット・フィールドを含む第1のSIDリストを、エッジ・ノードに記憶されたSIDリストと比較することができ、エッジ・ノードに記憶されたSIDリストが第1のSIDリストを含む場合、エッジ・ノードは、第1のパケットが検証に合格すると判定する。ここで、エッジ・ノードに記憶されたSIDリストは有効な経路を示す。
ある実装では、ターゲット・フィールドがSIDリストにおいてN個のSIDを含む場合、エッジ・ノードが第1のパケット内のBSIDおよびセグメント・ルーティング・ヘッダSRH内のターゲット・フィールドに基づいて第1のパケットを検証することは以下を:エッジ・ノードが、BSIDおよびターゲット・フィールドを含む第1のSIDリストに対してハッシュ演算を実行して第1のハッシュ値を得て、エッジ・ノードに記憶されたハッシュ値が第1のハッシュ値を含む場合、エッジ・ノードは、第1のパケットが検証に合格することを決定する。ここで、エッジ・ノードに記憶されたハッシュ値は、有効な経路を示すSIDリストに対して前記ハッシュ演算を実行することによって得られる。
ある実装では、第1のパケットは、第1のフィールドを含み、第1のフィールドは、検証されるべきSIDの数を示す。
ある実装では、セキュリティ保護ポリシーが有効な経路を示すSIDリストを担持するか、または有効な経路を示すSIDリストがエッジ・ノードにおいて静的に構成されている。
ある実装では、ターゲット・フィールドがSLフィールドを含む場合、エッジ・ノードが第1のパケット内のBSIDおよびセグメント・ルーティング・ヘッダSRH内のターゲット・フィールドに基づいて第1のパケットを検証するある特定の実装において、たとえば、BSIDが信頼領域内にあり、ターゲット・フィールド内のエッジ・ノードの値が0に等しいと判断するとき、エッジ・ノードは、第1のパケットが検証に合格すると判断してもよい。
方法300の具体的な実装については、方法100におけるS101、S102、およびS103bの前述の説明を参照されたい。詳細は、ここでは再度説明しない。
本願の実施形態は、転送制御方法400をさらに提供する。図8は、本願のある実施形態による転送制御方法の概略フローチャートである。以下は、図8を参照してこの方法を説明する。図8に示される方法は、たとえば、S401およびS402を使用することによって実装されうる。
S401:制御管理装置がセキュリティ保護ポリシーを取得する。ここで、セキュリティ保護ポリシーは、BSIDと、セグメント・ルーティング・ヘッダSRH内のターゲット・フィールドとに基づいて、受信されたSRv6パケットを検証するために、信頼領域内のエッジ・ノードを示す。
S402:制御管理装置は、信頼領域内のエッジ・ノードにセキュリティ保護ポリシーを送信する。
方法400は、上記の実施形態で述べた方法100において制御管理装置によって実行されるステップを実施するために使用されてもよい。方法400における信頼領域は、図3aに示される信頼領域200であってもよい。方法400における信頼領域内のエッジ・ノードは、方法100におけるノードR2に対応しうる。
ある実装では、制御管理装置は、PCEPメッセージを使用して、信頼領域内のエッジ・ノードにセキュリティ保護ポリシーを送信してもよい。
ある実装では、制御管理装置は、BGPメッセージを使用することによって、信頼領域内のエッジ・ノードにセキュリティ保護ポリシーを送信してもよい。
ある実装では、制御管理装置は、NETCONFパケットを使用して、信頼領域内のエッジ・ノードにセキュリティ保護ポリシーを送信してもよい。
ある実装では、制御管理装置は、SNMPパケットを使用して、信頼領域内のエッジ・ノードにセキュリティ保護ポリシーを送信してもよい。
ある実装では、ターゲット・フィールドは、BSIDの次ホップSIDを含む;ターゲット・フィールドは、フィールド識別子SIDリストにおいてN個のSIDを含み、N個のSIDにおける最初のSIDは、BSIDの次ホップSIDであり、N個が1以上であり、N個が1より大きい場合、N個のSIDは、SIDリストにおける連続するN個のSIDである;または、ターゲット・フィールドは、残りセグメント左のSLフィールドを含む。
ある実装では、ターゲット・フィールドがBSIDの次ホップSIDを含む場合、セキュリティ保護ポリシーは、信頼領域内における有効なBSIDおよび有効なネットワーク・セグメントを担持する。
ある実装では、信頼領域における有効なBSIDおよび有効なネットワーク・セグメントは、BGP FSの拡張属性において担持されてもよい。たとえば、信頼領域における有効なBSIDはBGP FSの拡張属性タイプ17において担持され、有効なネットワーク・セグメントはBGP FSの拡張属性タイプ18において担持される。
ある実装では、ターゲット・フィールドがBSIDの次ホップSIDを含む場合、セキュリティ保護ポリシーは、信頼領域における有効なBSIDおよび第1のネットワーク・セグメントを担持する。
ある実装では、信頼領域における有効なBSIDおよび第1のネットワーク・セグメントは、BGP FSの拡張属性において担持されてもよい。たとえば、信頼領域における有効なBSIDは、BGP FSの拡張属性タイプ17において担持され、第1のネットワーク・セグメントはBGP FSの拡張属性タイプ18において担持される。
ある実装では、ターゲット・フィールドがセグメント識別子SIDリストにおいてN個のSIDを含む場合、セキュリティ保護ポリシーは有効な経路を示すSIDリストを担持し、SIDリストは信頼領域内の有効なBSIDを含む。
ある実装では、有効な経路を示すSIDリストは、BGP FSの拡張属性において担持されてもよい。たとえば、有効な経路を示すSIDリストは、BGP FSの拡張属性タイプ19において担持されうる。
方法400の具体的な実装については、方法100における制御管理装置によって実行されるステップの前述の説明を参照されたい。詳細は、ここでは再度説明しない。
加えて、本願のある実施形態は、エッジ・ノード900をさらに提供する。図9は、本願のこの実施形態によるエッジ・ノードの概略構造図である。エッジ・ノード900は、トランシーバ・ユニット901および処理ユニット902を含む。トランシーバ・ユニット901は、方法100に対応する実施形態においてノードR2によって実行される受信および送信動作を実行するように構成される。処理ユニット902は、方法100に対応する実施形態においてノードR2によって実行される、送受信動作以外の動作を実行するように構成される。たとえば、エッジ・ノード900は、方法100におけるノードR2である。この場合、トランシーバ・ユニット901は、第1のパケットを受信するステップを実行するように構成される。処理ユニット902は、BSIDおよびSRH内のターゲット・フィールドに基づいて第1のパケットを検証し、検証に失敗した第1のパケットを破棄するステップを実行するように構成される。
さらに、本願のある実施形態は、図10に示されるような制御管理装置1000をさらに提供する。図10は、本願のこの実施形態による制御管理装置の概略構造図である。制御管理装置1000は、トランシーバ・ユニット1001および処理ユニット1002を含む。トランシーバ・ユニット1001は、上記の実施形態において制御管理装置によって実行される送受信動作を実行するように構成される。処理ユニット1002は、上記の実施形態において述べた制御管理装置によって実行される、送受信動作以外の動作を実行するように構成される。たとえば、トランシーバ・ユニット1001は、信頼領域内のエッジ・ノードにセキュリティ保護ポリシーを送信するように構成され、処理ユニット1002は、セキュリティ保護ポリシーを取得するように構成される。
加えて、本願のある実施形態は、エッジ・ノード1100をさらに提供する。図11は、本願のこの実施形態によるエッジ・ノードの概略構造図である。エッジ・ノード1100は、通信インターフェース1101と、該通信インターフェース1101に接続されたプロセッサ1102とを含む。通信インターフェース1101は、方法100に対応する実施形態においてノードR2によって実行される受信および送信動作を実行するように構成される。プロセッサ1102は、方法100に対応する実施形態においてノードR2によって実行される、受信および送信動作以外の動作を実行するように構成される。たとえば、エッジ・ノード1100は、方法100におけるノードR2である。この場合、通信インターフェース1101は、第1のパケットを受信するステップを実行するように構成される。プロセッサ1102は、BSIDおよびSRH内のターゲット・フィールドに基づいて第1のパケットを検証し、検証に失敗した第1のパケットを破棄するステップを実行するように構成される。
加えて、本願のある実施形態は、制御管理装置1200をさらに提供する。図12は、本願のこの実施形態による制御管理装置の概略構造図である。制御管理装置1200は、通信インターフェース1201と、該通信インターフェース1201に接続されたプロセッサ1202とを含む。通信インターフェース1201は、上記の実施形態において制御管理装置によって実行される送受信動作を実行するように構成される。プロセッサ1202は、上記の実施形態において述べた制御管理装置によって実行される送受信動作以外の動作を実行するように構成される。たとえば、通信インターフェース1201は、信頼領域内のエッジ・ノードにセキュリティ保護ポリシーを送信するように構成され、プロセッサ1202は、セキュリティ保護ポリシーを取得するように構成される。
加えて、本願のある実施形態は、エッジ・ノード1300をさらに提供する。図13は、本願のこの実施形態によるエッジ・ノードの概略構造図である。エッジ・ノード1300は、メモリ1301およびプロセッサ1302を含む。メモリ1301は、プログラム・コードを記憶するように構成される。プロセッサ1302は、プログラム・コード内の命令を実行するように構成され、エッジ・ノード1300が、上記の方法100に対応する実施形態においてノードR2によって実行されるステップを実行できるようにする。
加えて、本願のある実施形態は、制御管理装置1400をさらに提供する。図14は、本願のこの実施形態による制御管理装置の概略構造図である。制御管理装置1400は、メモリ1401およびプロセッサ1402を含む。メモリ1401は、プログラム・コードを記憶するように構成される。プロセッサ1402は、プログラム・コード内の命令を実行して、制御管理装置1400が上記の実施形態において制御管理装置によって実行されるステップを実行できるようにするように構成される。
本願のある実施形態は、コンピュータ読み取り可能な記憶媒体をさらに提供する。コンピュータ読み取り可能な記憶媒体は命令を記憶する。命令がコンピュータ上で実行されると、コンピュータは、上記の方法100においてノードR2によって実行されるステップを実行できるようにされる、またはコンピュータは、上記の方法100において制御管理装置によって実行されるステップを実行できるようにされる。
本願のある実施形態は、通信システムをさらに提供する。通信システムは、制御管理装置とエッジ・ノードとを含む。いくつかの実施形態では、エッジ・ノードは、上記の方法100を実行するノードR2である。いくつかの実施形態では、制御管理装置は、上記の方法100においてセキュリティ保護ポリシーをノードR2に伝達する制御管理装置である。
本願の明細書、請求項および添付図面において、「第1」、「第2」、「第3」、「第4」等の用語は(存在する場合)、類似の対象を区別することを意図しており、必ずしも特定の順序または配列を示すものではない。そのような仕方で表されるデータは、適切な状況においては交換可能であり、よって本明細書に記載される本発明の実施形態が、本明細書に図示または記載される順序以外の順序で実装されることができることを理解されたい。さらに、用語「含む」、「含有する」、および他の変形は、非排他的な包含をカバーすることを意味し、たとえば、列挙されたステップまたはユニットを含むプロセス、方法、システム、プロダクト、または装置は、必ずしもそれらのユニットに限定されず、そのようなプロセス、方法、システム、プロダクト、または装置に固有、または明示的に列挙されていない他のユニットを含んでいてもよい。
当業者であれば、簡便な説明のために、上記のシステム、装置、およびユニットの詳細な稼働プロセスについては、上記の方法実施形態における対応するプロセスが参照されることを明確に理解することができ、詳細については、ここでは再度説明しない。
本願において提供されるいくつかの実施形態において、開示されたシステム、装置、および方法は、他の仕方で実装されてもよいことを理解されたい。たとえば、記載された装置実施形態は、単に一例である。たとえば、ユニットへの分割は、単に論理的なサービス分割であり、実際の実装の際には他の分割であってもよい。たとえば、複数のユニットまたはコンポーネントは、別のシステムに組み合わされ、または統合されてもよく、あるいはいくつかの特徴が無視され、あるいは実行されなくてもよい。さらに、表示または議論された相互結合、直接結合または通信接続は、いくつかのインターフェースを通じて実装されてもよい。装置またはユニット間の間接的な結合または通信接続は、電気的、機械的、または別の形態で実装されうる。
別個の部品として記載されるユニットは、物理的に別個であってもなくてもよく、ユニットとして表示される部品は、物理的なユニットであってもなくてもよく、言い換えると、1つの位置に配置されていてもよく、または複数のネットワーク・ユニット上に分散されていてもよい。ユニットの一部または全部は、実施形態の解決策の目的を達成するために、実際の要件に基づいて選択されうる。
さらに、本願の実施形態におけるサービス・ユニットは、1つの処理ユニットに統合されてもよく、または、それらのユニットのそれぞれは、物理的に単独で存在してもよく、または、2つ以上のユニットが1つのユニットに統合されてもよい。統合されたユニットは、ハードウェアの形で実装されてもよく、またはソフトウェア・サービス・ユニットの形で実装されてもよい。
統合されたユニットがソフトウェア・サービス・ユニットの形で実装され、独立したプロダクトとして販売または使用される場合、統合されたユニットはコンピュータ読み取り可能な記憶媒体に記憶されてもよい。このような理解に基づいて、本願の技術的解決策は本質的に、従来技術に寄与する部分は、または技術的解決策の全部もしくは一部は、ソフトウェア・プロダクトの形で実装されてもよい。コンピュータ・ソフトウェア・プロダクトは、記憶媒体に記憶され、本願の実施形態における方法の全部または一部のステップを実行するようにコンピュータ装置(パーソナルコンピュータ、サーバー、ネットワーク装置などであってもよい)に指示するためのいくつかの命令を含む。記憶媒体は、USBフラッシュドライブ、リムーバブルハードディスク、読み出し専用メモリ(ROM, Read-Only Memory)、ランダムアクセスメモリ(RAM、Random Access Memory)、磁気ディスク、または光ディスクのような、プログラム・コードを記憶できる任意の媒体を含む。
当業者は、前述の一つまたは複数の例において、本発明に記載されたサービスが、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組み合わせによって実装されうることを認識すべきである。本発明がソフトウェアを使用して実装される場合、サービスは、コンピュータ読み取り可能媒体に記憶されるか、またはコンピュータ読み取り可能媒体における一つまたは複数の命令またはコードとして送信されてもよい。コンピュータ読み取り可能媒体は、コンピュータ記憶媒体および通信媒体を含む。通信媒体は、ある場所から他の場所へのコンピュータ・プログラムの送信を容易にする任意の媒体を含む。記憶媒体は、汎用コンピュータまたは専用コンピュータにとってアクセス可能な任意の利用可能な媒体でありうる。
本発明の目的、技術的解決策、および有益な効果は、前述の具体的な実装においてさらに詳細に説明されている。前述の説明は、単に本発明の具体的な実装であることを理解されたい。
前述の実施形態は、単に本願の技術的解決策を記載することを意図したものであって、本願を限定するものではない。本願は、前述の実施形態を参照して詳細に説明されているが、当業者は、前述の実施形態に記録されている技術的解決策をさらに修正してもよいし、またはその一部の技術的特徴に等価な置き換えをしてもよいことを理解するはずである。しかしながら、これらの修正または置換により、対応する技術的解決策の本質が、本願の前述の実施形態の技術的解決策の範囲から逸脱するものではない。
本願は、通信分野に関し、特にパケット転送方法および装置に関する。
インターネットプロトコル・バージョン6を通じたセグメント・ルーティング(Segment Routing over Internet Protocol Version 6、SRv6)技術では、インターネットプロトコル・バージョン6(internet protocol version 6、IPv6)パケットを転送することにセグメント・ルーティング(segment routing、SR)が適用されうる。
現在、SRv6技術を使用してパケットを転送する際にセキュリティ・リスクが存在する。
本願の実施形態は、攻撃パケットによって占有されるSRv6の信頼領域のネットワーク資源を大幅に削減するためのパケット転送方法を提供する。
第1の側面によれば、本願のある実施形態は、パケット転送方法を提供する。この方法は、SRv6の信頼領域内のエッジ・ノードによって実行されうる。信頼領域の外の場所からSRv6パケットを受信するとき、信頼領域におけるエッジ・ノードが、SRv6パケットを検証し、SRv6パケットが検証に合格したときにSRv6パケットを転送することがある。この方法は以下を含む:信頼領域におけるエッジ・ノードは第1のパケットを受信し、第1のパケットはSRv6パケットであり、第1のパケットの宛先アドレスはバインディング・セグメント識別子(binding segment ID、BSID)である。第1のパケットを受信した後、信頼領域におけるエッジ・ノードは第1のパケット内のBSIDと第1のパケットのセグメント・ルーティング・ヘッダ(segment routing header、SRH)内のターゲット・フィールドに基づいて第1のパケットを検証し、第1のパケットが検証に失敗したときに第1のパケットを破棄してもよい。本願のこの実施形態では、信頼領域の外のノードは、BSIDを使用することによって信頼領域にアクセスすることが要求されるだけでなく、第1のパケットが、セグメント・ルーティング・ヘッダ内のターゲット・フィールドを参照して検証される必要がある。信頼領域内のエッジ・ノードが、BSIDを使用することによってのみ、第1のパケットに対して境界フィルタリングを実行する解決策と比較して、本願のこの実施形態の解決策は、攻撃パケットを効果的に識別し、検証に失敗する大量の攻撃パケットを適時に破棄し、攻撃パケットによって占有される信頼領域のネットワーク資源を効果的に削減し、SRv6技術を使用することによってパケットを転送することによって引き起こされるセキュリティ・リスクを効果的に低減することができる。
本願に記載されるSRv6信頼領域は、SRv6セキュリティ領域と称されることもある。
ある実装では、エッジ・ノードは、制御管理装置によって示されるように、第1のパケットを、BSIDおよび第1のパケットのSRH内のターゲット・フィールドに基づいて検証することができる。具体的には、エッジ・ノードは、制御管理装置からセキュリティ保護ポリシーを受信することができ、ここで、セキュリティ保護ポリシーは、エッジ・ノードに、BSIDおよびSRH内のターゲット・フィールドに基づいて第1のパケットを検証することを指示する。
ある実装では、SRv6パケットが信頼領域を通して転送される必要があるとき、信頼領域は、信頼領域内のSRv6パケットの転送経路を示すBSIDを提供することがある。よって、BSIDの次ホップSIDは、理論的に、信頼領域の外側のノードが、信頼領域と直接対話することを示す。よって、ターゲット・フィールドはBSIDの次ホップSIDを含むことがある。エッジ・ノードは、BSIDの次ホップSIDを使用して、第1のパケットが有効な宛先ノードに転送されるかどうかを決定してもよく、またはエッジ・ノードは、BSIDを使用して、第1のパケットが信頼領域に対する攻撃を引き起こすかどうかを決定してもよい。
ある実装では、SIDリスト内のBSIDおよびN個のSIDを含む第1のSIDリストが、エッジ・ノードから宛先ノードへの第1のパケットの転送経路を示してもよく、または、第1のSIDリストは、エッジ・ノードから第1のノードへの第1のパケットの転送経路を示してもよく、ここで、第1のノードは、エッジ・ノードと宛先ノードとの間のノードである。よって、ターゲット・フィールドはSIDリストにおけるN個のSIDを含んでいてもよい。このように、エッジ・ノードは、第1のSIDリストを検証し、第1のSIDリストによって示される経路が有効な経路であることが保証される場合にのみ、第1のパケットを転送してもよく、それにより、SIDリストによって示される経路上に含まれるノードがネットワーク攻撃を回避できる。
ある実装では、信頼領域外のノードが信頼領域にSRv6パケットを転送する必要があるとき、信頼領域は、信頼領域内のSRv6パケットの転送経路を示すBSIDを提供してもよい。この場合、SRv6パケットのSRHは、BSIDの次ホップSIDを含まない。言い換えると、BSIDはSRv6パケットの転送経路を示す最後のSIDである。この場合、SRv6パケット内のSLフィールドの値は0である。したがって、ターゲット・フィールドは残りセグメントSLフィールドを含んでいてもよく、信頼領域に転送されるSRv6パケットが正常に信頼領域に転送されることを保証する。
ある実装では、ターゲット・フィールドがBSIDの次ホップSIDを含む場合、エッジ・ノードが第1のパケット内のBSIDとセグメント・ルーティング・ヘッダSRH内のターゲット・フィールドに基づいて第1のパケットを検証する特定の実装において、エッジ・ノードは、BSIDが信頼領域内であることを判別し、ターゲット・フィールドが有効なネットワーク・セグメント内であるかどうかを判別してもよい。第1のパケットの有効な宛先ノードは、有効なネットワーク・セグメントに位置する。BSIDの次ホップSIDが有効なネットワーク・セグメントにある場合、そのことは、BSIDの次ホップSIDによって示されるノードが第1のパケットの有効な宛先ノードであることを示す。すなわち、BSIDによって示された経路を通じて転送された後、第1のパケットは第1のパケットの有効な宛先ノードに転送される。この場合、第1のパケットが検証を通過すると考えられてもよい。対応して、BSIDの次ホップSIDが有効なネットワーク・セグメントにない場合、そのことは、BSIDによって示される経路を通じて転送された後、第1のパケットは第1のパケットの有効な宛先ノードに転送されず、他のノードに転送されることを示す。この場合、BSIDの次ホップSIDが改竄された可能性がある。したがって、第1のパケットが他のノードへの攻撃を引き起こす可能性がある。したがって、BSIDの次ホップSIDが有効なネットワーク・セグメントにない場合、第1のパケットは検証に失敗する。
ある実装では、SRv6パケットが転送されるとき、パケットの宛先ノードを示すSIDは、ノードのSIDであってもよいし、またはノード上に配備されたVPNインスタンスのSIDであってもよい。VPNインスタンスのSIDは、略してVPN SIDと呼ばれる。SRHのSIDリストは、宛先ノードのSIDと、宛先ノード上に配備されているVPNインスタンスのVPN SIDの両方を含んでいてもよい。ノードについては、ノードのSIDとノードのVPN SIDの両方が、ノードのロケーター・ルートによって示されるネットワーク・セグメントにある。ノードのロケーター・ルートとは、ノードのSIDが属するネットワーク・セグメント・ルートをいう。よって、有効なネットワーク・セグメントは、有効な宛先ノードのロケーター・ルートによって示されてもよい。このようにして、BSIDの次ホップSIDがノードSIDであるかVPN SIDであるかにかかわらず、第1のパケットが改竄されたかどうかが、有効なネットワーク・セグメントを使用することによって判定できる。
ある実装では、有効なネットワーク・セグメントは、セキュリティ保護ポリシーにおいて制御管理装置によって含められ、エッジ・ノードに送られてもよい。
ある実装では、有効なネットワーク・セグメントはエッジ・ノードにおいて静的に設定される。
ある実装では、ターゲット・フィールドがBSIDの次ホップSIDを含む場合、第1のパケットによる信頼領域への攻撃を避けるために、エッジ・ノードは、たとえば、BSIDが信頼領域内にあるかどうかを判定することができる。次いで、エッジ・ノードは、BSIDの次ホップSIDが第1のネットワーク・セグメント内にあるかどうかを判定する。ここで、信頼領域内のノードが第1のネットワーク・セグメントに属する。BSIDの次ホップSIDが第1のネットワーク・セグメントにある場合、そのことは、BSIDの次ホップSIDによって示されるノードが信頼領域内のノードであることを示す。すなわち、BSIDによって示された経路を通して転送された後、第1のパケットは信頼領域を離れず、信頼領域内で転送され続ける。この場合、BSIDの次ホップSIDが改竄された可能性がある。したがって、第1のパケットは、おそらく、信頼領域内のノードに対するネットワーク攻撃を引き起こしうる。よって、BSIDの次ホップSIDが第1のネットワーク・セグメントにある場合、第1のパケットは検証に失敗する。対応して、BSIDの次ホップSIDが第1のネットワーク・セグメントにない場合、そのことは、BSIDによって示される経路を通して転送された後、第1のパケットは信頼領域を離れ、信頼領域の外の別のノードに転送されることを示す。この場合、第1のパケットが検証に合格すると考えられてもよい。
ある実装では、第1のネットワーク・セグメントは、セキュリティ保護ポリシーにおいて制御管理装置によって含められ、エッジ・ノードに送られてもよい。
ある実装では、第1のネットワーク・セグメントは、エッジ・ノード内で静的に構成される。
ある実装では、ターゲット・フィールドがBSIDの次ホップSIDを含む場合、エッジ・ノードはSIDリストをあらかじめ記憶していてもよく、エッジ・ノードに記憶されたSIDリストが有効な経路を示す。具体的には、エッジ・ノードは、一つまたは複数のSIDリストをあらかじめ記憶していてもよく、1つのSIDリストが1つの有効な経路を示す。エッジ・ノードは、第1のSIDリストを、ローカルに記憶された諸SIDリストと比較してもよい。ローカルに記憶されたSIDリストが第1のSIDリストを含む場合、そのことは、第1のSIDリストによって示される経路が有効な経路であることを示す。したがって、エッジ・ノードは、第1のパケットが検証に合格することを判別しうる。逆に、ローカルに記憶されたSIDリストが第1のSIDリストを含まない場合、第1のパケットは検証に失敗すると判断される。
ある実装では、エッジ・ノードに記憶されたSIDリストは、セキュリティ保護ポリシーを使用することによって、制御管理装置によってエッジ・ノードに送達されてもよい。
ある実装では、エッジ・ノードに記憶されたSIDリストは、エッジ・ノードにおいて静的に構成されていてもよい。
ある実装では、ターゲット・フィールドがBSIDの次ホップSIDを含むとき、エッジ・ノードはいくつかのハッシュ値をあらかじめ記憶していてもよい。エッジ・ノードにおいて記憶されているハッシュ値は、有効な経路に対応するSIDリストに対してハッシュ演算を実行することによって得られる。この場合、エッジ・ノードは、第1のSIDリストに対してハッシュ演算を実行して、第1のハッシュ値を得ることができる。第1のハッシュ値を得た後、エッジ・ノードは、ローカルに記憶されているいくつかのハッシュ値を探索して、それらローカルに記憶されているハッシュ値が、計算された第1のハッシュ値を含むかどうかを判定してもよい。ローカルに記憶されたハッシュ値が第1のハッシュ値を含む場合、そのことは、第1のSIDリストによって示される経路が有効な経路であることを示す。よって、第1のパケットが検証に合格すると判定されてもよい。逆に、ローカルに記憶されたハッシュ値が第1のハッシュ値を含まない場合、第1のパケットが検証に失敗すると判断される。
ある実装では、第1のパケットは、第1のフィールドを含んでいてもよく、第1のフィールドは、検証されるべきSIDの数を示してもよい。第1のパケットを受信した後、エッジ・ノードは第1のパケットをパースして第1のフィールドの値を得て、さらにBSIDとSRH内のN個のSIDとを取得し、BSIDとSRH内のN個のSIDに基づいて第1のパケットを検証する。
ある実装では、ターゲット・フィールドがSLフィールドを含む場合、エッジ・ノードが第1のパケット内のBSIDとセグメント・ルーティング・ヘッダSRH内のターゲット・フィールドに基づいて第1のパケットを検証する特定の実装では、エッジ・ノードは、BSIDが信頼領域内にあることを判別し、ターゲット・フィールドの値が0であるかどうかを判定してもよい。ターゲット・フィールドの値が0である場合、そのことは、第1のパケットが、信頼領域の外の場所から信頼領域に転送される有効なパケットであることを示す。よって、第1のパケットが検証を合格すると判定されてもよい。ターゲット・フィールドの値が0でない場合、第1のパケットが検証に失敗すると判断されてもよい。
ある実装では、エッジ・ノードは、さらに、第2のパケットを受信してもよい。第2のパケットは第1のパケットに似ており、第2のパケットもSRv6パケットであり、第2のパケットの宛先アドレスは前記BSIDである。第2のパケットを受信した後、エッジ・ノードは第2のパケットを検証してもよい。エッジ・ノードが第1のパケットを検証するのと同様に、エッジ・ノードは、第2のパケット内のBSIDと第2のパケットのSRH内のターゲット・フィールドに基づいて、第2のパケットを検証し、第2のパケットが検証に合格したときに、第2のパケットを転送してもよい。第2のパケットの検証中に、BSIDが検証されるだけでなく、ターゲット・フィールドも検証される。したがって、検証に合格する第2のパケットは、有効なパケットと見なされ、信頼領域を通じて第2のパケットを転送することは、セキュリティ・リスクをもたらさない。本願のこの実施形態において提供される解決策は、SRv6技術を使用してパケットを転送することによって引き起こされるセキュリティ・リスクを低減することができる。
第2の側面によれば、本願のある実施形態は、パケット転送方法を提供する。この方法は、信頼領域内のエッジ・ノードが、第1のパケットを受信し、第1のパケットはSRv6パケットであり、第1のパケットの宛先アドレスがバインディング・セグメント識別子BSIDであり;エッジ・ノードが、第1のパケット内のBSIDと、第1のパケットのセグメント・ルーティング・ヘッダSRH内のターゲット・フィールドに基づいて、第1のパケットを検証し;エッジ・ノードが、検証に合格する第1のパケットを転送する、ことを含む。本願のこの実施形態では、信頼領域の外のノードは、BSIDを使用することによって信頼領域にアクセスすることが要求されるだけでなく、第1のパケットが、セグメント・ルーティング・ヘッダ内のターゲット・フィールドを参照して検証される必要がある。第1のパケットをBSIDのみを使用して検証する解決策と比較して、この解決策は、第1のパケットを検証する際により多くの要因を考慮する。つまり、SRv6パケットが信頼領域を通じて転送されることを許容するための検証基準が、より厳格である。よって、SRv6技術を使用してパケットを転送することによって引き起こされるセキュリティ・リスクが低減される。
第3の側面によれば、本願の実施形態は、転送制御方法を提供する。この方法は以下を含む:制御管理装置が、セキュリティ保護ポリシーを取得する。セキュリティ保護ポリシーは、信頼領域内のエッジ・ノードに、受信されたSRv6パケットをBSIDとSRH内のターゲット・フィールドとに基づいて検証することを指示する。制御管理装置は、セキュリティ保護ポリシーを信頼領域のエッジ・ノードに送信する。本願のこの実施形態では、制御管理装置は、信頼領域内のエッジ・ノードに、受信されたSRv6パケットを、BSIDおよびSRH内のターゲット・フィールドに基づいて検証することを指示するために、セキュリティ保護ポリシーを送達する。第1のパケットをBSIDのみを使用して検証する解決策と比較して、この解決策は、第1のパケットを検証する際により多くの要因を考慮する。つまり、SRv6パケットが信頼領域を通じて転送されることを許容するための検証基準が、より厳格である。よって、SRv6技術を使用してパケットを転送することによって引き起こされるセキュリティ・リスクが低減できる。
ある実装では、制御管理装置は、経路計算要素通信プロトコルPCEPメッセージを使用することにより、信頼領域内のエッジ・ノードにセキュリティ保護ポリシーを送信してもよい。たとえば、セキュリティ保護ポリシーを搬送するために、PCEPメッセージにおいて新しいオブジェクトが拡張される、または既存のオブジェクトにおいて新しいTLVフィールドが拡張される。
ある実装では、制御管理装置は、境界ゲートウェイ・プロトコルBGPメッセージを使用して、信頼領域内のエッジ・ノードにセキュリティ保護ポリシーを送信してもよい。たとえば、セキュリティ保護ポリシーを運ぶために、拡張属性がBGPメッセージに追加されてもよく、または、新しいTLVフィールドが既存の属性において拡張されてもよい。既存の属性は、たとえば、境界ゲートウェイ・プロトコル・フロー仕様BGP FS属性であってもよい。
ある実装では、制御管理装置は、ネットワーク構成プロトコルNETCONFパケットを使用して、信頼領域内のエッジ・ノードにセキュリティ保護ポリシーを送信してもよい。
ある実装では、制御管理装置は、単純ネットワーク管理プロトコルSNMPパケットを使用して、信頼領域内のエッジ・ノードにセキュリティ保護ポリシーを送信してもよい。
ある実装では、ターゲット・フィールドはBSIDの次ホップSIDを含む;ターゲット・フィールドはフィールド識別子SIDリストにおいてN個のSIDを含み、N個のSIDにおける最初のSIDはBSIDの次ホップSIDであり、N個は1以上である;または、ターゲット・フィールドは残りセグメントSLを含む。
ある実装では、Nが1より大きい場合、N個のSIDはSIDリストにおけるN個の連続するSIDである。
ある実装では、ターゲット・フィールドがBSIDの次ホップSIDを含む場合、セキュリティ保護ポリシーは、信頼領域内の有効なBSIDおよび有効なネットワーク・セグメントを担持する。
ある実装では、信頼領域内の有効なBSIDおよび有効なネットワーク・セグメントは、BGP FSの拡張属性において搬送されてもよい。たとえば、信頼領域内の有効なBSIDは、BGP FSの拡張属性タイプ17において搬送され、有効なネットワーク・セグメントはBGP FSの拡張属性タイプ18において搬送される。
ある実装では、ターゲット・フィールドがBSIDの次ホップSIDを含む場合、セキュリティ保護ポリシーは、信頼領域内の有効なBSIDおよび第1のネットワーク・セグメントを担持する。
ある実装では、信頼領域内の有効なBSIDおよび第1のネットワーク・セグメントは、BGP FSの拡張属性において担持されてもよい。たとえば、信頼領域内の有効なBSIDは、BGP FSの拡張属性タイプ17において担持され、第1のネットワーク・セグメントはBGP FSの拡張属性タイプ18において担持される。
ある実装では、ターゲット・フィールドがセグメント識別子SIDリストにおけるN個のSIDを含む場合、セキュリティ保護ポリシーは、有効な経路を示すSIDリストを担持し、SIDリストは信頼領域における有効なBSIDを含む。
ある実装では、有効な経路を示すSIDリストは、BGP FSメッセージの拡張属性において担持されてもよい。たとえば、有効な経路を示すSIDリストは、BGP FSメッセージの拡張属性タイプ19において担持されてもよい。
第4の側面によれば、本願のある実施形態は、通信インターフェースおよび該通信インターフェースに接続されたプロセッサを含むエッジ・ノードを提供する。エッジ・ノードは、通信インターフェースおよびプロセッサを使用することによって、第1の側面または第1の側面の実装のいずれか1つによる方法を実行する、または第2の側面または第2の側面の実装のいずれか1つによる方法を実行するように構成される。
第5の側面によれば、本願のある実施形態は、通信インターフェースおよび該通信インターフェースに接続されたプロセッサを含む制御管理装置を提供する。制御管理装置は、通信インターフェースおよびプロセッサを使用することによって、第3の側面または第3の側面の可能な実装のいずれか1つによる方法を実行するように構成される。
第6の側面によれば、本願のある実施形態は、エッジ・ノードを提供する。エッジ・ノードは、メモリおよびプロセッサを含む。メモリはプログラム・コードを記憶するように構成される。プロセッサは、プログラム・コード内の命令を実行して、エッジ・ノードが第1の側面または第1の側面の可能な実装のいずれか1つによる方法を実行できるようにする、またはエッジ・ノードが第2の側面または第2の側面の可能な実装のいずれか1つによる方法を実行できるようにするように構成される。
第7の側面によれば、本願の実施形態は、制御管理装置を提供する。制御管理装置は、メモリおよびプロセッサを含む。メモリはプログラム・コードを記憶するように構成される。プロセッサは、プログラム・コード内の命令を実行して、制御管理装置が第3の側面または第3の側面の可能な実装のいずれか1つによる方法を実行できるようにするように構成される。
第8の側面によれば、本願のある実施形態は、コンピュータ読み取り可能な記憶媒体を提供する。コンピュータ読み取り可能記憶な媒体は命令を記憶する。命令がコンピュータ上で実行されると、コンピュータは、第1の側面または第1の側面の可能な実装のいずれか1つによる方法を実行できるようにされる、コンピュータは、第2の側面または第2の側面の可能な実装のいずれか1つによる方法を実行できるようにされる、またはコンピュータは、第3の側面または第3の側面の可能な実装のいずれか1つによる方法を実行できるようにされる。
第9の側面によれば、本願のある実施形態は、通信システムを提供する。通信システムは、エッジ・ノードおよび制御管理装置を含む。制御管理装置は、第3の側面または第3の側面の可能な実装のいずれか1つによる方法を実行するように構成される。
第10の側面によれば、本願のある実施形態は、通信システムを提供する。通信システムは、エッジ・ノードおよび制御管理装置を含む。エッジ・ノードは、第1の側面または第1の側面の可能な実装のいずれか1つによる方法を実行するように構成される、またはエッジ・ノードは、第2の側面または第2の側面の可能な実装のいずれか1つによる方法を実行するように構成される。
本願の実施形態または従来技術における技術的解決策をより明確に記述するために、以下では実施形態または従来技術を説明するために使用される添付の図面を簡単に説明する。以下の説明における添付の図面は、本願のいくつかの実施形態を示すものであり、当業者が創造的努力なしにこれら添付の図面から他の図面を引き出しうることは明らかである。
本願のある実施形態によるSRv6パケットの概略構造図である。
本願のある実施形態によるパケット転送方法の概略図である。
本願のある実施形態によるネットワークの概略構造図である。
本願のある実施形態による別のネットワークの概略構造図である。
本願のある実施形態による別のネットワークの概略構造図である。
本願のある実施形態による別のSRv6パケットの概略構造図である。
本願のある実施形態によるパケット転送方法の概略フローチャートである。
本願のある実施形態によるパケット転送方法の概略フローチャートである。
本願のある実施形態によるパケット転送方法の概略フローチャートである。
本願のある実施形態による転送制御方法の概略フローチャートである。
本願のある実施形態によるエッジ・ノードの概略構造図である。
本願のある実施形態による制御管理装置の概略構造図である。
本願のある実施形態によるエッジ・ノードの概略構造図である。
本願のある実施形態による制御管理装置の概略構造図である。
本願のある実施形態によるエッジ・ノードの概略構造図である。
本願のある実施形態による制御管理装置の概略構造図である。
本願の実施形態は、SRv6技術を使用してパケットを転送する際に存在するセキュリティ・リスクを低減するためのパケット転送方法を提供する。
理解を容易にするために、SRv6技術を使用してパケットを転送することについて最初に簡単に説明する。
SRv6技術がパケットを転送するために使われるとき、ヘッド・ノードがパケット転送経路を指定し、トランジット・ノードが、パケットが宛先ノードに転送されるまで、ヘッド・ノードによって指定された転送経路に基づいてパケット転送を案内する。SRv6技術を使用して転送されるパケットは、SRv6パケットとも呼ばれる。具体的には、理解のために図1を参照する。図1は、本願のある実施形態によるSRv6パケットの概略構造図である。図1に示されるように、SRv6パケットは、IPv6ヘッダ(IPv6 header)101、セグメント・ルーティング・ヘッダ102、およびペイロード103を含む。セグメント・ルーティング・ヘッダ102は、パケット転送経路を示すセグメント識別子リスト(segment identifier list、SIDリスト)を含む。ある実装では、SIDリストはいくつかのノードSIDを含んでいてもよく、たとえば、いくつかのIPv6アドレスを含んでいてもよい。ノードSIDは、パケット転送プロセスにおいて通過されるノードを示す。さらに別の実装では、SIDリストは、いくつかの隣接リンクSIDを含んでいてもよく、隣接リンクSIDは、パケットが転送されるときに通る隣接リンクを示す。隣接リンクは、2つのノード間の直接リンクを指す。さらに別の実装では、SIDリストは、ノードSIDおよび隣接リンクSIDをさらに含んでいてもよい。
IPv6ヘッダ101は宛先アドレス(destination address、DA)フィールド(図1には示さず)を含む。DAフィールドの値は、SRv6パケット転送中に変化する。SRH 102は、残りセグメント(segment left、SL)フィールド(図1には示さず)を含む。SLフィールドは、SIDリストにおける、処理されていないSIDの数を示す。SLは0からの番号である。SLの値がmであるとき、SIDリスト内の未処理のSIDの数は(m+1)であり、セグメント・リストsegment list[m]が処理中である。SIDリスト内のSIDを処理するとは、SIDによって示されるノードにパケットを転送することを意味する。SLの値がmに等しいとき、IPv6ヘッダ101における宛先アドレスはsegment list[m]である。SRv6パケットを転送するとき、ヘッド・ノードとトランジット・ノードは、SLフィールドの値とSIDリストに基づいて、パケット転送のための次ホップ宛先ノードを決定できる。具体的には、トランジット・ノードがSRv6パケットを受信した後、もしSRv6パケット内の宛先アドレスがそのトランジット・ノードのアドレスであるなら、トランジット・ノードはSLフィールドの値から1を引いて、1を引くことによって得られるSLフィールドの値をインデックスとして使って、パケットが転送される次ホップ宛先ノードを決定し、パケットが転送される次ホップ宛先ノードを決定した後、宛先アドレス・フィールドの値を、決定された次ホップ宛先ノードのIPv6アドレスに修正してもよい。
図2を参照すると、以下は、ヘッド・ノードおよびトランジット・ノードがSRv6技術を使用してパケットを転送する具体的な仕方を説明する。図2は、本願のある実施形態によるパケット転送方法の概略図である。図2に示されるように、ヘッド・ノード201は、パケットがノード202およびノード203を順番に通過し、宛先ノード204に転送されることを決定する。ヘッド・ノード201によって取得されたSRv6パケットのSRHは、SIDリストを担持する。SIDリストは3つのIPv6アドレスを含む:segment list[2]において担持されるアドレス2、segment list[1]において担持されるアドレス3、およびsegment list[0]において担持されるアドレス4である。アドレス2はノード202のアドレスであり、アドレス3はノード203のアドレスであり、アドレス4はノード204のアドレスである。SRv6パケットを取得した後、ヘッド・ノード201は、SRv6パケットの宛先アドレスをアドレス2に修正し、SLフィールドの値を2に修正する。次いで、ノード201は、修正されたSRv6パケットをノード202に転送する。ノード202によって受信されたSRv6パケットはSIDリストを含み、SLフィールドの値は2に等しい。SRv6パケットを受信した後、ノード202は、宛先アドレスがノード202のアドレスであることを判別する。よって、ノード202は、SLフィールドの値から1を減算して1を得て、1をインデックスとして使用することによって、パケット転送のための次ホップ宛先ノードが、segment list[1]において担持されるアドレス3によって示されるノード203であることを判別し、SRv6パケットの宛先アドレスをアドレス3に修正する。次いで、ノード202は、SRv6パケットをノード203に転送する。同様に、ノード203によって受信されたSRv6パケットはSIDリストを含み、SLフィールドの値は1に等しい。SRv6パケットを受信した後、ノード203は、宛先アドレスがノード203のアドレスであることを判別する。よって、ノード203は、SLフィールドの値から1を減算して0を得て、0をインデックスとして使用することによって、パケット転送のための次ホップ宛先ノードが、segment list[0]において担持されるアドレス3によって示されるノード204であることを判別し、SRv6パケットの宛先アドレスをアドレス4に修正し、SRv6パケットをノード204に転送して、パケット転送を完了する。
ノード201、ノード202、ノード203、およびノード204はすべて、SRv6技術をサポートするノードである。ノード201がSRv6パケットをノード202に転送するプロセスにおいて、SRv6パケットは、図2には示されていないいくつかの他のノードを通過してもよい。さらに、図2は、SRH 102がノードSIDを担持する例を用いて記述されている。しかしながら、SRH 102は隣接リンクSIDを担持する、またはSRH 102はノードSIDおよび隣接リンクSIDを担持する。具体的なパケット転送方法の仕方は、SRH 102において担持されるノードSIDの転送の仕方と同じであり、詳細は、ここでは再度説明されない。
いくつかの実施形態では、イーサネットパケットの長さが適正な範囲内である必要があることを考慮して、SIDリストが比較的大量のデータを占有する場合、ペイロード103のデータ量が影響を受ける。SIDリストによって占有されるデータ量が多くなるほど、ネットワーク全体のネットワーク性能により大きな影響を与える。よって、ノード201によって取得されたSRv6パケット内のSIDリストは、アドレス2を含まなくてもよく、それにより、SIDリストによって占有されるデータの量が低減される。このシナリオでは、ノード201によって取得されたSRv6パケット内のSLフィールドの値は、まだ2である。SRv6パケット転送中において、SIDリストがアドレス2を含まない場合、そのようなSRv6パケット転送モードは、Reduce〔リデュース〕モードと呼ばれることもある。対応して、SIDリストがアドレス2を含む場合、そのようなSRv6パケット転送モードは、普通モードと呼ばれることもある。
前述の記述から、パケットがSRv6技術を使用して転送される場合、トランジット・ノードはSIDリストに基づいてパケットを転送するが、SIDリストを検証しないことがわかる。この場合、ネットワーク・ハッカーが、ネットワーク攻撃を実行するために悪意をもってSIDリストを改竄し、ネットワーク・セキュリティに影響する可能性がある。
現在、ネットワーク攻撃を避けるために、SRv6信頼領域が定義されてもよい。信頼領域は、ネットワーク攻撃を避けるネットワーク範囲を示す。信頼領域は、複数の仕方で決定でき、たとえばネットワーク・シナリオに基づいて決定されてもよい。たとえば、ネットワーク内のコア・ネットワーク部分が信頼領域として指定される。あるいはまた、信頼領域は、サービス・タイプに基づいて決定されてもよい。たとえば、特定のサービス・パケットを送信するネットワーク範囲が、信頼領域として決定される。具体的には、信頼領域が攻撃されないことを保証するために、アクセス制御リスト(access control list、ACL)トラフィック・フィルタリング・ポリシーが、信頼領域内のエッジ・ノードまたはトランジット・ノードにおいて構成されてもよい。たとえば、信頼領域内のエッジ・ノードは、受信されたSRv6パケットを検証する。もしSRv6パケットの宛先アドレスが信頼領域内のノードのアドレスであれば、エッジ・ノードはSRv6パケットを破棄する。別の例では、信頼領域内のトランジット・ノードは、受信されたSRv6パケットを検証する。もしSRv6パケットの送信元アドレスが信頼領域の外のノードのアドレスであれば、トランジット・ノードはSRv6パケットを破棄する。このように、信頼領域外のSRv6パケットは、信頼領域に送信されることができない。信頼領域で生成されたSRv6パケットだけが転送され、信頼領域が攻撃されることが防止される。信頼領域におけるエッジ・ノードは、信頼領域外のノードと直接通信するノードである。信頼領域におけるトランジット・ノードは、エッジ・ノード以外のノードである。
いくつかの実施形態では、SRv6パケットは、信頼領域を通して転送される必要がある。たとえば、信頼領域外のSRv6パケットが信頼領域に転送される必要がある、または、第1の領域で生成されたSRv6パケットが信頼領域を通じて第2の領域に転送される必要がある。ここで、第1の領域と第2の領域は、前記信頼領域とは異なる。この場合、どのようにしてネットワーク・セキュリティを保証するかが、現在解決すべき緊急の課題である。
本願の発明者は、信頼領域のセキュリティを確保するために、信頼領域のネットワーク・トポロジーの漏洩を防ぎ、信頼領域が攻撃される可能性を減らすことを見出す。SRv6パケットが信頼領域を通じて転送される必要があるとき、SRv6パケットはBSIDを使用して信頼領域にアクセスできる。BSIDは、転送経路を同定することができる。
具体的には、一例では、制御管理装置が、信頼領域内の転送経路を同定するBSIDを生成することができる。対応して、SRv6パケットの転送経路を計算する際に、制御管理装置は、BSIDを含むSIDリストを取得することができる。また、BSID生成後、制御管理装置は、BSIDとBSIDによって示される転送経路との間の対応を信頼領域内のエッジ・ノードに送ってもよく、それにより、信頼領域内のエッジ・ノードは、SRv6パケットをチェックし、SRv6パケットが検証に合格した場合に、信頼領域においてパケットを転送する。別の例では、信頼領域におけるエッジ・ノードがBSIDを生成し、BSIDとBSIDによって示される転送経路との間の対応を制御管理装置に送信してもよく、それにより、SRv6パケットの転送経路を計算するとき、制御管理装置は、BSIDを含むSIDリストを取得する。本願の実施形態で言及される制御管理装置は、たとえば、ネットワーク管理ソフトウェアが実行される装置であってもよく、または、たとえば、コントローラであってもよい。これは、本願のこの実施形態において特に限定されない。
BSIDと、BSIDによって示される転送経路との間の対応については、ここでは記述のための例が使用される:BSID 1は信頼領域内の転送経路1を示し、その対応は、たとえば、BSID 1と転送経路1を示すSIDリストとの間の対応であってもよい。これは、次の表1を参照して理解されうる。
表1に示されるように、BSID 1によって示される転送経路は、ノード1、ノード2、ノード3を順に通過する経路である。表1は、理解を容易にするために示されているだけであり、本願のこの実施形態に対する制限を構成しない。
図3aを参照して、以下では、信頼領域内のエッジ・ノードがBSIDに基づいてSRv6パケットを検証し、信頼領域内のエッジ・ノードが検証に合格するSRv6パケットを信頼領域内で転送する具体的な実装について説明する。
図3aは、本願のある実施形態によるネットワークの概略構造図である。図3aに示されるように、ノードR1は第1の領域100内のノードであり、ノードR2およびノードR4は信頼領域200におけるエッジ・ノードであり、ノードR5は第2の領域300内のノードである。ノードR2はノードR1と直接通信することができ、ノードR4はノードR5と直接通信することができる。ノードR6、ノードR7、およびノードR8はみな、信頼領域200内のノードである。いくつかの実施形態では、第1の領域100および第2の領域300も、信頼領域として定義されてもよい。
本願のこの実施形態では、信頼領域200は、アクセス・ネットワーク、ベアラ・ネットワーク、コア・ネットワーク、オペレーター・ネットワーク、またはキャンパス・ネットワークに属してもよい。これは、本願のこの実施側面において特に限定されない。一例では、信頼領域200はオペレーター・ネットワークに属してもよく、ノードR2は、セル・サイト・ゲートウェイ(cell site gateway、CSG)装置として顧客設備室に配備され、第1の領域100は、企業ネットワークに属し、ノードR1は、顧客施設装置(customer premise equipment、CPE)装置である。
図3aに示されるシナリオでは、ヘッド・ノードR1は、BSIDを含むSRv6パケットを取得する。SRv6パケットを転送するとき、ノードR1は、SRv6パケットの宛先アドレスをBSIDに修正し、修正されたパケットを信頼領域200内のノードR2に転送する。SRv6パケットを受信した後、ノードR2は、SRv6パケットの宛先アドレスを使用することによってSRv6パケットを検証し、宛先アドレスが信頼領域200内の有効なBSIDである場合、SRv6パケットが検証に合格することを決定する。具体的には、SRv6パケット中の宛先アドレスがアドレスAであるとすると、ノードR2は、たとえば、ローカルに記憶されたBSIDリストにおいてアドレスAを検索することができる。アドレスAが存在すれば、そのことは、アドレスAが信頼領域における有効なBSIDであることを示す。この場合、ノードR2は、信頼領域においてSRv6パケットを転送する。ノードR2にローカルに記憶されたBSIDリストは、信頼領域における有効なBSIDを含む。
SRv6パケットを転送するとき、ノードR2はSRv6パケットを再カプセル化し、BSIDを、転送経路を示すSIDリストに変換し、該SIDリストをSRv6パケットにおけるSRHのSIDリストにカプセル化してもよい。このようにして、SRv6パケットは信頼領域において転送される。
本願のこの実施形態では、ノードR2は、複数のカプセル化態様でSRv6パケットを再カプセル化することができる。具体的なカプセル化態様は、SRv6パケットの転送態様に関係する。以下は、ノードR2がSRv6パケットを再カプセル化するための2つの可能な実装を説明する。
ある実装では、SRv6パケットがトンネルに基づいて転送される場合、SRv6パケットを再カプセル化するとき、ノードR2は、IPv6ヘッダおよびSRHをもとのIPv6ヘッダおよびもとのSRHに追加してもよい。もとのIPv6ヘッダと宛先アドレス・フィールドともとのSRHにおけるSLフィールドは、従来技術と同じ技術を用いて更新される。追加されたIPv6ヘッダの送信元アドレスはノードR2のアドレスであり、宛先アドレスはBSIDに対応するSIDリストにおける次ホップSIDである。
理解のために図3bを参照する。図3bは、本願のある実施形態による別のネットワークの概略構造図である。図3bに示されるように、ノードR1によって取得されたSRv6パケットでは、IPv6ヘッダ301において担持される送信元アドレスはノードR1のアドレスであり、宛先アドレスはノードR2のアドレスである。SRH 302内のSIDリスト・フィールドは、(R5,R2,…)を含む。R2は、信頼領域内のBSIDであり、BSIDによって示される経路は、ノードR2、ノードR3、およびノードR4を順に通過する転送経路である。SIDリスト・フィールドにおける省略記号は、SRv6パケットがノードR1によって他のノードから受信される場合に有効であり、ノードR1より前のSRv6パケットの転送経路を示す。SIDリスト・フィールドにおけるR5は、ノードR5のSIDである。ノードR1がSRv6パケットを取得するとき、SLフィールドの値は2である。SLフィールドの値を1に修正した後、ノードR1はノードR2にSRv6パケットを送信する。SRv6パケットを受信した後、ノードR2は、BSIDに対応するSIDリストをローカルに探す。見つかったSIDリストは(R3,R4)である。SIDリストにおけるR3はノードR3のSIDであり、SIDリストにおけるR4はノードR4のSIDである。ノードR2は、追加されたSRH 303において、見つかったSIDリストをカプセル化する。図3bに示されるように、SRH 303内のSLフィールドの値は1に等しく、ノードR2は、SLフィールドの値に基づいて、宛先アドレスがR3であると判断する。よって、ノードR2は、追加されたIPv6ヘッダ304における宛先アドレスをR3に修正し、パケット・ヘッダ304の送信元アドレスをR2に修正する。もとのIPv6ヘッダ301では、送信元アドレスはR1であり、宛先アドレスはR5である。もとのSRH 302におけるSLフィールドの値は0である。SRv6パケットが信頼領域200において転送されるとき、IPv6ヘッダ301における送信元アドレス・フィールドと宛先アドレス・フィールドの内容は変わらないままであり、SRH 302におけるSLフィールドの値も変わらないままである。SRv6パケットがR4ノードに転送された後、R4ノードはSRH 303からIPv6ヘッダ304を除去し、R4ノードはSRH 302に基づいてSRv6パケットを転送し続ける。
別の実装では、SRv6パケットがトンネルに基づいて転送されない場合、SRv6パケットを再カプセル化するとき、ノードR2は、もとのSRHにおいて、BSIDに対応するSIDリストを直接含める。
理解のために図3cを参照する。図3cは、本願のある実施形態による別のネットワークの概略構造図である。図3cおよび図3bにおける同じ部分については、図3bの前述の説明を参照されたい。詳細は、ここでは再度説明しない。図3cに示されるように、ノードR2は、BSID 302に対応するSIDリスト(R3,R4)をSRHに直接含める。IPv6ヘッダ301において、送信元アドレスはR1であり、宛先アドレスはR3である。SRv6パケットがノードR4に転送された後、R4はSRv6パケットをノードR5に転送することに進む。
ヘッド・ノードがBSIDを使用して信頼領域にアクセスする上記の仕方は、信頼領域のネットワーク・トポロジーが開示されないことをある程度、保証することができる。しかしながら、信頼領域におけるエッジ・ノードは、BSIDのみを検証し、SIDリスト内の他のSIDを検証しない。この場合、SIDリスト内の他のSIDが改竄された場合でも、ネットワークが攻撃される可能性がある。たとえば、理解のために図3aを参照されたい。SRv6パケットの有効な宛先ノードはノードR5であると想定される。SRv6パケット内のSIDリスト内のあるSIDが、ノードR5が信頼領域200内の別のノードのSIDに改竄されたことを示す場合、信頼領域200のセキュリティが影響を受ける。SRv6パケット内のSIDリスト内のあるSIDが、ノードR5が第2の領域300内の別のノードのSIDに改竄されたことを示す場合、第2の領域300のセキュリティが影響を受ける。
本願の発明者は、さらに別の実装では、SRHが改竄されるのを防止するために、鍵関連のハッシュベースのメッセージ認証コード(hashed-based message authentication code、HMAC)チェックが、信頼領域内のエッジ・ノードにおいて構成されてもよいことを見出す。HMAC演算は、鍵とデータを入力として使用し、データを固定長のデータ・ダイジェストに圧縮する。具体的には、理解のために図4を参照する。図4は、本願のある実施形態によるSRv6パケットの概略構造図である。図4に示されるように、セグメント・ルーティング・ヘッダSRHは、HMAC鍵IDフィールドおよびHMACフィールドを含む。HMAC鍵IDフィールドは、HMACチェックにおいて使用される鍵およびハッシュ・アルゴリズムを同定し、4バイトを含む。HMACフィールドはSRv6パケットにおける特定フィールドのデータ・ダイジェストを示し、32バイトを含む。該特定フィールドは、たとえば、図4に示される送信元アドレス(source address、SA)フィールド、最終エントリー(last entry)フィールド、フラグ(flags)フィールド、SIDリスト・フィールド、およびHMAC鍵IDフィールドを含む。図4に示されるSRv6パケットのフィールドは、本明細書では詳細に説明しない。
図4に示されるSRv6パケットでは、SAフィールドは16バイトを含み、最終エントリー・フィールドは1バイトを含み、フラグ・フィールドは1バイトを含み、SIDリスト・フィールドは3つのフィールド識別子、すなわち、segment list[2]、segment list[1]、およびsegment list[0]を含み、これらは合計48バイトを占める。HMACフィールドの値は、HMAC鍵IDによって示される鍵およびハッシュ・アルゴリズムを使用して前記特定フィールドを含む70バイトのデータを計算することによって得られるデータ・ダイジェストである。特定フィールドの総バイト数は、SIDリスト・フィールドに含まれるSIDの数に基づいて決定されてもよい。ここでは図4を参照して説明するだけだが、特定フィールドの総バイト数は70バイトに限定されない。
ある具体的な実装では、SRHが改竄されるのを防ぐためにHMACチェックが使われるとき、信頼領域の外のヘッド・ノードが鍵およびハッシュ・アルゴリズムを記憶していてもよい。SRv6パケットを生成するとき、信頼領域の外側のノードは、鍵、ハッシュ・アルゴリズム、および特定フィールドを使用することによってHMACを計算して、図4に示される構造を有するSRv6パケットを得て、該SRv6パケットを信頼領域内のエッジ・ノードに転送することができる。鍵およびハッシュ・アルゴリズムは、信頼領域におけるエッジ・ノードにあらかじめ記憶されていてもよい。SRv6パケットを受信した後、信頼領域内のエッジ・ノードは、HMAC鍵IDフィールドをパースし、HMAC鍵IDをインデックスとして使用して、HMACチェックのために使用される鍵およびハッシュ・アルゴリズムを検索する。次いで、信頼領域内のエッジ・ノードは、見つかった鍵およびハッシュ・アルゴリズムに基づいて、受信されたSRv6パケットにおける特定フィールドを計算して、データ・ダイジェストを得る。エッジ・ノードは、計算されたデータ・ダイジェストをSRv6パケットにおけるHMACフィールドの値と比較する。両者が同じなら、そのことは、SRv6パケットが改竄されていないことを示し、エッジ・ノードはそのパケットを転送を続けてもよい。両者が異なる場合、そのことは、SRv6パケットが改竄されていることを示し、エッジ・ノードはパケットを破棄してもよい。この場合、信頼領域外のヘッド・ノードが信頼されるノードとみなされる可能性があることに注意するべきである。鍵およびハッシュ・アルゴリズムをもつヘッド・ノードが積極的にパケットを改竄する場合、ネットワーク全体のセキュリティは保証できない。
いくつかの実施形態では、鍵およびハッシュ・アルゴリズムを有するヘッド・ノードが攻撃されたときに生じるネットワーク全体のセキュリティに対する脅威を避けるために、代替的に、制御管理装置がHMACを計算して、HMACをヘッド・ノードに送達してもよい。これは、本願のこの実施形態において特に限定されない。
上記の態様は、SRv6パケットが改竄されないことを保証することができるが、鍵およびハッシュ・アルゴリズムは、信頼領域内のエッジ・ノードにあらかじめ記憶される必要がある。鍵とハッシュ・アルゴリズムのセキュリティは、検証結果の信頼性にとって特に重要であるため、鍵とハッシュ・アルゴリズムのセキュリティを保護するために、追加的な保護施策が必要とされる。一般に、信頼領域内のエッジ装置は、小型の転送装置であり、限られたデータ処理能力をもつ。鍵とハッシュ・アルゴリズムのセキュリティの保護は、エッジ装置の比較的大量の計算資源を消費する。この場合、SRv6パケットが改竄されているかどうかを検証するために上記の態様が使用されると、信頼領域におけるエッジ装置のパフォーマンスが影響を受ける。結果として、上記の態様はおそらく使用されないことがありうる。
よって、信頼領域におけるエッジ・ノードの性能を保証しながら、SRv6技術を使用してパケットを転送する際に存在するセキュリティ・リスクをいかに最小化するかが、現在解決されるべき緊急の問題である。
この問題を解決するために、本願の実施形態は、パケット転送方法を提供する。以下は、図3aに示されるネットワークアーキテクチャーを参照して、本願の実施形態において提供されるパケット転送方法を説明する。図5は、本願のある実施形態によるパケット転送方法の概略フローチャートである。図5に示される方法100は、たとえば、S101、S102、およびS103aを使用することによって、またはS101、S102、およびS103bを使用することによって実装されうる。
S101:ノードR2が第1のパケットを受信する。ここで、第1のパケットはSRv6パケットであり、第1のパケットの宛先アドレスはBSIDである。
ノードR2については、図3aの前述の説明を参照されたい。詳細は、ここでは再度説明しない。SRv6パケットおよびSRv6パケットの宛先アドレスについては、SRv6パケットおよびSRv6パケット転送プロセスの前述の説明を参照されたい。詳細は、ここでは再度説明しない。
本願のこの実施形態では、第1のパケットは、信頼領域の外側のノードによってノードR2に送信され、信頼領域の外側のノードは、たとえば、図3aに示されるノードR1であってもよい。
本願のこの実施形態では、信頼領域のネットワーク・トポロジー・セキュリティを保証するために、信頼領域の外のノードは、信頼領域内の有効なBSIDを使用することによってのみ、信頼領域にアクセスすることができる。
S102:ノードR2が、前記BSIDと第1のパケットのSRH内のターゲット・フィールドとに基づいて、第1のパケットを検証する。
ノードR2が第1のパケットを受信した後、ネットワーク攻撃を避けるために、ノードR2は、第1のパケットが攻撃パケットであるかどうかを判定するために、第1のパケットを検証してもよい。具体的には、第1のパケットが検証に合格するとき、そのことは、第1のパケットが攻撃パケットではないことを示す。よって、ノードR2は、S103aにおける第1のパケットを転送するステップ、すなわち、信頼領域を横切る第1のパケットの転送を許容するステップを実行してもよい。第1のパケットが検証に失敗するときは、そのことは、第1のパケットが攻撃パケットかもしれないことを示す。この場合、第1のパケットが信頼領域を通じて転送されたら、信頼領域または別のネットワーク(たとえば、図3aに示される第2の領域300)に対してネットワーク攻撃が引き起こされる可能性がある。よって、ノードR2は、S103bにおいて、第1のパケットを破棄するステップを実行してもよい。
本願のこの実施形態において、ある側面では、信頼領域の外のノードは、信頼領域内の有効なBSIDを使用することによってのみ、信頼領域にアクセスすることができる。よって、第1のパケットが攻撃パケットであるかどうかは、第1のパケットの宛先アドレスが信頼領域内の有効なBSIDであるかどうかに基づいて決定されてもよい。別の側面では、SRv6パケットのSRHがパケット転送を案内するための鍵情報、たとえばSIDリストを含むことを考慮して、第1のパケットが攻撃パケットであるかどうかは、鍵情報を検証することによって決定されうる。よって、ノードR2は、第1のパケットにおけるBSIDと第1のパケットのSRH内のターゲット・フィールドとに基づいて、第1のパケットを検証することができる。
本願のこの実施形態のある実装では、ノードR2は、制御管理装置によって指示されるようにS102を実行してもよい。具体的には、制御管理装置は、セキュリティ保護ポリシーをノードR2に送信してもよい。ここで、セキュリティ保護ポリシーは指示情報を伝達し、該指示情報は、受信されたSRv6パケットを検証することをノードR2に指示する。具体的には、指示情報は、ノードR2に、受信されたSRv6パケット中のBSIDとSRH中のターゲット・フィールドに基づいてSRv6パケットを検証することを指示する。具体的には、制御管理装置は、ネットワーク構成プロトコル(Network Configuration Protocol、NETCONF)、簡易ネットワーク管理プロトコル(Simple Network Management Protocol、SNMP)、経路計算要素通信プロトコル(Path Computation Element Communication Protocol、PCEP)、境界ゲートウェイ・プロトコル(Border Gateway Protocol、BGP)などを用いて、ノードR2にセキュリティ保護ポリシーを送信してもよい。ある具体的な実装では、セキュリティ保護ポリシーは、境界ゲートウェイ・プロトコル・フロー仕様(Border Gateway Protocol Flow Specification、BGP FS)ルートを使用して送信されてもよい。
以下は、BGP FSルートについて説明する。
BGP FSルートは新しいBGPネットワーク層到達可能性情報と新しい拡張コミュニティ属性を含む。新しいネットワーク層到達可能性情報と新しい拡張コミュニティ属性を使うことによって、BGP FSルートは、対応するBGP FS規則を搬送することができ、BGP FS規則もトラフィック制御ポリシーとして考慮されてもよい。具体的には、BGP FS規則は、トラフィック・マッチング条件とトラフィック・マッチング後の対応するトラフィック処理アクションを含みうる。現在、トラフィック・マッチング条件はネットワーク層到達可能性情報としてBGP FSルートで運ばれ、トラフィック処理アクションは拡張コミュニティ属性としてBGP FSルートで運ばれる。現在、16のタイプのトラフィック・マッチング条件(タイプ1ないしタイプ16)がBGP FSにおいて定義されている。16のタイプのトラフィック・マッチング条件は、ここでは詳述しない。S102のある具体的な実装は、ターゲット・フィールドに基づいて決定されうる。S102の具体的な実装は、ターゲット・フィールドによって異なる。以下では、ターゲット・フィールドの具体的な内容と、ターゲット・フィールドに対応するS102の具体的な実装について説明する。
実装1:ターゲット・フィールドはBSIDの次ホップSIDである。
本願のこの実施形態では、一般に、SRv6パケットが信頼領域を通じて転送される必要があるとき、信頼領域は、信頼領域内のSRv6パケットの転送経路を示すBSIDを提供しうる。言い換えれば、BSIDの次ホップSIDは、理論的には、信頼領域と直接対話する、信頼領域外のノードを示す。理解のために図3bを参照する。BSIDの次ホップSIDは、第2の領域300内のノードR5を示す。
いくつかの実施形態において、第1のパケットが改竄されていない有効なパケットである場合、BSIDの次ホップSIDは、第1のパケットの有効な宛先ノードを示しうる。第1のパケットが有効な宛先ノードに正確に転送されることを保証するとともに、他のノードへのネットワーク攻撃を引き起こすことを避けるために、S102のある具体的な実装では、たとえば、ノードR2は、BSIDが信頼領域にあるかどうかを判定することができる。次に、ノードR2は、BSIDの次ホップSIDが、有効なネットワーク・セグメントにあるかどうかを判定する。ここで、第1のパケットの有効な宛先ノードは、該有効なネットワーク・セグメントにある。BSIDの次ホップSIDが有効なネットワーク・セグメントにある場合、そのことは、BSIDの次ホップSIDによって示されるノードが第1のパケットの有効な宛先ノードであることを示す。すなわち、BSIDによって示された経路を通して転送された後、第1のパケットは、第1のパケットの有効な宛先ノードに転送される。この場合、第1のパケットが検証に合格すると考えられてもよい。対応して、BSIDの次ホップSIDが前記有効なネットワーク・セグメントにない場合、そのことは、BSIDによって示される経路を通じて転送された後、第1のパケットは、第1のパケットの有効な宛先ノードに転送されず、他のノードに転送されることを示す。この場合、BSIDの次ホップSIDが改竄された可能性がある。したがって、第1のパケットが他のノードへの攻撃を引き起こす可能性がある。したがって、本願のこの実施形態では、BSIDの次ホップSIDが有効なネットワーク・セグメントにない場合、第1のパケットは検証に失敗する。
本願のこの実施形態では、たとえば、有効なネットワーク・セグメントは、ノードR2内に静的に構成されてもよく、または制御管理装置によってノードR2に送信されてもよい。これは、本願のこの実施形態において特に限定されない。有効なネットワーク・セグメントが制御管理装置によってノードR2に送信される場合、たとえばセキュリティ保護ポリシーをノードR2に送信するとき、制御管理装置は、有効なネットワーク・セグメントをセキュリティ保護ポリシーに含めて、該セキュリティ保護ポリシーをノードR2に送信してもよい。このように、制御管理装置がセキュリティ保護ポリシーおよび第1のネットワーク・セグメントを別々にノードR2に送信する解決策と比較して、この解決策は、制御管理装置とノードR2との間の対話の量を減らし、制御管理装置およびノードR2との入出力(input-output、IO)資源を節約することができる。
上述のように、制御管理装置は、BGP FSルートにセキュリティ保護ポリシーを含めて、該BGP FSルートをノードR2に送信してもよい。さらに、16のタイプのトラフィック・マッチング条件がBGP FSルートにおいて定義されている。よって、本願のこの実施形態では、BGP FSメッセージが拡張される可能性がある。たとえば、トラフィック・マッチング条件タイプ17とトラフィック・マッチング条件タイプ18が追加され、追加されたトラフィック・マッチング条件タイプ17はBSIDを搬送してもよく、追加されたトラフィック・マッチング条件タイプ18は有効なネットワーク・セグメントを搬送してもよい。
いくつかの実施形態では、有効なネットワーク・セグメントに含まれるノードが、第1のパケットの有効な宛先ノードに限定されなくてもよいことを考慮して、ネットワーク・ハッカーが、有効なネットワーク・セグメント内の他のノードへのネットワーク攻撃を引き起こすために第1のパケットを改竄することを防止するために、本願のこの実施形態のある実装では、有効なネットワーク・セグメントのマスクが、可能な限り長く設定されてもよい。一例では、タイプ18は、さらに、有効なネットワーク・セグメントのマスク長を担持してもよい。むろん、タイプ18は、本明細書に一つ一つ記載されていない他の情報をさらに担持していてもよい。
ノードR2がBSIDが信頼領域内にあるかどうかを判定する具体的な実装については、上述の図3aの関連する説明を参照されたい。詳細は、ここでは再度説明しない。
上記の有効なネットワーク・セグメントは、本願のこの実施形態では特に限定されない。実際の適用では、SRv6パケットが転送されるとき、パケットの宛先ノードを示すSIDは、ノードSIDであってもよいし、またはノード上に配備された仮想プライベートネットワーク(virtual private network、VPN)インスタンスのSIDであってもよい。VPNインスタンスのSIDは、略してVPN SIDと呼ばれる。むろん、SRHのSIDリストは、宛先ノードのSIDと、宛先ノードに配備されたVPNインスタンスのVPN SIDの両方を含みうる。ノードについては、ノードのSIDとノードのVPN SIDの両方が、ノードのロケーター・ルートによって示されるネットワーク・セグメントにある。ノードのロケーター・ルートは、ノードのノードSIDが属するネットワーク・セグメント・ルートをいう。よって、ある実施形態では、有効なネットワーク・セグメントは、有効な宛先ノードのロケーター・ルートによって示されてもよい。このようにして、BSIDの次ホップSIDがノードSIDであるかVPN SIDであるかにかかわらず、第1のパケットが改竄されたかどうかは、有効なネットワーク・セグメントを使用することによって決定できる。
以下は、タイプ17とタイプ18を、例を用いて簡単に説明する。なお、制御管理装置がセキュリティ保護ポリシーを送達する関連する解決策は、単に例として記載されており、本願のこの実施形態は、それに限定されるものではないことを理解しておくべきである。
タイプ17は、タイプとBSIDの2つのフィールド、すなわち<type,BSID>を含む。BSIDフィールドは、信頼領域内の有効なBSIDを担持し、タイプ・フィールドは、17の固定値をもつ。
タイプ18のフィールドは、タイプ・フィールド、演算子フィールド、および値フィールド、すなわち<type,[operator,value]+>を担持する。
タイプ・フィールドは18の値をもつ。
値フィールドは、有効なネットワーク・セグメントを担持する。値フィールドは、ネットワーク・プレフィクスとマスク長を含む。ネットワーク・プレフィクスは1バイトを含み、マスク長は16バイトを含む。
演算子フィールドは、それぞれビット0ないしビット7の8ビットを含む。
プラス記号「+」は、[演算子,値]の複数の組み合わせを含めることができることを示す。
演算子フィールドの各ビットの意味は、次の表2に示されている。
E:リスト終端ビット。Eの値は1で、現在の<operator,value>が<operator,value>の最後の組み合わせであることを示す。
A:「and」ビット。aの値が1である場合、そのことは、<operator,value>の現在のフィールドが<operator,value>の前のフィールドと「OR」関係をもつことを示す。aの値が0である場合、そのことは、<operator,value>の現在のフィールドは<operator,value>の前のフィールドと「AND」関係にあることを示す。
リザーブ:「リザーブ」フィールド。
Miss:BSIDの次のホップが、前記値によって示されるネットワーク・セグメント内にない場合に実行される処理アクションを示す。Missの値が0である場合、パケットは転送される。Missの値が1である場合、パケットは破棄される。
Match:BSIDの次のホップが前記値によって示されるネットワーク・セグメント内にある場合に実行される処理アクションを示す。Matchの値が0である場合、パケットは転送される。Matchの値が1であれば、パケットは破棄される。
BSIDおよび有効なネットワーク・セグメントを担持するセキュリティ保護ポリシーについて、ここで例が記載される:サービスについては、信頼領域内の転送経路に関する案内を提供するために、信頼領域の外側のノードについてはBSID b::1が提供される。サービスに対応するサービス・パケットの有効な宛先ノードは、c::1/64のネットワーク・セグメント内にある。信頼領域におけるエッジ・ノードについては、BGP FSルートは、セキュリティ保護ポリシーを送達するために使用される。具体的には、次のセキュリティ保護ポリシーは、<0x11,b::1>および<0x12,[0x82,c::1/64]>を含む。
0x11はタイプ17を示す。b::1はノードR2に、受信されたパケット1の宛先アドレスが有効なBSID b::1であるかどうかを検証することを指示する。0x12は、タイプ18を示す。[0x82,c::1/64]は、ノードR2に、BSIDの次ホップSIDがc::1/64によって示されるネットワーク・セグメント内にある場合、パケット1を転送し、それ以外の場合はパケット1を破棄することを指示する。
いくつかの実施形態では、第1のパケットが信頼領域を攻撃することを防止するために、S102のある具体的な実装では、たとえば、ノードR2は、BSIDが信頼領域内にあるかどうかを判定してもよい。次いで、ノードR2は、BSIDの次ホップSIDが第1のネットワーク・セグメント内にあるかどうかを判定する。ここで、信頼領域内のノードは、第1のネットワーク・セグメントに属する。BSIDの次ホップSIDが第1のネットワーク・セグメントにある場合、そのことは、BSIDの次ホップSIDによって示されるノードが信頼領域内のノードであることを示す。すなわち、BSIDによって示される経路を通して転送された後、第1のパケットは信頼領域を離れず、信頼領域において転送され続ける。この場合、BSIDの次ホップSIDが改竄された可能性がある。したがって、第1のパケットは、おそらく、信頼領域内のノードに対するネットワーク攻撃を引き起こしうる。したがって、本願のこの実施形態では、BSIDの次ホップSIDが第1のネットワーク・セグメントにある場合、第1のパケットは検証に失敗する。対応して、BSIDの次ホップSIDが第1のネットワーク・セグメントにない場合、そのことは、BSIDによって示される経路を通じて転送された後、第1のパケットは信頼領域を離れ、信頼領域外の別のノードに転送されることを示す。この場合、第1のパケットが検証に合格すると考えられてもよい。
本願のこの実施形態では、たとえば、第1のネットワーク・セグメントは、ノードR2内で静的に構成されてもよく、または制御管理装置によってノードR2に送信されてもよい。
これは、本願のこの実施形態において特に限定されない。第1のネットワーク・セグメントが制御管理装置によってノードR2に送信される場合、たとえば、セキュリティ保護ポリシーをノードR2に送信するとき、制御管理装置は、セキュリティ保護ポリシーに第1のネットワーク・セグメントを含めて、セキュリティ保護ポリシーをノードR2に送信してもよい。このように、制御管理装置がセキュリティ保護ポリシーおよび第1のネットワーク・セグメントをノードR2に別々に送信する解決策と比較して、この解決策は、制御管理装置とノードR2との間の対話の量を減らし、制御管理装置およびノードR2の入出力IO資源を節約することができる。
上述のように、制御管理装置は、BGP FSルートにセキュリティ保護ポリシーを含めて、BGP FSルートをノードR2に送信してもよい。さらに、16のタイプのトラフィック・マッチング条件がBGP FSルートで定義されている。よって、本願のこの実施形態では、BGP FSルートは拡張されてもよく、トラフィック・マッチング条件タイプ17とトラフィック・マッチング条件タイプ18が追加され、追加されたトラフィック・マッチング条件タイプ17はBSIDを担持してもよく、追加されたトラフィック・マッチング条件タイプ18は第1のネットワーク・セグメントを担持する。むろん、タイプ18は、他の情報、たとえば、第1のネットワーク・セグメントのマスク長、をさらに担持してもよく、これは、本明細書では一つ一つ説明されていない。
タイプ17およびタイプ18については、前述の関連説明を参照されたい。詳細は、ここでは再度説明しない。
BSIDおよび第1のネットワーク・セグメントを担持するセキュリティ保護ポリシーについては、ここでは例が記述される:信頼領域200内のあるアドレス範囲が、a::1/64のネットワーク・セグメントに対応する。サービスについては、BSID b::1が、信頼領域の外のノードのために提供され、信頼領域の中の転送経路に関する案内を提供する。信頼領域内のエッジ・ノードについて、BGP FSルートは、セキュリティ保護ポリシーを送達するために使用される。具体的には、次のセキュリティ保護ポリシーは:<0x11,b::1>および<0x12,[0x81,a::1/64]>を含む。
0x11は、タイプ17を示す。b::1は、ノードR2に、受信されたパケット1の宛先アドレスが有効なBSID b::1であるかどうかを検証することを指示する。0x11は、タイプ18を示す。[0x81,a::1/64]は、ノードR2に、BSIDの次ホップSIDがa::1/64によって示されるネットワーク・セグメントにない場合、パケット1を転送し、それ以外の場合は、パケット1を破棄することを指示する。
ノードR2が、たとえば、BSIDが信頼領域内にあるかどうかを判定しうる具体的な実装については、上述の図3aの関連する説明を参照されたい。詳細は、ここでは再度説明しない。
以上の説明から、実装1においては、SRv6パケットがBSIDを使用して信頼領域にアクセスした後、信頼領域が攻撃されないことが保証されることができる、または第1のパケットが有効な宛先ノードに転送されることができる。それにより、有効な宛先ノード以外のノードが攻撃されるのを防ぐことができる。加えて、鍵およびハッシュ・アルゴリズムの保護は含まれないので、ノードR2の計算資源が節約できる。よって、本願のこの実施形態の解決策によれば、ノードR2の性能を保証することを前提として、SRv6技術を使用してパケットを転送する際に存在するセキュリティ・リスクを可能な限り低減することができる。
実装2:ターゲット・フィールドは、第1のパケットのSRHのSIDリストにおけるN個のSIDである。
本願のこの実施形態では、Nの値は、1以上である。Nが1に等しい場合、SIDはBSIDの次ホップSIDである。Nの値が1より大きい場合、N個のSIDは、SRHのSIDリストにおけるN個の連続するSIDであり、N個のSIDの最初のSIDは、BSIDの次ホップSIDである。換言すれば、BSIDおよびN個のSIDは、第1のSIDリストを形成することができ、第1のSIDリストは、転送経路を示す。本願のこの実施形態では、第1のSIDリストは、ノードR2から宛先ノードへの第1のパケットの完全な転送経路を示してもよく、または第1のSIDリストは、完全な転送経路の一部を示しめしてもよい、すなわち、ノードR2から第1のノードへの第1のパケットの転送経路を示してもよい。第1のノードは、ノードR2と第1のパケットの宛先ノードとの間のノードである。
本願のこの実施形態のある実装では、ターゲット・フィールドがSRHのSIDリスト内のN個のSIDである場合、S102のある具体的な実装では、ノードR2はSIDリストをあらかじめ記憶してもよく、ノードR2に記憶されたSIDリストは有効な経路を示す。具体的には、ノードR2は、一つまたは複数のSIDリストをあらかじめ記憶していてもよく、1つのSIDリストは、1つの有効な経路を示す。ノードR2は、第1のSIDリストを、ローカルに記憶された諸SIDリストと比較してもよい。ローカルに記憶された諸SIDリストが第1のSIDリストを含んでいる場合、そのことは、第1のSIDリストによって示す経路が有効な経路であることを示す。よって、ノードR2は、第1のパケットが検証に合格すると判定してもよい。逆に、ローカルに記憶されたSIDリストが第1のSIDリストを含まない場合、第1のパケットは検証に失敗すると判断される。
ノードR2に記憶されるSIDリストは、次の表3を参照して理解されうる。表3は、2つのSIDリストを示す。表3は、理解を容易にするためにのみ出力され、本願のこの実施形態に対する限定を構成しない。ノードR2に記憶されるSIDリストの量は、表3に示される2つに限定されない。ノードR2に記憶されるSIDリストは、表3に示されるBSID-SID 1-SID 2およびBSID-SID 3に限定されない。
表3に示されるように、ノードR2に記憶されたSIDリストにおけるすべての最初のSIDはBSIDである。本願のこの実施形態のある実装では、ローカルに記憶されたSIDリストが第1のSIDリストを含むことをノードR2が判別する効率を改善するために、SIDリストを記憶するときに、ノードR2は、SIDリスト内の最初のBSIDをSIDリストのインデックスとして記憶してもよい。ローカルに記憶された諸SIDリストが第1のSIDリストを含むかどうかが決定される場合、第1のSIDリストにおけるBSIDは、ローカルに記憶されたSIDリストが第1のSIDリストを含むかどうかを決定するためのインデックスとして使用されうる。
ある実装では、ノードR2に記憶されたSIDリストは、ノードR2において静的に構成されていてもよい。さらに別の実装では、ノードR2に記憶されたSIDリストは、セキュリティ保護ポリシーを使用することによって、制御管理装置によってノードR2に送達されてもよい。
上述のように、制御管理装置は、BGP FSルートにセキュリティ保護ポリシーを含めて、該BGP FSルートをノードR2に送信してもよい。具体的には、BGP FSメッセージが拡張されてもよく、トラフィック・マッチング条件タイプ17とトラフィック・マッチング条件タイプ19が追加され、追加されたトラフィック・マッチング条件タイプ17がBSIDを担持してもよく、追加されたトラフィック・マッチング条件タイプ19が検証されるべき他のSIDを担持してもよい。
タイプ17については、上記のタイプ17の説明を参照されたい。詳細は、ここでは再度説明しない。以下は、タイプ19について簡単に説明する。
タイプ18と同様に、タイプ19は、タイプ・フィールド、演算子フィールド、および値フィールド、すなわち、<type,[operator,value]+>を含む。
タイプ・フィールドは19の値をもつ。
値フィールドは、SIDを識別するために使用される。
演算子フィールドは、それぞれビット0ないしビット7の8ビットを含む。
プラス記号「+」は、[演算子,値]の複数の組み合わせを含めることができることを示す。
演算子フィールドにおける各ビットの意味は、次の表4に示される。
E:リスト終端ビット。Eの値は1であり、現在の<operator,value>が<operator,value>の最後の組み合わせであることを示す。
セグメント・リスト番号:SID番号を担持する。
BSIDとN個のSIDとを担持するセキュリティ保護ポリシーについて、ここでは例が記述される:サービスについて、領域内の転送経路に関する案内を提供するために、BSID b::1が、信頼領域の外側のノードのために提供される。転送のための有効な経路は、次の表5に示されるSIDリストによって表されてもよい。
この場合、信頼領域におけるエッジ・ノードについて、制御管理装置はセキュリティ保護ポリシーを送達するためにBGP FSルートを使ってもよい。具体的には、セキュリティ保護ポリシーは:<0x11,b::1>、<0x13,[0x00,D1::1]、[0x01,D2::1]、[0x02,D3::1]、[0x83,B::1]を含む。
0x11はタイプ17を示す。b::1が有効なBSIDを示す。0x13は19を示す。[0x00,D1::1]はSegment list[0]=D1::1を同定する。<0x13,[0x01,D2::1]はSegment list[1]=D2::1を示す。[0x02,D3::1]はSegment list[2]=D3::1を示す。[0x83,B::1]はSegment list[3]=B::1を示し、<0x13.[0x83,B::1]は<operator,value>の最後の組み合わせである。
<0x11,b::1>、<0x13,[0x00,D1::1],[0x01,D2::1],[0x02,D3::1]および[0x83,B::1]>を受信した後、ノードR2は、SIDリストを記憶してもよい。SIDリストは、b::1、B::1、D3::1、D2::1、D3::1を含む。
本願のこの実施形態のさらに別の実装では、ターゲット・フィールドがSRHのSIDリストにおけるN個のSIDである場合、S102のある具体的な実装では、ノードR2は、いくつかのハッシュ値をあらかじめ記憶してもよい。たとえば、ノードR2は、ハッシュ・テーブルをあらかじめ記憶してもよく、ハッシュ・テーブルは、いくつかのハッシュ値を含む。ノードR2に記憶されたハッシュ値は、有効な経路に対応するSIDリストに対してハッシュ演算を実行することによって得られる。この場合、ノードR2は、第1のSIDリストに対してハッシュ演算を実行して、第1のハッシュ値を得ることができる。第1のハッシュ値を得た後、ノードR2は、ローカルに記憶されたいくつかのハッシュ値を探索し、それらのローカルに記憶されたハッシュ値が、計算された第1のハッシュ値を含むかどうかを判定することができる。具体的には、ローカルに記憶されたいくつかのハッシュ値は、第1のハッシュ値をインデックスとして使用することによって探索されてもよく、それにより、それらのローカルに記憶されたハッシュ値が第1のハッシュ値を含むかどうかを判定する。ローカルに記憶されたハッシュ値が第1のハッシュ値を含む場合、そのことは、第1のSIDリストによって示された経路が有効な経路であることを示す。よって、第1のパケットが検証を合格すると判定されてもよい。逆に、ローカルに記憶されたハッシュ値が第1のハッシュ値を含まない場合、第1のパケットは検証に失敗すると判断される。
本願のこの実施形態では、有効な経路に対応するSIDリストにおける最初のSIDはBSIDである。ローカルに記憶されたハッシュ値が第1のハッシュ値を含むことをノードR2が判別するのを助けるために、ノードR2は、ハッシュ値のインデックスとして、第1のBSIDを、そのハッシュ値が計算されるときに使ったSIDリストに記憶してもよい。対応して、ローカルに記憶されたハッシュ値が第1のハッシュ値を含むかどうかが決定されるとき、第1のSIDリストにおけるBSIDが、ローカルに記憶されたハッシュ値が第1のハッシュ値を含むかどうかを判定するためのインデックスとして使用されうる。むろん、ハッシュ値を記憶するとき、ノードR2は、そのハッシュ値が計算されるのに使用したSIDリストも、対応して記憶してもよい。これは、本願のこの実施側面において特に限定されない。
ノードR2にローカルに記憶されたハッシュ値は、次の表6を参照して理解されうる。表6は、3つの可能なハッシュ値記憶態様を示す。第1の態様では、ハッシュ値のみが記憶される。第2の態様では、ハッシュ値とBSIDが記憶される。第3の態様では、ハッシュ値と、そのハッシュ値が計算されるときに使用されたSIDリストが記憶される。表6は、理解を容易にするために示されているだけであり、本願のこの実施形態に対する限定を構成しない。
本願のこの実施形態のある実装では、第1のパケットは、第1のフィールドを含んでいてもよく、第1のフィールドは、検証されるべきSIDの数を示してもよい。第1のパケットを受信した後、ノードR2は、第1のパケットをパースして、第1のフィールドの値を得てもよく、それによりさらに、BSIDおよびSRH内のN個のSIDを得て、第1のパケットを検証するS102を実行してもよい。第1のフィールドは、本願のこの実施形態において特に限定されない。第1のフィールドは、SRv6パケットにおける予約フィールドであってもよい、あるいは第1のフィールドはSRv6パケットにおける拡張フィールドであってもよい。たとえば、第1のフィールドは、図4に示されるフラグ・フィールドの最後の4ビットであってもよい。本願のこの実施形態では、第1のフィールドに担持される値はNであってもよく、またはN+1であってもよい。これは、本願のこの実施形態において特に限定されない。具体的には、第1のフィールドに担持される値がNに等しい場合、第1のフィールドによって示されるSIDは第1のパケットの宛先アドレスを含まない、すなわち、BSIDを含まない。第1のフィールドで担持される値がN+1に等しいとき、第1のフィールドによって示されるSIDは第1のパケットの宛先アドレスを含む、すなわちBSIDを含む。
いくつかの実施形態では、ハッシュ値を記憶するとき、ノードR2は、さらに、ハッシュ値が計算されるのに使用したSIDリストに含まれるSIDの数を対応して記憶してもよい。対応して、第1のハッシュ値とローカルに記憶されたハッシュ値との間でマッチングが実行されるとき、ノードR2は、さらに、第1のフィールドの値に基づいてマッチングを実行し、第1のハッシュ値が計算されるときに使用された第1のSIDリストに含まれるSIDの数を、ローカルに記憶されたハッシュ・テーブル内のSIDの数と比較する。ローカルに記憶されたハッシュ・テーブルが第1のハッシュ値を含み、ローカルに記憶された第1のハッシュ値に対応するSIDの数が第1のSIDリストに含まれるSIDの数と等しい場合にのみ、第1のパケットが検証に合格することが決定される。さもなければ、第1のパケットが検証に失敗すると決定される。
この場合、ノードR2にローカルに記憶されたハッシュ・テーブルは、次の表7を参照して理解されうる。
ノードR2が第1のパケットを検証する態様を、表7を参照して例を用いて記述する。ノードR2にハッシュ値を記憶する態様は、表7に示される最初の態様であると想定される。この場合、第1のパケットを検証するとき、ノードR2は、たとえば、ローカルに記憶されたハッシュ値が第1のハッシュ値を含むかどうかを見出してもよい。第1のハッシュ値がハッシュ値1である場合、ノードR2は、ローカルに記憶されたハッシュ値が第1のハッシュ値を含むと判定する。さらに、ハッシュ値1が計算されるときに使用されたSIDリストに含まれるSIDの数がaであり、ハッシュ値1はローカルに記憶されたハッシュ値のうちにあるので、第1のSIDリストに含まれるSIDの数がaである場合、ノードR2は、第1のパケットが検証に合格すると決定してもよい。第1のSIDリストに含まれるSIDの数がaでない場合、ノードR2は、第1のパケットが検証に失敗すると決定してもよい。第1のSIDリストに含まれるSIDの数は、第1のフィールドの値に基づいて決定されてもよい。具体的には、第1のフィールドの値によって示される検証されるべきSIDがBSIDを含まない場合、第1のSIDリストに含まれるSIDの数は、第1のフィールドの値に1を加えたものに等しい。第1のフィールドの値によって示される検証されるべきSIDがBSIDを含む場合には、第1のSIDリストに含まれるSIDの数は、第1のフィールドの値に等しい。
上記の記述から、第1のSIDリストがノードR2から宛先ノードへの第1のパケットの完全な転送経路を示す場合、実装2では、第1のパケットが第1のパケットの有効な宛先ノードに転送できることが保証できる。第1のSIDリストがノードR2から第1のノードへの第1のパケットの転送経路を示す場合、実装2では、ノードR2と第1のノードとの間のネットワークは、ネットワーク攻撃を避けうる。
さらに、ローカルに記憶されたSIDリストまたはハッシュ値を維持するためにノードR2によって消費される計算資源は、鍵を保護し、ハッシュ・アルゴリズムのセキュリティを確保するためにノードR2によって消費される計算資源よりもはるかに少ない。よって、本願のこの実施形態における解決策によれば、ノードR2の性能を保証することを前提として、SRv6技術を使用してパケットを転送する際に存在するセキュリティ・リスクを可能な限り低減することができる。
実装3:ターゲット・フィールドはSLフィールドである。
上述のように、信頼領域は、信頼領域内のSRv6パケットの転送経路を示すBSIDを提供してもよい。いくつかの実施形態では、領域外のノードは、信頼領域にSRv6パケットを転送する必要がある。この場合、第1のパケットのSRHは、BSIDの次ホップSIDを含まない。言い換えると、BSIDは第1のパケットの転送経路を示す最後のSIDである。この場合、第1のパケットにおけるSLフィールドの値は0である。したがって、信頼領域に転送されるSRv6パケットが正常に信頼領域に転送されることを保証するために、S102のある具体的な実装では、たとえば、ノードR2は、BSIDが信頼領域内にあるかどうかを判定してもよい。次いで、ノードR2は、SLフィールドの値が0であるかどうかを判定する。SLフィールドの値が0である場合、そのことは、第1のパケットの宛先ノードが信頼領域内のノードであることを示す。よって、第1のパケットが検証に合格すると決定されてもよい。SLフィールドの値が0でない場合、ノードR2は、上記の実装1または実装2において第1のパケットを検証してもよい。
S103a:ノードR2は検証に失敗した第1のパケットを破棄する。
ノードR2が第1のパケットを破棄することは、たとえば、ノードR2がローカル記憶装置から第1のパケットを削除することであってもよい。
S103b:ノードR2は検証に合格する第1のパケットを転送する。
本願のこの実施形態では、第1のパケットを転送する特定の実装において、たとえば、ノードR2は、BSIDに対応するSIDリストを取得し、SIDリストに基づいて第1のパケットを再カプセル化し、再カプセル化された第1のパケットを転送してもよい。ノードR2がSIDリストに基づいて第1のパケットを再カプセル化する具体的な実装については、図3bおよび図3cの前述の説明を参照されたい。詳細は、ここでは再度説明しない。
前述の説明から、本願のこの実施形態におけるパケット転送方法によれば、ノードR2の性能を保証することを前提として、SRv6技術を使用してパケットを転送する際に存在するセキュリティ・リスクを可能な限り低減することができることがわかる。
本願の実施形態のある実施形態において、ノードR2は、さらに第2のパケットを取得してもよい。第1のパケットと同様に、第2のパケットもSRv6パケットであり、第2のパケットの宛先アドレスは前記BSIDである。第2のパケットを受信した後、ノードR2は、第2のパケットのBSIDおよび第2のパケットのSRH内のターゲット・フィールドに基づいて、第2のパケットを検証してもよい。ノードR2が第2のパケットを検証する具体的な実装は、ノードR2が第1のパケットを検証する方法に類似しており、詳細はここでは再度説明しない。第2のパケットを検証した後、ノードR2は、第2のパケットが検証に合格したときに、第2のパケットを転送してもよい。第2のパケットの検証中に、BSIDが検証されるだけでなく、ターゲット・フィールドも検証される。よって、検証に合格する第2のパケットは、有効なパケットと見なされてもよく、信頼領域を通じて第2のパケットを転送することは、セキュリティ・リスクをもたらさない。
本願の実施形態は、パケット転送方法200をさらに提供する。図6は、本願のある実施形態によるパケット転送方法の概略フローチャートである。以下は、図6を参照して、この方法を説明する。図6に示される方法は、たとえば、S201~S203を使用することによって実装されうる。
S201:信頼領域におけるエッジ・ノードが、第1のパケットを受信する。第1のパケットはSRv6パケットであり、第1のパケットの宛先アドレスは、バインディング・セグメント識別子BSIDである。
S202:エッジ・ノードは、第1のパケット内のBSIDと、セグメント・ルーティング・ヘッダSRH内のターゲット・フィールドに基づいて、第1のパケットを検証する。
S203:エッジ・ノードは検証に失敗した第1のパケットを破棄する。
方法200は、上述の実施形態において述べた方法100において、ノードR2によって実行されるS101、S102、S103aを実装するために用いられてもよい。方法200が上述の実施形態において述べた方法100においてノードR2によって実行されるS101、S102、S103aを実装するために使用される場合、信頼領域内のエッジ・ノードは、方法100におけるノードR2に対応し、第1のパケットは、方法100における第1のパケットに対応する。
ある実装では、エッジ・ノードは、さらに、制御管理装置からセキュリティ保護ポリシーを受け取ってもよい。ここで、セキュリティ保護ポリシーは、エッジ・ノードに、BSIDおよびSRH内のターゲット・フィールドに基づいて、第1のパケットを検証することを指示する。
ある実装では、ターゲット・フィールドは、BSIDの次ホップSIDを含む;ターゲット・フィールドは、フィールド識別子SIDリストにおいてN個のSIDを含み、N個のSIDにおける最初のSIDは、BSIDの次ホップSIDであり、Nは1以上であり、Nが1より大きい場合、N個のSIDは、SIDリストにおける連続するN個のSIDである;または、ターゲット・フィールドは、残りセグメントSLフィールドを含む。
ある実装では、ターゲット・フィールドがBSIDの次ホップSIDを含む場合、エッジ・ノードが第1のパケット内のBSIDおよびセグメント・ルーティング・ヘッダSRH内のターゲット・フィールドに基づいて第1のパケットを検証することは:BSIDが信頼領域にあり、ターゲット・フィールドが有効なネットワーク・セグメントにない場合、エッジ・ノードは第1のパケットが検証に失敗すると判断する。ここで、第1のパケットの有効な宛先ノードは有効なネットワーク・セグメントにある。
ある実装では、有効なネットワーク・セグメントは、有効な宛先ノードのロケーター・ルートによって示される。ここで言及される有効な宛先ノードは、たとえば、図3aに示される第2の領域300内のノードR5に対応してもよい。
ある実装では、セキュリティ保護ポリシーは、有効なネットワーク・セグメントを担持する、または有効なネットワーク・セグメントはエッジ・ノードにおいて静的に構成されている。
ある実装では、ターゲット・フィールドがBSIDの次ホップSIDを含む場合、エッジ・ノードが第1のパケット内のBSIDおよびセグメント・ルーティング・ヘッダSRH内のターゲット・フィールドに基づいて第1のパケットを検証することは:BSIDが信頼領域にあり、ターゲット・フィールドが第1のネットワーク・セグメントにある場合、エッジ・ノードは第1のパケットが検証に失敗すると判断する。ここで、信頼領域内のノードは第1のネットワーク・セグメントに属する。ここで言及される第1のネットワーク・セグメントは、図3cに示されるように、信頼領域200内のノードが属するネットワーク・セグメントに対応しうる。
ある実装では、セキュリティ保護ポリシーは、第1のネットワーク・セグメントを担持する、または第1のネットワーク・セグメントがエッジ・ノードにおいて静的に構成されている。
ある実装では、ターゲット・フィールドがSIDリストにおけるN個のSIDを含む場合、エッジ・ノードが第1のパケット内のBSIDおよびセグメント・ルーティング・ヘッダSRH内のターゲット・フィールドに基づいて第1のパケットを検証することは:エッジ・ノードが前記BSIDおよび前記ターゲット・フィールドを含む第1のSIDリストを、エッジ・ノードに記憶されたSIDリストと比較し、エッジ・ノードに記憶されたSIDリストが第1のSIDリストを含まない場合、エッジ・ノードは、第1のパケットが検証に失敗すると判断する。ここで、エッジ・ノードに記憶されたSIDリストは有効な経路を示す。
ある実装では、ターゲット・フィールドがSIDリストにN個のSIDを含む場合、エッジ・ノードが第1のパケット内のBSIDおよびセグメント・ルーティング・ヘッダSRH内のターゲット・フィールドに基づいて第1のパケットを検証することは:エッジ・ノードが、BSIDおよびターゲット・フィールドを含む第1のSIDリストに対してハッシュ演算を実行して第1のハッシュ値を得て;エッジ・ノードに記憶されているあるハッシュ値が第1のハッシュ値を含まない場合、エッジ・ノードは、第1のパケットが検証に失敗すると判断し、ここで、エッジ・ノードに記憶されたハッシュ値は、有効な経路を示すSIDリストに対して前記ハッシュ演算を実行することによって取得される、ことを含む。
ある実装では、第1のパケットは、第1のフィールドを含み、第1のフィールドは、検証されるべきSIDの数を示す。
ある実装では、セキュリティ保護ポリシーが有効な経路を示すSIDリストを担持するか、または有効な経路を示すSIDリストがエッジ・ノードにおいて静的に構成されている。
ある実装では、ターゲット・フィールドがSLフィールドを含む場合、エッジ・ノードが第1のパケット内のBSIDとセグメント・ルーティング・ヘッダSRH内のターゲット・フィールドに基づいて第1のパケットを検証することは、以下を含む。
エッジ・ノードが、BSIDが信頼領域内にあると判定し;ターゲット・フィールドの値が0に等しくない場合、エッジ・ノードは、第1のパケットが検証に失敗すると判定する。
ある実装では、エッジ・ノードは、さらに、第2のパケットを取得してもよく、ここで、第2のパケットはSRv6パケットであり、第2のパケットの宛先アドレスは、前記バインディング・セグメント識別子BSIDである。エッジ・ノードは、第2のパケット内のBSIDおよび第2のパケットのSRH内のターゲット・フィールドに基づいて第2のパケットを検証し;エッジ・ノードは検証に合格する第2のパケットを転送する。
方法200の具体的な実装については、方法100におけるS101、S102、およびS103aの前述の説明を参照されたい。詳細は、ここでは再度説明しない。
本願の実施形態は、パケット転送方法300をさらに提供する。図7は、本願のある実施形態によるパケット転送方法の概略フローチャートである。以下は、図7を参照してこの方法を説明する。図7に示される方法は、たとえば、S301~S303を使用することによって実装されうる。
S301:信頼領域内のエッジ・ノードが、第1のパケットを受信する。ここで、第1のパケットはSRv6パケットであり、第1のパケットの宛先アドレスはバインディング・セグメント識別子BSIDである。
S302:エッジ・ノードが、第1のパケット内のBSIDおよび第1のパケットのセグメント・ルーティング・ヘッダSRH内のターゲット・フィールドに基づいて、第1のパケットを検証する。
S303:エッジ・ノードは検証に合格する第1のパケットを転送する。
方法300は、上記の実施形態で述べた方法100においてノードR2によって実行されるS101、S102、S103bを実装するために使用されてもよい。方法200が上記の実施形態で述べた方法100においてノードR2によって実行されるS101、S102、S103bを実装するために使用される場合、信頼領域内のエッジ・ノードは、方法100におけるノードR2に対応し、第1のパケットは、方法100における第1のパケットに対応する。
ある実装では、エッジ・ノードは、さらに、制御管理装置からセキュリティ保護ポリシーを受け取ってもよい。ここで、セキュリティ保護ポリシーは、エッジ・ノードが、BSIDおよびSRH内のターゲット・フィールドに基づいて第1のパケットを検証することを、エッジ・ノードに指示する。
ある実装では、ターゲット・フィールドは、BSIDの次ホップSIDを含み;ターゲット・フィールドは、フィールド識別子SIDリストにおいてN個のSIDを含み、N個のSIDにおける最初のSIDは、BSIDの次ホップSIDであり、N個が1以上であり、N個が1より大きい場合、N個のSIDは、SIDリストにおける連続するN個のSIDである。または、ターゲット・フィールドは、残りセグメントSLフィールドを含む。
ある実装では、ターゲット・フィールドがBSIDの次ホップSIDを含む場合、エッジ・ノードが第1のパケット内のBSIDおよびセグメント・ルーティング・ヘッダSRH内のターゲット・フィールドに基づいて第1のパケットを検証するある特定の実装では、BSIDが信頼領域内にあり、ターゲット・フィールドが有効なネットワーク・セグメント内にあると判断するとき、エッジ・ノードは第1のパケットが検証に合格すると判断する。第1のパケットの有効な宛先ノードは、有効なネットワーク・セグメント内に位置する。
ある実装では、有効なネットワーク・セグメントは、有効な宛先ノードのロケーター・ルートによって示される。ここでいう有効な宛先ノードは、たとえば、図3aに示される第2の領域300内のノードR5に対応しうる。
ある実装では、セキュリティ保護ポリシーが有効なネットワーク・セグメントを担持するか、または有効なネットワーク・セグメントがエッジ・ノードにおいて静的に構成されている。
ある実装では、ターゲット・フィールドがBSIDの次ホップSIDを含む場合、エッジ・ノードが第1のパケット内のBSIDおよびセグメント・ルーティング・ヘッダSRH内のターゲット・フィールドに基づいて第1のパケットを検証するある特定の実装では、たとえば、エッジ・ノードは、BSIDが信頼領域内にあり、ターゲット・フィールドが第1のネットワーク・セグメント内にないと判断し、エッジ・ノードは、第1のパケットが検証に合格すると判断する。信頼領域内のノードは、第1のネットワーク・セグメントに属する。ここでいう第1のネットワーク・セグメントは、図3cに示されるような、信頼領域200内のノードが属するネットワーク・セグメントに対応しうる。
ある実装では、セキュリティ保護ポリシーが第1のネットワーク・セグメントを担持するか、または第1のネットワーク・セグメントがエッジ・ノードにおいて静的に構成されている。
ある実装では、ターゲット・フィールドがSIDリストにおいてN個のSIDを含む場合、エッジ・ノードが第1のパケット内のBSIDおよびセグメント・ルーティング・ヘッダSRH内のターゲット・フィールドに基づいて第1のパケットを検証するある特定の実装において、たとえば、エッジ・ノードは、BSIDおよびターゲット・フィールドを含む第1のSIDリストを、エッジ・ノードに記憶されたSIDリストと比較することができ、エッジ・ノードに記憶されたSIDリストが第1のSIDリストを含む場合、エッジ・ノードは、第1のパケットが検証に合格すると判定する。ここで、エッジ・ノードに記憶されたSIDリストは有効な経路を示す。
ある実装では、ターゲット・フィールドがSIDリストにおいてN個のSIDを含む場合、エッジ・ノードが第1のパケット内のBSIDおよびセグメント・ルーティング・ヘッダSRH内のターゲット・フィールドに基づいて第1のパケットを検証することは以下を:エッジ・ノードが、BSIDおよびターゲット・フィールドを含む第1のSIDリストに対してハッシュ演算を実行して第1のハッシュ値を得て、エッジ・ノードに記憶されたハッシュ値が第1のハッシュ値を含む場合、エッジ・ノードは、第1のパケットが検証に合格することを決定する。ここで、エッジ・ノードに記憶されたハッシュ値は、有効な経路を示すSIDリストに対して前記ハッシュ演算を実行することによって得られる。
ある実装では、第1のパケットは、第1のフィールドを含み、第1のフィールドは、検証されるべきSIDの数を示す。
ある実装では、セキュリティ保護ポリシーが有効な経路を示すSIDリストを担持するか、または有効な経路を示すSIDリストがエッジ・ノードにおいて静的に構成されている。
ある実装では、ターゲット・フィールドがSLフィールドを含む場合、エッジ・ノードが第1のパケット内のBSIDおよびセグメント・ルーティング・ヘッダSRH内のターゲット・フィールドに基づいて第1のパケットを検証するある特定の実装において、たとえば、BSIDが信頼領域内にあり、ターゲット・フィールド内のエッジ・ノードの値が0に等しいと判断するとき、エッジ・ノードは、第1のパケットが検証に合格すると判断してもよい。
方法300の具体的な実装については、方法100におけるS101、S102、およびS103bの前述の説明を参照されたい。詳細は、ここでは再度説明しない。
本願の実施形態は、転送制御方法400をさらに提供する。図8は、本願のある実施形態による転送制御方法の概略フローチャートである。以下は、図8を参照してこの方法を説明する。図8に示される方法は、たとえば、S401およびS402を使用することによって実装されうる。
S401:制御管理装置がセキュリティ保護ポリシーを取得する。ここで、セキュリティ保護ポリシーは、BSIDと、セグメント・ルーティング・ヘッダSRH内のターゲット・フィールドとに基づいて、受信されたSRv6パケットを検証するために、信頼領域内のエッジ・ノードを示す。
S402:制御管理装置は、信頼領域内のエッジ・ノードにセキュリティ保護ポリシーを送信する。
方法400は、上記の実施形態で述べた方法100において制御管理装置によって実行されるステップを実施するために使用されてもよい。方法400における信頼領域は、図3aに示される信頼領域200であってもよい。方法400における信頼領域内のエッジ・ノードは、方法100におけるノードR2に対応しうる。
ある実装では、制御管理装置は、PCEPメッセージを使用して、信頼領域内のエッジ・ノードにセキュリティ保護ポリシーを送信してもよい。
ある実装では、制御管理装置は、BGPメッセージを使用することによって、信頼領域内のエッジ・ノードにセキュリティ保護ポリシーを送信してもよい。
ある実装では、制御管理装置は、NETCONFパケットを使用して、信頼領域内のエッジ・ノードにセキュリティ保護ポリシーを送信してもよい。
ある実装では、制御管理装置は、SNMPパケットを使用して、信頼領域内のエッジ・ノードにセキュリティ保護ポリシーを送信してもよい。
ある実装では、ターゲット・フィールドは、BSIDの次ホップSIDを含む;ターゲット・フィールドは、フィールド識別子SIDリストにおいてN個のSIDを含み、N個のSIDにおける最初のSIDは、BSIDの次ホップSIDであり、N個が1以上であり、N個が1より大きい場合、N個のSIDは、SIDリストにおける連続するN個のSIDである;または、ターゲット・フィールドは、残りセグメント左のSLフィールドを含む。
ある実装では、ターゲット・フィールドがBSIDの次ホップSIDを含む場合、セキュリティ保護ポリシーは、信頼領域内における有効なBSIDおよび有効なネットワーク・セグメントを担持する。
ある実装では、信頼領域における有効なBSIDおよび有効なネットワーク・セグメントは、BGP FSメッセージの拡張属性において担持されてもよい。たとえば、信頼領域における有効なBSIDはBGP FSメッセージの拡張属性タイプ17において担持され、有効なネットワーク・セグメントはBGP FSメッセージの拡張属性タイプ18において担持される。
ある実装では、ターゲット・フィールドがBSIDの次ホップSIDを含む場合、セキュリティ保護ポリシーは、信頼領域における有効なBSIDおよび第1のネットワーク・セグメントを担持する。
ある実装では、信頼領域における有効なBSIDおよび第1のネットワーク・セグメントは、BGP FSメッセージの拡張属性において担持されてもよい。たとえば、信頼領域における有効なBSIDは、BGP FSメッセージの拡張属性タイプ17において担持され、第1のネットワーク・セグメントはBGP FSメッセージの拡張属性タイプ18において担持される。
ある実装では、ターゲット・フィールドがセグメント識別子SIDリストにおいてN個のSIDを含む場合、セキュリティ保護ポリシーは有効な経路を示すSIDリストを担持し、SIDリストは信頼領域内の有効なBSIDを含む。
ある実装では、有効な経路を示すSIDリストは、BGP FSメッセージの拡張属性において担持されてもよい。たとえば、有効な経路を示すSIDリストは、BGP FSメッセージの拡張属性タイプ19において担持されうる。
方法400の具体的な実装については、方法100における制御管理装置によって実行されるステップの前述の説明を参照されたい。詳細は、ここでは再度説明しない。
加えて、本願のある実施形態は、エッジ・ノード900をさらに提供する。図9は、本願のこの実施形態によるエッジ・ノードの概略構造図である。エッジ・ノード900は、トランシーバ・ユニット901および処理ユニット902を含む。トランシーバ・ユニット901は、方法100に対応する実施形態においてノードR2によって実行される受信および送信動作を実行するように構成される。処理ユニット902は、方法100に対応する実施形態においてノードR2によって実行される、送受信動作以外の動作を実行するように構成される。たとえば、エッジ・ノード900は、方法100におけるノードR2である。この場合、トランシーバ・ユニット901は、第1のパケットを受信するステップを実行するように構成される。処理ユニット902は、BSIDおよびSRH内のターゲット・フィールドに基づいて第1のパケットを検証し、検証に失敗した第1のパケットを破棄するステップを実行するように構成される。
さらに、本願のある実施形態は、図10に示されるような制御管理装置1000をさらに提供する。図10は、本願のこの実施形態による制御管理装置の概略構造図である。制御管理装置1000は、トランシーバ・ユニット1001および処理ユニット1002を含む。トランシーバ・ユニット1001は、上記の実施形態において制御管理装置によって実行される送受信動作を実行するように構成される。処理ユニット1002は、上記の実施形態において述べた制御管理装置によって実行される、送受信動作以外の動作を実行するように構成される。たとえば、トランシーバ・ユニット1001は、信頼領域内のエッジ・ノードにセキュリティ保護ポリシーを送信するように構成され、処理ユニット1002は、セキュリティ保護ポリシーを取得するように構成される。
加えて、本願のある実施形態は、エッジ・ノード1100をさらに提供する。図11は、本願のこの実施形態によるエッジ・ノードの概略構造図である。エッジ・ノード1100は、通信インターフェース1101と、該通信インターフェース1101に接続されたプロセッサ1102とを含む。通信インターフェース1101は、方法100に対応する実施形態においてノードR2によって実行される受信および送信動作を実行するように構成される。プロセッサ1102は、方法100に対応する実施形態においてノードR2によって実行される、受信および送信動作以外の動作を実行するように構成される。たとえば、エッジ・ノード1100は、方法100におけるノードR2である。この場合、通信インターフェース1101は、第1のパケットを受信するステップを実行するように構成される。プロセッサ1102は、BSIDおよびSRH内のターゲット・フィールドに基づいて第1のパケットを検証し、検証に失敗した第1のパケットを破棄するステップを実行するように構成される。
加えて、本願のある実施形態は、制御管理装置1200をさらに提供する。図12は、本願のこの実施形態による制御管理装置の概略構造図である。制御管理装置1200は、通信インターフェース1201と、該通信インターフェース1201に接続されたプロセッサ1202とを含む。通信インターフェース1201は、上記の実施形態において制御管理装置によって実行される送受信動作を実行するように構成される。プロセッサ1202は、上記の実施形態において述べた制御管理装置によって実行される送受信動作以外の動作を実行するように構成される。たとえば、通信インターフェース1201は、信頼領域内のエッジ・ノードにセキュリティ保護ポリシーを送信するように構成され、プロセッサ1202は、セキュリティ保護ポリシーを取得するように構成される。
加えて、本願のある実施形態は、エッジ・ノード1300をさらに提供する。図13は、本願のこの実施形態によるエッジ・ノードの概略構造図である。エッジ・ノード1300は、メモリ1301およびプロセッサ1302を含む。メモリ1301は、プログラム・コードを記憶するように構成される。プロセッサ1302は、プログラム・コード内の命令を実行するように構成され、エッジ・ノード1300が、上記の方法100に対応する実施形態においてノードR2によって実行されるステップを実行できるようにする。
加えて、本願のある実施形態は、制御管理装置1400をさらに提供する。図14は、本願のこの実施形態による制御管理装置の概略構造図である。制御管理装置1400は、メモリ1401およびプロセッサ1402を含む。メモリ1401は、プログラム・コードを記憶するように構成される。プロセッサ1402は、プログラム・コード内の命令を実行して、制御管理装置1400が上記の実施形態において制御管理装置によって実行されるステップを実行できるようにするように構成される。
本願のある実施形態は、コンピュータ読み取り可能な記憶媒体をさらに提供する。コンピュータ読み取り可能な記憶媒体は命令を記憶する。命令がコンピュータ上で実行されると、コンピュータは、上記の方法100においてノードR2によって実行されるステップを実行できるようにされる、またはコンピュータは、上記の方法100において制御管理装置によって実行されるステップを実行できるようにされる。
本願のある実施形態は、通信システムをさらに提供する。通信システムは、制御管理装置とエッジ・ノードとを含む。いくつかの実施形態では、エッジ・ノードは、上記の方法100を実行するノードR2である。いくつかの実施形態では、制御管理装置は、上記の方法100においてセキュリティ保護ポリシーをノードR2に伝達する制御管理装置である。
本願の明細書、請求項および添付図面において、「第1」、「第2」、「第3」、「第4」等の用語は(存在する場合)、類似の対象を区別することを意図しており、必ずしも特定の順序または配列を示すものではない。そのような仕方で表されるデータは、適切な状況においては交換可能であり、よって本明細書に記載される本発明の実施形態が、本明細書に図示または記載される順序以外の順序で実装されることができることを理解されたい。さらに、用語「含む」、「含有する」、および他の変形は、非排他的な包含をカバーすることを意味し、たとえば、列挙されたステップまたはユニットを含むプロセス、方法、システム、プロダクト、または装置は、必ずしもそれらのユニットに限定されず、そのようなプロセス、方法、システム、プロダクト、または装置に固有、または明示的に列挙されていない他のユニットを含んでいてもよい。
当業者であれば、簡便な説明のために、上記のシステム、装置、およびユニットの詳細な稼働プロセスについては、上記の方法実施形態における対応するプロセスが参照されることを明確に理解することができ、詳細については、ここでは再度説明しない。
本願において提供されるいくつかの実施形態において、開示されたシステム、装置、および方法は、他の仕方で実装されてもよいことを理解されたい。たとえば、記載された装置実施形態は、単に一例である。たとえば、ユニットへの分割は、単に論理的なサービス分割であり、実際の実装の際には他の分割であってもよい。たとえば、複数のユニットまたはコンポーネントは、別のシステムに組み合わされ、または統合されてもよく、あるいはいくつかの特徴が無視され、あるいは実行されなくてもよい。さらに、表示または議論された相互結合、直接結合または通信接続は、いくつかのインターフェースを通じて実装されてもよい。装置またはユニット間の間接的な結合または通信接続は、電気的、機械的、または別の形態で実装されうる。
別個の部品として記載されるユニットは、物理的に別個であってもなくてもよく、ユニットとして表示される部品は、物理的なユニットであってもなくてもよく、言い換えると、1つの位置に配置されていてもよく、または複数のネットワーク・ユニット上に分散されていてもよい。ユニットの一部または全部は、実施形態の解決策の目的を達成するために、実際の要件に基づいて選択されうる。
さらに、本願の実施形態におけるサービス・ユニットは、1つの処理ユニットに統合されてもよく、または、それらのユニットのそれぞれは、物理的に単独で存在してもよく、または、2つ以上のユニットが1つのユニットに統合されてもよい。統合されたユニットは、ハードウェアの形で実装されてもよく、またはソフトウェア・サービス・ユニットの形で実装されてもよい。
統合されたユニットがソフトウェア・サービス・ユニットの形で実装され、独立したプロダクトとして販売または使用される場合、統合されたユニットはコンピュータ読み取り可能な記憶媒体に記憶されてもよい。このような理解に基づいて、本願の技術的解決策は本質的に、従来技術に寄与する部分は、または技術的解決策の全部もしくは一部は、ソフトウェア・プロダクトの形で実装されてもよい。コンピュータ・ソフトウェア・プロダクトは、記憶媒体に記憶され、本願の実施形態における方法の全部または一部のステップを実行するようにコンピュータ装置(パーソナルコンピュータ、サーバー、ネットワーク装置などであってもよい)に指示するためのいくつかの命令を含む。記憶媒体は、USBフラッシュドライブ、リムーバブルハードディスク、読み出し専用メモリ(ROM, Read-Only Memory)、ランダムアクセスメモリ(RAM、Random Access Memory)、磁気ディスク、または光ディスクのような、プログラム・コードを記憶できる任意の媒体を含む。
当業者は、前述の一つまたは複数の例において、本発明に記載されたサービスが、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組み合わせによって実装されうることを認識すべきである。本発明がソフトウェアを使用して実装される場合、サービスは、コンピュータ読み取り可能媒体に記憶されるか、またはコンピュータ読み取り可能媒体における一つまたは複数の命令またはコードとして送信されてもよい。コンピュータ読み取り可能媒体は、コンピュータ記憶媒体および通信媒体を含む。通信媒体は、ある場所から他の場所へのコンピュータ・プログラムの送信を容易にする任意の媒体を含む。記憶媒体は、汎用コンピュータまたは専用コンピュータにとってアクセス可能な任意の利用可能な媒体でありうる。
本発明の目的、技術的解決策、および有益な効果は、前述の具体的な実装においてさらに詳細に説明されている。前述の説明は、単に本発明の具体的な実装であることを理解されたい。
前述の実施形態は、単に本願の技術的解決策を記載することを意図したものであって、本願を限定するものではない。本願は、前述の実施形態を参照して詳細に説明されているが、当業者は、前述の実施形態に記録されている技術的解決策をさらに修正してもよいし、またはその一部の技術的特徴に等価な置き換えをしてもよいことを理解するはずである。しかしながら、これらの修正または置換により、対応する技術的解決策の本質が、本願の前述の実施形態の技術的解決策の範囲から逸脱するものではない。