オープンルーター向けの SR-TE コントローラー。
ルーターは自らの位置から最適な経路を選択し、伝送するトラフィックのほぼすべてにとって、それが正しい答えです。ただし、次の 3 つの判断にはネットワーク全体の視点が必要です。経路に沿った帯域の予約、2 つのサービスが同じリンクを共有しないようにすること、そしてサービスがどのピアリングから出ていくかの選択です。Vegvísir Systems の Traffic Dictator は、これらをライブトポロジーに基づいて計算し、OcNOS を搭載した IP Infusion のオープンルーターに経路をインストールします。
ルーター単体で実現できること、コントローラーが加えるもの。
OcNOS ルーターは、ECMP、TI-LFA によるローカル保護、IGP 内に構築する Flex-Algo プレーンにより、単体で多くの機能を実現します。コントローラーが加えるのは、ネットワーク全体の視点を必要とする判断のみです。 各カードのタグは、どちら側がその機能を提供するかを示します。
1 つの障害が次の障害を招くのを防ぐ
TI-LFA はローカルの修復経路を事前に計算するため、ルーターはネットワークの再収束を待たずに切り替えます。コントローラーは迂回トラフィックを空き容量のあるリンクへ分散させ、最初の障害が 2 つ目の障害を引き起こさないようにします。
OcNOS + コントローラー遅延に敏感なトラフィックを短い経路に載せる
Flex-Algo は IGP 内に低遅延プレーンを構築します。トレーディング、メディア、モバイルフロントホールのトラフィックはこのプレーンに従い、それ以外のトラフィックは引き続き最小コストの経路を使用します。
OcNOS 単体販売したサービス向けに帯域を予約
ポリシーは帯域値を保持します。コントローラーは経路をインストールする前に空き容量を確認し、リンクがすでに埋まっている場合はポリシーのインストールを保留します。
OcNOS + コントローラー費用を払っているリンクを活用
等コストリンクはすでに ECMP で使用されています。コントローラーは不等コストのリンクにサービスを配置し、遊休容量を販売可能な容量に変えます。
OcNOS + コントローラーバックアップ経路をプライマリ経路のリンクから分離
非重複グループによって分離をポリシーの一部とするため、保護経路が保護対象の経路とリンクを共有することはありません。
OcNOS + コントローラー入力した制約が、ルーターの付与するラベルになるまで。
この設計で両者の間をやり取りするプロトコルは 2 つだけで、どちらも標準規格であるため、 どちらの側も単独で置き換え可能.
セグメントリスト は、ラベルを順序付けて並べたもの。各ラベルはルーターまたはピアリングを示し、ヘッドエンドルーターがこれらをパケットに付与することで、パケットはその順序で各地点を経由します。 ポリシー は、ヘッドエンド、エンドポイント、およびその間のリストを決める制約の組み合わせ。

IP Infusion がハードウェアと OcNOS を統合・検証・サポートする完全なルーターとして提供されるため、ハードウェアとソフトウェアの責任は 1 社のベンダーに集約されます。
- ネットワークを動かす。 セグメントルーティング拡張付きの IS-IS により、ラベル、ECMP、TI-LFA 高速リルートはすべてルーター自身で動作。
- ヘッドエンドとして機能。 受け取ったポリシーをインストールしてセグメントリストを付与し、運用状態を報告。
- 出口にラベルを付与。 外部ピアリングごとに BGP Peer SID を割り当て、コントローラーがそのピアリングをセグメントリスト内で指定可能に。
Docker コンテナとして提供され、サーバー上、既存の仮想化環境、またはコンテナをホスト可能なルーター上で動作。自動化向けに HTTP API を備えます。
- グラフを構築。 Node、Link、Prefix の情報を BGP-LS で受信し、セグメント ID を付加したライブトポロジーを生成。
- 制約を保持。 明示ホップ、リンクアフィニティ、帯域、非重複グループ、出口ピアを、すべてポリシーの制約として表現。
- 計算してインストール。 セグメントリストを算出してヘッドエンドへ送り、トポロジーが変化すると更新。
OcNOS は Flex-Algo などの IGP メカニズムを用いて分散型のトラフィックステアリングを実行し、外部の PCE またはコントローラーはネットワーク全体の制約を用いて明示的な SR ポリシーを計算します。 帯域は、単一の視点を必要とする制約です: セグメントルーティングは予約をホップごとにシグナリングしないことで拡張性を得ているため、各ポリシーが確保した帯域の累計は中央で保持します。この値はポリシーごとに設定するもので、現時点では計測トラフィックに応じて自動調整されません。 RSVP-TE は別の方式を採り、各ホップで予約をシグナリングします。
セグメントルーティングの有効化から、ネットワークでポリシーが稼働するまでの 4 ステップ。
最初の 2 つはルーター上での一度きりの設定。 残りの 2 つは、ポリシーを作成するたびに繰り返す作業。
セグメントルーティングを有効化
すべてのルーターで IS-IS がセグメントルーティング拡張とトラフィックエンジニアリング拡張を伝送するため、リンク帯域と admin group も広告されます。ラベルはセグメントルーティング自体から割り当てられます。
トポロジーをコントローラーへエクスポート
1 台のルーターがリンクステートデータベースを BGP-LS に再配布し( distribute bgp-ls )、コントローラーとピアを確立します。
ポリシーと制約を定義
ポリシーは、ヘッドエンド、エンドポイント、満たすべき制約を指定します。コントローラーはライブトポロジーに基づいて経路を計算し、 セグメントリストを返します。これは、ヘッドエンドがパケットに付与するラベルのリストです。
インストールし、最新状態を維持
コントローラーは PCEP でポリシーを送信し、ヘッドエンドはそのポリシーが稼働して転送に使用されていることを報告します。後でトポロジーが変化した場合も、同じポリシーを再構築せずにその場で更新します。
各制約によって、コントローラーが返す経路がどう変わるか。
下の制約を選択すると、生成される経路とラベルを表示します。ここに示すセグメントリストとメトリックはすべて、共同ラボで記録された出力です。
図を横にスワイプして経路をたどる
5 つの制約と、それぞれが返す経路
- BLUE リンクのみを通る(リンクアフィニティ制約)
- 経路:R3 から R4。セグメントリスト 16004。集約メトリック 10、1 ホップ。経路上のすべてのリンクに BLUE タグが必要で、R3 から R4 への直結リンクはこれを満たすため、ノードセグメント 1 つで足ります。ポリシー
R3_R4_BLUE,affinity-set BLUE_ONLY. - YELLOW リンクのみを通る(リンクアフィニティ制約)
- 経路:R3 から R2 を経て R4。セグメントリスト 16002, 16004。集約メトリック 20、2 ホップ。すべてのリンクに YELLOW タグが必要なため、直結リンクは除外され、コントローラーは R2 経由でルーティングします。ネットワーク内のメトリックは一切変更していません。ポリシー
R3_R4_YELLOW,affinity-set YELLOW_ONLY. - 40 Gbps を予約(帯域制約)
- 経路:R3 から R2 を経て R4。セグメントリスト 16002, 16004。集約メトリック 20、40 Gbps を確保。同じ経路に帯域を付加したもので、コントローラーはインストール前に両リンクが 40 Gbps を伝送可能か確認し、予約を自身の台帳に記録しました。ポリシー
R3_R4_YELLOW,bandwidth 40 gbps. - 出口ピアを選択(イグレスピアエンジニアリング)
- 経路:R3 から R2 を経て AS 101。セグメントリスト 16002, 25600。集約メトリック 10、1 ホップと出口。25600 は R2 が AS 101 とのピアリング用に割り当てた BGP Peer SID であり、セグメントリストの最後で出口を指定します。ポリシー
R3_R2_EPE. - その出口へ BLUE リンク経由で(アフィニティとイグレスピアエンジニアリング)
- 経路:R3 から R1、R2 を経て AS 101。セグメントリスト 16001, 16002, 25600。集約メトリック 20、2 ホップと出口。2 つの制約を同時に適用します。出口は引き続き AS 101 で、そこへの経路は BLUE リンク上にとどまる必要があるため、コントローラーは R1 経由の遠回りの経路を選びます。ポリシー
R3_R2_EPE_BLUE,affinity-set BLUE_ONLY.
ここに示すセグメントリスト、メトリック、ポリシー名はすべて、IP Infusion と Vegvísir の共同アプリケーションノートによるものです。いずれも同ノートに、コントローラー上の次のコマンドのライブ出力として掲載されています: show traffic-eng policy <name> detail 。Traffic Dictator の構文は次で公開されています: vegvisir.ie/documentation.
イングレスルーターが、パケットの出口となるピアリングを選択。
トラフィックエンジニアリングは通常、自社ネットワークの境界で終わりますが、イグレスピアエンジニアリングはその先の 1 ホップまで対象を広げ、パケットがどのピアリングから出ていくかをイングレスルーターが選択します。トランジットがピアリングより高コストな場合、この選択がコスト削減につながります。
メカニズムの動作例であり、ラボでの測定値ではありません。
4 台のルーターがそれぞれ 30 Gbps を 1 つの宛先へ送信し、 100 Gbps のプライベートピアリング 2 本 に分散しています。これらはトランジットより低コストなため優先されるピアリングです。その後、うち 1 本に障害が発生します。
標準の BGP では 120 Gbps 全体が残るピアリングに流れ込み、そこを通るすべてのサービスが一斉に劣化します。
帯域制約により、コントローラーはピアリングが伝送可能な分だけを受け入れます。そのため 3 つのポリシーは残るピアリングに収まり、4 つ目は第 2 候補パスでトランジットを経由します。
結果として発生するのは少量のトランジット費用のみで、ピアリング上のそれ以外のトラフィックは稼働を継続します。
ピアリングごとに固有のラベルを付与
egress-engineering を境界ルーターで設定すると、そのピアリング用の BGP Peer SID が割り当てられて広告されるため、コントローラーはセグメントリストの最後に出口を配置可能。
リンクアフィニティは境界まで適用
BGP Peer SID はリンク属性を持たないため、コントローラー上で出口ピアにアフィニティと帯域を割り当て、広告された SID と照合します。
空き容量のある最寄りの出口を使用
エンドポイントを null としたポリシーは最寄りの適切な出口を要求するため、コントローラーはヘッドエンドに最も近い条件を満たす出口を選び、トラフィックはバックボーンを横断する前にネットワークから出ていきます。
共同検証の範囲外のコントローラー機能:null エンドポイントにはカラーステアリングが必要ですが、共同ラボでは全体を通じてサービスループバックステアリングを使用しました。
ピアリング障害はポリシー状態で確認可能
ネイバーがダウンするとピア SID が取り消されてイグレスポリシーは失敗し、その失敗がポリシー状態に報告されます。
共同ラボで検証した内容とその結果。
IP Infusion と Vegvísir Systems がこの設計を共同で構築し、公開しました。以下の表に、検証した各機能と各テストの結果を示します。
| 機能 | 実施方法 | 結果 |
|---|---|---|
| トポロジーエクスポート | 1 台のルーターで IS-IS レベル 2 データベースを BGP-LS に再配布 | R3 は 34 件のリンクステート情報(ノード 5、リンク 10、プレフィックス 19)をエクスポート。コントローラー側のテーブルでも受信を確認。 |
| 明示パス | ポリシーで指定した厳密ホップと 2 Gbps の予約 | セグメントリスト [16001, 16002, 16005] をインストール。 |
| 帯域制約 | 候補パスに設定した帯域値 | 明示パスポリシーの 2 Gbps の予約は計算時にチェックされ、コントローラーのデータベースに記録されました。経路上の各リンクで未予約帯域の減少として確認できます。アフィニティポリシーでは同じメカニズムを 40 Gbps で使用しました。 |
| リンクアフィニティ | 同じルーターペア間に admin group ごとに 1 つずつ設定した、計 2 つのポリシー | BLUE の結果は [16004] (メトリック 10)、YELLOW の結果は [16002, 16004] (メトリック 20)。エンドポイントは同じで経路は異なり、メトリックの変更は一切なし。 |
| サービスマッピング | 個別のサービスループバック上の 2 つの L3VPN 顧客 | 各 VRF はそれぞれのポリシー上で解決。VRF101 での ping をトランジットルーターでキャプチャし、想定どおりのトランスポートラベルと VPN ラベルを確認。 |
| 経路の多様性 | 同じ非重複グループに配置した 2 つのポリシー | アフィニティや明示パスを一切設定せずに、2 つのポリシーは常に異なるリンクを使用。 |
| ECMP とエニーキャスト SID | ノードフラグをクリアした状態で 2 台のルーターが広告する共有プレフィックス SID | 2 つのセグメントリストが 1 つに集約され、転送テーブルの容量を節約。 |
| イグレスピアエンジニアリング | 外部ピアリング用に割り当てた BGP Peer SID と、そのピアリングへのステアリング | セグメントリスト [16002, 25600]。最後のラベルはルーターではなくピアリングを示します。アフィニティを追加した結果は次のとおり: [16001, 16002, 25600]. |
| コントローラーのフェイルオーバー | ポリシーを委任した状態でプライマリコントローラーを停止 | ルーターはすべてのポリシーを 2 台目のコントローラーに再委任。両者の間で状態の同期は一切なし。 |
| 全コントローラーの喪失 | すべてのコントローラーを停止 | ポリシーは取り消され、サービスルートは IS-IS セグメントルーティング上で解決、ネクストホップは不変。テーブル読み取り時点で代替エントリはインストール済みでアクティブ。 |
検証は 1 つのプラットフォームで実施しました。検証したアーキテクチャは標準の IS-IS、BGP-LS、PCEP であるため設計はそのまま適用可能です。プラットフォームとリリースの対応状況は、 ハードウェア互換性リスト と フィーチャーマトリクス で、対象機種について確認してください。
コントローラーを 1 台失った場合と、すべて失った場合の動作。
いずれの場合もトラフィックは流れ続けます。 コントローラーを 1 台失った場合、ルーターはポリシーを別のコントローラーへ移し、 すべてを失った場合、サービスは IGP がすでに計算していた最短経路にフォールバックします。
コントローラーを 1 台失った場合、ルーター自身がポリシーを再委任
各ポリシーは作成したコントローラーに委任され、そのコントローラーが応答しなくなると、ルーターが別のコントローラーに再委任します。このメカニズムはコントローラー間ではなくルーター内で動作するため、 コントローラー同士が状態を共有することはありません。そのため 3 台目を追加しても、状態同期のコストは発生しません。
すべてのコントローラーを失った場合、すべてが IS-IS 上で再び解決
ポリシーは取り消され、サービスルートは代わりに IS-IS セグメントルーティング上で解決されます。 BGP ネクストホップは変わりません.
P> 172.16.101.4/32 out-label 3 out-intf cd1 nexthop 10.100.3.2
P> 172.16.102.4/32 out-label 3 out-intf cd0 nexthop 10.100.6.4
P は SR Policy エントリ。2 つのサービスが 2 つの異なるエンジニアリング経路を使用。列は show mpls forwarding-table の完全な出力から要約しています。
B> 172.16.101.4/32 out-label 24962 out-intf cd0 nexthop 4.4.4.4
B> 172.16.102.4/32 out-label 24963 out-intf cd0 nexthop 4.4.4.4
B は IS-IS セグメントルーティングで解決された BGP エントリ。VPN ルートの BGP ネクストホップは変わりません。変わるのは解決方法で、ポリシーではなく IS-IS セグメントルーティング上で解決されるため、送出ラベルとインターフェースが異なります。テーブル読み取り時点で、両エントリの経過時間は 16 秒でした。列は完全な出力から要約しています。
ルーター側の設定は通常の IS-IS と BGP に、PCEP ブロックを 1 つ追加するだけ。
以下は共同検証からの抜粋にコメントを加えたものです。Traffic Dictator は業界標準の CLI を採用しているため、 コントローラーの設定もルーターの設定と同様に読みやすく、1 人のエンジニアが両側を担当可能です。
PCEP 検証済みの組み合わせ
ステートフルであるため、コントローラーはルーターがポリシーをインストールして転送に使用しているかを把握できます。ヘッドエンドごとに 1 セッションが必要です。共同検証で使用したのはこの方式です。
BGP SR-TE セッション数が最少
ポリシーは BGP ルートとして伝送されるため、各ヘッドエンドへのセッションを必要とせず、既存のルートリフレクターを利用します。大規模ネットワークでは、数セッションで済むか数百セッションが必要かの違いになります。
! feed the IS-IS link-state database into BGP
router isis 1
distribute bgp-ls
!
router bgp 65002
bgp router-id 3.3.3.3
neighbor 192.168.123.1 remote-as 65001
!
address-family link-state link-state
neighbor 192.168.123.1 activate
exit-address-family
各行の役割
distribute bgp-lsでエクスポートは完結:IS-IS がデータベースを BGP に引き渡します。- コントローラーは、独自の自律システムに属する 1 つの BGP ネイバーにすぎません。
link-stateアドレスファミリはトポロジーを伝送します。伝送される情報は 3 種類:Node(システム ID とセグメントルーティンググローバルブロック)、Link(メトリック、帯域、admin group、隣接 SID)、Prefix(プレフィックスとその SID)。- この設定が必要なのは 1 台のルーターのみ。IS-IS レベル全体がすでにそのルーターに渡しているリンクステートデータベースを、そのルーターが再広告するためです。
共同アプリケーションノート(IP Infusion、Vegvísir Systems、2025 年 8 月)より抜粋。最新の構文は次で確認してください: documentation.ipinfusion.com.
pce configuration 1
capability
segment-routing pcep
pce instantiation
exit-capability
!
update-source 192.168.123.3
peer-address ipv4 192.168.123.1
各行の役割
segment-routing pcepは、このルーターが RSVP トンネルではなくセグメントリストを受け取れることをコントローラーに通知します。pce instantiationは、コントローラーがポリシーの更新だけでなく作成も行えるようにする許可設定です。これにより、ポリシーをルーターではなくコントローラー上で作成可能。- その後、セッションは自身の機能をコントローラーに報告し、ステートフル PCE、LSP インスタンス化、SR PCE 機能がすべてサポート対象として表示されます。
共同アプリケーションノート(IP Infusion、Vegvísir Systems、2025 年 8 月)より抜粋。最新の構文は次で確認してください: documentation.ipinfusion.com.
! ---- on R3: name the link groups once, then tag interfaces ----
admin-group BLUE 0
admin-group YELLOW 1
!
interface cd0
admin-group BLUE
!
interface cd1
admin-group YELLOW
!
! ---- on the border router R2, which holds the external peering ----
router bgp 65002
bgp router-id 2.2.2.2
neighbor 192.168.123.2 remote-as 101
!
egress-engineering
neighbor 192.168.123.2 peer-node
exit-egress-engineering
各行の役割
admin-groupは名前をビット位置に対応付けます。インターフェースにタグを付けると IGP がそれを広告するため、コントローラーは追加のセッションなしでタグを認識します。- 名前は任意に選択します。ここでは BLUE と YELLOW ですが、実際のネットワークでは専用線、海底ケーブル経路、低遅延リングなど、資産を表す名前が一般的です。
egress-engineeringとpeer-nodeを組み合わせて、そのピアリング用の BGP Peer SID を割り当てます。これがなければ、ポリシーはその出口を指定できません。このパネルの 2 つのブロックは、それぞれ別のルーターで設定する点に注意してください。- 境界ルーターはピア SID を BGP-LS で広告します。コントローラーに直接送る方法と、すでにコントローラーとのセッションを持つルーターに送って再広告させる方法があります。いずれの場合も、BGP-LS ネイバーの設定が 1 行増えるだけです。
共同アプリケーションノート(IP Infusion、Vegvísir Systems、2025 年 8 月)より抜粋。最新の構文は次で確認してください: documentation.ipinfusion.com.
traffic-eng affinities
affinity-map
name BLUE bit-position 0
name YELLOW bit-position 1
!
affinity-set YELLOW_ONLY
constraint include-all
name YELLOW
!
traffic-eng policies
!
policy R3_R4_YELLOW
headend 3.3.3.3 topology-id 1
endpoint 4.4.4.4 service-loopback 172.16.101.4
priority 7 7
install direct pcep 192.168.123.3
!
candidate-path preference 200
affinity-set YELLOW_ONLY
bandwidth 40 gbps
各行の役割
- アフィニティマップにより、両側で同じビットに同じ名前が付きます。ビット 1 はルーターでもコントローラーでも YELLOW と呼ばれるため、変換レイヤーなしで両者が一致します。
constraint include-allは、経路上のすべてのリンクがそのタグを持つ必要があることを意味します。endpointとservice-loopbackを組み合わせてサービスを接続します。各サービスはネクストホップとして専用のループバックを持つため、同じルーターペア間の 2 つのサービスが異なるパスを取ることができます。priority 7 7はセットアップ優先度とホールド優先度を設定します。より重要なポリシーが帯域を必要とする際に、どのポリシーが帯域を譲るかはこの値で決まります。candidate-path preference 200がプライマリの試行です。より低いプリファレンスの経路を追加すると、同じポリシー内でフォールバックを記述できます。
共同アプリケーションノート(IP Infusion、Vegvísir Systems、2025 年 8 月)より抜粋。Traffic Dictator のドキュメントは次で公開されています: vegvisir.ie.
トラフィックエンジニアリングに関するよくある質問
SR-TE コントローラーとは何ですか?
セグメントルーティングの運用にコントローラーは必要ですか?
Traffic Dictator は必須ですか? 別のコントローラーも使用できますか?
このソリューションの各部分は、どこが提供・サポートしますか?
SR-TE コントローラーを追加するには、既存のルーターを置き換える必要がありますか?
サービスを再構築せずに RSVP-TE から移行できますか?
帯域予約を計測トラフィックに追従させることはできますか?
この設計で SRv6 トラフィックエンジニアリングはサポートされていますか?
ラボの全容をご覧になりますか?
本ページより踏み込んだ、短い技術資料:セグメントルーティングのアプリケーションノート。
セグメントルーティング アプリケーションノート
簡単なフォームです。送信後すぐに PDF が新しいタブで開きます。
✓ PDF を新しいタブで開いています…
開かない場合は、下記のリンクをご利用ください。
概念実証(PoC)へ。
Vegvísir Systems は Traffic Dictator を評価および概念実証向けにライセンス不要で公開しており(ポリシー数は 100 まで)、OcNOS は仮想マシンとして入手可能です。ステアリングしたい内容をお知らせいただければ、適切な組み合わせでスコープを検討し、その後本番環境の規模を見積もります。
こちらからご連絡いたしましょうか?
連絡先をご記入いただくと、IP Infusion のエンジニアが貴社ネットワークでのトラフィックエンジニアリングの形をご説明します。ご連絡は、ご希望の場合に限り差し上げます。