(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-09-20
(54)【発明の名称】パケット処理方法、ネットワークデバイス、およびネットワークシステム
(51)【国際特許分類】
H04L 45/42 20220101AFI20240912BHJP
【FI】
H04L45/42
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2024518495
(86)(22)【出願日】2022-09-19
(85)【翻訳文提出日】2024-04-30
(86)【国際出願番号】 CN2022119639
(87)【国際公開番号】W WO2023045871
(87)【国際公開日】2023-03-30
(31)【優先権主張番号】202111115406.0
(32)【優先日】2021-09-23
(33)【優先権主張国・地域又は機関】CN
(81)【指定国・地域】
(71)【出願人】
【識別番号】503433420
【氏名又は名称】華為技術有限公司
【氏名又は名称原語表記】HUAWEI TECHNOLOGIES CO.,LTD.
【住所又は居所原語表記】Huawei Administration Building, Bantian, Longgang District, Shenzhen, Guangdong 518129, P.R. China
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133569
【氏名又は名称】野村 進
(72)【発明者】
【氏名】何 宏▲偉▼
(72)【発明者】
【氏名】盛 成
【テーマコード(参考)】
5K030
【Fターム(参考)】
5K030GA12
5K030HC20
5K030LB05
5K030LB07
(57)【要約】
本出願は、パケット処理方法、ネットワークデバイス、およびネットワークシステムを提供し、通信技術の分野に関する。本出願で提供される方法では、中間ノードは、接続のエンドポイントIPアドレスにおけるローカルエンドに属するIPアドレスに基づいてパケットの送信元IPアドレスを更新し、接続のエンドポイントIPアドレスにおけるリモートエンドに属するIPアドレスに基づいてパケットの宛先IPアドレスを更新する。したがって、SR経路が複数の異なるルーティングドメインにおけるunderlayトランスポートネットワークを横断するシナリオでは、送信元IPアドレスが常にヘッドエンドのIPアドレスで、URPFチェックが失敗するためにパケットが廃棄されるという問題が回避される。加えて、転送経路の確立は、underlayトランスポートネットワークのルーティングプロトコルに依存する必要がない。
【特許請求の範囲】
【請求項1】
パケット処理方法であって、前記方法は、
第1のネットワークデバイスによって、第2のネットワークデバイスから第1のパケットを受信するステップであって、前記第1のパケットのインターネットプロトコルIPアドレスは第1の接続のエンドポイントIPアドレスを含み、前記第1のパケットはセグメント識別子SIDを含み、前記SIDは第2の接続を示し、前記第1の接続は前記第2のネットワークデバイスから前記第1のネットワークデバイスへの接続であり、前記第2の接続は前記第1のネットワークデバイスから第3のネットワークデバイスへの接続である、ステップと、
前記第1のネットワークデバイスによって、第2のパケットを取得するために前記第1のパケットを処理するステップであって、前記第2のパケットの送信元IPアドレスは、前記第2の接続のエンドポイントIPアドレスにおける前記第1のネットワークデバイスに属するIPアドレスであり、前記第2のパケットの宛先IPアドレスは、前記第2の接続の前記エンドポイントIPアドレスにおける前記第3のネットワークデバイスに属するIPアドレスである、ステップと、
前記第1のネットワークデバイスによって、前記第3のネットワークデバイスへ前記第2のパケットを送信するステップと
を含む、パケット処理方法。
【請求項2】
前記第1の接続の前記エンドポイントIPアドレスはインターネットプロトコルバージョン6 IPv6アドレスであり、前記第1のパケットはセグメントルーティングヘッダSRHを含み、前記SIDは前記SRHに位置付けられる、
請求項1に記載の方法。
【請求項3】
前記第1の接続の前記エンドポイントIPアドレスはインターネットプロトコルバージョン4 IPv4アドレスであり、前記第1のパケットはSRHを含み、前記SIDは前記SRHに位置付けられる、
請求項1に記載の方法。
【請求項4】
前記第1の接続の前記エンドポイントIPアドレスが前記第1のパケットのIPv4ヘッダに位置付けられ、前記第1のパケットが前記SRHに対応するプロトコルのタイプを備え、前記プロトコルのタイプが前記第1のパケットの汎用ルーティングカプセル化GREヘッダに位置付けられるか、または前記プロトコルのタイプが前記第1のパケットの仮想拡張可能ローカルエリアネットワークVXLANヘッダに位置付けられるか、または前記プロトコルのタイプが前記第1のパケットの前記IPv4ヘッダに位置付けられる、請求項3に記載の方法。
【請求項5】
前記第2の接続の前記エンドポイントIPアドレスがIPv6アドレスまたはIPv4アドレスである、請求項1から4のいずれか一項に記載の方法。
【請求項6】
前記第1の接続の前記エンドポイントIPアドレスおよび/または前記第2の接続の前記エンドポイントIPアドレスは各々、広域ネットワークWANインターフェースのものであり、underlay underlayネットワークの事業者によって割り当てられるIPアドレスである、請求項1から5のいずれか一項に記載の方法。
【請求項7】
前記第1の接続および/または前記第2の接続がそれぞれ異なるサイト間の接続である、請求項1から6のいずれか一項に記載の方法。
【請求項8】
第1のネットワークデバイスによって、第2のネットワークデバイスから第1のパケットを受信する前記ステップの前に、前記方法は、
前記第1のネットワークデバイスによって、前記第2の接続の前記エンドポイントIPアドレスおよび/または前記第1の接続の前記エンドポイントIPアドレスをコントローラデバイスに送信するステップ、
をさらに含む、請求項1から7のいずれか一項に記載の方法。
【請求項9】
前記第1のネットワークデバイスによって、前記第2の接続の前記エンドポイントIPアドレスおよび/または前記第1の接続の前記エンドポイントIPアドレスをコントローラデバイスに送信する前記ステップは、
前記第1のネットワークデバイスによって、境界ゲートウェイプロトコルリンク状態BGP-LSパケットを生成するステップであって、前記BGP-LSパケットは、前記第2の接続の前記エンドポイントIPアドレスおよび/または前記第1の接続の前記エンドポイントIPアドレスを含み、前記BGP-LSパケットは、ソフトウェア定義広域ネットワークSD-WANプロトコルの識別子をさらに含む、ステップと、
前記第1のネットワークデバイスによって、前記コントローラデバイスに前記BGP-LSパケットを送信するステップと
を含む、請求項8に記載の方法。
【請求項10】
第1のネットワークデバイスによって、第2のネットワークデバイスから第1のパケットを受信する前記ステップの前に、前記方法は、以下の
前記第1のネットワークデバイスによって、前記第1のネットワークデバイスが位置付けられるサイトの識別子を前記コントローラデバイスに送信するステップ、または
前記第1のネットワークデバイスによって、前記第1の接続の接続ステータスおよび/または前記第2の接続の接続ステータスを前記コントローラデバイスに送信するステップ、または
前記第1のネットワークデバイスによって、前記第1の接続および/または前記第2の接続のサービスレベル合意SLA情報を前記コントローラデバイスに送信するステップ、
の少なくとも1つをさらに含む、請求項1から9のいずれか一項に記載の方法。
【請求項11】
第1のネットワークデバイスによって、第2のネットワークデバイスから第1のパケットを受信する前記ステップの前に、前記方法は、
前記第1のネットワークデバイスによって、コントローラデバイスから前記SIDを受信するステップ、
をさらに含む、請求項1から10のいずれか一項に記載の方法。
【請求項12】
経路決定方法であって、前記方法は、
コントローラデバイスによって、複数の接続のエンドポイントIPアドレスを取得するステップと、
前記コントローラデバイスによって、前記複数の接続の前記エンドポイントIPアドレスに基づいてセグメントルーティングSR経路を決定するステップであって、前記SR経路は前記複数の接続のうちの第1の接続および第2の接続を含み、前記第1の接続は第1のネットワークデバイスから第2のネットワークデバイスへの接続であり、前記第2の接続は前記第2のネットワークデバイスから第3のネットワークデバイスへの接続である、ステップと、
前記コントローラデバイスによって、SRポリシーを前記第1のネットワークデバイスに送信するステップであって、前記SRポリシーが前記SR経路を示す、ステップと
を含む、経路決定方法。
【請求項13】
前記SRポリシーは第1のSIDを含み、前記第1のSIDは前記第2の接続を示す、請求項12に記載の方法。
【請求項14】
前記方法が、
前記コントローラデバイスによって、前記第1のSIDを前記第2の接続に割り当て、第2のSIDを前記第1の接続に割り当てるステップであって、前記第1のSIDが前記第2の接続を示し、前記第2のSIDが前記第1の接続を示す、ステップと、
前記コントローラデバイスによって、前記第1のSIDを前記第2のネットワークデバイスへ送信し、前記第2のSIDを前記第1のネットワークデバイスへ送信するステップと
をさらに含む、請求項12または13に記載の方法。
【請求項15】
前記複数の接続の各々は異なるサイト間の接続であり、前記コントローラデバイスによって、前記複数の接続の前記エンドポイントIPアドレスに基づいてSR経路を決定する前記ステップは、
前記コントローラデバイスによって、サイトを経路オーケストレーションオブジェクトとして使用することによって前記複数の接続の前記エンドポイントIPアドレスに基づいて前記SR経路を決定するステップ、
を含む、請求項12から14のいずれか一項に記載の方法。
【請求項16】
コントローラデバイスによって、複数の接続のエンドポイントIPアドレスを取得する前記ステップが、
前記コントローラデバイスによって、前記第1のネットワークデバイスまたは前記第2のネットワークデバイスによって送信された前記第1の接続のエンドポイントIPアドレスを受信するステップ、
を含む、請求項12から15のいずれか一項に記載の方法。
【請求項17】
ネットワークデバイスであって、前記ネットワークデバイスは第1のネットワークデバイスであり、前記ネットワークデバイスは、
第2のネットワークデバイスから第1のパケットを受信するように構成された受信ユニットであって、前記第1のパケットのインターネットプロトコルIPアドレスは第1の接続のエンドポイントIPアドレスを含み、前記第1のパケットはセグメント識別子SIDを含み、前記SIDは第2の接続を示し、前記第1の接続は前記第2のネットワークデバイスから前記第1のネットワークデバイスへの接続であり、前記第2の接続は前記第1のネットワークデバイスから第3のネットワークデバイスへの接続である、受信ユニットと、
第2のパケットを取得するために前記第1のパケットを処理するように構成された処理ユニットであって、前記第2のパケットの送信元IPアドレスは、前記第2の接続のエンドポイントIPアドレスにおける前記第1のネットワークデバイスに属するIPアドレスであり、前記第2のパケットの宛先IPアドレスは、前記第2の接続の前記エンドポイントIPアドレスにおける前記第3のネットワークデバイスに属するIPアドレスである、処理ユニットと、
前記第3のネットワークデバイスへ前記第2のパケットを送信するように構成された、送信ユニットと
を備える、ネットワークデバイス。
【請求項18】
前記送信ユニットが、前記第2の接続の前記エンドポイントIPアドレスおよび/または前記第1の接続の前記エンドポイントIPアドレスをコントローラデバイスへ送信するようにさらに構成される、請求項17に記載のネットワークデバイス。
【請求項19】
前記処理ユニットが、境界ゲートウェイプロトコルリンク状態BGP-LSパケットを生成するようにさらに構成され、前記BGP-LSパケットが、前記第2の接続の前記エンドポイントIPアドレスおよび/または前記第1の接続の前記エンドポイントIPアドレスを含み、前記BGP-LSパケットが、ソフトウェア定義広域ネットワークSD-WANプロトコルの識別子をさらに含み、
前記送信ユニットが、前記コントローラデバイスに前記BGP-LSパケットを送信するように構成される、
請求項18に記載のネットワークデバイス。
【請求項20】
前記送信ユニットは、以下の、
前記第1のネットワークデバイスが位置付けられるサイトの識別子をコントローラデバイスに送信するステップ、または
前記第1の接続の接続ステータスおよび/または前記第2の接続の接続ステータスを前記コントローラデバイスに送信するステップ、または
前記第1の接続および/または前記第2の接続のサービスレベル合意SLA情報を前記コントローラデバイスに送信するステップ
の少なくとも1つを実行するようにさらに構成される、請求項17から19のいずれか一項に記載のネットワークデバイス。
【請求項21】
前記受信ユニットは、前記コントローラデバイスから前記SIDを受信するようにさらに構成される、
請求項17から20のいずれか一項に記載のネットワークデバイス。
【請求項22】
コントローラデバイスであって、前記コントローラデバイスは、
複数の接続のエンドポイントIPアドレスを取得するように構成された取得ユニットと、
前記複数の接続の前記エンドポイントIPアドレスに基づいてセグメントルーティングSR経路を決定するように構成された処理ユニットであって、前記SR経路は前記複数の接続のうちの第1の接続および第2の接続を含み、前記第1の接続は第1のネットワークデバイスから第2のネットワークデバイスへの接続であり、前記第2の接続は前記第2のネットワークデバイスから第3のネットワークデバイスへの接続である、処理ユニットと、
SRポリシーを前記第1のネットワークデバイスに送信するように構成された送信ユニットであって、前記SRポリシーは前記SR経路を示す、送信ユニットと
を備える、コントローラデバイス。
【請求項23】
前記処理ユニットが、前記第2の接続に第1のSIDを割り当て、前記第1の接続に第2のSIDを割り当てるようにさらに構成され、前記第1のSIDが前記第2の接続を示し、前記第2のSIDが前記第1の接続を示し;
前記送信ユニットは、前記第1のSIDを前記第2のネットワークデバイスへ送信し、前記第2のSIDを前記第1のネットワークデバイスへ送信するようにさらに構成される、
請求項22に記載のコントローラデバイス。
【請求項24】
前記複数の接続の各々は、異なるサイト間の接続であり、前記処理ユニットは、サイトを経路オーケストレーションオブジェクトとして使用することによって、前記複数の接続の前記エンドポイントIPアドレスに基づいて前記SR経路を決定するように構成される、請求項22または23に記載のコントローラデバイス。
【請求項25】
前記取得ユニットは、前記第1のネットワークデバイスまたは前記第2のネットワークデバイスによって送信される前記第1の接続のエンドポイントIPアドレスを受信するように構成されている、請求項22から24のいずれか一項に記載のコントローラデバイス。
【請求項26】
ネットワークシステムであって、前記システムが請求項17から21のいずれか一項に記載のネットワークデバイスと、請求項22から25のいずれか一項に記載のコントローラデバイスとを備える、ネットワークシステム。
【請求項27】
コンピュータ可読記憶媒体であって、前記記憶媒体は、少なくとも1つのコンピュータプログラム命令を記憶し、前記コンピュータプログラム命令がコンピュータ上で実行されるとき、前記コンピュータは、請求項1から16のいずれか一項に記載の方法を実行することを可能にされる、コンピュータ可読記憶媒体。
【請求項28】
コンピュータプログラム製品であって、前記コンピュータプログラム製品は、1つ以上のコンピュータプログラム命令を含み、前記コンピュータプログラム命令が、コンピュータによってロードされて実行されるとき、前記コンピュータは、請求項1から16のいずれか一項に記載の方法を実行することを可能にされる、コンピュータプログラム製品。
【請求項29】
ネットワークデバイスであって、前記ネットワークデバイスがプロセッサを備え、前記プロセッサがメモリに結合され、前記メモリが少なくとも1つのコンピュータプログラム命令を記憶し、前記少なくとも1つのコンピュータプログラム命令が前記プロセッサによってロードされ実行されて、前記ネットワークデバイスが請求項1から11のいずれか一項に記載の方法を実装するようにする、ネットワークデバイス。
【請求項30】
コントローラデバイスであって、前記コントローラデバイスがプロセッサを備え、前記プロセッサがメモリに結合され、前記メモリが少なくとも1つのコンピュータプログラム命令を記憶し、前記少なくとも1つのコンピュータプログラム命令が前記プロセッサによってロードされ実行されて、前記コントローラデバイスが請求項12から16のいずれか一項に記載の方法を実装するようにする、コントローラデバイス。
【発明の詳細な説明】
【技術分野】
【0001】
本出願は、参照により全体が本明細書に組み込まれる、2021年9月23日に提出された「PACKET PROCESSING METHOD,NETWORK DEVICE,AND NETWORK SYSTEM」と題する中国特許出願出願第202111115406.0号の優先権を主張する。
【0002】
本出願は、通信技術の分野に関し、特に、パケット処理方法、ネットワークデバイス、およびネットワークシステムに関する。
【背景技術】
【0003】
セグメントルーティング(segment routing、SR)は、ネットワーク内でパケットを転送するためのソースルーティングの概念に基づいて設計されたプロトコルである。SRは、ネットワーク経路をセグメントに分割し、セグメント識別子(segment ID,SID)をネットワークにおけるそれらのセグメントおよび転送ノードに割り当てる。セグメントおよびネットワークノードは、セグメントリスト(segment list)を取得するために配置され、その結果、セグメントリストを使用することによって転送経路が示されることができる。
【0004】
現在、SR技術に基づいてパケットを転送する基本手順は以下の通りである:SR経路におけるヘッドエンドデバイスが送信元ホストによって送信された元のパケットを受信した後、ヘッドエンドデバイスは元のパケットをSRパケットとしてカプセル化し、SR経路におけるネクストホップノードにSRパケットを送信する。SRパケットの送信元IPアドレスは、ヘッドエンドのインターネットプロトコル(internet protocol、IP)アドレスである。SRパケットの宛先IPアドレスは、ネクストホップノードのSIDである。SRパケットは、SR経路における各ノードのSIDを含む。SR経路が通過する中間ノードがSRパケットを受信した後で、中間ノードは、SRパケットの送信元IPアドレスを変更せずに保持し、SRパケットの宛先IPアドレスをネクストホップノードのSIDに更新し、次いでSRパケットをネクストホップノードへ転送する。SRパケットがテールエンドへ転送されると、テールエンドはSRパケットを元のパケットとしてデカプセル化し、元のパケットを宛先ホストへ送信する。
【0005】
SR経路が複数の異なるルーティングドメインにおけるアンダーレイネットワークを横断する必要がある場合、ユニキャスト逆経路転送(unicast reverse path forwarding、URPF)のチェック失敗のためにパケットが廃棄され得る。
【発明の概要】
【0006】
本出願の実施形態は、URPFチェックが失敗したためにパケットが廃棄されるという問題を回避するために、パケット処理方法、ネットワークデバイス、およびネットワークシステムを提供する。技術的解決策は以下の通りである。
【課題を解決するための手段】
【0007】
第1の態様によれば、パケット処理方法が提供される。任意選択で、方法は、SR経路における中間ノードとして機能するネットワークデバイスによって実行される。例えば、第1のネットワークデバイスは中間ノードとして機能する。本方法は、第1のネットワークデバイスが第2のネットワークデバイスから第1のパケットを受信し、第1のパケットのIPアドレスが第1の接続のエンドポイントIPアドレスを含み、第1のパケットがSIDを含み、SIDが第2の接続を示し、第1の接続が第2のネットワークデバイスから第1のネットワークデバイスへの接続であり、第2の接続が第1のネットワークデバイスから第3のネットワークデバイスへの接続であることを含む。第1のネットワークデバイスは、第2のパケットを取得するために第1のパケットを処理し、第2のパケットの送信元IPアドレスは、第2の接続のエンドポイントIPアドレスにおける第1のネットワークデバイスに属するIPアドレスであり、第2のパケットの宛先IPアドレスは、第2の接続のエンドポイントIPアドレスにおける第3のネットワークデバイスに属するIPアドレスである。第1のネットワークデバイスは第2のパケットを第3のネットワークデバイスに送信する。
【0008】
前述の方法によれば、中間ノードは、接続のエンドポイントIPアドレスにおけるローカルエンドに属するIPアドレスに基づいてパケットの送信元IPアドレスを更新し、接続のエンドポイントIPアドレスにおけるリモートエンドに属するIPアドレスに基づいてパケットの宛先IPアドレスを更新する。したがって、SR経路が複数の異なるルーティングドメインにおけるアンダーレイ(underlay)トランスポートネットワークを横断するシナリオでは、送信元IPアドレスが常にヘッドエンドのIPアドレスであり、URPFチェックが失敗するためにパケットが廃棄されるという問題が回避される。加えて、接続のエンドポイントIPアドレスはSIDと名付けられたIPアドレスとは異なり、接続のエンドポイントIPアドレスは通常、ネットワークデバイスのWANインターフェースのIPアドレスであり、接続のエンドポイントIPアドレスは通常、underlayトランスポートネットワークの事業者によって割り当てられたIPアドレスであり、underlayトランスポートネットワークはIPアドレスのルート到達可能性を当然ながら保証することができ、underlayネットワークデバイスは、IPアドレスのルート到達可能性を保証するためにSIDに対応するセグメントルーティングを学習するためにSRをサポートするIGPルーティングプロトコルを実行する必要がない。したがって、転送経路の確立は、underlayトランスポートネットワークのルーティングプロトコルに依存する必要がない。
【0009】
任意選択で、第1の接続および/または第2の接続は各々、トンネル仮想接続(tunnel virtual connection、TVC)である。TVCは通常、物理リンクとは異なり、TVCは論理仮想接続である。1つのTVCは、通常、1つまたは複数のunderlayトランスポートネットワークを通過する。例えば、第1の接続は第1のunderlayネットワークを通過し、第2の接続は第2のunderlayネットワークを通過する。
【0010】
任意選択で、第1の接続のエンドポイントIPアドレスおよび/または第2の接続のエンドポイントIPアドレスは各々、広域ネットワークWANインターフェースのものであり、underlayネットワークの事業者によって割り当てられるIPアドレスである。
【0011】
WANインターフェースのIPアドレスは、underlayネットワークの事業者によって割り当てられるので、underlayネットワークの事業者は、IPアドレスのルート到達可能性を保証する役割を担い、ネットワークデバイスは、underlayネットワークのルーティングプロトコルへの依存性を取り除くために、IPアドレスを含むルートを、ルーティングプロトコルを使用することによりunderlayネットワークにおけるデバイスにアドバタイズする必要がなく、それによって、ルートのアドバタイズメントによってもたらされるオーバーヘッドを節約する。
【0012】
任意選択で、第1の接続のエンドポイントIPアドレスおよび/または第2の接続のエンドポイントIPアドレスはそれぞれ、パブリックネットワークIPアドレスである。
【0013】
任意選択で、第1の接続および/または第2の接続はそれぞれ異なるサイト(site)間の接続である。例えば、第2のネットワークデバイスは第1のサイトに展開され、第1のネットワークデバイスは第2のサイトに展開され、第3のネットワークデバイスは第3のサイトに展開される。第1の接続は、第1のサイトから第2のサイトへの接続であり、第3の接続は、第2のサイトから第3のサイトへの接続である。
【0014】
前述の実装形態では、複数のサイト間で転送経路が確立されることができ、より柔軟なトラフィック計画が実行されることができるようにする。
【0015】
任意選択で、第1の接続のエンドポイントIPアドレスはインターネットプロトコルバージョン6 IPv6アドレスであり、第1のパケットはセグメントルーティングヘッダSRHを含み、SIDは第1のパケットのSRHに位置付けられる。第1のパケットはIPv6ヘッダを含み、IPv6ヘッダは元のパケットの外層にカプセル化され、第1の接続のエンドポイントIPアドレスは第1のパケットのIPv6ヘッダに位置付けられる。
【0016】
任意選択で、第2の接続のエンドポイントIPアドレスはIPv6アドレスである。第2のパケットはIPv6ヘッダを含み、IPv6ヘッダは元のパケットの外層にカプセル化され、第2の接続のエンドポイントIPアドレスは第2のパケットのIPv6ヘッダに位置付けられる。
【0017】
前述の実装形態では、IPv6アドレスに基づいて2つの接続されたエンドポイント間でパケットが送信され、SRHがパケットにカプセル化されるので、IPv6トランスポートネットワークにおけるSD-WAN SRトンネルの構築がサポートされる。
【0018】
任意選択で、第1の接続のエンドポイントIPアドレスはインターネットプロトコルバージョン4 IPv4アドレスであり、第1のパケットはSRHを含み、SIDは第1のパケットのSRHに位置付けられる。第1のパケットはIPv4ヘッダを含み、IPv4ヘッダは元のパケットの外層にカプセル化され、第1の接続のエンドポイントIPアドレスは第1のパケットのIPv4ヘッダに位置付けられる。
【0019】
任意選択で、第2の接続のエンドポイントIPアドレスはIPv4アドレスである。第2のパケットはIPv4ヘッダを含み、IPv4ヘッダは元のパケットの外層にカプセル化され、第2の接続のエンドポイントIPアドレスは第2のパケットのIPv4ヘッダに位置付けられる。
【0020】
前述の実装形態では、パケットはIPv4アドレスに基づいて2つの接続されたエンドポイント間で送信されるので、IPv4トランスポートネットワークにおけるSD-WAN SRトンネルの構築がサポートされる。
【0021】
任意選択で、第1のパケットはSRHに対応するプロトコルのタイプを含む。
【0022】
任意選択で、第1のパケットはGREヘッダを含み、GREヘッダはSRHの外層にカプセル化され、SRHに対応するプロトコルのタイプは第1のパケットのGREヘッダに位置付けられる。
【0023】
任意選択で、第1のパケットはVXLANヘッダを含み、VXLANヘッダはSRHの外層にカプセル化され、SRHに対応するプロトコルのタイプは第1のパケットのVXLANヘッダに位置付けられる。
【0024】
任意選択で、SRHに対応するプロトコルのタイプは、第1のパケットのIPv4ヘッダに位置付けられる。
【0025】
前述の実装形態では、SRHに対応するプロトコルのタイプがSRHの前のパケットに含まれるため、中間ノードがプロトコルのタイプに基づいてSRHを識別し、さらにSRHにおけるSIDに基づいて処理を実行することが便利であり、その結果、実装の複雑さが低減される。
【0026】
任意選択で、第1の態様で提供される方法は、トラフィック転送フェーズの前にエンドポイントIPアドレスを報告するプロセスをさらに含む。可能な実装形態では、送信元エンドとして機能するネットワークデバイスは、コントローラデバイスに接続のエンドポイントIPアドレスを報告する。例えば、第2のネットワークデバイスは、第1の接続のエンドポイントIPアドレスをコントローラデバイスに送信し、第1のネットワークデバイスは、第2の接続のエンドポイントIPアドレスをコントローラデバイスに送信する。別の可能な実装形態では、宛先エンドとして機能するネットワークデバイスは、コントローラデバイスに接続のエンドポイントIPアドレスを報告する。例えば、第1のネットワークデバイスは、第1の接続のエンドポイントIPアドレスをコントローラデバイスに送信し、第3のネットワークデバイスは、第2の接続のエンドポイントIPアドレスをコントローラデバイスに送信する。別の可能な実装形態では、送信元エンドとして機能するネットワークデバイスおよび宛先エンドとして機能するネットワークデバイスはそれぞれ、コントローラデバイスへの接続のエンドポイントIPアドレスを報告し、コントローラデバイスは、2つのネットワークデバイスによって報告された接続のエンドポイントIPアドレスからIPアドレスを選択する。例えば、第2のネットワークデバイスは、第1の接続のエンドポイントIPアドレスをコントローラデバイスに送信し、第1のネットワークデバイスは、第2の接続のエンドポイントIPアドレスおよび第1の接続のエンドポイントIPアドレスをコントローラデバイスに送信し、第3のネットワークデバイスは、第2の接続のエンドポイントIPアドレスをコントローラデバイスに送信する。第2のネットワークデバイスによって送信された第1の接続のエンドポイントIPアドレスおよび第1のネットワークデバイスによって送信された第1の接続のエンドポイントIPアドレスを受信した後、コントローラデバイスは、経路計算のために第1の接続の2つのエンドポイントIPアドレスのうちの1つを選択する。第1のネットワークデバイスによって送信された第2の接続のエンドポイントIPアドレスおよび第3のネットワークデバイスによって送信された第2の接続のエンドポイントIPアドレスを受信した後、コントローラデバイスは、経路計算のために第2の接続の2つのエンドポイントIPアドレスのうちの1つを選択する。
【0027】
前述の実装形態では、コントローラデバイスは、ネットワークにおける各接続のエンドポイントIPアドレスを認識する際にサポートされ、その結果、コントローラデバイスが、複数の接続を含むSR経路を編成する際に支援され、それによって、コントローラによる経路計算の困難さを低減する。
【0028】
任意選択で、接続のエンドポイントIPアドレスを報告するプロセスは、第1のネットワークデバイスが、境界ゲートウェイプロトコルリンク状態(border gateway protocol link-state、BGP LS)パケットを生成し、BGP-LSパケットは、第2の接続のエンドポイントIPアドレスおよび/または第1の接続のエンドポイントIPアドレスを含み、BGP-LSパケットは、SD-WANプロトコルの識別子をさらに含むことを含む。第1のネットワークデバイスは、コントローラデバイスにBGP-LSパケットを送信する。
【0029】
新しいプロトコル識別子がBGP-LSから拡張されるので、コントローラデバイスは、BGP-LSパケットを受信するとき、プロトコル識別子を使用することによって、ネットワークデバイスによって報告されたデータがSD-WANのトポロジデータであることを識別することができる。
【0030】
任意選択で、第1のネットワークデバイスが第2のネットワークデバイスから第1のパケットを受信する前に、第1のネットワークデバイスは、第1のネットワークデバイスが位置付けられるサイトの識別子をさらに取得し、第1のネットワークデバイスが位置付けられるサイトの識別子をコントローラデバイスに送信する。
【0031】
ネットワークデバイスは、ネットワークデバイスが位置付けられるサイトの識別子をコントローラデバイスに報告するので、コントローラデバイスは、サイトをオブジェクトとして使用することによって経路計算を実行する。
【0032】
任意選択で、第1のネットワークデバイスが第2のネットワークデバイスから第1のパケットを受信する前に、第1のネットワークデバイスは、第1の接続の接続ステータスおよび/または第2の接続の接続ステータスをさらに検出し、第1の接続の接続ステータスおよび/または第2の接続の接続ステータスをコントローラデバイスに送信する。可能な実装形態では、第1のネットワークデバイスは、第1の接続の接続ステータスおよび/または第2の接続の接続ステータスをコントローラデバイスに周期的に送信する。可能な実装形態では、第1の接続の接続ステータスが更新されるとき、第1のネットワークデバイスは、第1の接続の接続ステータスをコントローラデバイスに送信する。可能な実装形態では、第2の接続の接続ステータスが更新されるとき、第1のネットワークデバイスは、第2の接続の接続ステータスをコントローラデバイスに送信する。
【0033】
ネットワークデバイスがコントローラデバイスへの接続の接続ステータスを報告するので、コントローラデバイスはSR経路における各接続のステータスを適時に把握することができ、そのためエンドツーエンドの経路ステータスの把握が実装される。コントローラがSR経路における接続上の障害を発見した場合、コントローラデバイスは、転送中にトラフィックが廃棄されるのを防ぐために、SR経路を無効にするか、SR経路を中止にするか、またはSR経路を再計算することによって、別のSR経路にトラフィックをインポートすることができる。
【0034】
任意選択で、第1のネットワークデバイスが第2のネットワークデバイスから第1のパケットを受信する前に、方法は、第1の接続および/または第2の接続のサービスレベル合意(service-level agreement、SLA)情報をさらに含む。SLA情報は、パケット損失率、遅延、ジッタ、または帯域幅利用のうちの少なくとも1つを含むが、これらに限定されない。
【0035】
ネットワークデバイスがコントローラデバイスへの接続のSLA情報を報告するので、コントローラデバイスは、SR経路における各接続のSLAを適時に把握し、そのSLAがサービス要件を満たす経路を計算することができる。
【0036】
任意選択で、コントローラデバイスは、第2の接続にSIDを割り当てる。コントローラデバイスは、SIDを第1のネットワークデバイスに送信する。第1のネットワークデバイスは、コントローラデバイスからSIDを受信する。
【0037】
コントローラデバイスは、SIDを接続に割り当て、同じSIDが、接続の2つのエンドポイントへの同じ接続を示すために使用されることが保証され、それにより、SIDコンフリクトを回避するようにする。
【0038】
第2の態様によれば、パケット処理方法が提供される。任意選択で、方法は、SR経路におけるヘッドエンドとして機能するネットワークデバイスによって実行される。例えば、第2のネットワークデバイスがヘッドエンドとして機能する。方法は、第2のネットワークデバイスが元のパケットを受信することを含む。第2のネットワークデバイスは、元のパケットに基づいて第1のパケットを生成する。第1のパケットの送信元IPアドレスは、第1の接続のエンドポイントIPアドレスにおける第2のネットワークデバイスに属するIPアドレスである。第1のパケットの宛先IPアドレスは、第1の接続のエンドポイントIPアドレスにおける第1のネットワークデバイスに属するIPアドレスである。第1の接続は、第2のネットワークデバイスから第1のネットワークデバイスへの接続である。第1のパケットは、第1のSIDを含む。第1のSIDは、第2の接続を示す。第2の接続は、第1のネットワークデバイスから第3のネットワークデバイスへの接続である。第2のネットワークデバイスは第1のネットワークデバイスへ第1のパケットを送信する。
【0039】
任意選択で、第1の接続および/または第2の接続はそれぞれTVCである。第1の接続および/または第2の接続はそれぞれ、異なるサイト間の接続である。
【0040】
前述の方法によれば、ヘッドエンドは、パケットのIPアドレスとしてTVCのエンドポイントIPアドレスを使用し、パケットに次のTVCを示すSIDを追加するので、パケットは、エンドポイントIPアドレスを使用することによるルーティングによって次のサイトに転送されることができ、SIDは、中間ノードに、次のサイトの後にサイトにパケットを転送するように示すために使用され、SD-WANシナリオでパケットが複数の指定されたサイトを通過できないという問題が解決される。
【0041】
任意選択で、第2のネットワークデバイスが元のパケットを受信する前に、第2のネットワークデバイスは、コントローラデバイスによって送信されたSRポリシーを受信する。SRポリシーは、第1のSIDを含む。第2のネットワークデバイスは、SRポリシーから第1のSIDを取得する。
【0042】
任意選択で、SRポリシーは第2のSIDをさらに含み、第2のSIDは第1の接続を示す。
【0043】
任意選択で、第1のパケットは、元のパケットの外層においてカプセル化されたIPヘッダとSRHとを含む。第1の接続のエンドポイントIPアドレスは、第1のパケットのIPヘッダに位置付けられる。第1のSIDは、第1のパケットのIPヘッダに位置付けられる。
【0044】
任意選択で、第1のパケットはSRHに対応するプロトコルのタイプを含む。
【0045】
任意選択で、第1のパケットはGREヘッダを含み、GREヘッダはSRHの外層にカプセル化され、SRHに対応するプロトコルのタイプは第1のパケットのGREヘッダに位置付けられる。
【0046】
任意選択で、第1のパケットはVXLANヘッダを含み、VXLANヘッダはSRHの外層にカプセル化され、SRHに対応するプロトコルのタイプは第1のパケットのVXLANヘッダに位置付けられる。
【0047】
任意選択で、SRHに対応するプロトコルのタイプは、第1のパケットのIPv4ヘッダに、位置付けられる。
【0048】
第3の態様によれば、経路決定方法が提供される。方法では、コントローラデバイスは、複数の接続のエンドポイントIPアドレスを取得する。コントローラデバイスは、複数の接続のエンドポイントIPアドレスに基づいてセグメントルーティングSR経路を決定し、SR経路は複数の接続のうちの第1の接続および第2の接続を含み、第1の接続は第1のネットワークデバイスから第2のネットワークデバイスへの接続であり、第2の接続は第2のネットワークデバイスから第3のネットワークデバイスへの接続である。コントローラデバイスは、SRポリシーを第1のネットワークデバイスに送信し、SRポリシーはSR経路を示す。
【0049】
前述の方法によれば、コントローラデバイスは、複数の接続のエンドポイントIPアドレスを使用することによって、複数の接続を含むSR経路を編成し、SR経路を示すSRポリシーをSR経路のヘッドエンドに配信し、ヘッドエンドが、SRポリシーに基づいてパケットを転送するようにする。方法は、複数のサイトにわたって、編成されることが可能なエンドツーエンド経路を確立し、トラフィック計画を容易にするのに役立つ。
【0050】
任意選択で、複数の接続の各々は異なるサイト間の接続であり、コントローラデバイスがSR経路を決定するプロセスは、コントローラデバイスが、サイトを経路オーケストレーションオブジェクトとして使用することによって複数の接続のエンドポイントIPアドレスに基づいてSR経路を決定することを含む。
【0051】
任意選択で、コントローラデバイスがSR経路を決定するプロセスは、コントローラデバイスが、同じサイトにおける異なるネットワークデバイスによって確立された接続からターゲット接続を選択し、ターゲット接続に基づいてSR経路を決定することを含む。例えば、ネットワークはサイト1とサイト2とを含み、サイト1はネットワークデバイスaとネットワークデバイスbとを含み、サイト2はネットワークデバイスcとネットワークデバイスdとを含む。コントローラデバイスは、ネットワークデバイスによって報告された接続のエンドポイントIPアドレスに基づいて、ネットワークが4つの接続を含むと決定する。4つの接続は、ネットワークデバイスaからネットワークデバイスcへの接続、ネットワークデバイスaからネットワークデバイスdへの接続、ネットワークデバイスbからネットワークデバイスcへの接続、およびネットワークデバイスbからネットワークデバイスdへの接続である。コントローラデバイスは、指定された制約に基づいて4つの接続からターゲット接続を選択し、ターゲット接続に基づいてSR経路を決定する。
【0052】
可能な実装形態では、制約はSLA要件である。コントローラデバイスは、ネットワークデバイスによって送信された接続のSLA情報に基づいてターゲット接続として、そのSLA情報が同じサイトの複数の接続からのSLA要件を満たす接続を選択する。SLA要件は、遅延が指定された持続時間よりも少ない、パケット損失率が指定されたパケット損失率よりも少ない、ジッタが指定された値よりも少ない、帯域幅利用率が指定された帯域幅利用率より大きい、などの要件を含むが、これらに限定されない。
【0053】
任意選択で、コントローラデバイスが複数の接続のエンドポイントIPアドレスを取得することは、コントローラデバイスが、第1のネットワークデバイスまたは第2のネットワークデバイスによって送信された第1の接続のエンドポイントIPアドレスを受信することを含む。
【0054】
任意選択で、SRポリシーは第1のSIDを含み、第1のSIDは第2の接続を示す。
【0055】
任意選択で、SRポリシーは第2のSIDをさらに含み、第2のSIDは第1の接続を示す。
【0056】
任意選択で、方法は、コントローラデバイスが、第1のSIDを第2の接続に割り当て、第2のSIDを第1の接続に割り当てることをさらに含む。第1のSIDは第2の接続を示し、第2のSIDは第1の接続を示す。コントローラデバイスは、第1のSIDを第2のネットワークデバイスに送信し、第2のSIDを第1のネットワークデバイスに送信する。
【0057】
コントローラデバイスは、各接続のエンドポイントIPアドレスを収集し、各接続に対応するSIDを割り当て、SIDを必要とするネットワークデバイスにSIDを配信し、トラフィック転送フェーズにおいて、ネットワークデバイスは、パケットで搬送されたSIDに基づいて、SIDに対応する接続を使用することによってパケットを送信することができ、それにより、SIDを使用することによってパケットの転送経路を柔軟に制御することができるようにする。
【0058】
第4の態様によれば、ネットワークデバイスが提供される。ネットワークデバイスは、第1の態様または第1の態様の任意選択の方法のいずれか1つにおいて、第1のネットワークデバイスを実装する機能を有する。ネットワークデバイスは少なくとも1つのユニットを含み、少なくとも1つのユニットは、第1の態様または第1の態様の任意選択の方法のいずれか1つで提供される方法を実装するように構成される。代替的に、ネットワークデバイスは、第2の態様、または第2の態様の任意選択の方法のいずれか1つにおいて、第2のネットワークデバイスを実装する機能を有する。ネットワークデバイスは少なくとも1つのユニットを含み、少なくとも1つのユニットは、第2の態様または第2の態様の任意選択の方法のいずれか1つで提供される方法を実装するように構成される。
【0059】
いくつかの実施形態では、ネットワークデバイスにおけるユニットはソフトウェアを使用することによって実装され、ネットワークデバイスにおけるユニットはプログラムモジュールである。いくつかの他の実施形態では、ネットワークデバイスにおけるユニットは、ハードウェアまたはファームウェアを使用することによって実装される。第4の態様で提供されるネットワークデバイスの具体的な詳細については、第1の態様または第1の態様の任意選択の方法のいずれか1つ、または第2の態様または第2の態様の任意選択の方法のいずれか1つを参照されたい。本明細書では詳細は再度説明されない。
【0060】
第5の態様によれば、コントローラデバイスが提供される。コントローラデバイスは、第3の態様または第3の態様の任意選択の方法のいずれか1つを実装する機能を有する。コントローラデバイスは、少なくとも1つのユニットを含み、少なくとも1つのユニットは、第3の態様または第3の態様の任意選択の方法のいずれか1つで提供される方法を実装するように構成される。いくつかの実施形態では、コントローラデバイスにおけるユニットはソフトウェアを使用することによって実装され、コントローラデバイスにおけるユニットはプログラムモジュールである。いくつかの他の実施形態では、コントローラデバイスにおけるユニットは、ハードウェアまたはファームウェアを使用することによって実装される。第5の態様で提供されるコントローラデバイスの具体的な詳細については、第3の態様または第3の態様の任意選択の方法のいずれか1つを参照されたい。本明細書では詳細は再度説明されない。
【0061】
第6の態様によれば、ネットワークデバイスが提供される。ネットワークデバイスはプロセッサを含む。プロセッサはメモリに結合され、メモリは少なくとも1つのコンピュータプログラム命令を記憶し、少なくとも1つのコンピュータプログラム命令はプロセッサによってロードされ実行されて、ネットワークデバイスは、第1の態様または第1の態様の任意選択の方法のいずれか1つ、または第2の態様または第2の態様の任意選択の方法のいずれか1つで提供される方法を実装する。第6の態様で提供されるネットワークデバイスの具体的な詳細については、第1の態様または第1の態様の任意選択の方法のいずれか1つ、または第2の態様または第2の態様の任意選択の方法のいずれか1つを参照されたい。本明細書では詳細は再度説明されない。
【0062】
第7の態様によれば、コントローラデバイスが提供される。コントローラデバイスは、プロセッサを含む。プロセッサはメモリに結合され、メモリは少なくとも1つのコンピュータプログラム命令を記憶し、少なくとも1つのコンピュータプログラム命令はプロセッサによってロードされ実行されて、コントローラデバイスは、第3の態様または第3の態様の任意選択の方法のいずれか1つで提供される方法を実装する。第7の態様で提供されるコントローラデバイスの具体的な詳細については、第3の態様または第3の態様の任意選択の方法のいずれか1つを参照されたい。本明細書では詳細は再度説明されない。
【0063】
第8の態様によれば、コンピュータ可読記憶媒体が提供される。記憶媒体は少なくとも1つの命令を記憶し、命令がコンピュータ上で実行されるとき、コンピュータは、第1の態様または第1の態様の任意選択の方法のいずれか1つまたは第2の態様または第2の態様の任意選択の方法のいずれか1つで提供される方法を実行することが可能にされる。
【0064】
第9の態様によれば、コンピュータ可読記憶媒体が提供される。記憶媒体は、少なくとも1つの命令を記憶し、命令がコンピュータ上で実行されるとき、コンピュータは、第3の態様または第3の態様の任意選択の方法のいずれか1つで提供される方法を実行することが可能にされる。
【0065】
第10の態様によれば、コンピュータプログラム製品が提供される。コンピュータプログラム製品は、1つまたは複数のコンピュータプログラム命令を含み、コンピュータプログラム命令がコンピュータによってロードされ実行されるとき、コンピュータは、第1の態様または第1の態様の任意選択の方法のいずれか1つ、または第2の態様または第2の態様の任意選択の方法のいずれか1つで提供される方法を実行することが可能にされる。
【0066】
第11の態様によれば、コンピュータプログラム製品が提供される。コンピュータプログラム製品は、1つまたは複数のコンピュータプログラム命令を含み、コンピュータプログラム命令がコンピュータによってロードされ実行されるとき、コンピュータは、第3の態様または第3の態様の任意選択の方式のいずれか1つで提供される方法を実行することが可能にされる。
【0067】
第12の態様によれば、チップが提供される。チップは、メモリおよびプロセッサを含む。メモリは、コンピュータ命令を記憶するように構成され、プロセッサは、第1の態様または第1の態様の任意選択の方法のいずれか1つ、または第2の態様または第2の態様の任意選択の方法のいずれか1つの方法を実行するために、メモリからコンピュータ命令を呼び出し、コンピュータ命令を実行するように構成される。
【0068】
第13の態様によれば、チップが提供される。チップは、メモリおよびプロセッサを含む。メモリはコンピュータ命令を記憶するように構成され、プロセッサは、第3の態様または第3の態様の可能な実装形態のいずれか1つにおいて提供される方法を実行するために、メモリからコンピュータ命令を呼び出して、コンピュータ命令を実行するように構成される。
【0069】
第14の態様によれば、ネットワークシステムが提供される。ネットワークシステムが、第3の態様によるネットワークデバイスと、第4の態様によるコントローラデバイスとを含むか、または、ネットワークシステムが、第5の態様によるネットワークデバイスと、第6の態様によるコントローラデバイスとを含む。
【図面の簡単な説明】
【0070】
【
図1】本出願の実施形態によるSD-WANのシステムアーキテクチャの概略図である。
【
図2】本出願の実施形態による、SD-WANのシステムアーキテクチャを企業ネットワークに適用する概略図である。
【
図3】本出願の実施形態による、SD-WANのシステムアーキテクチャを事業者POPネットワーキングに適用する概略図である。
【
図4】本出願の実施形態によるパケット処理方法のフローチャートである。
【
図5】本出願の実施形態によるパケットフォーマットの概略図である。
【
図6】本出願の実施形態による経路決定方法のフローチャートである。
【
図7】本出願の実施形態によるoverlayネットワークにおけるSR経路を計算する概略図である。
【
図8】本出願の実施形態によるTVCを確立する概略図である。
【
図9】本出願の実施形態によるトポロジ収集および報告の概略図である。
【
図10】本出願の実施形態による、コントローラデバイスによるSRポリシーの配信の概略図である。
【
図11】本出願の実施形態によるSD-WANのシステムアーキテクチャの概略図である。
【
図12】本出願の実施形態による、SD-WAN SRv6トンネルにサービスをインポートし、サービスを転送する概略図である。
【
図13】本出願の実施形態による、SD-WAN SRv4トンネルにサービスをインポートし、サービスを転送する概略図である。
【
図14】本出願の実施形態によるSD-WAN SRv6およびSRv4ハイブリッドトンネル転送方法の概略図である。
【
図15】本出願の実施形態による、SD-WAN SRトンネルを使用することによりL3 VPNv6トラフィックを転送するための方法の概略図である。
【
図16】本出願の実施形態による、SD-WAN SRトンネルを使用することによりL2 VPNトラフィックを転送するための方法の概略図である。
【
図17】本出願の実施形態によるSD-WAN SRを使用することによりマルチドメイン転送を実装する概略図である。
【
図18】本出願の実施形態によるネットワークデバイスの構造の概略図である。
【
図19】本出願の実施形態によるコントローラデバイスの構造の概略図である。
【
図20】本出願の実施形態によるネットワークデバイスまたはコントローラデバイスの構造の概略図である。
【
図21】本出願の実施形態によるネットワークデバイスまたはコントローラデバイスの構造の概略図である。
【発明を実施するための形態】
【0071】
本出願の目的、技術的解決策、および利点をより明確にするため、以下では、添付の図面を参照しながら本出願の実装形態を詳細にさらに説明する。
【0072】
以下では、本出願の実施形態におけるいくつかの用語および概念を解説および説明する。
【0073】
(1)トンネル仮想接続(tunnel virtual connection、TVC)
TVCは論理的な仮想接続である。TVCは、通常、1つまたは複数のトランスポートネットワークを横断する。
【0074】
(2)接続
本出願の実施形態では、「接続」という用語は、TVC、トンネル、経路、仮想接続、またはワイドエリアネットワーク(wide area network、WAN)リンクで置き換えられることができる。
【0075】
任意選択で、接続は、異なるサイト間の接続であり、接続は、サイト間のアンダーレイ(underlay)トランスポートネットワークにおける1つまたは複数のネットワークデバイスを通過する。
【0076】
任意選択で、接続のエンドポイントインターネットプロトコル(internet protocol、IP)アドレスはWANインターフェースのIPアドレスである。任意選択で、接続は一方向であり、接続は方向性である。例えば、ネットワークデバイスaからネットワークデバイスbへの接続と、ネットワークデバイスbからネットワークデバイスaへの接続とは同じ接続ではない。ネットワークデバイスaからネットワークデバイスbへの接続はセグメント識別子(segment ID、SID)を使用することにより示され、ネットワークデバイスbからネットワークデバイスaへの接続は別のSIDを使用することにより示される。言い換えれば、順方向接続および逆方向接続は、2つの異なるSIDを使用することによって示される。あるいは、接続は方向性のない接続である。例えば、ネットワークデバイスaからネットワークデバイスbへの接続およびネットワークデバイスbからネットワークデバイスaへの接続は、同じSIDを使用することによって示される。
【0077】
(3)セグメントルーティング(segment routing、SR)
SRは、ネットワークでパケットを転送するためにソースルーティングの概念に基づいて設計されたプロトコルである。SRは、ネットワーク経路をセグメントに分割し、ネットワークのこれらのセグメントおよび転送ノードにSIDを割り当てる。セグメントおよびネットワークノードは、セグメントリスト(segment list)を取得するために配置され、その結果、セグメントリストを使用することによって転送経路が示されることができる。
【0078】
SRは、転送経路を表すセグメントリストをデータパケットのヘッダに符号化し、セグメントリストはデータパケットとともに送信される。データパケットを受信した後、受信側はセグメントリストを解析する。セグメントリストのアクティブなSIDが現在のノードのSIDである場合、受信側は、データパケットにおいてSIDに対応する動作を実行する;または、アクティブなSIDが現在のノードのSIDでない場合、受信側は、従来のルーティング転送方式でデータパケットを次のノードに転送する。
【0079】
(4)セグメントルーティング用のインターネットプロトコルバージョン6(internet protocol version 6 for segment routing、SRv6)
SRv6は、ネットワークでIPv6パケットを転送するためにソースルーティングの概念に基づいて設計された方法である。IPv6転送プレーンに基づくSRは、セグメントルーティングヘッダ(segment routing header、SRH)と名付けられたルーティング拡張ヘッダをIPv6パケットに挿入し、明示的なIPv6アドレススタックをSRHにプッシュする。中間ノードは、ホップバイホップ転送を完了するために、宛先アドレス更新およびアドレススタックオフセット動作を連続的に実行する。SRv6技術は、既存のIPv6転送技術およびフレキシブルIPv6拡張ヘッダを使用して、ネットワークプログラム可能性を実装する。SRv6は、いくつかのIPv6アドレスをインスタンス化されたSIDとして定義する。各SIDは、明示的な目的および機能を有する。単純化された仮想プライベートネットワーク(virtual private network、VPN)および柔軟な経路計画を実装するために、異なるSID動作が実行される。
【0080】
(5)WANインターフェースのIPアドレス
WANインターフェースは、トランスポートネットワークポート(transport network port、TNP)とも呼ばれる。WANインターフェースのIPアドレスは、SRv6 SIDと名付けられたIPアドレスとは異なる。2つのIPアドレスは、SRv6 SIDがネットワークデバイスのロケータ(locator)アドレスプールのアドレスであり、WANインターフェースのIPアドレスがunderlayネットワークの事業者によって割り当てられたアドレスであるという点で主に異なる。SRv6 SIDと名付けられたIPアドレスについては、ネットワークデバイスとunderlayネットワークのデバイスとの間でIPv6内部ゲートウェイプロトコル(internal gateway protocol、IGP)ルーティングプロトコルが実行される必要がある。トラフィック転送フェーズにおけるSRv6 SIDと名付けられたIPアドレスの到達可能性は、ネットワークデバイスがIPv6 IGPルーティングプロトコルを使用してunderlayネットワークのデバイスにlocatorルートをアドバタイズするときにのみ保証されることができ、その結果、underlayネットワークのデバイスは、SIDと名付けられたIPアドレスを認識することができる。したがって、underlayネットワークのルーティングプロトコルに依存するという技術的問題が生じ得る。WANインターフェースのIPアドレスについて、underlayネットワークの事業者は、WANインターフェースのIPアドレスのルート到達可能性を保証する。ネットワークデバイスは、IPv6 IGPルーティングプロトコルを使用することによって追加のルートをアドバタイズする必要はない。したがって、underlayネットワークのルーティングプロトコルに依存することが回避される。
【0081】
(6)ソフトウェア定義広域ネットワーク(software-defined wide area network、SD-WAN)
ソフトウェア定義広域ネットワーク(software-defined wide area network、SD-WAN)は、ソフトウェア定義ネットワーキング(software defined networking、SDN)の重要な実践である。SD-WANは、ネットワークコントローラを使用し、ネットワーク、セキュリティ、および広域ネットワーク最適化技術および他の技術を統合して、企業のWANネットワーク構成および自動サービスプロビジョニングを実装し、単純で、柔軟で、質の高い企業WAN相互接続機能を提供する。SD-WANは、通常、以下の基本的な特徴を有する:
【0082】
1.ハイブリッドWANリンクに基づいて柔軟なIP Overlayネットワーキングを実装する。
SD-WANは、2つのサイトのエッジ(edge)デバイス間にエンドツーエンドのオーバーレイ(overlay)トンネルを確立する方法を使用することによって、SD-WANネットワークとunderlayトランスポートネットワークとの間の独立性を実装する。underlayネットワークリンクは、マルチプロトコルラベルスイッチング(multi-protocol label switching、MPLS)専用回線であってもよく、公衆インターネット(Internet)、ロングタームエボリューション(long term evolution、LTE)ネットワークなどであってもよい。
【0083】
2.アプリケーション体験を保証するためにインテリジェントなアプリケーション経路選択を実行する。
企業アプリケーションには様々な種類がある。一般的な企業アプリケーションは、生産、共同作業、クラウド、およびエンターテイメントアプリケーションなどを含む。異なるタイプのアプリケーションは、帯域幅およびリンクの質に関して異なる要件を有する。SD-WANは通常、ディープパケットインスペクション(deep packet inspection、DPI)などのアプリケーション識別技術を使用することによって企業トラフィックを識別し、次いで、アプリケーション次元に基づいてタイプ統計収集、質の検出、および経路制御を実行する。例えば、高い回線の質ではあるが高コストの経路、例えばMPLSでは、高い価値のアプリケーショントラフィックが伝送されることが優先的に指定され、低い回線品質ではあるが低コストの経路、例えばInternetでは、低い価値のアプリケーショントラフィックが優先的に伝送されることが指定される。
【0084】
3.集中管理および制御および視覚化を実行するが、これは簡単であり、容易な操作および保守を実装する。
エンドツーエンドのWAN管理および動作および保守効率を改善するために、集中ネットワーク監視および視覚化を通じて集中管理が実装される。
【0085】
(7)IGP
IGPは、AS内で動作するルーティングプロトコルである。IGPプロトコルは、例えば、オープン最短経路第1の(open shortest path first、OSPF)プロトコルまたは中間システムから中間システムへの(intermediate system-to-intermediate system、IS-IS)プロトコルである。
【0086】
以下では、本出願の実施形態におけるシステムアーキテクチャを説明するために例を使用する。
【0087】
図1は、本出願の実施形態によるSD-WANネットワークのシステムアーキテクチャの概略図である。
図1に示されるシステムアーキテクチャは、SD-WAN overlay SRアーキテクチャとして任意選択的に提供される。
図1に示されるシステムアーキテクチャは、管理制御プレーン10と、overlayネットワーク20と、underlayネットワーク30とを含む。
【0088】
管理制御プレーン10は、コントローラデバイス11を含む。任意選択で、管理制御プレーン10は、ルートリフレクタ(router reflector、RR)12をさらに含む。
【0089】
コントローラデバイス11は、SD-WANネットワークのマネージャである。コントローラデバイス11は、ネットワークデバイス201、ネットワークデバイス202、ネットワークデバイス203、ネットワークデバイス204、およびRR 12を管理するように構成される。コントローラデバイス11は、SD-WANネットワークサービスオーケストレーションおよび構成、ならびにSR経路オーケストレーションおよび計算などの機能を実行するようにさらに構成される。コントローラデバイス11は、例えば、サーバ、ホスト、端末またはネットワークデバイスである。
【0090】
RR 12は、SD-WANネットワークの制御コンポーネントである。RR 12は、SD-WANネットワークのネットワークデバイス201、ネットワークデバイス202、ネットワークデバイス203、およびネットワークデバイス204の間のネットワークトポロジの収集、ユーザルートの配信、フィルタリングの実行、制御の実行などをする役割を担う。RR 12は、例えば、サーバ、ホスト、端末、またはネットワークデバイスである。いくつかの他の実施形態では、SD-WANネットワークはRR 12を含まず、RR 12のすべての機能はコントローラデバイス11を使用することによって実装される。
【0091】
図1は、コントローラデバイス11とRR 12とが別々に配置されている例を使用することにより説明されており、言い換えれば、コントローラデバイス11とRR 12は、互いに通信可能に結合された異なる物理デバイスによって実装される。いくつかの他の実施形態では、コントローラデバイス11およびRR 12は共に配置され、言い換えれば、コントローラデバイス11およびRR 12は同じ物理デバイスに統合される。
【0092】
図1に示されたネットワークにおける1つのコントローラデバイス11および1つのRR 12の存在は単なる例である。任意選択で、より多くのコントローラデバイス11およびRR 12があり、コントローラデバイス11の数量およびRR 12の数量はこの実施形態では限定されない。
【0093】
overlayネットワーク20は、複数のネットワークデバイスを含む。ネットワークデバイスは、SD-WANサービスの転送実行部である。ネットワークデバイスは、物理ネットワークトポロジ情報を収集し、ユーザトラフィックのためのトンネルカプセル化、暗号化、およびポリシーベースの経路選択を実行するように構成される。例えば、ネットワークデバイスは、ルータ、スイッチ、またはファイアウォールである。
【0094】
任意選択で、overlayネットワーク20のネットワークデバイスは、エッジデバイス、ポイント・オブ・プレゼンス(point of presence、POP)、またはアグリゲーション・デバイスである。overlayネットワーク20の複数のネットワークデバイスは、複数のサイトに別々に展開される。overlayネットワーク20の異なるネットワークデバイスは、TVCを介して接続される。
【0095】
図1は、ネットワークデバイスがネットワークデバイス201、ネットワークデバイス202、ネットワークデバイス203、またはネットワークデバイス204である例を使用することによって説明されている。ネットワークデバイス201は、支部サイト1に展開される。ネットワークデバイス202は、集約サイトに展開置される。ネットワークデバイス203は、支部サイト2に展開される。ネットワークデバイス204は、本部サイトに展開される。ネットワークデバイス201は、TVC 212を介してネットワークデバイス202に接続される。ネットワークデバイス202は、TVC 224を介してネットワークデバイス204に接続される。ネットワークデバイス204は、TVC 243を介してネットワークデバイス203に接続される。
【0096】
図1に示される1つのサイトに1つのネットワークデバイスが展開されるシナリオは単なる例である。任意選択で、より多くのネットワークデバイスが1つのサイトに展開されることができる。例えば、数十、数百、またはそれ以上のネットワークデバイスが1つのサイトに展開される。1つのサイトに展開されるネットワークデバイスの数量は、この実施形態では限定されない。
【0097】
図1に示されるネットワークに4台のネットワークデバイスが存在する場合は単なる例である。任意選択で、より多くのまたはより少ないネットワークデバイスが存在する。例えば、3つのネットワークデバイスが存在するか、または数十、数百、またはそれ以上のネットワークデバイスが存在する。ネットワークデバイスの数量は、この実施形態では限定されない。
【0098】
任意選択で、
図1の各デバイスは、独立したハードウェアデバイス、複数のハードウェアデバイスを含むクラスタもしくは分散システム、またはクラウドコンピューティングおよびネットワーク機能仮想化(network functions virtualization、NFV)技術に基づいて実装された仮想化デバイスである。仮想化デバイスは、仮想マシンまたはコンテナを含むが、これらに限定されない。
【0099】
underlayネットワーク30は、事業者専用回線、インターネット、または企業によって構築された専用ネットワークを含むが、これらに限定されない。underlayネットワーク30は、少なくとも1つのネットワークデバイス301を含む。underlayネットワーク30のネットワークデバイス301は、物理リンクを介してoverlayネットワークのネットワークデバイスに別々に接続される。
【0100】
任意選択で、本出願のこの実施形態で提供されるシステムアーキテクチャは、トラフィックが1つまたは複数の指定されたサイトを通過するように制御される必要があるシナリオに適用される。コントローラデバイスは、複数のサイトのネットワークデバイスを含むSR経路を編成するように構成される。例えば、
図1を参照すると、コントローラデバイスによって編成されるSR経路は、支部サイト1のネットワークデバイス201→集約サイトのネットワークデバイス202→本部サイトのネットワークデバイス204→支部サイト2のネットワークデバイス203である。SR経路のエンドポイントは、ネットワークデバイス201およびネットワークデバイス203を含む。SR経路が通過する中間ノードは、ネットワークデバイス202およびネットワークデバイス204を含む。SR経路は、TVC 212、TVC 224、およびVC 243を含む。
【0101】
図1に示されるシステムアーキテクチャは、多くの適用シナリオに適用可能である。以下では、2つの典型的なアプリケーションシナリオを参照して例示的な説明を提供する。
【0102】
本出願の実施形態の典型的なアプリケーションシナリオは、企業SD-WANシナリオである。
図2は、本出願の実施形態による、SD-WAN overlay SRアーキテクチャが企業ネットワークに適用されるシナリオの概略図である。企業は、SD-WANトンネルおよびトランスポートネットワーク、例えば、リース事業者専用回線、インターネット、または5Gネットワークを使用して、支部サイト間の相互接続を実装し、それによって企業ネットワーキング、クラウドアクセス、およびインターネットアクセスサービスの要件を満たす。一部の大規模企業ネットワーキングでは、マルチノードSR経路オーケストレーションおよび制御を実行するためにSD-WANサイトを通過する要件を有する階層ネットワーキングシナリオがあり得る。例えば、
図2を参照すると、支部サイト1でユーザがパブリッククラウドにアクセスする要件を満たすために、SD-WANコントローラ490は2つのSR経路を編成する。SR経路1は、支部サイト1→集約サイト→本部サイト→パブリッククラウドサイト5である。SR経路2は、支部サイト1→集約サイト→パブリッククラウドサイト5を含む。
【0103】
本出願の実施形態の別の典型的な適用シナリオは、事業者SD-WAN POPネットワーキングシナリオである。
図3は、本出願の実施形態による、SD-WAN overlay SRアーキテクチャを事業者SD-WAN POPネットワーキングシナリオに適用する概略図である。事業者または管理サービスプロバイダ(managed service provider、MSP)は、異なる地域にSD-WANデバイスをPOPゲートウェイ(gateway、GW)として展開し、クラウド間インターネットおよびクラウド専用回線リソースを使用して、全国またはさらには世界をもカバーするSD-WANバックボーンネットワークを迅速かつ柔軟に構築する。企業の支部サイトは、事業者/MSPの最寄りのPOPアクセスポイントにローカルインターネット回線を介して接続されている。SD-WANバックボーンネットワークを使用することによって領域間サービスアクセスが実装される場合、複数のPOPポイントを通過するSR経路を編成する必要がある。例えば、顧客Aのサイト1のユーザが企業本部にアクセスするという要件を満たすために、SD-WANコントローラ590は2つのSR経路を編成する。SR経路1は、顧客Aのサイト1→POP GW 502→POP GW 504→顧客Aの本部である。SR経路2は、顧客Aのサイト1→POP GW 502→POP GW 503→POP GW 504→顧客Aの本部である。
【0104】
以下では、本出願のいくつかの実施形態における通信プロトコルについて説明する。
【0105】
本出願のいくつかの実施形態における通信プロトコルは、境界ゲートウェイプロトコルリンク状態(border gateway protocol-link state、BGP LS)プロトコル、境界ゲートウェイプロトコル(border gateway protocol、BGP)SRv6ポリシー(BGP SRv6 policy)プロトコル、およびBGPイーサネットVPN(Ethernet VPN、EVPN)プロトコルを含む。
【0106】
BGP LSプロトコルは、ネットワークトポロジ収集機能およびトラヒックエンジニアリング(traffic engineering、TE)データベース(database、DB)情報収集機能をサポートするために使用される。
【0107】
BGP LSプロトコルは、コントローラデバイスとネットワークデバイスとの間、およびネットワークデバイス間で使用される。任意選択で、ネットワークがRRを含む場合、コントローラとRRとの間、およびRRとネットワークデバイスとの間で、BGP LSプロトコルがさらに使用される。
【0108】
BGP SRv6 policyプロトコルは、トンネルポリシー配信の機能をサポートするために使用される。BGP SRv6 policyプロトコルは、コントローラデバイスとネットワークデバイスとの間、およびネットワークデバイス間で使用される。任意選択で、ネットワークがRRを含む場合、コントローラとRRとの間、およびRRとネットワークデバイスとの間で、BGP SRv6 policyプロトコルがさらに使用される。
【0109】
BGP EVPNプロトコルは、SD-WAN TNPルートをアドバタイズする機能およびVPNサービスルートをアドバタイズする機能をサポートするために使用される。BGP EVPNプロトコルは、ネットワークデバイス間で使用される。任意選択で、ネットワークがRRを含む場合、RRとネットワークデバイスとの間でBGP EVPNプロトコルがさらに使用される。
【0110】
以下では、本出願の実施形態における方法手順を説明するために例を使用する。
【0111】
図4は、本出願の実施形態によるパケット処理方法のフローチャートである。
【0112】
図4に示される方法は、複数のネットワークデバイス間の相互作用を含む。異なるネットワークデバイスを区別するために、「ネットワークデバイスa」、「ネットワークデバイスb」、および「ネットワークデバイスc」が、複数の異なるネットワークデバイスを区別可能に説明するために使用される。ネットワークデバイスbは、SR経路が通過する中間ノードである。ネットワークデバイスaは、SR経路のヘッドエンドまたはSR経路が通過する中間ノードである。ネットワークデバイスcは、SR経路のテールエンドまたはSR経路が通過する中間ノードである。
【0113】
図4に示される方法は、異なるネットワークデバイス間の接続を含む。異なる接続を区別して説明するために、「接続ab」は、ネットワークデバイスaからネットワークデバイスbへの接続を指すために使用され、「接続bc」は、ネットワークデバイスbからネットワークデバイスcへの接続を指すために使用される。
【0114】
任意選択で、
図4に示される方法が基づくネットワーク展開シナリオが
図1に示されている。例えば、
図1を参照すると、
図4に示される方法におけるネットワークデバイスaは
図1のネットワークデバイス201であり、
図4に示される方法におけるネットワークデバイスbは
図1のネットワークデバイス202であり、
図4に示される方法におけるネットワークデバイスcは
図1のネットワークデバイス204である;または、
図4に示される方法におけるネットワークデバイスaは
図1のネットワークデバイス202であり、
図4に示される方法におけるネットワークデバイスbは
図1のネットワークデバイス204であり、
図4に示される方法におけるネットワークデバイスcは
図1のネットワークデバイス203であることが学習され得る。
【0115】
図4に示される方法は、SD-WANネットワークに任意選択で適用される。
【0116】
図4に示される方法の典型的な適用シナリオは、企業ネットワークの支部サイト間の相互接続である。
図2示されるネットワークシナリオが例として使用される。
図4に示される方法は、
図2に示されるシナリオに適用される。SR経路1を介してパブリッククラウドサイト5にアクセスするために支部サイト1のユーザのトラフィックが制御される必要がある場合、
図4に示される方法のネットワークデバイスaは
図2のedgeデバイス401であり、
図4に示される方法のネットワークデバイスbは
図2のedgeデバイス406であり、
図4に示される方法のネットワークデバイスcは
図2のedgeデバイス404であり、
図4に示される方法の接続abは
図2のTVC 416であり、
図4に示される方法の接続bcは
図2のTVC 464である。SR経路2を介してパブリッククラウドサイト5にアクセスするために支部サイト1のユーザのトラフィックが制御される必要がある場合、
図4に示される方法のネットワークデバイスaは
図2のedgeデバイス401であり、
図4に示される方法のネットワークデバイスbは
図2のedgeデバイス406であり、
図4に示される方法のネットワークデバイスcは
図2のedgeデバイス405であり、
図4に示される方法の接続abは
図2のTVC 416であり、
図4に示される方法の接続bcは
図2のTVC 465である。
【0117】
図4に示される方法の典型的な適用シナリオは、事業者SD-WAN POPネットワーキングである。
図3に示されるネットワークシナリオが例として使用される。
図4に示される方法は、
図3に示されるシナリオに適用される。顧客Aのサイト1のトラフィックがSR経路1を介して企業本部にアクセスするように制御される必要がある場合、
図4に示される方法のネットワークデバイスaは
図3のサイト1のedgeデバイス501であり、
図4に示される方法のネットワークデバイスbは
図3のPOP GW 502であり、
図4に示される方法のネットワークデバイスcは
図3のPOP GW 504であり、
図4に示される方法の接続abは
図3のTVC 512であり、
図4に示される方法の接続bcは
図3のTVC 524である。顧客Aのサイト1のトラフィックがSR経路2を介して企業本部にアクセスするように制御される必要がある場合、
図4に示される方法のネットワークデバイスaは
図3のサイト1のedgeデバイス501であり、
図4に示される方法のネットワークデバイスbは
図3のPOP GW 502であり、
図4に示される方法のネットワークデバイスcは
図3のPOP GW 503であり、
図4に示される方法の接続abは
図3のTVC 512であり、
図4に示される方法の接続bcは
図3のTVC 523である。
【0118】
図4に示される方法は、複数のパケットが処理されるシナリオ、例えば、データフローの各パケットが処理されるシナリオに任意選択的に適用される。読者の理解を容易にするために、
図4に示される方法は、例として第1のパケットの処理手順を使用することにより説明されている。別のパケットを処理する方法については、第1のパケットを処理する方法を参照されたい。
【0119】
S601:ネットワークデバイスaは、第1のパケットをネットワークデバイスbに送信する。
【0120】
第1のパケットのIPアドレスは、接続abのエンドポイントIPアドレスを含む。具体的には、接続abのエンドポイントIPアドレスは、ネットワークデバイスaに属するIPアドレスおよびネットワークデバイスbに属するIPアドレスを含む。第1のパケットの送信元IPアドレスは、接続abのエンドポイントIPアドレスのネットワークデバイスaに属するIPアドレスである。第1のパケットの宛先IPアドレスは、接続abのエンドポイントIPアドレスのネットワークデバイスbに属するIPアドレスである。
【0121】
いくつかの実施形態では、第1のパケットは、元のパケットおよび外層IPヘッダを含む。元のパケットは、ユーザ機器によって送信されたデータパケットである。外層IPヘッダは、元のパケットの外層にカプセル化されたIPヘッダである。接続abのエンドポイントIPアドレスは、第1のパケットの外層IPヘッダに位置付けられる。具体的には、接続abのエンドポイントIPアドレスのネットワークデバイスaに属するIPアドレスは、第1のパケットの外層IPヘッダの送信元アドレスフィールドに位置付けられ、接続abのエンドポイントIPアドレスのネットワークデバイスbに属するIPアドレスは、第1のパケットの外層IPヘッダの宛先アドレスフィールドに位置付けられる。
【0122】
任意選択で、接続abのエンドポイントIPアドレスは、WANインターフェースのものであり、underlayネットワークの事業者によって割り当てられるIPアドレスである。WANインターフェースを介して確立される接続は、WANリンクとも呼ばれる。例示的な実施形態では、ネットワークデバイスaはWANインターフェースaを有し、ネットワークデバイスbはWANインターフェースbを有する。接続abは、ネットワークデバイスaのWANインターフェースaとネットワークデバイスbのWANインターフェースbとの間に確立されたネットワーク接続である。接続abは、underlayネットワーク1における1つまたは複数のネットワークデバイスを通過する。接続abのエンドポイントIPアドレスは、WANインターフェースaのIPアドレスおよびWANインターフェースbのIPアドレスを含む。WANインターフェースaのIPアドレスおよびWANインターフェースbのIPアドレスは、underlayネットワーク1の事業者によって割り当てられたIPアドレスである。第1のパケットの送信元IPアドレスはWANインターフェースaのIPアドレスである。第1のパケットの宛先IPアドレスはWANインターフェースbのIPアドレスである。
【0123】
第1のパケットはSID bcを含む。SID bcは、接続bcを示すために使用されるSIDである。SID bcは、接続bcの識別子として機能することができる。
【0124】
任意選択で、SID bcはMPLSラベルの形態であるか、またはSID bcはSRv6 SIDの形態であるか、またはSID bcは、送信元サイトの識別子、宛先サイトの識別子、送信元TNPの識別子、および宛先TNPの識別子の組み合わせの形態である。例えば、ネットワークデバイスbはサイトbにおけるネットワークデバイスであり、ネットワークデバイスcはサイトcにおけるネットワークデバイスである。接続bcは、ネットワークデバイスbのWANインターフェースbとネットワークデバイスcのWANインターフェースcとの間に確立されたネットワーク接続である。SID bcは、サイトbの識別子、サイトcの識別子、WANインターフェースbの識別子、およびWANインターフェースcの識別子の組み合わせの形態である。SIDがSRv6 SIDの形態で実装される場合、既存のSRv6メカニズムが再利用されることができる。SIDが短いラベルの形態で実装される場合、バイト数は少なく、余分な帯域幅消費は低く、伝送効率はより高い。
【0125】
可能な実装形態では、第1のパケットはセグメントルーティングヘッダを含む。SID bcは、第1のパケットのセグメントルーティングヘッダに位置付けられる。任意選択で、第1のパケットのセグメントルーティングヘッダはSRv6ヘッダであり、第1のパケットのSRv6ヘッダはセグメントリスト(segment list)を含み、SID bcは第1のパケットのSRv6ヘッダにおけるsegment listに位置付けられる。任意選択で、第1のパケットのセグメントルーティングヘッダはSR-MPLSヘッダであり、第1のパケットのSR-MPLSヘッダはラベルスタックを含み、SID bcは第1のパケットのSR-MPLSヘッダにおけるラベルスタックに位置付けられる。SID bcは、第1のパケットのラベルスタックの最上位のラベルである。
【0126】
任意選択で、第1のパケットはSID abをさらに含み、SID abは接続abを示す。
【0127】
S602:ネットワークデバイスbは、ネットワークデバイスaから第1のパケットを受信する。
【0128】
いくつかの実施形態では、ネットワークデバイスaがWANインターフェースaを介して第1のパケットを送信した後、第1のパケットはunderlayネットワーク1におけるネットワークデバイスにまず到着する。underlayネットワーク1におけるネットワークデバイスは、WANインターフェースbのIPアドレスに対応するアウトバウンドインターフェースおよびネクストホップを取得するために、第1のパケットの宛先IPアドレス(すなわち、ネットワークデバイスbのWANインターフェースbのIPアドレス)に基づいてルーティングテーブルにおけるクエリを実行する。underlayネットワーク1におけるネットワークデバイスは、第1のパケットがネットワークデバイスbのWANインターフェースbへ転送されるように、WANインターフェースbのIPアドレスに対応するアウトバウンドインターフェースおよびネクストホップに基づいてパケットを転送する。ネットワークデバイスbは、WANインターフェースbを介して第1のパケットを受信する。
【0129】
S603:ネットワークデバイスbは、第2のパケットを取得するために第1のパケットを処理する。
【0130】
ネットワークデバイスbは、第1のパケットからSID bcを取得する。ネットワークデバイスbは、SID bcに基づいて接続bcを決定する。ネットワークデバイスbは、接続bcのエンドポイントIPアドレスを取得する。ネットワークデバイスbは、接続bcのエンドポイントIPアドレスにおけるネットワークデバイスbに属するIPアドレスを使用することによって、第1のパケットの送信元IPアドレスを更新し、接続bcのエンドポイントIPアドレスにおけるネットワークデバイスcに属するIPアドレスを使用することによって、第1のパケットの宛先IPアドレスを更新して、第1のパケットを第2のパケットに更新する。
【0131】
第2のパケットのIPアドレスは、接続bcのエンドポイントIPアドレスを含む。具体的には、接続bcのエンドポイントIPアドレスは、ネットワークデバイスbに属するIPアドレスおよびネットワークデバイスcに属するIPアドレスを含む。第2のパケットの送信元IPアドレスは、接続bcのエンドポイントIPアドレスにおけるネットワークデバイスbに属するIPアドレスである。第2のパケットの宛先IPアドレスは、接続bcのエンドポイントIPアドレスにおけるネットワークデバイスcに属するIPアドレスである。
【0132】
いくつかの実施形態では、第2のパケットは、元のパケットおよび外層IPヘッダを含む。第2のパケットにおける元のパケットは、第1のパケットにおける元のパケットと同じである。接続bcのエンドポイントIPアドレスは、第2のパケットの外層IPヘッダに位置付けられる。具体的には、接続bcのエンドポイントIPアドレスにおいてネットワークデバイスbに属するIPアドレスは、第2のパケットの外層IPヘッダにおける送信元アドレスフィールドに位置付けられ、接続bcのエンドポイントIPアドレスにおいてネットワークデバイスcに属するIPアドレスは、第2のパケットの外層IPヘッダにおける宛先アドレスフィールドに位置付けられる。
【0133】
任意選択で、接続bcのエンドポイントIPアドレスは、WANインターフェースのものであり、underlayネットワークの事業者によって割り当てられるIPアドレスである。例示的な実施形態では、ネットワークデバイスbはWANインターフェースbを有し、ネットワークデバイスcはWANインターフェースcを有する。接続bcは、ネットワークデバイスbのWANインターフェースbとネットワークデバイスcのWANインターフェースcとの間に確立されたネットワーク接続である。接続bcは、underlayネットワーク2における1つまたは複数のネットワークデバイスを通過する。接続bcのエンドポイントIPアドレスは、WANインターフェースbのIPアドレスおよびWANインターフェースcのIPアドレスを含む。WANインターフェースcのIPアドレスおよびWANインターフェースbのIPアドレスは、underlayネットワーク2の事業者によって割り当てられたIPアドレスである。第2のパケットの送信元IPアドレスはWANインターフェースbのIPアドレスである。第2のパケットの宛先IPアドレスはWANインターフェースcのIPアドレスである。
【0134】
第2のパケットがセグメントルーティングヘッダを含むか否か、および、第2のパケットがセグメントルーティングヘッダを含む場合のセグメントルーティングヘッダの内容については、複数の場合が存在する。任意選択で、第2のパケットはセグメントルーティングヘッダを含み、第2のパケットにおけるセグメントルーティングヘッダのsegment listは、ネットワークデバイスcのダウンストリームノードのSIDを含み、その結果、ネットワークデバイスcのダウンストリームノードは、SIDに基づいてパケットを転送し続ける。任意選択で、第2のパケットにおけるセグメントルーティングヘッダのsegment listは、第1のパケットにおけるセグメントルーティングヘッダのsegment listと同じである。例えば、パケットを処理するプロセスにおいて、ネットワークデバイスbは、セグメントルーティングヘッダのsegment listの内容を変更せずに保持し、パケットにおけるSLフィールドが指し示すSIDがSID bcからSID bcの次のSIDに変わるように、セグメントルーティングヘッダのSLフィールドを更新する。SID bcの次のSIDは、ネットワークデバイスcのSIDである。任意選択で、第2のパケットのセグメントルーティングヘッダのsegment listは第1のパケットのセグメントルーティングヘッダのsegment listとは異なり、第2のパケットのセグメントルーティングヘッダのsegment listはSID bcを含まない。例えば、パケットを処理するプロセスにおいて、ネットワークデバイスbは、ラベル切り替え動作を実行し、SID bcを別のラベルに更新する。任意選択で、第2のパケットはセグメントルーティングヘッダを含まない。例えば、ネットワークデバイスbはSR経路における最後から2番目のホップノードであり、ネットワークデバイスcはSR経路におけるテールノードであり、パケットを処理するプロセスにおいて、ネットワークデバイスbは、最後から2番目のホップポッピング機能を使用することによって、第1のパケットのセグメントルーティングヘッダがポップアップすることを可能にする。
【0135】
任意選択で、第2のパケットはSID abをさらに含み、SID abは第1の接続を示す。
【0136】
ネットワークデバイスbは、複数の実装形態を使用することによって、接続bcのエンドポイントIPアドレスにおけるネットワークデバイスcに属するIPアドレスを取得することができる。可能な実装形態では、ネットワークデバイスcは、TNPルートを事前にアドバタイズする。TNPルートは、接続bcのエンドポイントIPアドレスにおける、ネットワークデバイスcに属するIPアドレスを含む。ネットワークデバイスbは、ネットワークデバイスcによってアドバタイズされたTNPルートを受信し、ネットワークデバイスbは、TNPルートからネットワークデバイスcのIPアドレスを取得する。任意選択で、ネットワークデバイスcは、RRとBGPプロトコル近隣関係を確立する。ネットワークデバイスcは、BGPプロトコルに基づいてRRにTNPルートを報告する。RRは、ネットワークデバイスcによって報告されたTNPルートを反映し、ネットワークデバイスbにTNPルートを送信する。
【0137】
SIDの値は、複数の実装形態を使用することによって決定され得る。以下では、2つの実装形態を参照して例示的な説明を提供する。
【0138】
実装形態1:コントローラデバイスは、各接続にSIDを割り当てる。
【0139】
例えば、コントローラデバイスは、接続abにSID abを割り当て、接続bcにSID bcを割り当てる。コントローラデバイスはネットワークデバイスaにSID abを送信し、コントローラデバイスはネットワークデバイスbにSID bcを送信する。ネットワークデバイスaは、コントローラデバイスによって送信されたSID abを受信する。ネットワークデバイスbは、コントローラデバイスによって送信されたSID bcを受信する。
【0140】
実装形態2:ネットワークデバイスは、ローカルエンドで確立された各接続にSIDを割り当てる。
【0141】
例えば、ネットワークデバイスaは、接続abにSID abを割り当てる。ネットワークデバイスaは、SID abをコントローラデバイスに送信する。ネットワークデバイスbは、接続bcにSID bcを割り当てる。ネットワークデバイスbは、SID bcをコントローラデバイスに送信する。
【0142】
S604:ネットワークデバイスbは、ネットワークデバイスcに第2のパケットを送信する。
【0143】
任意選択で、接続abは、異なるサイト間の接続である。例えば、ネットワークデバイスaはサイトaにおけるネットワークデバイスであり、ネットワークデバイスbはサイトbにおけるネットワークデバイスであり、接続abはサイトaとサイトbとの間の接続であり、接続abはサイトaとサイトbとの間のunderlayネットワークを通過する。
【0144】
任意選択で、接続bcは、異なるサイト間の接続である。例えば、ネットワークデバイスbはサイトbにおけるネットワークデバイスであり、ネットワークデバイスcはサイトcにおけるネットワークデバイスであり、接続bcはサイトbとサイトcとの間の接続であり、接続bcはサイトbとサイトcとの間のunderlayネットワークを通過する。
【0145】
任意選択で、SR経路におけるネットワークデバイスcのダウンストリームノードはネットワークデバイスdを含む。ネットワークデバイスcのWANインターフェースcは、接続cdを介してネットワークデバイスdのWANインターフェースdに接続される。第1のパケットおよび第2のパケットはSID cdをさらに含み、SID cdは接続cdを示す。
【0146】
本実施形態で提供される方法によれば、トラフィック転送フェーズにおいて、SR経路における中間ノードとして機能するネットワークデバイスは、接続のエンドポイントIPアドレスにおけるローカルエンドに属するIPアドレスに基づいてパケットの送信元IPアドレスを更新し、接続のエンドポイントIPアドレスにおけるリモートエンドに属するIPアドレスに基づいてパケットの宛先IPアドレスを更新する。したがって、SR経路が複数の異なるルーティングドメインにおけるunderlayトランスポートネットワークを横断するシナリオでは、送信元IPアドレスが常にヘッドエンドのIPアドレスであり、URPFチェックが失敗するためにパケットが廃棄されるという問題が回避される。加えて、接続のエンドポイントIPアドレスは通常、ネットワークデバイスのWANインターフェースのIPアドレスであり、IPアドレスは通常、トランスポートネットワークの事業者によって割り当てられたIPアドレスであり、トランスポートネットワークはIPアドレスのルート到達可能性を当然ながら保証することができ、underlayネットワークデバイスは、宛先IPアドレスのルート到達可能性を保証するために、SR-MPLSをサポートするIGPプロトコルまたはSRv6をサポートするIGPプロトコルを実行する必要がない。したがって、underlayトランスポートネットワークのルーティングプロトコルに依存する必要はない。
【0147】
任意選択で、
図4に示される方法におけるSID bcは、End.X-SD-WANタイプのSIDである。
【0148】
End.X-SD-WANは、本願のこの実施形態で提供される新しいタイプのSIDである。End.X-SD-WANに対応するエンドポイント挙動は、接続のエンドポイントIPアドレスにおけるローカルエンドに属するIPアドレスを使用することによって、パケットの送信元IPアドレスを更新することと、接続のエンドポイントIPアドレスにおけるピアエンドに属するIPアドレスを使用することによって、パケットの宛先IPアドレスを更新することとを含む。いくつかの実施形態では、End.X-SD-WANに対応するエンドポイント挙動は、パケットにおけるアクティブな(active)SIDに基づいて、TVCデータベースにあり、アクティブなSIDに対応するTVC送信元IPアドレス(すなわち、接続のエンドポイントIPアドレスにおけるローカルエンドに属するIPアドレス)と、TVCデータベースにあり、アクティブなSIDに対応するTVC宛先IPアドレス(すなわち、接続のエンドポイントIPアドレスにおけるピアエンドに属するIPアドレス)と、TVCデータベースにあり、アクティブなSIDに対応するTVCアウトバウンドインターフェースとをクエリすること;更新されたパケットを取得するために、TVC送信元IPアドレスを使用することにより、パケットの送信元アドレスを更新し、TVC宛先IPアドレスを使用することにより、パケットの宛先アドレスを更新すること;およびアクティブなSIDに対応するTVCアウトバウンドインターフェースを介して更新されたパケットを送信すること、を具体的には含む。アクティブなSIDは、現在のデバイスの処理対象SIDである。SRv6の場合、アクティブなSIDは、パケットにおけるSRHにおけるSLフィールドによって示されるsegment listにおけるSIDである。SR-MPLSの場合、アクティブなSIDは、パケットにおけるラベルスタックの最上位のラベルである。
【0149】
いくつかの実施形態では、End.X-SD-WANを実装するための擬似コードが以下に示される。
End.x-sdwan:
S01.When an SRH is processed{
S02.If(Segments Left==0){
S03.Stop processing the SRH,and proceed to process the next
header in the packet,whose type is identified by
the Next Header field in the routing header.
S04.}
…
S12.Decrement IPv6 Hop Limit by 1
S13.Decrement Segments Left by 1
S14.Lookup Tunnel virtual connection DB with Segment List[Segment Left]、update IPv6 SA and DA with TVC source IP and destination ip
S15.Submit the packet to the Tunnel virtual connection
S16.}
【0150】
上記の擬似コードの意味が以下に示される。
End.X-SD-WAN:
S01.When an SRH is processed{
S02.If(Segments Left==0){
S03.SRHの処理を停止し、ルーティングヘッダにおける次のヘッダフィールドによってタイプが識別される、パケットにおけるSRHの次のヘッダ(next header)の処理に進む。}
…
S12.IPv6ホップ制限を1だけ減少させる。
S13.残ったセグメントを1だけ減少させる。
S14.セグメントリストのセグメント左(segments left、SL)フィールドによって示されるSIDを使用することにより、TVCデータベースを探索する;見つかったTVC送信元IPアドレスを使用することにより、パケットのIPv6送信元アドレス(source address、SA)を更新し;見つかったTVC宛先IPアドレスを使用することにより、パケットのIPv6宛先アドレス(destination address、DA)フィールドを更新する。
S15.パケットをIPv6転送モジュールに送信し、対応するTVCアウトバウンドインターフェースを介してパケットを新しい宛先に転送する。
S16.}
【0151】
ネットワークデバイスbが第1のパケットを処理するプロセスは、第2のパケットを取得するために、ネットワークデバイスbが第1のパケットでEnd.X-SD-WANに対応するエンドポイント挙動を実行することを含む。具体的には、ネットワークデバイスbは、ローカルSIDテーブルを予め作成して記憶する。ローカルSIDテーブルは、SID、SIDタイプ、およびアウトバウンドインターフェースの間の対応関係を記憶するために使用される。ローカルSIDテーブルにおいて、SID bcに対応するSID種別はEnd.X-SD-WANであり、SID bcに対応するアウトバウンドインターフェースはWANインターフェースbである。ネットワークデバイスbが第1のパケットを受信した後、ネットワークデバイスbは、第1のパケットにおけるSID bcに基づいてローカルSIDテーブルにおいてクエリを実行して、SID bcに対応するSIDタイプがEnd.X-SD-WANであり、アウトバウンドインターフェースはWANインターフェースbであることを発見する。したがって、ネットワークデバイスbは、End.X-SD-WANに対応するエンドポイント挙動を実行する。具体的には、ネットワークデバイスbは、接続bcのエンドポイントIPアドレスを使用することにより、第1のパケットの送信元アドレスおよび宛先アドレスを更新し、WANインターフェースbを介して取得した第2のパケットを送信する。
【0152】
任意選択で、ネットワークデバイスは、End.X-SD-WANタイプのSIDとTVCとの間の対応関係、ならびにTVCとWANインターフェースとの間の対応関係を確立する。パケット転送プロセスにおいて、ネットワークデバイスは、パケットにおけるSIDに基づいて対応するTVCをまずクエリし、次いで、TVCに基づいて対応するWANインターフェースをクエリし、WANインターフェースを介してパケットを転送する。例えば、
図4に示される方法では、ネットワークデバイスbは、TVC bc(すなわち、接続bc)を取得するために、SID bcに基づいて対応するアウトバウンドインターフェースにまずクエリし、次いで、WANインターフェースbを取得するために、TVC bcに対応するアウトバウンドインターフェースにクエリする。
【0153】
任意選択で、
図4に示される方法におけるSID abは、End.X-SD-WANタイプのSIDである。ネットワークデバイスaが第1のパケットを送信する特定のプロセスは、ネットワークデバイスaがユーザ機器から元のパケットを受信することを含む。ネットワークデバイスaは、元のパケットの宛先IPアドレスに基づいてルーティングテーブルでクエリを実行する。ネットワークデバイスaは、元のパケットの宛先IPアドレスがSRポリシーに対応することを発見する。SRポリシーにおけるセグメントリスト(segment list)は、接続abに対応するSID abと、接続bcに対応するSID bcとを含む。SID abは、セグメントリストにおける1番目のSIDである。ネットワークデバイスaは、SID abに基づいてローカルSIDテーブルにおいてクエリを実行して、SID abに対応する接続が接続abであり、SID abに対応するアウトバウンドインターフェースがWANインターフェースaであり、SID abに対応するエンドポイント挙動は、接続のエンドポイントIPアドレスにおけるローカルエンドに属するIPアドレスを使用することにより、パケットの送信元IPアドレスを更新することと、接続のエンドポイントIPアドレスにおけるピアエンドに属するIPアドレスを使用することにより、パケットの宛先IPアドレスを更新することとを含む。ネットワークデバイスaは、SID abに対応するエンドポイント挙動に基づいて元のパケットに外層IPヘッダおよびSRHを追加して、第1のパケットを取得する。第1のパケットの外層IPヘッダの送信元IPアドレスは、接続のエンドポイントIPアドレスにおけるネットワークデバイスaに属するIPアドレスであり、外層IPヘッダの宛先IPアドレスは、接続のエンドポイントIPアドレスにおけるネットワークデバイスbに属するIPアドレスである。SRHは、SID bcを含む。ネットワークデバイスaは、WANインターフェースaを介して第1のパケットを送信する。
【0154】
この実施形態では、End.X-SD-WANタイプのSIDが提供され、複数のTVCを含むSR経路に基づくトラフィック転送がサポートされ、TVCのエンドポイントIPアドレスに基づいて(SIDを使用せずに)パケットがカプセル化され、それによって、underlayネットワークから分離されたoverlay SRトンネリング技術が実装される。具体的には、既存のSRv6技術では、End.Xは、SRHにおけるセグメントリストのネクストホップSIDを取得し、ネクストホップSIDをIPv6パケットの宛先IPアドレスとして使用し、宛先IPアドレスがSIDであるパケットを指定されたリンクを介して送信するために使用される。結果として、edgeデバイスおよび中間トランスポートネットワークデバイスは、IGPプロトコルを使用することによって相互作用する必要があり、edgeデバイスは、トランスポートネットワークにおけるすべてのデバイスにSIDに対応するLocatorプレフィックスルートをアドバタイズする必要がある。そうでない場合、トランスポートネットワークにおけるデバイスは、パケットの宛先IPアドレスに基づいてルートを見つけることができず、したがって、SIDに対応するエッジデバイスにパケットを転送することができない。しかし、この実施形態では、End.X-SD-WANが、SRHにおけるsegment listにおけるネクストホップSIDに基づいてTVCデータベースを探索することを含むので、TVCデータベースにおけるTVCの送信元IPアドレスおよびTVCの宛先IPアドレスに基づいてIPv6パケットの送信元IPアドレスおよび宛先IPアドレスを更新すること、および、次いで、TVCに対応する物理リンクを介して更新されたパケットを送信すること。TVCの送信元IPアドレスおよびTVCの宛先IPアドレスは、edgeデバイス上のWANインターフェースのIPアドレスであり、WANインターフェースのIPアドレスは、通常、中間トランスポートネットワークによって割り当てられ、ルートは、トランスポートネットワークにおいて当然ながら転送され得る。したがって、このようにカプセル化されたSRパケットは、ルート探索およびURPFチェックの失敗の問題を有さない。
【0155】
以下では、underlayネットワークがIPv6ネットワークであるシナリオにおける具体的な実装形態について説明する。以下に説明する実装形態は、SD-WAN SRv6トンネリング技術として提供されてもよい。
【0156】
underlayネットワークがIPv6ネットワークである場合、ネットワークデバイスによってパケットに追加される、接続のエンドポイントIPアドレスは、IPv6アドレスである。パケットの外層IPヘッダは、IPv6ヘッダである。IPv6ヘッダにおける送信元IPアドレスおよび宛先IPアドレスは、IPv6アドレスである。
【0157】
図4に示される方法が例として使用される。接続abに対応するunderlayネットワーク1がIPv6ネットワークである場合、任意選択で、ネットワークデバイスaとネットワークデバイスbの両方がIPv6をサポートするネットワークデバイスである。第1のパケットにおける接続abのエンドポイントIPアドレスはIPv6アドレスである。第1のパケットは、外層IPv6ヘッダ、SRH、および元のパケットを含む。接続abのエンドポイントIPアドレスは、第1のパケットの外層IPv6ヘッダに位置付けられる。具体的には、接続abのエンドポイントIPアドレスにおけるネットワークデバイスaに属するIPv6アドレスは、第1のパケットの外層IPv6ヘッダにおける送信元アドレスフィールドに位置付けられる。接続abのエンドポイントIPアドレスにおけるネットワークデバイスbに属するIPv6アドレスは、第1のパケットの外層IPv6ヘッダにおける宛先アドレスフィールドに位置付けられる。第1のパケットはSRHを含む。SID bcは、第1のパケットのSRHに位置付けられる。
【0158】
同様に、接続bcのunderlayネットワークがIPv6ネットワークである場合、任意選択で、ネットワークデバイスbおよびネットワークデバイスcの両方は、IPv6をサポートするネットワークデバイスである。第2のパケットにおける接続bcのエンドポイントIPアドレスは、IPv6アドレスである。第2のパケットは、外層IPv6ヘッダと元のパケットとを含む。接続bcのエンドポイントIPアドレスは、第2のパケットの外層IPv6ヘッダに位置付けられる。具体的には、接続bcのエンドポイントIPアドレスにおけるネットワークデバイスbに属するIPv6アドレスは、第2のパケットの外層IPv6ヘッダにおける送信元アドレスフィールドに位置付けられる。接続bcのエンドポイントIPアドレスにおけるネットワークデバイスcに属するIPv6アドレスは、第2のパケットの外層IPv6ヘッダにおける宛先アドレスフィールドに位置付けられる。
【0159】
以下では、underlayネットワークがIPv4ネットワークであるシナリオにおける具体的な実装形態について説明する。以下に説明する実装形態は、SD-WAN SRv4トンネリング技術として提供されてもよい。
【0160】
underlayネットワークがインターネットプロトコルバージョン4(internet protocol version 4、IPv4)ネットワークである場合、ネットワークデバイスによってパケットに追加される、接続のエンドポイントIPアドレスは、IPv4アドレスである。パケットの外層IPヘッダは、IPv4ヘッダである。IPv4ヘッダにおける送信元IPアドレスおよび宛先IPアドレスは、IPv4アドレスである。パケットはSRHに対応するプロトコルのタイプを含み、SRHに対応するプロトコルのタイプはパケットにおけるSRHの外層に位置付けられる。SRHに対応するプロトコルのタイプを搬送するための特定の位置は、複数の実装形態を含む。以下では、3つの実装形態を参照して例示的な説明を提供する。
【0161】
実装形態1:ネットワークデバイスは、外層IPv4ヘッダとSRHとの間に汎用ルーティングカプセル化(generic routing encapsulation、GRE)ヘッダをカプセル化する。GREヘッダは、SRHに対応するプロトコルのタイプを含む。可能な実装形態では、SRHに対応するプロトコルのタイプは、GREヘッダにおけるペイロードプロトコル(payload protocol)フィールドに位置付けられる。
図5は、GREを介してSD-WAN SRv4トンネルパケットをカプセル化するフォーマットの概略図である。
図5に示されたように、パケットは、外層IPヘッダ、GREヘッダ、SRH、および元のパケットを含む。
【0162】
実装形態2:ネットワークデバイスは、外層IPv4ヘッダとSRHとの間に仮想拡張可能ローカルエリアネットワーク(virtual extensible local area network、VXLAN)ヘッダをカプセル化する。VXLANヘッダは、SRHに対応するプロトコルのタイプを含む。可能な実装形態では、SRHに対応するプロトコルのタイプは、VXLANヘッダにおける次のプロトコル(next protocol)フィールドに位置付けられる。
【0163】
実装形態3:ネットワークデバイスは、SRHに対応するプロトコルのタイプを外層IPv4ヘッダに追加する。
【0164】
図4に示される方法が例として使用される。接続abのunderlayネットワークがIPv4ネットワークである場合、任意選択で、ネットワークデバイスaとネットワークデバイスbの両方がIPv4をサポートするネットワークデバイスである。第1のパケットにおける接続abのエンドポイントIPアドレスはIPv4アドレスである。第1のパケットは、外層IPv4ヘッダ、SRH、および元のパケットを含む。接続abのエンドポイントIPアドレスは、第1のパケットの外層IPv4ヘッダに位置付けられる。具体的には、接続abのエンドポイントIPアドレスにおけるネットワークデバイスaに属するIPv4アドレスは、第1のパケットの外層IPv4ヘッダにおける送信元アドレスフィールドに位置付けられる。接続abのエンドポイントIPアドレスにおけるネットワークデバイスbに属するIPv4アドレスは、第1のパケットの外層IPv4ヘッダにおける宛先アドレスフィールドに位置付けられる。第1のパケットはSRHを含む。SID bcは、第1のパケットのSRHに位置付けられる。第1のパケットは、SRHに対応するプロトコルのタイプを含む。
【0165】
実装形態1が使用されるとき、第1のパケットはGREヘッダを含む。第1のパケットのGREヘッダは、外層IPv4ヘッダとSRHとの間に位置付けられる。SRHに対応するプロトコルのタイプは、第1のパケットのGREヘッダに位置付けられる。実装形態2が使用されるとき、第1のパケットはVXLANヘッダを含む。第1のパケットのVXLANヘッダは、外層IPv4ヘッダとSRHとの間に位置付けられ、SRHに対応するプロトコルのタイプは、第1のパケットのVXLANヘッダに位置付けられる。実装形態3が使用されるとき、SRHに対応するプロトコルのタイプは、第1のパケットのIPv4ヘッダに位置付けられる。
【0166】
同様に、接続bcのunderlayネットワークがIPv4ネットワークである場合、任意選択で、ネットワークデバイスbとネットワークデバイスcの両方がIPv4をサポートするネットワークデバイスである。第2のパケットにおける接続bcのエンドポイントIPアドレスは、IPv4アドレスである。第2のパケットは、外層IPv4ヘッダと元のパケットとを含む。接続bcのエンドポイントIPアドレスは、第2のパケットの外層IPv4ヘッダに位置付けられる。具体的には、接続bcのエンドポイントIPアドレスにおけるネットワークデバイスbに属するIPv4アドレスは、第2のパケットの外層IPv4ヘッダにおける送信元アドレスフィールドに位置付けられる。接続bcのエンドポイントIPアドレスにおけるネットワークデバイスcに属するIPv4アドレスは、第2のパケットの外層IPv4ヘッダにおける宛先アドレスフィールドに位置付けられる。
【0167】
以下では、underlayネットワークがIPv6ネットワークおよびIPv4ネットワークを含むシナリオにおける特定の実装形態について説明する。以下に説明する実装形態は、SD-WAN SRv6およびSRv4ハイブリッドトンネリング技術として提供されてもよい。
【0168】
underlayネットワークがIPv6ネットワークおよびIPv4ネットワークを含む場合、ネットワークデバイスは、パケットカプセル化フォーマットを変換し、パケットの外層IPヘッダをIPv4ヘッダからIPv6ヘッダに更新するか、またはパケットの外層IPヘッダをIPv6ヘッダからIPv4ヘッダに更新する。
【0169】
例えば、
図4に示される方法では、接続abのunderlayネットワークがIPv4ネットワークであり、接続bcのunderlayネットワークがIPv6ネットワークである場合、任意選択で、ネットワークデバイスaはIPv4ネットワークをサポートするデバイスであり、ネットワークデバイスbはIPv4ネットワークとIPv6ネットワークの両方をサポートするデバイスであり、ネットワークデバイスcはIPv6ネットワークをサポートするデバイスである。第1のパケットにおける接続abのエンドポイントIPアドレスはIPv4アドレスである。第2のパケットにおける接続bcのエンドポイントIPアドレスは、IPv6アドレスである。ネットワークデバイスbがパケットを処理するプロセスは、ネットワークデバイスbが、第1のパケットから、接続abのエンドポイントIPアドレスを含む外層IPv4ヘッダをデカプセル化することを含む。ネットワークデバイスbは、接続bcのエンドポイントIPアドレスを含む外層IPv6ヘッダを生成する。ネットワークデバイスbは、第2のパケットを取得するために、接続bcのエンドポイントIPアドレスを含む外層IPv6ヘッダをパケットにカプセル化する。
【0170】
接続abのunderlayネットワークがIPv6ネットワークであり、接続bcのunderlayネットワークがIPv4ネットワークである場合、任意選択で、ネットワークデバイスaはIPv6ネットワークをサポートするデバイスであり、ネットワークデバイスbはIPv4ネットワークとIPv6ネットワークの両方をサポートするデバイスであり、ネットワークデバイスcはIPv4ネットワークをサポートするデバイスである。第1のパケットにおける接続abのエンドポイントIPアドレスはIPv6アドレスである。第2のパケットにおける接続bcのエンドポイントIPアドレスは、IPv4アドレスである。ネットワークデバイスbがパケットを処理するプロセスは、ネットワークデバイスbが、第1のパケットから、接続abのエンドポイントIPアドレスを含む外層IPv6ヘッダをデカプセル化することを含む。ネットワークデバイスbは、接続bcのエンドポイントIPアドレスを含む外層IPv4ヘッダを生成する。ネットワークデバイスbは、第2のパケットを取得するために、接続bcのエンドポイントIPアドレスを含む外層IPv4ヘッダをパケットにカプセル化する。
【0171】
可能な実装形態では、ネットワークデバイスは、接続とカプセル化タイプとの間の対応関係を記憶する。ネットワークデバイスは、接続に対応するカプセル化タイプに基づいて、元のパケットにカプセル化されるパケットヘッダを決定する。例えば、ネットワークデバイスbがSIDに対応する接続を決定した後、接続に対応するカプセル化タイプがSRv6である場合、ネットワークデバイスbは、IPv6ヘッダおよびSRHを第1のパケットにカプセル化する。接続に対応するカプセル化タイプがSRv4-GREである場合、ネットワークデバイスbは、IPv4ヘッダ、GREヘッダ、およびSRHを第1のパケットにカプセル化する。接続に対応するカプセル化タイプがSRv4-VXLANである場合、ネットワークデバイスbは、IPv4ヘッダ、VXLANヘッダ、およびSRHを第1のパケットにカプセル化する。
【0172】
上述した
図4に示される実施形態は、転送プレーンにおける基本的な手順を提供する。本出願のいくつかの実施形態は、制御プレーンでの基本手順をさらに提供する。以下で詳細な説明を提供する。
【0173】
図6は、本出願の実施形態による経路決定方法のフローチャートである。
図6に示される方法は、以下のステップS702からステップS704を含む。
【0174】
ステップS702:コントローラデバイスは、複数の接続のエンドポイントIPアドレスを取得する。
【0175】
いくつかの実施形態では、ネットワークデバイスは、複数の接続のエンドポイントIPアドレスを取得するために、接続のエンドポイントIPアドレスをコントローラデバイスに送信し、コントローラデバイスは、ネットワークデバイスによって送信された接続のエンドポイントIPアドレスを受信する。以下では、3つの実装形態を参照して例示的な説明を提供する。
【0176】
実装形態A:送信元エンドとして機能するネットワークデバイスは、コントローラデバイスに接続のエンドポイントIPアドレスを報告する。
【0177】
例えば、
図4に示される方法を参照すると、ネットワークデバイスaは、接続abのエンドポイントIPアドレスをコントローラデバイスに送信する。ネットワークデバイスbは、接続bcのエンドポイントIPアドレスをコントローラデバイスに送信する。コントローラデバイスは、ネットワークデバイスaによって送信された接続abのエンドポイントIPアドレスを受信し、ネットワークデバイスbによって送信された接続bcのエンドポイントIPアドレスを受信して、接続abのエンドポイントIPアドレスおよび接続bcのエンドポイントIPアドレスを取得する。
【0178】
実装形態B:宛先エンドとして機能するネットワークデバイスは、コントローラデバイスに接続のエンドポイントIPアドレスを報告する。
【0179】
例えば、
図4に示される方法を参照すると、ネットワークデバイスbは、接続abのエンドポイントIPアドレスをコントローラデバイスに送信する。ネットワークデバイスcは、接続bcのエンドポイントIPアドレスをコントローラデバイスに送信する。
【0180】
実装形態C:送信元エンドとして機能するネットワークデバイスおよび宛先エンドとして機能するネットワークデバイスはそれぞれ、コントローラデバイスへの接続のエンドポイントIPアドレスを報告し、コントローラデバイスは、2つのネットワークデバイスによって報告された接続のエンドポイントIPアドレスからIPアドレスを選択する。
【0181】
例えば、
図4に示される方法を参照すると、ネットワークデバイスaは接続abのエンドポイントIPアドレスをコントローラデバイスに送信し、ネットワークデバイスbは接続abのエンドポイントIPアドレスおよび接続bcのエンドポイントIPアドレスをコントローラデバイスに送信する。ネットワークデバイスcは、接続bcのエンドポイントIPアドレスをコントローラデバイスに送信する。コントローラデバイスは、接続abのエンドポイントIPアドレスとして、ネットワークデバイスaによって送信された接続abのエンドポイントIPアドレスおよびネットワークデバイスbによって送信された接続abのエンドポイントIPアドレスからIPアドレスを選択する。コントローラデバイスは、接続bcのエンドポイントIPアドレスとして、ネットワークデバイスbによって送信された接続bcのエンドポイントIPアドレスおよびネットワークデバイスcによって送信された接続bcのエンドポイントIPアドレスからIPアドレスを選択する。
【0182】
いくつかの実施形態では、ネットワークデバイスは、ネットワークデバイスが位置付けられるサイトの識別子(site ID)をさらに取得し、サイトの識別子をコントローラデバイスに報告する。例えば、ネットワークデバイスaはサイトaに展開され、ネットワークデバイスbはサイトbに展開され、ネットワークデバイスcはサイトcに展開され、ネットワークデバイスaはサイトaの識別子をコントローラデバイスに送信し、ネットワークデバイスbはサイトbの識別子をコントローラデバイスに送信し、ネットワークデバイスcはサイトcの識別子をコントローラデバイスに送信する。
【0183】
いくつかの実施形態では、ネットワークデバイスは、接続の接続ステータスを検出し、ネットワークデバイスは、接続の接続ステータスをコントローラデバイスにさらに報告する。接続の接続ステータスは、アップ(up)のステータスおよびダウン(down)のステータスを含む。可能な実装形態では、ネットワークデバイスは、接続のピアエンドにプローブパケットを定期的に送信し、ピアエンドによって返された応答パケットが所定の期間内に受信されたかどうかに応じて、接続の接続ステータスを決定する。
【0184】
任意選択で、送信元エンドとして機能するネットワークデバイスは、コントローラデバイスへの接続の接続ステータスを報告する。例えば、
図4に示される方法を参照すると、ネットワークデバイスaは、接続abの接続ステータスをコントローラデバイスに送信する。ネットワークデバイスbは、接続bcの接続ステータスをコントローラデバイスに送信する。任意選択で、宛先エンドとして機能するネットワークデバイスは、コントローラデバイスへの接続の接続ステータスを報告する。例えば、
図4に示される方法を参照すると、ネットワークデバイスaは、接続abの接続ステータスをコントローラデバイスに送信する。ネットワークデバイスcは、接続bcの接続ステータスをコントローラデバイスに送信する。任意選択で、送信元エンドとして機能するネットワークデバイスと宛先エンドとして機能するネットワークデバイスの両方が、コントローラデバイスへの接続の接続ステータスを報告する。
【0185】
いくつかの実施形態では、ネットワークデバイスは、接続のサービスレベル合意(service-level agreement、SLA)の情報を検出し、ネットワークデバイスは、コントローラデバイスに接続のSLA情報を報告する。接続のSLA情報は、パケット損失率、遅延、ジッタ、または帯域幅利用のうちの少なくとも1つを含むが、これらに限定されない。
【0186】
任意選択で、送信元エンドとして機能するネットワークデバイスは、コントローラデバイスへの接続のSLA情報を報告する。例えば、
図4に示される方法を参照すると、ネットワークデバイスaは、接続abのSLA情報をコントローラデバイスに送信する。ネットワークデバイスbは、接続bcのSLA情報をコントローラデバイスに送信する。任意選択で、宛先エンドとして機能するネットワークデバイスは、コントローラデバイスへの接続のSLA情報を報告する。例えば、
図4に示される方法を参照すると、ネットワークデバイスbは、接続abのSLA情報をコントローラデバイスに送信する。ネットワークデバイスcは、接続bcのSLA情報をコントローラデバイスに送信する。任意選択で、送信元エンドとして機能するネットワークデバイスと宛先エンドとして機能するネットワークデバイスの両方が、コントローラデバイスへの接続のSLA情報を報告する。
【0187】
いくつかの実施形態では、ネットワークデバイスは、コントローラデバイスへの接続に対応するSIDをさらに報告する。例えば、
図4に示される方法を参照すると、ネットワークデバイスaは、接続abに対応するSID abをコントローラデバイスに送信する。ネットワークデバイスbは、接続bcに対応するSID bcをコントローラデバイスに送信する。
【0188】
任意選択で、ネットワークデバイスが複数のピアエンドへの複数の接続を確立すると、ネットワークデバイスは、コントローラデバイスに、複数の接続の各々のエンドポイントIPアドレス、複数の接続の各々の接続ステータス、複数の接続の各々のSLA情報、および複数の接続の各々に対応するSIDを送信する。
【0189】
いくつかの実施形態では、ネットワークデバイスは、BGP LSプロトコルに基づいて、接続のエンドポイントIPアドレス、接続のステータス、SID、およびサイトの識別子などの様々な情報をコントローラデバイスに報告する。以下では、例を使用して、BGP LSプロトコルに基づいて前述の様々な情報を報告する具体的な実装形態を説明する。
【0190】
可能な実装形態では、プロトコル識別子(protocol-ID)の定義は、RFC 7752に基づいて拡張され、新しいプロトコル識別子は、BGP SD-WAN TVCトポロジデータベースをサポートするために、接続のエンドポイントIPアドレスなどの様々な情報の報告をサポートするよう定義される。プロトコル識別子は、例えば、トポロジ情報の送信元を示すプロトコル番号である。表1は拡張プロトコル識別子を示しており、SD-WANプロトコルの識別子が新たに追加されている。SD-WANプロトコルの識別子は、パケットにおけるネットワーク層到達可能性情報(network layer reachability information、NLRI)(すなわち、接続のエンドポイントIPアドレスおよび接続のステータスなどの様々な情報)における送信元プロトコルが、SD-WANプロトコルであることを示す。
【0191】
【0192】
例えば、ネットワークデバイスbが接続のエンドポイントIPアドレスを報告するプロセスは、ネットワークデバイスbがBGP-LSパケットを生成し、BGP-LSパケットは接続bcのエンドポイントIPアドレスおよび/または接続abのエンドポイントIPアドレスを含み、BGP-LSパケットはSD-WANプロトコルの識別子をさらに含むことを含む。ネットワークデバイスbは、コントローラデバイスにBGP-LSパケットを送信する。SD-WANプロトコルの識別子は、コントローラデバイスが、BGP LSパケットにおけるプロトコルの識別子を使用することによって、BGP LSが本実施形態で提供される新しいトポロジデータを収集することを識別できるように拡張される。
【0193】
いくつかの実施形態では、BGP LSノードルート(nodeルート)は、RFC 7752に基づいて拡張される。BGP LSノードルートは、SD-WANプロトコルの識別子と、SD-WANサイト識別子(SD-WAN site ID)とを含む。SD-WAN site IDは、SD-WANにおけるネットワークデバイスに対応するサイトを識別するために使用される。BGP LSノードルートの他の情報は、既存の規格の定義を再利用する。例えば、SD-WAN用のBGP LSノードルートの内容が表2に示される。
【0194】
【0195】
いくつかの実施形態では、BGP LSリンクルート(linkルート)は、RFC 7752に基づいて拡張される。BGP LSリンクルートは、SD-WANプロトコルの識別子、TVCステータス属性、セグメント識別子属性を含む。TVCステータス属性は、SD-WAN-TVC-status属性とも呼ばれる。TVCステータス属性は、SD-WAN TVCのトンネルステータスを搬送するために使用される。セグメント識別子属性は、SD-WAN-segment-id属性とも呼ばれる。セグメント識別子属性は、SD-WAN TVC SIDを搬送するために使用される。例えば、SD-WAN用のBGP LSリンクルートの内容が、表3に示される。
【0196】
【0197】
ステップS703:コントローラデバイスは、複数の接続のエンドポイントIPアドレスに基づいてSR経路を決定する。
【0198】
例えば、SR経路におけるノードは、ネットワークデバイスa、ネットワークデバイスb、およびネットワークデバイスcを含む。SR経路における接続は、接続abおよび接続bcを含む。
【0199】
任意選択で、コントローラデバイスは、単一のネットワークデバイスをオブジェクトとして使用することによって経路計算を実行する代わりに、サイトをオブジェクトとして使用することによって経路計算を実行する。次に、サイトをオブジェクトとして使用することによって実行される経路計算に関する特徴について説明する。
【0200】
例えば、ステップS702において、コントローラデバイスは、複数のサイトにおける異なるサイト間の接続のエンドポイントIPアドレスを、具体的には取得する。ステップS703において、コントローラデバイスは、サイトを経路オーケストレーションオブジェクトとして使用することによって、複数の接続のエンドポイントIPアドレスに基づいてSR経路を決定する。ステップS704でコントローラデバイスによって送信されたSRポリシーにおけるエンドポイントは、サイトに対応する。任意選択で、SRポリシーにおけるエンドポイントの値は、特定のデバイスのIPアドレスの代わりにサイトの識別子であってもよい。
【0201】
1つのサイトが複数のネットワークデバイスを含む場合、同じサイトにおける各ネットワークデバイスは、ネットワークデバイスによって確立された接続のエンドポイントIPアドレスおよびサイトの識別子をコントローラデバイスに送信する。同じサイトにおけるすべてのネットワークデバイスによって報告されたサイト識別子は同じである。任意選択で、同じサイトにおける異なるネットワークデバイスによって報告される接続のエンドポイントIPアドレスは異なる。コントローラデバイスは、同一サイトにおける複数のネットワークデバイスを1つのノードと見なすことによって経路計算を実行する。
【0202】
任意選択で、コントローラデバイスは、経路計算を実行するために、同じサイトにおける異なるネットワークデバイスによって確立された接続から接続を選択する。例えば、ネットワークはサイト1とサイト2とを含み、サイト1はネットワークデバイスaとネットワークデバイスbとを含み、サイト2はネットワークデバイスcとネットワークデバイスdとを含む。コントローラデバイスは、ネットワークデバイスによって報告されたトポロジ情報に基づいて、ネットワークが4つの接続を含むと決定する。4つの接続は、ネットワークデバイスaからネットワークデバイスcへの接続、ネットワークデバイスaからネットワークデバイスdへの接続、ネットワークデバイスbからネットワークデバイスcへの接続、およびネットワークデバイスbからネットワークデバイスdへの接続である。コントローラデバイスは、オーケストレーションを実行するために、指定された制約に基づいて4つの接続から接続を選択する。制約は、例えば、経路でのSLA要件である。SLA要件は、遅延が指定された持続時間よりも少ない、パケット損失率が指定されたパケット損失率よりも少ない、ジッタが指定された値よりも少ない、帯域幅利用率が指定された帯域幅利用率より大きい、などの要件を含むが、これらに限定されない。
【0203】
可能な実装形態では、ユーザ機器は、ユーザによって設定された経路計算意図を取得し、ユーザ機器は、経路計算意図をコントローラデバイスに送信する。コントローラデバイスは、ユーザ機器によって送信された経路計算意図を受信する。コントローラデバイスは、ユーザによって設定された経路計算意図に基づいて経路計算を実行する。経路計算意図は、送信元サイト、宛先サイト、および制約を含む。コントローラデバイスは、TVCトポロジデータベースから、経路計算意図を満たす複数のTVCを選択し、選択された複数のTVCを使用することによってSR経路を生成する。
【0204】
図7は、overlayネットワークにおけるSR経路の計算の概略図である。
図7に示されるように、本部サイトは、edge2-1およびedge2-2を含む。支部サイトは、edge1を含む。集約サイトは、edge3を含む。TVCは、edge1のTNP 1とedge2-1のTNP 21との間に確立される。edge1とedge2-1との間のTVCに対応するSIDはSID 1021である。TVCは、edge1のTNP 1とedge3のTNP 3との間に確立される。edge1とedge3との間のTVCに対応するSIDはSID 103である。TVCは、edge3のTNP 3とedge2-2のTNP 22との間に確立される。edge3とedge2-2との間のTVCに対応するSIDはSID 3022である。edge2-1、edge2-2、edge1、およびedge3は、TVCのトポロジ情報をコントローラデバイスに別々に報告する。コントローラデバイスは、TVCのトポロジ情報に基づいてポリシーオーケストレーションを実行する。具体的には、経路計算意図では、送信元サイトは支部サイトであり、宛先サイトは本部サイトであり、制約は、遅延が指定された持続時間より少ないか、またはパケット損失率が指定されたパケット損失率より少ないことである。コントローラデバイスは、TVCのトポロジ情報および経路計算意図に基づいて、支部サイトから本部サイトへのSR経路を計算して、2つのSR経路を取得する。コントローラデバイスによって計算される2つのSR経路は、SR経路(1)およびSR経路(2)である。SR経路(1)は、edge1からedge2-1までのTVCを含む。SR経路(1)は、遅延が指定された持続時間より少ないという制約を満たす。SR経路(2)は、edge1からedge3へのTVCと、edge3からedge2-2へのTVCとを含む。SR経路(2)は、パケット損失率が指定されたパケット損失率より少ないという制約を満たす。コントローラデバイスは、経路計算結果に基づいてSRポリシー1およびSRポリシー2を生成する。SRポリシー1は、SR経路(1)のセグメントリストを含む。SRポリシー2は、SR経路(2)のセグメントリストを含む。SRポリシー1の具体的な内容が表4に示されSRポリシー2の具体的な内容が表5に示される。
【0205】
【0206】
【0207】
任意選択で、ネットワークデバイスがコントローラデバイスに接続のステータスを送信した後、ネットワークデバイスは接続のステータスをさらに検出する。ネットワークデバイスでの接続のステータスが更新された場合、ネットワークデバイスは、コントローラデバイスに接続の更新されたステータスを送信する。コントローラデバイスは、ネットワークデバイスによって報告された接続の更新されたステータスに基づいて、トポロジデータベースに記憶されたトポロジデータを更新し、更新されたトポロジデータに基づいてSRポリシーを再計算する。接続のステータスの更新は、接続の接続ステータスのupステータスからdownステータスへの更新、接続の接続ステータスのdownステータスからupステータスへの更新、および接続のSLA情報の変更(例えば、SLAの減少またはSLAの増加)を含むが、これらに限定されない。
【0208】
例えば、ネットワークデバイスは、ネットワークデバイスによって確立された各TVCに対して接続ステータスの検出を実行する。物理ネットワークリンク障害によりTVCのステータスがupステータスからdownステータスに更新された場合、ネットワークデバイスはコントローラデバイスにBGP-LSパケットを送信する。BGP-LSパケットは、TVCがdownステータスであることを示す。コントローラデバイスがBGP-LSパケットを受信した後、コントローラデバイスは、トポロジデータベースにおけるTVCのステータスをdownステータスに更新し、TVCを含むSR経路を無効にするか、またはTVCを含むSR経路を中止するか、または新しいSR経路を再計算する。
【0209】
従来のSD-WANソリューションでは、エンドツーエンドの経路ステータス認識は存在しない。TVCが故障している場合、またはTVCの質が劣化している場合、TVCの2つのネットワークデバイス以外のネットワークデバイスは、TVCの故障または質の劣化を検出することができない。その結果、転送中にトラフィックが破棄される。しかしながら、この実施形態では、ネットワークデバイスは、ネットワークデバイスによって確立された各TVCに対して接続ステータスの検出またはSLA検出を実行し、TVCのステータスが更新された後にTVCのステータスをコントローラデバイスに報告し、その結果、コントローラデバイスは、SR経路における各TVCのステータスを適時に認識することができ、それによってエンドツーエンドの経路ステータスの認識を実装する。SR経路におけるTVCが故障しているか、またはTVCの質が劣化している場合、コントローラデバイスは、SR経路を無効にするか、SR経路を中止にするか、またはSR経路を再計算することによってトラフィックを別のSR経路にインポートして、転送中にトラフィックが廃棄されるのを防ぐことができる。
【0210】
ステップS704:コントローラデバイスは、ネットワークデバイスaにSRポリシーを送信する。
【0211】
コントローラデバイスは、決定されたSR経路に基づいてSRポリシー(policy)を生成する。SRポリシーは、SR経路を示す。SRポリシーは、カラー(color)、エンドポイント(endpoint)、1つ以上の候補経路(candidate Path)、好みの設定(preference)、セグメントリスト(segment list)を含む。SRポリシーにおけるセグメントリストは1つ以上のSIDを含む。各SIDは1つの接続を示す。例えば、SRポリシーは、接続abに対応するSID abと、接続bcに対応するSID bcとを含む。いくつかの実施形態では、SRポリシーはSD-WANに適用され、SRポリシーにおけるセグメントリストはSD-WANにおけるoverlayネットワークにおける経路を示し、SRポリシーはSD-WANポリシーとも呼ばれる。任意選択で、コントローラは、BGP SRポリシー(BGP SR policy)に基づいてSRポリシーを送信する。
【0212】
可能な実装形態では、コントローラデバイスは、SR経路におけるヘッドエンドがネットワークデバイスaであるという事実に基づいて、ネットワークデバイスaにSRポリシーを送信する。ネットワークデバイスaがSRポリシーを受信した後、ネットワークデバイスaはSRポリシーからセグメントリストを取得し、SRポリシーはセグメントリストを使用して
図4に示される方法を実行する。
【0213】
以下では、特定の適用シナリオを参照して前述の実施形態を説明するために例を使用する。以下の適用シナリオでは、ネットワークデバイスはedgeデバイスであり、ネットワークデバイス間の接続はTVCである。
【0214】
以下では、TVCを動的に確立し、SIDを割り当てるプロセスについて説明する。
【0215】
図8は、TVCを確立する概略図である。
図8に示されるように、TVC確立プロセスはステップ(1)からステップ(4)を含む。
【0216】
ステップ(1):すべてのedgeデバイスがRRとのBGPセッションを確立する。edgeデバイスは、BGP SD-WANプロトコルを使用することによってTNPルーティング情報を送信する。動的TVCは、edgeデバイス間で確立される。
図8に示されるように、支部サイトにおけるedge1は、本部サイトにおけるローカルTNP 1とTNP 2とのペアリングにより、支部サイトから本部サイトへの一方向トンネルテーブル(TVCテーブル、すなわち、接続に関するエントリ)を確立する。edge1は、集約サイトにおけるローカルTNP 1とTNP 3とのペアリングによってTVCテーブルを確立する。同様に、企業の本部サイトは、本部サイトから支部サイトへのTVCと、本部サイトから集約サイトへのTVCとを別々に確立する。集約サイトは、集約サイトから支部サイトへのTVCと、集約サイトから本部サイトへのTVCとを確立する。各edgeデバイスはTVCをローカルに記憶して分散TVCデータベースを形成する。
【0217】
ステップ(2):edgeデバイスは、TVC上でSLA検出プロトコルを自動的に展開する。edgeデバイスは、TVCの接続ステータスおよびTVCのSLAステータス(パケット損失率、遅延、およびジッタ)を検出する。edgeデバイスは、TVCの接続ステータスおよびTVCのSLA情報をTVCデータベースに周期的に記憶する。
【0218】
例えば、edge1のTVCデータベースの内容が表6に示される。
【0219】
【0220】
例えば、edge2のTVCデータベースの内容が表7に示される。
【0221】
【0222】
例えば、edge3のTVCデータベースの内容が表8に示される。
【0223】
【0224】
ステップ(3):edgeデバイスは、BGP EVPNを使用することによって、ネットワーク全体で一意のSIDを各TVCに動的に割り当てる。任意選択で、SIDは、複数の形式、例えば、MPLS様ラベル、SRv6 SIDアドレス形式、または送信元サイトの識別子+送信元TNPのID+宛先サイトの識別子+宛先TNPのIDを連結することによって取得されるラベル形式を有する。任意選択で、SIDは、TVCの送信元ノードによって割り当てられる。
図8に示されるように、支部サイトにおけるedge1は、支部サイトから本部サイトへのTVCにSID 102を割り当て、edge1は、支部サイトから集約サイトへのTVCにSID 103を割り当てる。企業の本部サイトのedge2は、本部サイトから支部サイトへのTVC、および本部サイトから集約サイトへのTVCに、SID 201およびSID 203を割り当てる。集約サイトにおけるedge3は、集約サイトから支部サイトへのTVCと、集約サイトから本部サイトへのTVCとに、SID 301とSID 302とを割り当てる。
【0225】
ステップ(4):edgeデバイスは、各SIDのSIDタイプをカスタマイズされたEnd.X-SD-WANに設定し、SID、SIDタイプ、およびアウトバウンドインターフェースの間の対応関係をローカルSIDテーブルに記憶する。
【0226】
例えば、edge1のローカルSIDテーブルの内容が表9に示される。
【0227】
【0228】
例えば、edge2のローカルSIDテーブルの内容が表10に示される。
【0229】
【0230】
例えば、edge3のローカルSIDテーブルの内容が表11に示される。
【0231】
【0232】
以下では、前述のシナリオにおけるトポロジ収集および報告プロセスについて説明する。
【0233】
図9は、本出願の実施形態によるトポロジ収集および報告の概略図である。トポロジ収集および報告プロセスは、以下のステップ(1)およびステップ(2)を含む。
【0234】
ステップ(1):edgeデバイスとRRとの間にBGP LSプロトコルを展開する。edgeデバイスは、BGP LSプロトコル拡張を使用することによって、BGP EVPNとのプロトコル相互運用を実行する。edgeデバイスは、BGP EVPNからTVC情報を収集し、TVC情報をRRに報告する。TVC情報は、TVCの基本カプセル化情報(例えば、IPアドレス)、SID、ステータス、SLA、および帯域幅利用を含むが、これらに限定されない。
【0235】
ステップ(2):RRとコントローラデバイスとの間にBGP LSプロトコルをまた展開する。RRは、BGP LSプロトコル拡張を使用することによってTVC情報をコントローラデバイスに報告する。コントローラデバイスは、RRによって報告されたTVC情報を受信して記憶する。コントローラデバイスは、RRによって報告されたTVC情報に基づいてTVCトポロジデータベースを作成し、TVCトポロジデータベースを使用することによってグローバルSR経路を計算する。
【0236】
例えば、コントローラデバイスによって作成されたTVCトポロジデータベースの内容が表12に示される。
【0237】
【0238】
以下では、前述のシナリオにおけるSRポリシー配信プロセスについて説明する。
【0239】
図10は、実施形態による、コントローラデバイスによるSRポリシーの配信の概略図である。
図10において、edge1はSR経路のヘッドエンドであり、edge1はネットワークデバイスaの例である。
図10に示されるように、コントローラデバイスは、BGP SR policyを使用してSD-WANのSRポリシーを配信する。SRポリシーの内容は、元のSRv6 policyと最大限に適合性がある。コントローラデバイスがSRポリシーを配信するプロセスは、以下のステップ(1)およびステップ(2)を具体的には含む。
【0240】
ステップ(1):コントローラデバイスとRRとの間にBGP SR policyプロトコルを展開する。コントローラデバイスは、BGP SR policyプロトコル拡張を使用することによって、SD-WANのSRポリシーをRRに配信する。
【0241】
例えば、コントローラデバイスは、表13および表14に示される2つのSRポリシーを配信する。
【0242】
【0243】
【0244】
ステップ(2):RRとedgeデバイスとの間にBGP SR policyプロトコルも展開する。RRは、BGP SR policyプロトコル拡張を使用することによりSD-WANのSRポリシーをヘッドエンドedgeデバイスに配信する。
【0245】
以下は、5つの特定のインスタンスを参照して、
図4および
図6に示された方法の例示的な説明を提供する。
【0246】
以下のインスタンス1からインスタンス5のネットワークアーキテクチャについては、
図11を参照されたい。後続のインスタンス1からインスタンス5のヘッドエンドedge1は、
図4および
図6に示される方法におけるネットワークデバイスaであり、後続のインスタンス1からインスタンス5の中間ノードedge3は、
図4および
図6に示される方法におけるネットワークデバイスbであり、後続のインスタンス1からインスタンス5のテールエンドedge2は、
図4および
図6に示される方法におけるネットワークデバイスcである。後続のインスタンス1からインスタンス5のTVC 1-3は、
図4および
図6に示される方法における接続abであり、後続のインスタンス1からインスタンス5のTVC 3-2は、
図4および
図6に示される方法における接続bcである。後続のインスタンス1からインスタンス5のSID 302は、
図4および
図6に示される方法におけるSID bcであり、後続のインスタンス1からインスタンス5のSID 103は、
図4および
図6に示される方法におけるSID abである。以下のインスタンス1からインスタンス5のIP 1およびIP 3は、
図4および
図6に示される方法における接続abのエンドポイントIPアドレスである。以下のインスタンス1からインスタンス5のIP 3およびIP 2は、
図4および
図6に示される方法における接続bcのエンドポイントIPアドレスである。
【0247】
インスタンス1
インスタンス1は、トラフィック用のIPv6トランスポートネットワークにSD-WAN SRv6トンネルを構築する転送処理手順を説明するために、例としてEVPNv4を使用する。
図12は、SD-WAN SRv6トンネルにサービスをインポートし、インスタンス1でサービスを転送する概略図である。
図12に示されるように、インスタンス1は、以下のステップ(1)からステップ(5)を含む。
【0248】
ステップ(1):テールエンドedge2は、BGP EVPNを使用することによってローカルユーザのプライベートネットワークルートをアドバタイズする。RRは、テールエンドedge2によってアドバタイズされたEVPNプライベートネットワークルートを受信する。RRは、EVPNプライベートネットワークルートをヘッドエンドedge1に反映する。EVPNプライベートネットワークルートは、ルートプレフィックス、VPN SID、色、およびネクストホップなどの情報を含む。例えば、EVPNプライベートネットワークルートにおけるルートプレフィックスは、10.1.1.0/24である。例えば、EVPNプライベートネットワークルートにおけるVPN SIDは10000である。例えば、EVPNプライベートネットワークルートの色は20である。例えば、EVPNプライベートネットワークルートのネクストホップは、本部サイトのサイト識別子である。
【0249】
ステップ(2):コントローラデバイスは、異なるSD-WAN SRv6ポリシーをヘッドエンドedge1に事前に配信している。ヘッドエンドedge1は、RRからステップ(1)を通じて、テールエンドedge2によってアドバタイズされたEVPNプライベートネットワークルートを学習する。ヘッドエンドedge1は、EVPNプライベートネットワークルートで搬送される色およびネクストホップに基づいて、反復によって「支部から本部への低パケット損失率」と名付けられたSRポリシーを取得する。
【0250】
ステップ(3):ヘッドエンドedge1が、ユーザA(ユーザAのIPv4アドレスは10.2.1.1)から本部サイトのユーザZ(ユーザZのIPv4アドレスは10.1.1.1)へのトラフィックを受信すると、ヘッドエンドedge1は、トラフィックにおけるデータパケットの宛先アドレスに基づいてプライベートネットワークルートをクエリし、
転送のためにトラフィックをSD-WAN SRトンネルにインポートする必要があると決定する。ヘッドエンドedge1は、SRポリシーからセグメントリスト<103,302>およびVPN SID 10000を取得する。ヘッドエンドedge1は、データパケットにSRHラベルスタック(10000、302、103)を追加し、ヘッドエンドedge1は、最上位SID 103に基づいてローカルSIDテーブルに対してマッチングを実行する。ヘッドエンドedge1は、ローカルSIDテーブルにおけるSID 103に対応するエンドポイント挙動がEnd.X-SD-WANであることを発見し、SID 103に対応するアウトバウンドインターフェースはTVC 1-3である。したがって、ヘッドエンドedge1は、TVC 1-3に関する情報を取得し、TVC 1-3に関する情報に基づいてデータパケットにSRトンネルカプセル化層(すなわち、外層IPv6ヘッダおよびSRH)を追加する。
【0251】
TVC 1-3に関する情報は、TVC 1-3の送信元TNP 1に対応するインターフェースIPアドレス(IP 1)およびTVC 1-3の宛先TNP 3のインターフェースIPアドレス(IP 3)を含む。外層IPv6ヘッダにおいて、送信元アドレスはIP 1であり、宛先アドレスはIP 3である。次いで、ヘッドエンドedge1は、SID 103がポップアップすることを可能にする。SID 103がポップアップした後に取得されたパケットは、SRHラベルスタック(10000、302)を搬送する。ヘッドエンドedge1は、TNP 1に対応するリンクを介して中間ノードedge3にパケットを送信する。
【0252】
いくつかの実施形態では、ヘッドエンドedge1のTVC 1-3に関する情報は、中間ノードedge3によってアドバタイズされたTNPルートから来る。具体的には、中間ノードedge3は、TNPルートを事前にアドバタイズし、TNPルートは、TNP 3のIPアドレス(IP 3)を含む。ヘッドエンドedge1は、中間ノードedge3によってアドバタイズされたTNPルートを受信し、TNPルートからTNP 3のIPアドレスを取得する。ヘッドエンドedge1は、TVC 1-3の識別子と、TNP 1のIPアドレスと、TNP 3のIPアドレスとの対応関係をTVCテーブルに記憶する。例えば、ヘッドエンドedge1はTVCテーブルにエントリを作成し、エントリの内容は、ID:TVC 1-3;宛先サイト:集約サイト;送信元TNPのIPアドレス:IP 1;および宛先TNPのIPアドレス:IP 3を含む。ヘッドエンドedge1は、TVC 1-3に基づいて、TVC 1-3に対応する送信元TNPのIPアドレスおよび宛先TNPのIPアドレスをクエリして、IP 1およびIP 3を取得する。
【0253】
ステップ(4):中間ノードedge3がヘッドエンドedge1によって送信されたパケットを受信した後、中間ノードedge3は、SRHヘッダから、SLフィールドによって示される最上部のSID(すなわち、SID 302)を取得する。中間ノードedge3は、SID 302に基づいてローカルSIDテーブルにおいてクエリを実行し、ローカルSIDテーブルにおけるSID 302に対応するエンドポイント挙動がEnd.X-SD-WANであることを発見し、SID 302に対応する送信トンネルはTVC 3-2である。中間ノードedge3は、TVC 3-2のカプセル化情報に基づいて、パケットの送信元IPアドレスおよび宛先IPアドレスの両方を変更する。中間ノードedge3は、TVC 3-2に対応する物理リンクを介して、変更されたパケットをテールエンドedge2に転送する。
【0254】
ステップ(5):テールエンドedge2は、中間ノードedge3によって送信されたパケットを受信する。テールエンドedge2は、パケットにおけるSRHの残りのVPN SID 10000に基づいてローカルSIDテーブルを検索し、VPN SID 10000がEnd.DT4 SIDと一致すると決定する。テールエンドedge2は、パケットに対してSRトンネルデカプセル化処理を実行し、パケットからSRHおよび外層IPv6パケットヘッダを除去する。テールエンドedge2は、内層パケットの宛先IPアドレス(10.1.1.1)に基づいて対応するVPNインスタンスのプライベートネットワークルートを検索し、ルートをホストZに送信する。このようにして、A→edge1→edge3→edge2→ZのエンドツーエンドSR転送経路に対する制御が実装される。
【0255】
インスタンス1は、IPv6 underlayトランスポートネットワークにおいてSD-WAN SRv6トンネルを構築する方法を説明する。underlayトランスポートネットワークがIPv4ネットワークである場合、SD-WAN SRv4トンネリング技術を実装するために、トンネルカプセル化がさらに改善される必要がある。SD-WAN SRv4トンネルカプセル化は、複数のタイプ(GRE/VXLANなど)を含む。以下では、SD-WAN SRv4トンネルにサービスをインポートし、サービスを転送するための方法を説明するために、例としてGREを使用する。詳細については、インスタンス2を参照されたい。
【0256】
インスタンス2
インスタンス2は、GREに基づいて、SD-WAN SRv4トンネルにサービスをインポートし、本出願の実施形態で提供されるサービスを転送するための方法である。
図13は、インスタンス2のフローチャートである。
図13に示されるように、インスタンス2は、ステップ(1)からステップ(5)を含む。
【0257】
インスタンス2のステップ(1)およびステップ(2)については、インスタンス1のステップ(1)およびステップ(2)を参照されたい。違いは、edgeデバイスがTVCを生成するとき、edgeデバイスは、TNPタイプがIPv4 GREであるという事実に基づいて、TVCカプセル化タイプをSRv4-GREとして定義することにある。さらに、TNPタイプがIPv4 VXLANである場合、edgeデバイスはTVCカプセル化タイプをSRv4-VXLANとして定義する。
【0258】
ステップ(3):ヘッドエンドedge1が、ユーザA(10.2.1.1)によって本部サイトのユーザZ(10.1.1.1)に送信されたトラフィックを受信すると、ヘッドエンドedge1は、最上位SID 103に基づいてローカルSIDテーブルに対してマッチングを実行し、SID 103に対応するアウトバウンドインターフェースがTVC 1-3であることを発見する。ヘッドエンドedge1は、TVC 1-3に対応するTVCカプセル化タイプがSRv4-GREであるという事実に基づいて、GREヘッダおよびSRHをデータパケットに追加し、GREヘッダおよびSRHがカプセル化されたパケットを、TVC 1-3に対応するインターフェースを介して中間ノードedge3に送信する。
【0259】
ステップ(4):中間ノードedge3がパケットを受信した後、中間ノードedge3はSRv4-GREトンネルヘッダをデカプセル化する。中間ノードedge3は、GREのペイロードプロトコルフィールドに基づいてSRHヘッダを識別し、次いで、中間ノードedge3は、SRHから、SLフィールドによって示される最上位SID 302を取得する。中間ノードedge3は、SID 302に基づいてローカルSIDテーブルにおいてクエリを実行し、SID 302に対応するエンドポイント挙動がEnd.X-SD-WANであることを発見し、指定された送信トンネルはTVC 3-2である。中間ノードedge3は、TVC 3-2のカプセル化情報に基づいて、SRv4-GREトンネルヘッダをパケットにカプセル化する。
【0260】
ステップ(5):テールエンドedge2がパケットを受信した後、テールエンドedge2はSRv4-GREトンネルヘッダをデカプセル化し、SRHの残りのVPN SIDに基づいてローカルSIDテーブルを検索して、マッチングによりEnd.DT4 SIDを取得する。テールエンドedge2はSRHおよびGREパケットヘッダを除去する。テールエンドedge2は、内層パケットのIPアドレス(10.1.1.1)に基づいて対応するVPNインスタンスのプライベートネットワークルートを検索し、ルートをホストZに送信する。このようにして、A→edge1→edge3→edge2→ZのエンドツーエンドSR転送経路に対する制御が実装される。
【0261】
SD-WAN underlayトランスポートネットワークがIPv4またはIPv6を別々にサポートする複数の異なるリージョンネットワークを含む場合、エンドツーエンド異種SD-WAN overlay SRトンネルは、インスタンス1およびインスタンス2で説明された方法を使用することによって組み合わせて実装されることができる。以下では、インスタンス3を使用することによって詳細な説明を提供する。
【0262】
インスタンス3
インスタンス3は、実施形態で提供されるSD-WAN SRv6およびSRv4ハイブリッドトンネル転送方法である。
【0263】
図14は、インスタンス3のフローチャートである。インスタンス3は、ステップ(1)からステップ(5)を含む。インスタンス3のステップ(1)からステップ(5)については、インスタンス1およびインスタンス2のステップ(1)からステップ(5)を参照されたい。違いは、インスタンス3のステップ(3)において、中間ノードedge3は、以下の実装形態(1)または実装形態(2)において、SRv6トンネルカプセル化フォーマットとSRv4トンネルカプセル化フォーマットとの間の変換を実行することにある。
【0264】
実装形態(1):中間ノードedge3は、SRv6トンネルカプセル化フォーマットからSRv4トンネルカプセル化フォーマットへの変換を実行する。具体的には、中間ノードedge3はedge1によって送信されたパケットを受信し、中間ノードedge3はSRv6トンネルヘッダをデカプセル化し、中間ノードedge3は、SRHから、SLフィールドによって示される最上位SID(SID 302)を取得する。中間ノードedge3は、SID 302に基づいてローカルSIDテーブルにおいてクエリを実行し、SID 302に対応するエンドポイント挙動がEnd.X-SD-WANであることを発見し、SID 302に対応する送信トンネルはTVC 3-2である。中間ノードedge3は、TVC 3-2のカプセル化情報に基づいて、SRv4-GREトンネルヘッダをカプセル化する。
【0265】
実装形態(2):中間ノードedge3は、SRv4トンネルカプセル化フォーマットからSRv6トンネルカプセル化フォーマットへの変換を実行する。具体的には、中間ノードedge3がedge2によって送信されたパケットを受信した場合、中間ノードedge3はSRv4-GREトンネルヘッダをデカプセル化し、中間ノードedge3は、SRHから、SLフィールドによって示される最上位SID(SID 301)を取得する。中間ノードedge3は、SID 301に基づいてローカルSIDテーブルにおいてクエリを実行し、SID 301に対応するエンドポイント挙動がEnd.X-SD-WANであることを発見し、SID 301に対応する送信トンネルはTVC 3-1である。中間ノードedge3は、TVC 3-1のカプセル化情報に基づいて、SRv6トンネルヘッダをカプセル化する。
【0266】
インスタンス1からインスタンス3は、層3(L3)VPNv4トラフィックがSD-WAN SRトンネル上でどのように搬送されるかを説明する。本出願の実施形態では、L3 VPNv4以外のVPNサービス、例えばL3 VPNv6または層2 VNP(L2 VPN)は、SD-WAN SRトンネル上でさらに搬送されることができる。以下では、L3 VPNv6トラフィックがSD-WAN SRトンネル上で搬送される実装形態を説明するためにインスタンス4を使用し、L2 VPNトラフィックがSD-WAN SRトンネル上で搬送される実装形態を説明するためにインスタンス5を使用する。
【0267】
インスタンス4
インスタンス4は、本出願の実施形態で提供されるSD-WAN SRトンネルを使用することによってL3 VPNv6トラフィックを転送するための方法である。
図15は、インスタンス4の概略図である。
図15に示されるように、制御プレーンでのルートアドバタイズメントの手順では、IPv6ユーザのプライベートネットワークのルートは、インスタンス1に基づいてBGP EVPNを使用することによって送信される。SD-WAN SRトンネルは、IPv6ユーザのプライベートネットワークルートにおける色およびネクストホップを使用することによって、反復によって選択される。このようにして、IPv6 L3 VPNトラフィックは、SD-WAN SRトンネル上で搬送され、転送され得る。具体的には、
図15に示されるように、ステップ(1)において、edge2によってアドバタイズされたEVPNプライベートネットワークルートはIPv6ルートである。EVPNプライベートネットワークルートで搬送されるプレフィックスは、IPv6プレフィックス、例えばFC00:1:1::/64である。転送プレーンにおけるパケット転送の手順について、L3 VPNv6シナリオのパケットカプセル化フォーマットは、内層データパケットのIPヘッダがIPv6ヘッダであるという点で、L3 VPNv4シナリオのパケットカプセル化フォーマットとは主に異なる。具体的には、
図15に示されるように、ユーザAによってedge1に送信されるデータパケットはIPv6パケットである。ユーザAによって送信されたデータパケットにおけるIPヘッダはIPv6ヘッダである。ユーザAによって送信されたデータパケットにおけるIPヘッダで搬送される送信元アドレスは、ユーザAのIPv6アドレス、例えばFC00:2:1::1である。ユーザAによって送信されたデータパケットにおけるIPヘッダで搬送される宛先アドレスは、ユーザZのIPv6アドレス、例えばFC00:1:1::1である。
【0268】
インスタンス5
インスタンス5は、本出願の実施形態で提供されるSD-WAN SRトンネルを使用することによってL2 VPNトラフィックを転送するための方法である。
図16は、インスタンス5の概略図である。
【0269】
図16に示されるように、インスタンス1に基づいて、ステップ(1)において、BGP EVPNを使用することによって、Ethernet自動発見(ethernet auto-discovery、Ethernet AD)ルート、MACルートアドバタイズメントルート(advertisement route)、包括的マルチキャストルート(inclusive multicast route)、Ethernetセグメント(ethernet segment、ES)ルートなどが、また、SD-WAN SRトンネルが、色およびネクストホップを使用した反復によって選択される。このようにして、L2 VPNトラフィックが、SD-WAN SRトンネル上で搬送され、転送され得る。具体的には、
図16に示されるように、ステップ(1)において、edge2によってアドバタイズされたEVPNプライベートネットワークルートは、EVPN MACルートである。edge2によってアドバタイズされるEVPNプライベートネットワークルートで搬送されるプレフィックスは、MACアドレス、例えば、ユーザZのMACアドレス(MAC 2)を含む。転送プレーンでのパケット転送の手順について、L2 VPNシナリオのパケットカプセル化フォーマットは、内層データパケットがイーサネットヘッダを含み、内層データパケットおよびイーサネットヘッダが全体としてトンネルにカプセル化されるという点で、L3 VPNシナリオのパケットカプセル化フォーマットとは主に異なる。
【0270】
前述の実施形態を要約することによって、本出願の実施形態によってもたらされる有益な効果は、以下の(1)から(3)を含むが、これらに限定されないことが学習され得る。
【0271】
(1)実施形態で提供されるSRトンネリング技術では、underlayネットワークのみがWANリンクIPルート到達可能性を提供する必要があり、underlayネットワークデバイスは、SR-MPLSをサポートするIGPプロトコルまたはSRv6をサポートするIGPプロトコルを実行する必要がない。underlayネットワークはoverlayネットワークから分離され、プロトコルの展開は単純であり、これは様々なタイプのトランスポートネットワークに適応することができる。例えば、overlay SRトンネルは、IPパブリックネットワーク、例えば、Internetにおいて確立され得る。
【0272】
(2)既存のSRv6トンネリング技術では、外層IPヘッダにおける送信元IPアドレスがヘッドエンドデバイスで指定され、送信元IPアドレスは中間ネットワークによる転送中に変化しない。トンネルが異なるルーティングドメインにおけるunderlayトランスポートネットワークを横断する必要がある場合、URPFチェックが失敗するため、パケットは廃棄され得る。
図17は、SD-WANネットワークにおける複数のドメインにわたってSRパケットを転送することの概略図である。
図17に示されるように、中間ノードedge3は、トランスポートネットワーク1を介してedge1に接続され、トランスポートネットワーク2を介してedge2に接続される。中間ノードedge3は、edge1によって送信されたパケットを受信し、パケットの送信元IPアドレスはIP 1(edge1のTNP 1のIPアドレス)である。中間ノードedge3がパケットの送信元IPアドレスを変更せずに保持する場合、言い換えれば、中間ノードedge3によってedge2に送信されたパケットの送信元IPアドレスが依然としてIP 1である場合、パケットがedge3とedge2との間のトランスポートネットワーク2に到達すると、トランスポートネットワーク2におけるネットワークデバイスがIP 1のルートを見つけることができないため、パケットのURPFチェックは失敗し、したがって、トランスポートネットワーク2におけるネットワークデバイスはパケットを廃棄する。しかしながら、実施形態では、中間ノードが各TVCに関する情報に基づいてSRトンネルパケットの送信元IPアドレスを再変更するため、クロスドメイントンネルURPFチェックの問題が解決される。例えば、
図17に示されるように、中間ノードedge3によって受信されたパケットの送信元IPアドレスはIP 1であり、中間ノードedge3によって送信されたパケットの送信元IPアドレスはIP 4(中間ノードedge3のTNP 4のアドレス)に更新される。
【0273】
(3)既存のSRv6トンネリング技術では、IPv6ルート転送をサポートするトランスポートネットワークでのみトンネルが確立され得る。しかしながら、実施形態におけるSD-WAN SRトンネルは、underlay underlayトランスポートネットワークプロトコルとは無関係であり、したがって、underlayネットワークがIPv6ネットワークである場合と、underlayネットワークがIPv4ネットワークである場合の両方が、サポートされることができ、エンドツーエンドSRトンネルさえも、IPv4およびIPv6異種トランスポートネットワークにわたって確立されることができる。
【0274】
結論として、実施形態で提供されるSD-WAN SRトンネリング方法では、関連するSD-WAN edgeデバイスのみが、BGP EVPN、BGP LS、およびBGP SRプロトコルなどの必要なプロトコルをサポートする必要があり、underlayネットワークは、全体としてブラックボックスIP転送ネットワークと見なされ、underlayネットワークにおけるデバイスは、SRを確立するために、SR拡張プロトコル用の追加のIGP、例えばOSPFv3/ISISv6を実行する必要がない。したがって、実施形態で提供される方法は、underlayトランスポートネットワークプロトコル非依存overlay SR方法と呼ばれる場合がある。
【0275】
図18は、本出願の実施形態によるネットワークデバイス610の構造の概略図である。ネットワークデバイス610は、受信ユニット611、処理ユニット612、および送信ユニット613を含む。
【0276】
任意選択で、
図1に示される適用シナリオを参照すると、
図18に示されるネットワークデバイス610は、
図1のネットワークデバイス202またはネットワークデバイス204である。
【0277】
任意選択で、
図2に示される適用シナリオを参照すると、
図18に示されるネットワークデバイス610は
図2のedgeデバイス406である。
【0278】
任意選択で、
図3に示される適用シナリオを参照すると、
図18に示されるネットワークデバイス610は
図3のPOP GW 502である。
【0279】
任意選択で、
図4を参照すると、
図18に示されるネットワークデバイス610は、
図4に示される方法手順におけるネットワークデバイスbである。受信ユニット611は、S602を実行する際にネットワークデバイス610をサポートするように構成される。処理ユニット612は、S603を実行する際にネットワークデバイス610をサポートするように構成される。送信ユニット613は、S604を実行する際にネットワークデバイス610をサポートするように構成される。
【0280】
任意選択で、
図7を参照すると、
図18に示されるネットワークデバイス610は
図7のedge3である。
【0281】
任意選択で、
図8を参照すると、
図18に示されるネットワークデバイス610は
図8のedge3である。
【0282】
任意選択で、
図9を参照すると、
図18に示されるネットワークデバイス610は
図9のedge3である。
【0283】
任意選択で、
図10を参照すると、
図18に示されるネットワークデバイス610は
図10のedge3である。
【0284】
任意選択で、
図11を参照すると、
図18に示されるネットワークデバイス610は
図11のedge3である。
【0285】
任意選択で、
図12を参照すると、
図18に示されるネットワークデバイス610は
図12のedge3である。
【0286】
任意選択で、
図13を参照すると、
図18に示されるネットワークデバイス610は
図13のedge3である。
【0287】
任意選択で、
図14を参照すると、
図18に示されるネットワークデバイス610は
図14のedge3である。
【0288】
任意選択で、
図15を参照すると、
図18に示されるネットワークデバイス610は
図15のedge3である。
【0289】
任意選択で、
図16を参照すると、
図18に示されるネットワークデバイス610は
図16のedge3である。
【0290】
図18で説明された装置実施形態は単なる例である。例えば、ユニットの分割は単なる論理的な機能分割であり、実際の実装形態においては別の分割の仕方であってもよい。例えば、複数のユニットまたはコンポーネントが組み合わされるか、または別のシステムに統合されてもよく、またはいくつかの特徴は無視されてよく、または実行されなくてもよい。本出願の実施形態の機能ユニットは、1つの処理ユニットに統合されてよく、それぞれのユニットは物理的に単独で存在してよく、または2つ以上のユニットが1つのユニットに統合されてもよい。
【0291】
ネットワークデバイス610におけるユニットの全部または一部は、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組み合わせを使用することによって実装される。
【0292】
ソフトウェアが実装形態のために使用される場合、処理ユニット612は、例えば、メモリ802に記憶されたプログラムコードを読み取ることによって
図20の少なくとも1つのプロセッサ801によって生成されたソフトウェア機能ユニットによって実装される。別の例では、処理ユニット612は、メモリ912において記憶されたプログラムコードを読み取ることによって
図21の主制御ボード910上の中央処理ユニット911によって生成されたソフトウェア機能ユニットによって実装される。
【0293】
実装形態のためにハードウェアが使用されるとき、例えば、
図18の前述のユニットは、ネットワークデバイスにおける異なるハードウェアによって別々に実装される。例えば、処理ユニット612は、
図20の少なくとも1つのプロセッサ801における一部の処理リソース(例えば、マルチコアプロセッサにおける1つのコアまたは2つのコア)により実装される。あるいは、処理ユニット612は、フィールドプログラマブルゲートアレイ(field-programmable gate array、FPGA)やコプロセッサなどのプログラマブルデバイスにより実装される。例えば、受信ユニット611および送信ユニット613は、
図20のネットワークインターフェース803によって実装される。別の例では、受信ユニット611および送信ユニット613は、
図21の物理インターフェースカード933によって実装される。
【0294】
図19は、本出願の実施形態によるコントローラデバイス710の構造の概略図である。コントローラデバイス710は、取得ユニット711と、処理ユニット712と、送信ユニット713とを含む。
【0295】
任意選択で、
図1に示される適用シナリオを参照すると、
図19に示されるコントローラデバイス710は、
図1のコントローラデバイス11である。
【0296】
任意選択で、
図2に示される適用シナリオを参照すると、
図19に示されるコントローラデバイス710は
図2のSD-WANコントローラ490である。
【0297】
任意選択で、
図3に示される応用シナリオを参照すると、
図19に示されるコントローラデバイス710は
図3のSD-WANコントローラ590である。
【0298】
任意選択で、
図6を参照すると、
図19に示されるコントローラデバイス710は、
図6に示される方法手順におけるコントローラデバイスである。取得ユニット711は、S702を実行する際にコントローラデバイス710をサポートするように構成される。処理ユニット712は、S703を実行する際にコントローラデバイス710をサポートするように構成される。送信ユニット713は、S704を実行する際にコントローラデバイス710をサポートするように構成される。
【0299】
任意選択で、
図7を参照すると、
図19に示されるコントローラデバイス710は、
図7のSD-WANコントローラである。
【0300】
任意選択で、
図9を参照すると、
図19に示されるコントローラデバイス710は、
図9のSD-WANコントローラである。
【0301】
任意選択で、
図10を参照すると、
図19に示されるコントローラデバイス710は、
図10のSD-WANコントローラである。
【0302】
任意選択で、
図11を参照すると、
図19に示されるコントローラデバイス710は、
図11のSD-WANコントローラである。
【0303】
図19で説明された装置の実施形態は単なる例である。例えば、ユニットの分割は単なる論理的な機能分割であり、実際の実装形態においては別の分割の仕方であってもよい。例えば、複数のユニットまたはコンポーネントが組み合わされるか、または別のシステムに統合されてもよく、またはいくつかの特徴は無視されてよく、または実行されなくてもよい。本出願の実施形態の機能ユニットは、1つの処理ユニットに統合されてよく、それぞれのユニットは物理的に単独で存在してよく、または2つ以上のユニットが1つのユニットに統合されてもよい。
【0304】
コントローラデバイス710におけるユニットの全部または一部は、ソフトウェア、ハードウェア、ファームウェア、またはこれらの任意の組み合わせによって実装される。
【0305】
ソフトウェアが実装形態のために使用される場合、処理ユニット712は、例えば、メモリ802に記憶されたプログラムコードを読み取ることによって
図20の少なくとも1つのプロセッサ801によって生成されたソフトウェア機能ユニットによって実装される。
【0306】
実装形態のためにハードウェアが使用されるとき、例えば、
図19の前述のユニットは、コントローラデバイスにおける異なるハードウェアによって別々に実装される。例えば、処理ユニット712は、
図20の少なくとも1つのプロセッサ801における一部の処理リソース(例えば、マルチコアプロセッサにおける1つのコアまたは2つのコア)により実装される。あるいは、処理ユニット712は、フィールドプログラマブルゲートアレイ(field-programmable gate array、FPGA)またはコプロセッサなどのプログラマブルデバイスにより実装される。例えば、取得ユニット711および送信ユニット713は、
図20のネットワークインターフェース803によって実装される。別の例では、取得ユニット711および送信ユニット713は、
図21の物理インターフェースカード933によって実装される。
【0307】
以下では、例を使用することによってネットワークデバイスおよびコントローラデバイスの基本的なハードウェア構造を説明する。
【0308】
図20は、本出願の実施形態によるデバイス800の構造の概略図である。
図20に示されるデバイス800は、ネットワークデバイスまたはコントローラデバイスとして提供され得る。デバイス800は、少なくとも1つのプロセッサ801と、メモリ802と、少なくとも1つのネットワークインターフェース803とを含む。
【0309】
任意選択で、
図1に示される適用シナリオを参照すると、
図20に示されるデバイス800は、
図1のネットワークデバイス202、ネットワークデバイス204、またはコントローラデバイス11である。
【0310】
任意選択で、
図2に示される適用シナリオを参照すると、
図20に示されるデバイス800は、
図2のedgeデバイス406またはSD-WANコントローラ490である。
【0311】
任意選択で、
図3に示される適用シナリオを参照すると、
図20に示されるデバイス800は
図3のPOP GW 502またはSD-WANコントローラ590である。
【0312】
任意選択で、
図4を参照すると、
図20に示されるデバイス800は、
図4に示される方法手順におけるネットワークデバイスbである。ネットワークインターフェース803は、S602およびS604を実行する際にデバイス800をサポートするように構成される。プロセッサ801は、S603を実行する際にデバイス800をサポートするように構成される。
【0313】
任意選択で、
図6を参照すると、
図20に示されるデバイス800は、
図6に示される方法手順におけるSD-WANコントローラである。ネットワークインターフェース803は、S702およびS704を実行する際にデバイス800をサポートするように構成される。プロセッサ801は、S703を実行する際にデバイス800をサポートするように構成される。
【0314】
任意選択で、
図7を参照すると、
図20に示されるデバイス800は、
図7のedge3またはSD-WANコントローラである。
【0315】
任意選択で、
図8を参照すると、
図20に示されるデバイス800は、
図8のedge3である。
【0316】
任意選択で、
図9を参照すると、
図20に示されるデバイス800は、
図9のedge3またはSD-WANコントローラである。
【0317】
任意選択で、
図10を参照すると、
図20に示されるデバイス800は、
図10のedge3またはSD-WANコントローラである。
【0318】
任意選択で、
図11を参照すると、
図20に示されるデバイス800は、
図11のedge3またはSD-WANコントローラである。
【0319】
任意選択で、
図12を参照すると、
図20に示されるデバイス800は、
図12のedge3である。
【0320】
任意選択で、
図13を参照すると、
図20に示されるデバイス800は、
図13のedge3である。
【0321】
任意選択で、
図14を参照すると、
図20に示されるデバイス800は、
図14のedge3である。
【0322】
任意選択で、
図15を参照すると、
図20に示されるデバイス800は、
図15のedge3である。
【0323】
任意選択で、
図16を参照すると、
図20に示されるデバイス800は、
図16のedge3である。
【0324】
プロセッサ801は、例えば、汎用中央処理ユニット(central processing unit、CPU)、ネットワークプロセッサ(network processor、NP)、グラフィック処理ユニット(graphics processing unit、GPU)、ニューラルネットワーク処理ユニット(neural-network processing units、NPU)、データ処理ユニット(data processing unit、DPU)、マイクロプロセッサ、または本出願における解決策を実装するように構成された1つまたは複数の集積回路である。例えば、プロセッサ801は、特定用途向け集積回路(application-specific integrated circuit、ASIC)、プログラマブル論理デバイス(programmable logic device、PLD)、またはそれらの組み合わせを含む。PLDは、例えば、コンプレックスプログラマブルロジックデバイス(complex programmable logic device、CPLD)、フィールドプログラマブルゲートアレイ(field-programmable gate array、FPGA)、ジェネリックアレイロジック(generic array logic、GAL)またはこれらの組み合わせである。
【0325】
メモリは802は、例えば、読み出し専用メモリ(read-only memory、ROM)または静的情報および命令を記憶することができる別のタイプの静的記憶デバイス、またはランダムアクセスメモリ(random access memory、RAM)または情報および命令を記憶することができる別のタイプの動的記憶デバイス、または電気的消去可能プログラム可能読み出し専用メモリ(electrically erasable programmable read-only Memory、EEPROM)、コンパクトディスク読み出し専用メモリ(compact disc read-only memory、CD-ROM)もしくは他のコンパクトディスク記憶、光ディスク記憶(圧縮光ディスク、レーザーディスク、光ディスク、デジタル多用途ディスク、ブルーレイディスクなどを含む)、磁気ディスク記憶媒体もしくは別の磁気記憶デバイス、または命令もしくはデータ構造の形態の予期されるプログラムコードを搬送もしくは記憶することができ、コンピュータによってアクセスされることができる任意の他の媒体である。これはそれに限定されない。任意選択で、メモリ802は独立して存在し、内部接続804を通してプロセッサ801に接続される。代替として、任意選択で、メモリ802およびプロセッサ801は一緒に統合される。
【0326】
ネットワークインターフェース803は、トランシーバなどのいずれかの装置であり、別のデバイスまたは通信ネットワークと通信するように構成される。ネットワークインターフェース803は、例えば、有線ネットワークインターフェースおよび無線ネットワークインターフェースのうちの少なくとも一方を含む。有線ネットワークインターフェースは、例えば、イーサネットインターフェースである。イーサネットインターフェースは、例えば、光インターフェース、電気インターフェース、またはこれらの組み合わせである。無線ネットワークインターフェースは、無線ローカルエリアネットワーク(wireless local area networks、WLAN)インターフェース、セルラーネットワークインターフェース、またはこれらの組み合わせである。
【0327】
いくつかの実施形態では、プロセッサ801は、
図20に示されるCPU 0およびCPU 1などの1つまたは複数のCPUを含む。
【0328】
、いくつかの実施形態では、デバイス800は、
図20に示されるプロセッサ801およびプロセッサ805などの複数のプロセッサを、任意選択で含む。これらのプロセッサの各々は、例えばシングルコアプロセッサ(single-CPU)、またはマルチコアプロセッサ(multi-CPU)である。任意選択で、本明細書のプロセッサは、データ(例えばコンピュータプログラム命令)を処理するように構成された1つまたは複数のデバイス、回路、および/または処理コアである。
【0329】
いくつかの実施形態では、デバイス800は、内部接続804をさらに含む。プロセッサ801、メモリ802、および少なくとも1つのネットワークインターフェース803は、内部接続804を通して接続される。内部接続804は、前述のコンポーネント間で情報を送信するための経路を含む。任意選択で、内部接続804は、ボードまたはバスである。任意選択で、内部接続804は、アドレスバス、データバス、制御バスなどに分類される。
【0330】
いくつかの実施形態では、デバイス800は、入力/出力インターフェース806をさらに含む。入力/出力インターフェース806は、内部接続804に接続される。
【0331】
任意選択で、プロセッサ801は、メモリ802に記憶されたプログラムコード810を読み出すことによって前述の実施形態の方法を実装するか、またはプロセッサ801は、内部に記憶されたプログラムコードを使用することによって前述の実施形態の方法を実装する。プロセッサ801がメモリ802に記憶されたプログラムコード810を読み出すことによって前述の実施形態の方法を実装するとき、メモリ802は、本出願の実施形態で提供される方法を実装するためのプログラムコードを記憶する。
【0332】
プロセッサ801による前述の機能を実装することのより詳細については、前述の方法実施形態の説明を参照されたい。詳細は本明細書では繰り返されない。
【0333】
図21は、本出願の実施形態によるデバイス900の構造の概略図である。
図21に示されるデバイス900は、ネットワークデバイスまたはコントローラデバイスとして提供され得る。デバイス900は、主制御ボード910とインターフェースボード930とを含む。
【0334】
任意選択で、
図1に示される適用シナリオを参照すると、
図21に示されるデバイス900は、
図1のネットワークデバイス202、ネットワークデバイス204、またはコントローラデバイス11である。
【0335】
任意選択で、
図2に示される適用シナリオを参照すると、
図21に示されるデバイス900は、
図2のedgeデバイス406またはSD-WANコントローラ490である。
【0336】
任意選択で、
図3に示される適用シナリオを参照すると、
図21に示されるデバイス900は
図3のPOP GW 502またはSD-WANコントローラ590である。
【0337】
任意選択で、
図4を参照すると、
図21に示されるデバイス900は、
図4に示される方法手順におけるネットワークデバイスbである。インターフェースボード930上の物理インターフェースカード933は、S602およびS604を実行する際にデバイス800をサポートするように構成される。インターフェースボード930上のネットワークプロセッサ932および主制御ボード910上の中央処理ユニット911は、S603を実行する際にデバイス800をサポートするように構成される。
【0338】
任意選択で、
図6を参照すると、
図21に示されるデバイス900は、
図6に示される方法手順におけるSD-WANコントローラである。インターフェースボード930上の物理インターフェースカード933は、S702およびS704を実行する際にデバイス800をサポートするように構成される。主制御ボード910上の中央処理ユニット911は、S703を実行する際にデバイス800を支持するように構成される。
【0339】
任意選択で、
図7を参照すると、
図21に示されるデバイス900は、
図7のedge3またはSD-WANコントローラである。
【0340】
任意選択で、
図8を参照すると、
図21に示されるデバイス900は、
図8のedge3である。
【0341】
任意選択で、
図9を参照すると、
図21に示されるデバイス900は、
図9のedge3またはSD-WANコントローラである。
【0342】
任意選択で、
図10を参照すると、
図21に示されるデバイス900は、
図10のedge3またはSD-WANコントローラである。
【0343】
任意選択で、
図11を参照すると、
図21に示されるデバイス900は、
図11のedge3またはSD-WANコントローラである。
【0344】
任意選択で、
図12を参照すると、
図21に示されるデバイス900は、
図12のedge3である。
【0345】
任意選択で、
図13を参照すると、
図21に示されるデバイス900は、
図13のedge3である。
【0346】
任意選択で、
図14を参照すると、
図21に示されるデバイス900は、
図14のedge3である。
【0347】
任意選択で、
図15を参照すると、
図21に示されるデバイス900は、
図15のedge3である。
【0348】
任意選択で、
図16を参照すると、
図21に示されるデバイス900は、
図16のedge3である。
【0349】
主制御ボードは、主処理ユニット(main processing unit、MPU)またはルートプロセッサカード(route processor card)とも呼ばれる。主制御ボード910は、ルート計算、デバイス管理、デバイス保守、およびプロトコル処理の機能を含む、デバイス900におけるコンポーネントを制御および管理する、ように構成される。主制御ボード910は、中央処理ユニット911およびメモリ912を含む。
【0350】
インターフェースボード930は、ライン処理ユニット(line processing unit、LPU)、ラインカード(line card)、またはサービスボードとも呼ばれる。インターフェースボード930は、種々のサービスインターフェースを提供し、データパケット転送を実装するように構成される。サービスインターフェースは、イーサネットインターフェース、POS(packet over sONET/SDH)インターフェースなどを含むが、これらに限定されない。イーサネットインターフェースは、例えばフレキシブルイーサネットサービスインターフェース(flexible ethernet clients、FlexE clients)である。インターフェースボード930は、中央処理ユニット931と、ネットワークプロセッサ932と、転送エントリメモリ934と、物理インターフェースカード(physical interface card、PIC)933とを含む。
【0351】
インターフェースボード930上の中央処理ユニット931は、インターフェースボード930を制御および管理し、主制御ボード910上の中央処理ユニット911と通信するように構成される。
【0352】
ネットワークプロセッサ932は、パケット転送処理を実装するように構成される。ネットワークプロセッサ932の形態は、例えば、フォワーディングチップである。具体的には、ネットワークプロセッサ932は、転送エントリメモリ934に記憶された転送テーブルに基づいて、受信されたパケットを転送し、パケットの宛先アドレスがデバイス900のアドレスである場合、CPU(例えば中央処理ユニット911)による処理のためにパケットを送信するか、またはパケットの宛先アドレスがデバイス900のアドレスではない場合、宛先アドレスに基づいて、転送テーブルにおいて、ネクストホップおよび宛先アドレスに対応するアウトバウンドインターフェースを見つけ、パケットを、宛先アドレスに対応するアウトバウンドインターフェースに転送するように構成されている。アップストリームパケットを処理することは、パケットのインバウンドインターフェースを処理し、転送テーブルを検索することを含む。ダウンストリームパケットを処理することは、転送テーブルなどを検索することである。
【0353】
物理インターフェースカード933は、物理層相互接続機能を実装するように構成されており、そのため、元のトラフィックがインターフェースボード930に物理インターフェースカード933を介して入り、処理されたパケットが物理インターフェースカード933から送出される。物理インターフェースカード933はサブカードとも呼ばれ、インターフェースボード930上に設置されてもよく、光/電気信号をパケットに変換し、パケットに対して有効性チェックを実行し、処理のためにパケットをネットワークプロセッサ932に転送する役割を担う。いくつかの実施形態では、中央処理ユニットは、ネットワークプロセッサ932の機能を代替的に実行してもよく、例えば、汎用CPUに基づいてソフトウェア転送を実装してもよく、したがって、ネットワークプロセッサ932は物理インターフェースカード933において必要とされない。
【0354】
任意選択で、デバイス900は複数のインターフェースボードを含む。例えば、デバイス900はインターフェースボード940をさらに含み、インターフェースボード940は、中央処理ユニット941と、ネットワークプロセッサ942と、転送エントリメモリ944と、物理インターフェースカード943とを含む。
【0355】
任意選択で、デバイス900は、スイッチングボード920をさらに含む。スイッチングボード920は、例えばスイッチファブリックユニット(switch fabric unit、SFU)と呼ばれる。ネットワークデバイスが複数のインターフェースボード930を有する場合、スイッチングボード920は、インターフェースボード間のデータ交換を完了するように構成される。例えば、インターフェースボード930とインターフェースボード940とは、例えばスイッチングボード920を通して互いに通信する。
【0356】
主制御ボード910とインターフェースボード930とは結合されている。例えば、主制御ボード910、インターフェースボード930、インターフェースボード940、およびスイッチングボード920は、システムバスを介してシステムバックプレーンに接続され、インターワーキングを実装する。可能な実装形態では、プロセス間通信(inter-process communication、IPC)チャネルが、主制御ボード910とインターフェースボード930との間に確立され、通信は、IPCチャネルを使用することにより、主制御ボード910とインターフェースボード930との間で実行される。
【0357】
論理的には、デバイス900は、制御プレーンおよび転送プレーンを含む。制御プレーンは、主制御ボード910および中央処理ユニット931を含み、転送プレーンは、転送を実行するコンポーネント、例えば転送テーブルエントリメモリ934、物理インターフェースカード933、およびネットワークプロセッサ932を含む。制御プレーンは、ルータの機能、転送テーブルの生成、シグナリングおよびプロトコルパケットの処理、ならびにデバイスステータスの構成および維持などの機能を実行する。制御プレーンは、生成された転送テーブルを、転送プレーンに配信する。転送プレーンにおいて、ネットワークプロセッサ932はテーブルを検索し、制御プレーンによって配信された転送テーブルに基づいて、物理インターフェースカード933によって受信されたパケットを転送する。制御プレーンによって配信された転送テーブルは、例えば、転送エントリメモリ934に記憶される。いくつかの実施形態では、例えば、制御プレーンと転送プレーンとは完全に分離され、同じデバイス上にはない。
【0358】
インターフェースボード940上の動作は、インターフェースボード930上の動作と一致する。簡潔にするために、インターフェースボード940上の動作は説明されない。
【0359】
この実施形態におけるデバイス900は、前述の方法の実施形態におけるネットワークデバイスまたはコントローラデバイスに対応することができ、デバイス900における主制御ボード910およびインターフェースボード930および/またはインターフェースボード940は、例えば、前述の方法の実施形態におけるネットワークデバイスまたはコントローラデバイスの機能、および/または前述の方法の実施形態においてネットワークデバイスまたはコントローラデバイスによって実装されるステップを実装する。簡潔にするため、本明細書では詳細は再度説明されない。
【0360】
1つ以上の主制御ボードがあってもよく、複数の主制御ボードがあるとき、例えば、複数の主制御ボードは、アクティブ主制御ボードおよびスタンバイ主制御ボードを含むことに留意されたい。1つまたは複数のインターフェースボードがあってもよく、より強いデータ処理能力を有するネットワークデバイスは、より多くのインターフェースボードを提供する。インターフェースボード上には1つまたは複数の物理インターフェースカードがあってよい。スイッチングボードがなくてもよいし、または1つ以上のスイッチングボードがあってもよい。複数のスイッチングボードが存在する場合、スイッチングボードは、負荷共有および冗長バックアップを一緒に実装することができる。集中転送アーキテクチャでは、ネットワークデバイスは、スイッチングボードを必要としない場合があり、インターフェースボードは、システム全体においてサービスデータを処理する機能を請け負う。分散転送アーキテクチャでは、ネットワークデバイスは少なくとも1つのスイッチングボードを有し得、大容量データ交換および処理能力を提供するために、複数のインターフェースボード間のデータ交換はスイッチングボードを使用することによって実装される。したがって、分散アーキテクチャにおけるネットワークデバイスのデータアクセスおよび処理能力は、集中型アーキテクチャにおけるデバイスのデータアクセスおよび処理能力よりも良好である。任意選択で、ネットワークデバイスの形態は、ただ1つのカードを有してもよく、言い換えれば、スイッチングボードはなく、インターフェースボードおよび主制御ボードの機能はカード上に統合される。この場合、インターフェースボード上の中央処理ユニットおよび主制御ボード上の中央処理ユニットは、2つの中央処理ユニットが組み合わされた後に取得される機能を実行するために、カード上の1つの中央処理ユニットに組み合わされてもよい。この形態のデバイス(例えば、ローエンドスイッチやルータなどのネットワークデバイス)は比較的弱いデータ交換および処理能力を有する。使用されるべき特定のアーキテクチャは、特定のネットワーキング展開シナリオに依存する。これは本明細書では限定されない。
【0361】
本明細書の実施形態は、漸進的な方式で説明されている。実施形態の同じまたは類似の部分については、互いに参照されたい。それぞれの実施形態は、他の実施形態との相違点に着目している。
【0362】
本明細書で使用される場合、「および/または」という用語は、関連する列挙された項目のうちの1つまたは複数のありとあらゆる可能な組み合わせを指し、包含する。「および/または」という用語は、関連するオブジェクト間の関連関係を説明し、3つの関係が存在し得ることを表す。例えば、Aおよび/またはBは、以下の3つの場合、すなわち、Aのみが存在する場合、AとBの両方が存在する場合、およびBのみが存在する場合を表すことができる。加えて、本出願における記号「/」は、関連付けられた対象間の「または」の関係を、通常、表わす。
【0363】
AがBを指すということは、AがBと同じであるか、またはAがBの単純な変形であることを意味する。
【0364】
本出願の実施形態の明細書および特許請求の範囲における「第1」、「第2」などの用語は、異なる対象を区別するために使用されるが、対象の特定の順序を説明するために使用されず、相対的な重要性を示すまたは暗示すると理解されることはできない。例えば、第1の接続および第2の接続は、異なる接続を区別するために使用されるが、接続の特定の順序を説明するために使用されず、第1の接続が第2の接続よりも重要であることを意味することはできない。
【0365】
本出願の実施形態において、特に明記しない限り、「少なくとも1つ」は1つまたは複数を意味し、「複数」は2つ以上を意味する。例えば、「複数の接続」は、2つ以上の接続を指す。
【0366】
上記の実施形態の全部または一部はソフトウェア、ハードウェア、ファームウェアまたはこれらの任意の組み合せを使用することにより実装されてもよい。実施形態を実装するためにソフトウェアが使用される場合、実施形態の全部または一部がコンピュータプログラム製品の形態で実装されてもよい。このコンピュータプログラム製品は、1つ以上のコンピュータ命令を含む。コンピュータプログラム命令がコンピュータに読み込まれて実行されると、本出願の実施形態による手順または機能の全部または一部が生成される。コンピュータは、汎用コンピュータ、専用コンピュータ、コンピュータネットワーク、または他のプログラム可能な装置であってよい。コンピュータ命令は、コンピュータ可読記憶媒体に記憶されてもよいし、またはあるコンピュータ可読記憶媒体から別のコンピュータ可読記憶媒体に伝送されてもよい。例えば、コンピュータ命令は、或るウェブサイト、コンピュータ、サーバ、またはデータセンターから別のウェブサイト、コンピュータ、サーバ、またはデータセンターへ、有線方式(例えば、同軸ケーブル、光ファイバ、またはデジタル加入者回線(DSL))で、または無線方式(例えば、赤外線、電波、またはマイクロ波)で、送信されてよい。コンピュータ可読記憶媒体はコンピュータによってアクセス可能ないずれかの使用可能な媒体であってよく、または1つ以上の使用可能な媒体を統合したサーバやデータセンターなどのデータ記憶デバイスであってよい。使用可能な媒体は、磁気媒体(例えば、フロッピーディスク、ハードディスク、または磁気テープ)、光媒体(例えば、DVD)、半導体媒体(例えば、ソリッドステートドライブ(Solid State Disk、SSD))などであってもよい。
【0367】
前述の実施形態は、本出願の技術的解決策を説明するために単に使用されており、技術的解決策を限定することが意図されるものではない。本出願は上記の実施形態に関して詳細に説明されているが、当業者は、上記実施形態で説明されている技術解決手段に修正を加えたり、その一部の技術特徴に均等置換を行なったりすることが依然できるが、該当する技術解決手段の本質部分は本出願の実施形態の技術解決手段の範囲から逸脱するものではないことを理解すべきである。
【符号の説明】
【0368】
10 管理制御プレーン
11 コントローラデバイス
12 ルートリフレクタ
20 overlayネットワーク
21 TNP
22 TNP
30 underlayネットワーク
102 SID
103 SID
201 SID
201 ネットワークデバイス
202 ネットワークデバイス
203 ネットワークデバイス
203 SID
204 ネットワークデバイス
212 TVC
224 TVC
243 VC
243 TVC
301 SID
301 ネットワークデバイス
302 SID
401 edgeデバイス
404 edgeデバイス
405 edgeデバイス
406 edgeデバイス
416 TVC
464 TVC
465 TVC
490 SD-WANコントローラ
501 edgeデバイス
502 POP GW
503 POP GW
504 POP GW
512 TVC
523 TVC
524 TVC
590 SD-WANコントローラ
610 ネットワークデバイス
611 受信ユニット
612 処理ユニット
613 送信ユニット
710 コントローラデバイス
711 取得ユニット
712 処理ユニット
713 送信ユニット
800 デバイス
801 プロセッサ
802 メモリ
803 ネットワークインターフェース
804 内部接続
805 プロセッサ
806 入力/出力インターフェース
810 プログラムコード
900 デバイス
910 主制御ボード
911 中央処理ユニット
912 メモリ
920 スイッチングボード
930 インターフェースボード
931 中央処理ユニット
932 ネットワークプロセッサ
933 物理インターフェースカード
934 転送エントリメモリ
934 転送テーブルエントリメモリ
940 インターフェースボード
941 中央処理ユニット
942 ネットワークプロセッサ
943 物理インターフェースカード
944 転送エントリメモリ
【手続補正書】
【提出日】2024-04-30
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
パケット処理方法であって、前記方法は、
第1のネットワークデバイスによって、第2のネットワークデバイスから第1のパケットを受信するステップであって、前記第1のパケットのインターネットプロトコル
(IP
)アドレスは第1の接続のエンドポイントIPアドレスを含み、前記第1のパケットはセグメント識別子
(SID
)を含み、前記SIDは第2の接続を示し、前記第1の接続は前記第2のネットワークデバイスから前記第1のネットワークデバイスへの接続であり、前記第2の接続は前記第1のネットワークデバイスから第3のネットワークデバイスへの接続である、ステップと、
前記第1のネットワークデバイスによって、第2のパケットを取得するために前記第1のパケット
でSIDに対応するエンドポイント挙動を実行するステップであって、前記第2のパケットの送信元IPアドレスは、前記第2の接続のエンドポイントIPアドレスにおける前記第1のネットワークデバイスに属するIPアドレスであり、前記第2のパケットの宛先IPアドレスは、前記第2の接続の前記エンドポイントIPアドレスにおける前記第3のネットワークデバイスに属するIPアドレスである、ステップと、
前記第1のネットワークデバイスによって、前記第3のネットワークデバイスへ前記第2のパケットを送信するステップと
を含む、パケット処理方法。
【請求項2】
前記第1の接続の前記エンドポイントIPアドレスはインターネットプロトコルバージョン6
(IPv6
)アドレスであり、前記第1のパケットはセグメントルーティングヘッダ
(SRH
)を含み、前記SIDは前記SRHに位置付けられる、
請求項1に記載の方法。
【請求項3】
前記第1の接続の前記エンドポイントIPアドレスはインターネットプロトコルバージョン4
(IPv4
)アドレスであり、前記第1のパケットはSRHを含み、前記SIDは前記SRHに位置付けられる、
請求項1に記載の方法。
【請求項4】
前記第1の接続の前記エンドポイントIPアドレスが前記第1のパケットのIPv4ヘッダに位置付けられ、前記第1のパケットが前記SRHに対応するプロトコルのタイプを備え、前記プロトコルのタイプが前記第1のパケットの汎用ルーティングカプセル化
(GRE
)ヘッダに位置付けられるか、または前記プロトコルのタイプが前記第1のパケットの仮想拡張可能ローカルエリアネットワーク
(VXLAN
)ヘッダに位置付けられるか、または前記プロトコルのタイプが前記第1のパケットの前記IPv4ヘッダに位置付けられる、請求項3に記載の方法。
【請求項5】
前記第2の接続の前記エンドポイントIPアドレスがIPv6アドレスまたはIPv4アドレスである、請求項
1に記載の方法。
【請求項6】
前記第1の接続の前記エンドポイントIPアドレスおよび/または前記第2の接続の前記エンドポイントIPアドレスは各々、広域ネットワークWANインターフェースのものであり、underlay
(underlay
)ネットワークの事業者によって割り当てられるIPアドレスである、請求項
1に記載の方法。
【請求項7】
前記第1の接続および/または前記第2の接続がそれぞれ異なるサイト間の接続である、請求項
1に記載の方法。
【請求項8】
第1のネットワークデバイスによって、第2のネットワークデバイスから第1のパケットを受信する前記ステップの前に、前記方法は、
前記第1のネットワークデバイスによって、前記第2の接続の前記エンドポイントIPアドレスおよび/または前記第1の接続の前記エンドポイントIPアドレスをコントローラデバイスに送信するステップ、
をさらに含む、請求項
1に記載の方法。
【請求項9】
前記第1のネットワークデバイスによって、前記第2の接続の前記エンドポイントIPアドレスおよび/または前記第1の接続の前記エンドポイントIPアドレスをコントローラデバイスに送信する前記ステップは、
前記第1のネットワークデバイスによって、境界ゲートウェイプロトコルリンク状態
(BGP-LS
)パケットを生成するステップであって、前記BGP-LSパケットは、前記第2の接続の前記エンドポイントIPアドレスおよび/または前記第1の接続の前記エンドポイントIPアドレスを含み、前記BGP-LSパケットは、ソフトウェア定義広域ネットワーク
(SD-WAN
)プロトコルの識別子をさらに含む、ステップと、
前記第1のネットワークデバイスによって、前記コントローラデバイスに前記BGP-LSパケットを送信するステップと
を含む、請求項8に記載の方法。
【請求項10】
第1のネットワークデバイスによって、第2のネットワークデバイスから第1のパケットを受信する前記ステップの前に、前記方法は、以下の
前記第1のネットワークデバイスによって、前記第1のネットワークデバイスが位置付けられるサイトの識別子を前記コントローラデバイスに送信するステップ、または
前記第1のネットワークデバイスによって、前記第1の接続の接続ステータスおよび/または前記第2の接続の接続ステータスを前記コントローラデバイスに送信するステップ、または
前記第1のネットワークデバイスによって、前記第1の接続および/または前記第2の接続のサービスレベル合意SLA情報を前記コントローラデバイスに送信するステップ、
の少なくとも1つをさらに含む、請求
項9に記載の方法。
【請求項11】
第1のネットワークデバイスによって、第2のネットワークデバイスから第1のパケットを受信する前記ステップの前に、前記方法は、
前記第1のネットワークデバイスによって、コントローラデバイスから前記SIDを受信するステップ、
をさらに含む、請求項
1に記載の方法。
【請求項12】
前記SIDが、End.X-SD-WANタイプのSIDである、請求項1に記載の方法。
【請求項13】
経路決定方法であって、前記方法は、
コントローラデバイスによって、複数の接続のエンドポイントIPアドレスを取得するステップと、
前記コントローラデバイスによって、前記複数の接続の前記エンドポイントIPアドレスに基づいてセグメントルーティング
(SR
)経路を決定するステップであって、前記SR経路は前記複数の接続のうちの第1の接続および第2の接続を含み、前記第1の接続は第1のネットワークデバイスから第2のネットワークデバイスへの接続であり、前記第2の接続は前記第2のネットワークデバイスから第3のネットワークデバイスへの接続である、ステップと、
前記コントローラデバイスによって、SRポリシーを前記第1のネットワークデバイスに送信するステップであって、前記SRポリシーが前記SR経路を示す、ステップと
を、含む、経路決定方法。
【請求項14】
前記SRポリシーは第1のSIDを含み、前記第1のSIDは前記第2の接続を示す、請求項1
3に記載の方法。
【請求項15】
前記方法が、
前記コントローラデバイスによって、前記第1のSIDを前記第2の接続に割り当て、第2のSIDを前記第1の接続に割り当てるステップであって、前記第1のSIDが前記第2の接続を示し、前記第2のSIDが前記第1の接続を示す、ステップと、
前記コントローラデバイスによって、前記第1のSIDを前記第2のネットワークデバイスへ送信し、前記第2のSIDを前記第1のネットワークデバイスへ送信するステップと
をさらに含む、請求項
14に記載の方法。
【請求項16】
前記複数の接続の各々は異なるサイト間の接続であり、前記コントローラデバイスによって、前記複数の接続の前記エンドポイントIPアドレスに基づいてSR経路を決定する前記ステップは、
前記コントローラデバイスによって、サイトを経路オーケストレーションオブジェクトとして使用することによって前記複数の接続の前記エンドポイントIPアドレスに基づいて前記SR経路を決定するステップ、
を含む、請求項
13に記載の方法。
【請求項17】
ネットワークデバイスであって、前記ネットワークデバイスは第1のネットワークデバイスであり、前記ネットワークデバイスは、
プロセッサであって、前記プロセッサはメモリに結合され、前記メモリは少なくとも1つのコンピュータプログラム命令を記憶し、前記少なくとも1つのコンピュータプログラム命令は前記プロセッサによって実行され、前記ネットワークデバイスに、
第2のネットワークデバイスから第1のパケットを受信
し、前記第1のパケットのインターネットプロトコルIPアドレスは第1の接続のエンドポイントIPアドレスを含み、前記第1のパケットはセグメント識別子SIDを含み、前記SIDは第2の接続を示し、前記第1の接続は前記第2のネットワークデバイスから前記第1のネットワークデバイスへの接続であり、前記第2の接続は前記第1のネットワークデバイスから第3のネットワークデバイスへの接続であ
り、
第2のパケットを取得するために前記第1のパケット
でSIDに対応するエンドポイント挙動を実行し、前記第2のパケットの送信元IPアドレスは、前記第2の接続のエンドポイントIPアドレスにおける前記第1のネットワークデバイスに属するIPアドレスであり、前記第2のパケットの宛先IPアドレスは、前記第2の接続の前記エンドポイントIPアドレスにおける前記第3のネットワークデバイスに属するIPアドレスであ
り、
前記第3のネットワークデバイスへ前記第2のパケットを送信する
こと
を引き起こす、プロセッサ、
を備える、ネットワークデバイス。
【請求項18】
前記プロセッサによって実行される前記少なくとも1つのコンピュータプログラム命令は、前記ネットワークデバイスに、前記第2の接続の前記エンドポイントIPアドレスおよび/または前記第1の接続の前記エンドポイントIPアドレスをコントローラデバイスへ送信する
ことをさらに引き起こす、請求項17に記載のネットワークデバイス。
【請求項19】
前記プロセッサによって実行される前記少なくとも1つのコンピュータプログラム命令は、前記ネットワークデバイスに、境界ゲートウェイプロトコルリンク状態
(BGP-LS
)パケットを生成
し、前記BGP-LSパケットが、前記第2の接続の前記エンドポイントIPアドレスおよび/または前記第1の接続の前記エンドポイントIPアドレスを含み、前記BGP-LSパケットが、ソフトウェア定義広域ネットワーク
(SD-WAN
)プロトコルの識別子をさらに含み、
送信ユニットが、前記コントローラデバイスに前記BGP-LSパケットを送信するように構成される、
ことをさらに引き起こす、請求項18に記載のネットワークデバイス。
【請求項20】
前記プロセッサによって実行される前記少なくとも1つのコンピュータプログラム命令は、前記ネットワークデバイスに、以下の、
前記第1のネットワークデバイスが位置付けられるサイトの識別子をコントローラデバイスに送信す
る、または
前記第1の接続の接続ステータスおよび/または前記第2の接続の接続ステータスを前記コントローラデバイスに送信す
る、または
前記第1の接続および/または前記第2の接続のサービスレベル合意
(SLA
)情報を前記コントローラデバイスに送信す
る
ことの少なくとも1つを実行す
る、請求項1
7に記載のネットワークデバイス。
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0013
【補正方法】変更
【補正の内容】
【0013】
任意選択で、第1の接続および/または第2の接続はそれぞれ異なるサイト(site)間の接続である。例えば、第2のネットワークデバイスは第1のサイトに展開され、第1のネットワークデバイスは第2のサイトに展開され、第3のネットワークデバイスは第3のサイトに展開される。第1の接続は、第1のサイトから第2のサイトへの接続であり、第2の接続は、第2のサイトから第3のサイトへの接続である。
【手続補正3】
【補正対象書類名】明細書
【補正対象項目名】0029
【補正方法】変更
【補正の内容】
【0029】
新しいプロトコル識別子がBGP-LSプロトコルから拡張されるので、コントローラデバイスは、BGP-LSパケットを受信するとき、プロトコル識別子を使用することによって、ネットワークデバイスによって報告されたデータがSD-WANのトポロジデータであることを識別することができる。
【手続補正4】
【補正対象書類名】明細書
【補正対象項目名】0034
【補正方法】変更
【補正の内容】
【0034】
任意選択で、第1のネットワークデバイスが第2のネットワークデバイスから第1のパケットを受信する前に、方法は、第1のネットワークデバイスが、第1の接続および/または第2の接続のサービスレベル合意(service-level agreement、SLA)情報を送信することをさらに含む。SLA情報は、パケット損失率、遅延、ジッタ、または帯域幅利用のうちの少なくとも1つを含むが、これらに限定されない。
【手続補正5】
【補正対象書類名】明細書
【補正対象項目名】0088
【補正方法】変更
【補正の内容】
【0088】
管理制御プレーン10は、コントローラデバイス11を含む。任意選択で、管理制御プレーン10は、ルートリフレクタ(RR)12をさらに含む。
【手続補正6】
【補正対象書類名】明細書
【補正対象項目名】0100
【補正方法】変更
【補正の内容】
【0100】
任意選択で、本出願のこの実施形態で提供されるシステムアーキテクチャは、トラフィックが1つまたは複数の指定されたサイトを通過するように制御される必要があるシナリオに適用される。コントローラデバイスは、複数のサイトのネットワークデバイスを含むSR経路を編成するように構成される。例えば、
図1を参照すると、コントローラデバイスによって編成されるSR経路は、支部サイト1のネットワークデバイス201→集約サイトのネットワークデバイス202→本部サイトのネットワークデバイス204→支部サイト2のネットワークデバイス203である。SR経路のエンドポイントは、ネットワークデバイス201およびネットワークデバイス203を含む。SR経路が通過する中間ノードは、ネットワークデバイス202およびネットワークデバイス204を含む。SR経路は、TVC 212、TVC 224、および
TVC 243を含む。
【手続補正7】
【補正対象書類名】明細書
【補正対象項目名】0001
【補正方法】削除
【補正の内容】
【国際調査報告】