今回はルータ毎にSRGBが異なる場合の動作について説明についてまとめます。
概要
ルータ毎にSRGBが異なる場合の動作
SRGB(Segment Routing Global Block)は、各ルータがPrefix SIDやNode SIDとして使用可能な値の範囲になります。SRGBに含まれるSIDはグローバルで意味のある値で、各ルータで異なる値を使用する必要があります。
たとえば、下図のように、ルータ毎にSRGBが異なる場合、パケットにそのままPrefix SIDを付加して転送すると問題が発生します。R1がパケットに付加したPrefix SIDの20301がR2のSRGB(50000~57999)に含まれていないため、R2はパケットを処理できず、パケットを破棄してしまいます。
ルータ毎にSRGBが異なる場合でも、正しく通信ができるように、各ルータは以下を加算した値をPrefix SIDとして使用します。
- ルート情報に付加されたPrefix SIDのIndex
- 自身のSRGBの先頭のSID
そして、Outgoing Labelには以下を加算した値を使用します。
- ルート情報に付加されたPrefix SIDのIndex
- パケットの転送先ルータのSRGBの先頭のSID
この結果、ルータ毎にSRGBが異なる場合でも、正しく通信できます。
検証の基本設定
基本設定の内容
R1-R2-R3-R4間でOSPF Area 0を構成します。
OSPFでSRを有効にします。
R1とR4のSRGBはデフォルトの16000~23999とします。
R2のSRGBを20000~27999、R3のSRGBを30000~37999に変更します。
R4でLoopback Interfaceの4.4.4.4/32にPrefix SIDとして20401を割り当てます。
初期設定
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
router-id 1.1.1.1
segment-routing mpls
area 0
interface Loopback0
!
interface GigabitEthernet0/0/0/0
network point-to-point
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
!
router ospf 1
router-id 2.2.2.2
segment-routing mpls
area 0
interface Loopback0
!
interface GigabitEthernet0/0/0/0
network point-to-point
!
interface GigabitEthernet0/0/0/1
network point-to-point
!
!
!
segment-routing
global-block 20000 27999
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.3.3.3 255.255.255.0
!
router ospf 1
router-id 3.3.3.3
segment-routing mpls
area 0
interface Loopback0
!
interface GigabitEthernet0/0/0/0
network point-to-point
!
interface GigabitEthernet0/0/0/1
network point-to-point
!
!
!
segment-routing
global-block 30000 37999
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
!
router ospf 1
router-id 4.4.4.4
segment-routing mpls
area 0
interface Loopback0
prefix-sid absolute 20401
!
interface GigabitEthernet0/0/0/0
network point-to-point
設定と状態確認
設定確認
SRGBはglobal-block <start-sid> <end-sid>コマンドで変更可能です。
segment-routing
global-block 20000 27999
SRGBの確認
OSPFが認識しているSRGBはshow ospfコマンドで確認できます。
RP/0/RP0/CPU0:R2#show ospf
Routing Process "ospf 1" with ID 2.2.2.2
Role: Primary Active
NSR (Non-stop routing) is Enabled
Supports only single TOS(TOS0) routes
Supports opaque LSA
Router is not originating router-LSAs with maximum metric
Initial SPF schedule delay 50 msecs
Minimum hold time between two consecutive SPFs 200 msecs
Maximum wait time between two consecutive SPFs 5000 msecs
Initial LSA throttle delay 50 msecs
Minimum hold time for LSA throttle 200 msecs
Maximum wait time for LSA throttle 5000 msecs
Minimum LSA interval 200 msecs. Minimum LSA arrival 100 msecs
LSA refresh interval 1800 seconds
Flood pacing interval 33 msecs. Retransmission pacing interval 66 msecs
Adjacency stagger enabled; initial (per area): 2, maximum: 64
Number of neighbors forming: 0, 2 full
Maximum number of configured interfaces 1024
Number of external LSA 0. Checksum Sum 00000000
Number of opaque AS LSA 0. Checksum Sum 00000000
Number of DCbitless external and opaque AS LSA 0
Number of DoNotAge external and opaque AS LSA 0
Number of areas in this router is 1. 1 normal 0 stub 0 nssa
External flood list length 0
SNMP trap is enabled
LSD connected, registered, bound, revision 1
Segment Routing Global Block configured (20000-27999), allocated
Segment Routing Local Block (15000-15999), allocated
.
<一部省略>
RI Opaque LSA内のSRGBも変化していることが確認できます。
RRP/0/RP0/CPU0:R2#show ospf database opaque-area 4.0.0.0 adv-router 2.2.2.2
OSPF Router with ID (2.2.2.2) (Process ID 1)
Type-10 Opaque Link Area Link States (Area 0)
LS age: 1054
Options: (No TOS-capability, DC)
LS Type: Opaque Area Link
Link State ID: 4.0.0.0
Opaque Type: 4
Opaque ID: 0
Advertising Router: 2.2.2.2
LS Seq Number: 80000002
Checksum: 0xd047
Length: 84
Router Information TLV: Length: 4
Capabilities:
Graceful Restart Helper Capable
Stub Router Capable
All capability bits: 0x60000000
Segment Routing Algorithm TLV: Length: 2
Algorithm: 0
Algorithm: 1
Segment Routing Range TLV: Length: 12
Range Size: 8000
SID sub-TLV: Length 3
Label: 20000
Node MSD TLV: Length: 2
Type: 1, Value 10
Segment Routing Local Block TLV: Length: 12
Range Size: 1000
SID sub-TLV: Length 3
Label: 15000
Dynamic Hostname TLV: Length: 2
Hostname: R2
LFIBとFIBの確認
R1のLFIBを見ると、4.4.4.4/32のOutgoing Labelが20401ではなく、20401のIndexである4401にR2のSRGBの先頭のSIDである20000を加算した24401であることが確認できます。
また、R2のLFIBを見ると、4.4.4.4/32のOutgoing Labelが20401ではなく、20401のIndexである4401にR3のSRGBの先頭のSIDである30000を加算した34401であることが確認できます。
RP/0/RP0/CPU0:R1#show mpls forwarding
Local Outgoing Prefix Outgoing Next Hop Bytes
Label Label or ID Interface Switched
------ ----------- ------------------ ------------ --------------- ------------
20401 24401 SR Pfx (idx 4401) Gi0/0/0/0 10.1.1.2 0
24000 Pop SR Adj (idx 0) Gi0/0/0/0 10.1.1.2 0
RP/0/RP0/CPU0:R2#show mpls forwarding
Local Outgoing Prefix Outgoing Next Hop Bytes
Label Label or ID Interface Switched
------ ----------- ------------------ ------------ --------------- ------------
24401 34401 SR Pfx (idx 4401) Gi0/0/0/1 10.2.2.3 756
28000 Pop SR Adj (idx 0) Gi0/0/0/0 10.1.1.1 0
28001 Pop SR Adj (idx 0) Gi0/0/0/1 10.2.2.3 0
RP/0/RP0/CPU0:R3#show mpls forwarding
Local Outgoing Prefix Outgoing Next Hop Bytes
Label Label or ID Interface Switched
------ ----------- ------------------ ------------ --------------- ------------
24000 Pop SR Adj (idx 0) Gi0/0/0/0 10.2.2.2 0
24001 Pop SR Adj (idx 0) Gi0/0/0/1 10.3.3.4 0
34401 Pop SR Pfx (idx 4401) Gi0/0/0/1 10.3.3.4 1134
R1のFIBを確認すると、R1は4.4.4.4/32宛のパケットに対して、SID 24401を付加することが確認できます。
RP/0/RP0/CPU0:R1#show cef 4.4.4.4/32
4.4.4.4/32, version 16, labeled SR, internal 0x1000001 0x81 (ptr 0xe06b4b8) [1], 0x0 (0xe22c668), 0xa28 (0xe99a1e8)
Updated Jul 5 13:10:47.283
remote adjacency to GigabitEthernet0/0/0/0
Prefix Len 32, traffic index 0, precedence n/a, priority 1
via 10.1.1.2/32, GigabitEthernet0/0/0/0, 4 dependencies, weight 0, class 0 [flags 0x0]
path-idx 0 NHID 0x0 [0xf147140 0x0]
next hop 10.1.1.2/32
remote adjacency
local label 20401 labels imposed {24401}
疎通確認
R1の1.1.1.1からR4の4.4.4.4へTracerouteを実施します。
R1はSID 24401をパケットに付加してR2に転送していることが確認できます。また、R2はSIDを24401から34401に変更してR3に転送していることが確認できます。
RP/0/RP0/CPU0:R1#traceroute 4.4.4.4 source 1.1.1.1
Type escape sequence to abort.
Tracing the route to 4.4.4.4
1 10.1.1.2 [MPLS: Label 24401 Exp 0] 24 msec 36 msec 18 msec
2 10.2.2.3 [MPLS: Label 34401 Exp 0] 8 msec 15 msec 14 msec
3 10.3.3.4 21 msec * 19 msec
コメント