Segment Routing SRGB

今回はルータ毎に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>コマンドで変更可能です。

R2

segment-routing
 global-block 20000 27999
            

 

SRGBの確認

OSPFが認識しているSRGBはshow ospfコマンドで確認できます。

R3

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も変化していることが確認できます。

R3

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であることが確認できます。

 

R1

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
            
R2

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
            
R3

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を付加することが確認できます。

R1

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に転送していることが確認できます。

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 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
            

コメント

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