はじめに
こんにちは。ネットワークエンジニアの「だいまる」です。
今回は、セグメントルーティングの代表例であるSRv6の概要についてまとめてみました。
CiscoのクレランスさんがSegement Routingを勉強するならこれを読め!とおっしゃっていたので、紹介しておきます。

SRv6とは?
SRv6とは、「Segment Routing over IPv6」の略称であり、IPv6拡張ヘッダを利用したセグメントルーティング系のプロトコルとなります。
セグメントルーティング(以降:SR)の代表例であるSR-MPLSは、ラベルを用いたセグメントルーティングやトラフィックエンジニアリングを実施しています。
そもそも、「セグメントルーティングとは?」という方は以下の記事を確認してから進んだほうがいいかもしれません。

SRv6の簡単な理解のために、いくつかの用語の説明から始めていきたいと思います。

①:SID(Segment ID)とは?
SID(Segment ID)とは「IPv6アドレス形式(128bit)を利用したノードやファンクションの識別子」です。
このSIDには、「Locator」、「Function」、「Args」の3つのフィールドがあり、それぞれ役割があります。

Functionについては、次の記事にまとめます。
| 項目 | 説明 |
|---|---|
| Locator | そのルータを識別するための識別子 ・SID Block:Prefix相当 ・Node ID:ホストアドレス相当 |
| Function | SRv6 Functionを示す値 |
| Args | FunctionのOption向けの値 |

②:3種類のSRv6ノード
SRv6のSIDを抑えたあとは、SRv6で定義される3種類のノードについて、まとめていきます。
3種類とは、始点となるSource Node、経由するTransit Node、終点となるEndpoint Nodeです。
それぞれの役割は、わかりやすいように表にまとめました。
| Node名 | 役割 |
|---|---|
| Source | ヘッダを付与するノード |
| Transit | SRv6 Pathの途中になるノード SRヘッダを参照しない |
| Endpoint | SRv6 Pathの宛先となるノード Functionを実施 |

③:SRH(SRヘッダ)
このセクションでは、SRv6で重要となるSRヘッダ(SRH)について、まとめたいと思います。。
SRヘッダは、RFC8754で定義され、「8つのフィールドから構成されるSRv6向けにIPv6拡張ヘッダを定義したもの」になります。
説明する項目が8つもあり、長々と文章に書いても良くないと思うので、以下の表にまとめてみました。
| フィールド名 | 説明 *SL:セグメントリスト |
|---|---|
| Next Header | 次ヘッダタイプ値 |
| Header Length | ヘッダ長 |
| Routing Type | ルーティングタイプ IPv4の場合:「4」 |
| Segement Left | SL残数 |
| Last Entry | SLの最終Index *リスト長-1 |
| Flags | 優先度等の定義 ToSに近い |
| Tags | 優先度等の定義 ToSに近い |
| Segement List | 経由ノードのSIDリスト |


最後に
この記事では、SRv6シリーズの初期として、基本用語についてまとめました。
次回は、エンドファンクションについてまとめます。

