【ネットワーク入門編】SRv6をまとめてみた(概要)

  • URLをコピーしました!
目次

はじめに

こんにちは。ネットワークエンジニアの「だいまる」です。

今回はセグメントルーティングの代表例であるSRv6の概要についてまとめてみました。

CiscoのクレランスさんがSegement Routingを勉強するならこれを読め!とおっしゃっていたので、紹介しておきます。

SRv6とは?

SRv6とは、「Segment Routing over IPv6」の略称であり、IPv6拡張ヘッダを利用したセグメントルーティング系のプロトコルとなります。

セグメントルーティング(以降:SR)の代表例であるSR-MPLSは、ラベルを用いたセグメントルーティングやトラフィックエンジニアリングを実施しています。

直近だとJanog52の「SRv6による社内検証網の提供と、SR-MPLS/SRv6双方を運用してみてわかったこと」がとても面白かったので、参考になると思います。

私もこの発表を現地で聞いていてとてもためになりました。

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

まずはSID(Segment ID)を理解しよう!

SID(Segment ID)とは「IPv6アドレス形式(128bit)で表現されるノードやFunction等の識別子」です。

SIDには、以下3つのフィールドがあり、各フィールドで用途が異なってきます。

  • SID:IPv6アドレス形式(128bit)で表現されるノードやFunction等の識別子
    • Locator:ノード識別子(SRv6ノードのアドレス)※64bit利用が多いイメージ
      • SID Block:SRv6 ネットワークの識別子(IPv6 Prefix相当)
      • Node ID:SRv6ノードの識別子(ホストアドレス相当)
    • Function:各ノードで実行されるSRv6 Functionを示す値
    • Args:FunctionのためのOption値
Locator
ノード識別子
Locator…
Function
SRv6 Function識別子
Function…
Args
option用
Args…
128 bit
128 bit
SID Block
IPv6 Prefix相当
SID Block…
Node ID
ホストアドレス相当
Node ID…
Text is not SVG – cannot display

SIDの次は「ノードの種類」を理解しよう!

3つのノード種別

SRv6ネットワークを構成するためには、3つのノード種別を理解する必要があります。

  • Source Node(Ingress Node):SRヘッダ(SRH)を付与するノード
  • Transit Node:SRv6 Pathの途中にあるノード・SRHを付加しないノード
  • Endpoint Node(Egress Node):SRv6 Pathの宛先かつEnd Functionを実施するノード

Endpoint Nodeによる3つの動作

PSP(Penultimate Segment PoP)

これは「Endpoint Nodeの1つ前であるペナルティノード(Penulty Node)上で、宛先IPv6アドレスに最後のSIDを挿入し、Segment Leftを0にする」動作となります。

USP(Ultimate Segment PoP)

Endpoint Node上でSRHを削除する動作であり、例は以下の通りとなります。

  • Segment Left(SL)が0のとき
    1. 元のNext Header値をSRHのNext Header値に書き込む
    2. IPv6 Payload長を「8×(拡張ヘッダ長+1)」分だけ減らす
    3. SRHを削除
    4. Next Headerを読み込む
USD(Ultimate Segment Decapsulation)

これはNext Header Typeを参照し、そのTypeに準じた動作を実施していきます。

  • IPv6(41)の時
    1. SRHを含むOuter IPv6 Headerを削除
    2. egress IPv6 FIBを参照し、該当のIFから送信
  • IPv4(4)の時
    1. SRHを含むOuter IPv6 Headerを削除
    2. egress IPv4 FIBを参照し、該当のIFから送信

最後は「SRヘッダ(SRH)」

前のセクションでも少し出てきましたが、最後はSRヘッダ(SRH)についてまとめていきます

このSRHとは、「IPv6の拡張ヘッダを利用したSRv6向けのヘッダであり、8つのフィールドから構成」されています。

主な構成要素は以下の表の通りとなります。

ずらずらと長文を書くと逆にわかりづらくなりそうだったので表にしました!

フィールド名Bit長用途・詳細
Next Header8SRHの次のHeader Typeを格納
Header Length8SRH長を示す
Routing Type8ルーティング種別の定義
・IPv4の場合:「4」
Segement Left8残セグメントリスト数
Last Entry8セグメントリストの最終Index(リスト長-1)
Flags8パケットの優先度やグループの定義(ToSのイメージ)
Tags8パケットの優先度やグループの定義(ToSのイメージ)
Segement List128Bit * NSIDリスト(通過するノードの指定等)
フィールド定義

最後に

今回はSRv6の基本的な概念であるSIDとSRH、ノード種別についてまとめてみました。

次回はファンクションや実機確認など投稿していきたいと思います。

  • URLをコピーしました!

この記事を書いた人

目次