サマリ
- IOS XR + Junos + SR OS の Multi-vendor 環境におけるリンク遅延計測の動作検証を実施
この記事は Multi-AS Segment Routing 検証連載の第 16 回です。目次は こちら
概要
イノベーションセンターの竹中です。普段の業務では Multi-AS Segment Routing に関する技術検証や、ネットワーク運用効率化のためのコントローラー開発などを行なっています。
第 7 回の記事では、IOS XR + Junos の 2 ベンダーの機器を用いてリンク遅延を計測する TWAMP について、また計測した値を元にした Delay-Based TE についての説明と検証をしました。
本記事では、SR OS を中心とした Multi-vendor における TWAMP(Two-Way Active Measurement Protocol) の動作検証内容を紹介します。 なお、検証で利用する SR OS 23.3.R1 において、local CSPF(Constrained Shortest Path First) を用いた Delay-Based TE は実現できないため、本記事では対象外とします。
検証
本記事では TWAMP を用いたリンク遅延測定と IS-IS で測定値を広告する方法を紹介します。 動作検証環境は下図の通りです。各ルーター間のリンクは直結です。

検証に用いた機器詳細は以下の通りです。
- rt01: Cisco ASR 9901 (IOS XR 7.7.1)
- rt02: Juniper MX204 (Junos 21.3R1.9)
- rt03: Nokia 7750 SR-1 (SR OS 23.3.R1)
リンク間遅延の測定手法としては SR OS / IOS XR / Junos ともに TWAMP Light1 形式の実装があるため、具体的には TWAMP Light の設定方法について紹介します。
TWAMP Light の利用に関して、SR OS の設定を中心として次のステップで説明します。
- SR OS による responder (測定を受ける) 機能の検証
- SR OS による controller (測定を実施する) 機能の検証
なお IS-IS の基本設定の記載は省略します。基本設定は第 1 回記事、第 12 回記事を参照ください。
responder 機能の検証
SR OS で TWAMP Light の responder 機能が Multi-vendor において利用可能であるかを検証します。 IOS XR / Junos を TWAMP Light の controller として動作させ、IOS XR - SR OS 間、 Junos - SR OS 間を計測することで動作確認を行います。
IOS XR - SR OS 間
rt01 (IOS XR)
RP/0/RSP0/CPU0:rt01#show run performance-measurement Fri Jul 21 14:23:46.053 JST performance-measurement interface TenGigE0/0/0/10 next-hop ipv4 10.2.13.2 delay-measurement ! !
rt03 (SR OS)
[ex:/configure router "Base" twamp-light]
A:user@rt03# info
reflector {
admin-state enable
udp-port 862
prefix 10.2.13.0/30 {
description "to_rt01"
}
}
確認
まず、rt01(IOS XR) にて遅延計測ができていることを確認します。
RP/0/RSP0/CPU0:rt01#show performance-measurement interfaces tenGigE 0/0/0/10 brief Thu Jul 27 14:22:46.970 JST ---------------------------------------------------------------------------------------------------------------------------------------------------------------- 0/0/CPU0 ---------------------------------------------------------------------------------------------------------------------------------------------------------------- Interface Name Tx/Rx Avg/Min/Max/Variance (uSec) -------------------------------------------------------------------------------------------------------------------------------------------------------------- TenGigE0/0/0/10 4/4 13/13/14/0
また、IS-IS で計測結果が広告されていることを確認します。
RP/0/RSP0/CPU0:rt01#show isis database rt01.00-00 verbose
Thu Jul 27 14:22:54.545 JST
IS-IS 1 (Level-2) Link State Database
LSPID LSP Seq Num LSP Checksum LSP Holdtime/Rcvd ATT/P/OL
rt01.00-00 * 0x0001286e 0x9a81 1171 /* 0/0/0
(snip)
Metric: 20 IS-Extended rt03.00
Local Interface ID: 23, Remote Interface ID: 2
Interface IP Address: 10.2.13.1
Neighbor IP Address: 10.2.13.2
Affinity: 0x00000000
Physical BW: 10000000 kbits/sec
Reservable Global pool BW: 0 kbits/sec
Global Pool BW Unreserved:
[0]: 0 kbits/sec [1]: 0 kbits/sec
[2]: 0 kbits/sec [3]: 0 kbits/sec
[4]: 0 kbits/sec [5]: 0 kbits/sec
[6]: 0 kbits/sec [7]: 0 kbits/sec
Admin. Weight: 20
Physical BW: 10000000 kbits/sec
Link Average Delay: 13 us
Link Min/Max Delay: 11/16 us
Link Delay Variation: 2 us
ADJ-SID: F:0 B:0 V:1 L:1 S:0 P:0 weight:0 Adjacency-sid:32328
rt03(SR OS) において、広告されている Delay metric が正しく認識できていることを確認します。
[/]
A:user@rt03# show router isis database rt01.00-00 detail
(snip)
TLVs :
(snip)
TE IS Nbrs :
Nbr : rt03.00
Default Metric : 20
Sub TLV Len : 148
LclId : 23
RmtId : 2
IF Addr : 10.2.13.1
Nbr IP : 10.2.13.2
Admin Grp : 0x0
MaxLink BW: 10000000 kbps
Resvble BW: 0 kbps
Unresvd BW:
BW[0] : 0 kbps
BW[1] : 0 kbps
BW[2] : 0 kbps
BW[3] : 0 kbps
BW[4] : 0 kbps
BW[5] : 0 kbps
BW[6] : 0 kbps
BW[7] : 0 kbps
TE Metric : 20
MaxLink BW: 10000000 kbps
Delay : 13 0x0
Delay Min : 11 Max : 16
Delay Var : 2
Adj-SID: Flags:v4VL Weight:0 Label:32328
(snip)
Junos - SR OS 間
rt02 (Junos)
set protocols isis interface xe-0/1/1.0 delay-measurement
rt03 (SR OS)
[ex:/configure router "Base" twamp-light]
A:user@rt03# info
reflector {
admin-state enable
udp-port 862
prefix 10.2.15.0/30 {
description "to_rt02"
}
}
確認
まず、rt02(Junos) にて遅延計測ができていることを確認します。
user@rt02> show services rpm twamp client
Connection Session Sender Sender Reflector Reflector
Name Name address port address port
__r__12 __r__13 10.2.15.1 63687 10.2.15.2 862
user@rt02> show services rpm twamp client probe-results control-connection __r__12
Owner: __r__12, Test: __r__13
TWAMP-Server-Status: Light, Number-Of-Retries-With-TWAMP-Server: 0
Reflector address: 10.2.15.2, Reflector port: 862, Sender address: 10.2.15.1, sender-port: 53190
Test size: 10 probes
Probe results:
Response received
Probe sent time: Thu Jul 27 14:26:31 2023
Probe rcvd/timeout time: Thu Jul 27 14:26:31 2023
Rtt: 167 usec, Egress jitter: 227 usec, Ingress jitter: -213 usec, Round trip jitter: -2 usec
Egress interarrival jitter: 279 usec, Ingress interarrival jitter: 280 usec,
Round trip interarrival jitter: 25 usec
(snip)
また、IS-IS で計測結果が広告されていることを確認します。
user@rt02> show isis database rt02.00-00 extensive
IS-IS level 1 link-state database:
IS-IS level 2 link-state database:
rt02.00-00 Sequence: 0x27335, Checksum: 0x2509, Lifetime: 1183 secs
(snip)
TLVs:
(snip)
Extended IS Reachability TLV, Type: 22, Length: 114
IS extended neighbor: rt03.00, Metric: default 20 SubTLV len: 103
IP address: 10.2.15.1
Neighbor's IP address: 10.2.15.2
Local interface index: 361, Remote interface index: 3
Unidirectional link delay: 82
Min unidirectional link delay: 70
Max unidirectional link delay: 108
Unidirectional delay variation: 205
(snip)
rt03(SR OS) において、広告されている Delay metric が正しく認識できていることを確認します。
[/]
A:user@rt03# show router isis database rt02.00-00 detail
(snip)
TLVs :
(snip)
TE IS Nbrs :
Nbr : rt03.00
Default Metric : 20
Sub TLV Len : 103
IF Addr : 10.2.15.1
Nbr IP : 10.2.15.2
LclId : 361
RmtId : 3
Delay : 82 0x0
Delay Min : 70 Max : 108
Delay Var : 205
Unresvd BW:
BW[0] : 10000000 kbps
BW[1] : 10000000 kbps
BW[2] : 10000000 kbps
BW[3] : 10000000 kbps
BW[4] : 10000000 kbps
BW[5] : 10000000 kbps
BW[6] : 10000000 kbps
BW[7] : 10000000 kbps
Resvble BW: 10000000 kbps
MaxLink BW: 10000000 kbps
Admin Grp : 0x0
Adj-SID: Flags:v4BVL Weight:0 Label:1106
(snip)
controller 機能の検証
SR OS で TWAMP Light の controller 機能が Multi-vendor において利用可能であるかを検証します。 IOS XR / Junos を TWAMP Light の responder として動作させ、SR OS - IOS XR 間、SR OS - Junos 間を計測することで動作確認を行います。
なお、SR OS は以下の 2 パターンで controller として動作させることができます。
- oam-pm: 計測結果はローカルでのみ閲覧可能
- test-oam link-measurement: 計測結果は IS-IS で広告可能
本検証では、リンク遅延を IGP にて広告することを目的としているため、test-oam link-measurement による計測方法のみ紹介します。
SR OS - IOS XR 間
rt01 (IOS XR)
ipsla responder twamp-light test-session 1 local-ip 10.2.13.1 local-port 862 remote-ip 10.2.13.2 remote-port any vrf default ! ! !
rt03 (SR OS)
[ex:/configure test-oam link-measurement]
A:user@rt03# info
measurement-template "to_iosxr" {
admin-state enable
interval 1
last-reported-delay-hold 60
reporting true
twamp-light {
dest-udp-port 862
}
sample-window {
threshold {
absolute 10
}
}
}
[ex:/configure router "Base" interface "to_rt01"]
A:user@rt03# info
if-attribute {
delay {
delay-selection dynamic-preferred
static 100
dynamic {
measurement-template "to_iosxr"
twamp-light {
ipv4 {
admin-state enable
destination 10.2.13.1
source 10.2.13.2
}
}
}
}
}
[ex:/configure router "Base" isis 0]
A:user@rt03# info
traffic-engineering-options {
advertise-delay true
}
確認
まず、rt03(SR OS) にて遅延計測ができていることを確認します。
[/] A:user@rt03# show test-oam link-measurement interface "to_rt01" =============================================================================== Interface Link Measurement Information - to_rt01 =============================================================================== Template Name: to_iosxr Oper State : Up Protocol : IPv4 Oper Source Address : 10.2.13.2 Source Auto-Assigned : No Oper Destination Address : 10.2.13.1 Destination Auto-Assigned: No In-Use Src UDP Port : 49155 In-Use Dst UDP Port : 862 STAMP Session Identifier : 1037 Failure Condition(s) : None Detectable Tx Error : None ------------------------------------------------------------------------------- Reporting ------------------------------------------------------------------------------- Reporting Operational : Yes Delay Measure Last Reported: 19us Timestamp : 2023/07/21 06:22:48 Triggered By : SampleThresholdAbsolute ===============================================================================
また、IS-IS で計測結果が広告されていることを確認します。
[/]
A:user@rt03# show router isis database rt03.00-00 detail
(snip)
TLVs :
(snip)
TE IS Nbrs :
Nbr : rt01.00
Default Metric : 20
Sub TLV Len : 86
IF Addr : 10.2.13.2
Nbr IP : 10.2.13.1
MaxLink BW: 10000000 kbps
Resvble BW: 10000000 kbps
Unresvd BW:
BW[0] : 10000000 kbps
BW[1] : 10000000 kbps
BW[2] : 10000000 kbps
BW[3] : 10000000 kbps
BW[4] : 10000000 kbps
BW[5] : 10000000 kbps
BW[6] : 10000000 kbps
BW[7] : 10000000 kbps
Admin Grp : 0x0
TE Metric : 20
Delay Min : 19 Max : 19
Adj-SID: Flags:v4BVL Weight:0 Label:524279
(snip)
rt01(IOS XR) において、広告されている Delay metric が正しく認識できていることを確認します。
RP/0/RSP0/CPU0:rt01#show isis database rt03.00-00 verbose
Mon Jul 24 16:37:34.968 JST
IS-IS 1 (Level-2) Link State Database
LSPID LSP Seq Num LSP Checksum LSP Holdtime/Rcvd ATT/P/OL
rt03.00-00 0x00007d2c 0x93cc 1165 /1200 0/0/0
(snip)
Metric: 20 IS-Extended rt01.00
Interface IP Address: 10.2.13.2
Neighbor IP Address: 10.2.13.1
Physical BW: 10000000 kbits/sec
Reservable Global pool BW: 10000000 kbits/sec
Global Pool BW Unreserved:
[0]: 10000000 kbits/sec [1]: 10000000 kbits/sec
[2]: 10000000 kbits/sec [3]: 10000000 kbits/sec
[4]: 10000000 kbits/sec [5]: 10000000 kbits/sec
[6]: 10000000 kbits/sec [7]: 10000000 kbits/sec
Affinity: 0x00000000
Admin. Weight: 20
Link Min/Max Delay: 19/19 us
ADJ-SID: F:0 B:1 V:1 L:1 S:0 P:0 weight:0 Adjacency-sid:524279
SR OS - Junos 間
rt02 (Junos)
set services rpm twamp server light port 862
rt03 (SR OS)
Junos との相互接続において、計測パケットの padding を Junos が対応しているサイズに合わせる必要があります。
pad-tlv size 46 が該当の設定です。
[ex:/configure test-oam link-measurement]
A:user@rt03# info
measurement-template "to_junos" {
admin-state enable
interval 1
last-reported-delay-hold 60
reporting true
twamp-light {
dest-udp-port 862
pad-tlv-size 46
}
sample-window {
threshold {
absolute 10
}
}
}
[ex:/configure router "Base" interface "to_rt02"]
A:user@rt03# info
if-attribute {
delay {
delay-selection dynamic-preferred
dynamic {
measurement-template "to_iosxr"
twamp-light {
ipv4 {
admin-state enable
destination 10.2.15.1
source 10.2.15.2
}
}
}
}
}
[ex:/configure router "Base" isis 0]
A:user@rt03# info
traffic-engineering-options {
advertise-delay true
}
確認
まず、rt03(SR OS) にて遅延計測ができていることを確認します。
[/] A:user@rt03# show test-oam link-measurement interface "to_rt02" =============================================================================== Interface Link Measurement Information - to_rt02 =============================================================================== Template Name: to_iosxr Oper State : Up Protocol : IPv4 Oper Source Address : 10.2.15.2 Source Auto-Assigned : No Oper Destination Address : 10.2.15.1 Destination Auto-Assigned: No In-Use Src UDP Port : 49155 In-Use Dst UDP Port : 862 STAMP Session Identifier : 1038 Failure Condition(s) : None Detectable Tx Error : None ------------------------------------------------------------------------------- Reporting ------------------------------------------------------------------------------- Reporting Operational : Yes Delay Measure Last Reported: 55us Timestamp : 2023/07/27 05:31:51 Triggered By : SampleThresholdAbsolute ===============================================================================
また、IS-IS で計測結果が広告されていることを確認します。
[/]
A:user@rt03# show router isis database rt03.00-00 detail
===============================================================================
Rtr Base ISIS Instance 0 Database (detail)
===============================================================================
Displaying Level 1 database
-------------------------------------------------------------------------------
Level (1) LSP Count : 0
Displaying Level 2 database
-------------------------------------------------------------------------------
LSP ID : rt03.00-00 Level : L2
Sequence : 0x90b3 Checksum : 0xe6f7 Lifetime : 1142
Version : 1 Pkt Type : 20 Pkt Ver : 1
Attributes: L1L2 Max Area : 3 Alloc Len : 1492
SYS ID : 0102.5500.2026 SysID Len : 6 Used Len : 539
TLVs :
(snip)
TE IS Nbrs :
Nbr : rt02.00
Default Metric : 20
Sub TLV Len : 86
IF Addr : 10.2.15.2
Nbr IP : 10.2.15.1
MaxLink BW: 10000000 kbps
Resvble BW: 10000000 kbps
Unresvd BW:
BW[0] : 10000000 kbps
BW[1] : 10000000 kbps
BW[2] : 10000000 kbps
BW[3] : 10000000 kbps
BW[4] : 10000000 kbps
BW[5] : 10000000 kbps
BW[6] : 10000000 kbps
BW[7] : 10000000 kbps
Admin Grp : 0x0
TE Metric : 20
Delay Min : 55 Max : 55
Adj-SID: Flags:v4BVL Weight:0 Label:524282
(snip)
rt02(Junos) において、広告されている Delay metric が正しく認識できていることを確認します。
user@rt02> show isis database rt03.00-00 extensive
IS-IS level 1 link-state database:
IS-IS level 2 link-state database:
rt03.00-00 Sequence: 0x90b3, Checksum: 0xe6f7, Lifetime: 1134 secs
(snip)
TLVs:
(snip)
Extended IS Reachability TLV, Type: 22, Length: 97
IS extended neighbor: rt02.00, Metric: default 20 SubTLV len: 86
IP address: 10.2.15.2
Neighbor's IP address: 10.2.15.1
Maximum bandwidth: 10Gbps
Maximum reservable bandwidth: 10Gbps
Current reservable bandwidth:
Priority 0 : 10Gbps
Priority 1 : 10Gbps
Priority 2 : 10Gbps
Priority 3 : 10Gbps
Priority 4 : 10Gbps
Priority 5 : 10Gbps
Priority 6 : 10Gbps
Priority 7 : 10Gbps
Administrative groups: 0 <none>
Traffic engineering metric: 20
Min unidirectional link delay: 55
Max unidirectional link delay: 55
P2P IPV4 Adj-SID - Flags:0x70(F:0,B:1,V:1,L:1,S:0,P:0), Weight:0, Label: 524282
P2P IPv4 Adj-SID: 524282, Weight: 0, Flags: -BVL--
(snip)
考慮事項
検証結果から、各ベンダー機器の組み合わせによってリンク遅延に大きく差があることがわかります。
第 7 回記事でも言及した通り、相互接続環境での TWAMP を用いたリンク遅延測定結果は必ずしも実態に沿った値となるとは限らないと思われます。
まとめ
本記事では、SR OS を含めた Multi-vendor 環境におけるリンク遅延計測の検証結果を紹介しました。 次回の記事では Multi-AS 環境における Per-Flow TE について紹介予定です。
(2023/10/30 追記) 公開しました:[Multi-AS Segment Routing 検証連載 #17] Per-Flow Steering using SR OS