Segment Routing OSPF Explicit Null

今回はOSPFを使用したSegment RoutingでのExplicit Nullの動作を見ていきます。

 

概要

OSPFのExplicit Null

従来のMPLSと同様で、SRでもPHPが動作し、End-pointの1つ手前のルータでパケットからThimヘッダが削除されます。

例えば、MPLS網内でThimヘッダのEXP(Experimental)ビットを変更した場合でも、End-pointに届いたパケットにはThimヘッダは存在しません。この結果、End-pointでIPヘッダのToSフィールドにThimヘッダのEXPビットの値をコピーすることができません。

 

 

End-pointでIPヘッダのToSフィールドにThimヘッダのExpビットをコピーできるようにようにするために、Explicit Nullと呼ばれる手法が存在します。
Explicit Nullが有効な場合、End-pointの1つ手前のルータはパケットからThimヘッダを削除しません。その代わりに、ThimヘッダのLabelを0に変更して、End-pointに転送します。
この結果、End-pointはIPヘッダのToSフィールドにThimヘッダのExpビットをコピーできます。

 

Explicit Nullが有効な場合、OSPFでは、OSPFv2 Extended Prefix Opaque LSA内のPrefix SID Sub-TLVのE(Explicit Null) FlagとNP(No-PHP) Flagがセットされます。
これにより、End-pointの1つ手前のルータは、パケットからThimヘッダを削除せず、Labelを0に変更して、パケットを転送します。

 

検証の基本設定

基本設定の内容

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

R3でLoopback Interfaceの3.3.3.3/32にPrefix SIDとして20301を割り当てます。また、Explicit Nullを有効にします。

 

初期設定


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
            


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
!
router ospf 1
 router-id 3.3.3.3
 segment-routing mpls
 area 0
  interface Loopback0
   prefix-sid absolute 20301 explicit-null
  !
  interface GigabitEthernet0/0/0/0
   network point-to-point
            

 

設定と状態の確認

設定の確認

Explicit Nullを有効にするには、explicit-nullオプションを指定します。これによりPrefix SID Sub-TLVのE FlagとNP Flagがセットされます。

R3

router ospf 1
 area 0
  interface Loopback0
   prefix-sid absolute 20301 explicit-null
            

 

LSDBの確認

R3が生成したOSPFv2 Extended Prefix Opaque LSA内のSID Sub-TLVのE FlagとNP Flagがセットされていることが確認できます。

R3

RP/0/RP0/CPU0:R3#show ospf database opaque-area 7.0.0.1 adv-router 3.3.3.3


            OSPF Router with ID (3.3.3.3) (Process ID 1)

                Type-10 Opaque Link Area Link States (Area 0)

  LS age: 309
  Options: (No TOS-capability, DC)
  LS Type: Opaque Area Link
  Link State ID: 7.0.0.1
  Opaque Type: 7
  Opaque ID: 1
  Advertising Router: 3.3.3.3
  LS Seq Number: 80000004
  Checksum: 0x5cf9
  Length: 44

    Extended Prefix TLV: Length: 20
      Route-type: 1
      AF        : 0
      Flags     : 0x40
      Prefix    : 3.3.3.3/32

      SID sub-TLV: Length: 8
        Flags     : 0x50
        MTID      : 0
        Algo      : 0
        SID Index : 4301
            

 

以下はR3が生成したOSPFv2 Extended Prefix Opaque LSAのキャプチャになります。E FlagとNP Flagがセットされていることが確認できます。

 

LFIBの確認

R2のLFIBを見ると、3.3.3.3/32のOutgoing LabelがExplicit Nullであることが確認できます。

R1

RP/0/RP0/CPU0:R1#show mpls forwarding
Local  Outgoing    Prefix             Outgoing     Next Hop        Bytes
Label  Label       or ID              Interface                    Switched
------ ----------- ------------------ ------------ --------------- ------------
20301  20301       SR Pfx (idx 4301)  Gi0/0/0/0    10.1.1.2        500
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
------ ----------- ------------------ ------------ --------------- ------------
20301  Exp-Null-v4 SR Pfx (idx 4301)  Gi0/0/0/1    10.2.2.3        500
24000  Pop         SR Adj (idx 0)     Gi0/0/0/0    10.1.1.1        0
24001  Pop         SR Adj (idx 0)     Gi0/0/0/1    10.2.2.3        0
            

 

疎通確認

R1の1.1.1.1からR3の3.3.3.3へPingを実施します。(Tracerouteの結果からはExplicit Null用のLabelが確認できないため)

 

以下はR2-R3間でキャプチャしたR1の1.1.1.1からR3の3.3.3.3へのICMP Echoになります。パケットにThimヘッダが付加されており、かつ、Labelが0であることが確認できます。

コメント

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