4. SR Endpoint Behaviors (SR エンドポイント動作)
4. SR Endpoint Behaviors (SR エンドポイント動作)
以下は, SID に関連付けることができる既知の動作のセットです。
| Behavior | Description |
|---|---|
| End | Endpoint (エンドポイント) Prefix-SID [RFC8402] の SRv6 インスタンス化 |
| End.X | Endpoint with L3 cross-connect (L3 クロスコネクトを持つエンドポイント) Adj-SID [RFC8402] の SRv6 インスタンス化 |
| End.T | Endpoint with specific IPv6 table lookup (特定の IPv6 テーブルルックアップを持つエンドポイント) |
| End.DX6 | Endpoint with decapsulation and IPv6 cross-connect (デカプセル化と IPv6 クロスコネクトを持つエンドポイント) 例: IPv6-L3VPN (per-CE VPN ラベルに相当) |
| End.DX4 | Endpoint with decapsulation and IPv4 cross-connect (デカプセル化と IPv4 クロスコネクトを持つエンドポイント) 例: IPv4-L3VPN (per-CE VPN ラベルに相当) |
| End.DT6 | Endpoint with decapsulation and specific IPv6 table lookup (デカプセル化と特定の IPv6 テーブルルックアップを持つエンドポイント) 例: IPv6-L3VPN (per-VRF VPN ラベルに相当) |
| End.DT4 | Endpoint with decapsulation and specific IPv4 table lookup (デカプセル化と特定の IPv4 テーブルルックアップを持つエンドポイント) 例: IPv4-L3VPN (per-VRF VPN ラベルに相当) |
| End.DT46 | Endpoint with decapsulation and specific IP table lookup (デカプセル化と特定の IP テーブルルックアップを持つエンドポイント) 例: IP-L3VPN (per-VRF VPN ラベルに相当) |
| End.DX2 | Endpoint with decapsulation and L2 cross-connect (デカプセル化と L2 クロスコネクトを持つエンドポイント) 例: L2VPN ユースケース |
| End.DX2V | Endpoint with decapsulation and VLAN L2 table lookup (デカプセル化と VLAN L2 テーブルルックアップを持つエンドポイント) 例: EVPN フレキシブルクロスコネクトユースケース |
| End.DT2U | Endpoint with decapsulation and unicast MAC L2 table lookup (デカプセル化とユニキャスト MAC L2 テーブルルックアップを持つエンドポイント) 例: EVPN ブリッジングユニキャストユースケース |
| End.DT2M | Endpoint with decapsulation and L2 table flooding (デカプセル化と L2 テーブルフラッディングを持つエンドポイント) 例: イーサネットセグメント識別子 (ESI) フィルタリングを伴う EVPN ブリッジングブロードキャスト, 未知のユニキャスト, およびマルチキャスト (BUM) ユースケース |
| End.B6.Encaps | Endpoint bound to an SRv6 Policy with encapsulation (カプセル化を伴う SRv6 ポリシーにバインドされたエンドポイント) Binding SID の SRv6 インスタンス化 |
| End.B6.Encaps.Red | End.B6.Encaps with reduced SRH (縮小された SRH を持つ End.B6.Encaps) Binding SID の SRv6 インスタンス化 |
| End.BM | Endpoint bound to an SR-MPLS Policy (SR-MPLS ポリシーにバインドされたエンドポイント) SR-MPLS Binding SID の SRv6 インスタンス化 |
表 1: エンドポイント動作
このリストは網羅的ではありません。実際には, 任意の動作をローカル SID に添付できます。例えば, ノード N は SID をローカル仮想マシン (VM) またはコンテナにバインドできます。これらは, 処理用の SRv6 Endpoint Behavior コードポイントが割り当てられている限り, パケットに任意の複雑な処理を適用できます。
SRv6 対応ノード (N) が, 宛先アドレスがローカルにインスタンス化された SRv6 SID (S) を表す FIB エントリに一致する IPv6 パケットを受信すると, IPv6 ヘッダーチェーンは [RFC8200] のセクション 4 で定義されているように処理されます。本文書で定義されている Endpoint 動作に関連付けられた SRv6 SID の場合, SRH と上位層ヘッダーは以下のサブセクションで定義されているように処理されます。
これらの動作を記述する擬似コードは, ノードでのローカル処理を詳細に説明しています。外部から観察可能なワイヤプロトコルが擬似コードで記述されているとおりである限り, 擬似コードの実装は準拠しています。
セクション 4.16 は, これらの動作の一部のフレーバーを定義しています。
本文書のセクション 10.2 は, これらすべての動作および他の文書で定義された将来の動作を維持するために使用される IANA レジストリを定義しています。
4.1. End: Endpoint (エンドポイント)
Endpoint 動作 (略して "End") は最も基本的な動作です。これは Prefix-SID [RFC8402] のインスタンス化です。
N が IPv6 DA が S であり, S がローカル End SID であるパケットを受信すると, N は以下を実行します:
S01. When an SRH is processed {
S02. If (Segments Left == 0) {
S03. Stop processing the SRH, and proceed to process the next
header in the packet, whose type is identified by
the Next Header field in the routing header.
S04. }
S05. If (IPv6 Hop Limit <= 1) {
S06. Send an ICMP Time Exceeded message to the Source Address
with Code 0 (Hop limit exceeded in transit),
interrupt packet processing, and discard the packet.
S07. }
S08. max_LE = (Hdr Ext Len / 2) - 1
S09. If ((Last Entry > max_LE) or (Segments Left > Last Entry+1)) {
S10. Send an ICMP Parameter Problem to the Source Address
with Code 0 (Erroneous header field encountered)
and Pointer set to the Segments Left field,
interrupt packet processing, and discard the packet.
S11. }
S12. Decrement IPv6 Hop Limit by 1
S13. Decrement Segments Left by 1
S14. Update IPv6 DA with Segment List[Segments Left]
S15. Submit the packet to the egress IPv6 FIB lookup for
transmission to the new destination
S16. }
注意:
End 動作は, パケットに関連付けられた同じ FIB テーブル (つまり, VRF または L3 リレー ID によって識別される) で動作します。したがって, S15 行での FIB ルックアップは, 入力インターフェースと同じ FIB テーブルで実行されます。
4.1.1. Upper-Layer Header (上位層ヘッダー)
End SID としてローカルにインスタンス化された FIB エントリに一致するパケットの上位層ヘッダーを処理する場合, N は以下を実行します:
S01. If (Upper-Layer header type is allowed by local configuration) {
S02. Proceed to process the Upper-Layer header
S03. } Else {
S04. Send an ICMP Parameter Problem to the Source Address
with Code 4 (SR Upper-layer Header Error)
and Pointer set to the offset of the Upper-Layer header,
interrupt packet processing, and discard the packet.
S05 }
特定の上位層ヘッダータイプの処理を許可することは, 運用, 管理, および保守 (OAM) に役立ちます。例として, オペレータは SID の ping を許可する場合があります。これを行うには, 上位層ヘッダータイプ 58 (ICMPv6) を許可するようにローカル設定を有効にすることができます。
ローカル設定の実装では, パケットの転送につながらないタイプの上位層ヘッダー処理のみを許可することが推奨されます (例: ICMPv6)。