以下で、添付図面を参照して本出願の技術的解決策を説明する。
明確にするために、本出願で使用される用語がまず説明される。
バージョン6セグメントルーティング(Internet Protocol version 6 segment routing、SRv6)では、セグメントルーティングヘッダ(segment routing header、SRH)がIPv6パケットに挿入され、SRHは、IPv6アドレスリストおよびIPv6アドレスリストを指し示すインデックスを含み、データパケット転送パス上のセグメントエンドポイントノード(segment endpoint node)が、IPv6アドレスをインデックスに基づいて1つずつ探索し、転送のために見つかったIPv6アドレスでデータパケットの宛先アドレスを更新する。データパケットの宛先アドレスはIPv6アドレスであり、SRv6内のIPv6アドレスはセグメント識別子(segment identifier、SID)として使用されることができる。
SRv6 EVPNは、SRv6に基づいてEVPNを参照する。
仮想プライベートワイヤサービス(virtual private wire service、VPWS)は、ポイントツーポイントのレイヤ2仮想プライベートネットワーク(virtual private network、VPN)サービスである。EVPN VPWSは、EVPNで実装されるVPWSである。EVPN VPWSは、シングルアクティブ(single−active)マルチホーミングまたはオールアクティブ(all−active)マルチホーミング機能を提供することができる。
アタッチメント回路(attachment circuit、AC)は、CEデバイスとPEデバイスとを接続するために使用される物理リンクまたは論理リンクである。
イーサネット仮想専用線(ethernet virtual private line、EVPL)は、AC対間のポイントツーポイントのイーサネット接続を提供するために使用される。VPWSは、EVPLに基づいて実装される。
イーサネットセグメント(ethernet segment、ES):CEが2つ以上のPEにマルチホームされる場合、CEによってPEにアクセスするために使用されるイーサネットリンクのグループ(例えば、複数のAC)はESに属する。ESを一意に識別するために使用される識別子が、イーサネットセグメント識別子(ethernet segment identifier、ESI)である。
イーサネットタグ識別子(ethernet tag identifier、Ethernet Tag ID)は、特定のブロードキャストドメインを識別するために使用される。
ブロードキャストドメイン(broadcast domain、BD)は、仮想ローカルエリアネットワーク(virtual local area network、VLAN)に対応する。
ローカルインターフェースは、PEデバイスによって、別のPEを使用せずにCEデバイスまたはACに接続するために使用されるインターフェースを指す。例えば、図1において、インターフェース104およびインターフェース105はローカルインターフェースであり、インターフェース107およびインターフェース108は非ローカルインターフェースである。
本出願では、PEデバイスによってCEデバイスまたはACに接続するために使用されるインターフェースは、PEデバイスによって、別のPEデバイスを使用せずにCEデバイスまたはACに接続するために使用されるインターフェースを指す。本出願では、PEデバイスによって別のPEデバイスまたはCEデバイスにデータパケットを送信するために使用されるインターフェースが、アウトバウンドインターフェースと呼ばれる場合もあり、CEデバイスまたはACにデータパケットを送信するために使用されるPEデバイス上のローカルインターフェースが、ローカルアウトバウンドインターフェースと呼ばれる場合もある。本出願では、インターフェースは、物理ポートまたは物理ポート上の論理ポートであり得る。
EVPNは、オールアクティブモード(all−active mode)を提供する。オールアクティブモードでは、デバイスが複数のプロバイダエッジ(provider edge、PE)デバイスにマルチホームされる場合、それら複数のPEデバイスはすべてそのデバイスにトラフィックを転送することができる。複数のPEデバイスが2つのPEデバイスを含む場合、オールアクティブモードはデュアルアクティブモード(dual−active mode)と呼ばれてもよく、「マルチホームされる」も「デュアルホームされる(dual−homed)」と呼ばれ得る。
本出願を明確に理解するために、本出願は、SRv6 EVPNの様々なシナリオに基づいて以下でさらに説明される。本出願はSRv6 EVPNのシナリオに適用されてもよく、また当然ながら、別の通信シナリオに適用されてもよいことを理解されたい。これは、本出願のこの実施形態では限定されない。
図1は、本出願の一実施形態によるSRv6 EVPNデュアルアクティブシナリオの概略図である。図1に示されるネットワークは、仮想プライベートワイヤサービスVPWSを提供し得る。図1に示されるネットワークは、CEデバイスCE1およびCE2と、PEデバイスPE1、PE2、およびPE3とを含む。PE1、PE2、およびPE3は、それぞれ、アタッチメント回路AC101、AC102、およびAC103を介してCE1、CE1、およびCE2に接続されており、PE1、PE2、およびPE3は、それぞれ、インターフェース104、105、および106を介してアタッチメント回路AC101、AC102、およびAC103に接続されている。インターフェース104、105、および106はすべてローカルインターフェースであり、インターフェース107および108は非ローカルインターフェースである。PE1はインターフェース107を介してPE2に接続されており、PE2はインターフェース108を介してPE1に接続されている。AC101およびAC102は同じイーサネットセグメントに属し、このイーサネットセグメントの識別子は「ESI1」であり得る。AC103は別のイーサネットセグメントに属し、この別のイーサネットセグメントの識別子は「ESI2」であり得る。一例では、PE1、PE2、およびPE3は以下のように構成される。
PE1:インターフェース104のESI属性値は「ESI1」であり、インターフェース104と関連付けられたローカルEthernet Tag IDおよびピアEthernet Tag IDの値は、それぞれ、「1」および「2」であり、EVPLと関連付けられたSIDは「1::1」である。例えば、具体的な構成プロセスは以下のとおりである。インターフェース104のESI属性値は「ESI1」として構成され、インターフェース104と関連付けられたEVPL処理モジュールは「EVPL1」として構成され、EVPL1と関連付けられたローカルEthernet Tag IDおよびピアEthernet Tag IDの値は、それぞれ、「1」および「2」として構成され、EVPL1と関連付けられたSIDは「1::1」として構成され、PE1上でEVPL関連のデータを処理するために使用される処理モジュールEVPL1と関連付けられたSIDは「1::1」として構成され、これは、PE1上のEVPLサービスと関連付けられたSIDを「1::1」として構成することと等価であり、言い換えると、PE1上のEVPLサービスと関連付けられたSIDは「1::1」として構成される。
PE2:インターフェース105のESI属性値は「ESI1」であり、インターフェース205と関連付けられたローカルEthernet Tag IDおよびピアEthernet Tag IDの値は、それぞれ、「1」および「2」であり、EVPLと関連付けられたSIDは「2::1」である。例えば、具体的な構成プロセスは以下のとおりである。インターフェース105のESI属性値は「ESI1」として構成され、インターフェース105と関連付けられたEVPL処理モジュールは「EVPL2」として構成され、EVPL2と関連付けられたローカルEthernet Tag IDおよびピアEthernet Tag IDの値は、それぞれ、「1」および「2」として構成され、EVPL2と関連付けられたSIDは「2::1」として構成され、PE2上でEVPL関連のデータを処理するために使用される処理モジュールEVPL1と関連付けられたSIDは「2::1」として構成され、これは、PE2上のEVPLサービスと関連付けられたSIDを「2::1」として構成することと等価であり、言い換えると、PE2上のEVPLサービスと関連付けられたSIDは「2::1」として構成される。
PE3:インターフェース106のESI属性値は「ESI2」であり、インターフェース106と関連付けられたローカルEthernet Tag IDおよびピアEthernet Tag IDの値は、それぞれ、「2」および「1」であり、EVPLと関連付けられたSIDは「3::1」である。例えば、具体的な構成プロセスは以下のとおりである。インターフェース106のESI属性値は「ESI2」として構成され、インターフェース106と関連付けられたEVPL処理モジュールは「EVPL3」として構成され、EVPL3と関連付けられたローカルEthernet Tag IDおよびピアEthernet Tag IDの値は、それぞれ、「2」および「1」として構成され、EVPL3と関連付けられたSIDは「3::1」として構成され、PE3上でEVPL関連のデータを処理するために使用される処理モジュールEVPL3と関連付けられたSIDは「3::1」として構成され、これは、PE3上のEVPLサービスと関連付けられたSIDを「3::1」として構成することと等価であり、言い換えると、PE3上のEVPLサービスと関連付けられたSIDは「3::1」として構成される。
このシナリオでは、VPWSおよびデュアルアクティブモードを提供するために、PE1、PE2、およびPE3は互いにルーティングメッセージを送信する。ルーティングメッセージは、ボーダゲートウェイプロトコル(Border Gateway Protocol、BGP)メッセージであり得る。BGPメッセージは、イーサネット自動検出ルート(ethernet auto−discovery route、ethernet A−D route)およびSRv6−VPN SID属性を含み得る。イーサネット自動検出ルート(略称ADルート)は、ESIフィールドおよびEthernet Tag IDフィールドを含み得る。SRv6−VPN SID属性は、タイプ/長さ/値(type/length/value、TLV)形式の属性であり、タイプフィールド、長さフィールド、および値フィールドを含み、タイプ(type)は「1」または「2」であり得る。図2に示される以下のシナリオでは、タイプが「2」であるSRv6−VPN SID属性の値はEVPL属性値と呼ばれ、EVPL属性値は、ピアデバイスに、EVPLと関連付けられ、ローカルデバイス上で構成されるSIDを通知するために使用され得る。イーサネット自動検出ルートの説明については、インターネット技術標準化委員会(Internet Engineering Task Force、IETF)によって発行されたリクエストフォーコメンツ(Request for Comments、RFC)7432を参照されたい。SRv6−VPN SIDの説明については、IETFドラフト“BGP Signaling of IPv6−Segment−Routing−based VPN Networks,draft−dawra−idr−srv6−vpn−03”を参照されたい。
一例では、PE1はADルートE1を生成し、E1のESIフィールドの値は、PE1上で構成されるインターフェース104のESI属性値「ESI1」であり、Ethernet Tag IDフィールドの値は、PE1上で構成されるインターフェース104と関連付けられたローカルEthernet Tag ID値「1」であり、PE1はPE2およびPE3に、E1およびEVPL属性値を搬送するルーティングメッセージR1を送信し、EVPL属性値は「1::1」であり、EVPL属性値が使用されてPE2およびPE3に、PE1上のEVPLと関連付けられたSID値が「1::1」であることを通知することができる。同様に、PE2はADルートE2を生成し、E2のESIフィールドの値は、PE2上で構成されるインターフェース105のESI属性値「ESI1」であり、Ethernet Tag IDフィールドの値は、PE2上で構成されるインターフェース105と関連付けられたローカルEthernet Tag ID値「1」であり、PE2はPE1およびPE3に、E2およびEVPL属性値を搬送するルーティングメッセージR2を送信し、EVPL属性値は「2::1」である。PE3はADルートE3を生成し、E3のESIフィールドの値は、PE3上で構成されるインターフェース106のESI属性値「ESI2」であり、Ethernet Tag IDフィールドの値は、PE3上で構成されるインターフェース106と関連付けられたローカルEthernet Tag ID値「2」であり、PE3は、PE1およびPE2に、E3およびEVPL属性値を搬送するルーティングメッセージR3を送信し、EVPL属性値は「3::1」である。
PE2によって送信されたルーティングメッセージR2を受信した後、PE1は、ルーティングメッセージR2のESIフィールドの値がPE1によって生成されたADルートE1のESIフィールドの値と同じであると判断することができ、どちらの値も「ESI1」であり、PE1とPE2の両方が同じイーサネットセグメントに属する。したがって、PE2はPE1のバックアップデバイスであり、ルーティングメッセージR2に基づいて修復パスが決定されることができると判断されることができ、言い換えると、PE1は、PE1からCE1までの修復パスはPE1からPE2を介してCE1までであると判断することができる。したがって、PE1からCE1までの2つのパスがあり、一方は、ローカルインターフェース104を介してCE1までのメインパスであり、他方は、インターフェース107およびPE2を介してCE1までの修復パスである。PE1によってCE1に接続するために使用されるインターフェース104に障害があるとき、データパケットはインターフェース107を介してPE2に送信され得るので、データパケットは、PE2を介してCE1に送信されて高速リルート(fast reroute、FRR)を実現することができる。本出願では、修復パスはバイパス(bypass)パスとも呼ばれ得る。同様に、PE1によって送信されたルーティングメッセージR1を受信した後、PE2は、PE1がPE2のバックアップデバイスであると判断することができ、ルーティングメッセージR1に基づいて修復パスを決定することができ、言い換えると、PE2は、PE2からCE1までの修復パスはPE2からPE1を介してCE1までであると判断することができる。したがって、PE2からCE1までの2つのパスがあり、一方は、ローカルインターフェース105を介してCE1までのメインパスであり、他方は、インターフェース108およびPE1を介してCE1までの修復パスである。PE2によってCE1に接続するために使用されるインターフェース105に障害があるとき、データパケットはインターフェース108を介してPE1に送信され得るので、データパケットは、PE1を介してCE1に送信されてFRRを実現することができる。
PE2によって送信されたルーティングメッセージR2を受信した後、PE3は、PE3によって構成されたピアEthernet Tag ID値「1」がルーティングメッセージR2内のEthernet Tag ID値「1」と同じであると判断する。同様に、PE3によって送信されたルーティングメッセージR3を受信した後、PE2も、PE2によって構成されたピアEthernet Tag ID値「2」がルーティングメッセージR3内のEthernet Tag ID値「2」と同じであると判断する。言い換えると、PE2のローカルEthernet Tag IDおよびピアEthernet Tag IDは、それぞれ、PE3のピアEthernet Tag IDおよびローカルEthernet Tag IDと同じである。その場合、PE2とPE3との間でEVPLが確立され、EVPLの両端が、それぞれ、アタッチメント回路AC202とAC203とに接続されるので、CE2によって送信されたデータパケットはAC103、EVPL、およびAC102を介してCE1に到達することができる。PE3は、ルーティングメッセージR2からEVPL属性値「2::1」を取得し得る。PE2とPE3との間のEVPLが確立された後、PE3上のデータパケットがCE1に送信される必要がある場合、PE3は、「2::1」をデータパケットの宛先アドレスとして使用してPE2にデータパケットを送信し得るので、データパケットはPE2とPE3との間のEVPLを介してPE2に送信される。本出願では、データパケットの宛先アドレスはデータパケットのIPv6ヘッダ内の宛先アドレスであってもよく、宛先アドレスはIPv6アドレスであり、SRv6内のIPv6アドレスはセグメント識別子SIDであり得る。データパケットを受信した後、PE2は、データパケットの宛先アドレス「2::1」がEVPLと関連付けられたSID値であることを識別し、EVPLと関連付けられたSID値「2::1」と関連付けられた操作を行う。関連付けられた操作は、PE2上のSID値「2::1」と関連付けられたエントリy2を決定することであって、エントリy2が、SID値「2::1」、ローカルインターフェース105の識別子、およびインターフェース108の識別子を含む、ことと、エントリy2内のローカルインターフェース105に障害があるかどうかを判断することと、ローカルインターフェース105に障害がない場合に、ローカルインターフェース105を介してCE1にデータパケットを送信することと、ローカルインターフェース105に障害がある場合にインターフェース108を介してPE1にデータパケットを送信することと、を含む。
SRv6内のSID値は一連の命令と関連付けられていてもよく、一連の命令は機能とも呼ばれ得る。本出願では、機能が操作と呼ばれる場合もあり、各PEデバイス上の各SID値と関連付けられた操作が事前に構成され得る。例えば、PE1上でSID値「1::1」と関連付けられた操作を行う動作を実施するために、PE1上にエントリy1が事前に保存され、エントリy1は、SID値「1::1」と、ローカルインターフェース104およびインターフェース107を含む、CE1にデータパケットを送信するために使用されることができるPE1上のすべてのインターフェースとを含み、インターフェース107は、FRRを実施するためにPE2にデータパケットを送信するのに使用される。別の例では、PE2上でSID値「2::1」と関連付けられた操作を行う動作を実施するために、PE2上にエントリy2が事前に保存され、エントリy2はSID値「2::1」と、ローカルインターフェース105およびインターフェース108を含む、CE1にデータパケットを送信するために使用されることができるPE2上のすべてのインターフェースとを含み、インターフェース108は、FRRを実施するためにPE1にデータパケットを送信するのに使用される。IETFドラフト“SRv6 Network Programming,draft−filsfils−spring−srv6−network−programming−04”には、SIDと関連付けられた定義された機能(Functions)がある。このシナリオのEVPLと関連付けられたSID値と関連付けられた操作については、ドラフトのセクション4.4に記載されているEnd.DX2の機能を参照されたい。End.DX2の機能は、SIDと関連付けられたアウトバウンドインターフェースを介してデータパケットを転送することを含む。End.DX2の機能によれば、PE1上のSID値「1::1」と関連付けられた機能は、ローカルインターフェース104またはインターフェース107を介してデータパケットを送信することを含み、PE2上のSID値「2::1」と関連付けられた機能は、ローカルインターフェース105またはインターフェース108を介してデータパケットを送信することを含む。
同様に、PE3は、PE1によって送信されたルーティングメッセージR1を受信し、PE1はPE3によって送信されたルーティングメッセージR3を受信する。PE1のローカルEthernet Tag IDおよびピアEthernet Tag IDは、それぞれ、PE3のピアEthernet Tag IDおよびローカルEthernet Tag IDと同じである。その場合、PE1とPE3との間でEVPLが確立され、EVPLの両端が、それぞれ、アタッチメント回路AC101とAC103とに接続されるので、CE2によって送信されたデータパケットはAC103、EVPL、およびAC101を介してCE1に到達することができる。PE3は、ルーティングメッセージR1からEVPL属性値「1::1」を取得し得る。PE1とPE3との間のEVPLが確立された後、PE3上のデータパケットがCE1に送信される必要がある場合、PE3は、「1::1」をデータパケットの宛先アドレスとして使用してPE1にデータパケットを送信し得るので、データパケットはPE1とPE3との間のEVPLを介してPE1に送信される。データパケットを受信した後、PE1は、データパケットの宛先アドレス「1::1」がEVPLと関連付けられたSID値であることを識別し、EVPLと関連付けられたSID値「1::1」と関連付けられた操作を行う。関連付けられた操作は、PE1上のSID値「1::1」と関連付けられたエントリy1を決定することであって、エントリy1が、SID値「1::1」、ローカルインターフェース204の識別子、およびインターフェース107の識別子を含むことと、エントリy1内のローカルインターフェース104に障害があるかどうかを判断することと、ローカルインターフェース104に障害がない場合にローカルインターフェース104を介してCE1にデータパケットを送信することと、ローカルインターフェース104に障害がある場合にインターフェース107を介してPE2にデータパケットを送信することと、を含む。
前述のシナリオでは、PE1およびPE2が、FRRを実施するために、ピアデバイスによって送信されたルーティングメッセージに基づいて修復パスを決定するときに、PE1およびPE2は、EVPL属性値、すなわち、ピアデバイス上のEVPLと関連付けられた値に基づいて修復パスを決定する。その場合、PE2がPE3によって送信された、CE1に送信されるべきパケットを受信したときに、PE2がローカルインターフェース105に障害があると判断した場合、PE2は、データパケットの宛先アドレスとしてPE1上のEVPLと関連付けられた値「1::1」を使用して、インターフェース108を介してPE1に、CE1に送信されるべきデータパケットを送信して、FRRを実施するためにPE1をトリガしてデータパケットをローカルインターフェース104に転送させようと試み得る。データパケットを受信した後、PE1は、EVPLと関連付けられたSID値「1::1」と関連付けられた操作を行い、操作は、SID値「1::1」と関連付けられたエントリy1を決定することと、エントリy1に基づいて、PE1のローカルインターフェース104に障害があるかどうかを判断することと、ローカルインターフェース104に障害がないときに、FRRを実施するためにローカルインターフェース104を介してCE1にデータパケットを送信して転送を完了することと、を含む。しかしながら、ローカルインターフェース104にも障害があるときに、PE1が、PE2にデータパケットを送信するためのデータパケットの宛先アドレスとして、PE2上のEVPLと関連付けられた値「2::1」も使用する場合、PE2をトリガしてデータパケットをローカルインターフェース205に転送させようと試みるために、PE2は、データパケットの宛先アドレスを変更して「1::1」に戻し、「1::1」の宛先アドレスを有するデータパケットをPE1に返す。ゆえに、データパケット伝送ループが形成される。PE3がルート失効通知を受信するとき、新しいデータパケットがPE2に送信されない場合に限り新しいループが発生しなくなる。PE1またはPE2がルート失効通知を受信し、ピアデバイスまでのルートを失効させる場合に限り既存のループは取り除かれることができる。ループ問題は、ネットワークリソースの無駄を生じさせ、PEデバイスの性能に影響を及ぼし得る。
ループ問題を解決するために、PE1およびPE2が通常のデータサービスを開始する前に、PE1およびPE2は互いにルーティングメッセージを送信する。ルーティングメッセージは、ボーダゲートウェイプロトコル(Border Gateway Protocol、BGP)メッセージであり、BGPメッセージは、ESIラベル拡張コミュニティ(Label Extended Community)属性を有するイーサネット自動検出ルート(Ethernet Auto−discovery routes)であり得る。ESIラベル拡張コミュニティ(Label Extended Community)属性を有するイーサネット自動検出ルート(per−ES Ethernet Auto−Discovery routes、ES AD)は、ESIフィールドおよびプロバイダエッジデバイスのアドレスを含む。
ES ADルートは、ESIラベル拡張コミュニティ属性なしのイーサネット自動検出ルートと同時に送信され得るか、またはES ADルートは、ESIラベル拡張コミュニティ属性なしのイーサネット自動検出ルートが送信される前もしくは送信された後に送信され得ることを理解されたい。
本出願で提供される通信方法200を、図2を参照して以下で詳細に説明する。方法200は、図2に示されるシナリオに適用されてもよく、当然ながら、別の通信シナリオにも適用され得る。これは、本出願のこの実施形態では限定されない。方法200は以下を含む。
S201.PE2がPE1にメッセージを送信する。
メッセージはBGPメッセージ、例えば、前述のES ADであり得る。メッセージは、第1のイーサネットセグメント識別子ESIおよびPE2のアドレスを含む。PE2のアドレスは、PE2のIPv6アドレスであり得る。例えば、PE2のアドレスは、PE2によってPE1とのBGPピア関係を確立するために使用されるアドレス、例えば、「2::100」であり得る。第1のESIは、PE2とCE1との間の接続が属するイーサネットセグメントを識別し得る。第1のESIは、例えば、ESI1であり、PE2とCE1との間の接続は、例えば、AC102である。イーサネットセグメントは、PE1とCE1との間の接続、例えば、AC101をさらに含む。
S202.PE1が、PE2によって送信されたメッセージを受信し、PE1が、第1のESIはPE1に格納された第2のESIと同じであると判断する。
第2のESIは、PE1とCE1との間の接続が属するイーサネットセグメントを識別し得る。第2のESIは、例えば、ESI1であり、PE1とCE1との間の接続は、例えば、AC101である。PE1は、第1のESIがPE1に格納された第2のESIと同じであるかどうかを判断することができる。PE1とCE1との間の接続が属するイーサネットセグメントはESI1であり、PE2とCE1との間の接続が属するイーサネットセグメントはESI1である。したがって、PE1は、第1のESIが第2のESIと同じであると判断することができ、これは、PE1とCE1との間の接続とPE1とCE1との間の接続とが同じイーサネットセグメントに属し、CE1はPE1およびPE2にマルチホームされていることを意味する。
S203.PE1が、PE1デバイスが第1のESIが第2のESIと同じであると判断したことに応答して第1のエントリを生成し、第1のエントリがPE2のアドレスを含む。
PE1が第1のESIが第2のESIと同じであると判断すると、PE1は第1のエントリを生成し、第1のエントリはPE2のアドレスを含み、PE2のアドレスは、PE2によってPE1に送信されたメッセージに含まれる。第1のエントリは、PE1によってCE1に接続するために使用されるインターフェース104の識別子をさらに含んでいてもよく、この識別子はインターフェース104を問い合わせるために使用される。第1のエントリは、マルチホーム近傍テーブルと呼ばれ得る。第1のエントリは、後続の問い合わせのためのESI1をさらに含み得る。
前述のように、ループ問題を解決するために、PE1およびPE2が通常のデータサービスを開始する前に、PE1およびPE2が互いにルーティングメッセージを送信することを理解されたい。したがって、同じ手順に基づき、S201〜S203を参照してPE2上で第2のエントリはしかるべく生成されることができ、第2のエントリはPE1のアドレス、例えば、「1::100」を含む。第2のエントリは、PE2によってCE1に接続するために使用されるインターフェース105の識別子をさらに含んでいてもよく、この識別子はインターフェース105を問い合わせるために使用される。第2のエントリは、マルチホーム近傍テーブルと呼ばれ得る。第2のエントリは、後続の問い合わせのためのESI1をさらに含み得る。
S204.PE2がPE1にデータパケットを送信する。
データパケットの送信元アドレスは、PE2のアドレス、例えば、PE2のIPv6アドレスであり得る。例えば、送信元アドレスは、PE2によってPE1とのBGPピア関係を確立するために使用されるアドレスであり、これは、近傍関係を確立するためのPE2のアドレスと呼ばれる。PE2によってPE1に送信されたデータパケットは、PE3によって送信され、PE2によって受信されるCE1に送信されるべきデータパケットであり得る。PE2が、PE3によって送信されるCE1に送信されるべきデータパケットを受信すると、PE2は、構文解析によって、データパケットの宛先アドレスが「2::1」であると判断することができる。
任意選択で、PE3によって送信されたデータパケットを受信した後、PE2は、ローカルインターフェース105に障害があるかどうかを判断することができる。ローカルインターフェース105に障害がない場合、PE2は、ローカルインターフェース105を介してCE1にデータパケットを送信し得る。ローカルインターフェース105に障害がある場合、PE2は、非ローカルインターフェース108を介してPE1にデータパケットを送信して、データパケットを、PE1を介してCE1に送信しようと試み得る。例えば、PE3によって送信されたデータパケットを受信した後、PE2は、EVPLと関連付けられたSID値「2::1」と関連付けられた操作を行い、操作は、SID値「2::1」と関連付けられたエントリy2を決定することであって、エントリy2がSID値「2::1」と、データパケットをCE1に送信するために使用されることができるPE2上のすべてのインターフェースとを含む、ことと、エントリy2に基づいて、PE2のローカルインターフェース105に障害があると判断することと、を含む。PE2は、データパケットの宛先アドレスとしてPE1上のEVPLと関連付けられた値「1::1」を使用して、インターフェース108を介してPE1に、CE1に送信されるべきデータパケットを送信して、FRRを実施するためにPE1をトリガしてデータパケットをローカルインターフェース104に転送させようと試み得る。PE2は、データパケットの送信元アドレスをPE2のアドレス、例えば、PE2の近傍確立アドレス、例えば、「2::100」として設定する。
任意選択で、データパケットを受信した後、PE2は、PE2のローカルインターフェース105に障害があるかどうかを判断せず、ただし代わりに、データパケットの宛先アドレスとしてPE1上のEVPLと関連付けられた値「1::1」を使用して、インターフェース108を介してPE1に、CE1に送信されるべきデータパケットを送信して、FRRを実施するためにPE1をトリガしてデータパケットをローカルインターフェース104に転送させようと試み得る。データパケットの送信元アドレスは「2::100」であってもよく、データパケットの宛先アドレスは「1::1」であってもよい。
S205.PE1が、PE2によって送信されたデータパケットを受信する。
S206.PE1が、データパケットの送信元アドレスが第1のエントリ内のPE2のアドレスと同じであると判断する。
PE1は、PE2によって送信されたデータパケットを受信し、データパケットの送信元アドレス「2::100」を取得し、送信元アドレスが第1のエントリに格納されたPE2のアドレスと同じであると判断する。例えば、PE1は、データパケットの送信元アドレス「2::100」は、PE1上で第1のエントリに含まれるアドレス「2::100」と同じであると判断することができる。
S207.PE1が、PE1がデータパケットの送信元アドレスは第1のエントリ内のPE2のアドレスと同じであると判断したことに応答してPE2にデータパケットを送信することを回避する。
PE1が、データパケットの送信元アドレスは第1のエントリ内のPE2のアドレスと同じであると判断すると、PE1は、CE1に送信されるべきデータパケットをPE2に転送することを回避し、言い換えると、PE1は、データパケットを非ローカルインターフェース108に送信することを回避し、例えば、PE1はデータパケットをマークし、PE1が後でインターフェース108に複数のデータパケットを送信するときに、マークされたデータパケットを除外する。さらに、PE1は、PE1に格納されたCE1までのメインパス、すなわち、ローカルインターフェース104を介してCE1にデータパケットを送信し得る。ローカルインターフェース104に障害がある場合、言い換えると、メインパスに障害がある場合、PE1はデータパケットを廃棄する。
任意選択で、データパケットの送信元アドレスが第1のエントリ内のPE2のアドレスと異なる場合、PE1は、データパケットの宛先アドレス「1::1」に基づいて、EVPLと関連付けられたSID値「1::1」と関連付けられた前述の操作を行う。
したがって、S204で、PE2がローカルインターフェース105に障害があると判断した場合、PE2はデータパケットをPE1に転送する。PE1は、データパケットを受信した後のローカルインターフェース104の状態を判断することができる。ローカルインターフェース104に障害がない場合、PE1は、ローカルインターフェース104を介してデータパケットを送信して転送を完了し得る。ローカルインターフェース104に障害がある場合、PE1は、PE2にデータパケットを送信することを回避することができる。具体的には、PE1は、データパケットの送信元アドレスがPE2のアドレスと同じであると判断し、データパケットをインターフェース108に送信することを回避し、例えば、PE1はデータパケットを廃棄する。したがって、PE1のローカルインターフェース104とPE2のローカルインターフェース105の両方に障害がある場合にPE1とPE2との間の連続したトラフィックループが回避される。
本出願の実施形態では、PE1がPE2によって送信されたデータパケットを受信したときに、第2のPEデバイスのアドレスを含む、PE1に格納された第1のエントリと、データパケットに含まれる送信元アドレスとに基づいて、PE1は、PE2にデータパケットを送信することを回避することができるので、トラフィックループが形成されず、それによって、ネットワークリソースの無駄を回避し、PEデバイスの性能に影響を及ぼすことを回避する。
本出願では、障害のあるインターフェースとは、インターフェースに障害があり、例えば、インターフェースの機能が異常であることを意味し得るか、またはインターフェースに接続されたACに障害があり、例えば、ACが切断されていることを意味し得ることを理解されたい。PEデバイスは、インターフェース状況情報を格納し得る。PEデバイスが、インターフェースに障害があること、例えば、インターフェースの物理ポートによって受信された物理信号が中断されるか、またはインターフェースによって受信されたデータパケットのビット誤り率が閾値を上回ることを検出した場合、PEデバイスは、PEデバイスに格納されたインターフェース状況情報を更新し、例えば、インターフェースに障害があるとマークし得る。PEデバイスは、格納されたインターフェース状況情報に基づいてローカルインターフェースまたは非ローカルインターフェースに障害があるかどうかを判断することができる。PEがインターフェースに障害があるかどうかを判断する前述の方法は一例にすぎない。
PE1が、PE1によってCE1に接続するために使用されるインターフェースに障害があると判断した後、PE1は、データパケットの送信元アドレスが第1のエントリ内のPE2のアドレスと同じであると判断する。PE1が、PE1によってCE1に接続するために使用されるインターフェースが正常である、言い換えると、PE1からCE1までのメインパスに障害がないと判断した場合、PE1は、PE1によってCE1に接続するために使用されるインターフェースを介してデータパケットを送信してもよく、データパケットの送信元アドレスが第1のエントリ内のPE2のアドレスと同じであるかどうかを判断しなくてもよい。これにより、通信中にPE1によってデータパケットを送信する効率を改善し、ネットワークリソースをさらに節約し得る。
図3は、本出願の一実施形態による別のSRv6 EVPNデュアルアクティブシナリオの概略図である。図3に示されるネットワークは、マルチポイントツーマルチポイント(multipoint to multipoint、MP2MP)サービスにおけるユニキャストサービスを提供し得る。図3に示されるネットワークは、ホスト1、ホスト2、ホスト3、ホスト4、ホスト5、およびホスト6と、CEデバイスCE1およびCE2と、PEデバイスPE1、PE2、およびPE3と、を含む。ホスト1、ホスト2、およびホスト3はCE1に接続されており、ホスト4、ホスト5、およびホスト6はCE2に接続されており、PE1、PE2、およびPE3は、それぞれ、アタッチメント回路AC301、AC302、およびAC303を介してCE1、CE1、およびCE3に接続されており、PE1、PE2、およびPE3は、それぞれ、インターフェース304、305、および406を介してアタッチメント回路AC301、AC302、およびAC303に接続されている。インターフェース304、305、および306はすべてローカルインターフェースであり、インターフェース307および308は非ローカルインターフェースである。PE1はインターフェース307を介してPE2に接続されており、PE2はインターフェース308を介してPE1に接続されており、PE3はインターフェース309を介してPE1に接続されており、PE3はインターフェース310を介してPE2に接続されている。AC101およびAC102は同じイーサネットセグメントに属し、このイーサネットセグメントの識別子は「ESI1」であり得る。AC103は別のイーサネットセグメントに属し、この別のイーサネットセグメントの識別子は「ESI2」であり得る。一例では、PE1、PE2、およびPE3は以下のように構成される。
PE2:インターフェース305のESI属性値は「ESI1」である。インターフェース305は、処理モジュールBD2と関連付けられている。PE2上のパケット処理機能は、BD2によって実施され得る。例えば、構成プロセスは以下のとおりである。インターフェース304のESI属性値は「ESI1」であり、ユニキャストサービスと関連付けられたSIDは「1::1」である。例えば、具体的な構成プロセスは以下のとおりである。インターフェース304のESI属性値は「ESI1」として構成され、インターフェース304と関連付けられた処理モジュールは「BD1」として構成され、BD1と関連付けられたSIDは「1::1」として構成され、PE1上のユニキャストサービスに関連したデータを処理するために使用される処理モジュールBD1と関連付けられたSIDは、「1::1」として構成され、これは、PE1上のユニキャストサービスと関連付けられたSIDを「1::1」として構成することと等価である。
例えば、具体的な構成プロセスは以下のとおりである。インターフェース305のESI属性値は「ESI1」として構成され、インターフェース305と関連付けられた処理モジュールは「BD2」として構成され、BD2と関連付けられたSIDは「2::1」として構成され、PE2上のユニキャストサービスに関連したデータを処理するために使用される処理モジュールBD2と関連付けられたSIDは、「2::1」として構成され、これは、PE2上のユニキャストサービスと関連付けられたSIDを「2::1」として構成することと等価である。
PE3:インターフェース306のESI属性値は「ESI2」である。インターフェース306は、処理モジュールBD3と関連付けられている。PE3上のパケット処理機能は、BD3によって実施され得る。例えば、具体的な構成プロセスは以下のとおりである。インターフェース306のESI属性値は「ESI2」として構成され、インターフェース306と関連付けられた処理モジュールは「BD3」として構成され、BD3と関連付けられたSIDは「3::1」として構成され、PE3上のユニキャストサービスに関連したデータを処理するために使用される処理モジュールBD3と関連付けられたSIDは、「3::1」として構成され、これは、PE3上のユニキャストサービスと関連付けられたSIDを「3::1」として構成することと等価である。
このシナリオでは、ユニキャストサービスおよびデュアルアクティブモードを提供するために、PE1、PE2、およびPE3が互いにルーティングメッセージを送信し、ルーティングメッセージはBGPメッセージであり得る。EVPN内の1つのCEデバイスがどのようにして複数のPEデバイスにマルチホームされることができるか、および複数のPEデバイスがどのようにしてオールアクティブモードにされることができるかを説明している、IETFドラフト“EVPN All Active Usage Enhancement,draft−eastlake−bess−enhance−evpn−all−active−00.txt”を参照されたい。オールアクティブモードは、オールアクティブ冗長モードとも呼ばれ得る。
図4は、本出願の一実施形態によるMAC転送テーブル内のエントリの概略図である。PE1、PE2、およびPE3はすべて、MAC転送テーブルを格納し得る。一例では、PE1は、ホスト1のMACアドレスMAC1を、ローカルインターフェース304を介してCE1から知り、PE1上のMAC転送テーブルにエントリ401を生成することができ、エントリ401は、MAC1、ローカルインターフェース304の識別子、およびローカルインターフェース304のESI属性値「ESI1」を含む。PE1は、PE2およびPE3にルーティングメッセージRm1を送信し、ルーティングメッセージRm1は、エントリ401と、前述のドラフト“EVPN All Active Usage Enhancement,draft−eastlake−bess−enhance−evpn−all−active−00.txt”に記載されている仮想ローカルエリアネットワークリダイレクト拡張コミュニティ“VLAN−Redirect−Extended Community”属性とを含む。
一例では、ルーティングメッセージRm1を受信した後、PE2は、エントリ401内のESI1に基づいて、PE2のローカルインターフェース、すなわち、PE2によってCE1に接続するために使用されるインターフェース305を見つけ、高速リルート(fast reroute、FRR)エントリ402、すなわち、PE2上のMAC転送テーブル内のエントリ402を生成し得る。エントリ402は、MAC1、データパケットを、メインパスを介してCE1に送信するために使用されるローカルインターフェース305の識別子、ESI1、およびデータパケットを、修復パスを介してCE1に送信するために使用されるインターフェース308の識別子を含む。PE2上のメインパスは、PE2からローカルインターフェース305を介してCE1までであり、修復パスは、PE2からインターフェース308およびPE1を介してCE1までである。修復パスは、PE2からPE1を介してCE1までのパスである。本出願では、修復パスはスタンバイ(standby)パスとも呼ばれ得る。
PE2は、PE1およびPE3にルーティングメッセージRb2を送信してもよく、ルーティングメッセージRb2は、ADルートA2、およびタイプが「2」であるSRv6−VPN SID属性を含む。ADルートA2はESIフィールドを含み、ADルートA2のESIフィールドの値は、PE2上で構成されたインターフェース405のESI属性値ESI1である。図3に示される以下のシナリオでは、タイプが「2」であるSRv6−VPN SID属性の値はユニキャスト属性値と呼ばれる。ユニキャスト属性値は、ピアデバイスに、ユニキャストサービスと関連付けられ、ローカルデバイス上で構成されるSIDを通知するために使用され得る。ルーティングメッセージRb2内のユニキャスト属性値は、ユニキャストサービスと関連付けられ、PE2上で構成されるSID値「2::1」である。
PE1は、インターフェース307を介して、PE2によって送信されたルーティングメッセージRb2を受信し、ルーティングメッセージRb2内のESI1がPE1によって生成されたエントリ401内のESI1と同じであると判断し、PE1は、PE2がPE1のバックアップデバイスであると判断する。図4を参照すると、PE1は、エントリ401と、ルーティングメッセージRb2を受信するインターフェース307と、ルーティングメッセージRb2内のユニキャスト属性値「2::1」とに基づいてエントリ403を生成する。エントリ403は、MAC1、ローカルインターフェース304の識別子、ESI1、インターフェース307の識別子、および「2::1」を含む。
同様に、PE1も、PE2およびPE3にルーティングメッセージRb1を送信してもよく、ルーティングメッセージRb1は、ADルートA1およびユニキャスト属性を含み、ADルートA1はESIフィールドを含み、ADルートA1のESIフィールドの値は、PE1上で構成されたインターフェース304のESI属性値ESI1であり、ルーティングメッセージRb1内のユニキャスト属性値は、ユニキャストサービスと関連付けられ、PE1上で構成されるSID値「1::1」である。PE2は、インターフェース308を介して、PE1によって送信されたルーティングメッセージRb1を受信し、ルーティングメッセージRb1内のESI1がPE2によって生成されたエントリ402内のESI1と同じであると判断し、PE2は、PE1がPE2のバックアップデバイスであると判断する。図3を参照すると、PE2は、エントリ402と、ルーティングメッセージRb1内のユニキャスト属性値「1::1」とに基づいてエントリ404を生成する。エントリ404は、MAC1、ローカルインターフェース305の識別子、ESI1、インターフェース308の識別子、および「1::1」を含む。
インターフェース309を介して、PE1によって送信されたルーティングメッセージRm1を受信した後、PE3は、PE3上のMAC転送テーブルにエントリ405を生成してもよく、エントリ405は、MAC1、ESI1、およびインターフェース309の識別子を含む。
インターフェース309を介して、PE1によって送信されたルーティングメッセージRb1を受信した後、PE3は、ルーティングメッセージRb1内のESIがPE3によって生成されたエントリ405内のESIと同じであると判断することができ、エントリ505と、ルーティングメッセージRb1内のユニキャスト属性値「1::1」とに基づいてエントリ406を生成し得る。エントリ406は、MAC1、ESI1、インターフェース309の識別子、および「1::1」を含む。インターフェース310を介して、PE2によって送信されたルーティングメッセージRb2を受信した後、PE3は、ルーティングメッセージRb2内のESIがエントリ406内のESI、すなわち、PE1から受信されたルーティングメッセージRb1内のESIと同じであると判断することができる。したがって、PE3は、PE2のローカルインターフェースとPE1のローカルインターフェースとが同じイーサネットセグメントの属する、言い換えると、PE2とCE1との間の接続とPE1とCE1との間の接続とが同じイーサネットセグメントに属すると判断することができる。言い換えると、PE3は、PE2がPE1のバックアップデバイスであると判断することができる。PE3は、エントリ506と、ルーティングメッセージRb2内のユニキャスト属性値「2::1」とに基づいてエントリ409を生成し得る。エントリ409は、MAC1、ESI1、インターフェース309の識別子、「1::1」、インターフェース310の識別子、および「2::1」を含む。PE3が、CE2によって転送された「MAC1」の宛先MACアドレスを有するデータパケットを受信すると、PE3は、MAC1に基づいてMAC転送テーブルを探索し、エントリ409に基づいてPE1またはPE2にデータパケットを送信することを選択し得る。PE3は、データパケットの宛先アドレスを「1::1」として設定し、PE1をトリガしてユニキャストサービスを提供させるために、言い換えると、PE1をトリガしてデータパケットをCE1に転送させるために、「1::1」の宛先アドレスを有するデータパケットを、インターフェース309を介してPE1に送信し得る。あるいは、PE3は、データパケットの宛先アドレスを「2::1」として設定し、PE2をトリガしてユニキャストサービスを提供させるために、言い換えると、PE2をトリガしてデータパケットをCE1に転送させるために、「2::1」の宛先アドレスを有するデータパケットを、インターフェース310を介してPE2に送信してもよい。
PE2が、PE3によって転送された「2::1」の宛先アドレスおよび「MAC1」の宛先MACアドレスを有するデータパケットを受信すると、PE2は、SID値「2::1」と関連付けられた操作を行う。このシナリオでのSID値と関連付けられた操作については、IETFドラフトのセクション4.6“SRv6 Network Programming,draft−filsfils−spring−srv6−network−programming−04”に記載されているEnd.DT2Uの機能を参照されたい。End.DT2Uの機能は、宛先MACアドレスと一致するエントリ内のインターフェースを介してデータパケットを転送することを含む。End.DT2Uの機能によれば、PE2上のSID値「2::1」と関連付けられた操作は、データパケットを、MAC1と一致するエントリ404内のローカルインターフェース305およびインターフェース308を介して送信することを含む。PE1上のSID値「1::1」と関連付けられた操作は、データパケットを、MAC1と一致するエントリ403内のローカルインターフェース304およびインターフェース307を介して送信することを含む。図4を参照すると、エントリ404は、ローカルインターフェース305の識別子、インターフェース308の識別子、および「1::1」を含む。PE2は、まず、ローカルインターフェース305に障害があるかどうかを判断する。ローカルインターフェース305に障害がない場合、PE2は、ローカルインターフェース305を介してCE1にデータパケットを送信する。ローカルインターフェース305に障害がある場合、PE2は、PE1をトリガしてデータパケットをCE1に転送させるために、「1::1」の宛先アドレスを有するデータパケットを、インターフェース308を介してPE1に送信する。
PE1が、PE2によって送信された「1::1」の宛先アドレスおよび「MAC1」の宛先MACアドレスを有するデータパケットを受信した後、PE1は、SID値「1::1」と関連付けられた操作を行う。関連付けられた操作は、データパケットを、MAC1と一致するエントリ403内のローカルインターフェース304およびインターフェース307を介して送信することを含み得る。図4を参照すると、エントリ403は、ローカルインターフェース304の識別子、インターフェース307の識別子、および「2::1」を含む。PE1は、まず、ローカルインターフェース304に障害があるかどうかを判断する。ローカルインターフェース304に障害がない場合、PE1は、ローカルインターフェース304を介してCE1にデータパケットを送信する。ローカルインターフェース304に障害がある場合、PE1は、PE2をトリガしてデータパケットをCE1に転送させるために、「2::1」の宛先アドレスを有するデータパケットを、インターフェース307を介してPE2に送信する。したがって、PE1はPE2から送信されたデータパケットをPE2に送り返す。ゆえに、データパケット伝送ループが形成される。PE3がルート失効通知を受信するとき、新しいデータパケットがPE2に送信されない場合に限り新しいループが発生しなくなる。PE1またはPE2がルート失効通知を受信し、ピアデバイスまでのルートを失効させる場合に限り既存のループは取り除かれることができる。
ループ問題を解決するために、PE1およびPE2が通常のデータサービスを開始する前に、PE1およびPE2は互いにルーティングメッセージを送信する。ルーティングメッセージはBGPメッセージであってもよく、BGPメッセージは、ESIフィールドおよびプロバイダエッジデバイスのアドレスを含む、前述のES ADルートであってもよい。
ES ADルートは、ESIラベル拡張コミュニティ属性なしのイーサネット自動検出ルートと同時に送信され得るか、またはES ADルートは、ESIラベル拡張コミュニティ属性なしのイーサネット自動検出ルートが送信される前もしくは送信された後に送信され得ることを理解されたい。
本出願で提供される通信方法500を、図5を参照して以下で詳細に説明する。方法500は、図3に示されるシナリオに適用されてもよく、当然ながら、別の通信シナリオにも適用され得る。これは、本出願のこの実施形態では限定されない。方法500は、以下のステップを含む。
S501.PE2がPE1にメッセージを送信する。
メッセージは、例えば、第1のESIおよびPE2のアドレスを含む。S501はS201と同様であり、S201の説明を参照されたい。第1のESIは、PE2とCE1との間の接続が属するイーサネットセグメントを識別し得る。第1のESIは、例えば、ESI1であり、PE2とCE1との間の接続は、例えば、AC302である。イーサネットセグメントは、PE1とCE1との間の接続、例えば、AC301をさらに含む。
S502.PE1が、PE2によって送信されたメッセージを受信し、PE1が、第1のESIはPE1に格納された第2のESIと同じであると判断する。
第2のESIは、PE1とCE1との間の接続が属するイーサネットセグメントを識別し得る。第2のESIは、例えば、ESI1である。S502はS202と同様であり、S202の説明を参照されたい。
S503.PE1が、PE1デバイスが第1のESIが第2のESIと同じであると判断したことに応答して第1のエントリを生成し、第1のエントリがPE2のアドレスを含む。
S503はS203と同様であり、S203の説明を参照されたい。
S504.PE2がPE1にデータパケットを送信する。
データパケットの送信元アドレスは、PE2のアドレス、例えば、PE2のIPv6アドレスであり得る。例えば、送信元アドレスは、PE2によってPE1とのBGPピア関係を確立するために使用されるアドレスである。PE2によってPE1に送信されたデータパケットは、PE3によって送信され、PE2によって受信されるCE1に送信されるべきデータパケットであり得る。PE2が、PE3によって送信されるCE1に送信されるべきデータパケットを受信すると、PE2は、構文解析によって、データパケットの宛先アドレスが2::1であり、データパケットの宛先MACアドレスがMAC1であると判断することができる。
任意選択で、PE3によって送信されたデータパケットを受信した後、PE2は、ローカルインターフェース105に障害があるかどうかを判断することができる。ローカルインターフェース105に障害がない場合、PE2は、ローカルインターフェース105を介してCE1にデータパケットを送信し得る。ローカルインターフェース105に障害がある場合、PE2は、非ローカルインターフェース108を介してPE1にデータパケットを送信して、データパケットを、PE1を介してCE1に送信しようと試み得る。例えば、PE2が「2::1」の宛先アドレスを有するデータパケットを受信した後、PE2は、SID値「2::1」と関連付けられた操作を行い、操作は、データパケットを、MAC1と一致するエントリ404内のローカルインターフェース305およびインターフェース308を介して送信することを含む。エントリ404は、ローカルインターフェース305の識別子、インターフェース308の識別子、および「1::1」を含む。PE2は、ローカルインターフェース305に障害があると判断し、PE1をトリガしてデータパケットをCE1に転送させるために、「1::1」の宛先アドレスを有するデータパケットを、インターフェース308を介してPE1に送信する。PE2によってPE1に送信されるデータパケットの送信元アドレスは2:100であってもよく、宛先アドレスは、「1::1」であってもよく、宛先MACアドレスはMAC1であってもよい。
任意選択で、PE2は、データパケットを受信した後にローカルインターフェース305に障害があると判断せず、ただし代わりに、PE1をトリガしてデータパケットをCE1に転送させるために、データパケットを、エントリ404のインターフェース308のインターフェース識別子に基づいてインターフェース308を介して直接PE1に送信する。PE2によってPE1に送信されるデータパケットの送信元アドレスは2::100であってもよく、宛先アドレスは、「1::1」であってもよく、宛先MACアドレスはMAC1であってもよい。
S505.PE1が、PE2によって送信されたデータパケットを受信する。
S506.PE1が、データパケットの送信元アドレスが第1のエントリ内のPE2のアドレスと同じであると判断する。
PE1は、PE2によって送信されたデータパケットを受信し、データパケットの送信元アドレス「2::100」を取得し、送信元アドレスが第1のエントリに格納されたPE2のアドレスと同じであると判断する。例えば、PE1は、データパケットの送信元アドレス「2::100」は、PE1上で第1のエントリに含まれるアドレス「2::100」と同じであると判断することができる。
S507.PE1が、PE1がデータパケットの送信元アドレスは第1のエントリ内のPE2のアドレスと同じであると判断したことに応答してPE2にデータパケットを送信することを回避する。
PE1が、データパケットの送信元アドレスは第1のエントリ内のPE2のアドレスと同じであると判断すると、PE1は、CE1に送信されるべきデータパケットをPE2に転送することを回避し、言い換えると、PE1は、データパケットを非ローカルインターフェース308に送信することを回避し、例えば、PE1はデータパケットをマークし、PE1が後でインターフェース308に複数のデータパケットを送信するときに、マークされたデータパケットを除外する。さらに、PE1が、宛先MACアドレスMAC1と一致するエントリ403内のローカルインターフェース304の識別子に基づいてローカルインターフェース304に障害がないと判断すると、PE1は、データパケットを、ローカルインターフェース304を介してCE1に送信し得る。ローカルインターフェース304に障害がある場合、PE1はデータパケットを廃棄する。
任意選択で、データパケットの送信元アドレスが第1のエントリ内のPE2のアドレスと異なる場合、PE1は、データパケットの宛先アドレス「1::1」に基づいてSID値と関連付けられた操作を行い、操作は、PE1が、まず、ローカルインターフェース304に障害があるかどうかを判断することと、ローカルインターフェース304に障害がない場合、PE1が、ローカルインターフェース304を介してCE1にデータパケットを送信することと、ローカルインターフェース304に障害がある場合、PEが、PE2をトリガしてデータパケットをCE1に転送させるために、「2::1」の宛先アドレスを有するデータパケットを、インターフェース307を介してPE2に送信することと、を含む。
したがって、S504で、PE2がローカルインターフェース305に障害があると判断した場合、PE2はデータパケットをPE1に転送する。PE1は、データパケットを受信した後のローカルインターフェース304の状態を判断することができる。ローカルインターフェース304に障害がない場合、PE1は、転送を完了するためにローカルインターフェース304を介してデータパケットを送信し得る。ローカルインターフェース304に障害がある場合、PE1は、PE2にデータパケットを送信することを回避することができる。具体的には、PE1は、データパケットの送信元アドレスはPE2のアドレスと同じであると判断し、データパケットをインターフェース308に送信することを回避し、例えば、PE1はデータパケットを廃棄する。したがって、PE1のローカルインターフェース304とPE2のローカルインターフェース305の両方に障害がある場合にPE1とPE2との間の連続したトラフィックループが回避される。
本出願の実施形態では、PE1がPE2によって送信されたデータパケットを受信したときに、第2のPEデバイスのアドレスを含む、PE1に格納された第1のエントリと、データパケットに含まれる送信元アドレスとに基づいて、PE1は、PE2にデータパケットを送信することを回避することができるので、トラフィックループが形成されず、それによって、ネットワークリソースの無駄を回避し、PEデバイスの性能に影響を及ぼすことを回避する。
図6は、本出願の一実施形態による別のSRv6 EVPNデュアルアクティブシナリオの概略図である。図6に示されるネットワークは、マルチポイントツーマルチポイント(multipoint to multipoint、MP2MP)サービスにおけるブロードキャスト、不明なユニキャストおよびマルチキャスト(broadcast,unknown unicast and multicast、BUM)のトラフィック転送を提供し得る。図6に示されるネットワークは、CEデバイスCE1、CE2、およびCE3と、PEデバイスPE1、PE2、およびPE3とを含む。
PE1、PE2、およびPE3は、それぞれ、アタッチメント回路AC601、AC602、およびAC603を介してCE1、CE1、およびCE2に接続されており、PE1は、アタッチメント回路AC609を介してCE3に接続されている。PE1、PE2、およびPE3は、それぞれ、インターフェース604、605、および606を介してAC601、AC602、およびAC603に接続されており、PE1はインターフェース610を介してACインターフェース609に接続されている。インターフェース604、605、606、および610はすべてローカルインターフェースであり、インターフェース607および608は非ローカルインターフェースである。PE1はインターフェース607を介してPE2に接続されており、PE2はインターフェース608を介してPE1に接続されている。AC601およびAC602は第1のイーサネットセグメントに属し、第1のイーサネットセグメントの識別子は「ESI1」であり得る。AC603は第2のイーサネットセグメントに属し、第2のイーサネットセグメントの識別子は「ESI2」であり得る。AC609は第3のイーサネットセグメントに属し、第3のイーサネットセグメントの識別子は「ESI3」であり得る。一例では、PE1、PE2、およびPE3は以下のように構成される。
PE1:インターフェース604のESI属性値は「ESI1」であり、BUMサービスと関連付けられたSIDは「1::3」である。例えば、具体的な構成プロセスは以下のとおりである。インターフェース604のESI属性値は「ESI1」として構成され、インターフェース604と関連付けられた処理モジュールは「BUM1」として構成され、BUM1と関連付けられたSIDは「1::3」であり、PE1上でBUMサービスに関連したデータを処理するために使用される処理モジュールBUM1と関連付けられたSIDは「1::3」として構成され、これは、PE1上のBUMサービスと関連付けられたSIDを「1::3」として構成することと等価である。加えて、インターフェース610のESI属性値は「ESI3」であり、インターフェース610と関連付けられた処理モジュールは「BUM3」であり得る。
PE2:インターフェース605のESI属性値は「ESI1」である。インターフェース605は、処理モジュールBUM2と関連付けられている。PE2上のパケット処理機能は、BUM2によって実施され得る。例えば、具体的な構成プロセスは以下のとおりである。インターフェース605のESI属性値は「ESI1」として構成され、インターフェース605と関連付けられた処理モジュールは「BUM2」として構成され、BUM2と関連付けられたSIDは「2::3」として構成され、PE2上のユニキャストサービスに関連したデータを処理するために使用される処理モジュールBUM2と関連付けられたSIDは、「2::3」として構成され、これは、PE2上のユニキャストサービスと関連付けられたSIDを「2::3」として構成することと等価である。
PE3:インターフェース606のESI属性値は「ESI2」である。インターフェース606は、処理モジュールBUM3と関連付けられている。PE3上のパケット処理機能は、BUM3によって実施され得る。例えば、具体的な構成プロセスは以下のとおりである。インターフェース606のESI属性値は「ESI2」として構成され、インターフェース606と関連付けられた処理モジュールは「BUM3」として構成され、BUM3と関連付けられたSIDは「3::3」として構成され、PE3上のユニキャストサービスに関連したデータを処理するために使用される処理モジュールBUM3と関連付けられたSIDは、「3::3」として構成され、これは、PE3上のユニキャストサービスと関連付けられたSIDを「3::3」として構成することと等価である。
このシナリオでは、BUMサービスおよびデュアルアクティブモードを提供するために、PE1、PE2、およびPE3が互いにルーティングメッセージを送信し、ルーティングメッセージはBGPメッセージであり得る。BGPメッセージは、包括的なマルチキャストイーサネットタグルート(Inclusive Multicast Ethernet Tag Route、IMET)およびSRv6−VPN SID属性を含み得る。図6に示される以下のシナリオでは、タイプが「2」であるSRv6−VPN SID属性の値はBUM属性値と呼ばれる。BUM属性値は、ピアデバイスに、BUMサービスと関連付けられ、ローカルデバイス上で構成されるSIDを通知するために使用され得る。
一例では、PE1はIMETルートI1を生成し、PE1はPE2およびPE3に、I1およびBUM属性値を搬送するルーティングメッセージR4を送信し、BUM属性値は「1::3」であり、BUM属性値が使用されてPE2およびPE3に、PE1上のBUMと関連付けられたSID値が「1::3」であることを通知することができる。同様に、PE2はIMETルートI2を生成し、PE2はPE1およびPE3に、I2およびBUM属性値を搬送するルーティングメッセージR5を送信し、BUM属性値は「2::3」である。PE3はIMETルートI3を生成し、PE3はPE1およびPE2に、I3およびBUM属性値を搬送するルーティングメッセージR6を送信し、BUM属性値は「3::3」である。
PE2によって送信されたルーティングメッセージR5を受信した後、PE1はエントリt1を確立し、エントリt1はSID「2::3」を含む。PE3によって送信されたルーティングメッセージR6を受信した後、PE1はエントリt1にSID「3::3」を付加する。PE1はCE1によって送信されたデータパケットを受信し、PE1は、データパケットをPE2およびPE3に転送し得る。エントリt1は、BUMトラフィックが転送されるときにデータパケットを転送するために使用され、BUM転送テーブルとも呼ばれ得る。BUMトラフィックが転送されるときに使用されるデータパケットは、BUMパケットとも呼ばれ得る。同様に、エントリt2およびエントリt3がPE2およびPE3でそれぞれ確立され、PE2上のエントリt2は、SID「1::3」およびSID「3::3」を含み、PE3上のエントリt3は、SID「1::3」およびSID「2::3」を含む。
このシナリオでは、ネットワークは、マルチポイントツーマルチポイントサービスにおけるユニキャストサービスを提供し得ること、言い換えると、ユニキャストサービスに関連したデータを処理するために使用される処理モジュールBDとBUMサービスに関連したデータを処理するために使用される処理モジュールBUMの両方がPEデバイス上で提供され得ることを理解されたい。ユニキャストサービスに関連したデータを処理するために使用される処理モジュールBDの詳細な構成プロセスについては、図4および図5の関連する説明を参照されたい。ここでは詳細は再度説明されない。
BUMトラフィック転送の特性は以下のとおりである。PEデバイスが非ローカルインターフェースから別のPEデバイスによって送信されたBUMトラフィックを受信すると、PEデバイスはそのBMUトラフィックをすべてのローカルインターフェースに転送し、PEデバイスがローカルインターフェースからCEデバイスによって送信されたBUMトラフィックを受信すると、PEデバイスはそのBUMトラフィックをすべてのその他のローカルインターフェースおよびすべての非ローカルインターフェースに転送し得る。
前述のシナリオでは、PE1およびPE2が、ピアデバイスによって送信されたルーティングメッセージに基づいてデータパケットの転送を決定するときに、PE1およびPE2は、データパケットの転送を、BUM属性値、すなわち、ピアデバイス上のBUMと関連付けられた値に基づいて決定すると想定される。
次いで、PE2が、ローカルインターフェース602から、CE1によって送信されたデータパケットを受信するときに、PE2は、BUMと関連付けられたSID値「2::3」と関連付けられた操作を行い、操作は、SID値「2::3」と関連付けられたエントリt2を決定することと、エントリt2に基づいて転送宛先アドレスのSID値「1::3」およびSID値「3::3」を決定することとを含み、PE2は、PE2上のBUMと関連付けられた値「1::3」および値「3::3」をデータパケットの宛先アドレスとしてそれぞれ使用してPE1およびPE3にデータパケットを送信する。PE1が、非ローカルインターフェース607から、PE2によって送信されたデータパケットを受信した後、PE1はデータパケットをローカルインターフェース607および610に、すなわち、CEデバイスCE1およびCE3に送信し、言い換えると、PE1はCE1によって送信されたデータパケットをCE1に送り返す。ゆえに、データパケット伝送ループが形成される。ループ問題は、ネットワークリソースの無駄を生じさせ、CEデバイスの性能に影響を及ぼし得る。
ループ問題を解決するために、PE1およびPE2が通常のデータサービスを開始する前に、PE1およびPE2は互いにルーティングメッセージを送信する。ルーティングメッセージはBGPメッセージであってもよく、BGPメッセージは、ESIフィールドおよびプロバイダエッジデバイスのアドレスを含む、前述のES ADルートであってもよい。
ES ADルートは、ESIラベル拡張コミュニティ属性なしのイーサネット自動検出ルートと同時に送信され得るか、またはES ADルートは、ESIラベル拡張コミュニティ属性なしのイーサネット自動検出ルートが送信される前もしくは送信された後に送信され得ることを理解されたい。
本出願で提供される通信方法700が、図7を参照して以下で詳細に説明される。方法700は、図7に示されるシナリオに適用されてもよく、当然ながら、別の通信シナリオにも適用され得る。これは、本出願のこの実施形態では限定されない。方法700は、以下のステップを含む。
S701.PE2がPE1にメッセージを送信する。
メッセージは、例えば、第1のESIおよびPE2のアドレスを含む。S701はS201と同様であり、S201の説明を参照されたい。
S702.PE1が、PE2によって送信されたメッセージを受信し、PE1が、第1のESIはPE1に格納された第2のESIと同じであると判断する。
第2のESIは、PE1とCE1との間の接続が属するイーサネットセグメントを識別し得る。第2のESIは、例えば、ESI1である。S702はS202と同様であり、S202の説明を参照されたい。
S703.PE1が、PE1デバイスが第1のESIが第2のESIと同じであると判断したことに応答して第1のエントリを生成し、第1のエントリがPE2のアドレスを含む。
S703はS203と同様であり、S203の説明を参照されたい。
メッセージはESI3を含まず、したがってPE1はESI3を含む第3のエントリを確立しないことを理解されたい。
S704.PE2がPE1にデータパケットを送信する。
データパケットの送信元アドレスは、PE2のアドレス、例えば、PE2によってPE1とのBGPピア関係を確立するために使用されるアドレスであり得る。PE2によってPE1に送信されたデータパケットは、PE2によって受信されるCE1によって送信されたデータパケットであり得る。PE2がCE1によって送信されたBUMパケットを受信すると、PE2は、BUMと関連付けられたSID値「2::3」と関連付けられた操作を行い、操作は、SID値「2::3」と関連付けられたエントリt2を決定することであって、エントリt2がSID「1::3」およびSID「3::3」を含む、こと、を含み、PE2は、エントリt2内のSIDに基づいてPE1およびPE3にデータパケットを転送する。PE2によってPE1に転送されるデータパケットの送信元アドレスは「2::100」であり、宛先アドレスは「1::3」であり、PE2によってPE3に転送されるデータパケットの送信元アドレスは「2::100」であり、宛先アドレスは「3::3」である。
S705.PE1が、PE2によって送信されたデータパケットを受信する。
S706.PE1が、データパケットの送信元アドレスが第1のエントリ内のPE2のアドレスと同じであると判断する。
PE1が、PE2によって送信されたデータパケットを受信し、データパケットの送信元アドレス「2::100」を取得すると、PE1は、送信元アドレスが第1のエントリに格納されたPE2のアドレスと同じであると判断することができる。例えば、PE1は、データパケットの送信元アドレス「2::100」は、PE1上で第1のエントリに含まれるアドレス「2::100」と同じであると判断することができる。
S707.PE1が、PE1がデータパケットの送信元アドレスは第1のエントリ内のPE2のアドレスと同じであると判断したことに応答してPE2にデータパケットを送信することを回避する。
PE1が、データパケットの送信元アドレスは第1のエントリ内のPE2のアドレスと同じであると判断すると、PE1は、データパケットをCE1に送信することを回避し、言い換えると、PE1は、データパケットをローカルインターフェース604に送信することを回避し、例えば、PE1はデータパケットをマークし、PE1が後でインターフェース604に複数のデータパケットを送信するときに、マークされたデータパケットを除外する。さらに、PE1は、データパケットをインターフェース610、すなわちCE3にさらに転送し得る。言い換えると、ESI1によって識別されるイーサネットセグメントのループがブロックされている間に別のイーサネットセグメントのBUMトラフィックの転送は影響を受けない可能性があり、そのためトラフィックループが回避される。
任意選択で、データパケットの送信元アドレスが第1のエントリ内のPE2のアドレスと異なる場合、PE1は、SID値「1::3」と関連付けられた操作を行い、操作は、データパケットを、インターフェース604やインターフェース610などのすべてのローカルインターフェースに送信すること、を含む。
本出願のこの実施形態では、BUMパケットを受信すると、PE1は、PE2のアドレスを含み、PE1に格納されるエントリと、BUMパケットの送信元アドレスとに基づいて、BUMパケットの送信元アドレスがエントリ内のPE2のアドレスと同じであると判断し、BUMパケットをCE1に送信することを回避することができるので、トラフィックループが形成されず、それによって、ネットワークリソースの無駄を回避し、CEデバイスの性能に影響を及ぼすことを回避する。
任意選択で、PE1はインターフェース情報を格納し、インターフェース情報は、ローカルインターフェースを識別するために使用されるインターフェース識別子、およびローカルインターフェースのESI属性値を含み得る。インターフェース識別子はESI属性値に対応するので、インターフェース識別子は、ESI属性値に基づいて見つけられ得る。PE1に格納された第2のESIは、インターフェース情報内のESI属性値であり得る。例えば、ローカルインターフェースのインターフェース識別子は、例えば、インターフェース604の識別子であり、PE1に格納された第2のESIは、例えば、インターフェース604のESI属性値「ESI1」である。PE1が、PE2によって送信されたメッセージ内の第1のESIがPE1に格納された第2のESIと同じであると判断した後、PE1は、対応するインターフェース識別子、すなわち、インターフェース604のインターフェース識別子を、第2のESIの値「ESI1」に基づいてインターフェース情報において見つけることができる。したがって、PE1によって生成された第1のエントリは、PE2のアドレスに加えてインターフェース識別子も含み得る。その送信元アドレスがPE2のアドレスであるデータパケットを受信した後、PE1は、データパケットの送信元アドレスに基づいて第1のエントリを探索し、インターフェース604のインターフェース識別子を決定し、次いで、インターフェース識別子によって識別されるインターフェース604にデータパケットを送信することを回避し得る。PE1によって生成された第1のエントリは、PE2のアドレスとインターフェース604の識別子との間の対応関係を格納する。PE1は、PE2のアドレスとインターフェース610の識別子との間の対応関係を格納しない。したがって、PE1は、データパケットをインターフェース610、すなわち、CE3にさらに転送することができる。言い換えると、別のイーサネットセグメント(例えば、ESI3によって識別されるイーサネットセグメント)のBUMトラフィックの転送は、ESI1によって識別されるイーサネットセグメントのループがブロックされている間に影響を受けない可能性がある。第1のエントリは、問い合わせのためにイーサネットセグメント識別子ESI1をさらに含み得る。
図8は、本出願による通信機器800の概略ブロック図である。図8に示されるように、通信機器800は、
第2のPEデバイスによって送信されたメッセージを受信し、メッセージが、第1のイーサネットセグメント識別子ESIおよび第2のPEデバイスのアドレスを含み、第1のESIが、第2のPEデバイスとカスタマエッジCEデバイスとの間の接続が属するイーサネットセグメントを識別するために使用される、ように構成される、受信モジュール810と、
第1のESIが第1のPEデバイスに格納された第2のESIと同じであると判断し、第2のESIが、第1のPEデバイスとCEデバイスとの間の接続が属するイーサネットセグメントを識別するために使用される、ように構成される、判断モジュール820と、
第1のESIが第2のESIと同じであると判断したことに応答してエントリを生成し、エントリが第2のPEデバイスのアドレスを含む、ように構成される、処理モジュール830と
の各モジュールを含み、
受信モジュール810は、第2のPEデバイスによって送信されたデータパケットを受信するようにさらに構成され、
判断モジュール820は、データパケットの送信元アドレスがエントリ内の第2のPEデバイスのアドレスと同じであると判断するようにさらに構成され、
処理モジュール830は、データパケットの送信元アドレスがエントリ内の第2のPEデバイスのアドレスと同じであると判断したことに応答して第2のPEデバイスにデータパケットを送信することを回避するようにさらに構成される。
任意選択で、受信モジュール810、判断モジュール820、および処理モジュール830は、本出願の通信方法200、通信方法500、および通信方法700の動作を行うように構成される。簡潔にするために、ここでは詳細は述べられない。
通信機器800は方法実施形態におけるPE1に完全に対応し、対応するモジュールが対応するステップを行う。詳細については、対応する方法実施形態を参照されたい。
図9は、本出願による通信機器900の概略ブロック図である。図9に示されるように、通信機器900は、
第2のイーサネットセグメント識別子ESIを格納し、第2のESIが、第1のPEデバイスとカスタマエッジCEデバイスとの間の接続が属するイーサネットセグメントを識別するために使用される、ように構成される、メモリ910と、
第2のPEデバイスによって送信されたメッセージを受信し、メッセージが、第1のイーサネットセグメント識別子ESIおよび第2のPEデバイスのアドレスを含み、第1のESIが、第2のPEデバイスとCEデバイスとの間の接続が属するイーサネットセグメントを識別するために使用される、ように構成される、プロセッサ920と
を含み、
プロセッサ920は、第1のESIが第2のESIと同じであると判断するようにさらに構成され、
プロセッサ920は、第1のESIが第2のESIと同じであると判断したことに応答してエントリを生成するようにさらに構成され、エントリは第2のPEデバイスのアドレスを含み、
プロセッサ920は、第2のPEデバイスによって送信されたデータパケットを受信するようにさらに構成され、
プロセッサ920は、データパケットの送信元アドレスがエントリ内の第2のPEデバイスのアドレスと同じであると判断するようにさらに構成され、
プロセッサ920は、データパケットの送信元アドレスがエントリ内の第2のPEデバイスのアドレスと同じであると判断したことに応答して第2のPEデバイスにデータパケットを送信することを回避するようにさらに構成される。
通信機器900、第2のPEデバイス、およびCEデバイスは、それぞれ、本出願の通信方法200、通信方法500、または通信方法700のPE1、PE2、およびCE1であり得る。第1のESIの値は、例えば、ESI1であり、エントリは、例えば、第1のエントリである。通信機器900は方法実施形態におけるPE1に完全に対応し、対応するモジュールが対応するステップを行う。詳細については、対応する方法実施形態を参照されたい。
任意選択で、通信機器900はインターフェース930をさらに含み、インターフェース930は、CEデバイスに接続するように構成され、
プロセッサ920は、データパケットの送信元アドレスが第2のPEデバイスのアドレスと同じであると判断する前に、インターフェース930に障害があると判断する、ようにさらに構成される。
インターフェース930は、それぞれ、本出願の通信方法200、通信方法500、または通信方法700でPE1によってCE1に接続するために使用されるローカルインターフェース104、ローカルインターフェース304、およびローカルインターフェース604であり得る。
プロセッサ920が第2のPEデバイス(すなわちPE2)によって送信されたデータパケットを受信するときに、プロセッサ920がインターフェース930に障害があると判断した後で、データパケットが第2のPEデバイスを介してCE1に送信される場合、ループが形成され得る。したがって、プロセッサ920は、データパケットの送信元アドレスが第2のPEデバイスのアドレスと同じであるかどうかを判断して、ループが形成されないようにする。
任意選択で、プロセッサ920がインターフェース930は正常であると判断した場合、第1のPEデバイスはインターフェース930を介してデータパケットを送信してもよい。この場合、トラフィックループは形成されず、第1のPEデバイスは、データパケットの送信元アドレスが第2のPEデバイスのアドレスと同じであるかどうかを判断しなくてもよい。
通信機器は、CEデバイスに接続するために使用されるインターフェース930以外に複数のインターフェースを含んでいてもよく、複数のインターフェースは他のPEデバイスまたはCEデバイスに接続するために使用されることを理解されたい。
任意選択で、プロセッサ920は、データパケットの送信元アドレスがエントリ内の第2のPEデバイスのアドレスと同じであると判断したことに応答してCEデバイスにデータパケットを送信することを回避するようにさらに構成される。
通信機器900の関連機能は、方法実施形態の方法700を参照して理解され得る。方法700は主に、BUNトラフィックが転送されるときに発生し得るループ問題を解決するために使用される。加えて、通信機器900にはユニキャストサービス関連データを処理するために使用される処理モジュールBDも設けられ得る。
エントリは第1のエントリであってもよく、第1のエントリはPE2のアドレスを含んでいてもよく、PE2のアドレスは、PE2によってPE1に送信されたメッセージに含まれる。第1のエントリは、マルチホーム近傍テーブルと呼ばれ得る。第1のエントリは、後続の問い合わせのためのESI1をさらに含み得る。
任意選択で、メモリ910はインターフェース情報を格納し、メモリに格納された第2のESIは、インターフェース情報に含まれ、インターフェース情報はインターフェース識別子をさらに含み、インターフェース識別子は、第1のPEデバイスによってCEデバイスに接続するために使用されるインターフェースを識別するために使用され、エントリはインターフェース識別子をさらに含む。
プロセッサ920は、エントリを生成するために、第2のESIに基づいてインターフェース情報内のインターフェース識別子を決定するように特に構成される。
プロセッサ920は、
エントリとデータパケットの送信元アドレスとに基づいてエントリ内のインターフェース識別子を決定し、
第1のPEデバイスによってCEデバイスに接続するために使用され、インターフェース識別子によって識別されるインターフェースにデータパケットを送信することを回避する
ように特に構成される。
インターフェース情報は、ローカルインターフェースに関する情報や非ローカルインターフェースに関する情報など、通信機器上の複数のインターフェースに関する情報であり得る。インターフェース情報は、インターフェースに障害があるかどうかを記録するために使用され得る。インターフェース情報は、通信機器900によってCEデバイスに接続するために使用されるインターフェースを識別するために使用されるインターフェース識別子、例えば、PE1によってCE1に接続するために使用されるインターフェース604の識別子を含む。
プロセッサ920が、第1のESIが第2のESIと同じであると判断したことに応答して第1のエントリを生成する場合、第1のエントリは、第2のPEデバイスのアドレスのみならず、PE1によってCE1に接続するために使用されるインターフェース604の識別子も含み、識別子はインターフェース604を問い合わせるために使用される。PE2によって送信されたデータパケットを受信すると、プロセッサ920は、第1のエントリと、データパケットの送信元アドレスとに基づいて第1のエントリ内のインターフェース識別子、例えばインターフェース604を決定し、プロセッサは、インターフェース604にデータパケットを送信することを回避する。例えば、データパケットがマークされ、PE1が後でインターフェース604に複数のデータパケットを送信するときにマークされたデータパケットが除外される。
任意選択で、データパケットの送信元アドレスが第1のエントリ内のPE2のアドレスと異なる場合、プロセッサ920はデータパケットをすべてのローカルインターフェースに送信する。例えば、プロセッサ920はデータパケットをインターフェース604およびインターフェース610に送信する。
任意選択で、通信機器900は、インターネットプロトコルバージョン6セグメントルーティングSRv6に基づくものであるイーサネット仮想プライベートネットワークEVPNに適用され、メッセージは、ESIラベル拡張コミュニティ属性を有するイーサネット自動検出ルートである。
図10は、本出願による通信機器1000の概略ブロック図である。通信機器1000は、
プログラムを格納し、プログラムがコードを含む、ように構成される、メモリ1010と、
メモリ1010内のプログラムコードを実行するように構成される、プロセッサ1020と、
別のデバイスと通信するように構成される、インターフェース1030と
を含む。
任意選択で、コードが実行されると、プロセッサ1030は、方法200、方法500、および方法700のPE1の様々な動作を実施することができる。簡潔にするために、ここでは詳細は述べられない。
インターフェース1020は、プロセッサ1020によって、別のデバイスに信号を送信または別のデバイスから信号を受信するように駆動される。インターフェース情報は、メモリ1010または通信機器内の別のメモリに格納され得る。
インターフェース1020は、インターフェースの総称であり、ローカルインターフェースを含み得るか、または非ローカルインターフェースを含み得る。
図11は、本出願の一実施形態による通信システム1100の概略ブロック図である。図11に示されるように、通信システム1100は、PE1およびPE2を含む。通信システム1100は、別のPEデバイスおよび別のPEデバイスに接続されたCEデバイスをさらに含んでいてもよい。通信システム1100は、前述のSRv6 EVPNデュアルアクティブ通信システムであってもよく、仮想プライベートワイヤサービスVPWS、マルチポイントツーマルチポイントMP2MPサービスにおけるユニキャストサービス、およびマルチポイントツーマルチポイントMP2MPサービスにおけるBUMトラフィックサービスを提供し得る。
前述のPE1およびPE2は、方法200、方法500、および方法700などの方法実施形態のPE1およびPE2と完全に対応し、対応するモジュールが対応するステップを行う。詳細については、対応する方法実施形態を参照されたい。
通信システム1100は、別のネットワーク要素または通信機器をさらに含み得ることを理解されたい。これは、本出願のこの実施形態では限定されない。
説明を簡便かつ簡潔にするために、前述のシステム、装置、およびユニットの詳細な動作プロセスについては、前述の方法実施形態における対応するプロセスを参照されたく、ここでは詳細は繰り返し説明されないことが、当業者には明確に理解されよう。
本出願で提供されるいくつかの実施形態では、開示のシステム、装置、および方法は他のやり方でも実施され得ることを理解されたい。例えば、記載の装置実施形態は例にすぎない。例えば、ユニット分割は論理的機能分割にすぎず、実際の実装においては他の分割であり得る。例えば、複数のユニットもしくは構成要素が結合もしくは一体化されて別のシステムとされる場合もあり、またはいくつかの特徴が無視されるか、もしくは実施されない場合もある。加えて、表示または考察された相互結合または直接結合または通信接続は、いくつかのインターフェースを使用して実施されてもよい。装置間またはユニット間の間接結合または通信接続は、電気的形態、機械的形態、またはその他の形態で実施され得る。
別々の部品として説明されたユニットが物理的に分離している場合もそうでない場合もあり、ユニットとして表示された部品が、物理的ユニットである場合もそうでない場合もあり、一箇所に位置する場合もあり、または複数のネットワークユニットに分散されている場合もある。ユニットのうちの一部または全部が、実施形態の解決策の目的を達成するために実際の要件に基づいて選択され得る。
加えて、本出願の実施形態の機能ユニットは、1つの処理ユニットに統合されてもよく、またはユニットの各々が物理的に単独で存在していてもよく、または2つ以上のユニットが1つにユニットに統合される。
本出願の実施形態は相互参照されている場合があり、同じまたは同様のステップおよび用語は繰り返し説明されていない。
本出願の実施形態の全部または一部が、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組み合わせによって実施され得る。実施形態を実施するためにソフトウェアが使用される場合、実施形態は完全に、または部分的にコンピュータプログラム製品の形で実施され得る。コンピュータプログラム製品は、1つまたは複数のコンピュータプログラム命令を含む。コンピュータプログラム命令がコンピュータ上でロードおよび実行されると、本出願の実施形態による手順または機能が、全部または部分的に生成される。コンピュータは、汎用コンピュータ、専用コンピュータ、コンピュータネットワーク、またはその他のプログラマブル装置であり得る。コンピュータ命令は、コンピュータ可読記憶媒体に格納され得るか、またはコンピュータ可読記憶媒体から別のコンピュータ可読記憶媒体に転送され得る。例えば、コンピュータ命令は、ウェブサイト、コンピュータ、サーバ、またはデータセンタから別のウェブサイト、コンピュータ、サーバ、またはデータセンタに有線または無線方式で伝送され得る。コンピュータ可読記憶媒体は、コンピュータによってアクセス可能な任意の適切な媒体、または1つもしくは複数の使用可能な媒体を統合した、サーバやデータセンタなどのデータ記憶装置であり得る。使用可能な媒体は、磁気媒体(例えば、フロッピーディスク、ハードディスク、または磁気テープ)、光学媒体(例えば、デジタルビデオディスク(digital video disc、DVD)、半導体媒体(例えば、ソリッドステートドライブ)等であり得る。
第4の態様に関して、第4の態様のいくつかの実施態様では、第1のPEデバイスは、データパケットの送信元アドレスが第2のPEデバイスのアドレスと同じであると判断する前に、第1のPEデバイスによってCEデバイスに接続するために使用されるインターフェースに障害があると判断する、ようにさらに構成される。
このシナリオでは、VPWSおよびデュアルアクティブモードを提供するために、PE1、PE2、およびPE3は互いにルーティングメッセージを送信する。ルーティングメッセージは、ボーダゲートウェイプロトコル(Border Gateway Protocol、BGP)メッセージであり得る。BGPメッセージは、イーサネット自動検出ルート(Ethernet auto−discovery route、Ethernet AD route)およびSRv6−VPN SID属性を含み得る。イーサネット自動検出ルート(略称ADルート)は、ESIフィールドおよびEthernet Tag IDフィールドを含み得る。SRv6−VPN SID属性は、タイプ/長さ/値(type/length/value、TLV)形式の属性であり、タイプフィールド、長さフィールド、および値フィールドを含み、タイプ(type)は「1」または「2」であり得る。図2に示される以下のシナリオでは、タイプが「2」であるSRv6−VPN SID属性の値はEVPL属性値と呼ばれ、EVPL属性値は、ピアデバイスに、EVPLと関連付けられ、ローカルデバイス上で構成されるSIDを通知するために使用され得る。イーサネット自動検出ルートの説明については、インターネット技術標準化委員会(Internet Engineering Task Force、IETF)によって発行されたリクエストフォーコメンツ(Request for Comments、RFC)7432を参照されたい。SRv6−VPN SIDの説明については、IETFドラフト“BGP Signaling of IPv6−Segment−Routing−based VPN Networks,draft−dawra−idr−srv6−vpn−03”を参照されたい。
同様に、PE3は、PE1によって送信されたルーティングメッセージR1を受信し、PE1はPE3によって送信されたルーティングメッセージR3を受信する。PE1のローカルEthernet Tag IDおよびピアEthernet Tag IDは、それぞれ、PE3のピアEthernet Tag IDおよびローカルEthernet Tag IDと同じである。その場合、PE1とPE3との間でEVPLが確立され、EVPLの両端が、それぞれ、アタッチメント回路AC101とAC103とに接続されるので、CE2によって送信されたデータパケットはAC103、EVPL、およびAC101を介してCE1に到達することができる。PE3は、ルーティングメッセージR1からEVPL属性値「1::1」を取得し得る。PE1とPE3との間のEVPLが確立された後、PE3上のデータパケットがCE1に送信される必要がある場合、PE3は、「1::1」をデータパケットの宛先アドレスとして使用してPE1にデータパケットを送信し得るので、データパケットはPE1とPE3との間のEVPLを介してPE1に送信される。データパケットを受信した後、PE1は、データパケットの宛先アドレス「1::1」がEVPLと関連付けられたSID値であることを識別し、EVPLと関連付けられたSID値「1::1」と関連付けられた操作を行う。関連付けられた操作は、PE1上のSID値「1::1」と関連付けられたエントリy1を決定することであって、エントリy1が、SID値「1::1」、ローカルインターフェース104の識別子、およびインターフェース107の識別子を含むことと、エントリy1内のローカルインターフェース104に障害があるかどうかを判断することと、ローカルインターフェース104に障害がない場合にローカルインターフェース104を介してCE1にデータパケットを送信することと、ローカルインターフェース104に障害がある場合にインターフェース107を介してPE2にデータパケットを送信することと、を含む。
前述のシナリオでは、PE1およびPE2が、FRRを実施するために、ピアデバイスによって送信されたルーティングメッセージに基づいて修復パスを決定するときに、PE1およびPE2は、EVPL属性値、すなわち、ピアデバイス上のEVPLと関連付けられた値に基づいて修復パスを決定する。その場合、PE2がPE3によって送信された、CE1に送信されるべきパケットを受信したときに、PE2がローカルインターフェース105に障害があると判断した場合、PE2は、データパケットの宛先アドレスとしてPE1上のEVPLと関連付けられた値「1::1」を使用して、インターフェース108を介してPE1に、CE1に送信されるべきデータパケットを送信して、FRRを実施するためにPE1をトリガしてデータパケットをローカルインターフェース104に転送させようと試み得る。データパケットを受信した後、PE1は、EVPLと関連付けられたSID値「1::1」と関連付けられた操作を行い、操作は、SID値「1::1」と関連付けられたエントリy1を決定することと、エントリy1に基づいて、PE1のローカルインターフェース104に障害があるかどうかを判断することと、ローカルインターフェース104に障害がないときに、FRRを実施するためにローカルインターフェース104を介してCE1にデータパケットを送信して転送を完了することと、を含む。しかしながら、ローカルインターフェース104にも障害があるときに、PE1が、PE2にデータパケットを送信するためのデータパケットの宛先アドレスとして、PE2上のEVPLと関連付けられた値「2::1」も使用する場合、PE2をトリガしてデータパケットをローカルインターフェース105に転送させようと試みるために、PE2は、データパケットの宛先アドレスを変更して「1::1」に戻し、「1::1」の宛先アドレスを有するデータパケットをPE1に返す。ゆえに、データパケット伝送ループが形成される。PE3がルート失効通知を受信するとき、新しいデータパケットがPE2に送信されない場合に限り新しいループが発生しなくなる。PE1またはPE2がルート失効通知を受信し、ピアデバイスまでのルートを失効させる場合に限り既存のループは取り除かれることができる。ループ問題は、ネットワークリソースの無駄を生じさせ、PEデバイスの性能に影響を及ぼし得る。
ループ問題を解決するために、PE1およびPE2が通常のデータサービスを開始する前に、PE1およびPE2は互いにルーティングメッセージを送信する。ルーティングメッセージは、ボーダゲートウェイプロトコル(Border Gateway Protocol、BGP)メッセージであり、BGPメッセージは、ESIラベル拡張コミュニティ(Label Extended Community)属性を有するイーサネット自動検出ルート(Ethernet Auto−discovery route)であり得る。ESIラベル拡張コミュニティ(Label Extended Community)属性を有するイーサネット自動検出ルート(per−ES Ethernet Auto−Discovery routes、ES AD)は、ESIフィールドおよびプロバイダエッジデバイスのアドレスを含む。
インターフェース309を介して、PE1によって送信されたルーティングメッセージRb1を受信した後、PE3は、ルーティングメッセージRb1内のESIがPE3によって生成されたエントリ405内のESIと同じであると判断することができ、エントリ405と、ルーティングメッセージRb1内のユニキャスト属性値「1::1」とに基づいてエントリ406を生成し得る。エントリ406は、MAC1、ESI1、インターフェース309の識別子、および「1::1」を含む。インターフェース310を介して、PE2によって送信されたルーティングメッセージRb2を受信した後、PE3は、ルーティングメッセージRb2内のESIがエントリ406内のESI、すなわち、PE1から受信されたルーティングメッセージRb1内のESIと同じであると判断することができる。したがって、PE3は、PE2のローカルインターフェースとPE1のローカルインターフェースとが同じイーサネットセグメントの属する、言い換えると、PE2とCE1との間の接続とPE1とCE1との間の接続とが同じイーサネットセグメントに属すると判断することができる。言い換えると、PE3は、PE2がPE1のバックアップデバイスであると判断することができる。PE3は、エントリ506と、ルーティングメッセージRb2内のユニキャスト属性値「2::1」とに基づいてエントリ409を生成し得る。エントリ409は、MAC1、ESI1、インターフェース309の識別子、「1::1」、インターフェース310の識別子、および「2::1」を含む。PE3が、CE2によって転送された「MAC1」の宛先MACアドレスを有するデータパケットを受信すると、PE3は、MAC1に基づいてMAC転送テーブルを探索し、エントリ409に基づいてPE1またはPE2にデータパケットを送信することを選択し得る。PE3は、データパケットの宛先アドレスを「1::1」として設定し、PE1をトリガしてユニキャストサービスを提供させるために、言い換えると、PE1をトリガしてデータパケットをCE1に転送させるために、「1::1」の宛先アドレスを有するデータパケットを、インターフェース309を介してPE1に送信し得る。あるいは、PE3は、データパケットの宛先アドレスを「2::1」として設定し、PE2をトリガしてユニキャストサービスを提供させるために、言い換えると、PE2をトリガしてデータパケットをCE1に転送させるために、「2::1」の宛先アドレスを有するデータパケットを、インターフェース310を介してPE2に送信してもよい。
PE1、PE2、およびPE3は、それぞれ、アタッチメント回路AC601、AC602、およびAC603を介してCE1、CE1、およびCE2に接続されており、PE1は、アタッチメント回路AC609を介してCE3に接続されている。PE1、PE2、およびPE3は、それぞれ、インターフェース604、605、および606を介してAC601、AC602、およびAC603に接続されており、PE1はインターフェース610を介してAC609に接続されている。インターフェース604、605、606、および610はすべてローカルインターフェースであり、インターフェース607および608は非ローカルインターフェースである。PE1はインターフェース607を介してPE2に接続されており、PE2はインターフェース608を介してPE1に接続されている。AC601およびAC602は第1のイーサネットセグメントに属し、第1のイーサネットセグメントの識別子は「ESI1」であり得る。AC603は第2のイーサネットセグメントに属し、第2のイーサネットセグメントの識別子は「ESI2」であり得る。AC609は第3のイーサネットセグメントに属し、第3のイーサネットセグメントの識別子は「ESI3」であり得る。一例では、PE1、PE2、およびPE3は以下のように構成される。