本願は、第1のデバイスグループ内の任意のネットワークデバイスが故障しているとき、またはそのネットワークデバイスに対応するリンクが故障しているときのサービス回復時間を短縮するために、パケット転送方法を提供する。
第1の態様によれば、パケット転送方法が提供される。この方法は、第1のネットワークデバイスが、マルチキャストソースデバイスによって送信され、第1のデバイスグループによって転送された第1のマルチキャストパケットを受信することを含み、第1のデバイスグループは、第2のネットワークデバイスおよび第3のネットワークデバイスを含み、第1のマルチキャストパケットは、第1のデバイスグループ中の1つのネットワークデバイスによって第1のネットワークデバイスに転送される。第1のネットワークデバイスは、リバースパス転送RPFエントリに従って、第1のマルチキャストパケットが第1のデバイスグループによって転送されたマルチキャストパケットであると決定し、RPFエントリは、第1のサブエントリおよび第2のサブエントリを含み、第1のサブエントリは、第1のネットワークデバイスに第2のネットワークデバイスによって送信された第1のマルチキャストパケットを転送するように指示し、第2のサブエントリは、第1のネットワークデバイスに第3のネットワークデバイスによって送信された第1のマルチキャストパケットを転送するように指示する。第1のネットワークデバイスは、RPFエントリに従って第1のマルチキャストパケットをマルチキャスト宛先デバイスに送信する。
この技術的解決策では、ネットワークデバイスは、RPFエントリに従って、第1のデバイスグループ内の任意のデバイスによって送信されたマルチキャストパケットを転送することがある。第1のデバイスグループ内の1つのネットワークデバイスが故障している、またはそのネットワークデバイスに対応するリンクが故障しているときには、ネットワークデバイスは、RPFエントリに従って、第1のデバイスグループ内の正常なリンクに対応する別のネットワークデバイスによって送達されたマルチキャストパケットを転送し得る。これにより、第1のデバイスグループ内の1つのネットワークデバイスが故障している、またはそのネットワークデバイスに対応するリンクが故障しているときに、サービス回復時間を短縮する。
可能な実装では、第1の通信リンクが正常な状態であるとき、第1のネットワークデバイスは、第1のサブエントリに従って第1のマルチキャストパケットをマルチキャスト宛先デバイスに送信する。
第1の通信リンクは、マルチキャストソースデバイスから第2のネットワークデバイスへの、またそこから第1のネットワークデバイスへの通信リンクである。
別の可能な実装では、第2の通信リンクが正常な状態であるときには、第1のネットワークデバイスは、第1の通信リンクを介して転送された第1のマルチキャストパケットを受信し、ここで、第1の通信リンクのメトリックは、第2の通信リンクのメトリック未満である。
本願におけるリンクのメトリックは、リンクの品質またはリンクの帯域幅などであることがある。第2の通信リンクは、マルチキャストソースデバイスから第3のネットワークデバイスへの、またそこから第1のネットワークデバイスへの通信リンクである。
別の可能な実装では、マルチキャストソースから第2のネットワークデバイスへのリンクのメトリックがマルチキャストソースから第3のネットワークデバイスへのリンクのメトリック未満であるときには、第2のネットワークデバイスが、マルチキャストソースから送信された第1のマルチキャストパケットを第1のネットワークデバイスに転送する。
別の可能な実装では、第1の通信リンクの優先度が第2の通信リンクの優先度より高いときには、第2のネットワークデバイスが、マルチキャストソースから送信された第1のマルチキャストパケットを第1のネットワークデバイスに転送する。
別の可能な実装では、第1の通信リンクが障害状態であり、第2の通信リンクが正常な状態であるときには、第1のネットワークデバイスは、第2のサブエントリに従って第1のマルチキャストパケットをマルチキャスト宛先デバイスに送信する。
別の可能な実装では、第1のネットワークデバイスがリバースパス転送RPFエントリに従って第1のマルチキャストパケットが第1のデバイスグループによって転送されたマルチキャストパケットであると決定する前に、この方法は、第1のネットワークデバイスが、第2のネットワークデバイスによって送信された第1の制御情報を受信することを含み、第1の制御情報は、第2の識別子を含み、第2の識別子は、第2のネットワークデバイスの識別子である。第1のネットワークデバイスは、第2の識別子に基づいて第1のサブエントリを生成し、第1のサブエントリは、第2の識別子と第1のマルチキャストパケットに対応するマルチキャストソースグループ(S、G)との間の対応である。
第1のネットワークデバイスは、第3のネットワークデバイスによって送信された第2の制御情報を受信し、第2の制御情報は、第3の識別子を含み、第3の識別子は、第3のネットワークデバイスの識別子である。第1のネットワークデバイスは、第3の識別子に基づいて第2のサブエントリを生成し、第2のサブエントリは、第3の識別子と第1のマルチキャストパケットに対応するマルチキャストソースグループ(S、G)との間の対応である。
別の可能な実装では、第2の識別子および第3の識別子は、インターネットプロトコルIPアドレス、またはインターネットプロトコルバージョン6IPv6アドレスである。
別の可能な実装では、第1の制御情報は、第1デバイスグループ識別子をさらに含む。第2の制御情報は、第1デバイスグループ識別子をさらに含む。第1デバイスグループ識別子は、第1のデバイスグループの識別子である。この方法は、第1のネットワークデバイスが、第1デバイスグループ識別子に基づいてRPFエントリを決定することをさらに含む。
具体的には、第1のネットワークデバイスは、第1デバイスグループ識別子に基づいて第1のサブエントリおよび第2のサブエントリをRPFエントリであると決定する。
別の可能な実装では、第1デバイスグループ識別子は、IPアドレス、IPv6アドレス、または整数である。
別の可能な実装では、第1デバイスグループ識別子は、第2のネットワークデバイスおよび第3のネットワークデバイス上で構成される同じIPアドレスまたはエニーキャストIPアドレスであることがある。
別の可能な実装では、第2のネットワークデバイスが第1の制御メッセージを第1のネットワークデバイスに送信する、または第3のネットワークデバイスが第2の制御メッセージを第1のネットワークデバイスに送信する前に、この方法は、第1デバイスグループ識別子が第1のデバイスグループ内の第2のネットワークデバイスおよび第3のネットワークデバイス上で構成されることをさらに含む。
第2の態様によれば、パケット転送方法が提供される。この方法は、第1のデバイスグループ内の第2のネットワークデバイスが、第2の識別子および第1デバイスグループ識別子を第1のネットワークデバイスに送信することを含み、第1のデバイスグループは、第2のネットワークデバイスおよび第3のネットワークデバイスを含み、第2の識別子は、第2のネットワークデバイスの識別子であり、第1デバイスグループ識別子は、第1のデバイスグループの識別子である。第1のデバイスグループ内の第3のネットワークデバイスは、第3の識別子および第1デバイスグループ識別子を第1のネットワークデバイスに送信する。
第3の識別子は、第3のネットワークデバイスの識別子であり、第2の識別子、第3の識別子、および第1デバイスグループ識別子は、第1のネットワークデバイスが第2の識別子、第3の識別子、および第1デバイスグループ識別子に基づいてリバースパス転送RPFエントリを生成するのをトリガするために使用され、RPFエントリは、第1のサブエントリおよび第2のサブエントリを含み、第1のサブエントリは、第1のネットワークデバイスに第1のデバイスグループ内の第2のネットワークデバイスによって送信された第1のマルチキャストパケットを転送するように指示し、第2のサブエントリは、第1のネットワークデバイスに第1のデバイスグループ内の第3のネットワークデバイスによって送信された第1のマルチキャストパケットを転送するように指示する。
この方法は、第1のデバイスグループ内のネットワークデバイスが、マルチキャストソースデバイスによって送信された第1のマルチキャストパケットを受信することをさらに含む。第1のデバイスグループ内のネットワークデバイスは、第1のマルチキャストパケットを第1のネットワークデバイスに転送する。
別の可能な実装では、第1のデバイスグループ内のネットワークデバイスは、マルチキャストソースによって送信されたユニキャストパケットを受信し、第1のマルチキャストパケットは、ユニキャストパケットにカプセル化される。
別の可能な実装では、ユニキャストパケットの宛先アドレスは、第1デバイスグループ識別子もしくはエニーキャストIPアドレスであり、あるいは整数であることもある。
別の可能な実装では、第1の通信リンクは正常な状態である。第1の通信リンクは、マルチキャストソースデバイスから第2のネットワークデバイスへの、またそこから第1のネットワークデバイスへの通信リンクである。第1のデバイスグループ内の第2のネットワークデバイスは、マルチキャストソースデバイスから受信された第1のマルチキャストパケットを第1のネットワークデバイスに転送する。
別の可能な実装では、第2の通信リンクは正常な状態である。第2の通信リンクは、マルチキャストソースデバイスから第3のネットワークデバイスへの、またそこから第1のネットワークデバイスへの通信リンクである。第1の通信リンクのメトリックは、第2の通信リンクのメトリック未満である。
別の可能な実装では、マルチキャストソースから第2のネットワークデバイスへのリンクのメトリックがマルチキャストソースから第3のネットワークデバイスへのリンクのメトリック未満であるときには、第2のネットワークデバイスが、マルチキャストソースから送信された第1のマルチキャストパケットを第1のネットワークデバイスに転送する。
別の可能な実装では、第1の通信リンクの優先度が第2の通信リンクの優先度より高いときには、第2のネットワークデバイスが、マルチキャストソースから送信された第1のマルチキャストパケットを第1のネットワークデバイスに転送する。
別の可能な実装では、第1の通信リンクが障害状態であり、第2の通信リンクが正常な状態であるときには、第1のデバイスグループ内の第3のネットワークデバイスは、マルチキャストソースデバイスから受信された第1のマルチキャストパケットを第1のネットワークデバイスに転送する。
別の可能な実装では、第1デバイスグループ識別子は、IPアドレス、IPv6アドレス、または整数である。
別の可能な実装では、第1デバイスグループ識別子は、第2のネットワークデバイスおよび第3のネットワークデバイス上で構成される同じIPアドレスまたはエニーキャストIPアドレスであることがある。
別の可能な実装では、第2のネットワークデバイスが第1の制御メッセージを第1のネットワークデバイスに送信する、または第3のネットワークデバイスが第2の制御メッセージを第1のネットワークデバイスに送信する前に、この方法は、第1デバイスグループ識別子が第1のデバイスグループ内の第2のネットワークデバイスおよび第3のネットワークデバイス上で構成されることをさらに含む。
第2の態様および第2の態様の任意の可能な実装の有利な効果は、第1の態様および第1の態様の任意の可能な実装の有利な効果に対応する。本明細書では、詳細について重ねて述べることはしない。
第3の態様によれば、第1のネットワークデバイスが提供される。この第1のネットワークデバイスは、
マルチキャストソースデバイスによって送信され、第1のデバイスグループによって転送された第1のマルチキャストパケットを受信するように構成された受信モジュールであって、第1のデバイスグループは、第2のネットワークデバイスおよび第3のネットワークデバイスを含み、第1のマルチキャストパケットは、第1のデバイスグループ中の1つのネットワークデバイスによって第1のネットワークデバイスに転送される、受信モジュールと、
リバースパス転送RPFエントリに従って、第1のマルチキャストパケットが第1のデバイスグループによって転送されたマルチキャストパケットであると決定するように構成された決定モジュールであって、RPFエントリは、第1のサブエントリおよび第2のサブエントリを含み、第1のサブエントリは、第1のネットワークデバイスに第2のネットワークデバイスによって送信された第1のマルチキャストパケットを転送するように指示し、第2のサブエントリは、第1のネットワークデバイスに第3のネットワークデバイスによって送信された第1のマルチキャストパケットを転送するように指示する、決定モジュールと、
RPFエントリに従って第1のマルチキャストパケットをマルチキャスト宛先デバイスに送信するように構成された送信モジュールと
を含む。
第1の通信リンクが正常な状態である。第1の通信リンクは、マルチキャストソースデバイスから第2のネットワークデバイスへの、またそこから第1のネットワークデバイスへの通信リンクである。送信モジュールは、具体的には、第1のサブエントリに従って第1のマルチキャストパケットをマルチキャスト宛先デバイスに送信するように構成される。
第2の通信リンクが正常な状態である。第2の通信リンクは、マルチキャストソースデバイスから第3のネットワークデバイスへの、またそこから第1のネットワークデバイスへの通信リンクである。受信モジュールは、具体的には、第1の通信リンクを介して転送された第1のマルチキャストパケットを受信するように構成される。第1の通信リンクのメトリックは、第2の通信リンクのメトリック未満である。
別の可能な実装では、マルチキャストソースから第2のネットワークデバイスへのリンクのメトリックがマルチキャストソースから第3のネットワークデバイスへのリンクのメトリック未満であるときには、第2のネットワークデバイスが、マルチキャストソースから送信された第1のマルチキャストパケットを第1のネットワークデバイスに転送する。
別の可能な実装では、第1の通信リンクの優先度が第2の通信リンクの優先度より高いときには、第2のネットワークデバイスが、マルチキャストソースから送信された第1のマルチキャストパケットを第1のネットワークデバイスに転送する。
別の可能な実装では、第1の通信リンクが障害状態であり、第2の通信リンクが正常な状態であるときには、送信モジュールは、具体的には、第2のサブエントリに従って第1のマルチキャストパケットをマルチキャスト宛先デバイスに送信するように構成される。
別の可能な実装では、受信モジュールは、第2のネットワークデバイスによって送信された第1の制御情報を受信するようにさらに構成され、第1の制御情報は、第2の識別子を含み、第2の識別子は、第2のネットワークデバイスの識別子である。第1のネットワークデバイスは、第2の識別子に基づいて第1のサブエントリを生成するように構成された生成モジュールをさらに含み、第1のサブエントリは、第2の識別子と第1のマルチキャストパケットに対応するマルチキャストソースグループ(S、G)との間の対応である。受信モジュールは、第3のネットワークデバイスによって送信された第2の制御情報を受信するようにさらに構成され、第2の制御情報は、第3の識別子を含み、第3の識別子は、第3のネットワークデバイスの識別子である。生成モジュールは、第3の識別子に基づいて第2のサブエントリを生成するようにさらに構成され、第2のサブエントリは、第3の識別子と第1のマルチキャストパケットに対応するマルチキャストソースグループ(S、G)との間の対応である。
別の可能な実装では、第2の識別子および第3の識別子は、インターネットプロトコルIPアドレス、またはインターネットプロトコルバージョン6IPv6アドレスである。
別の可能な実装では、第1の制御情報は、第1デバイスグループ識別子をさらに含む。第2の制御情報は、第1デバイスグループ識別子をさらに含む。第1デバイスグループ識別子は、第1のデバイスグループの識別子である。決定モジュールは、具体的には、第1デバイスグループ識別子に基づいてRPFエントリを決定するように構成される。
別の可能な実装では、第1デバイスグループ識別子は、IPアドレス、IPv6アドレス、または整数である。
別の可能な実装では、第1デバイスグループ識別子は、第2のネットワークデバイスおよび第3のネットワークデバイス上で構成される同じIPアドレスまたはエニーキャストIPアドレスであることがある。
別の可能な実装では、第2のネットワークデバイスが第1の制御メッセージを第1のネットワークデバイスに送信する、または第3のネットワークデバイスが第2の制御メッセージを第1のネットワークデバイスに送信する前に、この方法は、第1デバイスグループ識別子が第1のデバイスグループ内の第2のネットワークデバイスおよび第3のネットワークデバイス上で構成されることをさらに含む。
第4の態様によれば、第1のデバイスグループが提供される。第1のデバイスグループは、第2のネットワークデバイスおよび第3のネットワークデバイスを含む。第1のデバイスグループは、
第1のデバイスグループ内の第2のネットワークデバイスを用いて、第2の識別子および第1デバイスグループ識別子を第1のネットワークデバイスに送信するように構成された送信モジュールであって、第1のデバイスグループは、第2のネットワークデバイスおよび第3のネットワークデバイスを含み、第2の識別子は、第2のネットワークデバイスの識別子であり、第1デバイスグループ識別子は、第1のデバイスグループの識別子である、送信モジュールを含み、
送信モジュールは、第1のデバイスグループ内の第3のネットワークデバイスを用いて、第3の識別子および第1デバイスグループ識別子を第1のネットワークデバイスに送信するようにさらに構成され、第3の識別子は、第3のネットワークデバイスの識別子であり、第2の識別子、第3の識別子、および第1デバイスグループ識別子は、第1のネットワークデバイスが第2の識別子、第3の識別子、および第1デバイスグループ識別子に基づいてリバースパス転送RPFエントリを生成するのをトリガするために使用され、RPFエントリは、第1のサブエントリおよび第2のサブエントリを含み、第1のサブエントリは、第1のネットワークデバイスに第1のデバイスグループ内の第2のネットワークデバイスによって送信された第1のマルチキャストパケットを転送するように指示し、第2のサブエントリは、第1のネットワークデバイスに第1のデバイスグループ内の第3のネットワークデバイスによって送信された第1のマルチキャストパケットを転送するように指示する。
可能な実装では、第1のデバイスグループは、第1のデバイスグループ内のネットワークデバイスを用いて、マルチキャストソースデバイスによって送信された第1のマルチキャストパケットを受信するように構成された受信モジュールをさらに含み、送信モジュールは、第1のデバイスグループ内のネットワークデバイスを用いて、第1のマルチキャストパケットを第1のネットワークデバイスに転送するようにさらに構成される。
別の可能な実装では、送信モジュールは、具体的には、第1のデバイスグループ内のネットワークデバイスを用いて、マルチキャストソースによって送信されたユニキャストパケットを受信するように構成され、第1のマルチキャストパケットは、ユニキャストパケットにカプセル化される。
別の可能な実装では、ユニキャストパケットの宛先アドレスは、第1デバイスグループ識別子もしくはエニーキャストIPアドレスであり、あるいは整数であることもある。
別の可能な実装では、第1の通信リンクは正常な状態である。第1の通信リンクは、マルチキャストソースデバイスから第2のネットワークデバイスへの、またそこから第1のネットワークデバイスへの通信リンクである。送信モジュールは、具体的には、第1のデバイスグループ内の第2のネットワークデバイスを用いて、マルチキャストソースデバイスから受信された第1のマルチキャストパケットを第1のネットワークデバイスに転送するように構成される。
別の可能な実装では、第2の通信リンクは正常な状態である。第2の通信リンクは、マルチキャストソースデバイスから第3のネットワークデバイスへの、またそこから第1のネットワークデバイスへの通信リンクである。第1の通信リンクのメトリックは、第2の通信リンクのメトリック未満である。
別の可能な実装では、マルチキャストソースから第2のネットワークデバイスへのリンクのメトリックがマルチキャストソースから第3のネットワークデバイスへのリンクのメトリック未満であるときには、第2のネットワークデバイスが、マルチキャストソースから送信された第1のマルチキャストパケットを第1のネットワークデバイスに転送する。
別の可能な実装では、第1の通信リンクの優先度が第2の通信リンクの優先度より高いときには、第2のネットワークデバイスが、マルチキャストソースから送信された第1のマルチキャストパケットを第1のネットワークデバイスに転送する。
別の可能な実装では、第1の通信リンクが障害状態であり、第2の通信リンクが正常な状態であるときには、送信モジュールは、具体的には、第1のデバイスグループ内の第3のネットワークデバイスを用いて、マルチキャストソースデバイスから受信された第1のマルチキャストパケットを第1のネットワークデバイスに転送するように構成される。
別の可能な実装では、第1デバイスグループ識別子は、IPアドレス、IPv6アドレス、または整数である。
別の可能な実装では、第1デバイスグループ識別子は、第2のネットワークデバイスおよび第3のネットワークデバイス上で構成される同じIPアドレスまたはエニーキャストIPアドレスであることがある。
別の可能な実装では、第2のネットワークデバイスが第1の制御メッセージを第1のネットワークデバイスに送信する、または第3のネットワークデバイスが第2の制御メッセージを第1のネットワークデバイスに送信する前に、この方法は、第1デバイスグループ識別子が第1のデバイスグループ内の第2のネットワークデバイスおよび第3のネットワークデバイス上で構成されることをさらに含む。
第5の態様によれば、第1のネットワークデバイスが提供される。第1のネットワークデバイスは、プロセッサ、メモリ、インタフェース、およびバスを含む。インタフェースは、ワイヤレスまたは有線で実装され得、具体的にはネットワークアダプタであることがある。プロセッサと、メモリと、インタフェースとは、バスを介して接続される。
インタフェースは、具体的には、伝送器および受信器を含むことがあり、第1のネットワークデバイスが前述の受信および送信を実施するように構成される。例えば、インタフェースは、マルチキャストソースデバイスから送信され、第1のデバイスグループによって転送された第1のマルチキャストパケットを受信することをサポートするように構成される。別の例では、インタフェースは、RPFエントリに従って第1のマルチキャストパケットをマルチキャスト宛先デバイスに送信することをサポートするように構成される。別の例では、インタフェースは、第2のサブエントリに従って第1のマルチキャストパケットをマルチキャスト宛先デバイスに送信することをサポートするように構成される。
プロセッサは、前述の実施形態において第1のネットワークデバイスによって実行される処理を実行するように構成される。例えば、プロセッサは、リバースパス転送RPFエントリに従って、第1のマルチキャストパケットが第1のデバイスグループによって転送されたマルチキャストパケットであると決定し、第2の識別子に基づいて第1のサブエントリを生成し、第3の識別子に基づいて第2のサブエントリを生成し、かつ/または本明細書に記載される技術のためのその他のプロセスを実行するように構成される。メモリは、オペレーティングシステムおよびアプリケーションを含み、プログラム、コード、または命令を記憶するように構成される。プログラム、コード、または命令を実行するときには、プロセッサまたはハードウェアデバイスは、方法の実施形態における第1のネットワークデバイスの処理プロセスを完了することがある。任意選択で、メモリは、読取り専用メモリ(read-only memory、ROM)およびランダムアクセスメモリ(random access memory、RAM)を含むことがある。ROMは、基本入出力システム(basic input/output system、BIOS)または埋込み型システムを含み、RAMは、アプリケーションおよびオペレーティングシステムを含む。第1のネットワークデバイスがランする必要があるときには、ROMに組み込まれたBIOSまたは埋込み型システムのブートローダが使用されて、システムをブートして始動させ、第1のネットワークデバイスをブートして通常のラン状態に入らせる。通常のラン状態に入った後で、第1のネットワークデバイスは、RAM中のアプリケーションおよびオペレーティングシステムをランして、方法の実施形態における第1のネットワークデバイスの処理プロセスを完了する。
実際の適用では、第1のネットワークデバイスは、任意の数量のインタフェース、プロセッサ、またはメモリを含み得る。
第6の態様によれば、コンピュータ可読媒体が提供される。このコンピュータ可読媒体は、プログラムコードを記憶する。このコンピュータプログラムコードがコンピュータ上でランされたときに、コンピュータは、第1の態様または第1の態様の可能な実装のいずれか1つによる方法を実行することができるようになる。コンピュータ可読ストレージは、限定されるわけではないが、読取り専用メモリ(read-only memory、ROM)、プログラマブル読取り専用メモリ(programmable ROM、PROM)、消去可能PROM(erasable PROM、EPROM)、フラッシュメモリ、電気的EPROM(electrically EPROM、EEPROM)、およびハードドライブ(hard drive)のうちの1つまたは複数を含む。
第7の態様によれば、コンピュータ可読媒体が提供される。このコンピュータ可読媒体は、プログラムコードを記憶する。このコンピュータプログラムコードがコンピュータ上でランされたときに、コンピュータは、第2の態様または第2の態様の可能な実装のいずれか1つによる方法を実行することができるようになる。コンピュータ可読媒体は、限定されるわけではないが、読取り専用メモリ(read-only memory、ROM)、プログラマブル読取り専用メモリ(programmable ROM、PROM)、消去可能PROM(erasable PROM、EPROM)、フラッシュメモリ、電気的EPROM(electrically EPROM、EEPROM)、およびハードドライブ(hard drive)のうちの1つまたは複数を含む。
第8の態様によれば、コンピュータプログラム製品が提供される。このコンピュータプログラム製品は、コンピュータプログラムコードを含む。このコンピュータプログラムコードがコンピュータ上でランされたときに、コンピュータは、第1の態様または第1の態様の可能な実装のいずれか1つによる方法を実行することができるようになる。
第9の態様によれば、コンピュータプログラム製品が提供される。このコンピュータプログラム製品は、コンピュータプログラムコードを含む。このコンピュータプログラムコードがコンピュータ上でランされたときに、コンピュータは、第1の態様または第1の態様の可能な実装のいずれか1つによる方法を実行することができるようになる。
第10の態様によれば、チップが提供される。このチップは、プロセッサおよびデータインタフェースを含む。プロセッサは、データインタフェースを用いてメモリに記憶された命令を読み取って、第1の態様または第1の態様の可能な実装のいずれか1つによる方法を実行する。具体的な実装プロセスでは、チップは、中央処理装置(central processing unit、CPU)、マイクロコントローラユニット(micro controller unit、MCU)、マイクロプロセシングユニット(micro processing unit、MPU)、デジタル信号プロセッサ(digital signal processor、DSP)、システムオンチップ(system-on-a-chip、SoC)、特定用途向け集積回路(application-specific integrated circuit、ASIC)、フィールドプログラマブルゲートアレイ(field programmable gate array、FPGA)、またはプログラマブル論理デバイス(programmable logic device、PLD)の形態で実装されることがある。
第11の態様によれば、チップが提供される。このチップは、プロセッサおよびデータインタフェースを含む。プロセッサは、データインタフェースを用いてメモリに記憶された命令を読み取って、第2の態様または第2の態様の可能な実装のいずれか1つによる方法を実行する。具体的な実装プロセスでは、チップは、中央処理装置(central processing unit、CPU)、マイクロコントローラユニット(micro controller unit、MCU)、マイクロプロセシングユニット(micro processing unit、MPU)、デジタル信号プロセッサ(digital signal processor、DSP)、システムオンチップ(system-on-a-chip、SoC)、特定用途向け集積回路(application-specific integrated circuit、ASIC)、フィールドプログラマブルゲートアレイ(field programmable gate array、FPGA)、またはプログラマブル論理デバイス(programmable logic device、PLD)の形態で実装されることがある。
第12の態様によれば、システムが提供される。このシステムは、第1のネットワークデバイスおよび第1のデバイスグループを含む。
以下、添付の図面を参照して本願の技術的解決策について述べる。
マルチキャスト(multicast)は、伝送制御プロトコル(transmission control protocol、TCP)/インターネットプロトコル(internet protocol、IP)ネットワークにおいて、1つのマルチキャストアドレスを使用してデータが複数の受信側に同時に効率的に送信されるデータ伝送モードである。マルチキャストソースは、ネットワーク内のリンクを通してマルチキャストグループ内のマルチキャストグループメンバにマルチキャストトラフィックを送信し、マルチキャストグループ内の各マルチキャストグループメンバは、マルチキャストトラフィックを受信することができる。マルチキャスト伝送モードは、マルチキャストソースとマルチキャストグループメンバとの間でポイントツーマルチポイントデータ接続を実施する。マルチキャストトラフィックは、各ネットワークリンク上で1回だけ伝送されればよく、マルチキャストトラフィックは、リンク上に分岐があるときのみ複製される。したがって、マルチキャスト伝送モードは、データ伝送効率を向上させ、バックボーンネットワーク上の輻輳の可能性を低減させる。
説明を容易にするために、以下、図1および図2を参照して、本願の実施形態が適用される適用シナリオについて詳細に述べる。
図1は、本願の実施形態が適用される可能性があるマルチキャストシナリオを示す概略図である。図1に示すように、このシナリオは、マルチキャスト受信側(receive、RCV)およびマルチキャストソース(source、SRC)を含むことがある。
可能な実装では、マルチキャストソースは、少なくとも2つのルータ(router、R)に直接接続される可能性があり、これは、マルチキャストソースのその少なくとも2つのルータに対するデュアルホーミング(dual homing)と呼ばれることがある。マルチキャストソースは、2つのルータに直接接続されることもあるし、3つ以上のルータに直接接続されることもある。これは、本願では特に限定されない。
別の可能な実装では、任意選択で、カスタマエッジ(customer edge、CE)スイッチが図1に含まれることもあり、マルチキャストソースは、少なくとも2つのCEスイッチを使用して上記の少なくとも2つのルータに別々に接続されることもある。
説明を容易にするために、図1における説明のための例として、2つのルータ(例えばR1およびR2)が使用されている。
図2は、本願の実施形態において提供される別の可能なマルチキャストシナリオを示す概略図である。図2に示すように、このシナリオでは、マルチキャストソースは、スイッチ(switch、SW)、CE1、およびCE2を使用して少なくとも2つのルータに別々に接続される。
2つのルータ(例えばR1およびR2)は、図2では例として使用されている。マルチキャストソースは、SWおよびCE1を使用してR1に接続され、SWおよびCE2を使用してR2に接続される。
本願の本実施形態では、マルチキャスト受信側は、マルチキャスト宛先デバイスと呼ばれることもあり、複数のマルチキャスト受信側があることもある。説明を容易にするために、図1または図2のシナリオでは、2つのマルチキャスト受信側、例えばH1およびH2がある。H1/H2は、ルータL1/L2にそれぞれ接続され、ルータL1/L2は、P1/P2を使用してR1およびR2にそれぞれ接続される。
R1/R2、P1/P2、およびL1/L2を含むネットワークは、コア(Core)ネットワークとも呼ばれ、例えばオペレータによって提供されるネットワークである。ネットワークは、本願の本実施形態では特に限定されず、マルチキャスト仮想プライベートネットワーク(multicast virtual private network、MVPN)であってもよいし、イーサネット仮想プライベートネットワーク(Ethernet virtual private network、EVPN)であってもよい。L1/L2をH1/H2に接続するために使用されるインタフェース、およびR1/R2をマルチキャストソースに接続するために使用されるインタフェースは、ネットワークにおけるユーザ側インタフェース(プライベートネットワーク側インタフェースまたはプライベートネットワークインタフェースとも呼ばれる)である。R1/R2をP1/P2に接続するために使用されるインタフェース、およびL1/L2をP1/P2に接続するために使用されるインタフェースは、ネットワークにおけるネットワーク側インタフェース(パブリックネットワーク側インタフェースまたはパブリックネットワークインタフェースとも呼ばれる)である。
マルチキャスト受信側(例えばH1/H2)は、マルチキャスト受信側に接続されたL1/L2にマルチキャスト参加メッセージを送信することがある。マルチキャスト参加メッセージは、本願では特に限定されず、インターネットグループ管理プロトコル(Internet group management protocol、IGMP)メッセージであってもよいし、マルチキャストリスナ発見(multicast listener discovery、MLD)メッセージであってもよい。マルチキャストメッセージを受信した後で、L1/L2は、ボーダゲートウェイプロトコル(border gateway protocol、BGP)メッセージを使用して、マルチキャストソース側のR1/R2にマルチキャスト参加メッセージを送信することがある。BGPメッセージは、BGP MVPNルートメッセージであることもあるし、BGP EVPNルートメッセージであることもある。例えば、BGP MVPNルートメッセージは、Cマルチキャストルートメッセージであることもあるし、リーフA-Dルートメッセージであることもある。マルチキャスト参加メッセージを受信した後で、マルチキャストソースは、マルチキャストパケットをマルチキャスト受信側に送信することがある。
本願では、マルチキャスト受信側によって送信されるマルチキャスト参加メッセージは、S1G1を含むことがあることを理解されたい。ここで、S1は、要求されたマルチキャストパケットのマルチキャストソース(source、S)を示し、G1は、要求されたマルチキャストパケットのマルチキャストグループ(group、G)を示す。マルチキャスト参加メッセージを受信した後で、マルチキャストソースは、マルチキャスト参加メッセージ中のマルチキャストパケットのS1G1に基づいてマルチキャスト受信側にマルチキャストパケットを送信することがある。
従来の技術的解決策では、L1が例として使用される。S1G1に関係するマルチキャスト参加をH1から受信した後で、L1は、マルチキャスト参加メッセージをR1に送信し、「バックアップ」表示情報を搬送するマルチキャスト参加をR2に送信する。R1およびR2がマルチキャストソースからマルチキャストパケットを受信した後で、R1は、マルチキャストパケットをL1に転送する。R1が故障しているときには、L1は「バックアップ」表示情報を搬送しないマルチキャスト参加をR2に送信するので、R2がマルチキャストパケットをL1に転送する。この解決策では、R1が故障しているときには、L1は依然としてマルチキャスト参加メッセージをR2に送信する必要がある。これが、長いサービス回復時間につながる。
本願の実施形態は、マルチキャストパケットを転送するデバイスグループ内のネットワークデバイスが故障しているときのサービス回復時間を短縮するための、パケット転送方法を提供する。以下、図3を参照して、このパケット転送方法について述べる。
図3は、本願の実施形態によるパケット転送方法を示す概略流れ図である。図3に示すように、この方法は、ステップ310から330を含むことがある。以下、ステップ310から330について別個に詳細に述べる。
ステップ310:第1のネットワークデバイスが、マルチキャストソースデバイスから送信され、第1のデバイスグループによって転送された第1のマルチキャストパケットを受信する。ここで、第1のデバイスグループは、第2のネットワークデバイスおよび第3のネットワークデバイスを含み、第1のマルチキャストパケットは、第1のマルチキャストグループ中の1つのネットワークデバイスによって第1のネットワークデバイスに転送される。
本願の本実施形態では、第1のネットワークデバイスは、図1のL1/L2に対応し、第2のネットワークデバイスおよび第3のネットワークデバイスは、それぞれR1およびR2に対応する。L1/L2は、マルチキャストソースデバイスによって送信され、R1/R2の任意のネットワークデバイスを用いて送信された第1のマルチキャストパケットを受信することがある。
ステップ320:第1のネットワークデバイスが、リバースパス転送RPFエントリに従って、第1のマルチキャストパケットが第1のデバイスグループによって転送されたマルチキャストパケットであると決定する。
リバースパス転送(reverse path forwarding、RPF)は、マルチキャストデータパケットの複数回の転送を防止する技術であることを理解されたい。ネットワークデバイスは、RPFエントリに従って、アップストリームマルチキャストホップ(upstream multicast hop、UMH)から受信されたマルチキャストパケットを転送することがある。
本願の本実施形態では、RPFエントリは、第1のサブエントリおよび第2のサブエントリを含む。第1のサブエントリは、第1のネットワークデバイスに、第2のネットワークデバイスから送信された第1のマルチキャストパケットを転送するように指示する。第2のサブエントリは、第1のネットワークデバイスに、第3のネットワークデバイスから送信された第1のマルチキャストパケットを転送するように指示する。
ステップ330:第1のネットワークデバイスが、RPFエントリに従って第1のマルチキャストパケットをマルチキャスト宛先デバイスに送信する。
第1のネットワークデバイスは、RPFエントリに従って、第1のデバイスグループ内の任意のデバイスを使用して送信されたマルチキャストパケットを転送し得る。
この技術的解決策では、ネットワークデバイスは、RPFエントリに従って、第1のデバイスグループ内の任意のデバイスによって送信されたマルチキャストパケットを転送し得る。第1のデバイスグループ内の1つのネットワークデバイスが故障している、またはそのネットワークデバイスに対応するリンクが故障しているときには、そのネットワークデバイスは、RPFエントリに従って、第1のデバイスグループ内の正常なリンクに対応する別のネットワークデバイスによって送達されたマルチキャストパケットを転送し得る。これにより、マルチキャストパケットを転送するデバイスグループ内の1つのネットワークデバイスが故障しているとき、サービス回復時間を短縮する。
RPFエントリは、本願の本実施形態では特に限定されない。可能な実装では、RPFエントリ中の第1のサブエントリは、第2のネットワークデバイスの識別子(例えば第2のネットワークデバイスのIPアドレス)と第1のマルチキャストパケットに対応するマルチキャストソースグループ(S、G)との間の対応であることがある。RPFエントリ中の第2のサブエントリは、第3のネットワークデバイスの識別子(例えば第3のネットワークデバイスのIPアドレス)と第1のマルチキャストパケットに対応するマルチキャストソースグループ(S、G)との間の対応であることがある。別の可能な実装では、RPFエントリは、第1のデバイスグループの識別子と第1のマルチキャストパケットに対応するマルチキャストソースグループ(S、G)との間の対応、第2のデバイスグループの識別子と第1のデバイスグループの識別子との間の対応(第1のサブエントリ)、および第3のネットワークデバイスの識別子と第1のデバイスグループの識別子との間の対応(第2のサブエントリ)をさらに含むことがある。第1のデバイスグループは、第2のネットワークデバイスおよび第3のネットワークデバイスを含む。
以下、図1に示す適用シナリオを使用して、図4Aおよび図4Bの実施形態を参照して、本願の本実施形態で提供されるパケット転送方法の具体的な実装について詳細に述べる。
図4Aおよび図4Bは、本願の実施形態による別のパケット転送方法を示す概略流れ図である。図4Aおよび図4Bに示すように、この方法は、ステップ410から478を含むことがある。ステップ410から478について別個に詳細に述べる。
説明を容易にするために、図4Aおよび図4Bでは、L1がS1G1マルチキャスト参加メッセージを受信する例を用いて説明が提供されることを理解されたい。
ステップ410:R1が、デバイス識別子をL1に送信する。
ステップ415:R2が、デバイス識別子をL1に送信する。
可能な実装では、本願の本実施形態では、R1/R2のデバイス識別子(例えばインターネットプロトコル(internet protocol、IP)アドレス)が構成されることがある。R1/R2は、第1のデバイスグループとして使用されることがある。
例えば、R1/R2、P1/P2、およびL1/L2を含むネットワークは、インターネットプロトコルバージョン4(internet protocol version 4、IPv4)ネットワークである。R1およびR2上の構成は、以下の通りである。
R1上の構成では、「Ip addr 192.168.1.101」は、R1のインタフェースのIPアドレス1を示し、「Multicast mvpn-id 192.168.1.101」は、BGP MVPNにおけるmvpn-idに基づいて指定されるIPアドレスが、MVPNメッセージルートにおけるR1のIPアドレス1として使用されることを示す。R2上の構成では、「Ip addr 192.168.1.102 32」は、R2のインタフェースのIPアドレス2を示し、「Multicast mvpn-id 192.168.1.102」は、BGP MVPNにおけるmvpn-idに基づいて指定されるIPアドレスが、MVPNメッセージルートにおけるR2のIPアドレス2として使用されることを示す。
R1およびR2上で構成される「Ip addr 192.168.1.100」は、第1のデバイスグループの識別子、すなわちIPアドレス0を示し、「Anycast-rpf 192.168.1.100」は、IPアドレス0が、RPFチェック中に複数のアドレスのうちのいずれか1つを識別するために使用されることを示す。
「Ip addr 192.168.1.100」は任意選択であることに留意されたい。換言すれば、RPFエントリがマルチキャストパケットと第1のデバイスグループの識別子との間の対応である場合に、「Ip addr 192.168.1.100」はR1およびR2上で構成されることがある。
別の例では、R1/R2、P1/P2、およびL1/L2を含むネットワークは、インターネットプロトコルバージョン6(internet protocol version 6、IPv6)ネットワークである。R1およびR2上の構成は、以下の通りである。
R1上の構成では、「Ipv6 addr 2001:DB1::101」は、R1のインタフェースのIPv6アドレス1を示し、「Multicast mvpn-id 2001:DB1::101」は、BGP MVPNにおけるmvpn-idに基づいて指定されるIPアドレスが、MVPNメッセージルートにおけるR1のIPv6アドレス1として使用されることを示す。R2上の構成では、「Ipv6 addr 2001:DB1::102」は、R2のインタフェースのIPv6アドレス2を示し、「Multicast mvpn-id 2001:DB1::102」は、BGP MVPNにおけるmvpn-idに基づいて指定されるIPアドレスが、MVPNメッセージルートにおけるR2のIPv6アドレス2として使用されることを示す。
R1およびR2上で構成される「IPv6 addr 2001:DB1::100」は、第1のデバイスグループの識別子、すなわちIPv6アドレス0を示し、「Anycast-rpf 2001:DB1::100」は、IPv6アドレス0が、RPFチェック中に複数のアドレスのうちのいずれか1つを識別するために使用されることを示す。
「Ipv6 addr 2001:DB1::100」は任意選択であることに留意されたい。換言すれば、RPFエントリがマルチキャストパケットと第1のデバイスグループの識別子との間の対応である場合に、「Ipv6 addr 2001:DB1::100」はR1およびR2上で構成されることがある。
R1およびR2がデバイス識別子をL1に送信するための具体的な実装は複数ある。以下では、例としてR1を用いて、R1がIPアドレスをL1に送信するためのいくつかの可能な実装について詳細に述べる。
可能な実装では、R1は、アドバタイズされたBGP-MVPNルートにおけるIPアドレス1を含むことがある。例えば、R1は、BGP-MVPNの包括的なプロバイダマルチキャストサービスインタフェースの自動発見(inclusive provider multicast service interface auto-discovery、I-PMSI A-D)ルートにおけるIPアドレス1を含むことがある。別の例では、R1は、BGP-MVPNの選択的なプロバイダマルチキャストサービスインタフェースの自動発見(selective provider multicast service interface auto-discovery、S-PMSI A-D)ルートにおけるIPアドレス1を含むことがある。任意選択で、R1は、アドバタイズされたBGP-MVPNルートにおけるIPアドレス0を含むこともある。
具体的には、一例では、R1は、メッセージ1を用いてIPアドレス1およびIPアドレス0をL1に送信する。メッセージ1の可能な構造は、以下の通りである。
message 1={MP_REACH_NLRI attribute <Type1, RD, IP address 1>, Extended_Community attribute <Type2, IP address 0 >}
Type1は、I-PMSI A-DルートのタイプまたはS-PMSI A-Dルートのタイプを識別する。RDは、異なるVPNインスタンスを区別するルート識別子route-distinguisherである。IPアドレス1は、本実施形態では「192.168.1.101」である。Type2は、anycast-rpfアドレスオブジェクトを識別する。IPアドレス0は、本実施形態では「192.168.1.100」である。
同様に、R2は、BGP-MVPN I-PMSI A-DルートまたはBGP-MVPN S-PMSI A-DルートにおけるIPアドレス2を含むこともある。任意選択で、R2は、BGP-MVPN I-PMSI A-DルートまたはBGP-MVPN S-PMSI A-DルートにおけるIPアドレス0を含むこともある。詳細については、上記の説明を参照されたい。本明細書では、詳細について重ねて述べることはしない。
別の可能な実装では、R1は、アドバタイズされたBGP-EVPNルートにおけるIPアドレス1を含むことがある。例えば、R1は、BGP-EVPNの包括的なマルチキャストイーサネットタグルート(inclusive multicast Ethernet tag route、IMET)におけるIPアドレス1を含むことがある。別の例では、R1は、BGP-EVPNの選択的なプロバイダマルチキャストサービスインタフェースの自動発見(selective provider multicast service interface auto-discovery、S-PMSI A-D)ルートにおけるIPアドレス1を含むことがある。任意選択で、R1は、アドバタイズされたBGP-EVPNルートにおけるIPアドレス0を含むこともある。
具体的には、一例では、メッセージ1の別の可能な構造は、以下の通りである。
message 1={MP_REACH_NLRI attribute <Type1, RD, IP address 1>, Extended_Community attribute <Type2, IP address 0 >}
Type1は、IMETルートのタイプまたはS-PMSI A-Dルートのタイプを識別する。RDは、異なるVPNインスタンスを区別するルート識別子route-distinguisherである。IPアドレス1は、本実施形態では「192.168.1.101」である。Type2は、anycast-rpfアドレスオブジェクトを識別する。IPアドレス0は、本実施形態では「192.168.1.100」である。
同様に、R2は、BGP-EVPN IMETルートまたはBGP-MVPN S-PMSI A-DルートにおけるIPアドレス2を含むこともある。任意選択で、R2は、BGP-EVPN IMETルートまたはBGP-MVPN S-PMSI A-DルートにおけるIPアドレス0を含むこともある。詳細については、上記の説明を参照されたい。本明細書では、詳細について重ねて述べることはしない。
ステップ420:L1が、R1/R2のデバイス識別子情報を記憶する。
L1は、R1およびR2からそれぞれ送信されたメッセージ1およびメッセージ2を受信することがある。メッセージは、BGP-MVPNルートメッセージ、例えばI-PMSI A-DルートメッセージまたはS-PMSI A-Dルートメッセージであってもよいし、BGP-EVPNルートメッセージ、例えばIMETルートメッセージまたはS-PMSI A-Dルートメッセージまたはであってもよい。
可能な実装では、L1によって受信されたメッセージ1がIPアドレス1を含み、メッセージ2がIPアドレス2を含む場合には、L1は、IPアドレス1およびIPアドレス2を記憶することがある。
別の可能な実装では、L1によって受信されたメッセージ1がIPアドレス1およびIPアドレス0を含み、メッセージ2がIPアドレス2およびIPアドレス0を含む場合には、L1は、以下のマッピング関係を確立することがある。
マッピング関係1(IP address 1, IP address 0)、および
マッピング関係2(IP address 2, IP address 0)。
別の可能な実装では、L1によって受信されたメッセージ1がIPv6アドレス1およびIPv6アドレス0を含み、メッセージ2がIPv6アドレス2およびIPv6アドレス0を含む場合には、L1は、以下のマッピング関係を確立することがある。
マッピング関係3(IPv6 address 1, IPv6 address 0)、および
マッピング関係4(IPv6 address 2, IPv6 address 0)。
ステップ430:L1が、H1から送信されたS1G1マルチキャスト参加メッセージを受信する。
L1によって受信されるS1G1マルチキャスト参加メッセージは、IGMPメッセージであってもよいし、MLDメッセージであってもよい。これは、本願では限定されない。詳細については、上記の説明を参照されたい。本明細書では、詳細について重ねて述べることはしない。
ステップ440:L1が、RPFエントリを確立する。
L1がH1からS1G1マルチキャスト参加メッセージを受信した後で、L1は、S1G1に対応するUMHノードを選択する。UMHノードは、L1ノードがS1G1マルチキャストトラフィックをそこから受信すると予想するノードである。具体的には、L1は、S1までのユニキャストルートに従ってUMH情報を取得し得る。例えば、L1は、S1までのユニキャストルートの次のホップがプライマリなネクストホップのIPアドレス1またはセカンダリなネクストホップのIPアドレス2であることを学習することがある。この場合には、L1は、S1G1マルチキャストトラフィックがIPアドレス1から来ると予想する。
L1は、本願の本実施形態では、IPアドレス1またはIPアドレス2のいずれかから送信されたマルチキャストパケットを転送することがある。具体的には、一例では、L1は、L1がIPアドレス1またはIPアドレス2のいずれかから送信されたマルチキャストパケットを転送し得るように構成されることがある。
例えば、R1/R2、P1/P2、およびL1/L2を含むネットワークがIPv4ネットワークである場合には、L1上の構成は、以下の通りである。
別の例で、R1/R2、P1/P2、およびL1/L2を含むネットワークがIPv6ネットワークである場合には、L1上の構成は、以下の通りである。
「ip vpn vpn1」は、VPNインスタンスが構成されていることを示し、「ipv4-family」は、VPNv4とも呼ばれるVPN IPv4アドレスファミリが構成されていることを示す。あるいは、「ipv6-family」は、VPNv6とも呼ばれるVPN IPv6アドレスファミリが構成され得ることを示す。「Mvpn」は、mvpnがVPNインスタンスに対してイネーブルにされていることを示し、VPNインスタンスは、MVPNインスタンスとも呼ばれる。「Anycast-rpf enable」は、anycast-rpfがイネーブルにされていることを示す。換言すれば、複数のIPアドレスのうちのいずれか1つを識別するために、R1/R2から送信されるメッセージに含まれるanycast-rpf情報が処理されることがある、またはオブジェクト(例えば本願の本実施形態では第1のデバイスグループの識別子すなわちIPアドレス0)がRPFチェック中に使用されることがある。
「Anycast-rpf enable」は任意選択であることに留意されたい。換言すれば、この構成は、設定されないこともある。デフォルトでは、システムは、R1/R2から送信された受信されたメッセージに含まれるanycast-rpf情報を処理する。
本願では、構成「Anycast-rpf enable」に基づいて、L1がプライマリネクストホップのIPアドレス1およびセカンダリネクストホップのIPアドレス2を取得した後で、L1は、S1G1マルチキャストトラフィックがIPアドレス1またはIPアドレス2のいずれかから来ると予想する。したがって、L1はRPFエントリを確立する。
以下では、R1/R2、P1/P2、およびL1/L2を含むネットワークがIPv4ネットワークである例を用いる。
可能なRPFエントリは、(S1, UMH<IP address 1, IP address 2>)である。このRPFエントリは、IPアドレス1に対応するデバイスから送信されたS1G1マルチキャストパケットを転送すること、またはIPアドレス2に対応するデバイスから送信されたS1G1マルチキャストパケットを転送することを示す。
別の可能なRPFエントリは、第1のサブエントリおよび第2のサブエントリを含む。第1のサブエントリは、IPアドレス1に対応するデバイスから送信されたS1G1マルチキャストパケットを転送することを示す、(S1, UMH<IP address 1>)である。第2のサブエントリは、IPアドレス2に対応するデバイスから送信されたS1G1マルチキャストパケットを転送することを示す、(S1, UMH<IP address 2>)である。
任意選択で、L1によって受信されたメッセージ1がIPアドレス1およびIPアドレス0を含み、メッセージ2がIPアドレス2およびIPアドレス0を含む場合には、L1は、マルチキャストトラフィック(S1,G1)がエニーキャストIPアドレス0によって識別されるデバイスグループから来るとL1が予想することを示すために、マッピング関係1およびマッピング関係2に基づいてRPFエントリ(S1, Anycast-UMH<IP address 0 >)、(IP address 1, IP address 0)、および(IP address 2, IP address 0)をさらに確立することがある。エニーキャストIPアドレス0は、IPアドレス1を用いて表されるデバイスR1、およびIPアドレス2を用いて表されるデバイスR2を含む。IPアドレス0は、IPアドレス1またはIPアドレス0のいずれかを識別するために使用されることもある。
以下では、R1/R2、P1/P2、およびL1/L2を含むネットワークがIPv6ネットワークである例を用いる。
可能なRPFエントリは、(S1, UMH< IPv6 address 1, IPv6 address 2>)である。このRPFエントリは、IPv6アドレス1に対応するデバイスから送信されたS1G1マルチキャストパケットを転送すること、またはIPv6アドレス2に対応するデバイスから送信されたS1G1マルチキャストパケットを転送することを示す。
別の可能なRPFエントリは、第1のサブエントリおよび第2のサブエントリを含む。第1のサブエントリは、IPv6アドレス1に対応するデバイスから送信されたS1G1マルチキャストパケットを転送することを示す、(S1, UMH< IPv6 address 1>)である。第2のサブエントリは、IPv6アドレス2に対応するデバイスから送信されたS1G1マルチキャストパケットを転送することを示す、(S1, UMH< IPv6 address 2>)である。
任意選択で、L1によって受信されたメッセージ1がIPv6アドレス1およびIPv6アドレス0を含み、メッセージ2がIPv6アドレス2およびIPv6アドレス0を含む場合には、L1は、マッピング関係3およびマッピング関係4に基づいてRPFエントリ(S1, Anycast-UMH<IPv6 address 0>)、(IPv6 address 1, IPv6 address 0)、および(IPv6 address 2, IPv6 address 0)をさらに確立することがある。IPv6アドレス0は、IPv6アドレス1またはIPv6アドレス0のいずれかを識別するために使用されることもある。
ステップ450:L1が、マルチキャスト参加メッセージをR1に送信する。
ステップ451:L1が、マルチキャスト参加メッセージをR2に送信する。
L1は、メッセージ3を用いてマルチキャスト参加メッセージをR1に送信し、メッセージ4を用いてマルチキャスト参加メッセージをR2に送信することがある。メッセージ3およびメッセージ4は、BGP-MVPNメッセージであることもあるし、BGP-EVPNメッセージであることもある。
任意選択で、L1からR1に送信されるメッセージ3がR1のIPアドレス1をさらに搬送して、R1がマルチキャスト参加メッセージがR1に送信されたと決定し、マルチキャスト参加をマルチキャストソースに送信するようになっていることもある。同様に、L1からR2に送信されるメッセージ4がR2のIPアドレス2をさらに搬送して、R2がマルチキャスト参加メッセージがR2に送信されたと決定し、マルチキャスト参加をマルチキャストソースに送信するようになっていることもある。
ステップ455:R1が、マルチキャスト参加メッセージをマルチキャストソースに送信する。
ステップ456:R2が、マルチキャスト参加メッセージをマルチキャストソースに送信する。
本願の本実施形態では、R1またはR2がマルチキャスト参加メッセージをマルチキャストソースに送信することもあるし、R1およびR2の両方がマルチキャスト参加メッセージをマルチキャストソースに送信することもある。換言すれば、本実施形態では、ステップ455のみが実行されることもあるし、ステップ456のみが実行されることもあるし、ステップ455およびステップ456の両方が実行されることもある。
ステップ460:マルチキャストソースが、S1G1マルチキャストデータパケットをR1に送信する。
マルチキャストソースは、本願では、S1G1マルチキャストデータパケットをR1およびR2の両方に送信することがある。あるいは、マルチキャストソースは、S1G1マルチキャストデータパケットをR1/R2の一方のノードに送信することもある。換言すれば、マルチキャストソースは、S1G1マルチキャストデータパケットをR1に送信することもあるし、S1G1マルチキャストデータパケットをR2に送信することもある。
説明を容易にするために、図4Aおよび図4Bでは、マルチキャストソースがS1G1マルチキャストデータパケットをR1に送信する例を用いて説明が提供される。
可能な実装では、マルチキャストソースのインタフェースは、Eth-trunkインタフェースとして構成されることもあり、マルチキャストソースのマルチキャストトラフィックは、R1またはR2のいずれかに送信される。具体的には、マルチキャストソースをR1/R2に接続するために使用される2つのインタフェースは、Eth-trunkインタフェースとして構成されることがある。任意選択で、R1/R2のインタフェースも、いくつかのシステムではEth-trunkインタフェースとして構成される必要がある。マルチキャストソースは、S1G1マルチキャストデータパケットをR1/R2に接続されたインタフェースのうちの一方のみに送信する。
別の可能な実装では、R1およびR2の両方が、マルチキャスト参加メッセージをマルチキャストソースに送信して、マルチキャストパケットをR1およびR2にインジェストすることがある。この場合、R1/R2は、デバイス間の相互メッセージに基づいて、それらのデバイスのうちのいずれかがマルチキャストパケットを転送すると決定する。
別の可能な実装では、R1/R2は、1つのエニーキャストIPアドレスを使用して、マルチキャストソースからマルチキャストパケットを受信することがある。例えば、マルチキャストパケットは、ユニキャストパケットにカプセル化され、このユニキャストパケットの宛先アドレスが、そのエニーキャストIPアドレスである。このようにして、マルチキャストパケットは、複数のデバイスではなく、R1またはR2のいずれかに到達する。この実装では、R1またはR2のいずれかによって受信されるユニキャストパケットが外部IPヘッダを含むことを理解されたい。R1またはR2は、ユニキャストパケット中の外部IPヘッダ中の宛先アドレスがR1またはR2であるときにパケットをカプセル化解除し、内部S1G1マルチキャストデータパケットを取得する。
このエニーキャストIPアドレスは、上述のエニーキャストRPFに使用されたエニーキャストIPアドレス0と同じであることも、異なることもあることに留意されたい。これは、本願では特に限定されない。
説明を容易にするために、図4Aおよび図4Bでは、マルチキャストソースがS1G1マルチキャストデータパケットをR1に送信する例を用いて説明が提供されることに留意されたい。
ステップ470:R1が、S1G1マルチキャストデータパケットをL1に送信する。
任意選択で、一例では、R1は、以下の構成を有することがある。
「ip vpn vpn1」は、VPNインスタンスが構成されていることを示し、「ipv4-family」は、VPNv4とも呼ばれるVPN IPv4アドレスファミリが構成されていることを示す。「ipv6-family」は、VPNv6とも呼ばれるVPN IPv6アドレスファミリが構成されていることを示す。「Mvpn」は、mvpnがVPNインスタンスに対してイネーブルにされていることを示し、VPNインスタンスは、MVPNインスタンスとも呼ばれる。「sender enable」は、MVPNマルチキャストの送信側として使用されるノードが、マルチキャストソースから送信されたマルチキャストパケットを転送することがあることを示す。「Anycast-rpf enable」は、anycast-rpfがイネーブルにされていることを示す。「sender-enable」が構成されている場合には、ノードからリーフノードに送信されるメッセージは、anycast-rpf情報を搬送することがあることは理解され得る。
R1は、複数の方法でコアネットワークを介してS1G1マルチキャストデータパケットをL1に送信する。可能な実装では、R1は、ポイントツーマルチポイント(point-to-multipoint、P2MP)トンネルを介してS1G1マルチキャストデータパケットをL1に送信することがある。別の可能な実装では、R1は、ビットインデックスエクスプリシットレプリケーション(bit index explicit replication、BIER)マルチプロトコルラベルスイッチング(multi-protocol label switching、MPLS)トンネルを介してS1G1マルチキャストデータパケットをL1に送信することがある。別の可能な実装では、R1は、BIERインターネットプロトコルバージョン6(internet protocol version 6、BIERv6)トンネルを介してS1G1マルチキャストデータパケットをL1に送信することがある。
例えば、R1は、P2MPトンネルを介してS1G1マルチキャストデータパケットをL1に送信することがある。S1G1マルチキャストデータパケットは、以下のフォーマットでカプセル化されることがある。
(P2MP label, IP packet <S1G1>)
R1がL1に送信されるS1G1マルチキャストデータパケットをネクストホップノードに送信するときにカプセル化されるP2MPラベル(label)は、R1ノードとL1ノードの間のネクストホップノードによってP2MPトンネルに割り当てられるラベルである。例えば、R1がS1G1マルチキャストデータパケットをP1に送信するときにカプセル化されるP1ノードは、P1によってP2MPトンネルに割り当てられるラベルである。P1がL1に送信されるS1G1マルチキャストデータパケットをネクストホップノードに送信するときにカプセル化されるP2MPラベルは、P1ノードとL1ノードの間のネクストホップノードによってP2MPトンネルに割り当てられるラベルである。例えば、P1がS1G1マルチキャストデータパケットをL1に送信するときにカプセル化されるL1ノードは、L1によってP2MPトンネルに割り当てられるラベルである。P2MPトンネルは、転送等価クラス(forwarding equivalence class、FEC)を用いて識別されることがある。P2MPトンネルのFECは、ヘッドノードのIPアドレスおよびトンネルIDを含む。例えば、(head node R1, tunnel ID=1)はFECであり、(head node R1, tunnel ID=2)も別のFECである。ノードはラベルをP2MPトンネルに割り当てるが、これは、ノードが例えばFECに対応するラベルを生成し、ラベルLabel1を(head node R1, tunnel ID=1)に割り当て、ラベルLabel2を(head node R1, tunnel ID=2)に割り当てることを意味する。
例えば、R1は、BIER-MPLSトンネルを介してS1G1マルチキャストデータパケットをL1に送信することがある。S1G1マルチキャストデータパケットは、以下のフォーマットでカプセル化されることがある。
(BIER Header, Optional VpnLabel, IP packet <S1G1>)
R1がL1に送信されるマルチキャストデータパケットをネクストホップノードに送信するときにカプセル化されるBIERヘッダ中のBIERラベルは、R1ノードとL1ノードの間のネクストホップノードによってBIERトンネルに割り当てられるラベルである。例えば、R1がS1G1マルチキャストデータパケットをP1に送信するときにカプセル化されるP1ノードは、P1によってBIERトンネルに割り当てられるBIERラベルである。P1がL1に送信されるS1G1マルチキャストデータパケットをネクストホップノードに送信するときにカプセル化されるBIERラベルは、P1ノードとL1ノードの間のネクストホップノードによってBIERトンネルに割り当てられるラベルである。例えば、P1がS1G1マルチキャストデータパケットをL1に送信するときにカプセル化されるL1ノードは、L1によってBIERトンネルに割り当てられるBIERラベルである。BIERトンネルまたはBIERラベルは、トリプレットに対応することがあり、トリプレット(サブドメイン識別子(sub-domain-id)、ビット列長(bit string length、BSL)、およびセット識別子(set identifier、SI))によって識別されることがある。例えば、L1は、ラベルLabel1をトリプレット(0,256,0)に割り当て、P1は、ラベルLabel2をトリプレット(0,256,0)に割り当てる。R1は、トリプレット(0,256,0)を用いてパケットをP1に送信するときに、ラベルLabel2をBIERラベルとしてBIERヘッダにカプセル化する。P1は、Label2に基づいてパケットに対応するトリプレット(0,256,0)を学習し、BIERに基づいてパケットをL1に転送するときに、ラベルLabel1をBIERLabelとしてBIERヘッダにカプセル化する。
例えば、R1は、BIERv6トンネルを介してS1G1マルチキャストデータパケットをL1に送信することがある。S1G1マルチキャストデータパケットは、以下のフォーマットでカプセル化されることがある。
(outer IPv6, outer IPv6 extension header <with BIER header>, IP packet <S1G1>)
R1によってカプセル化される外部IPv6中のソースアドレスは、R1ノードのIPv6アドレスであり、BIERヘッダ中のBitString中のL1ノードに対応するビット位置は1であり、R1によって送信されるパケットは、P1を用いてL1に送信される。
ステップ475:L1が、RPFエントリに従って、R1から送達されたS1G1マルチキャストデータパケットを転送するかどうかを決定する。
具体的には、L1は、S1G1マルチキャストデータパケットを受信した後でエニーキャストRPFチェックを実行する。
可能な実装では、L1は、P2MPトンネルからマルチキャストデータパケットを受信し、L1は、P2MPラベルに基づいて、そのパケットの実際の出所であるIPアドレスを学習する。例えば、L1によって受信されるパケット中のP2MPラベルはLabel1であり、L1は、対応(FEC<IP address of head node R1=IP address 1,tunnel ID=1>, P2MP Label=Label1)を記憶する。この場合には、L1は、Label1に基づいて、パケットが実際にはIPアドレス1から来ることを知り得る。L1は、マッピング関係1に従って、パケットの実際の出所であるIPアドレスが、IPアドレス0、すなわちパケットの実際の出所であるデバイスグループにマッピングされ得ることを学習する。L1は、RPFエントリ中の予想されるAnycast-UMHに基づいて、パケットについての予想されるUMHがIPアドレス0であることを学習する。2つのUMHが同じである場合には、RPFチェックは成功し、L1は、マルチキャストデータパケットをH1に転送することがある。
別の可能な実装では、L1は、BIERトンネルからマルチキャストデータパケットを受信し、L1は、BIERヘッダに基づいて、そのパケットの実際の出所であるIPアドレスを学習する。例えば、L1によって受信されるパケットのBIERヘッダ中のBIERラベルはLabel1であり、L1は、対応(<0,256,0>,BIER Label=Label1)を記憶する。この場合には、L1は、Label1に基づいて、パケットがトリプレット<0,256,0>に対応することを知り得る。L1は、BIERヘッダ中のBFIR-id=X、パケットに対応するSub-domain-id=0、およびL1に記憶される対応<Sub-domain-id=0,BFIR-id=X,BFIR-prefix=IP address 1>に基づいて、パケットが実際にはIPアドレス1から来ることを取得し得る。L1は、マッピング関係1に従って、パケットの実際の出所であるIPアドレスが、IPアドレス0にマッピングされ得ることを学習する。L1は、RPFエントリ中の予想されるAnycast-UMHに基づいて、パケットについての予想されるUMHがIPアドレス0であることを学習する。2つのUMHが同じである場合には、RPFチェックは成功し、L1は、マルチキャストデータパケットをH1に転送することがある。
別の可能な実装では、L1は、BIERv6トンネルからマルチキャストデータパケットを受信し、L1は、外部IPv6ヘッダ中のソースアドレスに基づいて、そのパケットの実際の出所であるIPアドレスを学習する。例えば、L1によって受信されるパケットの外部IPv6ヘッダ中のソースアドレスは、IPv6アドレス1である。L1は、マッピング関係3に従って、パケットの実際の出所であるIPアドレスが、IPv6アドレス0にマッピングされ得ることを学習する。L1は、RPFエントリ中の予想されるAnycast-UMHに基づいて、パケットについての予想されるUMHがIPv6アドレス0であることを学習する。2つのUMHが同じである場合には、RPFチェックは成功し、L1は、マルチキャストデータパケットをH1に転送することがある。
ステップ478:L1が、マルチキャストデータパケットをH1に転送する。
任意選択で、いくつかの実施形態では、L1とマルチキャストソースの間の通信リンクが故障することが、ノードR1が故障すること、ノードR1とマルチキャストソースの間のリンクが故障すること、またはR1とP1/P2の間のリンクが故障することとして理解されることもある。図4Bに示すように、この方法は、ステップ480から497をさらに含むことがある。以下、ステップ480から497について別個に詳細に述べる。
ステップ480:マルチキャストソースが、S1G1マルチキャストデータパケットをR2に送信する。
R1とマルチキャストソースの間の通信リンクが故障している場合、例えば、図1に示すように、デバイスCE1が故障している、またはCE1とマルチキャストソースの間の通信リンクが故障している場合には、マルチキャストソースは、マルチキャストデータパケットをR2に送信することがあり、R2は、このマルチキャストデータパケットをL1に送信することを理解されたい。以下、上記の障害を決定する具体的な実装について詳細に述べる。
例えば、R1ノードが故障していると決定される。本願では、R1に接続されたインタフェースの状態がダウンであることをマルチキャストソースが検出した場合に、R1ノードが故障していると決定されることがある。マルチキャストソースは、これ以上R1ノードにマルチキャストデータパケットを送信する必要はない。任意選択で、R2に接続されたインタフェースの状態がアップであることをマルチキャストソースが検出した場合に、マルチキャストソースはR2にマルチキャストデータパケットを送信することもある。
例えば、R1とP1の間のリンクまたはR1とP2の間のリンクが故障していると決定される。R1がR1のインタフェースの状態がダウンであることを検出した後で、R1は、R1とマルチキャストソースの間のリンクを無効にして、R1に接続されたインタフェースの状態がダウンであり、R2に接続されたインタフェースの状態がアップであることをマルチキャストソースが検出するようにし得る。この場合には、マルチキャストソースは、R2にマルチキャストデータパケットを送信する。
任意選択で、いくつかの実施形態では、R1のインタフェースの状態がダウンであることをR1が検出した後、R1とマルチキャストソースの間のリンクをR1が無効にする前に、以下の構成がさらに実行されることもある。
ステップ490:R2が、S1G1マルチキャストデータパケットをL1に送信する。
任意選択で、一例では、R2は、以下の構成を有することもある。
これらの構成は、ステップ470のR1上の構成と同様である。詳細については、ステップ470の設定情報の説明を参照されたい。本明細書では、詳細について重ねて述べることはしない。
S1G1マルチキャストデータパケットを受信した後で、R2は、R2上のMVPN構成に基づいてマルチキャストデータパケットをカプセル化し、そのパケットをコアネットワークを介してL1に送信する。R2は、複数の方法でコアネットワークを介してS1G1マルチキャストデータパケットをL1に送信する。可能な実装では、R2は、P2MPトンネルを介してS1G1マルチキャストデータパケットをL1に送信する。別の可能な実装では、R2は、BIER-MPLSトンネルを介してS1G1マルチキャストデータパケットをL1に送信することがある。別の可能な実装では、R2は、BIERv6トンネルを介してS1G1マルチキャストデータパケットをL1に送信することがある。具体的な実装はステップ470における実装と同様である。詳細については、ステップ470の説明を参照されたい。本明細書では、詳細について重ねて述べることはしない。
ステップ495:L1が、RPFエントリに従って、R2から送達されたS1G1マルチキャストデータパケットを転送するかどうかを決定する。
具体的には、L1は、S1G1マルチキャストデータパケットを受信した後でエニーキャストRPFチェックを実行する。
可能な実装では、L1は、P2MPトンネルからマルチキャストデータパケットを受信し、L1は、P2MPラベルに基づいて、そのパケットの実際の出所であるIPアドレスを学習する。例えば、L1によって受信されるパケット中のP2MPラベルはLabel2であり、L1は、対応(FEC<IP address of head node R1=IP address 2,tunnel ID=1>,P2MP Label=Label2)を記憶する。この場合には、L1は、Label2に基づいて、パケットが実際にはIPアドレス2から来ることを知り得る。L1は、RPFエントリ中の予想されるAnycast-UMHに基づいて、パケットについての予想されるUMHがIPアドレス0であることを学習する。2つのUMHが同じである場合には、RPFチェックは成功し、L1は、マルチキャストデータパケットをH1に転送することがある。
別の可能な実装では、L1は、BIERトンネルからマルチキャストデータパケットを受信し、L1は、BIERヘッダに基づいて、そのパケットの実際の出所であるIPアドレスを学習する。例えば、L1によって受信されるパケットのBIERヘッダ中のBIERラベルはLabel1であり、L1は、対応(<0,256,0>,BIER Label=Label1)を記憶する。この場合には、L1は、Label1に基づいて、パケットがトリプレット<0,256,0>に対応することを知り得る。L1は、BIERヘッダ中のBFIR-id=Y、パケットに対応するSub-domain-id=0、およびL1に記憶される対応<Sub-domain-id=0,BFIR-id=Y,BFIR-prefix=IP address 2>に基づいて、パケットが実際にはIPアドレス2から来ることを取得し得る。L1は、マッピング関係2に従って、パケットの実際の出所であるIPアドレスが、IPアドレス0にマッピングされ得ることを学習する。L1は、RPFエントリ中の予想されるAnycast-UMHに基づいて、パケットについての予想されるUMHがIPアドレス0であることを学習する。2つのUMHが同じである場合には、RPFチェックは成功し、L1は、マルチキャストデータパケットをH1に転送することがある。
別の可能な実装では、L1は、BIERv6トンネルからマルチキャストデータパケットを受信し、L1は、外部IPv6ヘッダに基づいて、そのパケットの実際の出所であるIPv6アドレス、例えばソースアドレス、すなわちL1によって受信されるパケットの外部IPv6ヘッダ中のIPv6アドレス2を学習する。L1は、マッピング関係4に従って、パケットの実際の出所であるIPアドレスが、IPv6アドレス0にマッピングされ得ることを学習する。L1は、RPFエントリ中の予想されるAnycast-UMHに基づいて、パケットについての予想されるUMHがIPv6アドレス0であることを学習する。2つのUMHが同じである場合には、RPFチェックは成功し、L1は、マルチキャストデータパケットをH1に転送することがある。
ステップ497:L1が、マルチキャストデータパケットをH1に転送する。
上述の技術的解決策では、一方で、障害がないときには、マルチキャストソースから送信されるトラフィックはR1のみに送信され、R1のみが、そのトラフィックをコアネットワークを介してL1に送信する。したがって、コアネットワーク中にはマルチキャストトラフィックのコピーが1つしかなく、さらにもう1つのマルチキャストトラフィックのコピーを使用する必要はない。一方、R1ノードとマルチキャストソースの間のリンクが故障しているときには、マルチキャストソースから送信されたトラフィックはR2のみに送信され、R2のみが、そのトラフィックをコアネットワークを介してL1に送信し、R2は、L1がマルチキャスト参加メッセージを送信するのを待機する必要がない。これにより、より高速なサービス回復を実施することができる。
以下、図2に示すシナリオを例として用い、図5Aおよび図5Bの実施形態を参照して、本願の実施形態で提供されるパケット転送方法の具体的な実装について詳細に述べる。
図5Aおよび図5Bは、本願の実施形態による別のパケット転送方法を示す概略流れ図である。図5Aおよび図5Bに示すように、この方法は、ステップ510から595を含むことがある。以下、ステップ510から595について別個に詳細に述べる。
ステップ510:R1が、デバイス識別子をL1に送信する。
ステップ511:R2が、デバイス識別子をL1に送信する。
ステップ520:L1が、R1/R2のデバイス識別子情報を記憶する。
ステップ530:L1が、H1から送信されるS1G1マルチキャスト参加メッセージを受信する。
ステップ540:L1が、RPFエントリを確立する。
ステップ550:L1が、マルチキャスト参加メッセージをR1に送信する。
ステップ551:L1が、マルチキャスト参加メッセージをR2に送信する。
ステップ555:R1が、マルチキャスト参加メッセージをマルチキャストソースに送信する。
ステップ556:R2が、マルチキャスト参加メッセージをマルチキャストソースに送信する。
ステップ560:R1が、R1/R2の共通のIPアドレス識別子をSWに送信する。
ステップ561:R2が、R1/R2の共通のIPアドレス識別子をSWに送信する。
ステップ560およびステップ561は任意選択であることに留意されたい。R1/R2の共通のIPアドレス識別子は、本願の本実施形態でもSW上で構成されることがある。
いくつかの実施形態では、例えば、セグメント化されたMVPN内のR1/R2は、さらにR1/R2の共通のIPアドレス識別子をSWに送信する。SWは、R1およびR2の共通のIPアドレス識別子を静的に構成することがある。本願では、共通のIPアドレス識別子は、例えばIPアドレス0であることもあるし、別の共通の識別子であることもある(例えば整数であることもある)。説明を容易にするために、以下は、前述の構成例におけるIPアドレス0(192.168.1.100)がR1/R2の共通のIPアドレス識別子として使用される例を用いて説明する。
可能な実装では、R1/R2は、アドバタイズされたBGP-MVPNルートにおけるIPアドレス0を含むことがある。例えば、R1/R2は、BGP-MVPN I-PMSI A-DルートにおけるIPアドレス0を含むことがある。別の例では、R1/R2は、BGP-MVPN S-PMSI A-DルートにおけるIPアドレス0をさらに含むこともある。
別の可能な実装では、R1/R2は、アドバタイズされたBGP-EVPNルートにおけるIPアドレス0を含むことがある。例えば、R1/R2は、BGP-MVPN IMETルートにおけるIPアドレス0を含むことがある。別の例では、R1/R2は、BGP-EVPN S-PMSI A-DルートにおけるIPアドレス0をさらに含むこともある。
メッセージのフォーマットは、ステップ410のメッセージ1またはメッセージ2の構造と同様である。詳細については、ステップ410の説明を参照されたい。本明細書では、詳細について重ねて述べることはしない。
別の可能な実装では、R1およびR2の共通のIPアドレスまたはエニーキャストアドレスは、SW上で静的に構成され、SWがR1およびR2を含むデバイスグループにパケットを送信するための宛先アドレスとして使用されることがある。例えば、SWは、R1およびR2の共通のIPアドレスとして汎用ルーティングカプセル化(generic routing encapsulation、GRE)トンネルの宛先アドレスを構成することがあり、この場合、SWは、マルチキャストデータパケットをGREトンネルにカプセル化する、すなわち外部IPヘッダおよびGREヘッダをマルチキャストデータパケットにカプセル化する。ここで、外部IPヘッダ内の宛先アドレスは、R1およびR2のエニーキャストアドレスである。
説明を容易にするために、図5Aおよび図5Bでは、R1がR1/R2の共通のIPアドレス識別子SWに送信する例を用いて説明が提供されることを理解されたい。
ステップ570:マルチキャストソースが、S1G1マルチキャストデータパケットをSWに送信する。
ステップ580:SWが、S1G1マルチキャストデータパケットをR1に送信する。
図2のシナリオでは、マルチキャストソースは、最初にS1G1マルチキャストデータパケットをSWに送信することがあり、SWは、外部ユニキャストIPヘッダをS1G1マルチキャストデータパケットにカプセル化し、ここで、外部ユニキャストIPヘッダ中の宛先アドレスは、R1/R2の共通のIPアドレス識別子である。例えば、SWは、外部ユニキャストIPヘッダをS1G1マルチキャストデータパケットにカプセル化し、ここで、外部ユニキャストIPヘッダ中の宛先アドレスは、IPアドレス0(192.168.1.100)である。SWから送信されたパケットを受信した後で、R1/R2のいずれか一方は、パケットの外部IPヘッダ中の宛先アドレスがR1/R2のいずれか一方である場合に基づいてパケットをカプセル化解除して、内部のS1G1マルチキャストデータパケットを取得する。R1/R2のいずれか一方は、S1G1マルチキャストデータパケットをコアネットワークを介してL1に送信する。
説明を容易にするために、図5Aおよび図5Bでは、SWがS1G1マルチキャストデータパケットをR1に送信する例を用いて説明が提供される。
ステップ585:R1が、S1G1マルチキャストデータパケットをL1に送信する。
このステップは、ステップ470に対応する。詳細については、ステップ470の説明を参照されたい。本明細書では、詳細について重ねて述べることはしない。
ステップ590:L1が、RPFエントリに従って、R1から送達されたS1G1マルチキャストデータパケットを転送するかどうかを決定する。
ステップ595:L1が、マルチキャストデータパケットをH1に転送する。
このステップは、ステップ478に対応する。詳細については、ステップ478の説明を参照されたい。本明細書では、詳細について重ねて述べることはしない。
図2のシナリオでは、L1とマルチキャストソースの間の通信リンクが故障している場合、ここで、この通信リンクの故障は、R1が故障している、デバイスCE1が故障している、SWデバイスが故障している、またはR1とP1/P2の間のリンクが故障しているものとして理解され得るが、その場合には、マルチキャストソースは、マルチキャストデータパケットをR2に送信することがあり、R2は、そのマルチキャストデータパケットをL1に送信する。具体的な実装方法は、図4Aおよび図4Bのステップ480からステップ497に対応する。詳細については、図4Aおよび図4Bの説明を参照されたい。本明細書では、詳細について重ねて述べることはしない。
以上、図1から図5Aおよび図5Bを参照して本願の実施形態で提供されるパケット転送方法について詳細に述べた。以下、図6から図8を参照して、本願における装置の実施形態について詳細に述べる。方法の実施形態の説明は装置の実施形態の説明に対応することを理解されたい。したがって、詳細に述べられていない部分については、方法の実施形態を参照されたい。
図6は、本願の実施形態による第1のネットワークデバイス600の構造を示す概略図である。図6に示す第1のネットワークデバイス600は、前述の実施形態の方法において第1のネットワークデバイスによって実行される対応するステップを実行し得る。図6に示すように、第1のネットワークデバイス600は、受信モジュール610、決定モジュール620、および送信モジュール630を含む。
受信モジュール610は、マルチキャストソースデバイスから送信され、第1のデバイスグループによって転送される第1のマルチキャストパケットを受信するように構成され、ここで、第1のデバイスグループは、第2のネットワークデバイスおよび第3のネットワークデバイスを含み、第1のマルチキャストパケットは、第1のマルチキャストグループ中の1つのネットワークデバイスによって第1のネットワークデバイスに転送される。
決定モジュール620は、リバースパス転送RPFエントリに従って、第1のマルチキャストパケットが第1のデバイスグループによって転送されたマルチキャストパケットであると決定する。ここで、RPFエントリは、第1のサブエントリおよび第2のサブエントリを含み、第1のサブエントリは、第1のネットワークデバイスに、第2のネットワークデバイスから送信された第1のマルチキャストパケットを転送するように指示する。第2のサブエントリは、第1のネットワークデバイスに、第3のネットワークデバイスから送信された第1のマルチキャストパケットを転送するように指示する。
送信モジュール630は、RPFエントリに従って第1のマルチキャストパケットをマルチキャスト宛先デバイスに送信するように構成される。
可能な実装では、第1の通信リンクが、正常な状態である。第1の通信リンクは、マルチキャストソースデバイスから第2のネットワークデバイスへ、そこから第1のネットワークデバイスへの通信リンクである。送信モジュール630は、具体的には、第1のサブエントリに従って第1のマルチキャストパケットをマルチキャスト宛先デバイスに送信するように構成される。
別の可能な実装では、第2の通信リンクが、正常な状態である。第2の通信リンクは、マルチキャストソースデバイスから第3のネットワークデバイスへ、そこから第1のネットワークデバイスへの通信リンクである。受信モジュール610は、具体的には、第1の通信リンクを介して転送された第1のマルチキャストパケットを受信するように構成される。第1の通信リンクのメトリックは、第2の通信リンクのメトリック未満である。
別の可能な実装では、第1の通信リンクが障害状態であり、第2の通信リンクが正常な状態であるときには、送信モジュール630は、具体的には、第2のサブエントリに従って第1のマルチキャストパケットをマルチキャスト宛先デバイスに送信するように構成される。
別の可能な実装では、受信モジュール610は、第2のネットワークデバイスから送信される第1の制御情報を受信するようにさらに構成され、ここで、第1の制御情報は、第2の識別子を含み、第2の識別子は、第2のネットワークデバイスの識別子である。第1のネットワークデバイスは、第2の識別子に基づいて第1のサブエントリを生成するように構成された生成モジュールをさらに含み、ここで、第1のサブエントリは、第2の識別子と第1のマルチキャストパケットに対応するマルチキャストソースグループ(S、G)との間の対応である。受信モジュールは、第3のネットワークデバイスから送信された第2の制御情報を受信するようにさらに構成され、ここで、第2の制御情報は、第3の識別子を含み、第3の識別子は、第3のネットワークデバイスの識別子である。生成モジュールは、第3の識別子に基づいて第2のサブエントリを生成するようにさらに構成され、ここで、第2のサブエントリは、第3の識別子と第1のマルチキャストパケットに対応するマルチキャストソースグループ(S、G)との間の対応である。
別の可能な実装では、第2の識別子および第3の識別子は、インターネットプロトコルIPアドレスまたはインターネットプロトコルバージョン6IPv6アドレスである。
別の可能な実装では、第1デバイスグループ識別子は、IPアドレス、IPv6アドレス、または整数である。
別の可能な実装では、第1の制御情報は、第1デバイスグループ識別子をさらに含む。第2の制御情報は、第1デバイスグループ識別子をさらに含む。第1デバイスグループ識別子は、第1のデバイスグループの識別子である。決定モジュール620は、具体的には、第1デバイスグループ識別子に基づいてRPFエントリを決定するように構成される。
図7は、本願の実施形態による第1のデバイスグループ700の構造を示す概略図である。図7に示す第1のデバイスグループ700は、前述の実施形態の方法において第1のデバイスグループによって実行される対応するステップを実行し得る。図7に示すように、第1のデバイスグループ700は、送信モジュール710を含む。
送信モジュール710は、第1のデバイスグループ内の第2のネットワークデバイスを用いて、第2の識別子および第1デバイスグループ識別子を第1のネットワークデバイスに送信するように構成され、ここで、第1のデバイスグループは、第2のネットワークデバイスおよび第3のネットワークデバイスを含み、第2の識別子は、第2のネットワークデバイスの識別子であり、第1デバイスグループ識別子は、第1のデバイスグループの識別子である。
送信モジュール710は、第1のデバイスグループ内の第3のネットワークデバイスを用いて、第3の識別子および第1デバイスグループ識別子を第1のネットワークデバイスに送信するようにさらに構成され、ここで、第3の識別子は、第3のネットワークデバイスの識別子であり、第2の識別子、第3の識別子、および第1デバイスグループ識別子は、第1のネットワークデバイスが第2の識別子、第3の識別子、および第1デバイスグループ識別子に基づいてリバースパス転送RPFエントリを生成するのをトリガするために使用され、RPFエントリは、第1のサブエントリおよび第2のサブエントリを含み、第1のサブエントリは、第1のネットワークデバイスに、第1のデバイスグループ内の第2のネットワークデバイスから送信された第1のマルチキャストパケットを転送するように指示し、第2のサブエントリは、第1のネットワークデバイスに、第1のデバイスグループ内の第3のネットワークデバイスから送信された第1のマルチキャストパケットを転送するように指示する。
可能な実装では、第1のデバイスグループ700は、マルチキャストソースデバイスから送信された第1のマルチキャストパケットを第1のデバイスグループ内のネットワークデバイスを用いて受信するように構成された受信モジュール720をさらに含む。送信モジュールは、第1のデバイスグループ内のネットワークデバイスを用いて第1のマルチキャストパケットを第1のネットワークデバイスに転送するようにさらに構成される。
別の可能な実装では、送信モジュール710は、具体的には、マルチキャストソースから送信されたユニキャストパケットを、第1のデバイスグループ内のネットワークデバイスを用いて受信するように構成され、ここで、第1のマルチキャストパケットは、ユニキャストパケットにカプセル化される。
別の可能な実装では、ユニキャストパケットの宛先アドレスは、第1デバイスグループ識別子である。
別の可能な実装では、第1の通信リンクが、正常な状態である。第1の通信リンクは、マルチキャストソースデバイスから第2のネットワークデバイスへ、そこから第1のネットワークデバイスへの通信リンクである。送信モジュール710は、具体的には、第1のデバイスグループ内の第2のネットワークデバイスを用いて、マルチキャストソースデバイスから受信された第1のマルチキャストパケットを第1のネットワークデバイスに転送するように構成される。
別の可能な実装では、第2の通信リンクが、正常な状態である。第2の通信リンクは、マルチキャストソースデバイスから第3のネットワークデバイスへ、そこから第1のネットワークデバイスへの通信リンクである。第1の通信リンクのメトリックは、第2の通信リンクのメトリック未満である。
別の可能な実装では、第1の通信リンクが障害状態であり、第2の通信リンクが正常な状態であるときには、送信モジュール710は、具体的には、第1のデバイスグループ内の第3のネットワークデバイスを用いて、マルチキャストソースデバイスから受信された第1のマルチキャストパケットを第1のネットワークデバイスに転送するように構成される。
別の可能な実装では、第1デバイスグループ識別子は、IPアドレス、IPv6アドレス、または整数である。
図8は、本願の実施形態による第1のネットワークデバイス2000のハードウェア構造を示す概略図である。図8に示す第1のネットワークデバイス2000は、前述の実施形態の方法において第1のネットワークデバイスによって実行される対応するステップを実行し得る。
図8に示すように、第1のネットワークデバイス2000は、プロセッサ2001、メモリ2002、インタフェース2003、およびバス2004を含む。インタフェース2003は、ワイヤレスまたは有線で実装され得、具体的にはネットワークアダプタであることがある。プロセッサ2001と、メモリ2002と、インタフェース2003とは、バス2004を介して接続される。
インタフェース2003は、具体的には、伝送器および受信器を含むことがあり、第1のネットワークデバイスが前述の受信および送信を実施するように構成される。例えば、インタフェース2003は、マルチキャストソースデバイスから送信され、第1のデバイスグループによって転送された第1のマルチキャストパケットを受信することをサポートするように構成される。別の例では、インタフェースは、RPFエントリに従って第1のマルチキャストパケットをマルチキャスト宛先デバイスに送信することをサポートするように構成される。別の例では、インタフェースは、第2のサブエントリに従って第1のマルチキャストパケットをマルチキャスト宛先デバイスに送信することをサポートするように構成される。
プロセッサ2001は、前述の実施形態において第1のネットワークデバイスによって実行される処理を実行するように構成される。例えば、プロセッサは、リバースパス転送RPFエントリに従って、第1のマルチキャストパケットが第1のデバイスグループによって転送されたマルチキャストパケットであると決定し、第2の識別子に基づいて第1のサブエントリを生成し、第3の識別子に基づいて第2のサブエントリを生成し、かつ/または本明細書に記載される技術のためのその他のプロセスを実行するように構成される。
例えば、プロセッサ2001は、図4Aおよび図4Bのステップ410から495をサポートするように構成される。メモリ2002は、オペレーティングシステム20021およびアプリケーション20022を含み、プログラム、コード、または命令を記憶するように構成される。プログラム、コード、または命令を実行するときには、プロセッサまたはハードウェアデバイスは、方法の実施形態における第1のネットワークデバイスの処理プロセスを完了することがある。任意選択で、メモリ2002は、読取り専用メモリ(read-only memory、ROM)およびランダムアクセスメモリ(random access memory、RAM)を含むことがある。ROMは、基本入出力システム(basic input/output system、BIOS)または埋込み型システムを含み、RAMは、アプリケーションおよびオペレーティングシステムを含む。第1のネットワークデバイス2000がランする必要があるときには、ROMに組み込まれたBIOSまたは埋込み型システムのブートローダが使用されて、システムをブートして始動させ、第1のネットワークデバイス2000をブートして通常のラン状態に入らせる。通常のラン状態に入った後で、第1のネットワークデバイス2000は、RAM中のアプリケーションおよびオペレーティングシステムをランして、方法の実施形態における第1のネットワークデバイス2000の処理プロセスを完了する。
図8は、第1のネットワークデバイス2000の簡略化された設計しか示していないことは理解され得る。実際の適用では、第1のネットワークデバイスは、任意の数量のインタフェース、プロセッサ、またはメモリを含み得る。
図9は、本願の実施形態による別の第1のネットワークデバイス2100のハードウェア構造を示す概略図である。図9に示す第1のネットワークデバイス2100は、前述の実施形態の方法において第1のネットワークデバイスによって実行される対応するステップを実行し得る。
図9に示すように、第1のネットワークデバイス2100は、主制御ボード2110、インタフェースボード2130、スイッチングボード2120およびインタフェースボード2140を含む。主制御ボード2110と、インタフェースボード2130および2140と、スイッチングボード2120とは、システムバスを介してシステムバックボードに接続されて、相互動作する。主制御ボード2110は、システム管理、デバイス保守、およびプロトコル処理などの機能を完了するように構成される。スイッチングボード2120は、インタフェースボードの間でデータを交換するように構成される(インタフェースボードは、ラインカードまたはサービスボードとも呼ばれる)。インタフェースボード2130および2140は、様々なサービスインタフェース(例えばPOSインタフェース、GEインタフェース、およびATMインタフェース)を提供し、データパケットを転送するように構成される。
インタフェースボード2130は、中央処理装置2131、転送エントリメモリ2134、物理インタフェースカード2133、およびネットワークプロセッサ2132を含むことがある。中央処理装置2131は、インタフェースボードを制御および管理し、主制御ボード上の中央処理装置と通信するように構成される。転送エントリメモリ2134は、RPFエントリを記憶するように構成される。物理インタフェースカード2133は、トラフィックを受信および送信するように構成される。ネットワークプロセッサ2132は、エントリに基づいて、トラフィックを受信および送信するように物理インタフェースカード2133を制御するように構成される。
具体的には、物理インタフェースカード2133は、マルチキャストソースデバイスから送信され、第1のデバイスグループによって転送された第1のマルチキャストパケットを受信するように構成される。第1のマルチキャストパケットを受信した後で、物理インタフェースカード2133は、中央処理装置2131を使用して、第1のマルチキャストパケットを中央処理装置2111に送信する。中央処理装置2111は、第1のマルチキャストパケットを処理する。
中央処理装置2111は、リバースパス転送RPFエントリに従って、第1のマルチキャストパケットが第1のデバイスグループによって転送されたマルチキャストパケットであると決定し、かつ/または本明細書に記載される技術のためのその他のプロセスを実行するようにさらに構成される。
本願の本実施形態では、インタフェースボード2140上の動作は、インタフェースボード2130上の動作と矛盾しないことを理解されたい。簡潔にするために、詳細は説明しない。本実施形態の第1のネットワークデバイス2100は、方法の実施形態における機能および/または様々な実施されるステップに対応することがあることを理解されたい。本明細書では、詳細について重ねて述べることはしない。
さらに、1つまたは複数の主制御ボードがあることもあり、複数の主制御ボードがあるときには、それらの主制御ボードは、アクティブな主制御ボードと、待機中の主制御ボードとを含むことがあることに留意されたい。1つまたは複数のインタフェースボードがあることもある。より強いデータ処理能力を有する第1のネットワークデバイスは、より多くのインタフェースボードを提供する。インタフェースボード上に、1つまたは複数の物理インタフェースカードがあることもある。スイッチングボードがないこともあるし、1つまたは複数のスイッチングボードがあることもある。複数のスイッチングボードがあるときには、負荷分担および冗長バックアップがともに実施されることもある。集中型の転送アーキテクチャでは、第1のネットワークデバイスは、スイッチングボードを必要としないこともあり、インタフェースボードが、システム全体のサービスデータを処理する機能を提供する。分散型の転送アーキテクチャでは、第1のネットワークデバイスは、少なくとも1つのスイッチングボードを有することがあり、複数のインタフェースボードの間のデータ交換がスイッチングボードを使用して実施されて、大容量のデータの交換および処理能力を提供する。したがって、分散型のアーキテクチャにおける第1のネットワークデバイスのデータアクセスおよび処理能力は、集中型のアーキテクチャにおけるデバイスより良好である。使用される具体的なアーキテクチャは、特定のネットワーキング展開シナリオによって決まる。これは、本明細書では限定されない。
本願の実施形態は、コンピュータプログラムを記憶するように構成されたコンピュータ可読媒体をさらに提供する。コンピュータプログラムは、前述の態様のうちのいずれか1つの任意の可能な実装における方法を実行するために使用される命令を含む。可読媒体は、読取り専用メモリ(read-only memory、ROM)およびランダムアクセスメモリ(random access memory、RAM)であることがある。これは、本願の実施形態では限定されない。
本願の実施形態は、コンピュータプログラム製品をさらに提供する。このコンピュータプログラム製品は、第1のネットワークデバイスに適用され、このコンピュータプログラム製品は、命令のシリーズを含む。命令が実行されたときに、前述の態様による方法における第1のネットワークデバイスの動作が実行される。
本願の実施形態は、コンピュータプログラム製品をさらに提供する。このコンピュータプログラム製品は、第1のデバイスグループに適用され、このコンピュータプログラム製品は、命令のシリーズを含む。命令が実行されたときに、前述の態様による方法における第1のデバイスグループの動作が実行される。
前述のプロセスの一連番号は、本願の様々な実施形態における実行順序を意味しているわけではないことを理解されたい。プロセスの実行順序は、それらのプロセスの機能および内部論理に従って決定されるものとし、本願の実施形態の実施プロセスに対するいかなる限定であるとも解釈されるべきではない。
当業者なら、本明細書に開示される実施形態において記載される例と組み合わせて、電子ハードウェア、またはコンピュータソフトウェアと電子ハードウェアの組合せによってユニットおよびアルゴリズムステップが実装され得ることに気づき得る。機能がハードウェアによって実行されるかソフトウェアによって実行されるかは、技術的解決策の特定の適用分野および設計制約条件によって決まる。当業者なら、様々な方法を使用して、記載される機能をそれぞれの特定の適用分野のために実装し得るが、その実装が本願の範囲を超えるものと考えるべきではない。
便利かつ簡潔な説明にするために、前述のシステム、装置、およびユニットの詳細な動作プロセスについては、方法の実施形態における対応するプロセスを参照することは、当業者には明確に理解され得る。本明細書では、詳細について重ねて述べることはしない。
本願で提供されるいくつかの実施形態では、開示されるシステム、装置、および方法は、他のやり方で実装されることもあることを理解されたい。例えば、記載される装置の実施形態は、単なる例である。例えば、ユニットへの分割は、単に論理機能の分割であり、実際の実装ではほかの分割もあり得る。例えば、複数のユニットまたは構成要素が、別のシステムに結合または統合されることもあるし、いくつかの特徴が無視される、または実行されないこともある。さらに、表示または記載される相互の結合または直接的な結合もしくは通信接続は、いくつかのインタフェースを介して実装され得る。装置またはユニットの間の間接的な結合または通信接続は、電子的形態、機械的形態、またはその他の形態で実装され得る。
別個の部分として記載されるユニットは、物理的に分離していることも分離していないこともあり、ユニットとして表示される部分は、物理ユニットであることも物理ユニットでないこともあり、1つの位置に位置していることもあり、または複数のネットワークユニット上に分散されていることもある。これらのユニットの一部または全てが実際の要件に従って選択されて、実施形態の解決策の目的を達成し得る。
さらに、本願の実施形態における機能ユニットは、1つの処理ユニットに統合されることもあるし、それらのユニットのそれぞれが物理的に単独で存在することもあるし、2つ以上のユニットが1つのユニットに統合されることもある。
機能がソフトウェア機能ユニットの形態で実装され、独立した製品として販売または使用されるときには、これらの機能は、コンピュータ可読記憶媒体に記憶されることがある。このような理解に基づいて、本願の技術的解決策、従来の技術に寄与する部分、またはこれらの技術的解決策の一部は、ソフトウェア製品の形態で実装されることがある。コンピュータソフトウェア製品は、記憶媒体に記憶され、コンピュータデバイス(パーソナルコンピュータ、サーバ、またはネットワークデバイスであり得る)に本願の実施形態において記載される方法のステップの全てまたは一部を実行するように命令するいくつかの命令を含む。前述の記憶媒体は、プログラムコードを記憶することができる任意の媒体、USBフラッシュドライブ、取外し可能ハードディスク、読取り専用メモリ(read-only memory、ROM)、ランダムアクセスメモリ(random access memory、RAM)、磁気ディスク、または光ディスクを含む。
以上の説明は、単に本願の具体的な実装であり、本願の保護範囲を限定することが意図されているわけではない。本願に開示される技術的範囲内の当業者には容易に分かる任意の変形または置換は、本願の保護範囲に含まれるものとする。したがって、本願の保護範囲は、特許請求の範囲の保護範囲によって決まるものとする。