サマリ
- PCEP を用いた 外部 PCE から SR OS へのパス設定に成功
この記事は Multi-AS Segment Routing 検証連載の第 19 回です。過去の記事一覧は こちら にあります。
概要
イノベーションセンターの田島です。本連載のような Segment Routing 関連の技術検証や、自動化による高度な運用を開発しています。
本記事では SR OS を Path Computation Client (PCC) として設定し、転送経路を示すパス (Label Switched Path; LSP) を外部から設定できるか検証します。 パス設定には標準プロトコルである Path Computation Element Communication Protocol (PCEP) を用いて、複数種類の Path Computation Element (PCE) が利用可能なことを確かめます。
ルーター外部からパスを設定する目的や、 PCEP に関する PCE や PCC の動作概要などの前提知識は、過去の 第 10 回の記事 に詳細がありますのでご参照ください。 過去に複数の PCE を検証した 第 11 回の記事 と同様に L3VPN の経路制御を検証します。 ただし、SR OS では Color を指定したパスの設定ができないため、 本記事では Color ごとのパス選択ではなく PE 単位でのパス設定を行います。 2023 年 11 月現在の最新 SR OS である 23.10 でも Color 指定は未対応のようです。
検証
本記事での検証は PE 間の転送経路を PCE から設定し、VPN 通信がその経路に従って転送されることを確認します。 PCE は IOS XR SR-PCE 等も利用可能ですが、今回は我々で開発している Pola PCE を使用します。なお詳細は割愛しますが IOS XR SR-PCE でも本記事と同等の機能検証が確認されました。
次の図のような検証トポロジーで実施します。

用いたコンポーネントのバージョンは下記の通りです。
- SR OS: 22.7.R1
- Pola PCE: 1.2.1
L3VPN の設定は 第 12 回の記事 で既出のため、設定済みとします。 Pola PCE の導入や起動に関しては Pola PCE のレポジトリ中の Getting Started with Pola PCE が参考になります。
検証は次の手順で進めます。
- SR OS での PCC 設定と PCEP セッション確立
- SR OS での LSP テンプレートの作成
- Pola PCE でのパス設定
- SR OS でパス確認と疎通確認
1. SR OS での PCC 設定と PCEP セッション確立
rt01 (SR OS) と Pola PCE の間で PCEP セッションを確立させます。
Pola PCE は下記の設定で起動済みとします。
user@pola:~$ cat /etc/polad/polad.yaml
global:
pcep:
address: "10.0.255.253"
port: 4189
grpc-server:
address: "127.0.0.1"
port: 50052
log:
path: "/var/log/pola/"
name: "polad.log"
ted:
enable: false
rt01 では下記の設定を入れ、 PCE とのセッションを有効にします。
[ro:/configure]
A:admin@rt01# /info router pcep
pcc {
admin-state enable
local-address 10.255.0.1
peer 10.0.255.253 {
admin-state enable
}
}
PCEP セッションが確立したことを確認します。
Pola PCE 側
user@pola:~$ pola session --port=50052 sessionAddr(0): 10.255.0.1
rt01 (SR OS) 側
[ro:/configure]
A:admin@rt01# /show router pcep pcc detail
===============================================================================
Path Computation Element Protocol (PCEP) Path Computation Client (PCC) Info
===============================================================================
Admin Status : Up Oper Status : Up
Unknown Msg Limit : 10 msg/min
Keepalive Interval : 30 seconds DeadTimer Interval : 120 seconds
Capabilities List : stateful-delegate stateful-pce segment-rt-path rsvp-
path pce-initiated-lsp p2mp p2mp-delegate p2mp-
initiate association multipath
Address : 10.255.0.1 Address Ipv6 : (Unspecified)
Report Path Constraints: True
Redelegation Interval : 90 seconds
State Interval : 180 seconds State Timer Action : remove
Max SR-TE PCE Init Lsps: 8191
Open Wait Timer : 60 seconds Keep Wait Timer : 60 seconds
Sync Timer : 60 seconds Request Timer : 120 seconds
Connection Timer : 60 seconds Allow Negotiations : False
Max Sessions : 1 Max Unknown Req : 1000
===============================================================================
これで Pola PCE と rt01 の間でパスの情報を送受信できるようになりました。
2. SR OS での LSP テンプレートの作成
SR OS では PCEP 経由で受け取った LSP を SR-TE の LSP として扱います。
機能の有効化には pce-init-lsp sr-te フラグを設定します。
その上で PCEP にて受け取った LSP をインスタンス化するために lsp-template を用意します。
設定をまとめると次の通りです。
[gl:/configure]
A:admin@rt01# /info router mpls
admin-state enable
path "pce-init" {
admin-state enable
}
lsp-template "pce-init-template" {
admin-state enable
type p2p-sr-te-pce-init
default-path "pce-init"
pce-report true
template-id default
max-sr-labels {
additional-frr-labels 2
}
}
pce-init-lsp {
sr-te {
admin-state enable
}
}
これでパス設定の準備ができました。
3. Pola PCE でのパス設定
Pola PCE でパス定義を読み込み、 rt01 へ送信します。 パスの定義は下記の通りです。
user@pola:~$ cat policy.yaml
srPolicy:
name: PE1-PE3
pcepSessionAddr: 10.255.0.1
srcAddr: 10.255.0.1
dstAddr: 10.255.0.3
color: 100
segmentList:
- sid: 16002
nai: 10.255.0.2
- sid: 16003
nai: 10.255.0.3
pola sr-policy add コマンドを利用し policy を追加することで上記のパスが送信されます。
user@pola:~$ pola sr-policy add -f policy.yaml --no-link-state --port 50052 success!
Pola PCE 側で設定済みのパスがあることを確認できます。 こちらは PCC 側が受領した応答なので、 PCC 側で反映された情報が表示されます。 ここで前述の通り SR OS で Color は無視され 0 となっていることが確認できます。
user@pola:~$ pola sr-policy list --port 50052
Session: 10.255.0.1
PolicyName: PE1-PE3
SrcAddr: 10.255.0.1
DstAddr: 10.255.0.3
Color: 0
Preference: 0
SegmentList: 16002 -> 16003
4. SR OS でパス確認と疎通確認
rt01 では Pola PCE から受信したパスの情報を確認し、それが使用されているか確かめます。
まず SR-TE の LSP として途中経路とともに登録されているかを確認します。 送信元ルーターと、送信先ルーター、途中の経路が確認できます。
[gl:/configure router "Base" mpls] A:admin@rt01# /show router mpls sr-te-lsp =============================================================================== MPLS SR-TE LSPs (Originating) =============================================================================== LSP Name Tun Protect Adm Opr To Id Path ------------------------------------------------------------------------------- PE1-PE3 16390 N/A Up Up 10.255.0.3 ------------------------------------------------------------------------------- LSPs : 1 ===============================================================================
[ro:/configure]
A:admin@rt01# /show router mpls sr-te-lsp path "PE1-PE3" detail
===============================================================================
MPLS SR-TE LSP PE1-PE3
Path (Detail)
===============================================================================
Legend :
S - Strict L - Loose
A-SID - Adjacency SID N-SID - Node SID
+ - Inherited
===============================================================================
-------------------------------------------------------------------------------
LSP SR-TE PE1-PE3
Path pce-init
-------------------------------------------------------------------------------
LSP Name : PE1-PE3
Path LSP ID : 55808
From : 10.255.0.1
To : 10.255.0.3
Admin State : Up Oper State : Up
Path Name : pce-init
Path Type : Primary
Path Admin : Up Path Oper : Up
Path Up Time : 0d 00:52:54 Path Down Time : 0d 00:00:00
Retry Limit : 0 Retry Timer : 30 sec
Retry Attempt : 0 Next Retry In : 0 sec
PathCompMethod : pce OperPathCompMethod: pce
MetricType : N/A Oper MetricType : N/A
LocalSrProt : preferred Oper LocalSrProt : preferred
LabelStackRed : Disabled Oper LabelStackRed: Disabled
Bandwidth : No Reservation Oper Bandwidth : 0 Mbps
Hop Limit : 255 Oper HopLimit : 255
Setup Priority : 0 Oper SetupPriority: 0
Hold Priority : 0 Oper HoldPriority : 0
Inter-area : N/A
PCE Updt ID : 1 PCE Updt State : Success
PCE Upd Fail Code: noError
PCE Report : Enabled Oper PCE Report : Enabled
PCE Control : Enabled Oper PCE Control : Enabled
Include Groups : Oper IncludeGroups:
None None
Exclude Groups : Oper ExcludeGroups:
None None
Last Resignal : n/a
IGP/TE Metric : N/A Oper Metric : 16777215
Oper MTU : 9186 Path Trans : 1
Degraded : False
Failure Code : noError
Failure Node : n/a
Explicit Hops :
No Hops Specified
Actual Hops :
n/a Record Label : 16002
-> n/a Record Label : 16003
BFD Configuration and State
Template : None Ping Interval : N/A
Enable : False State : notApplicable
ReturnPathLabel : None
WaitForUpTimer : 4 sec OperWaitForUpTimer: 0 sec
WaitForUpTmLeft : 0
StartFail Rsn : N/A
===============================================================================
次にこの SR-TE LSP が SR OS のトンネルとしても反映されていることを確認します。 rt03 である 10.255.0.3 向け経路で有効になっています。
[ro:/configure]
A:admin@rt01# /show router fp-tunnel-table 1
===============================================================================
IPv4 Tunnel Table Display
Legend:
label stack is ordered from bottom-most to top-most
B - FRR Backup
===============================================================================
Destination Protocol Tunnel-ID
Lbl/SID
NextHop Intf/Tunnel
Lbl/SID (backup)
NextHop (backup)
-------------------------------------------------------------------------------
10.0.1.2/32 SR 524290
3
10.0.1.2 1/1/c1/1:0
10.0.2.2/32 SR 524289
3
10.0.2.2 1/1/c2/1:0
10.255.0.2/32 SR-ISIS-0 524291
3
10.0.1.2 1/1/c1/1:0
10.255.0.3/32 SR-ISIS-0 524292
3
10.0.2.2 1/1/c2/1:0
10.255.0.3/32 SR-TE 671751
16003
10.255.0.2 SR
-------------------------------------------------------------------------------
Total Entries : 5
-------------------------------------------------------------------------------
===============================================================================
最後に VPN の経路を確認することで、今回設定した LSP で指定されている経路を通って通信できていることが確認できます。
[ro:/configure] A:admin@rt01# traceroute 192.168.1.254 router-instance "100" traceroute to 192.168.1.254, 30 hops max, 40 byte packets 1 10.0.1.2 (10.0.1.2) 2.59 ms 5.80 ms 2.03 ms 2 10.0.3.1 (10.0.3.1) 3.10 ms 2.78 ms 8.03 ms
まとめ
本記事では、SR OS を PCC として使用する場合の PCEP によるパス設定の検証結果を紹介しました。 Color に対応していないため制御できる粒度は大きいですが、各 PCE でのパス設定が可能でした。
(2024/02/29 追記) 新しい記事を公開しました:[Multi-AS Segment Routing 検証連載 #20] Multi-AS の SR-MPLS + VPNv4 環境における AS 間での TE