今回は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を有効にします。
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を指定します。
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を計算できません。
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が確認できます。
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コマンドで確認できます。
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が付加されます。
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用のトンネルインタフェースに変化していることが確認できます。
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を経由していることが確認できます。
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
コメント