[Multi-AS Segment Routing 検証連載 #16] Delay Measurement using IOS XR, Junos and SR OS

サマリ

  • 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 の設定を中心として次のステップで説明します。

  1. SR OS による responder (測定を受ける) 機能の検証
  2. 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

© NTT Communications Corporation All Rights Reserved.