サマリ
- 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