JP2022535405A - Bierパケット送信方法及び装置 - Google Patents

Bierパケット送信方法及び装置 Download PDF

Info

Publication number
JP2022535405A
JP2022535405A JP2021571827A JP2021571827A JP2022535405A JP 2022535405 A JP2022535405 A JP 2022535405A JP 2021571827 A JP2021571827 A JP 2021571827A JP 2021571827 A JP2021571827 A JP 2021571827A JP 2022535405 A JP2022535405 A JP 2022535405A
Authority
JP
Japan
Prior art keywords
bier
header
ipv6
forwarding
packet
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2021571827A
Other languages
English (en)
Other versions
JP7322188B2 (ja
Inventor
シエ,ジンルゥォン
シア,ヤン
リゥ,イソォン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of JP2022535405A publication Critical patent/JP2022535405A/ja
Application granted granted Critical
Publication of JP7322188B2 publication Critical patent/JP7322188B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1854Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with non-centralised forwarding system, e.g. chaincast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/16Multipoint routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/24Multipath
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/32Flooding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/34Source routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/50Routing or path finding of packets in data switching networks using label swapping, e.g. multi-protocol label switch [MPLS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/741Routing in networks with a plurality of addressing schemes, e.g. with both IPv4 and IPv6
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2212/00Encapsulation of packets

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

この出願は、BIERパケット送信方法を提供する。当該方法は、IPv6プロトコルを用いてカプセル化されて第2の転送装置によって送信されたBIERパケットを受信し該BIERパケットはIPv6基本ヘッダ及びBIERヘッダを含み、IPv6基本ヘッダ内の宛先アドレスフィールドは第1の転送装置の第1のIPv6アドレスであり、転送テーブル内の第1のIPv6アドレスに対応する識別子に基づいてBIERパケット上でBIER転送を実行することを決定し、該識別子は、第1のIPv6アドレスがBIER転送用の宛先アドレスであることを指し示すために使用されることを含む。この出願にて提供される技術的ソリューションでは、ノードが、第1のIPv6アドレスの識別子に基づいて、BIERパケット上でBIER転送を行うことを決定し得る。これは、BIERパケットを受信するノードが、従来技術におけるIPv6アドレスに基づいてパケットタイプを決定することを防ぐ。従って、転送効率が改善される。

Description

この出願は、“BIERパケット送信方法及び装置”と題して2019年6月6日に中国特許庁に出願された中国特許出願第201910493114.7号に対する優先権を主張するものであり、それをその全体にてここに援用する。
この出願は、ネットワーク通信分野に関し、より具体的には、ビットインデックス明示的複製BIERパケット送信方法及び装置に関する。
インターネットプロトコル(internet protocol、IP)マルチキャスト技術は、IPネットワーク上での効率的なポイント・ツー・マルチポイントデータ伝送を実現し、それにより、ネットワーク帯域幅を効果的に節約し、ネットワーク負荷を低減させる。従って、インターネットプロトコルマルチキャスト技術は、リアルタイムデータ伝送、マルチメディア会議、データコピー、インターネットプロトコルテレビジョン(internet protocol television、IPTV)、ゲーム、シミュレーション、及びこれらに類するものにおいて広く使用されている。マルチキャスト技術を用いたマルチキャストプロトコルによれば、ポイント・ツー・マルチポイントデータ転送を実現するために、ネットワークプレーンを論理ツリー状の構造にするように制御プレーンマルチキャストツリーを構築する必要がある。配信ツリー構築を中核とするこのようなマルチキャストルーティングプロトコルにおけるトランジットノードは、マルチキャスト転送情報の複雑なステータスを維持管理する必要がある。ネットワーク規模が大きくなり、マルチキャストデータトラフィックがますます増えるにつれて、マルチキャスト技術は、ますます高まるコスト、並びに大きな運用及び保守上の難題に直面する。
これに対処するために、マルチキャストデータ転送パスを構築するための新しい技術が業界で提唱され、ビットインデックス明示的複製(bitindexed explicit replication、BIER)技術と呼ばれている。この技術は、マルチキャスト配信ツリーを構築する必要のない新しいマルチキャスト技術アーキテクチャを提案するものである。BIER技術をサポートする転送ノードは、カプセル化されたBIERヘッダ情報に基づいてBIERドメインでBIERパケットを転送することができる。
BIERパケットは、インターネットプロトコルバージョン6(internet protocol version 6、IPv6)を用いた伝送のためにカプセル化される必要がある。従来の技術的ソリューションでは、BIER技術をサポートする転送ノードが、各ノードによってフラッディングされる一般IPアドレスを、IPv6基本ヘッダ内の宛先アドレスフィールドにカプセル化する。しかしながら、一般IPアドレスが宛先アドレスフィールド内に埋められるので、BIERパケットを受信するノードが、宛先アドレスフィールド内のIPv6アドレスに基づいてパケットフォーマットのタイプを決定する必要があり、それにより比較的低い転送効率をもたらす。
故に、転送効率をどのように改善するかが、現在喫緊に解決される必要がある問題となっている。
この出願は、BIERパケット送信方法及び装置を提供する。隣接ノードの第1のIPv6アドレスが、IPv6拡張ヘッダ内の宛先アドレスフィールドに埋められ得る。斯くして、隣接ノードは、第1のIPv6アドレスの識別子に基づいて、BIERパケット上でBIER転送を実行することを決定する。これは、BIERパケットを受信するノードが、従来技術におけるIPv6アドレスと他のフィールドとに基づいてパケットタイプを一つ一つ決定することを防止する。従って、転送効率が改善される。
第1の態様によれば、BIERパケット送信方法が提供される。当該方法は、第1の転送装置が、インターネットプロトコルバージョン6 IPv6 プロトコルを用いてカプセル化されて第2の転送装置によって送信されたBIERパケットを受信することを含み、BIERパケットは、IPv6基本ヘッダ及びBIERヘッダを含み、IPv6基本ヘッダ内の宛先アドレスフィールドは、第1の転送装置の第1のIPv6アドレスである。第1の転送装置は、転送テーブル内の第1のIPv6アドレスに対応する識別子に基づいてBIERパケット上でBIER転送を実行することを決定し、該識別子は、第1のIPv6アドレスが、それに基づいてBIER転送が実行される宛先アドレスであることを指し示すために使用される。
前述の技術的ソリューションでは、隣接ノードの第1のIPv6アドレスをIPv6拡張ヘッダ内の宛先アドレスフィールドに埋めることで、隣接ノードが、第1のIPv6アドレスの識別子に基づいて、BIERパケット上でBIER転送を実行することを決定するようにし得る。これは、BIERパケットを受信するノードが、従来技術におけるIPv6アドレスと他のフィールドとに基づいてパケットタイプを一つ一つ決定することを防止する。従って、転送効率が改善される。
取り得る一実装において、第1の転送装置は、IPv6基本ヘッダ内の宛先アドレスフィールドに埋められたアドレスが転送テーブル内の第1のIPv6アドレスと同じであることを決定し、そして、第1の転送装置は、第1のIPv6アドレスに対応する識別子に基づいて、BIERパケット上でBIER転送を実行することを決定する。
取り得る他の一実装において、第1の転送装置は、第1のIPv6アドレス及び識別子を設定する。
取り得る他の一実装において、第1の転送装置が、インターネットプロトコルバージョン6 IPv6 プロトコルを用いてカプセル化されて第2の転送装置によって送信されたBIERパケットを受信する前に、当該方法は更に、第1の転送装置が、ルーティングプロトコルを用いて、第1の転送装置の第1のIPv6アドレス及び識別子をネットワークにフラッディングすること、を含む。
前述の技術的ソリューションでは、第1の転送装置が第1のIPv6アドレス及び識別子をネットワーク内の他のノードにフラッディングすることで、ネットワーク内の他のノードが、転送テーブルを構築し、第1の転送装置によってフラッディングされた第1のIPv6アドレスに基づいてパケットをカプセル化するようにし得る。
理解されるべきことには、ルーティングプロトコルを用いることによって第1の転送装置によってネットワークにフラッディングされる第1のIPv6アドレス及び識別子は、BIERメッセージと同じメッセージ内で運ばれてもよいし、あるいは、BIERメッセージとは異なるメッセージ内であってもよい。これは、この出願において特に限定されることではない。
取り得る他の一実装において、第1のIPv6アドレスは、セグメントルーティング・オーバ・IPv6(IPv6 segment routing、SRv6)のセグメント識別子(segment identify、SID)である。
取り得る他の一実装において、IPv6基本ヘッダ内の次ヘッダ(next header、NH)フィールドが、1つのBIERヘッダを運ぶ拡張ヘッダであるときに、第1の転送装置は、BIERヘッダ内のビット列フィールドに基づいてBIER転送を実行する。
取り得る他の一実装において、IPv6基本ヘッダ内の次ヘッダNHフィールドがルーティングヘッダ(routingheader、)RH)であり、且つルーティングヘッダRH内の次ヘッダNHフィールドが、1つのBIERヘッダを運ぶ拡張ヘッダであるときに、第1の転送装置は、ルーティングヘッダRHをポッピングし、且つBIERヘッダ内のビット列フィールドに基づいてBIER転送を実行する。
取り得る他の一実装において、ルーティングヘッダRHはセグメントルーティングヘッダ(segmentroutingheader、SRH)であり、セグメントルーティングヘッダSRHのセグメント左SLは0である。
取り得る他の一実装において、IPv6基本ヘッダ内の次ヘッダNHフィールドが、1つのBIERヘッダを運ぶ拡張ヘッダであり、且つ拡張ヘッダ内の次ヘッダNHフィールドがAH認証ヘッダであるときに、第1の転送装置は、BIERヘッダ内のビット列フィールドに基づいてBIER転送を実行する。
取り得る他の一実装において、IPv6基本ヘッダ内の次ヘッダNHフィールドが、4、41、97、又は137であるときに、第1の転送装置は、IPv6基本ヘッダをポッピングし、ユーザデータパケットを転送する。
取り得る他の一実装において、第1の転送装置は、BIERヘッダ内のビット列及びBIER転送テーブルに基づいて、BIERパケットのIPv6基本ヘッダ内の宛先アドレスフィールド内の第3の転送装置の第1のIPv6アドレスを埋め、BIER転送テーブルは、第3の転送装置によってフラッディングされたメッセージ内で運ばれる第1のIPv6アドレスに基づいて構築され、そして、第1の転送装置は、BIER転送テーブルに基づいてBIERパケットを第3の転送装置に対して複製する。
取り得る他の一実装において、第1の転送装置は、1つ以上の運ばれるBIERヘッダをポッピングし、第1の転送装置は、1つ以上のBIERヘッダを含む拡張ヘッダをポッピングし、そして、第1の転送装置は、拡張ヘッダを含まないBIERパケットを第3の転送装置に対して複製する。
取り得る他の一実装において、第3の転送装置がリーフノードであると決定したときに、第1の転送装置は、1つ以上のBIERヘッダを運ぶ拡張ヘッダをポッピングする。
取り得る他の一実装において、拡張ヘッダは宛先オプションヘッダである。
取り得る他の一実装において、ルーティングプロトコルは、中間システム間IS-ISプロトコル、オープン最短パスファーストOSPFプロトコル、又は境界ゲートウェイプロトコルBGPのうちのいずれか1つを含む。
第2の態様によれば、BIERパケット送信装置が提供され、当該装置は、
インターネットプロトコルバージョン6 IPv6 プロトコルを用いてカプセル化されて第2の転送装置によって送信されたBIERパケットを受信するように構成された受信モジュールであり、BIERパケットは、IPv6基本ヘッダ及びBIERヘッダを含み、IPv6基本ヘッダ内の宛先アドレスフィールドは、第1の転送装置の第1のIPv6アドレスである、受信モジュールと、
転送テーブル内の第1のIPv6アドレスに対応する識別子に基づいてBIERパケット上でBIER転送を実行することを決定するように構成された処理モジュールであり、識別子は、第1のIPv6アドレスが、それに基づいてBIER転送が実行される宛先アドレスであることを指し示すために使用される、処理モジュールと、
を含む。
取り得る一実装において、処理モジュールは具体的に、IPv6基本ヘッダ内の宛先アドレスフィールドに埋められたアドレスが転送テーブル内の第1のIPv6アドレスと同じであることを決定するように構成される。第1の転送装置は、第1のIPv6アドレスに対応する識別子に基づいて、BIERパケット上でBIER転送を実行することを決定する。
取り得る他の一実装において、当該装置は更に、第1のIPv6アドレス及び識別子を設定するように構成された設定モジュール、を含む。
取り得る他の一実装において、当該装置は更に、ルーティングプロトコルを用いて、第1の転送装置の第1のIPv6アドレス及び識別子をネットワークにフラッディングするように構成された送信モジュール、を含む。
取り得る他の一実装において、処理モジュールは具体的に、IPv6基本ヘッダ内の次ヘッダNHフィールドが、1つのBIERヘッダを運ぶ拡張ヘッダであるときに、BIERヘッダ内のビット列フィールドに基づいてBIER転送を実行する、ように構成されている。
取り得る他の一実装において、処理モジュールは具体的に、IPv6基本ヘッダ内の次ヘッダNHフィールドがルーティングヘッダRHであり、且つルーティングヘッダRH内の次ヘッダNHフィールドが、1つのBIERヘッダを運ぶ拡張ヘッダであるときに、ルーティングヘッダRHをポッピングし、且つBIERヘッダ内のビット列フィールドに基づいてBIER転送を実行する、ように構成されている。
取り得る他の一実装において、ルーティングヘッダRHはセグメントルーティングヘッダSRHであり、セグメントルーティングヘッダSRHのセグメント左SLは0である。
取り得る他の一実装において、処理モジュールは具体的に、IPv6基本ヘッダ内の次ヘッダNHフィールドが、1つのBIERヘッダを運ぶ拡張ヘッダであり、且つ拡張ヘッダ内の次ヘッダNHフィールドがAH認証ヘッダであるときに、BIERヘッダ内のビット列フィールドに基づいてBIER転送を実行する、ように構成されている。
取り得る他の一実装において、処理モジュールは具体的に、BIERヘッダ内のビット列及びBIER転送テーブルに基づいて、BIERパケットのIPv6基本ヘッダ内の宛先アドレスフィールド内の第3の転送装置の第1のIPv6アドレスを埋め、BIER転送テーブルは、第3の転送装置によってフラッディングされたBIERメッセージ内で運ばれる第1のIPv6アドレスに基づいて構築される、ように構成されており、第1の転送装置は、BIER転送テーブルに基づいてBIERパケットを第3の転送装置に対して複製する。
取り得る他の一実装において、処理モジュールは具体的に、1つ以上の運ばれるBIERヘッダをポッピングし、1つ以上のBIERヘッダを含む拡張ヘッダをポッピングし、拡張ヘッダを含まないBIERパケットを第3の転送装置に対して複製する、ように構成されている。
取り得る他の一実装において、処理モジュールは具体的に、第3の転送装置がリーフノードであると決定したときに、1つ以上のBIERヘッダを運ぶ拡張ヘッダをポッピングする、ように構成されている。
取り得る他の一実装において、拡張ヘッダは宛先オプションヘッダである。
取り得る他の一実装において、ルーティングプロトコルは、中間システム間IS-ISプロトコル、オープン最短パスファーストOSPFプロトコル、又は境界ゲートウェイプロトコルBGPのうちのいずれか1つを含む。
第3の態様によれば、入力/出力インタフェースと、プロセッサと、メモリとを含む第1転送装置が提供され、プロセッサは、入力/出力インタフェースを制御して情報を送信及び受信するように構成され、メモリは、コンピュータプログラムを格納するように構成され、プロセッサが、メモリからコンピュータプログラムを呼び出してコンピュータプログラムを実行することで、第1の態様又は第1の態様の取り得る実装のうちのいずれか1つに従った方法を当該第1転送装置が実行する。
オプションで、プロセッサは、汎用プロセッサであってもよく、ハードウェア又はソフトウェアを用いて実装され得る。ハードウェアを用いてプロセッサが実装されるとき、プロセッサは、論理回路、集積回路、又はこれらに類するものとし得る。ソフトウェアを用いてプロセッサが実装されるとき、プロセッサは、汎用プロセッサとすることができ、メモリに格納されたソフトウェアコードを読み出すことによって実装される。メモリは、プロセッサ内に集積されてもよいし、あるいは、プロセッサの外部に置かれて独立に存在してもよい。
第4の態様によれば、コンピュータプログラムプロダクトが提供される。当該コンピュータプログラムプロダクトは、コンピュータプログラムコードを含む。該コンピュータプログラムコードがコンピュータ上で実行されるとき、該コンピュータは、前述の態様における方法を実行することを可能にされる。
第5の態様によれば、コンピュータ読み取り可能媒体が提供される。当該コンピュータ読み取り可能媒体はプログラムコードを格納しており、該コンピュータプログラムコードがコンピュータ上で実行されるとき、該コンピュータは、前述の態様における方法を実行することを可能にされる。
第6の態様によれば、システムが提供される。当該システムは、第1の転送ノード、第2の転送ノード、及び第3の転送ノードを含み、第1の転送ノードは、第1の態様又は第1の態様の取り得る実装のうちのいずれか1つに従った方法を実行するように構成される。第2の転送ノードは、第1の転送ノードによってフラッディングされた第1のIPv6アドレスに基づいて、BIERパケットのIPv6基本ヘッダ内の宛先アドレスフィールドを埋め、そして、BIERパケットを第1の転送ノードに送信するように構成される。第3の転送ノードは、第1の転送ノードによって送信されたBIERパケットを受信し、そして、BIERパケットのIPv6基本ヘッダ内の宛先アドレスフィールドに埋められたアドレスが、当該第3の転送ノードに対して設定された第1のIPv6アドレスであることに基づいて、BIERパケット上でBIER転送を実行するように構成される。
この出願の一実施形態に従ったBIER技術の概略ネットワーキング図である。 この出願の一実施形態に従った、BIERドメインでBIERヘッダに基づいてBIERパケットを送信することの概略ブロック図である。 この出願の一実施形態に従ったBIERv6パケットフォーマットの概略図であ。 この出願の一実施形態に従ったBIERパケット送信方法の概略フローチャートである。 この出願の一実施形態に従ったSRv6 locatorメッセージフォーマットの概略図である。 この出願の一実施形態に従ったIPv6-prefixメッセージフォーマットの概略図である。 この出願の一実施形態に従ったBIERパケット送信装置700の概略構成図である。 この出願の一実施形態に従った第1転送装置800の概略構成図である。
以下、添付の図面を参照して、この出願の技術的ソリューションを説明する。
インターネットプロトコル(internet protocol、IP)マルチキャスト技術は、IPネットワーク上での効率的なポイント・ツー・マルチポイントデータ伝送を実現し、それにより、ネットワーク帯域幅を効果的に節約し、ネットワーク負荷を低減させる。従って、インターネットプロトコルマルチキャスト技術は、リアルタイムデータ伝送、マルチメディア会議、データコピー、インターネットプロトコルテレビジョン(internet protocol television、IPTV)、ゲーム、シミュレーション、及びこれらに類するものにおいて広く使用されている。マルチキャスト技術を用いたマルチキャストプロトコルによれば、ポイント・ツー・マルチポイントデータ転送を実現するために、ネットワークプレーンを論理ツリー状の構造にするように制御プレーンマルチキャストツリーを構築する必要がある。配信ツリー構築を中核とするこのようなマルチキャストルーティングプロトコルにおけるトランジットノードは、マルチキャスト転送情報の複雑なステータスを維持管理する必要がある。ネットワーク規模が大きくなり、マルチキャストデータトラフィックがますます増えるにつれて、マルチキャスト技術は、ますます高まるコスト、並びに大きな運用及び保守上の難題に直面する。
これに対処するために、マルチキャストデータ転送パスを構築するための新しい技術が業界で提唱され、ビットインデックス明示的複製(bitindexed explicit replication、BIER)技術と呼ばれている。当該技術は、マルチキャスト配信ツリーを構築する必要のない新しいマルチキャスト技術アーキテクチャを提案するものである。図1に示すように、BIER技術をサポートするルータは、ビット転送ルータ(BIER forwarding router、BFR)と称されることがあり、BFR装置は、BIERパケットを受信して転送し得る。1つ以上のBFRを含むマルチキャスト転送ドメインは、BIERドメイン(BIER domain)と称される。BIERドメインのエッジにおいて、ユーザのマルチキャストデータに対してBIERデータパケットカプセル化を実行する装置は、ビット転送イングレスルータ(BIERforwarding ingress router、BFIR)と称され、BIERデータパケットをカプセル解除する装置は、ビット転送エグレスルータ(BIERforwarding egress router、BFER)と称される。
BIERドメインにおいて、各エッジノード(例えば、BFER)は、BIERサブドメイン(sub domain、SD)全体内でグローバルに一意であるビット位置(bit position)を有して設定される。例えば、値は、例えば1から256の範囲の値といった各エッジノードに対するBFR識別子(identification、ID)として設定され得る。BIERドメイン内の全てのBFRIDがビット列(bit string)を形成する。BIERドメイン内でユーザデータトラフィック(BIERパケットとも称される)の伝送のために、特定のBIERヘッダをカプセル化する必要がある。BIERヘッダは、ユーザデータトラフィックの全ての宛先ノードを特定するビット列を含む。BIERドメイン内のトランジットノードは、ユーザデータトラフィックを全ての宛先アドレスに送ることができることを保証するよう、BIERヘッダ内で運ばれるビット列に基づいてルーティングを実行する。
ノードに対して設定されたビット位置情報は、内部ゲートウェイプロトコル(interior gateway protocol、IGP)又は境界ゲートウェイプロトコル(border gateway protocol、BGP)を用いることによって、前もってBIERドメイン内にフラッディングされる。そして、BIERドメイン内の各ノードに転送されるべきユーザデータトラフィックを指し示すために、ビットインデックス転送テーブル(bit index forwarding table、BIFT)が形成される。BIERヘッダとともにカプセル化されたBIERパケットを受信すると、BFRはBIFTに従って、BIERパケットを宛先ノードに転送する。この出願の実施形態において、内部ゲートウェイプロトコルIGPは、以下に限られないが、オープン最短パスファースト(open shortest path first、OSPF)プロトコル、中間システム間(intermediate system tointermediate system、ISIS)プロトコル、及びこれらに類するものを含み得る。
理解を容易にするために、以下にて、BIER技術における基本概念を説明する。
(1)BIFT ID
BIFT IDフィールドは、サブドメイン(sub-domain、SD)/ビット列長(bit string length、BSL)/セット識別子(set identifier、SI)の組み合わせを含み得る。異なるBIFT IDは、SD/BSL/SIの異なる組み合わせに対応し得る。
1. サブドメイン(SD)
BIERドメインは、実際のサービスシナリオの要求に従って複数の異なるサブドメインSDを有して構成され得る。各サブドメインSDが、範囲[0-255]内の8ビット値であるサブドメイン識別子(sub-domain identify、SD-ID)で表される。例えば、例えば異なる仮想プライベートネットワーク(virtual private network、VPN)といった異なるサービスに基づいて、BIERドメイン内に異なるSDが構成され得る。例えば、VPN 1はSD 0を使用し、VPN 1はSD 1を使用する。
なお、代わりに複数のVPNが同じSDを使用してもよい。BIERドメイン内の異なるSDは、同一のIGPプロセス又はトポロジー内にあってもよいし、あるいは同一のIGPプロセス又はトポロジー内になくてもよい。これは、この出願の実施形態において特に限定されることではない。
2. ビット列長(BSL)
BSLは、BIERヘッダに含まれるビット列の長さである。複数のBSLが存在し得る。これは、この出願の実施形態において特に限定されることではない。BSLは、64ビット(最小)、128ビット、256ビット、512ビット、1024ビット、2048ビット、又は4096ビット(最大)とし得る。具体的には、パケットの識別に4ビットが使用される。例えば、BSLが64ビットであるとき、0001がパケットの識別に使用され、BSLが128ビットであるとき、0010がパケットの識別に使用され、BSLが512ビットであるとき、0100がパケットの識別に使用され、BSLが1024ビットであるとき、0101がパケットの識別に使用され、等々である。
3. セット識別子(SI)
SIは、ネットワーク内の複数のノード又は設定されたBFR IDを含むセットとして理解され得る。例えば、BSLが256ビットであるが、ネットワークに256よりも多いノードが存在する又は256よりも多いBFR IDが設定されているとき、それらのノード又はBFR IDは複数の異なるセットに分割される必要がある。例えば、そのBFR IDが1から256であるノードがセット0(setindex 0、すなわち、SI=0)を形成し、そのBFR IDが257から512であるノードがセット1(setindex 1、すなわち、SI=1)を形成する。
BIERパケットを受信した後、BIERドメイン内のBFRは、BIERヘッダ内のBIFT IDに基づいて、BIERパケットが属するSD、使用されるBSL、及びパケット又は設定されたBFR IDを転送するノードを含むセットを決定し得る。
以下に、BIFT IDによって表されるSD/BSL/SIの幾つかの取り得る組み合わせを列記する:
BIFT ID=91:SD 0、BSL 256、SI 0に対応
BIFT ID=92:SD 0、BSL 256、SI 1に対応
BIFT ID=93:SD 0、BSL 256、SI 2に対応
BIFT ID=94:SD 0、BSL 256、SI 3に対応
BIFT ID=95:SD 0、BSL 512、SI 0に対応
BIFT ID=96:SD 0、BSL 512、SI 1に対応。
例えば、BIFT IDが92であるとき、BIERパケットを受信した後、BFRは、BIERヘッダ内のBIFT IDに基づいて、BIERパケットがSD 0に属し、BIERヘッダで使用されるBSLが256ビットであり、且つBIERパケットがセット1(そのBFR IDが257から512であるノードを含むセット)に属することを決定し得る。
(2)BFRプレフィックス(BFR-prefix)
BFRプレフィックスは、各BFRのアドレス情報である。各BFRのアドレス情報は、BIERドメイン内で一意であり、ルータ識別子(routinidentifier)と等価である。具体的には、BFR-prefixは一般にBFR装置のループバック(loopback)アドレスである。
(3)ビット列(bit string)
ビット列内の各ビットは、BIERパケットを受信する次ホップノードを指し示すために使用され得る。BIERドメイン内のBFRがBIERパケットヘッダを受信すると、BFRは、BIERヘッダ内で運ばれるビット列及びBIFT IDに基づいてBIERパケットを転送する。
例えば、BFRによって受信されたBIERヘッダ内のBIFT IDは92であり、ビット列の長さは256ビットであり、BIERパケットを転送するノードは、そのBFR IDが257から512であるノードのうちの1つである。ビット列内の最下位ビット(最も右のビット)は、宛先ノードがそのBFR IDが257であるノードであることを指し示すために使用され、右から左に2番目のビットは、宛先ノードがそのBFR IDが258であるノードであることを指し示すために使用される。
図2を参照して、以下、BIER技術に基づいてBIERパケットを転送するプロセスを詳細に説明する。
図2に示すように、各BIERドメイン内のエッジノードに一意なBFR-idを割り当てる必要がある。例えば、エッジノードA、D、E、及びFに設定されるBFR-idは、それぞれ、4、1、2、及び3である。BIERヘッダ内にカプセル化されたビット列が、トラフィックの全ての宛先ノードを特定する。例えば、そのBFR-idが1であるノードDに対応するビット列は0001であり、そのBFR-idが2であるノードFに対応するビット列は0010であり、そのBFR-idが3であるノードEに対応するビット列は0100であり、そのBFR-idが4であるノードAに対応するビット列は1000である。
理解されるべきことには、各BIERドメイン内のエッジノードに割り当てられるBFR-id値を、ルーティングプロトコルを用いることによって該BIERドメイン内の他のネットワーク装置にフラッディングすることができ、フラッディングされるBIER情報は更に、ネットワークノードのIPアドレス及びカプセル化情報を含む。例えば、ノードAのフラッディングされるBIER情報は、ノードAのIPアドレス及びBIFT-idを運ぶ。BIERドメイン内のノードは、フラッディングされたBIER情報に基づいてビットインデックス転送テーブルBIFTを構築し得る。BIERパケットを受信した後、ノードは、構築したBIFTに従ってBIERパケットを宛先ノードに転送する。
ノードAの場合、そのBFR-idが1、2、及び3であるのBIERノードへの次ホップはノードBであり、そのBFR-idが4であるBIERノードへの次ホップはノードA自身である。従って、ノードAによって構築されるBIFTは次のようになる:
転送エントリ1:隣接(neighbor、Nbr)=B、転送ビットマスク(forwarding bit mask、FBM)=0111;
転送エントリ2:Nbr*=A、FBM=1000。
転送エントリ1は、BIERパケット内のビット列のうち、右から左に1番目のビット、2番目のビット、又は3番目のビットのいずれか1つが1であるときに、BIERパケットが隣接ノードBに送られることを指し示すために使用される。転送エントリ2は、BIERパケット内のビット列のうち、右から左に4番目のビットが1であるときに、BIERパケットがノードAに送られることを指し示すために使用される。ノードAはそれ自身であるため、ノードAはBIERヘッダを取り除き、BIERパケットを元のユーザデータパケットとして転送する。
なお、転送エントリにおいて、*は、Nbrがノードそれ自身であることを指し示すために使用される。同様に、他のノードも、隣接ノードに基づいてBIFTを構築し得る。詳細については、図2を参照されたい。詳細をここで再び説明することはしない。
ユーザデータパケットを受信した後、ノードAは、ユーザデータパケットをBIERヘッダとともにカプセル化する。一例において、ユーザデータパケットを受信した後、ノードAは、境界ゲートウェイプロトコルBGPメッセージに基づいて、ユーザデータパケットの受取人を知ることができる。例えば、ユーザデータパケットの受取人は、そのBFR-idが3であるノードE、そのBFR-idが2であるノードF、及びそのBFR-idが1であるノードDである。ノードAは、ビット列が0111であるBIERヘッダとともにBIERパケットをカプセル化し、カプセル化したBIERパケットを転送エントリ1に基づいて隣接ノードBに転送する。BIERパケットを受信した後、ノードBは、ビット列0111とBIFTとに基づいて、BIERパケットがノードC及びノードEに別々に送信される必要があることを決定する。BIERパケットをノードCに送信するとき、ノードBは、BIERヘッダ内のビット列0111とBIFT内のNbr=CエントリのFBMフィールドとに対してAND演算を実行し得る。この出願のこの実施形態では、ANDの結果は0011である。従って、ノードBは、BIERヘッダ内のビット列を0011に変更し、BIERパケットをノードCに送信し得る。同様に、BIERパケットをノードEに送信するとき、ノードBは、BIERヘッダ内のビット列を0100に変更し得る。BIERパケットを受信した後、ノードEは、ビット列0100に基づいて、BIERパケットが隣接ノードEに送られるべきであると決定する。ノードEは、転送テーブル内の識別子*に従って、隣接ノードEがノードE自身であると決定するので、ノードEは、BIERヘッダをカプセル解除し、内部層のユーザデータパケットの宛先アドレスに基づいてBIERパケットを転送する。
理解されるべきことには、BIERヘッダは、異なるプロトコルでは異なるカプセル化フォーマットを持つ。IPv6を用いてカプセル化されたBIERパケットは、BIERv6パケットとも称されることがある。リンク層にイーサネットリンクを使用するBIERv6パケットのフォーマットは次の通りである:
Ethヘッダ+IPv6基本ヘッダ+IPv6拡張ヘッダ(BIERヘッダを含む)+ユーザデータパケット
なお、説明を容易にするために、BIERv6パケットのカプセル化がイーサネットリンク層にオーバーレイされる例を用いる。この出願のこの実施形態において、BIERカプセル化は代わりに、例えばポイント・ツー・ポイントプロトコル(pointtopoint protocol、PPP)リンクといった別タイプのリンクにオーバーレイされてもよい。
理解されるべきことには、複数のIPv6拡張ヘッダタイプが存在し、例えば、IPv6拡張ヘッダが宛先オプションヘッダ(destination options header)とし得る。これは、この出願の実施形態において特に限定されることではない。
図3を参照して、以下、IPv6拡張ヘッダが宛先オプションヘッダである例を使って、IPv6を用いてカプセル化されたBIERパケットのフォーマットを詳細に説明する。
図3を参照するに、BIERv6パケットは、BIERv6ヘッダ及び内部層のユーザデータパケット(例えば、IPv6パケットとし得る)を含み得る。BIERv6ヘッダは、IPv6基本ヘッダと宛先オプションヘッダとを含み得る。宛先オプションヘッダがBIERヘッダを運ぶ。BIERヘッダに関する詳細については、前述の説明を参照されたい。詳細をここで再び説明することはしない。
(1)IPv6基本ヘッダ
バージョン(version):4ビット長
トラフィッククラス(traffic class、TC):8ビット長。このフィールドは、IPv6パケットのクラス及び優先度を指し示す。
フローラベル(flow label):20ビット長。“フロー”は、ネットワーク上の特定の送信元アドレスから特定の宛先アドレスへのデータパケットとして理解され得る。同一“フロー”に属するデータパケットは、同じフローラベルを持つ。
ペイロード長(payload length):16ビット長。このフィールドは、IPv6基本ヘッダ以外の長さ、例えば、IPv6拡張ヘッダ及び内部層のユーザデータパケットの長さ、を指し示す。
次ヘッダ(next header、NH):8ビット長。このフィールドは、IPv6基本ヘッダのすぐ後に続くIPv6拡張ヘッダの識別子(すなわち、IPv6拡張ヘッダのタイプ)として理解されることができ、各IPv6拡張ヘッダもNHフィールドを含む。
ホップ限度(hop limit、HL):8ビット長。このフィールドは、IPv4パケットヘッダ内の有効期間(time to live、TTL)フィールドと同様である。
送信元アドレス(source address、SA):128ビット長。このフィールドは、データパケットを送信するノードのIPv6アドレスを埋めるのに使用される。
宛先アドレス(destination address、DA):128ビット長。このフィールドはデータパケットを受信するノードのIPv6アドレスを埋めるのに使用される。宛先アドレスフィールドはユニキャストアドレスである。例えば、ノードDにBIERパケットを送るとき、ノードBは、宛先アドレスフィールドをノードDのIPv6アドレスで埋めることができる。
(2)宛先オプションヘッダ(destination options header)
次ヘッダ(next header、NH):8ビット長。このフィールドは、宛先オプションヘッダのすぐ後に続くIPv6拡張ヘッダの識別子(すなわち、IPv6拡張ヘッダのタイプ)、又は例えばユーザデータグラムプロトコル(user datagram protocol、UDP)パケットのタイプといった上位層ヘッダ(upper-layer header)のタイプとして理解され得る。
拡張ヘッダ長(header extend length、Hdr Ext Len):8ビット長。このフィールドは、例えば宛先オプションヘッダの長さといった、IPv6拡張ヘッダの長さを記述する。
タイプ-長さ-値(typelength value、TLV):TLV内のタイプ値は、TLVが1つのBIERヘッダを含むことを指し示し、TLV内の値部分がBIERヘッダ全体を含む。具体的には、TLV内のタイプ値は、図3に示されるオプションタイプ(option type)フィールドで運ばれ、値部分は、図3に示されるBIERヘッダ(BIER header)フィールドで運ばれる。
この出願のこの実施形態で提供されるBIERパケット送信方法によれば、BIERパケットを受信するノードのものであって識別子を運ぶものであるIPv6アドレスがIPv6拡張ヘッダの宛先アドレスフィールドに埋められ得る。斯くして、BIERパケットを受信するノードは、第1のIPv6アドレスの識別子に基づいて、BIERパケット上でBIER転送を実行することを決定する。これは、BIERパケットを受信するノードが、従来技術におけるIPv6アドレスと他のフィールドとに基づいてパケットタイプを一つ一つ決定することを防止する。従って、転送効率が改善される。
図4は、この出願の一実施形態に従ったBIERパケット送信方法の概略フローチャートである。図4の方法は、ステップ410及び420を含み得る。以下、ステップ410及び420を別々に詳細に説明する。
ステップ410:第1の転送装置が、IPv6プロトコルを用いてカプセル化されて第2の転送装置によって送信されたBIERパケットを受信する。
第1の転送装置によって受信されるIPv6プロトコルを用いてカプセル化されたBIERパケットは、IPv6基本ヘッダとBIERヘッダとを含む。IPv6プロトコルを用いてカプセル化されたBIERパケットの具体的なフォーマットについては、図3の説明を参照されたい。詳細をここで再び説明することはしない。
なお、BIERパケットは、マルチキャストデータを含んでいてもよいし、ユニキャストデータを含んでいてもよい。これは、この出願のこの実施形態において特に限定されることではない。
ステップ420:第1の転送装置が、BIERパケットにカプセル化され、転送テーブルに含められた第1のIPv6アドレスの識別子に基づいて、BIERパケット上でBIER転送を実行することを決定し、該識別子は、第1のIPv6アドレスが、それに基づいてBIER転送が実行される宛先アドレスであることを指し示すために使用される。
第1の転送装置は、IPv6基本ヘッダ内の宛先アドレスフィールドに埋められたアドレスが第1のIPv6アドレスであることを決定し、且つローカルに格納された転送テーブル内に第1のIPv6アドレスが存在するかを決定する。第1のIPv6アドレスが設定されている場合、第1の転送装置がBIERパケットの受信ノードであることが理解され得る。第1の転送装置は更に、転送テーブル内の第1のIPv6アドレスに対応する識別子に基づいて、BIERパケット上でBIER転送を実行する必要があることを決定することができ、該識別子は、第1のIPv6アドレスが、それに基づいてBIER転送が実行される宛先アドレスであることを指し示すために使用される。
例えば、転送テーブル内に設定された第1のIPv6アドレスに対応する識別子がEnd.BIERである場合、第1のIPv6アドレスに設定されたエンド機能(end function)がBIERパケット上でBIER転送を行っていることが理解され得る。第1のIPv6アドレスは、End.BIERタイプのIPv6アドレスとも称され得る。
なお、第1のIPv6アドレスは、第1の転送装置に対して新たに設定されるアドレスであってもよいし、あるいは既に設定されたアドレスであってもよい。これは、この出願のこの実施形態において特に限定されることではない。
オプションで、一部の実施形態において、例えば第1の転送装置といった、BIERドメイン内のノードは、End.BIERタイプのIPv6アドレスをBIERドメイン内の他のノードに対してフラッディングして、BIERパケットを転送するようにBIERドメイン内の各ノードに指し示すために使用されるBIFTを形成し得る。換言すれば、BIERドメイン内の各ノードが、隣接ノードによってフラッディングされたEnd.BIERタイプのIPv6アドレスに基づいて、BIFT又はBIERルーティングテーブルを構築し得る。
第1の転送装置がBIERドメイン内の他のノードに対してEnd.BIERタイプのIPv6アドレスをフラッディングし得る実装は複数存在する。これは、この出願のこの実施形態において特に限定されることではない。一例において、第1の転送装置は、第1のIPv6アドレスがEnd.BIERタイプのものであることを指し示す識別子を運ぶためにBFR-IPv6-prefixフラッディングメッセージを使用する。他の一例では、第1の転送装置は、BFR-IPv6-prefixフラッディングメッセージとは異なるメッセージを使用し、すなわち、第1の転送装置はSRv6 locatorメッセージを使用して、End.BIERタイプのIPv6アドレスと、IPv6アドレスに対応する識別子とを運ぶ。この識別子は、IPv6アドレスのタイプがEnd.BIERであることを指し示す。以下にて、具体的な例を参照して詳細な説明を提供する。詳細をここで再び説明することはしない。
理解されるべきことには、End.BIERタイプのIPv6アドレスは、BIERv6パケットがカプセル化されて転送されるときに運ばれるIPv6宛先アドレスを示すために使用される。
以下では、第1の転送装置が図2に示したノードBである例を用いることによって、この実施形態で提供されるBIERパケット送信プロセスを詳細に説明する。
ステップ1:ノードBが、End.BIERタイプのIPv6アドレスを設定する。
取り得る一実装において、設定されるEnd.BIERタイプのIPv6アドレスは、IPv6-prefixとは異なるIPv6アドレスとし得る。例えば、SIDをSRv6 locatorアドレス空間から選択することができる。以下は、locatorにおいてEnd.BIERタイプのIPv6アドレスを設定するための特定の一実装である:
segment-routing ipv6
locator as1 ipv6-prefix 2002::
opcode ::AAAA End.BIER ##End.BIERタイプのSIDとして2002::AAAAを設定する
opcode ::AAAB End.X ##End.XタイプのSIDとして2002::AAABを設定する。
取り得る他の一実装において、設定されるEnd.BIERタイプのIPv6アドレスは、インタフェース(例えば、ループバックインタフェース)上に設定された128ビットマスクを持つIPv6アドレスとし得る。End.BIERタイプのIPv6アドレスの設定方法は、一般IPv6アドレスの設定方法とは異なる。具体的な設定方法は次の通りであるとおりです:
interface loopback0
ipv6 address 2001::000A 128 ##これは一般IPv6アドレスである
ipv6 address 2001::000B 128 End.BIER ##これはEnd.BIERタイプのIPv6アドレスである。
以下は、End.BIERがBFR-IPv6-prefixとしても使用される設定である:
sub-domain 6 ipv6 ##IPv6を用いるようにBIERサブドメイン6を設定する
BFR-prefix 2001::000B ##End.BIERタイプのIPv6アドレスをBFR-IPv6-prefixとして設定する。
以下は、End.BIERがBFR-IPv6-prefixとしても使用される別の設定である:
Bier
sub-domain 6 ipv6 ##IPv6を用いるようにBIERサブドメイン6を設定する
BFR-prefix loopback0 ##loopback0上に設定されたEnd.BIERタイプのIPv6アドレスをBFR-prefixとして使用する。
ステップ2:ノードBが、設定されたEnd.BIERタイプのIPv6アドレスをローカルに格納するとともにフラッディングする。
取り得る一実装において、End.BIERタイプのIPv6アドレス及びそのEnd.BIERインジケーション情報をBIERドメイン内の他のノードに対してフラッディングするためにノードBによって使用されるメッセージは、BIER情報をフラッディングするのに使用されるメッセージとは異なる。例えば、End.BIERタイプのIPv6アドレス及びEnd.BIERインジケーション情報は、IS-IS SRv6 locatorメッセージ内で運ばれ、BIER情報は、IS-IS prefix-reachabilityメッセージ内で運ばれる。
具体的には、図5を参照するに、BIER情報は、IS-ISプレフィックスリーチャビリティ(prefix-reachability)TLVメッセージ内で運ばれる。該メッセージは、BFR-PrefixのIPv6アドレス(BFR-IPv6-Prefixと称する)を運び、さらに、BIERサブドメイン(sub-domain)情報を運び、例えば、BIERサブドメイン情報はBIER情報サブTLV(BIER InfosubTLV)とし得る。End.BIERタイプのIPv6アドレスは、IS-IS SRv6 locatorメッセージ内で運ばれる。例えば、End.BIERのSID値(例えば、SIDは第1のIPv6アドレスを指し示す)及びEnd.BIERインジケーション(例えば、SIDタイプがEnd.BIERを指し示す)は、SRv6 locatorメッセージ内のEnd.BIERのSRv6 SID情報内で運ばれ得る。End.BIERタイプのIPv6アドレスは、BFR-Prefixに対応するIPv6アドレスと異なってもよいし同じであってもよい。
取り得る他の一実装において、End.BIERタイプのIPv6アドレス及びEnd.BIER識別子は、BIER情報と同じメッセージ内で運ばれてもよい。例えば、IS-IS prefix-reachabilityメッセージが、End.BIERインジケーション(例えば、SIDタイプ=End.BIER)を運び、さらに、例えばBIERサブドメインSDなどのBIER情報を運ぶ。
具体的には、図6を参照するに、BIERサブドメイン(sub-domain)情報に加えて、例えばSIDタイプ=End.BIERといった、End.BIERインジケーション情報も、BIER情報をフラッディングするのに使用されるメッセージ内で運ばれ得る。対応して、BFR-Prefixに対応するIPv6アドレスも、End.BIERタイプIPv6アドレスとして使用され、End.BIERインジケーション情報を持つ。
ステップ3:ノードAが、ノードBによってフラッディングされたEnd.BIERタイプのIPv6アドレスに基づいて、IPv6ヘッダをカプセル化する。
ノードAは、ノードBによってフラッディングされたEnd.BIERタイプのIPv6アドレスに基づいて転送エントリを構築し、該転送エントリに従って、ノードBへの複製が必要であると決定する。ノードAは、次いで、ノードBによってフラッディングされたEnd.BIERタイプのIPv6アドレスを、IPv6基本ヘッダ内のDAフィールドに埋めて、ノードBにBIERパケットを送信する。
ステップ4:ノードBが、受信したBIERパケット内で運ばれたDAフィールド内のノードBのEnd.BIERタイプのIPv6アドレスに基づいて、BIERパケット上でBIER転送を実行する。
ノードAによって送信されたBIERパケットを受信した後、ノードBは、IPv6基本ヘッダ内のDAフィールドに埋められたアドレスが、ノードBに対して設定されたEnd.BIERタイプのIPv6アドレスであることを決定する。具体的には、ノードBは、ローカルに格納した転送テーブル内のIPv6アドレスがIPv6基本ヘッダ内のDAフィールドに埋められたアドレスと同じであることを決定し、そして、転送テーブル内のIPv6アドレスに対応する例えばSIDタイプ=End.BIERといった識別子に基づいて、受信したBIERパケット上でBIER転送を実行する必要があることを決定し得る。
取り得る一実装において、ノードBによって受信されたBIERパケットのIPv6基本ヘッダ内の次ヘッダNHが、1つのBIERヘッダを運ぶ拡張ヘッダであるとき、BIERパケットがSRHヘッダを含む場合に、ノードBは、SRHヘッダをポッピングし、BIERヘッダ内のビット列フィールドに基づいてBIER転送を実行する。それ以外の場合、ノードBは、BIERパケットを破棄し、インターネット制御メッセージプロトコル(internet control message protoco、ICMP)パラメータ問題メッセージを送信する。次の例では、IPv6基本ヘッダ内の次ヘッダNHは宛先オプションヘッダである。具体的な設定は以下の通りである:
1. IF NH=60 ##IPv6基本ヘッダ内の次ヘッダNHが宛先オプションヘッダ(60によって識別される)である
2. IF (DestOptHdr OptType=BIER) and (HdrExtLen*8+8=4+OptLength)
3. pop the SRH if exists. ##SRHヘッダが存在する場合、SRHヘッダをポッピングする
4. lookup the BIER Header inside the BIER. ##BIER内でBIERヘッダを位置特定する
5. forward via the matched entry. ##一致したエントリに基づいてパケットを転送する
6. ELSE
7. drop the packet; possibly send an ICMP parameter problem message;
8. ELSE
9. drop the packet; possibly send an ICMP parameter problem message;
“NH=60”は、IPv6基本ヘッダ内の次ヘッダが宛先オプションヘッダであることを指し示し、“DestOptHdr OptType=BIER”は、宛先オプションヘッダ内の第1オプションTLVのタイプがBIERであることを指し示し、“HdrExtLen*8+8=4+OptLength”は、宛先オプションヘッダが1つのTLVのみを含むことを指し示す。TLVの長さ+4が、宛先拡張ヘッダの全長と同じである(すなわち、宛先拡張ヘッダは1つのBIER TLVのみを含む)。
取り得る他の一実装において、ノードBによって受信されたBIERパケットのIPv6基本ヘッダ内の次ヘッダNHが、セグメントルーティングヘッダSRHであり、セグメントルーティングヘッダSRHのセグメント左SLが0であり、且つルーティングヘッダSRHの次ヘッダNHが、1つのBIERヘッダを運ぶ拡張ヘッダであるとき、ノードBは、SRHヘッダをポッピングし、BIERヘッダ内のビット列フィールドに基づいてBIER転送を実行する。それ以外の場合、ノードBは、BIERパケットを破棄し、ICMPパラメータ問題メッセージを送信する。次の例では、ルーティングヘッダSRH内の次ヘッダNHは宛先オプションヘッダである。具体的な設定は以下の通りである:
1. IF (NH=SRH and SL=0 and SRH_NH=DestOptHdr) ##拡張ヘッダがSRH及びDestOptHdrである
2. IF (DestOptHdr OptType=BIER) and (HdrExtLen*8+8=4+OptLength)
3. pop the SRH if exists. ##SRHヘッダが存在する場合、SRHヘッダをポッピングする
4. lookup the BIER Header inside the BIER. ##BIER内でBIERヘッダを位置特定する
5. forward via the matched entry. ##一致したエントリに基づいてパケットを転送する
6. ELSE
7. drop the packet; possibly send an ICMP parameter problem message;
8. ELSE IF (IPv6_NH=4 or 41 or 97 or 137)
9. pop the Outer IPv6 header, and process the next header.
10. ELSE
11. drop the packet; possibly send an ICMP parameter problem message;
ステップ8において、次ヘッダがNHチェーンの最後のNHである場合、すなわち、次ヘッダが上位層ヘッダ(upper-layer heade)で埋められたNHフィールドである場合、該上位層ヘッダは内部層パケットのタイプを指し示すことができ、ノードは、内部層ユーザデータパケットを転送することができる。例えば、IPv6_NH=4は、次ヘッダによって指し示される内部層パケットのタイプがIPv4であることを指し示し、IPv6_NH=41は、次ヘッダによって指し示される内部層パケットのタイプがIPv6であることを指し示し、IPv6_NH=6は、次ヘッダによって指し示される内部層パケットのタイプが伝送制御プロトコル(transmission control protoco、TCP)であることを指し示し、IPv6_NH=17は、次ヘッダによって指し示される内部層パケットのタイプがユーザデータグラムプロトコル(user datagram protocol、UDP)であることを指し示し、IPv6_NH=58は、次ヘッダによって指し示される内部層パケットのタイプがICMPであることを指し示し、そして、IPv6_NH=137は次ヘッダによって指し示される内部層パケットのタイプがマルチプロトコルラベルスイッチング(multi-protocol label switching、MPLS)であることを指す示す。
取り得る他の一実装において、ノードBによって受信されたBIERパケットのIPv6基本ヘッダ内の次ヘッダNHがフラグメントヘッダ(fragment header)であり、且つフラグメントヘッダの次ヘッダNHが、1つのBIERヘッダを運ぶ拡張ヘッダであるとき、あるいは、IPv6基本ヘッダが、BIERを運ぶ拡張ヘッダに続かれ、次いでフラグメントヘッダに続かれるとき、ノードBは、BIERヘッダ内のビット列フィールドに基づいてBIER転送を実行する。それ以外の場合、ノードBは、BIERパケットを破棄し、ICMPパラメータ問題メッセージを送信する。処理手順は以下の通りである:
1. IF (NH=Frag and Frag_NH=DestOptHdr) or (NH=DestOptHdr and Dest_NH=Frag)
2. IF (DestOptHdr OptType=BIER) and (HdrExtLen*8+8=4+OptLength)
3. pop the SRH if exists. ##SRHヘッダが存在する場合、SRHヘッダをポッピングする
4. lookup the BIER Header inside the BIER. ##BIER内でBIERヘッダを位置特定する
5. forward via the matched entry. ##一致したエントリに基づいてパケットを転送する
6. ELSE
7. drop the packet; possibly send an ICMP parameter problem message;
8. ELSE IF (IPv6_NH=4 or 41 or 97 or 137)
9. pop the Outer IPv6 header, and process the next header.
10. ELSE
11. drop the packet; possibly send an ICMP parameter problem message;
取り得る他の一実装において、ノードBによって受信されたBIERパケットのIPv6基本ヘッダ内の次ヘッダNHが、1つのBIERヘッダを運ぶ拡張ヘッダであり、拡張ヘッダの次ヘッダNHが認証ヘッダ(authentication header、AH)であるとき、BIERパケットがSRHヘッダを含む場合に、ノードBは、SRHヘッダをポッピングし、BIERヘッダ内のビット列フィールドに基づいてBIER転送を実行する。それ以外の場合、ノードBは、BIERパケットを破棄し、インターネット制御メッセージプロトコル(internet control message protoco、ICMP)パラメータ問題メッセージを送信する。次の例では、IPv6基本ヘッダ内の次ヘッダNHは宛先オプションヘッダである。具体的な設定は以下の通りである:
1. IF (IPv6_NH=DestOptHdr and Dest_NH=AH)
2. IF (DestOptHdr OptType=BIER) and (HdrExtLen*8+8=4+OptLength)
3. pop the SRH if exists. ##SRHヘッダが存在する場合、SRHヘッダをポッピングする
4. lookup the BIER Header inside the BIER. ##BIER内でBIERヘッダを位置特定する
5. forward via the matched entry. ##一致したエントリに基づいてパケットを転送する
6. ELSE
7. drop the packet; possibly send an ICMP parameter problem message;
8. ELSE IF (IPv6_NH=4 or 41 or 97 or 137)
9. pop the Outer IPv6 header, and process the next header.
10. ELSE
11. drop the packet; possibly send an ICMP parameter problem message;
取り得る他の一実装において、IPv6 NHチェーンの最後のNHがICMPv6である(すなわちlast_NH=ICMPv6)場合、BIERパケットは、例えばICMPv6パケットカウントを追加したりICMPv6応答パケットを送信したりするといった処理のために中央演算処理ユニット(central processing unit、CPU)に送り込まれ得る。具体的な設定は以下の通りである:
1. IF Last_NH=ICMPv6 ##IPv6 NHチェーンの最後のNHがICMPv6パケットを指し示す場合
2. Pump to CPU, add packet counter, possibly send an ICMP response message.
ステップ5:ノードBが、BIERパケットを隣接ノードEに転送する。
ノードBは、転送エントリ及びビット列0111に基づいて、BIERパケットがノードC及びノードEに別々に送信される必要があることを決定し得る。BIERパケットをノードCに送信するとき、ノードBは、BIERヘッダ内のビット列を0011に変更し、IPv6基本ヘッダ内のDAフィールドに、ノードCによってフラッディングされたEND.BIERタイプのIPv6アドレスを埋め、そして、BIERパケットをノードCに送信し得る。同様に、BIERパケットをノードEに送信するとき、ノードBは、BIERヘッダ内のビット列を0100に変更し、IPv6基本ヘッダ内のDAフィールドに、ノードEによってフラッディングされたEND.BIERタイプのIPv6アドレスを埋め、そして、BIERパケットをノードEに送信し得る。
取り得る一実装において、この出願のこの実施形態で、ノードBがノードEにBIERパケットを送信するとき、ノードBの隣接ノードEがリーフノードとして決定される場合に、ノードBは、BIERパケット内のBIERヘッダを運ぶ拡張ヘッダをポッピングし得る。例えば、ノードBは、BIERヘッダを運ぶ宛先オプションヘッダをポッピングし、BIERヘッダを運ぶ宛先オプションヘッダを含まないBIERパケットをノードEに送信する。ノードBによって送信されたBIERパケットをノードEが受信した後、ノードEはリーフノードであるので、ノードEは、BIERヘッダを運ぶ拡張ヘッダをカプセル解除し、内部層ユーザデータパケットを転送する必要がある。ノードBによって送信されたBIERパケットが、BIERヘッダを運ぶ拡張ヘッダを含まない場合、ノードEは、BIERヘッダを運ぶ拡張ヘッダをカプセル解除することなく、内部層ユーザデータパケットを直接転送することができる。具体的な設定は以下の通りである:
1. IF NH=60 ##IPv6基本ヘッダ内の次ヘッダNHが宛先オプションヘッダ(60によって識別される)である
2. IF (DestOptHdr OptType=BIER) and (HdrExtLen*8+8=4+OptLength)
3. pop the SRH if exists. ##SRHヘッダが存在する場合、SRHヘッダをポッピングする
4. lookup the BIER Header inside the BIER. ##BIER内でBIERヘッダを位置特定する
5. forward via the matched entry. ##一致したエントリに基づいてパケットを転送する
6. ELSE
7. drop the packet; possibly send an ICMP parameter problem message;
8. ELSE IF (IPv6_NH=4 or 41 or 97 or 137)
9. pop the Outer IPv6 header, and process the next header.
10. ELSE
11. drop the packet; possibly send an ICMP parameter problem message;
ノードEによって受信されたBIERパケットがBIERヘッダを含んでいないとき、ステップ1から7はスキップされることができ、ステップ8及び9を直接実行し、それによりリーフノードEの処理オーバーヘッドを削減することができる。
前述の技術的ソリューションでは、より柔軟なBIER展開を更にサポートすることができる。例えば、リーフノードEはBIERヘッダの読み取り又は処理をサポートしなくてもよいが、リーフノードEが外部IPv6ヘッダのポッピングをサポートする場合には、リーフノードEはこの方法に従ってネットワーク内に展開されてもよい。
取り得る他の一実装において、ノードBによって受信された宛先アドレスがBのEND.BIERである場合、ノードBは以下のEND.BIER処理手順を実行する:ノードBは、IPv6拡張ヘッダ内にN個のBIERヘッダがあることを決定し、M番目のBIERヘッダを読み取って複製し(例えば、M番目のBIERヘッダをノードEに対して複製し)、ノードEのEND.BIERをIPv6 DAフィールドに埋め、M番目のBIERヘッダ以外のBIERヘッダをポッピングし、そして、M番目のBIERヘッダのみを保持する。IPv6拡張ヘッダの長さフィールドはそれに従って変化される。次の例では、IPv6基本ヘッダ内の次ヘッダNHは宛先オプションヘッダである。具体的な設定は以下の通りである:
1. IF NH=60 //con2
2. IF (DestOptHdr OptType=BIER) and ((HdrExtLen*8+8)%(4+OptLength1)=0) //con1
3. Walk each TLV in DestOptHdr
4. If (OptType=BIER and OptLen=OptLength1) or(OptType=PadN and OptLen=0)
5. Continue
6. ELSE
7. Drop the packet; possibly send an ICMP parameter problem message;
8. End Walk of each TLV
9. For (N=0; N<(HdrExtLen*8+8)/(4+OptLength1); N++)
10. lookup the BIER Header begin from (N*OptLength1+4)bytes
11. copy packet if this packet need to forward to according to this lookup.
12. pop the TLV(s) except for this one, Set HdrExtLen=(4+OptLength1)/8.
13. forward via the matched entry,
14. END-FOR
15 ELSE //end of con1
16. drop the packet; possibly send an ICMP parameter problem message;
17. ELSE //end of con2
18. drop the packet; possibly send an ICMP parameter problem message;
ステップ2で、“HdrExtLen*8+8”は宛先オプションヘッダ(DestOptHdr)の全長を表し、“OptLength1”は第1のBIER TLVにおける長さ(Length、すなわち、BIERヘッダの長さ)を表す。宛先オプションヘッダ(DestOptHdr)がヘッダ全体の長さが8の整数倍であることを要求するので、BIERヘッダの長さ+4は8の整数倍である。宛先オプションヘッダの長さは8バイトの単位であり、最初の8バイトは含まない。例えば:
(NextHeader=x,Length=17,Type=BIER,Length=44) //注1;
(BIERヘッダ<12バイト(固定長)+256ビットを表す32バイト>)//最初のBIERヘッダ;
(Type=PadN,Length=0,Type=BIER,Length=44)//注2;
(BIERヘッダ<12バイト(固定長)+256ビットを表す32バイト>))//2番目のBIERヘッダ;
(Type=PadN,Length=0,Type=BIER,Length=44)//注3;
(BIERヘッダ<12バイト(固定長)+256ビットを表す32バイト>))//3番目のBIERヘッダ;
注1:DestOptHdrは、NHフィールド及び長さフィールドから始まる;
注2:PadN TLVは、2番目のBIER TLVの前にパディングされる;
注3:PadN TLVは、3番目のBIER TLVの前にパディングされる。
前述の構成において、ステップ3から8は、パケットフォーマットが要求を満たすかが決定されるループである。この出願のこの実施形態では、複数のBIERヘッダは同じ長さ(すなわち、最初のBIERヘッダのOptLength1と同じ長さ)を持つことが要求され、2番目以降のBIERヘッダはPadNでパディングされる(RFC 8200におけるパディング要求を参照)。
前述の設定において、ステップ9から14は、各BIERヘッダが検討されるがPadNヘッダは処理されない別のループである。最初のBIERヘッダが処理されるとき、最初のBIERヘッダに続く2つのBIERヘッダをポッピングするのは比較的容易であり、すなわち、(1*(OptLength1+4))番目のバイトから始まる96バイトのみが破棄される必要があり、IPv6拡張ヘッダの長さフィールド(DestOptHdr Length)が5に設定される。2番目のBIERヘッダが処理されるとき、最初の及び3番目のBIERヘッダがポッピングされる必要があり、すなわち、2番目のBIERヘッダ(1*(OptLength1+4)+4)番目のバイトから始まるOptLengthバイト)が、(0*(OptLength1+4)+4)番目のバイトがある位置にコピーされる必要があり、(1*(OptLength1+4))番目のバイトから始まる96バイトが破棄され、DestOptHdr Lengthが5に設定される。
3番目のBIERヘッダが処理されるとき、最初の及び2番目のBIERヘッダがポッピングされる必要があり、すなわち、3番目のBIERヘッダ(2*(OptLength1+4)+4)番目のバイトから始まるOptLengthバイト)が、(0*(OptLength1+4)+4)番目のバイトがある位置にコピーされる必要があり、(1*(OptLength1+4))番目のバイトから始まる96バイトが破棄され、DestOptHdr Lengthが5に設定される。
以上では、図1から図6を参照して、この出願の実施形態で提供されるBIERパケット送信方法を詳細に説明している。以下では、図7及び図8を参照して、この出願の実施形態におけるBIERパケット送信装置を詳細に説明する。理解されるべきことには、方法実施形態の説明は装置実施形態の説明に対応する。従って、詳細に説明されない部分については、前述の方法実施形態における説明を参照されたい。
図7は、この出願の一実施形態に従ったBIERパケット送信装置700の概略構成図である。BIERパケット送信装置700は、
インターネットプロトコルバージョン6 IPv6 プロトコルを用いてカプセル化されて第2の転送装置によって送信されたBIERパケットを受信するように構成された受信モジュール710であり、BIERパケットは、IPv6基本ヘッダ及びBIERヘッダを含み、IPv6基本ヘッダ内の宛先アドレスフィールドは、第1の転送装置の第1のIPv6アドレスである、受信モジュール710と、
転送テーブル内の第1のIPv6アドレスに対応する識別子に基づいてBIERパケット上でBIER転送を実行することを決定するように構成された処理モジュール720であり、識別子は、第1のIPv6アドレスがBIER転送の宛先アドレスであることを指し示すために使用される、処理モジュール720と、
を含み得る。
オプションで、処理モジュール720は具体的に、IPv6基本ヘッダ内の宛先アドレスフィールドに埋められたアドレスが転送テーブル内の第1のIPv6アドレスと同じであることを決定するように構成される。第1の転送装置は、第1のIPv6アドレスに対応する識別子に基づいて、BIERパケット上でBIER転送を実行することを決定する。
オプションで、BIERパケット送信装置700は更に、第1のIPv6アドレス及び識別子を設定するように構成された設定モジュール740を含む。
オプションで、装置700は更に、ルーティングプロトコルを用いて、第1の転送装置の第1のIPv6アドレス及び識別子をネットワークにフラッディングするように構成された送信モジュール730を含む。
オプションで、処理モジュール720は具体的に、IPv6基本ヘッダ内の次ヘッダNHフィールドが、1つのBIERヘッダを運ぶ拡張ヘッダであるときに、BIERヘッダ内のビット列フィールドに基づいてBIER転送を実行する、ように構成される。
オプションで、処理モジュール720は具体的に、IPv6基本ヘッダ内の次ヘッダNHフィールドがルーティングヘッダRHであり、且つルーティングヘッダRH内の次ヘッダNHフィールドが、1つのBIERヘッダを運ぶ拡張ヘッダであるときに、ルーティングヘッダRHをポッピングし、且つBIERヘッダ内のビット列フィールドに基づいてBIER転送を実行する、ように構成される。
オプションで、ルーティングヘッダRHはセグメントルーティングヘッダSRHであり、セグメントルーティングヘッダSRHのセグメント左SLは0である。
オプションで、処理モジュール720は具体的に、IPv6基本ヘッダ内の次ヘッダNHフィールドが、1つのBIERヘッダを運ぶ拡張ヘッダであり、且つ拡張ヘッダ内の次ヘッダNHフィールドがAH認証ヘッダであるときに、BIERヘッダ内のビット列フィールドに基づいてBIER転送を実行する、ように構成される。
オプションで、処理モジュール720は具体的に、BIERヘッダ内のビット列及びBIER転送テーブルに基づいて、BIERパケットのIPv6基本ヘッダ内の宛先アドレスフィールド内の第3の転送装置の第1のIPv6アドレスを埋め、BIER転送テーブルは、第3の転送装置によってフラッディングされたBIERメッセージ内で運ばれる第1のIPv6アドレスに基づいて構築される、ように構成され、第1の転送装置は、BIER転送テーブルに基づいてBIERパケットを第3の転送装置に対して複製する。
オプションで、処理モジュール720は具体的に、1つ以上の運ばれるBIERヘッダをポッピングし、1つ以上のBIERヘッダを含む拡張ヘッダをポッピングし、拡張ヘッダを含まないBIERパケットを第3の転送装置に対して複製する、ように構成される。
オプションで、処理モジュール720は具体的に、第3の転送装置がリーフノードであると決定したときに、1つ以上のBIERヘッダを含む拡張ヘッダをポッピングする、ように構成される。
オプションで、拡張ヘッダは宛先オプションヘッダである。
オプションで、ルーティングプロトコルは、中間システム間IS-ISプロトコル、オープン最短パスファーストOSPFプロトコル、又は境界ゲートウェイプロトコルBGPのうちのいずれか1つを含む。
図8は、この出願の一実施形態に従った第1転送装置800の概略構成図である。第1転送装置600は、メモリ810と、プロセッサ820と、入力/出力インタフェース830とを含み得る。
メモリ810、プロセッサ820、及び入力/出力インタフェース830は、内部接続パスを用いて接続される。メモリ810は、プログラム命令を格納するように構成される。プロセッサ820は、メモリ810に格納されたプログラム命令を実行して、入力データ及び情報を受信し、例えば演算結果などのデータを出力するように、入力/出力インタフェース830を制御するように構成される。
理解されるべきことには、この出願の実施形態におけるプロセッサ820は、中央演算処理ユニット(central processing unit、CPU)であってもよいし、あるいは更には、別の汎用プロセッサ、デジタル信号プロセッサ(digital signal processor、DSP)、特定用途向け集積回路(application specific integrated circuit、ASIC)、フィールドプログラマブルゲートアレイ(field programmable gate array、FPGA)、又は別のプログラマブル論理デバイス、ディスクリートのゲート若しくはトランジスタ論理デバイス、ディスクリートのハードウェアコンポーネント、又はこれらに類するものであってもよい。汎用プロセッサはマイクロプロセッサであってもよく、あるいはプロセッサは、任意の従来からのプロセッサ又はそれに類するものであってもよい。代わりに、プロセッサ820は、1つ以上の集積回路であってもよく、関連プログラムを実行して、この出願の実施形態で提供される技術的ソリューションを実装するように構成される。
メモリ810は、読み出し専用メモリ及びランダムアクセスメモリを含み得るとともに、命令及びデータをプロセッサ820に提供し得る。プロセッサ820の一部が更に、不揮発性ランダムアクセスメモリを含んでもよい。例えば、プロセッサ820は更に、デバイスタイプの情報を格納してもよい。
一実装プロセスにおいて、前述の方法におけるステップは、プロセッサ820内のハードウェア集積論理回路を使用することによって、又はソフトウェアの形態の命令を使用することによって実装されることができる。この出願の実施形態を参照して開示された方法は、ハードウェアプロセッサによって直接実行されてもよいし、あるいはプロセッサ内のハードウェアとソフトウェアモジュールとの組み合わせを用いることによって実行されてもよい。ソフトウェアモジュールは、例えばランダムアクセスメモリ、フラッシュメモリ、読み出し専用メモリ、プログラマブル読み出し専用メモリ、電気的消去プログラム可能メモリ、又はレジスタなどの、当該技術分野における成熟した記憶媒体内に置かれ得る。記憶媒体がメモリ810内に配置され、そして、プロセッサ820が、メモリ810内の情報を読み出し、プロセッサのハードウェアと組み合わさって、上述の方法におけるステップを実行する。繰り返しを避けるために、詳細をここで再び説明することはしない。
理解されるべきことには、この出願の実施形態に従った第1転送装置800は、この出願の実施形態における図2から図4に示した方法の対応する手順を実行するように構成される。加えて、第1転送装置800内のモジュールの前述の及びその他の動作及び/又は機能は、この出願の実施形態における図2から図4に示した方法の対応する手順を実装するように別々に使用される。簡潔さのため、詳細をここで再び説明することはしない。
なお、図8に示す第1転送装置800において、プロセッサは、メモリ内のコンピュータプログラムを呼び出して、モジュールによって実行されるステップを実装し得る。例えば、プロセッサは、キャッシュに格納されたコンピュータ命令を呼び出して、モジュール(例えば、図7に示した受信モジュール710及び処理モジュール720)によって実行されるステップを実行し得る。
理解されるべきことには、上述のプロセスのシーケンス番号は、この出願の様々な実施態様における実行順序を意味するものではない。プロセスの実行順序は、プロセスの機能及び内部ロジックに従って決定されるべきであり、この出願の実施態様の実装プロセスに対する何らかの限定として解釈されるべきでない。
当業者が認識し得ることには、この明細書に開示された実施形態にて記述された例と組み合わせて、ユニット及びアルゴリズムステップは、電子ハードウェアによって、又はコンピュータソフトウェアと電子ハードウェアとの組み合わせによって実装され得る。機能がハードウェアによって実行されるのか、それともソフトウェアによって実行されるのかは、技術的ソリューションの特定の用途及び設計制約に依存する。当業者は、特定の用途ごとに、記載された機能を実装するために異なる方法を用いることができるのであり、その実装がこの出願の範囲を超えるものであると考えるべきではない。
当業者によって明確に理解され得ることには、簡便且つ簡潔な説明の目的のため、上述のシステム、装置、及びユニットの詳細な動作プロセスについては、上述の方法の実施形態における対応するプロセスを参照されたく、ここで再び詳細を説明することはしない。
この出願にて提供された一部の実施形態において、理解されるべきことには、開示されたシステム、装置、及び方法は、その他のようにして実施されてもよい。例えば、記載された装置の実施形態は単なる例である。例えば、ユニット分割は、単なる論理機能分割であり、実際の実装においてはその他の分割とし得る。例えば、複数のユニット又はコンポーネントが別のシステムへと組み合わされたり統合されたりしてもよく、あるいは、一部の機構が無視されたり実行されなかったりしてもよい。また、図示又は説明された相互結合又は直接結合又は通信接続は、何らかのインタフェースを用いることによって実装され得る。装置又はユニットの間の間接結合又は通信接続は、電子的な形態、機械的な形態、又はその他の形態にて実装され得る。
別々の部分として記載されたユニットは、物理的に別々であってもなくてもよく、また、ユニットとして示された部分は、物理的なユニットであってもなくてもよく、一箇所にあってもよいし複数のネットワークユニットに分散されてもよい。それらユニットの一部又は全てが、実施形態のソリューションの目的を達成するように、実際の要求に基づいて選択され得る。
また、この出願の実施形態における複数の機能ユニットが1つの処理ユニットへと統合されてもよく、あるいは、それらユニットの各々が物理的に単独で存在してもよく、あるいは、2つ以上のユニットが1つのユニットへと統合される。
機能がソフトウェア機能ユニットの形態で実装されて、独立したプロダクトとして販売又は使用されるとき、その機能はコンピュータ読み取り可能記憶媒体に格納されてもよい。このような理解に基づき、この出願の技術的ソリューションは本質的に、又は先行技術に対して寄与する部分は、又は技術的ソリューションの一部は、ソフトウェアプロダクトの形態で実装され得る。コンピュータソフトウェアプロダクトは、記憶媒体に格納されるとともに、この出願の実施形態にて記載された方法のステップの全て又は一部を実行するようにコンピュータ装置(これは、パーソナルコンピュータ、サーバ、又はネットワーク装置)に命令する幾つかの命令を含む。上述の記憶媒体は、例えばUSBフラッシュドライブ、リムーバブルハードディスク、読み出し専用メモリ(read-only memory,ROM)、ランダムアクセスメモリ(random access memory,RAM)、磁気ディスク、又は光ディスクなどの、プログラムコードを記憶することができる任意の媒体を含む。
以上の説明は、単にこの出願の特定の実装であり、この出願の保護範囲を限定することを意図するものではない。この出願にて開示された技術的範囲内で当業者が容易に考え付く如何なる変形又は置換も、この出願の保護範囲に入るものである。従って、この出願の保護範囲は、請求項の保護範囲に従うものである。
以上の説明は、単に本発明の特定の実装であり、本発明の保護範囲を限定することを意図するものではない。本発明にて開示された技術的範囲内で当業者が容易に考え付く如何なる変形又は置換も、本発明の保護範囲に入るものである。従って、本発明の保護範囲は、請求項の保護範囲に従うものである。

この出願は、“BIERパケット送信方法及び装置”と題して2019年6月6日に中国特許庁に出願された中国特許出願第201910493114.7号に対する優先権を主張するものであり、それをその全体にてここに援用する。
この出願は、ネットワーク通信分野に関し、より具体的には、ビットインデックス明示的複製BIERパケット送信方法及び装置に関する。
インターネットプロトコル(internet protocol、IP)マルチキャスト技術は、IPネットワーク上での効率的なポイント・ツー・マルチポイントデータ伝送を実現し、それにより、ネットワーク帯域幅を効果的に節約し、ネットワーク負荷を低減させる。従って、インターネットプロトコルマルチキャスト技術は、リアルタイムデータ伝送、マルチメディア会議、データコピー、インターネットプロトコルテレビジョン(internet protocol television、IPTV)、ゲーム、シミュレーション、及びこれらに類するものにおいて広く使用されている。マルチキャスト技術を用いたマルチキャストプロトコルによれば、ポイント・ツー・マルチポイントデータ転送を実現するために、ネットワークプレーンを論理ツリー状の構造にするように制御プレーンマルチキャストツリーを構築する必要がある。配信ツリー構築を中核とするこのようなマルチキャストルーティングプロトコルにおけるトランジットノードは、マルチキャスト転送情報の複雑なステータスを維持管理する必要がある。ネットワーク規模が大きくなり、マルチキャストデータトラフィックがますます増えるにつれて、マルチキャスト技術は、ますます高まるコスト、並びに大きな運用及び保守上の難題に直面する。
これに対処するために、マルチキャストデータ転送パスを構築するための新しい技術が業界で提唱され、ビットインデックス明示的複製(bit index explicit replication、BIER)技術と呼ばれている。この技術は、マルチキャスト配信ツリーを構築する必要のない新しいマルチキャスト技術アーキテクチャを提案するものである。BIER技術をサポートする転送ノードは、カプセル化されたBIERヘッダ情報に基づいてBIERドメインでBIERパケットを転送することができる。
BIERパケットは、インターネットプロトコルバージョン6(internet protocol version 6、IPv6)を用いた伝送のためにカプセル化される必要がある。従来の技術的ソリューションでは、BIER技術をサポートする転送ノードが、各ノードによってフラッディングされる一般IPアドレスを、IPv6基本ヘッダ内の宛先アドレスフィールドにカプセル化する。しかしながら、一般IPアドレスが宛先アドレスフィールド内に埋められるので、BIERパケットを受信するノードが、宛先アドレスフィールド内のIPv6アドレスに基づいてパケットフォーマットのタイプを決定する必要があり、それにより比較的低い転送効率をもたらす。
故に、転送効率をどのように改善するかが、現在喫緊に解決される必要がある問題となっている。
この出願は、BIERパケット送信方法及び装置を提供する。隣接ノードの第1のIPv6アドレスが、IPv6拡張ヘッダ内の宛先アドレスフィールドに埋められ得る。斯くして、隣接ノードは、第1のIPv6アドレスの識別子に基づいて、BIERパケット上でBIER転送を実行することを決定する。これは、BIERパケットを受信するノードが、従来技術におけるIPv6アドレスと他のフィールドとに基づいてパケットタイプを一つ一つ決定することを防止する。従って、転送効率が改善される。
第1の態様によれば、BIERパケット送信方法が提供される。当該方法は、第1の転送装置が、インターネットプロトコルバージョン6 IPv6 プロトコルを用いてカプセル化されて第2の転送装置によって送信されたBIERパケットを受信することを含み、BIERパケットは、IPv6基本ヘッダ及びBIERヘッダを含み、IPv6基本ヘッダ内の宛先アドレスフィールドは、第1の転送装置の第1のIPv6アドレスである。第1の転送装置は、転送テーブル内の第1のIPv6アドレスに対応する識別子に基づいてBIERパケット上でBIER転送を実行することを決定し、該識別子は、第1のIPv6アドレスが、それに基づいてBIER転送が実行される宛先アドレスであることを指し示すために使用される。
前述の技術的ソリューションでは、隣接ノードの第1のIPv6アドレスをIPv6拡張ヘッダ内の宛先アドレスフィールドに埋めることで、隣接ノードが、第1のIPv6アドレスの識別子に基づいて、BIERパケット上でBIER転送を実行することを決定するようにし得る。これは、BIERパケットを受信するノードが、従来技術におけるIPv6アドレスと他のフィールドとに基づいてパケットタイプを一つ一つ決定することを防止する。従って、転送効率が改善される。
取り得る一実装において、第1の転送装置は、IPv6基本ヘッダ内の宛先アドレスフィールドに埋められたアドレスが転送テーブル内の第1のIPv6アドレスと同じであることを決定し、そして、第1の転送装置は、第1のIPv6アドレスに対応する識別子に基づいて、BIERパケット上でBIER転送を実行することを決定する。
取り得る他の一実装において、第1の転送装置は、第1のIPv6アドレス及び識別子を設定する。
取り得る他の一実装において、第1の転送装置が、インターネットプロトコルバージョン6 IPv6 プロトコルを用いてカプセル化されて第2の転送装置によって送信されたBIERパケットを受信する前に、当該方法は更に、第1の転送装置が、ルーティングプロトコルを用いて、第1の転送装置の第1のIPv6アドレス及び識別子をネットワークにフラッディングすること、を含む。
前述の技術的ソリューションでは、第1の転送装置が第1のIPv6アドレス及び識別子をネットワーク内の他のノードにフラッディングすることで、ネットワーク内の他のノードが、転送テーブルを構築し、第1の転送装置によってフラッディングされた第1のIPv6アドレスに基づいてパケットをカプセル化するようにし得る。
理解されるべきことには、ルーティングプロトコルを用いることによって第1の転送装置によってネットワークにフラッディングされる第1のIPv6アドレス及び識別子は、BIERメッセージと同じメッセージ内で運ばれてもよいし、あるいは、BIERメッセージとは異なるメッセージ内であってもよい。これは、この出願において特に限定されることではない。
取り得る他の一実装において、第1のIPv6アドレスは、セグメントルーティング・オーバ・IPv6(SRv6)のセグメント識別子(segment identifier、SID)である。
取り得る他の一実装において、IPv6基本ヘッダ内の次ヘッダ(next header、NH)フィールドが、1つのBIERヘッダを運ぶ拡張ヘッダであるときに、第1の転送装置は、BIERヘッダ内のビット列フィールドに基づいてBIER転送を実行する。
取り得る他の一実装において、IPv6基本ヘッダ内の次ヘッダNHフィールドがルーティングヘッダ(routing header、)RH)であり、且つルーティングヘッダRH内の次ヘッダNHフィールドが、1つのBIERヘッダを運ぶ拡張ヘッダであるときに、第1の転送装置は、ルーティングヘッダRHをポッピングし、且つBIERヘッダ内のビット列フィールドに基づいてBIER転送を実行する。
取り得る他の一実装において、ルーティングヘッダRHはセグメントルーティングヘッダ(segment routing header、SRH)であり、セグメントルーティングヘッダSRHのセグメント左SLは0である。
取り得る他の一実装において、IPv6基本ヘッダ内の次ヘッダNHフィールドが、1つのBIERヘッダを運ぶ拡張ヘッダであり、且つ拡張ヘッダ内の次ヘッダNHフィールドがAH認証ヘッダであるときに、第1の転送装置は、BIERヘッダ内のビット列フィールドに基づいてBIER転送を実行する。
取り得る他の一実装において、IPv6基本ヘッダ内の次ヘッダNHフィールドが、4、41、97、又は137であるときに、第1の転送装置は、IPv6基本ヘッダをポッピングし、ユーザデータパケットを転送する。
取り得る他の一実装において、第1の転送装置は、BIERヘッダ内のビット列及びBIER転送テーブルに基づいて、BIERパケットのIPv6基本ヘッダ内の宛先アドレスフィールド内の第3の転送装置の第1のIPv6アドレスを埋め、BIER転送テーブルは、第3の転送装置によってフラッディングされたメッセージ内で運ばれる第1のIPv6アドレスに基づいて構築され、そして、第1の転送装置は、BIER転送テーブルに基づいてBIERパケットを第3の転送装置に対して複製する。
取り得る他の一実装において、第1の転送装置は、1つ以上の運ばれるBIERヘッダをポッピングし、第1の転送装置は、1つ以上のBIERヘッダを含む拡張ヘッダをポッピングし、そして、第1の転送装置は、拡張ヘッダを含まないBIERパケットを第3の転送装置に対して複製する。
取り得る他の一実装において、第3の転送装置がリーフノードであると決定したときに、第1の転送装置は、1つ以上のBIERヘッダを運ぶ拡張ヘッダをポッピングする。
取り得る他の一実装において、拡張ヘッダは宛先オプションヘッダである。
取り得る他の一実装において、ルーティングプロトコルは、中間システム間IS-ISプロトコル、オープン最短パスファーストOSPFプロトコル、又は境界ゲートウェイプロトコルBGPのうちのいずれか1つを含む。
第2の態様によれば、BIERパケット送信装置が提供され、当該装置は、
インターネットプロトコルバージョン6 IPv6 プロトコルを用いてカプセル化されて第2の転送装置によって送信されたBIERパケットを受信するように構成された受信モジュールであり、BIERパケットは、IPv6基本ヘッダ及びBIERヘッダを含み、IPv6基本ヘッダ内の宛先アドレスフィールドは、第1の転送装置の第1のIPv6アドレスである、受信モジュールと、
転送テーブル内の第1のIPv6アドレスに対応する識別子に基づいてBIERパケット上でBIER転送を実行することを決定するように構成された処理モジュールであり、識別子は、第1のIPv6アドレスが、それに基づいてBIER転送が実行される宛先アドレスであることを指し示すために使用される、処理モジュールと、
を含む。
取り得る一実装において、処理モジュールは具体的に、IPv6基本ヘッダ内の宛先アドレスフィールドに埋められたアドレスが転送テーブル内の第1のIPv6アドレスと同じであることを決定するように構成される。第1の転送装置は、第1のIPv6アドレスに対応する識別子に基づいて、BIERパケット上でBIER転送を実行することを決定する。
取り得る他の一実装において、当該装置は更に、第1のIPv6アドレス及び識別子を設定するように構成された設定モジュール、を含む。
取り得る他の一実装において、当該装置は更に、ルーティングプロトコルを用いて、第1の転送装置の第1のIPv6アドレス及び識別子をネットワークにフラッディングするように構成された送信モジュール、を含む。
取り得る他の一実装において、処理モジュールは具体的に、IPv6基本ヘッダ内の次ヘッダNHフィールドが、1つのBIERヘッダを運ぶ拡張ヘッダであるときに、BIERヘッダ内のビット列フィールドに基づいてBIER転送を実行する、ように構成されている。
取り得る他の一実装において、処理モジュールは具体的に、IPv6基本ヘッダ内の次ヘッダNHフィールドがルーティングヘッダRHであり、且つルーティングヘッダRH内の次ヘッダNHフィールドが、1つのBIERヘッダを運ぶ拡張ヘッダであるときに、ルーティングヘッダRHをポッピングし、且つBIERヘッダ内のビット列フィールドに基づいてBIER転送を実行する、ように構成されている。
取り得る他の一実装において、ルーティングヘッダRHはセグメントルーティングヘッダSRHであり、セグメントルーティングヘッダSRHのセグメント左SLは0である。
取り得る他の一実装において、処理モジュールは具体的に、IPv6基本ヘッダ内の次ヘッダNHフィールドが、1つのBIERヘッダを運ぶ拡張ヘッダであり、且つ拡張ヘッダ内の次ヘッダNHフィールドがAH認証ヘッダであるときに、BIERヘッダ内のビット列フィールドに基づいてBIER転送を実行する、ように構成されている。
取り得る他の一実装において、処理モジュールは具体的に、BIERヘッダ内のビット列及びBIER転送テーブルに基づいて、BIERパケットのIPv6基本ヘッダ内の宛先アドレスフィールド内の第3の転送装置の第1のIPv6アドレスを埋め、BIER転送テーブルは、第3の転送装置によってフラッディングされたBIERメッセージ内で運ばれる第1のIPv6アドレスに基づいて構築される、ように構成されており、第1の転送装置は、BIER転送テーブルに基づいてBIERパケットを第3の転送装置に対して複製する。
取り得る他の一実装において、処理モジュールは具体的に、1つ以上の運ばれるBIERヘッダをポッピングし、1つ以上のBIERヘッダを含む拡張ヘッダをポッピングし、拡張ヘッダを含まないBIERパケットを第3の転送装置に対して複製する、ように構成されている。
取り得る他の一実装において、処理モジュールは具体的に、第3の転送装置がリーフノードであると決定したときに、1つ以上のBIERヘッダを運ぶ拡張ヘッダをポッピングする、ように構成されている。
取り得る他の一実装において、拡張ヘッダは宛先オプションヘッダである。
取り得る他の一実装において、ルーティングプロトコルは、中間システム間IS-ISプロトコル、オープン最短パスファーストOSPFプロトコル、又は境界ゲートウェイプロトコルBGPのうちのいずれか1つを含む。
第3の態様によれば、入力/出力インタフェースと、プロセッサと、メモリとを含む第1転送装置が提供され、プロセッサは、入力/出力インタフェースを制御して情報を送信及び受信するように構成され、メモリは、コンピュータプログラムを格納するように構成され、プロセッサが、メモリからコンピュータプログラムを呼び出してコンピュータプログラムを実行することで、第1の態様又は第1の態様の取り得る実装のうちのいずれか1つに従った方法を当該第1転送装置が実行する。
オプションで、プロセッサは、汎用プロセッサであってもよく、ハードウェア又はソフトウェアを用いて実装され得る。ハードウェアを用いてプロセッサが実装されるとき、プロセッサは、論理回路、集積回路、又はこれらに類するものとし得る。ソフトウェアを用いてプロセッサが実装されるとき、プロセッサは、汎用プロセッサとすることができ、メモリに格納されたソフトウェアコードを読み出すことによって実装される。メモリは、プロセッサ内に集積されてもよいし、あるいは、プロセッサの外部に置かれて独立に存在してもよい。
第4の態様によれば、コンピュータプログラムプロダクトが提供される。当該コンピュータプログラムプロダクトは、コンピュータプログラムコードを含む。該コンピュータプログラムコードがコンピュータ上で実行されるとき、該コンピュータは、前述の態様における方法を実行することを可能にされる。
第5の態様によれば、コンピュータ読み取り可能媒体が提供される。当該コンピュータ読み取り可能媒体はプログラムコードを格納しており、該コンピュータプログラムコードがコンピュータ上で実行されるとき、該コンピュータは、前述の態様における方法を実行することを可能にされる。
第6の態様によれば、システムが提供される。当該システムは、第1の転送ノード、第2の転送ノード、及び第3の転送ノードを含み、第1の転送ノードは、第1の態様又は第1の態様の取り得る実装のうちのいずれか1つに従った方法を実行するように構成される。第2の転送ノードは、第1の転送ノードによってフラッディングされた第1のIPv6アドレスに基づいて、BIERパケットのIPv6基本ヘッダ内の宛先アドレスフィールドを埋め、そして、BIERパケットを第1の転送ノードに送信するように構成される。第3の転送ノードは、第1の転送ノードによって送信されたBIERパケットを受信し、そして、BIERパケットのIPv6基本ヘッダ内の宛先アドレスフィールドに埋められたアドレスが、当該第3の転送ノードに対して設定された第1のIPv6アドレスであることに基づいて、BIERパケット上でBIER転送を実行するように構成される。
この出願の一実施形態に従ったBIER技術の概略ネットワーキング図である。 この出願の一実施形態に従った、BIERドメインでBIERヘッダに基づいてBIERパケットを送信することの概略ブロック図である。 この出願の一実施形態に従ったBIERv6パケットフォーマットの概略図であ。 この出願の一実施形態に従ったBIERパケット送信方法の概略フローチャートである。 この出願の一実施形態に従ったSRv6 locatorメッセージフォーマットの概略図である。 この出願の一実施形態に従ったIPv6-prefixメッセージフォーマットの概略図である。 この出願の一実施形態に従ったBIERパケット送信装置700の概略構成図である。 この出願の一実施形態に従った第1転送装置800の概略構成図である。
以下、添付の図面を参照して、この出願の技術的ソリューションを説明する。
インターネットプロトコル(internet protocol、IP)マルチキャスト技術は、IPネットワーク上での効率的なポイント・ツー・マルチポイントデータ伝送を実現し、それにより、ネットワーク帯域幅を効果的に節約し、ネットワーク負荷を低減させる。従って、インターネットプロトコルマルチキャスト技術は、リアルタイムデータ伝送、マルチメディア会議、データコピー、インターネットプロトコルテレビジョン(internet protocol television、IPTV)、ゲーム、シミュレーション、及びこれらに類するものにおいて広く使用されている。マルチキャスト技術を用いたマルチキャストプロトコルによれば、ポイント・ツー・マルチポイントデータ転送を実現するために、ネットワークプレーンを論理ツリー状の構造にするように制御プレーンマルチキャストツリーを構築する必要がある。配信ツリー構築を中核とするこのようなマルチキャストルーティングプロトコルにおけるトランジットノードは、マルチキャスト転送情報の複雑なステータスを維持管理する必要がある。ネットワーク規模が大きくなり、マルチキャストデータトラフィックがますます増えるにつれて、マルチキャスト技術は、ますます高まるコスト、並びに大きな運用及び保守上の難題に直面する。
これに対処するために、マルチキャストデータ転送パスを構築するための新しい技術が業界で提唱され、ビットインデックス明示的複製(bitindexed explicit replication、BIER)技術と呼ばれている。当該技術は、マルチキャスト配信ツリーを構築する必要のない新しいマルチキャスト技術アーキテクチャを提案するものである。図1に示すように、BIER技術をサポートするルータは、ビット転送ルータ(BIER forwarding router、BFR)と称されることがあり、BFR装置は、BIERパケットを受信して転送し得る。1つ以上のBFRを含むマルチキャスト転送ドメインは、BIERドメイン(BIER domain)と称される。BIERドメインのエッジにおいて、ユーザのマルチキャストデータに対してBIERデータパケットカプセル化を実行する装置は、ビット転送イングレスルータ(BIER forwarding ingress router、BFIR)と称され、BIERデータパケットをカプセル解除する装置は、ビット転送エグレスルータ(BIER forwarding egress router、BFER)と称される。
BIERドメインにおいて、各エッジノード(例えば、BFER)は、BIERサブドメイン(sub domain、SD)全体内でグローバルに一意であるビット位置(bit position)を有して設定される。例えば、値は、例えば1から256の範囲の値といった各エッジノードに対するBFR識別子(identification、ID)として設定され得る。BIERドメイン内の全てのBFR IDがビット列(bit string)を形成する。BIERドメイン内でユーザデータトラフィック(BIERパケットとも称される)の伝送のために、特定のBIERヘッダをカプセル化する必要がある。BIERヘッダは、ユーザデータトラフィックの全ての宛先ノードを特定するビット列を含む。BIERドメイン内のトランジットノードは、ユーザデータトラフィックを全ての宛先アドレスに送ることができることを保証するよう、BIERヘッダ内で運ばれるビット列に基づいてルーティングを実行する。
ノードに対して設定されたビット位置情報は、内部ゲートウェイプロトコル(interior gateway protocol、IGP)又は境界ゲートウェイプロトコル(border gateway protocol、BGP)を用いることによって、前もってBIERドメイン内にフラッディングされる。そして、BIERドメイン内の各ノードに転送されるべきユーザデータトラフィックを指し示すために、ビットインデックス転送テーブル(bit index forwarding table、BIFT)が形成される。BIERヘッダとともにカプセル化されたBIERパケットを受信すると、BFRはBIFTに従って、BIERパケットを宛先ノードに転送する。この出願の実施形態において、内部ゲートウェイプロトコルIGPは、以下に限られないが、オープン最短パスファースト(open shortest path first、OSPF)プロトコル、中間システム間(intermediate system to intermediate system、ISIS)プロトコル、及びこれらに類するものを含み得る。
理解を容易にするために、以下にて、BIER技術における基本概念を説明する。
(1)BIFT ID
BIFT IDフィールドは、サブドメイン(sub-domain、SD)/ビット列長(bit string length、BSL)/セット識別子(set identifier、SI)の組み合わせを含み得る。異なるBIFT IDは、SD/BSL/SIの異なる組み合わせに対応し得る。
1. サブドメイン(SD)
BIERドメインは、実際のサービスシナリオの要求に従って複数の異なるサブドメインSDを有して構成され得る。各サブドメインSDが、範囲[0-255]内の8ビット値であるサブドメイン識別子(sub-domain identify、SD-ID)で表される。例えば、例えば異なる仮想プライベートネットワーク(virtual private network、VPN)といった異なるサービスに基づいて、BIERドメイン内に異なるSDが構成され得る。例えば、VPN 1はSD 0を使用し、VPN 1はSD 1を使用する。
なお、代わりに複数のVPNが同じSDを使用してもよい。BIERドメイン内の異なるSDは、同一のIGPプロセス又はトポロジー内にあってもよいし、あるいは同一のIGPプロセス又はトポロジー内になくてもよい。これは、この出願の実施形態において特に限定されることではない。
2. ビット列長(BSL)
BSLは、BIERヘッダに含まれるビット列の長さである。複数のBSLが存在し得る。これは、この出願の実施形態において特に限定されることではない。BSLは、64ビット(最小)、128ビット、256ビット、512ビット、1024ビット、2048ビット、又は4096ビット(最大)とし得る。具体的には、パケットの識別に4ビットが使用される。例えば、BSLが64ビットであるとき、0001がパケットの識別に使用され、BSLが128ビットであるとき、0010がパケットの識別に使用され、BSLが512ビットであるとき、0100がパケットの識別に使用され、BSLが1024ビットであるとき、0101がパケットの識別に使用され、等々である。
3. セット識別子(SI)
SIは、ネットワーク内の複数のノード又は設定されたBFR IDを含むセットとして理解され得る。例えば、BSLが256ビットであるが、ネットワークに256よりも多いノードが存在する又は256よりも多いBFR IDが設定されているとき、それらのノード又はBFR IDは複数の異なるセットに分割される必要がある。例えば、そのBFR IDが1から256であるノードがセット0(setindex 0、すなわち、SI=0)を形成し、そのBFR IDが257から512であるノードがセット1(setindex 1、すなわち、SI=1)を形成する。
BIERパケットを受信した後、BIERドメイン内のBFRは、BIERヘッダ内のBIFT IDに基づいて、BIERパケットが属するSD、使用されるBSL、及びパケット又は設定されたBFR IDを転送するノードを含むセットを決定し得る。
以下に、BIFT IDによって表されるSD/BSL/SIの幾つかの取り得る組み合わせを列記する:
BIFT ID=91:SD 0、BSL 256、SI 0に対応
BIFT ID=92:SD 0、BSL 256、SI 1に対応
BIFT ID=93:SD 0、BSL 256、SI 2に対応
BIFT ID=94:SD 0、BSL 256、SI 3に対応
BIFT ID=95:SD 0、BSL 512、SI 0に対応
BIFT ID=96:SD 0、BSL 512、SI 1に対応。
例えば、BIFT IDが92であるとき、BIERパケットを受信した後、BFRは、BIERヘッダ内のBIFT IDに基づいて、BIERパケットがSD 0に属し、BIERヘッダで使用されるBSLが256ビットであり、且つBIERパケットがセット1(そのBFR IDが257から512であるノードを含むセット)に属することを決定し得る。
(2)BFRプレフィックス(BFR-prefix)
BFRプレフィックスは、各BFRのアドレス情報である。各BFRのアドレス情報は、BIERドメイン内で一意であり、ルータ識別子と等価である。具体的には、BFR-prefixは一般にBFR装置のループバック(loopback)アドレスである。
(3)ビット列(bit string)
ビット列内の各ビットは、BIERパケットを受信する次ホップノードを指し示すために使用され得る。BIERドメイン内のBFRがBIERパケットヘッダを受信すると、BFRは、BIERヘッダ内で運ばれるビット列及びBIFT IDに基づいてBIERパケットを転送する。
例えば、BFRによって受信されたBIERヘッダ内のBIFT IDは92であり、ビット列の長さは256ビットであり、BIERパケットを転送するノードは、そのBFR IDが257から512であるノードのうちの1つである。ビット列内の最下位ビット(最も右のビット)は、宛先ノードがそのBFR IDが257であるノードであることを指し示すために使用され、右から左に2番目のビットは、宛先ノードがそのBFR IDが258であるノードであることを指し示すために使用される。
図2を参照して、以下、BIER技術に基づいてBIERパケットを転送するプロセスを詳細に説明する。
図2に示すように、各BIERドメイン内のエッジノードに一意なBFR-idを割り当てる必要がある。例えば、エッジノードA、D、E、及びFに設定されるBFR-idは、それぞれ、4、1、、及びである。BIERヘッダ内にカプセル化されたビット列が、トラフィックの全ての宛先ノードを特定する。例えば、そのBFR-idが1であるノードDに対応するビット列は0001であり、そのBFR-idが2であるノードFに対応するビット列は0010であり、そのBFR-idが3であるノードEに対応するビット列は0100であり、そのBFR-idが4であるノードAに対応するビット列は1000である。
理解されるべきことには、各BIERドメイン内のエッジノードに割り当てられるBFR-id値を、ルーティングプロトコルを用いることによって該BIERドメイン内の他のネットワーク装置にフラッディングすることができ、フラッディングされるBIER情報は更に、エッジノードのIPアドレス及びカプセル化情報を含む。例えば、ノードAのフラッディングされるBIER情報は、ノードAのIPアドレス及びBIFT-idを運ぶ。BIERドメイン内のノードは、フラッディングされたBIER情報に基づいてビットインデックス転送テーブルBIFTを構築し得る。BIERパケットを受信した後、ノードは、構築したBIFTに従ってBIERパケットを宛先ノードに転送する。
ノードAの場合、そのBFR-idが1、2、及び3であるのBIERノードへの次ホップはノードBであり、そのBFR-idが4であるBIERノードへの次ホップはノードA自身である。従って、ノードAによって構築されるBIFTは次のようになる:
転送エントリ1:隣接(neighbor、Nbr)=B、転送ビットマスク(forwarding bit mask、FBM)=0111;
転送エントリ2:Nbr*=A、FBM=1000。
転送エントリ1は、BIERパケット内のビット列のうち、右から左に1番目のビット、2番目のビット、又は3番目のビットのいずれか1つが1であるときに、BIERパケットが隣接ノードBに送られることを指し示すために使用される。転送エントリ2は、BIERパケット内のビット列のうち、右から左に4番目のビットが1であるときに、BIERパケットがノードAに送られることを指し示すために使用される。ノードAはそれ自身であるため、ノードAはBIERヘッダを取り除き、BIERパケットを元のユーザデータパケットとして転送する。
なお、転送エントリにおいて、*は、Nbrがノードそれ自身であることを指し示すために使用される。同様に、他のノードも、隣接ノードに基づいてBIFTを構築し得る。詳細については、図2を参照されたい。詳細をここで再び説明することはしない。
ユーザデータパケットを受信した後、ノードAは、ユーザデータパケットをBIERヘッダとともにカプセル化する。一例において、ユーザデータパケットを受信した後、ノードAは、境界ゲートウェイプロトコルBGPメッセージに基づいて、ユーザデータパケットの受取人を知ることができる。例えば、ユーザデータパケットの受取人は、そのBFR-idが3であるノードE、そのBFR-idが2であるノードF、及びそのBFR-idが1であるノードDである。ノードAは、ビット列が0111であるBIERヘッダとともにBIERパケットをカプセル化し、カプセル化したBIERパケットを転送エントリ1に基づいて隣接ノードBに転送する。BIERパケットを受信した後、ノードBは、ビット列0111とBIFTとに基づいて、BIERパケットがノードC及びノードEに別々に送信される必要があることを決定する。BIERパケットをノードCに送信するとき、ノードBは、BIERヘッダ内のビット列0111とBIFT内のNbr=CエントリのFBMフィールドとに対してAND演算を実行し得る。この出願のこの実施形態では、ANDの結果は0011である。従って、ノードBは、BIERヘッダ内のビット列を0011に変更し、BIERパケットをノードCに送信し得る。同様に、BIERパケットをノードEに送信するとき、ノードBは、BIERヘッダ内のビット列を0100に変更し得る。BIERパケットを受信した後、ノードEは、ビット列0100に基づいて、BIERパケットが隣接ノードEに送られるべきであると決定する。ノードEは、転送テーブル内の識別子*に従って、隣接ノードEがノードE自身であると決定するので、ノードEは、BIERヘッダをカプセル解除し、内部層のユーザデータパケットの宛先アドレスに基づいてBIERパケットを転送する。
理解されるべきことには、BIERヘッダは、異なるプロトコルでは異なるカプセル化フォーマットを持つ。IPv6を用いてカプセル化されたBIERパケットは、BIERv6パケットとも称されることがある。リンク層にイーサネットリンクを使用するBIERv6パケットのフォーマットは次の通りである:
Ethヘッダ+IPv6基本ヘッダ+IPv6拡張ヘッダ(BIERヘッダを含む)+ユーザデータパケット
なお、説明を容易にするために、BIERv6パケットのカプセル化がイーサネットリンク層にオーバーレイされる例を用いる。この出願のこの実施形態において、BIERカプセル化は代わりに、例えばポイント・ツー・ポイントプロトコル(point-to-point protocol、PPP)リンクといった別タイプのリンクにオーバーレイされてもよい。
理解されるべきことには、複数のIPv6拡張ヘッダタイプが存在し、例えば、IPv6拡張ヘッダが宛先オプションヘッダ(destination options header)とし得る。これは、この出願の実施形態において特に限定されることではない。
図3を参照して、以下、IPv6拡張ヘッダが宛先オプションヘッダである例を使って、IPv6を用いてカプセル化されたBIERパケットのフォーマットを詳細に説明する。
図3を参照するに、BIERv6パケットは、BIERv6ヘッダ及び内部層のユーザデータパケット(例えば、IPv6パケットとし得る)を含み得る。BIERv6ヘッダは、IPv6基本ヘッダと宛先オプションヘッダとを含み得る。宛先オプションヘッダがBIERヘッダを運ぶ。BIERヘッダに関する詳細については、前述の説明を参照されたい。詳細をここで再び説明することはしない。
(1)IPv6基本ヘッダ
バージョン(version):4ビット長
トラフィッククラス(traffic class、TC):8ビット長。このフィールドは、IPv6パケットのクラス及び優先度を指し示す。
フローラベル(flow label):20ビット長。“フロー”は、ネットワーク上の特定の送信元アドレスから特定の宛先アドレスへのデータパケットとして理解され得る。同一“フロー”に属するデータパケットは、同じフローラベルを持つ。
ペイロード長(payload length):16ビット長。このフィールドは、IPv6基本ヘッダ以外の長さ、例えば、IPv6拡張ヘッダ及び内部層のユーザデータパケットの長さ、を指し示す。
次ヘッダ(next header、NH):8ビット長。このフィールドは、IPv6基本ヘッダのすぐ後に続くIPv6拡張ヘッダの識別子(すなわち、IPv6拡張ヘッダのタイプ)として理解されることができ、各IPv6拡張ヘッダもNHフィールドを含む。
ホップ限度(hop limit、HL):8ビット長。このフィールドは、IPv4パケットヘッダ内の有効期間(time to live、TTL)フィールドと同様である。
送信元アドレス(source address、SA):128ビット長。このフィールドは、データパケットを送信するノードのIPv6アドレスを埋めるのに使用される。
宛先アドレス(destination address、DA):128ビット長。このフィールドはデータパケットを受信するノードのIPv6アドレスを埋めるのに使用される。宛先アドレスフィールドはユニキャストアドレスである。例えば、ノードDにBIERパケットを送るとき、ノードBは、宛先アドレスフィールドをノードDのIPv6アドレスで埋めることができる。
(2)宛先オプションヘッダ(destination options header)
次ヘッダ(next header、NH):8ビット長。このフィールドは、宛先オプションヘッダのすぐ後に続くIPv6拡張ヘッダの識別子(すなわち、IPv6拡張ヘッダのタイプ)、又は例えばユーザデータグラムプロトコル(user datagram protocol、UDP)パケットのタイプといった上位層ヘッダ(upper-layer header)のタイプとして理解され得る。
拡張ヘッダ長(header extend length、Hdr Ext Len):8ビット長。このフィールドは、例えば宛先オプションヘッダの長さといった、IPv6拡張ヘッダの長さを記述する。
タイプ-長さ-値(type-length-value、TLV):TLV内のタイプ値は、TLVが1つのBIERヘッダを含むことを指し示し、TLV内の値部分がBIERヘッダ全体を含む。具体的には、TLV内のタイプ値は、図3に示されるオプションタイプ(option type)フィールドで運ばれ、値部分は、図3に示されるBIERヘッダ(BIER header)フィールドで運ばれる。
この出願のこの実施形態で提供されるBIERパケット送信方法によれば、BIERパケットを受信するノードのものであって識別子を運ぶものであるIPv6アドレスがIPv6拡張ヘッダの宛先アドレスフィールドに埋められ得る。斯くして、BIERパケットを受信するノードは、第1のIPv6アドレスの識別子に基づいて、BIERパケット上でBIER転送を実行することを決定する。これは、BIERパケットを受信するノードが、従来技術におけるIPv6アドレスと他のフィールドとに基づいてパケットタイプを一つ一つ決定することを防止する。従って、転送効率が改善される。
図4は、この出願の一実施形態に従ったBIERパケット送信方法の概略フローチャートである。図4の方法は、ステップ410及び420を含み得る。以下、ステップ410及び420を別々に詳細に説明する。
ステップ410:第1の転送装置が、IPv6プロトコルを用いてカプセル化されて第2の転送装置によって送信されたBIERパケットを受信する。
第1の転送装置によって受信されるIPv6プロトコルを用いてカプセル化されたBIERパケットは、IPv6基本ヘッダとBIERヘッダとを含む。IPv6プロトコルを用いてカプセル化されたBIERパケットの具体的なフォーマットについては、図3の説明を参照されたい。詳細をここで再び説明することはしない。
なお、BIERパケットは、マルチキャストデータを含んでいてもよいし、ユニキャストデータを含んでいてもよい。これは、この出願のこの実施形態において特に限定されることではない。
ステップ420:第1の転送装置が、BIERパケットにカプセル化され、転送テーブルに含められた第1のIPv6アドレスの識別子に基づいて、BIERパケット上でBIER転送を実行することを決定し、該識別子は、第1のIPv6アドレスが、それに基づいてBIER転送が実行される宛先アドレスであることを指し示すために使用される。
第1の転送装置は、IPv6基本ヘッダ内の宛先アドレスフィールドに埋められたアドレスが第1のIPv6アドレスであることを決定し、且つローカルに格納された転送テーブル内に第1のIPv6アドレスが存在するかを決定する。第1のIPv6アドレスが設定されている場合、第1の転送装置がBIERパケットの受信ノードであることが理解され得る。第1の転送装置は更に、転送テーブル内の第1のIPv6アドレスに対応する識別子に基づいて、BIERパケット上でBIER転送を実行する必要があることを決定することができ、該識別子は、第1のIPv6アドレスが、それに基づいてBIER転送が実行される宛先アドレスであることを指し示すために使用される。
例えば、転送テーブル内に設定された第1のIPv6アドレスに対応する識別子がEnd.BIERである場合、第1のIPv6アドレスに設定されたエンド機能(end function)がBIERパケット上でBIER転送を行っていることが理解され得る。第1のIPv6アドレスは、End.BIERタイプのIPv6アドレスとも称され得る。
なお、第1のIPv6アドレスは、第1の転送装置に対して新たに設定されるアドレスであってもよいし、あるいは既に設定されたアドレスであってもよい。これは、この出願のこの実施形態において特に限定されることではない。
オプションで、一部の実施形態において、例えば第1の転送装置といった、BIERドメイン内のノードは、End.BIERタイプのIPv6アドレスをBIERドメイン内の他のノードに対してフラッディングして、BIERパケットを転送するようにBIERドメイン内の各ノードに指し示すために使用されるBIFTを形成し得る。換言すれば、BIERドメイン内の各ノードが、隣接ノードによってフラッディングされたEnd.BIERタイプのIPv6アドレスに基づいて、BIFT又はBIERルーティングテーブルを構築し得る。
第1の転送装置がBIERドメイン内の他のノードに対してEnd.BIERタイプのIPv6アドレスをフラッディングし得る実装は複数存在する。これは、この出願のこの実施形態において特に限定されることではない。一例において、第1の転送装置は、第1のIPv6アドレスがEnd.BIERタイプのものであることを指し示す識別子を運ぶためにBFR-IPv6-prefixフラッディングメッセージを使用する。他の一例では、第1の転送装置は、BFR-IPv6-prefixフラッディングメッセージとは異なるメッセージを使用し、すなわち、第1の転送装置はSRv6 locatorメッセージを使用して、End.BIERタイプのIPv6アドレスと、IPv6アドレスに対応する識別子とを運ぶ。この識別子は、IPv6アドレスのタイプがEnd.BIERであることを指し示す。以下にて、具体的な例を参照して詳細な説明を提供する。詳細をここで再び説明することはしない。
理解されるべきことには、End.BIERタイプのIPv6アドレスは、BIERv6パケットがカプセル化されて転送されるときに運ばれるIPv6宛先アドレスを示すために使用される。
以下では、第1の転送装置が図2に示したノードBである例を用いることによって、この実施形態で提供されるBIERパケット送信プロセスを詳細に説明する。
ステップ1:ノードBが、End.BIERタイプのIPv6アドレスを設定する。
取り得る一実装において、設定されるEnd.BIERタイプのIPv6アドレスは、IPv6-prefixとは異なるIPv6アドレスとし得る。例えば、SIDをSRv6 locatorアドレス空間から選択することができる。以下は、locatorにおいてEnd.BIERタイプのIPv6アドレスを設定するための特定の一実装である:
segment-routing ipv6
locator as1 ipv6-prefix 2002::
opcode ::AAAA End.BIER ##End.BIERタイプのSIDとして2002::AAAAを設定する
opcode ::AAAB End.X ##End.XタイプのSIDとして2002::AAABを設定する。
取り得る他の一実装において、設定されるEnd.BIERタイプのIPv6アドレスは、インタフェース(例えば、ループバックインタフェース)上に設定された128ビットマスクを持つIPv6アドレスとし得る。End.BIERタイプのIPv6アドレスの設定方法は、一般IPv6アドレスの設定方法とは異なる。具体的な設定方法は次の通りであるとおりです:
interface loopback0
ipv6 address 2001::000A 128 ##これは一般IPv6アドレスである
ipv6 address 2001::000B 128 End.BIER ##これはEnd.BIERタイプのIPv6アドレスである。
以下は、End.BIERタイプのIPv6アドレスがBFR-IPv6-prefixとしても使用される設定である:
sub-domain 6 ipv6 ##IPv6を用いるようにBIERサブドメイン6を設定する
BFR-prefix 2001::000B ##End.BIERタイプのIPv6アドレスをBFR-IPv6-prefixとして設定する。
以下は、End.BIERタイプのIPv6アドレスがBFR-IPv6-prefixとしても使用される別の設定である:
Bier
sub-domain 6 ipv6 ##IPv6を用いるようにBIERサブドメイン6を設定する
BFR-prefix loopback0 ##loopback0上に設定されたEnd.BIERタイプのIPv6アドレスをBFR-prefixとして使用する。
ステップ2:ノードBが、設定されたEnd.BIERタイプのIPv6アドレスをローカルに格納するとともにフラッディングする。
取り得る一実装において、End.BIERタイプのIPv6アドレス及びそのEnd.BIERインジケーション情報をBIERドメイン内の他のノードに対してフラッディングするためにノードBによって使用されるメッセージは、BIER情報をフラッディングするのに使用されるメッセージとは異なる。例えば、End.BIERタイプのIPv6アドレス及びEnd.BIERインジケーション情報は、IS-IS SRv6 locatorメッセージ内で運ばれ、BIER情報は、IS-IS prefix-reachabilityメッセージ内で運ばれる。
具体的には、図5を参照するに、BIER情報は、IS-ISプレフィックスリーチャビリティ(prefix-reachability)TLVメッセージ内で運ばれる。該メッセージは、BFR-PrefixのIPv6アドレス(BFR-IPv6-Prefixと称する)を運び、さらに、BIERサブドメイン(sub-domain)情報を運び、例えば、BIERサブドメイン情報はBIER情報サブTLV(BIER Info sub-TLV)とし得る。End.BIERタイプのIPv6アドレスは、IS-IS SRv6 locatorメッセージ内で運ばれる。例えば、End.BIERのSID値(例えば、SIDは第1のIPv6アドレスを指し示す)及びEnd.BIERインジケーション(例えば、SIDタイプがEnd.BIERを指し示す)は、SRv6 locatorメッセージ内のEnd.BIERのSRv6 SID情報内で運ばれ得る。End.BIERタイプのIPv6アドレスは、BFR-Prefixに対応するIPv6アドレスと異なってもよいし同じであってもよい。
取り得る他の一実装において、End.BIERタイプのIPv6アドレス及びEnd.BIER識別子は、BIER情報と同じメッセージ内で運ばれてもよい。例えば、IS-IS prefix-reachabilityメッセージが、End.BIERインジケーション(例えば、SIDタイプ=End.BIER)を運び、さらに、例えばBIERサブドメインSDなどのBIER情報を運ぶ。
具体的には、図6を参照するに、BIERサブドメイン(sub-domain)情報に加えて、例えばSIDタイプ=End.BIERといった、End.BIERインジケーション情報も、BIER情報をフラッディングするのに使用されるメッセージ内で運ばれ得る。対応して、BFR-Prefixに対応するIPv6アドレスも、End.BIERタイプIPv6アドレスとして使用され、End.BIERインジケーション情報を持つ。
ステップ3:ノードAが、ノードBによってフラッディングされたEnd.BIERタイプのIPv6アドレスに基づいて、IPv6ヘッダをカプセル化する。
ノードAは、ノードBによってフラッディングされたEnd.BIERタイプのIPv6アドレスに基づいて転送エントリを構築し、該転送エントリに従って、ノードBへの複製が必要であると決定する。ノードAは、次いで、ノードBによってフラッディングされたEnd.BIERタイプのIPv6アドレスを、IPv6基本ヘッダ内のDAフィールドに埋めて、ノードBにBIERパケットを送信する。
ステップ4:ノードBが、受信したBIERパケット内で運ばれたDAフィールド内のノードBのEnd.BIERタイプのIPv6アドレスに基づいて、BIERパケット上でBIER転送を実行する。
ノードAによって送信されたBIERパケットを受信した後、ノードBは、IPv6基本ヘッダ内のDAフィールドに埋められたアドレスが、ノードBに対して設定されたEnd.BIERタイプのIPv6アドレスであることを決定する。具体的には、ノードBは、ローカルに格納した転送テーブル内のIPv6アドレスがIPv6基本ヘッダ内のDAフィールドに埋められたアドレスと同じであることを決定し、そして、転送テーブル内のIPv6アドレスに対応する例えばSIDタイプ=End.BIERといった識別子に基づいて、受信したBIERパケット上でBIER転送を実行する必要があることを決定し得る。
取り得る一実装において、ノードBによって受信されたBIERパケットのIPv6基本ヘッダ内の次ヘッダNHが、1つのBIERヘッダを運ぶ拡張ヘッダであるとき、BIERパケットがSRHヘッダを含む場合に、ノードBは、SRHヘッダをポッピングし、BIERヘッダ内のビット列フィールドに基づいてBIER転送を実行する。それ以外の場合、ノードBは、BIERパケットを破棄し、インターネット制御メッセージプロトコル(internet control message protocol、ICMP)パラメータ問題メッセージを送信する。次の例では、IPv6基本ヘッダ内の次ヘッダNHは宛先オプションヘッダである。具体的な設定は以下の通りである:
1. IF NH=60 ##IPv6基本ヘッダ内の次ヘッダNHが宛先オプションヘッダ(60によって識別される)である
2. IF (DestOptHdr OptType=BIER) and (HdrExtLen*8+8=4+OptLength)
3. pop the SRH if exists. ##SRHヘッダが存在する場合、SRHヘッダをポッピングする
4. lookup the BIER Header inside the BIER. ##BIER内でBIERヘッダを位置特定する
5. forward via the matched entry. ##一致したエントリに基づいてパケットを転送する
6. ELSE
7. drop the packet; possibly send an ICMP parameter problem message;
8. ELSE
9. drop the packet; possibly send an ICMP parameter problem message;
“NH=60”は、IPv6基本ヘッダ内の次ヘッダが宛先オプションヘッダであることを指し示し、“DestOptHdr OptType=BIER”は、宛先オプションヘッダ内の第1オプションTLVのタイプがBIERであることを指し示し、“HdrExtLen*8+8=4+OptLength”は、宛先オプションヘッダが1つのTLVのみを含むことを指し示す。TLVの長さ+4が、宛先拡張ヘッダの全長と同じである(すなわち、宛先拡張ヘッダは1つのBIER TLVのみを含む)。
取り得る他の一実装において、ノードBによって受信されたBIERパケットのIPv6基本ヘッダ内の次ヘッダNHが、セグメントルーティングヘッダSRHであり、セグメントルーティングヘッダSRHのセグメント左SLが0であり、且つセグメントルーティングヘッダSRHの次ヘッダNHが、1つのBIERヘッダを運ぶ拡張ヘッダであるとき、ノードBは、SRHヘッダをポッピングし、BIERヘッダ内のビット列フィールドに基づいてBIER転送を実行する。それ以外の場合、ノードBは、BIERパケットを破棄し、ICMPパラメータ問題メッセージを送信する。次の例では、ルーティングヘッダSRH内の次ヘッダNHは宛先オプションヘッダである。具体的な設定は以下の通りである:
1. IF (NH=SRH and SL=0 and SRH_NH=DestOptHdr) ##拡張ヘッダがSRH及びDestOptHdrである
2. IF (DestOptHdr OptType=BIER) and (HdrExtLen*8+8=4+OptLength)
3. pop the SRH if exists. ##SRHヘッダが存在する場合、SRHヘッダをポッピングする
4. lookup the BIER Header inside the BIER. ##BIER内でBIERヘッダを位置特定する
5. forward via the matched entry. ##一致したエントリに基づいてパケットを転送する
6. ELSE
7. drop the packet; possibly send an ICMP parameter problem message;
8. ELSE IF (IPv6_NH=4 or 41 or 97 or 137)
9. pop the Outer IPv6 header, and process the next header.
10. ELSE
11. drop the packet; possibly send an ICMP parameter problem message;
ステップ8において、次ヘッダがNHチェーンの最後のNHである場合、すなわち、次ヘッダが上位層ヘッダ(upper-layer header)で埋められたNHフィールドである場合、該上位層ヘッダは内部層パケットのタイプを指し示すことができ、ノードは、内部層ユーザデータパケットを転送することができる。例えば、IPv6_NH=4は、次ヘッダによって指し示される内部層パケットのタイプがIPv4であることを指し示し、IPv6_NH=41は、次ヘッダによって指し示される内部層パケットのタイプがIPv6であることを指し示し、IPv6_NH=6は、次ヘッダによって指し示される内部層パケットのタイプが伝送制御プロトコル(transmission control protocol、TCP)であることを指し示し、IPv6_NH=17は、次ヘッダによって指し示される内部層パケットのタイプがユーザデータグラムプロトコル(user datagram protocol、UDP)であることを指し示し、IPv6_NH=58は、次ヘッダによって指し示される内部層パケットのタイプがICMPであることを指し示し、そして、IPv6_NH=137は次ヘッダによって指し示される内部層パケットのタイプがマルチプロトコルラベルスイッチング(multi-protocol label switching、MPLS)であることを指す示す。
取り得る他の一実装において、ノードBによって受信されたBIERパケットのIPv6基本ヘッダ内の次ヘッダNHがフラグメントヘッダ(fragment header)であり、且つフラグメントヘッダの次ヘッダNHが、1つのBIERヘッダを運ぶ拡張ヘッダであるとき、あるいは、IPv6基本ヘッダが、BIERを運ぶ拡張ヘッダに続かれ、次いでフラグメントヘッダに続かれるとき、ノードBは、BIERヘッダ内のビット列フィールドに基づいてBIER転送を実行する。それ以外の場合、ノードBは、BIERパケットを破棄し、ICMPパラメータ問題メッセージを送信する。処理手順は以下の通りである:
1. IF (NH=Frag and Frag_NH=DestOptHdr) or (NH=DestOptHdr and Dest_NH=Frag)
2. IF (DestOptHdr OptType=BIER) and (HdrExtLen*8+8=4+OptLength)
3. pop the SRH if exists. ##SRHヘッダが存在する場合、SRHヘッダをポッピングする
4. lookup the BIER Header inside the BIER. ##BIER内でBIERヘッダを位置特定する
5. forward via the matched entry. ##一致したエントリに基づいてパケットを転送する
6. ELSE
7. drop the packet; possibly send an ICMP parameter problem message;
8. ELSE IF (IPv6_NH=4 or 41 or 97 or 137)
9. pop the Outer IPv6 header, and process the next header.
10. ELSE
11. drop the packet; possibly send an ICMP parameter problem message;
取り得る他の一実装において、ノードBによって受信されたBIERパケットのIPv6基本ヘッダ内の次ヘッダNHが、1つのBIERヘッダを運ぶ拡張ヘッダであり、拡張ヘッダの次ヘッダNHが認証ヘッダ(authentication header、AH)であるとき、BIERパケットがSRHヘッダを含む場合に、ノードBは、SRHヘッダをポッピングし、BIERヘッダ内のビット列フィールドに基づいてBIER転送を実行する。それ以外の場合、ノードBは、BIERパケットを破棄し、インターネット制御メッセージプロトコル(internet control message protoco、ICMP)パラメータ問題メッセージを送信する。次の例では、IPv6基本ヘッダ内の次ヘッダNHは宛先オプションヘッダである。具体的な設定は以下の通りである:
1. IF (IPv6_NH=DestOptHdr and Dest_NH=AH)
2. IF (DestOptHdr OptType=BIER) and (HdrExtLen*8+8=4+OptLength)
3. pop the SRH if exists. ##SRHヘッダが存在する場合、SRHヘッダをポッピングする
4. lookup the BIER Header inside the BIER. ##BIER内でBIERヘッダを位置特定する
5. forward via the matched entry. ##一致したエントリに基づいてパケットを転送する
6. ELSE
7. drop the packet; possibly send an ICMP parameter problem message;
8. ELSE IF (IPv6_NH=4 or 41 or 97 or 137)
9. pop the Outer IPv6 header, and process the next header.
10. ELSE
11. drop the packet; possibly send an ICMP parameter problem message;
取り得る他の一実装において、IPv6 NHチェーンの最後のNHがICMPv6である(すなわちlast_NH=ICMPv6)場合、BIERパケットは、例えばICMPv6パケットカウントを追加したりICMPv6応答パケットを送信したりするといった処理のために中央演算処理ユニット(central processing unit、CPU)に送り込まれ得る。具体的な設定は以下の通りである:
1. IF Last_NH=ICMPv6 ##IPv6 NHチェーンの最後のNHがICMPv6パケットを指し示す場合
2. Pump to CPU, add packet counter, possibly send an ICMP response message.
ステップ5:ノードBが、BIERパケットを隣接ノードEに転送する。
ノードBは、転送エントリ及びビット列0111に基づいて、BIERパケットがノードC及びノードEに別々に送信される必要があることを決定し得る。BIERパケットをノードCに送信するとき、ノードBは、BIERヘッダ内のビット列を0011に変更し、IPv6基本ヘッダ内のDAフィールドに、ノードCによってフラッディングされたEND.BIERタイプのIPv6アドレスを埋め、そして、BIERパケットをノードCに送信し得る。同様に、BIERパケットをノードEに送信するとき、ノードBは、BIERヘッダ内のビット列を0100に変更し、IPv6基本ヘッダ内のDAフィールドに、ノードEによってフラッディングされたEND.BIERタイプのIPv6アドレスを埋め、そして、BIERパケットをノードEに送信し得る。
取り得る一実装において、この出願のこの実施形態で、ノードBがノードEにBIERパケットを送信するとき、ノードBの隣接ノードEがリーフノードとして決定される場合に、ノードBは、BIERパケット内のBIERヘッダを運ぶ拡張ヘッダをポッピングし得る。例えば、ノードBは、BIERヘッダを運ぶ宛先オプションヘッダをポッピングし、BIERヘッダを運ぶ宛先オプションヘッダを含まないBIERパケットをノードEに送信する。ノードBによって送信されたBIERパケットをノードEが受信した後、ノードEはリーフノードであるので、ノードEは、BIERヘッダを運ぶ拡張ヘッダをカプセル解除し、内部層ユーザデータパケットを転送する必要がある。ノードBによって送信されたBIERパケットが、BIERヘッダを運ぶ拡張ヘッダを含まない場合、ノードEは、BIERヘッダを運ぶ拡張ヘッダをカプセル解除することなく、内部層ユーザデータパケットを直接転送することができる。具体的な設定は以下の通りである:
1. IF NH=60 ##IPv6基本ヘッダ内の次ヘッダNHが宛先オプションヘッダ(60によって識別される)である
2. IF (DestOptHdr OptType=BIER) and (HdrExtLen*8+8=4+OptLength)
3. pop the DoH if exists. ##DoHヘッダが存在する場合、DoHヘッダをポッピングする
4. lookup the BIER Header inside the BIER. ##BIER内でBIERヘッダを位置特定する
5. forward via the matched entry. ##一致したエントリに基づいてパケットを転送する
6. ELSE
7. drop the packet; possibly send an ICMP parameter problem message;
8. ELSE IF (IPv6_NH=4 or 41 or 97 or 137)
9. pop the Outer IPv6 header, and process the next header.
10. ELSE
11. drop the packet; possibly send an ICMP parameter problem message;
ノードEによって受信されたBIERパケットがBIERヘッダを含んでいないとき、ステップ1から7はスキップされることができ、ステップ8及び9を直接実行し、それによりリーフノードEの処理オーバーヘッドを削減することができる。
前述の技術的ソリューションでは、より柔軟なBIER展開を更にサポートすることができる。例えば、リーフノードEはBIERヘッダの読み取り又は処理をサポートしなくてもよいが、リーフノードEが外部IPv6ヘッダのポッピングをサポートする場合には、リーフノードEはこの方法に従ってネットワーク内に展開されてもよい。
取り得る他の一実装において、ノードBによって受信された宛先アドレスがBのEND.BIERである場合、ノードBは以下のEND.BIER処理手順を実行する:ノードBは、IPv6拡張ヘッダ内にN個のBIERヘッダがあることを決定し、M番目のBIERヘッダを読み取って複製し(例えば、M番目のBIERヘッダをノードEに対して複製し)、ノードEのEND.BIERをIPv6 DAフィールドに埋め、M番目のBIERヘッダ以外のBIERヘッダをポッピングし、そして、M番目のBIERヘッダのみを保持する。IPv6拡張ヘッダの長さフィールドはそれに従って変化される。次の例では、IPv6基本ヘッダ内の次ヘッダNHは宛先オプションヘッダである。具体的な設定は以下の通りである:
1. IF NH=60 //con2
2. IF (DestOptHdr OptType=BIER) and ((HdrExtLen*8+8)%(4+OptLength1)=0) //con1
3. Walk each TLV in DestOptHdr
4. If (OptType=BIER and OptLen=OptLength1) or(OptType=PadN and OptLen=0)
5. Continue
6. ELSE
7. Drop the packet; possibly send an ICMP parameter problem message;
8. End Walk of each TLV
9. For (N=0; N<(HdrExtLen*8+8)/(4+OptLength1); N++)
10. lookup the BIER Header begin from (N*OptLength1+4)bytes
11. copy packet if this packet need to forward to according to this lookup.
12. pop the TLV(s) except for this one, Set HdrExtLen=(4+OptLength1)/8.
13. forward via the matched entry,
14. END-FOR
15 ELSE //end of con1
16. drop the packet; possibly send an ICMP parameter problem message;
17. ELSE //end of con2
18. drop the packet; possibly send an ICMP parameter problem message;
ステップ2で、“HdrExtLen*8+8”は宛先オプションヘッダ(DestOptHdr)の全長を表し、“OptLength1”は第1のBIER TLVにおける長さ(Length、すなわち、BIERヘッダの長さ)を表す。宛先オプションヘッダ(DestOptHdr)がヘッダ全体の長さが8の整数倍であることを要求するので、BIERヘッダの長さ+4は8の整数倍である。宛先オプションヘッダの長さは8バイトの単位であり、最初の8バイトは含まない。例えば:
(NextHeader=x,Length=17,Type=BIER,Length=44) //注1;
(BIERヘッダ<12バイト(固定長)+256ビットを表す32バイト>)//最初のBIERヘッダ;
(Type=PadN,Length=0,Type=BIER,Length=44)//注2;
(BIERヘッダ<12バイト(固定長)+256ビットを表す32バイト>))//2番目のBIERヘッダ;
(Type=PadN,Length=0,Type=BIER,Length=44)//注3;
(BIERヘッダ<12バイト(固定長)+256ビットを表す32バイト>))//3番目のBIERヘッダ;
注1:DestOptHdrは、NHフィールド及び長さフィールドから始まる;
注2:PadN TLVは、2番目のBIER TLVの前にパディングされる;
注3:PadN TLVは、3番目のBIER TLVの前にパディングされる。
前述の構成において、ステップ3から8は、パケットフォーマットが要求を満たすかが決定されるループである。この出願のこの実施形態では、複数のBIERヘッダは同じ長さ(すなわち、最初のBIERヘッダのOptLength1と同じ長さ)を持つことが要求され、2番目以降のBIERヘッダはPadNでパディングされる(RFC 8200におけるパディング要求を参照)。
前述の設定において、ステップ9から14は、各BIERヘッダが検討されるがPadNヘッダは処理されない別のループである。最初のBIERヘッダが処理されるとき、最初のBIERヘッダに続く2つのBIERヘッダをポッピングするのは比較的容易であり、すなわち、(1*(OptLength1+4))番目のバイトから始まる96バイトのみが破棄される必要があり、IPv6拡張ヘッダの長さフィールド(DestOptHdr Length)が5に設定される。2番目のBIERヘッダが処理されるとき、最初の及び3番目のBIERヘッダがポッピングされる必要があり、すなわち、2番目のBIERヘッダ(1*(OptLength1+4)+4)番目のバイトから始まるOptLengthバイト)が、(0*(OptLength1+4)+4)番目のバイトがある位置にコピーされる必要があり、(1*(OptLength1+4))番目のバイトから始まる96バイトが破棄され、DestOptHdr Lengthが5に設定される。
3番目のBIERヘッダが処理されるとき、最初の及び2番目のBIERヘッダがポッピングされる必要があり、すなわち、3番目のBIERヘッダ(2*(OptLength1+4)+4)番目のバイトから始まるOptLengthバイト)が、(0*(OptLength1+4)+4)番目のバイトがある位置にコピーされる必要があり、(1*(OptLength1+4))番目のバイトから始まる96バイトが破棄され、DestOptHdr Lengthが5に設定される。
以上では、図1から図6を参照して、この出願の実施形態で提供されるBIERパケット送信方法を詳細に説明している。以下では、図7及び図8を参照して、この出願の実施形態におけるBIERパケット送信装置を詳細に説明する。理解されるべきことには、方法実施形態の説明は装置実施形態の説明に対応する。従って、詳細に説明されない部分については、前述の方法実施形態における説明を参照されたい。
図7は、この出願の一実施形態に従ったBIERパケット送信装置700の概略構成図である。BIERパケット送信装置700は、
インターネットプロトコルバージョン6 IPv6 プロトコルを用いてカプセル化されて第2の転送装置によって送信されたBIERパケットを受信するように構成された受信モジュール710であり、BIERパケットは、IPv6基本ヘッダ及びBIERヘッダを含み、IPv6基本ヘッダ内の宛先アドレスフィールドは、第1の転送装置の第1のIPv6アドレスである、受信モジュール710と、
転送テーブル内の第1のIPv6アドレスに対応する識別子に基づいてBIERパケット上でBIER転送を実行することを決定するように構成された処理モジュール720であり、識別子は、第1のIPv6アドレスがBIER転送の宛先アドレスであることを指し示すために使用される、処理モジュール720と、
を含み得る。
オプションで、処理モジュール720は具体的に、IPv6基本ヘッダ内の宛先アドレスフィールドに埋められたアドレスが転送テーブル内の第1のIPv6アドレスと同じであることを決定するように構成される。第1の転送装置は、第1のIPv6アドレスに対応する識別子に基づいて、BIERパケット上でBIER転送を実行することを決定する。
オプションで、BIERパケット送信装置700は更に、第1のIPv6アドレス及び識別子を設定するように構成された設定モジュール740を含む。
オプションで、装置700は更に、ルーティングプロトコルを用いて、第1の転送装置の第1のIPv6アドレス及び識別子をネットワークにフラッディングするように構成された送信モジュール730を含む。
オプションで、処理モジュール720は具体的に、IPv6基本ヘッダ内の次ヘッダNHフィールドが、1つのBIERヘッダを運ぶ拡張ヘッダであるときに、BIERヘッダ内のビット列フィールドに基づいてBIER転送を実行する、ように構成される。
オプションで、処理モジュール720は具体的に、IPv6基本ヘッダ内の次ヘッダNHフィールドがルーティングヘッダRHであり、且つルーティングヘッダRH内の次ヘッダNHフィールドが、1つのBIERヘッダを運ぶ拡張ヘッダであるときに、ルーティングヘッダRHをポッピングし、且つBIERヘッダ内のビット列フィールドに基づいてBIER転送を実行する、ように構成される。
オプションで、ルーティングヘッダRHはセグメントルーティングヘッダSRHであり、セグメントルーティングヘッダSRHのセグメント左SLは0である。
オプションで、処理モジュール720は具体的に、IPv6基本ヘッダ内の次ヘッダNHフィールドが、1つのBIERヘッダを運ぶ拡張ヘッダであり、且つ拡張ヘッダ内の次ヘッダNHフィールドがAH認証ヘッダであるときに、BIERヘッダ内のビット列フィールドに基づいてBIER転送を実行する、ように構成される。
オプションで、処理モジュール720は具体的に、BIERヘッダ内のビット列及びBIER転送テーブルに基づいて、BIERパケットのIPv6基本ヘッダ内の宛先アドレスフィールド内の第3の転送装置の第1のIPv6アドレスを埋め、BIER転送テーブルは、第3の転送装置によってフラッディングされたBIERメッセージ内で運ばれる第1のIPv6アドレスに基づいて構築される、ように構成され、第1の転送装置は、BIER転送テーブルに基づいてBIERパケットを第3の転送装置に対して複製する。
オプションで、処理モジュール720は具体的に、1つ以上の運ばれるBIERヘッダをポッピングし、1つ以上のBIERヘッダを含む拡張ヘッダをポッピングし、拡張ヘッダを含まないBIERパケットを第3の転送装置に対して複製する、ように構成される。
オプションで、処理モジュール720は具体的に、第3の転送装置がリーフノードであると決定したときに、1つ以上のBIERヘッダを含む拡張ヘッダをポッピングする、ように構成される。
オプションで、拡張ヘッダは宛先オプションヘッダである。
オプションで、ルーティングプロトコルは、中間システム間IS-ISプロトコル、オープン最短パスファーストOSPFプロトコル、又は境界ゲートウェイプロトコルBGPのうちのいずれか1つを含む。
図8は、この出願の一実施形態に従った第1転送装置800の概略構成図である。第1転送装置600は、メモリ810と、プロセッサ820と、入力/出力インタフェース830とを含み得る。
メモリ810、プロセッサ820、及び入力/出力インタフェース830は、内部接続パスを用いて接続される。メモリ810は、プログラム命令を格納するように構成される。プロセッサ820は、メモリ810に格納されたプログラム命令を実行して、入力データ及び情報を受信し、例えば演算結果などのデータを出力するように、入力/出力インタフェース830を制御するように構成される。
理解されるべきことには、この出願の実施形態におけるプロセッサ820は、中央演算処理ユニット(central processing unit、CPU)であってもよいし、あるいは更には、別の汎用プロセッサ、デジタル信号プロセッサ(digital signal processor、DSP)、特定用途向け集積回路(application specific integrated circuit、ASIC)、フィールドプログラマブルゲートアレイ(field programmable gate array、FPGA)、又は別のプログラマブル論理デバイス、ディスクリートのゲート若しくはトランジスタ論理デバイス、ディスクリートのハードウェアコンポーネント、又はこれらに類するものであってもよい。汎用プロセッサはマイクロプロセッサであってもよく、あるいはプロセッサは、任意の従来からのプロセッサ又はそれに類するものであってもよい。代わりに、プロセッサ820は、1つ以上の集積回路であってもよく、関連プログラムを実行して、この出願の実施形態で提供される技術的ソリューションを実装するように構成される。
メモリ810は、読み出し専用メモリ及びランダムアクセスメモリを含み得るとともに、命令及びデータをプロセッサ820に提供し得る。プロセッサ820の一部が更に、不揮発性ランダムアクセスメモリを含んでもよい。例えば、プロセッサ820は更に、デバイスタイプの情報を格納してもよい。
一実装プロセスにおいて、前述の方法におけるステップは、プロセッサ820内のハードウェア集積論理回路を使用することによって、又はソフトウェアの形態の命令を使用することによって実装されることができる。この出願の実施形態を参照して開示された方法は、ハードウェアプロセッサによって直接実行されてもよいし、あるいはプロセッサ内のハードウェアとソフトウェアモジュールとの組み合わせを用いることによって実行されてもよい。ソフトウェアモジュールは、例えばランダムアクセスメモリ、フラッシュメモリ、読み出し専用メモリ、プログラマブル読み出し専用メモリ、電気的消去プログラム可能メモリ、又はレジスタなどの、当該技術分野における成熟した記憶媒体内に置かれ得る。記憶媒体がメモリ810内に配置され、そして、プロセッサ820が、メモリ810内の情報を読み出し、プロセッサのハードウェアと組み合わさって、上述の方法におけるステップを実行する。繰り返しを避けるために、詳細をここで再び説明することはしない。
理解されるべきことには、この出願の実施形態に従った第1転送装置800は、この出願の実施形態における図2から図4に示した方法の対応する手順を実行するように構成される。加えて、第1転送装置800内のモジュールの前述の及びその他の動作及び/又は機能は、この出願の実施形態における図2から図4に示した方法の対応する手順を実装するように別々に使用される。簡潔さのため、詳細をここで再び説明することはしない。
なお、図8に示す第1転送装置800において、プロセッサは、メモリ内のコンピュータプログラムを呼び出して、モジュールによって実行されるステップを実装し得る。例えば、プロセッサは、キャッシュに格納されたコンピュータ命令を呼び出して、モジュール(例えば、図7に示した受信モジュール710及び処理モジュール720)によって実行されるステップを実行し得る。
理解されるべきことには、上述のプロセスのシーケンス番号は、この出願の様々な実施態様における実行順序を意味するものではない。プロセスの実行順序は、プロセスの機能及び内部ロジックに従って決定されるべきであり、この出願の実施態様の実装プロセスに対する何らかの限定として解釈されるべきでない。
当業者が認識し得ることには、この明細書に開示された実施形態にて記述された例と組み合わせて、ユニット及びアルゴリズムステップは、電子ハードウェアによって、又はコンピュータソフトウェアと電子ハードウェアとの組み合わせによって実装され得る。機能がハードウェアによって実行されるのか、それともソフトウェアによって実行されるのかは、技術的ソリューションの特定の用途及び設計制約に依存する。当業者は、特定の用途ごとに、記載された機能を実装するために異なる方法を用いることができるのであり、その実装がこの出願の範囲を超えるものであると考えるべきではない。
当業者によって明確に理解され得ることには、簡便且つ簡潔な説明の目的のため、上述のシステム、装置、及びユニットの詳細な動作プロセスについては、上述の方法の実施形態における対応するプロセスを参照されたく、ここで再び詳細を説明することはしない。
この出願にて提供された一部の実施形態において、理解されるべきことには、開示されたシステム、装置、及び方法は、その他のようにして実施されてもよい。例えば、記載された装置の実施形態は単なる例である。例えば、ユニット分割は、単なる論理機能分割であり、実際の実装においてはその他の分割とし得る。例えば、複数のユニット又はコンポーネントが別のシステムへと組み合わされたり統合されたりしてもよく、あるいは、一部の機構が無視されたり実行されなかったりしてもよい。また、図示又は説明された相互結合又は直接結合又は通信接続は、何らかのインタフェースを用いることによって実装され得る。装置又はユニットの間の間接結合又は通信接続は、電子的な形態、機械的な形態、又はその他の形態にて実装され得る。
別々の部分として記載されたユニットは、物理的に別々であってもなくてもよく、また、ユニットとして示された部分は、物理的なユニットであってもなくてもよく、一箇所にあってもよいし複数のネットワークユニットに分散されてもよい。それらユニットの一部又は全てが、実施形態のソリューションの目的を達成するように、実際の要求に基づいて選択され得る。
また、この出願の実施形態における複数の機能ユニットが1つの処理ユニットへと統合されてもよく、あるいは、それらユニットの各々が物理的に単独で存在してもよく、あるいは、2つ以上のユニットが1つのユニットへと統合される。
機能がソフトウェア機能ユニットの形態で実装されて、独立したプロダクトとして販売又は使用されるとき、その機能はコンピュータ読み取り可能記憶媒体に格納されてもよい。このような理解に基づき、この出願の技術的ソリューションは本質的に、又は先行技術に対して寄与する部分は、又は技術的ソリューションの一部は、ソフトウェアプロダクトの形態で実装され得る。コンピュータソフトウェアプロダクトは、記憶媒体に格納されるとともに、この出願の実施形態にて記載された方法のステップの全て又は一部を実行するようにコンピュータ装置(これは、パーソナルコンピュータ、サーバ、又はネットワーク装置)に命令する幾つかの命令を含む。上述の記憶媒体は、例えばUSBフラッシュドライブ、リムーバブルハードディスク、読み出し専用メモリ(read-only memory,ROM)、ランダムアクセスメモリ(random access memory,RAM)、磁気ディスク、又は光ディスクなどの、プログラムコードを記憶することができる任意の媒体を含む。
以上の説明は、単にこの出願の特定の実装であり、この出願の保護範囲を限定することを意図するものではない。この出願にて開示された技術的範囲内で当業者が容易に考え付く如何なる変形又は置換も、この出願の保護範囲に入るものである。従って、この出願の保護範囲は、請求項の保護範囲に従うものである。
以上の説明は、単に本発明の特定の実装であり、本発明の保護範囲を限定することを意図するものではない。本発明にて開示された技術的範囲内で当業者が容易に考え付く如何なる変形又は置換も、本発明の保護範囲に入るものである。従って、本発明の保護範囲は、請求項の保護範囲に従うものである。

Claims (28)

  1. ビットインデックス明示的複製BIERパケット送信方法であって、
    第1の転送装置により、インターネットプロトコルバージョン6 IPv6 プロトコルを用いてカプセル化されて第2の転送装置によって送信されたBIERパケットを受信するステップであり、前記BIERパケットは、IPv6基本ヘッダ及びBIERヘッダを有し、前記IPv6基本ヘッダ内の宛先アドレスフィールドは、前記第1の転送装置の第1のIPv6アドレスである、ステップと、
    前記第1の転送装置により、転送テーブル内の前記第1のIPv6アドレスに対応する識別子に基づいて前記BIERパケット上でBIER転送を実行するステップであり、前記識別子は、前記第1のIPv6アドレスがBIERの宛先アドレスであることを指し示すために使用される、ステップと、
    を有する方法。
  2. 前記第1の転送装置により、転送テーブル内の前記第1のIPv6アドレスに対応する識別子に基づいて前記BIERパケット上でBIER転送を前記実行するステップは、
    前記第1の転送装置により、前記IPv6基本ヘッダ内の前記宛先アドレスフィールドに埋められたアドレスが前記転送テーブル内の前記第1のIPv6アドレスと同じであることを決定し、
    前記第1の転送装置により、前記第1のIPv6アドレスに対応する前記識別子に基づいて、前記BIERパケット上でBIER転送を実行する、
    ことを有する、請求項1に記載の方法。
  3. 当該方法は更に、
    前記第1の転送装置により、前記第1のIPv6アドレス及び前記識別子を設定するステップ、
    を有する、請求項1又は2に記載の方法。
  4. 第1の転送装置により、インターネットプロトコルバージョン6 IPv6 プロトコルを用いてカプセル化されて第2の転送装置によって送信されたBIERパケットを前記受信するステップの前に、当該方法は更に、
    前記第1の転送装置により、ルーティングプロトコルを用いて、前記第1の転送装置の前記第1のIPv6アドレス及び前記識別子をネットワークにフラッディングするステップ、
    を有する、請求項1乃至3のいずれか一項に記載の方法。
  5. 前記第1の転送装置により、前記第1のIPv6アドレスに対応する前記識別子に基づいて、前記BIERパケット上でBIER転送を実行することを前記決定するステップは、
    前記IPv6基本ヘッダ内の次ヘッダNHフィールドが、1つのBIERヘッダを運ぶ拡張ヘッダであるときに、前記第1の転送装置により、前記BIERヘッダ内のビット列フィールドに基づいてBIER転送を実行する、
    ことを有する、請求項1乃至4のいずれか一項に記載の方法。
  6. 前記第1の転送装置により、前記第1のIPv6アドレスに対応する前記識別子に基づいて、前記BIERパケット上でBIER転送を実行することを前記決定するステップは、
    前記IPv6基本ヘッダ内の次ヘッダNHフィールドがルーティングヘッダRHであり、且つ前記ルーティングヘッダRH内の次ヘッダNHフィールドが、1つのBIERヘッダを運ぶ拡張ヘッダであるときに、前記第1の転送装置により、前記ルーティングヘッダRHをポッピングし、且つ前記BIERヘッダ内のビット列フィールドに基づいてBIER転送を実行する、
    ことを有する、請求項1乃至4のいずれか一項に記載の方法。
  7. 前記ルーティングヘッダRHはセグメントルーティングヘッダSRHであり、前記セグメントルーティングヘッダSRHのセグメント左SLは0である、請求項6に記載の方法。
  8. 前記第1の転送装置により、前記第1のIPv6アドレスに対応する前記識別子に基づいて、前記BIERパケット上でBIER転送を実行することを前記決定するステップは、
    前記IPv6基本ヘッダ内の次ヘッダNHフィールドが、1つのBIERヘッダを運ぶ拡張ヘッダであり、且つ前記拡張ヘッダ内の次ヘッダNHフィールドがAH認証ヘッダであるときに、前記第1の転送装置により、前記BIERヘッダ内のビット列フィールドに基づいてBIER転送を実行する、
    ことを有する、請求項1乃至4のいずれか一項に記載の方法。
  9. 前記第1の転送装置により、前記第1のIPv6アドレスに対応する前記識別子に基づいて、前記BIERパケット上でBIER転送を実行することを前記決定するステップは、
    前記第1の転送装置により、前記BIERヘッダ内のビット列及びBIER転送テーブルに基づいて、BIERパケットの前記IPv6基本ヘッダ内の前記宛先アドレスフィールド内の第3の転送装置の第1のIPv6アドレスを埋め、前記BIER転送テーブルは、前記第3の転送装置によってフラッディングされたBIERメッセージ内で運ばれる第1のIPv6アドレスに基づいて構築され、
    前記第1の転送装置により、前記BIER転送テーブルに基づいて前記BIERパケットを前記第3の転送装置に対して複製する、
    ことを有する、請求項5乃至8のいずれか一項に記載の方法。
  10. 前記第1の転送装置により、前記BIER転送テーブルに基づいて前記BIERパケットを前記第3の転送装置に対して前記複製することは、
    前記第1の転送装置により、1つ以上の運ばれるBIERヘッダをポッピングし、
    前記第1の転送装置により、1つ以上のBIERヘッダを有する拡張ヘッダをポッピングし、
    前記第1の転送装置により、前記拡張ヘッダを有しない前記BIERパケットを前記第3の転送装置に対して複製する、
    ことを有する、請求項9に記載の方法。
  11. 前記第1の転送装置により、1つ以上のBIERヘッダを有する拡張ヘッダを前記ポッピングすることは、
    前記第3の転送装置がリーフノードであると決定したときに、前記第1の転送装置により、1つ以上のBIERヘッダを有する前記拡張ヘッダをポッピングする、
    ことを有する、請求項10に記載の方法。
  12. 前記拡張ヘッダは宛先オプションヘッダである、請求項5乃至11のいずれか一項に記載の方法。
  13. 前記ルーティングプロトコルは、中間システム間IS-ISプロトコル、オープン最短パスファーストOSPFプロトコル、又は境界ゲートウェイプロトコルBGPのうちのいずれか1つを有する、請求項4乃至12のいずれか一項に記載の方法。
  14. ビットインデックス明示的複製BIERパケット送信装置であって、
    インターネットプロトコルバージョン6 IPv6 プロトコルを用いてカプセル化されて第2の転送装置によって送信されたBIERパケットを受信するように構成された受信モジュールであり、前記BIERパケットは、IPv6基本ヘッダ及びBIERヘッダを有し、前記IPv6基本ヘッダ内の宛先アドレスフィールドは、前記第1の転送装置の第1のIPv6アドレスである、受信モジュールと、
    転送テーブル内の前記第1のIPv6アドレスに対応する識別子に基づいて前記BIERパケット上でBIER転送を実行するように構成された処理モジュールであり、前記識別子は、前記第1のIPv6アドレスがBIERの宛先アドレスであることを指し示すために使用される、処理モジュールと、
    を有する装置。
  15. 前記処理モジュールは具体的に、
    前記IPv6基本ヘッダ内の前記宛先アドレスフィールドに埋められたアドレスが前記転送テーブル内の前記第1のIPv6アドレスと同じであることを決定し、
    前記第1のIPv6アドレスに対応する前記識別子に基づいて、前記BIERパケット上でBIER転送を実行する、
    ように構成されている、請求項14に記載の装置。
  16. 当該装置は更に、
    前記第1のIPv6アドレス及び前記識別子を設定するように構成された設定モジュール、
    を有する、請求項14又は15に記載の装置。
  17. 当該装置は更に、
    ルーティングプロトコルを用いて、前記第1の転送装置の前記第1のIPv6アドレス及び前記識別子をネットワークにフラッディングするように構成された送信モジュール、
    を有する、請求項14乃至16のいずれか一項に記載の装置。
  18. 前記処理モジュールは、
    前記IPv6基本ヘッダ内の次ヘッダNHフィールドが、1つのBIERヘッダを運ぶ拡張ヘッダであるときに、前記BIERヘッダ内のビット列フィールドに基づいてBIER転送を実行する、
    ように構成されている、請求項14乃至17のいずれか一項に記載の装置。
  19. 前記処理モジュールは、
    前記IPv6基本ヘッダ内の次ヘッダNHフィールドがルーティングヘッダRHであり、且つ前記ルーティングヘッダRH内の次ヘッダNHフィールドが、1つのBIERヘッダを運ぶ拡張ヘッダであるときに、前記ルーティングヘッダRHをポッピングし、且つ前記BIERヘッダ内のビット列フィールドに基づいてBIER転送を実行する、
    ように構成されている、請求項14乃至17のいずれか一項に記載の装置。
  20. 前記ルーティングヘッダRHはセグメントルーティングヘッダSRHであり、前記セグメントルーティングヘッダSRHのセグメント左SLは0である、請求項19に記載の装置。
  21. 前記処理モジュールは、
    前記IPv6基本ヘッダ内の次ヘッダNHフィールドが、1つのBIERヘッダを運ぶ拡張ヘッダであり、且つ前記拡張ヘッダ内の次ヘッダNHフィールドがAH認証ヘッダであるときに、前記BIERヘッダ内のビット列フィールドに基づいてBIER転送を実行する、
    ように構成されている、請求項14乃至17のいずれか一項に記載の装置。
  22. 前記処理モジュールは、
    前記BIERヘッダ内のビット列及びBIER転送テーブルに基づいて、BIERパケットの前記IPv6基本ヘッダ内の前記宛先アドレスフィールド内の第3の転送装置の第1のIPv6アドレスを埋め、前記BIER転送テーブルは、前記第3の転送装置によってフラッディングされたBIERメッセージ内で運ばれる第1のIPv6アドレスに基づいて構築される、
    ように構成されており、
    前記第1の転送装置は、前記BIER転送テーブルに基づいて前記BIERパケットを前記第3の転送装置に対して複製する、
    請求項18乃至21のいずれか一項に記載の装置。
  23. 前記処理モジュールは具体的に、
    1つ以上の運ばれるBIERヘッダをポッピングし、
    1つ以上のBIERヘッダを有する拡張ヘッダをポッピングし、
    前記拡張ヘッダを有しない前記BIERパケットを前記第3の転送装置に対して複製する、
    ように構成されている、請求項22に記載の装置。
  24. 前記処理モジュールは具体的に、
    前記第3の転送装置がリーフノードであると決定したときに、1つ以上のBIERヘッダを有する前記拡張ヘッダをポッピングする、
    ように構成されている、請求項23に記載の装置。
  25. 前記拡張ヘッダは宛先オプションヘッダである、請求項18乃至24のいずれか一項に記載の装置。
  26. 前記ルーティングプロトコルは、中間システム間IS-ISプロトコル、オープン最短パスファーストOSPFプロトコル、又は境界ゲートウェイプロトコルBGPのうちのいずれか1つを有する、請求項17乃至25のいずれか一項に記載の装置。
  27. 入力/出力インタフェースと、プロセッサと、メモリとを有し、前記メモリは、プログラム命令を格納するように構成され、前記プロセッサは、前記メモリから前記プログラム命令を呼び出し、前記プログラム命令を実行して、請求項1乃至13のいずれか一項に記載の方法を実行するように構成されている、第1転送装置。
  28. コンピュータプログラムを有し、該コンピュータプログラムがコンピュータ上で実行されるとき、該コンピュータは、請求項1乃至13のいずれか一項に記載の方法を実行することを可能にされる、コンピュータ読み取り可能記憶媒体。

JP2021571827A 2019-06-06 2020-06-07 Bierパケット送信方法及び装置 Active JP7322188B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201910493114.7 2019-06-06
CN201910493114.7A CN112054959B (zh) 2019-06-06 2019-06-06 一种bier报文的发送方法和装置
PCT/CN2020/094791 WO2020244651A1 (zh) 2019-06-06 2020-06-07 一种bier报文的发送方法和装置

Publications (2)

Publication Number Publication Date
JP2022535405A true JP2022535405A (ja) 2022-08-08
JP7322188B2 JP7322188B2 (ja) 2023-08-07

Family

ID=73609062

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021571827A Active JP7322188B2 (ja) 2019-06-06 2020-06-07 Bierパケット送信方法及び装置

Country Status (8)

Country Link
US (1) US11949585B2 (ja)
EP (1) EP3965381A4 (ja)
JP (1) JP7322188B2 (ja)
KR (1) KR102657811B1 (ja)
CN (2) CN112054959B (ja)
BR (1) BR112021024190A2 (ja)
MX (1) MX2021014793A (ja)
WO (1) WO2020244651A1 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11632254B2 (en) * 2020-02-21 2023-04-18 Mcafee, Llc Home or enterprise router-based secure domain name services
CN113055294A (zh) * 2020-12-29 2021-06-29 中兴通讯股份有限公司 报文封装、解封装方法、装置、存储介质及电子装置
CN114945000B (zh) * 2021-02-07 2023-08-15 中国移动通信有限公司研究院 一种组播报文传输方法、位转发路由器及存储介质
US11705983B2 (en) * 2021-03-22 2023-07-18 Cisco Technology, Inc. Efficient BIER forwarding over varying BSL domain using header stitching
CN115314150A (zh) * 2021-04-21 2022-11-08 中兴通讯股份有限公司 一种报文处理方法、装置、存储介质及电子装置
CN115277552A (zh) * 2021-04-30 2022-11-01 华为技术有限公司 传输报文的方法、装置及设备
CN115699685A (zh) * 2021-05-28 2023-02-03 新华三技术有限公司 随流检测方法和电子设备
CN115733790A (zh) * 2021-09-02 2023-03-03 华为技术有限公司 报文转发方法、装置、设备及存储介质
CN113839895B (zh) * 2021-11-01 2023-08-22 新华三技术有限公司合肥分公司 一种报文转发方法及装置
CN115134275A (zh) * 2022-06-06 2022-09-30 中国信息通信研究院 利用IPv6逐跳扩展头实现单向网络测试的方法、电子设备及存储介质
EP4376375A1 (en) * 2022-11-28 2024-05-29 Huawei Technologies Co., Ltd. Packet mirroring method, apparatus, and system

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150256456A1 (en) * 2014-03-06 2015-09-10 Cisco Technology, Inc. Segment routing extension headers
WO2019057199A1 (zh) * 2017-09-25 2019-03-28 华为技术有限公司 一种报文转发的方法及网络设备

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7246175B1 (en) 2001-12-07 2007-07-17 Cisco Technology, Inc. IPv6 over MPLS IPv4 core
US10447575B1 (en) * 2012-12-27 2019-10-15 Sitting Man, Llc Routing methods, systems, and computer program products
WO2015042156A1 (en) * 2013-09-17 2015-03-26 Cisco Technology, Inc. Bit indexed explicit replication
US9438432B2 (en) * 2013-09-17 2016-09-06 Cisco Technology, Inc. Bit indexed explicit replication packet encapsulation
US11451474B2 (en) * 2013-09-17 2022-09-20 Cisco Technology, Inc. Equal cost multi-path with bit indexed explicit replication
US9444677B2 (en) 2013-10-18 2016-09-13 Cisco Technology, Inc. Scalable edge node protection using IPv6 segment routing extension header
US9749410B2 (en) * 2014-11-18 2017-08-29 Cisco Technology, Inc. Using bit index explicit replication (BIER) in low-power and lossy networks
US10341221B2 (en) * 2015-02-26 2019-07-02 Cisco Technology, Inc. Traffic engineering for bit indexed explicit replication
CN106341327A (zh) * 2015-07-08 2017-01-18 中兴通讯股份有限公司 一种bier报文的传输方法及系统
CN106572017B (zh) * 2015-10-09 2021-06-15 中兴通讯股份有限公司 Bier信息的发送方法、接收方法及装置
CN106603407B (zh) * 2015-10-16 2020-10-27 中兴通讯股份有限公司 组播地址的传输方法和装置
CN111294236B (zh) * 2015-12-28 2023-04-18 华为技术有限公司 基于业务功能链sfc的通信方法和装置
US9992111B2 (en) 2016-01-21 2018-06-05 Cisco Technology, Inc. Router table scaling in modular platforms
US10270690B2 (en) 2016-02-29 2019-04-23 Cisco Technology, Inc. System and method for dataplane-signaled packet capture in IPV6 environment
GB201612356D0 (en) 2016-04-19 2016-08-31 Cisco Tech Inc Network monitoring and control system and method
CN107592262A (zh) * 2016-07-07 2018-01-16 中兴通讯股份有限公司 报文发送方法和装置、报文跨域转发的网络架构
US10382597B2 (en) 2016-07-20 2019-08-13 Cisco Technology, Inc. System and method for transport-layer level identification and isolation of container traffic
CN107786451A (zh) * 2016-08-30 2018-03-09 中兴通讯股份有限公司 一种元数据的传输方法及装置
US10469379B2 (en) * 2017-02-17 2019-11-05 Cisco Technology, Inc. System and method to facilitate content delivery to multiple recipients in a network environment
CN108632150B (zh) * 2017-03-22 2022-02-25 中兴通讯股份有限公司 一种信息传递方法及装置
US10447496B2 (en) * 2017-03-30 2019-10-15 Cisco Technology, Inc. Multicast traffic steering using tree identity in bit indexed explicit replication (BIER)
CN108965134B (zh) * 2017-05-23 2022-04-29 中兴通讯股份有限公司 报文转发方法及装置
US10506083B2 (en) 2017-06-27 2019-12-10 Cisco Technology, Inc. Segment routing gateway storing segment routing encapsulating header used in encapsulating and forwarding of returned native packet
US10367734B2 (en) 2017-07-11 2019-07-30 Cisco Technology, Inc. Forwarding of packets in a network based on multiple compact forwarding identifiers represented in a single internet protocol version 6 (IPv6) address
CN109510771B (zh) * 2017-09-15 2021-06-29 北京华为数字技术有限公司 组播传输方法及相关设备
CN109756425B (zh) * 2017-11-07 2022-01-18 中国电信股份有限公司 组播转发方法、装置以及bfr
CN109729012B (zh) * 2018-12-24 2021-08-24 新华三技术有限公司 一种单播报文传输方法和装置
CN110784411B (zh) * 2019-09-30 2021-10-01 华为技术有限公司 建立bier转发表项的方法、装置和系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150256456A1 (en) * 2014-03-06 2015-09-10 Cisco Technology, Inc. Segment routing extension headers
WO2019057199A1 (zh) * 2017-09-25 2019-03-28 华为技术有限公司 一种报文转发的方法及网络设备
CN109561021A (zh) * 2017-09-25 2019-04-02 华为技术有限公司 一种报文转发的方法及网络设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"Encapsulation for BIER in Non-MPLS IPv6 Networks draft-xie-bier-6man-encapsulation-02", ENCAPSULATION FOR BIER IN NON-MPLS IPV6 NETWORKS DRAFT-XIE-BIER-6MAN-ENCAPSULATION-02, JPN6023001443, 1 September 2018 (2018-09-01), ISSN: 0004971844 *

Also Published As

Publication number Publication date
MX2021014793A (es) 2022-01-18
CN114189473A (zh) 2022-03-15
EP3965381A1 (en) 2022-03-09
CN112054959B (zh) 2021-11-19
JP7322188B2 (ja) 2023-08-07
WO2020244651A1 (zh) 2020-12-10
KR20220007736A (ko) 2022-01-18
CN112054959A (zh) 2020-12-08
BR112021024190A2 (pt) 2022-01-11
CN114189473B (zh) 2023-07-14
EP3965381A4 (en) 2022-10-26
US20220109623A1 (en) 2022-04-07
US11949585B2 (en) 2024-04-02
KR102657811B1 (ko) 2024-04-15

Similar Documents

Publication Publication Date Title
JP7322188B2 (ja) Bierパケット送信方法及び装置
US11902049B2 (en) BIER packet sending method and apparatus
JP7419510B2 (ja) Bier転送項目構築方法、装置、およびシステム
JP7208386B2 (ja) パケット転送方法、パケット送信装置、およびパケット受信装置
AU2011244044B2 (en) Efficient encapsulation of packets transmitted on a packet-pseudowire over a Packet Switched Network
JP5992602B2 (ja) IPv6ネットワークにおいてラベル配布プロトコル(LDP)を使用するためのシステムおよび方法
AU2011244044A1 (en) Efficient encapsulation of packets transmitted on a packet-pseudowire over a Packet Switched Network
WO2022041916A1 (zh) 报文头的处理方法及装置、存储介质、电子装置
JP2010177800A (ja) パケット転送方法及びノード装置
JP2023549797A (ja) Bierパケット転送方法、デバイス、及びシステム
Bao et al. IP/ICMP translation algorithm
WO2023174188A1 (zh) 一种报文处理的方法、路由通告的方法及相关设备
US20240171510A1 (en) Packet transmission method and related device
WO2024045537A1 (zh) 报文传输的方法和网络设备
Eastlake 3rd et al. Transparent interconnection of lots of links (TRILL): Clarifications, corrections, and updates
EP3863237B1 (en) Packet forwarding method, packet transmission device, and packet reception device
EP4246917A1 (en) Message transmission method, method for acquiring correspondence, and apparatus and system
US11757767B2 (en) Source routing with shadow addresses
WO2024092288A1 (en) Segment routing (sr) binding protection
Bao et al. RFC 7915: IP/ICMP Translation Algorithm
CN115733790A (zh) 报文转发方法、装置、设备及存储介质
Gashinsky TRILL working group L. Dunbar Internet Draft D. Eastlake Intended status: Standard Track Huawei Expires: Sept 2012 Radia Perlman Intel

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211227

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211227

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20221228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230124

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230420

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230627

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230726

R150 Certificate of patent or registration of utility model

Ref document number: 7322188

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150