Segment Routing Traffic Engineering – Explicit Candidate Path

今回はSR-TEのパスを手動で設定する方法を説明します。

 

概要

SR-TE Explicit Candidate Path

SR-TEでは、管理者が手動でパケットの転送経路を指定可能です。つまり、Head-endでパケットに付加するSID Listを明示的に指定可能です。

 

SR-TE用のパスはSR-TE Policyで定義します。SR-TE Policyは以下の3つの値で識別されます。

  • Head-endのアドレス
  • End-pointのアドレス
  • Color(Colorの意味は最後に説明します)

 

SR-TE PolicyにはLSPの候補であるCandidate Pathが登録されています。Candidate Pathには、管理者が手動で定義するExplicit Candidate Path、CSPFによって動的に計算させるDynamic Candidate Pathが存在します。

Head-endは優先度順にSR-TE Policyに登録されているCandidate Pathを計算します。
以下の図では、まずCandidate Path 1において、手動で定義されたパスが存在するか確認し、存在する場合、そのパスを使用してパケットを転送します。もし存在しない場合、Candidate Path 2に移動し、CSPFを基にHead-endからEnd-pointへのパスを計算します。

 

SR-TE PolicyのColorはHead-endとEnd-pointが同じSR-TE Policyを識別するための32ビットの値で、Automated Steeringを使用する場合に重要な値になります。(Automated Steeringは別の記事で説明します。)

 

検証内容と設定

基本設定の内容

R1-R2-R3-R4間でOSPF Area 0を構成します。
OSPFでSR-TEを有効にします。

R1でLoopback Interfaceの1.1.1.1/32にPrefix SIDとして20101を割り当てます。
R2でLoopback Interfaceの2.2.2.2/32にPrefix SIDとして20201を割り当てます。
R3でLoopback Interfaceの3.3.3.3/32にPrefix SIDとして20301を割り当てます。
R4でLoopback Interfaceの4.4.4.4/32にPrefix SIDとして20401を割り当てます。

R1で3.3.3.3/32へのパスを手動で定義し、最初にパケットをR4に転送し、その後、R3に転送します。

 

初期設定


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 ospf 1
 distribute link-state
 router-id 1.1.1.1
 segment-routing mpls
 area 0
  mpls traffic-eng
  interface Loopback0
   prefix-sid absolute 20101
  !
  interface GigabitEthernet0/0/0/0
   network point-to-point
  !
 !
!
segment-routing
 traffic-eng
  segment-list SID_LIST
   index 10 mpls label 20401
   index 20 mpls label 20301
  !
  policy SR-TE_POLICY
   color 1 end-point ipv4 3.3.3.3
   autoroute
    include all
   !
   candidate-paths
    preference 1
     explicit segment-list SID_LIST
            


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 ospf 1
 router-id 2.2.2.2
 segment-routing mpls
 area 0
  mpls traffic-eng
  interface Loopback0
   prefix-sid absolute 20201
  !
  interface GigabitEthernet0/0/0/0
   network point-to-point
  !
  interface GigabitEthernet0/0/0/1
   network point-to-point
  !
  interface GigabitEthernet0/0/0/2
   network point-to-point
  !
 !
!
segment-routing
 traffic-eng
            


interface Loopback0
 ipv4 address 3.3.3.3 255.255.255.255
!
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
!
router ospf 1
 router-id 3.3.3.3
 segment-routing mpls
 area 0
  mpls traffic-eng
  interface Loopback0
   prefix-sid absolute 20301
  !
  interface GigabitEthernet0/0/0/0
   network point-to-point
  !
  interface GigabitEthernet0/0/0/1
   network point-to-point
  !
 !
!
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 ospf 1
 router-id 4.4.4.4
 segment-routing mpls
 area 0
  mpls traffic-eng
  interface Loopback0
   prefix-sid absolute 20401
  !
  interface GigabitEthernet0/0/0/0
   network point-to-point
  !
  interface GigabitEthernet0/0/0/1
   network point-to-point
  !
 !
!
segment-routing
 traffic-eng
            

 

設定と状態の確認

OSPFの設定の確認

OSPFではsegment-routing mplsコマンドとmpls traffic-engコマンドを設定し、SR-TEを有効にします。

R1

router ospf 1
 distribute link-state
 segment-routing mpls
 area 0
  mpls traffic-eng
            

 

Head-endとなるルータはSR-TE DBに格納されている情報を基に、パスを計算します。そのため、distribute link-stateコマンドを設定し、OSPFやIS-ISで学習したTE用の情報をSR-TE DBに投入する必要があります。

 

SR-TE Policyの設定の確認

SR-TEの設定はtraffic-eng配下で設定します。

Explicit Candidate PathはSegment Listで定義します。Segment Listはsegment-list <segment-list-name>配下で設定します。index <index> mpls label <sid>コマンドを使用して、SID Listに挿入するSIDを定義します。<index>が大きいSIDから順番にパケットに付加されます。

SR-TE Policyはpolicy <sr-te-policy-name>配下で設定します。color <color> endpoint ipv4 <end-point-address>コマンドでSR-TE PolicyのColorとLSPの終点となるEnd-pointのアドレスを指定します。SR-TE PolicyのCandidate Pathの設定はcandidate-pathsコマンドで実施します。preference <value>コマンドではCandidate Pathの優先度を設定します。また、今回はExplicit Candidate Pathを使用するため、explicit segment-list <segment-list-name>コマンドを使用して、事前に定義したSegment Listを指定します。

R1

segment-routing
 traffic-eng
  segment-list SID_LIST
   index 10 mpls label 20401
   index 20 mpls label 20301
  !
  policy SR-TE_POLICY
   color 1 end-point ipv4 3.3.3.3
   autoroute
    include all
   !
   candidate-paths
    preference 1
     explicit segment-list SID_LIST
            

 

しかし、SR-TE用のLSPが生成された場合でも、Head-endは通常のSRで生成されたLSPを使用してパケットを転送してしまいます。
SR-TE用のLSP経由でパケットを転送するには、Autorouteを有効にし、ルーティングテーブルやFIBのネクストホップをSR-TE用のトンネルインタフェースに修正する必要があります。Autorouteはautorouteコマンドで有効化できます。(別の記事で説明するAutomated SteeringではAutorouteは不要になります。)

 

SR-TE DBの確認

SR-TE DBの情報はshow segment-routing traffic-eng ipv4 topology traffic-eng <router-id>コマンドで確認できます。SR-TE DBが空の場合は、SR-TE用のLSPを計算できません。

R1

RP/0/RP0/CPU0:R1#show segment-routing traffic-eng ipv4 topology traffic-eng 1.1.1.1

SR-TE topology database
-----------------------

Node 1
  TE router ID: 1.1.1.1
  OSPF router ID: 1.1.1.1 area ID: 0
  Prefix SID:
    Prefix 1.1.1.1, label 20101 (regular), flags: N:1, R:0, P:0, V:0, E:0, L:0

  Link[0]: local address 10.1.1.1, remote address 10.1.1.2
    Local node:
      OSPF router ID: 1.1.1.1 area ID: 0
    Remote node:
      TE router ID: 2.2.2.2
      OSPF router ID: 2.2.2.2 area ID: 0
    Metric: IGP 1, TE 1, Latency 1 microseconds
    Bandwidth: Total link 125000000, Reservable 0
    Admin-groups: 0x00000000
    Admin-groups-detail:
    Adj SID: 24000 (unprotected)
            

 

SR-TE Policyの確認

SR-TE Policyの情報はshow segment-routing traffic-eng policyコマンドで確認できます。ColorやEnd-pointのアドレス、SID Listに挿入される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:14:11 (since Jun 14 19:55:26.200)
  Candidate-paths:
    Preference: 1 (configuration) (active)
      Name: SR-TE_POLICY
      Requested BSID: dynamic
      Explicit: segment-list SID_LIST (valid)
        Weight: 1, Metric Type: TE
          20401 [Prefix-SID, 4.4.4.4]
          20301
  Attributes:
    Binding SID: 24006
    Forward Class: Not Configured
    Steering labeled-services disabled: no
    Steering BGP disabled: no
    IPv6 caps enable: yes
            

 

Candidate Pathの評価結果に基づいて、SR-TE Policyがパケットに付加するSIDはshow segment-routing traffic-eng policyコマンドで確認できます。

R1

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

SR-TE Policy Forwarding database
--------------------------------

Color: 1, End-point: 3.3.3.3
  Name: srte_c_1_ep_3.3.3.3
  Binding SID: 24006
  Active LSP:
    Candidate path:
      Preference: 1 (configuration)
      Name: SR-TE_POLICY
    Local label: 24003
    Segment lists:
      SL[0]:
        Name: SID_LIST
        Packets/Bytes Switched: 0/0
        Paths:
          Path[0]:
            Outgoing Label: 20401
            Outgoing Interface: GigabitEthernet0/0/0/0
            Next Hop: 10.1.1.2
            Switched Packets/Bytes: 0/0
            FRR Pure Backup: No
            ECMP/LFA Backup: No
            Label Stack (Top -> Bottom): { 20401, 20301 }

  Policy Packets/Bytes Switched: 10/1000
            

 

ルーティングテーブルの確認

SR-TE Policyを設定すると、SR-TE用のトンネルインタフェースが生成されます。このSR-TE用のトンネルインタフェースにパケットをリダイレクトすることで、パケットにSR-TE Policyで定義したSIDが付加されます。

R1

RP/0/RP0/CPU0:R1#show interfaces brief

               Intf       Intf        LineP              Encap  MTU        BW
               Name       State       State               Type (byte)    (Kbps)
--------------------------------------------------------------------------------
                Lo0          up          up           Loopback  1500          0
                Nu0          up          up               Null  1500          0
       srte_c_1_ep_          up          up             TUNNEL  1500          0
     Mg0/RP0/CPU0/0  admin-down  admin-down               ARPA  1514    1000000
          Gi0/0/0/0          up          up               ARPA  1514    1000000
          Gi0/0/0/1  admin-down  admin-down               ARPA  1514    1000000
          Gi0/0/0/2  admin-down  admin-down               ARPA  1514    1000000
          Gi0/0/0/3  admin-down  admin-down               ARPA  1514    1000000
          Gi0/0/0/4  admin-down  admin-down               ARPA  1514    1000000
          Gi0/0/0/5  admin-down  admin-down               ARPA  1514    1000000
          Gi0/0/0/6  admin-down  admin-down               ARPA  1514    1000000
            

 

R1のルーティングテーブルを見ると、Autorouteにより、3.3.3.3/32と10.4.4.0/24のネクストホップがSR-TE用のトンネルインタフェースに変化していることが確認できます。

R1

RP/0/RP0/CPU0:R1#show ip route
L    1.1.1.1/32 is directly connected, 02:31:06, Loopback0
O    2.2.2.2/32 [110/2] via 10.1.1.2, 00:18:45, GigabitEthernet0/0/0/0
O    3.3.3.3/32 [110/3] via 3.3.3.3, 00:18:44, srte_c_1_ep_3.3.3.3
O    4.4.4.4/32 [110/3] via 10.1.1.2, 00:18:45, GigabitEthernet0/0/0/0
C    10.1.1.0/24 is directly connected, 02:27:48, GigabitEthernet0/0/0/0
L    10.1.1.1/32 is directly connected, 02:27:48, GigabitEthernet0/0/0/0
O    10.2.2.0/24 [110/2] via 10.1.1.2, 00:18:45, GigabitEthernet0/0/0/0
O    10.3.3.0/24 [110/2] via 10.1.1.2, 00:18:45, GigabitEthernet0/0/0/0
O    10.4.4.0/24 [110/3] via 3.3.3.3, 00:18:44, srte_c_1_ep_3.3.3.3
                 [110/3] via 10.1.1.2, 00:18:44, GigabitEthernet0/0/0/0
            

 

疎通確認

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

 

R1はSID 20401 20301をパケットに付加してR2に転送していることが確認できます。また、パケットはR4を経由していることが確認できます。

R1

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

Type escape sequence to abort.
Tracing the route to 3.3.3.3

 1  10.1.1.2 [MPLS: Labels 20401/20301 Exp 0] 59 msec  56 msec  45 msec
 2  10.3.3.4 [MPLS: Label 20301 Exp 0] 69 msec  59 msec  59 msec
 3  10.4.4.3 60 msec  *  56 msec
            

コメント

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