メインコンテンツまでスキップ

6. 図解

6. 図解

本節では、SR 送信元、トランジット、および SR セグメントエンドポイントノードにおける SRv6 パケット処理を図解する。

6.1. SRH の抽象表現

ノード k について、その IPv6 アドレスを Ak、その SRv6 SID を Sk と表す。

IPv6 ヘッダは(送信元、宛先)の組として表す。例えば、送信元アドレス A1、宛先アドレス A2 のパケットは(A1,A2)と表す。パケットのペイロードは省略する。

SR Policy はセグメントのリストである。セグメントリストは <S1,S2,S3> と表し、S1 は最初に訪れる SID、S2 は 2 番目に訪れる SID、S3 は最後に訪れる SID である。

(SA,DA) (S3,S2,S1; SL) は、次の特性を持つ IPv6 パケットを表す。

  • 送信元アドレス SA、宛先アドレス DA、次のヘッダが SRH である。
  • SegmentsLeft = SL の SID リスト <S1,S2,S3> を持つ SRH。
  • <> と () の記号の違いに注意する。<S1,S2,S3> は左端のセグメントが最初のセグメントである SID リストを表す。対して、(S3,S2,S1; SL) は同じ SID リストを表すが、左端のセグメントが最後のセグメントである SRH Segment List 形式で符号化される。高水準のユースケースで SR Policy を参照する場合は <S1,S2,S3> 表記の方が単純である。詳細な動作を図解して参照する場合は、(S3,S2,S1; SL) 表記の方が便利である。

SR Policy ヘッドエンドでは、Segment List <S1,S2,S3> は SRH(S3,S2,S1; SL=2)となり、完全には次のように表される。

Segments Left=2
Last Entry=2
Flags=0
Tag=0
Segment List[0]=S3
Segment List[1]=S2
Segment List[2]=S1

6.2. トポロジーの例

以下のトポロジーを後続の例で使用する。

+ * * * * * * * * * * * * * * * * * * * * +

* [8] [9] *
| |
* | | *
[1]----[3]--------[5]----------------[6]---------[4]---[2]
* | | *
| |
* | | *
+--------[7]-------+
* *

+ * * * * * * * SR domain * * * * * * * +

Figure 1
  • 3 と 4 は SR ドメインのエッジルータである。
  • 5、6、および 7 はすべて SR ドメインルータである。
  • 8 と 9 は SR ドメイン内のホストである。
  • 1 と 2 は SR ドメイン外のホストである。
  • SR ドメインは 5.1 節に従う流入フィルタリングを実装し、ドメインのセグメントと等しい宛先アドレスを持つ外部パケットはドメインに進入できない。

6.3. SR 送信元ノード

6.3.1. SR ドメイン内パケット

ホスト 8 が SR Policy <S7,A9> を経由してホスト 9 にパケットを送信する場合、パケットは次のとおりである。

P1: (A8,S7)(A9,S7; SL=1)

6.3.1.1. 縮約形式

ホスト 8 が SR Policy <S7,A9> を経由してホスト 9 にパケットを送信し、縮約 SRH を使用する場合、パケットは次のとおりである。

P2: (A8,S7)(A9; SL=1)

6.3.2. SR ドメイン間パケット -- トランジット

ホスト 1 がホスト 2 にパケットを送信する場合、パケットは次のとおりである。

P3: (A1,A2)

SR ドメイン流入ルータ 3 は P3 を受信し、SR Policy <S7,S4> により SR ドメイン出口ルータ 4 に導く。ルータ 3 は、SRH を持つ外側ヘッダに受信したパケット P3 をカプセル化する。パケットは次のとおりである。

P4: (A3,S7)(S4,S7; SL=1)(A1,A2)

SR Policy が 1 つのセグメント、すなわち出口ルータ 4 のみを含む場合、流入ルータ 3 は SRH なしの外側ヘッダ(A3,S4)に P3 をカプセル化する。パケットは次のとおりである。

P5: (A3,S4)(A1,A2)

6.3.2.1. 縮約形式

SR ドメイン流入ルータ 3 は P3 を受信し、SR Policy <S7,S4> により SR ドメイン出口ルータ 4 に導く。ルータ 3 が縮約 SRH を使用する場合、受信したパケット P3 を縮約 SRH を持つ外側ヘッダにカプセル化する。パケットは次のとおりである。

P6: (A3,S7)(S4; SL=1)(A1,A2)

6.3.3. SR ドメイン間パケット -- 内部から外部

ホスト 8 がホスト 1 にパケットを送信する場合、そのパケットは SR ドメイン内を通過する部分でカプセル化される。8 から 3 までのパケットは次のとおりである。

P7: (A8,S3)(A8,A1)

反対方向では、1 から 8 に生成されるパケットは次のとおりである。

P8: (A1,A8)

ノード 3 で、P8 は SR ドメイン内を通過する部分について、セグメント S8 宛ての外側ヘッダでカプセル化される。この結果、次のようになる。

P9: (A3,S8)(A1,A8)

ノード 8 で、外側 IPv6 ヘッダは S8 処理により取り除かれ、その後 A8 で受信されたときに再度処理される。

6.4. トランジットノード

ノード 5 はパケット P1 のトランジットノードとして動作し、次のパケットをノード 7 に向かうインターフェースへ送信する。

P1: (A8,S7)(A9,S7;SL=1)

6.5. SR セグメントエンドポイントノード

ノード 7 はパケット P1 を受信し、4.3.1 節のロジックを用いて、次のパケットをルータ 6 に向かうインターフェースへ送信する。

P7: (A8,A9)(A9,S7; SL=0)

6.6. HMAC 検証を伴う機能の委任

本節では、SR ドメイン内で機能を委任する方法を説明する。以下の節では、トップオブラック 5 に接続されたホスト 8 を考える。

6.6.1. SID リストの検証

オペレータは、送信元 8 で SRH を適用しつつ、5 で SID リストが有効であることを検証することを選択できる。

図解のため、本書の範囲外の SDN コントローラが、ノード 9 で終端する Segment List <S5,S7,S6,A9> と、その SRH に対して計算された HMAC TLV を持つ SRH を 8 に提供する。HMAC TLV に関連付けられた HMAC 鍵 ID と鍵は 5 と共有される。ノード 8 は鍵を知らない。ノード 5 は、8 に接続されたインターフェースに IACL を設定し、S/s 宛てのすべてのパケットで HMAC 検証を要求する。

ノード 8 は、HMAC TLV を含む受信した SRH でパケットを生成する。

P15: (A8,S5)(A9,S6,S7,S5;SL=3;HMAC)

ノード 5 は SRH の HMAC を受信して検証し、次のセグメントにパケットを転送する。

P16: (A8,S7)(A9,S6,S7,S5;SL=2;HMAC)

ノード 6 は次を受信する。

P17: (A8,S6)(A9,S6,S7,S5;SL=1;HMAC)

ノード 9 は次を受信する。

P18: (A8,A9)(A9,S6,S7,S5;SL=0;HMAC)

この HMAC の使用は、企業ベースの SR ドメイン [SRN] 内で特に有用である。