Segment Routing Flex Algo – IS-IS

今回はIS-ISを使用したFlex Algoの動作を見ていきます。

 

概要

IS-ISのFlex Algo関連のTLV

ルータがサポートしているAlgorithm ID、すなわち、ルータが参加するFlex Algoのトポロジーの情報はSR-Algorithm Sub-TLVに格納されます。

 

Prefix SIDのAlgorithm IDはPrefix SID Sub-TLVに格納されます。

 

検証の基本設定

基本設定の内容

R1-R2-R3-R4間でIS-IS Area 49.0000を構成します。
R1、R2、R3、R4をL2 Routerとして動作させます。
R2-R3間のIS-ISのコストを30に変更します。
IS-ISでSR-TEを有効にします。

R1、R2、R3はAlgorithm ID 0と128のトポロジーに参加させます。
R4はAlgorithm ID 0のトポロジーに参加させます。

R1とR3をAS 100に所属させ、IBGPネイバーを構成します。
R3において、BGP経由で、10.5.5.0/24にColor 1を付加して広報します。

R1でLoopback Interfaceの1.1.1.1/32にPrefix SIDとして20101(Algorithm ID 0)と20102(Algorithm ID 128)を割り当てます。
R2でLoopback Interfaceの2.2.2.2/32にPrefix SIDとして20201(Algorithm ID 0)と20202(Algorithm ID 128)を割り当てます。
R3でLoopback Interfaceの3.3.3.3/32にPrefix SIDとして20301(Algorithm ID 0)と20302(Algorithm ID 128)を割り当てます。
R4でLoopback Interfaceの4.4.4.4/32にPrefix SIDとして20401(Algorithm ID 0)を割り当てます。

初期設定


interface Loopback0
 ipv4 address 1.1.1.1 255.255.255.255
!
interface GigabitEthernet0/0/0/0
 ipv4 address 10.1.1.1 255.255.255.0
!
router isis 1
 is-type level-2-only
 net 49.0001.0000.0000.0001.00
 distribute link-state
 flex-algo 128
  advertise-definition
 !
 address-family ipv4 unicast
  metric-style wide
  mpls traffic-eng level-2-only
  segment-routing mpls
 !
 interface Loopback0
  address-family ipv4 unicast
   prefix-sid absolute 20101
   prefix-sid algorithm 128 absolute 20102
  !
 !
 interface GigabitEthernet0/0/0/0
  point-to-point
  address-family ipv4 unicast
  !
 !
!
router bgp 100
 bgp router-id 1.1.1.1
 address-family ipv4 unicast
 !
 neighbor 3.3.3.3
  remote-as 100
  update-source Loopback0
  address-family ipv4 unicast
  !
 !
!
segment-routing
 traffic-eng
            


interface Loopback0
 ipv4 address 2.2.2.2 255.255.255.255
!
interface GigabitEthernet0/0/0/0
 ipv4 address 10.1.1.2 255.255.255.0
!
interface GigabitEthernet0/0/0/1
 ipv4 address 10.2.2.2 255.255.255.0
!
interface GigabitEthernet0/0/0/2
 ipv4 address 10.3.3.2 255.255.255.0
!
router isis 1
 is-type level-2-only
 net 49.0001.0000.0000.0002.00
 flex-algo 128
  advertise-definition
 !
 address-family ipv4 unicast
  metric-style wide
  mpls traffic-eng level-2-only
  segment-routing mpls
 !
 interface Loopback0
  address-family ipv4 unicast
   prefix-sid absolute 20201
   prefix-sid algorithm 128 absolute 20202
  !
 !
 interface GigabitEthernet0/0/0/0
  point-to-point
  address-family ipv4 unicast
  !
 !
 interface GigabitEthernet0/0/0/1
  point-to-point
  address-family ipv4 unicast
   metric 30 level 2
  !
 !
 interface GigabitEthernet0/0/0/2
  point-to-point
  address-family ipv4 unicast
  !
 !
!
segment-routing
 traffic-eng
            


interface Loopback0
 ipv4 address 3.3.3.3 255.255.255.255
!
interface Loopback1
 ipv4 address 10.5.5.3 255.255.255.0
!
interface GigabitEthernet0/0/0/0
 ipv4 address 10.2.2.3 255.255.255.0
!
interface GigabitEthernet0/0/0/1
 ipv4 address 10.4.4.3 255.255.255.0
!
extcommunity-set opaque COLOR_EXT_COMMUNITY_SET
  1
end-set
!
router isis 1
 is-type level-2-only
 net 49.0001.0000.0000.0003.00
 flex-algo 128
  advertise-definition
 !
 address-family ipv4 unicast
  metric-style wide
  mpls traffic-eng level-2-only
  segment-routing mpls
 !
 interface Loopback0
  address-family ipv4 unicast
   prefix-sid absolute 20301
   prefix-sid algorithm 128 absolute 20302
  !
 !
 interface GigabitEthernet0/0/0/0
  point-to-point
  address-family ipv4 unicast
   metric 30
  !
 !
 interface GigabitEthernet0/0/0/1
  point-to-point
  address-family ipv4 unicast
  !
 !
!
router bgp 100
 bgp router-id 3.3.3.3
 address-family ipv4 unicast
  network 10.5.5.0/24
 !
 neighbor 1.1.1.1
  remote-as 100
  update-source Loopback0
  address-family ipv4 unicast
   route-policy BGP_ROUTE_POLICY out
  !
 !
!
segment-routing
 traffic-eng
            


interface Loopback0
 ipv4 address 4.4.4.4 255.255.255.255
!
interface GigabitEthernet0/0/0/0
 ipv4 address 10.3.3.4 255.255.255.0
!
interface GigabitEthernet0/0/0/1
 ipv4 address 10.4.4.4 255.255.255.0
!
router isis 1
 is-type level-2-only
 net 49.0001.0000.0000.0004.00
 address-family ipv4 unicast
  metric-style wide
  mpls traffic-eng level-2-only
  segment-routing mpls
 !
 interface Loopback0
  address-family ipv4 unicast
   prefix-sid absolute 20401
  !
 !
 interface GigabitEthernet0/0/0/0
  point-to-point
  address-family ipv4 unicast
  !
 !
 interface GigabitEthernet0/0/0/1
  point-to-point
  address-family ipv4 unicast
  !
 !
!
segment-routing
 traffic-eng
            

 

基本設定と状態の確認

IS-ISの設定確認

OSPFと同様に、IS-ISでもルータが参加するFlex Algoのトポロジーはflex-algo <algorithm-id>コマンドで定義します。そして、定義したトポロジーの情報をIS-ISで広報するには、advertise-definitionコマンドを設定します。

Prefix SIDのAlgorithm IDはprefix-sidコマンドのalgorithmオプションで指定します。

R3

router isis 1
 flex-algo 128
  advertise-definition
 !
 interface Loopback0
  address-family ipv4 unicast
   prefix-sid absolute 20301
   prefix-sid algorithm 128 absolute 20302
            

 

IS-ISの状態確認

R3が生成したLSPを見ると、SR-Algorithm Sub-TLVに0と128が格納されていることが確認できます。また、Prefix SID Sub-TLVにAlgorithm IDが0のPrefix SIDのIndexと、Algorithm IDが128のPrefix SIDのIndexが格納されていることが確認できます。

R3

RP/0/RP0/CPU0:R3#show isis database R3.00-00 verbose

IS-IS 1 (Level-2) Link State Database
LSPID                 LSP Seq Num  LSP Checksum  LSP Holdtime/Rcvd  ATT/P/OL
R3.00-00            * 0x0000000b   0xb8d6        1149 /*            0/0/0
  Area Address:   49.0001
  NLPID:          0xcc
  Metric: 30         IP-Extended 10.2.2.0/24
    Prefix Attribute Flags: X:0 R:0 N:0
  Metric: 10         IP-Extended 10.4.4.0/24
    Prefix Attribute Flags: X:0 R:0 N:0
  Metric: 10         IP-Extended 3.3.3.3/32
    Prefix-SID Index: 4301, Algorithm:0, R:0 N:1 P:0 E:0 V:0 L:0
    Prefix-SID Index: 4302, Algorithm:128, R:0 N:1 P:0 E:0 V:0 L:0
    Prefix Attribute Flags: X:0 R:0 N:1
    Source Router ID: 3.3.3.3
  Hostname:       R3
  Metric: 30         IS-Extended R2.00
    Interface IP Address: 10.2.2.3
    Neighbor IP Address: 10.2.2.2
    Affinity: 0x00000000
    Physical BW: 1000000 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: 30
    Ext Admin Group: Length: 32
      0x00000000   0x00000000
      0x00000000   0x00000000
      0x00000000   0x00000000
      0x00000000   0x00000000
    Link Maximum SID Depth:
      Label Imposition: 10
    ADJ-SID: F:0 B:0 V:1 L:1 S:0 P:0 weight:0 Adjacency-sid:24001
  Metric: 10         IS-Extended R4.00
    Interface IP Address: 10.4.4.3
    Neighbor IP Address: 10.4.4.4
    Affinity: 0x00000000
    Physical BW: 1000000 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: 10
    Ext Admin Group: Length: 32
      0x00000000   0x00000000
      0x00000000   0x00000000
      0x00000000   0x00000000
      0x00000000   0x00000000
    Link Maximum SID Depth:
      Label Imposition: 10
    ADJ-SID: F:0 B:0 V:1 L:1 S:0 P:0 weight:0 Adjacency-sid:24003
  IP Address:     3.3.3.3
  Router ID:      3.3.3.3
  Router Cap:     3.3.3.3 D:0 S:0
    Segment Routing: I:1 V:0, SRGB Base: 16000 Range: 8000
    SR Local Block: Base: 15000 Range: 1000
    Node Maximum SID Depth:
      Label Imposition: 10
    SR Algorithm:
      Algorithm: 0
      Algorithm: 1
      Algorithm: 128
    Flex-Algo Definition:
      Algorithm: 128 Metric-Type: 0 Alg-type: 0 Priority: 128
            

 

以下はR3が生成したLSP内のRouter Capability TLVのキャプチャになります。SR-Algorithm TLVに0と128が格納されていることが確認できます。

 

以下はR3が生成したLSP内のExtended IP Reachability TLVのキャプチャになります。3.3.3.3/32のPrefix SID Sub-TLVにAlgorithm IDが0のPrefix SIDのIndexと、Algorithm IDが128のPrefix SIDのIndexが格納されていることが確認できます。

 

Algorithm ID 0のトポロジーを使用した場合

SR-TE Policyの設定

R1でODNが有効なSR-TE Policyを設定します。デフォルトではODNが有効なSR-TE PolicyはAlgorithm IDが0のトポロジーを使用します。

R1

segment-routing
 traffic-eng
  on-demand color 1
   dynamic
            

 

SR-TE Policyの設定

R1のSR-TE Policyを見ると、Algorithm ID 0のPrefix SIDを使用していることが確認できます。

R1

RP/0/RP0/CPU0:R1#show segment-routing traffic-eng policy

SR-TE policy database
---------------------

Color: 1, End-point: 3.3.3.3
  Name: srte_c_1_ep_3.3.3.3
  Status:
    Admin: up  Operational: up for 00:09:24 (since Jun 21 19:01:52.595)
  Candidate-paths:
    Preference: 200 (BGP ODN) (active)
      Requested BSID: dynamic
        Maximum SID Depth: 10
      Dynamic (valid)
        Metric Type: TE,   Path Accumulated Metric: 30
          20301 [Prefix-SID, 3.3.3.3]
    Preference: 100 (BGP ODN)
      Last error: Constraint cannot be enforced: flex-algorithm
      Requested BSID: dynamic
      PCC info:
        Symbolic name: bgp_c_1_ep_3.3.3.3_discr_100
        PLSP-ID: 1
        Maximum SID Depth: 10
      Dynamic (pce) (invalid)
        Metric Type: NONE,   Path Accumulated Metric: 0
  Attributes:
    Binding SID: 24004
    Forward Class: Not Configured
    Steering labeled-services disabled: no
    Steering BGP disabled: no
    IPv6 caps enable: yes
            

 

疎通確認

R1の1.1.1.1からR3の10.5.5.3へTracerouteを実施します。

 

パケットがR4を経由していることが確認できます。

R1

RP/0/RP0/CPU0:R1#traceroute 4.4.4.4 source 1.1.1.1

Type escape sequence to abort.
Tracing the route to 10.5.5.3

 1  10.1.1.2 [MPLS: Label 20301 Exp 0] 63 msec  67 msec  60 msec
 2  10.3.3.4 [MPLS: Label 20301 Exp 0] 71 msec  58 msec  45 msec
 3  10.4.4.3 62 msec  *  73 msec
            

 

Algorithm ID 128のトポロジーを使用した場合

SR-TE Policyの設定

R1でAlgorithm ID 128のトポロジーを使用するODNが有効なSR-TE Policyを設定します。使用するトポロジーのAlgorithm IDはsid-algorithm <id>コマンドで指定します。

R1

segment-routing
 traffic-eng
  on-demand color 1
   dynamic
    sid-algorithm 128
            

 

SR-TE Policyの設定

R1のSR-TE Policyを見ると、Algorithm ID 128のPrefix SIDを使用していることが確認できます。

R1

RP/0/RP0/CPU0:R1#show segment-routing traffic-eng policy

SR-TE policy database
---------------------

Color: 1, End-point: 3.3.3.3
  Name: srte_c_1_ep_3.3.3.3
  Status:
    Admin: up  Operational: up for (since Jun 21 19:01:52.595)
  Candidate-paths:
    Preference: 200 (BGP ODN) (active)
      Requested BSID: dynamic
      Constraints:
        Prefix-SID Algorithm: 128
        Maximum SID Depth: 10
      Dynamic (valid)
        Metric Type: TE,   Path Accumulated Metric: 30
           20302 [Prefix-SID: 3.3.3.3, Algorithm: 128]
    Preference: 100 (BGP ODN)
      Last error: Constraint cannot be enforced: flex-algorithm
      Requested BSID: dynamic
      PCC info:
        Symbolic name: bgp_c_1_ep_3.3.3.3_discr_100
        PLSP-ID: 1
      Constraints:
        Prefix-SID Algorithm:  128
        Maximum SID Depth: 10
      Dynamic (pce) (invalid)
        Metric Type: NONE,   Path Accumulated Metric: 0
  Attributes:
    Binding SID: 24004
    Forward Class: Not Configured
    Steering labeled-services disabled: no
    Steering BGP disabled: no
    IPv6 caps enable: yes
            

 

疎通確認

R1の1.1.1.1からR3の10.5.5.3へTracerouteを実施します。

 

R2⇒R3よりR2⇒R4⇒R3の方がコストが小さいが、R4はAlgorithm ID 128のトポロジーに所属していないため、パケットがR4を経由していないことが確認できます。

R1

RP/0/RP0/CPU0:R1#traceroute 10.5.5.3 source 1.1.1.1

Type escape sequence to abort.
Tracing the route to 10.5.5.3

 1  10.1.1.2 [MPLS: Label 20302 Exp 0] 65 msec  72 msec  63 msec
 2  10.2.2.3 119 msec  *  84 msec
            

コメント

タイトルとURLをコピーしました