Segment Routing SRMS OSPF

今回はSRとLDPが混在している環境において、OSPFを使用したSR環境からLDP環境へのLSPの接続方法を説明します。

 

概要

SRからLDPへのLSPの結合

前回の記事で、LDP環境からSR環境へのLSPの結合は、特別な設定が不要な事を説明しました。

 

一方、SR環境からLDP環境へのLSPの結合は容易にできません。IOS-XRの場合、自身のLoopback Interfaceのアドレスに対してのみPrefix SIDを割り当て可能なため、LDP環境に存在するPrefixに対してPrefix SIDを割り当てることができません。この結果、SR環境において、LDP環境に存在するPrefixへのLSPを構築できません。

 

SRではSRMS(Segment Routing Mapping Server)を使用することで、LDP環境に存在するPrefixに対してPrefix SIDを割り当てることが可能です。

そして、OSPFやIS-ISを使用して、SRMSで定義したPrefixとPrefix SIDのマッピング情報をSR環境内に広報することで、各ルータはLDP環境に存在するPrefixのPrefix SIDを認識できます。

 

この結果、SR環境からLDP環境へLSPを接続できます。

 

SRMS用のOSPFのTLV

SRMSが生成したPrefixとPrefix SIDのマッピング情報はOSPFv2 Extended Prefix Range TLVに格納されます。OSPFv2 Extended Prefix Range TLVはOSPFv2 Extended Prefix Opaque LSAに格納され広報されます。

 

OSPFv2 Extended Prefix Range TLVのSub TLVにはPrefix SID Sub-TLVが格納されます。またPrefix SID Sub-TLVでは、Prefix SIDがSRMSで定義されてことを示すために、M(Mapping Server) Flagがセットされます。

 

検証の基本設定

基本設定の内容

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

R5をSRMSとして動作させ、4.4.4.4/32にPrefix SIDとして20401を割り当て、OSPFで広報します。

 

初期設定


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
!
interface GigabitEthernet0/0/0/1
 ipv4 address 10.4.4.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 GigabitEthernet0/0/0/1
   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 forwarding disable
  !
 !
!
mpls ldp
 router-id 2.2.2.2
 interface GigabitEthernet0/0/0/1
            


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
 area 0
  interface Loopback0
  !
  interface GigabitEthernet0/0/0/0
   network point-to-point
  !
  interface GigabitEthernet0/0/0/1
   network point-to-point
  !
 !
!
mpls ldp
 router-id 3.3.3.3
 interface GigabitEthernet0/0/0/0
 !
 interface GigabitEthernet0/0/0/1
            


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
 area 0
  interface Loopback0
  !
  interface GigabitEthernet0/0/0/0
   network point-to-point
  !
 !
!
mpls ldp
 router-id 4.4.4.4
 interface GigabitEthernet0/0/0/0
            


interface Loopback0
 ipv4 address 5.5.5.5 255.255.255.255
!
interface GigabitEthernet0/0/0/0
 ipv4 address 10.4.4.5 255.255.255.0
!
router ospf 1
 router-id 5.5.5.5
 segment-routing mpls
 segment-routing prefix-sid-map advertise-local
 area 0
  interface Loopback0
  !
  interface GigabitEthernet0/0/0/0
   network point-to-point
  !
 !
!
segment-routing
 mapping-server
  prefix-sid-map
   address-family ipv4
    4.4.4.4/32 4401 range 1
            

 

設定と状態確認

SRMSの設定の確認

SRMSでのPrefixとPrefix SIDのマッピング情報は<address>/<prefix-length> <sid index> range <range>コマンドで定義します。

SRMSで定義したマッピング情報をOSPFで広報するにはsegment-routing prefix-sid-map advertise localコマンドを設定します。

R5

router ospf 1
 segment-routing prefix-sid-map advertise-local
 !
!
segment-routing
 mapping-server
  prefix-sid-map
   address-family ipv4
    4.4.4.4/32 4401 range 1
            

 

Rangeオプションについて

SRMSでPrefixとPrefix SIDのマッピング情報を定義するコマンドのrangeオプションを使用することで、同時に複数のマッピング情報を定義できます。

例えば、1.1.1.1/32 4001 range 5コマンドを設定した場合、以下のマッピング情報が定義されたことになります。

 

1.1.1.0/24 4001 range 5コマンドを設定した場合、以下のマッピング情報が定義されたことになります。

 

SRMSの状態確認

SRMSで定義したPrefixとPrefix SIDのマッピング情報はshow segment-routing mapping-server prefix-sid-map ipv4 detailコマンドで確認できます。

R5で定義したPrefixとPrefix SIDのIndexのマッピング情報が確認できます。

R5

RP/0/RP0/CPU0:R5#show segment-routing mapping-server prefix-sid-map ipv4 detail
Prefix
4.4.4.4/32
    SID Index:      4401
    Range:          1
    Last Prefix:    4.4.4.4/32
    Last SID Index: 4401
    Flags:
            

 

OSPFの状態確認

OSPFで広報しているSRMSのマッピング情報はshow ospf segment-routing prefix-sid-map active-policy detailコマンドで確認できます。

R5

RP/0/RP0/CPU0:R5#show ospf segment-routing prefix-sid-map active-policy detail

        SRMS active policy for Process ID 1

Prefix
4.4.4.4/32
    Source:         Local
    Router ID:      5.5.5.5
    Area ID:        Not set
    SID Index:      4401
    Range:          1
    Last Prefix:    4.4.4.4/32
    Last SID Index: 4401
    Flags:

Number of mapping entries: 1
            

 

R5が生成したOSPFv2 Extended Prefix Opaque LSAを見ると、SRMSで定義したマッピング情報を格納したExtended Prefix Range TLVが存在することが確認出来ます。

R5

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


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

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

  LS age: 211
  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: 5.5.5.5
  LS Seq Number: 80000001
  Checksum: 0x32dd
  Length: 48

    Extended Prefix Range TLV: Length: 24
      AF        : 0
      Prefix    : 4.4.4.4/32
      Range Size: 1
      Flags     : 0x0

      SID sub-TLV: Length: 8
        Flags     : 0x60
        MTID      : 0
        Algo      : 0
        SID Index : 4401
            

 

以下はR5が生成したOSPFv2 Extended Prefix Opaque LSAのキャプチャになります。OSPFv2 Extended Prefix Range TLVが存在し、Prefixの4.4.4.4とPrefix SIDのIndexの4401が存在することが確認できます。また、SRMSによって生成されたことを示すM Flagがセットされています。

 

LDPの状態確認

R2はLDP経由でR3からLabel 24005を学習していることが確認できます。

R3

RP/0/RP0/CPU0:R2#show mpls ldp forwarding

Codes:
  - = GR label recovering, (!) = LFA FRR pure backup path
  {} = Label stack with multi-line output for a routing path
  G = GR, S = Stale, R = Remote LFA FRR backup

Prefix          Label   Label(s)       Outgoing     Next Hop            Flags
                In      Out            Interface                        G S R
--------------- ------- -------------- ------------ ------------------- -----
1.1.1.1/32      24001   Unlabelled     Gi0/0/0/0    10.1.1.1
3.3.3.3/32      24002   ImpNull        Gi0/0/0/1    10.2.2.3
4.4.4.4/32      24004   24005          Gi0/0/0/1    10.2.2.3
5.5.5.5/32      24006   Unlabelled     Gi0/0/0/0    10.1.1.1
10.3.3.0/24     24003   ImpNull        Gi0/0/0/1    10.2.2.3
10.4.4.0/24     24005   Unlabelled     Gi0/0/0/0    10.1.1.1
            

 

 

LFIBの確認

R1のLFIBにSRMSで定義したPrefix SID 20401がインストールされていることが確認できます。
また、R2はSRMGで定義したPrefix SID 20401とLDP経由で学習したLabel 24005を基に、LFIBのエントリを生成していることが確認できます。

R1

RP/0/RP0/CPU0:R1#show mpls forwarding
Local  Outgoing    Prefix             Outgoing     Next Hop        Bytes
Label  Label       or ID              Interface                    Switched
------ ----------- ------------------ ------------ --------------- ------------
20401  20401       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
24001  Pop         SR Adj (idx 0)     Gi0/0/0/1    10.4.4.5        0
            
R2

RP/0/RP0/CPU0:R2#show mpls forwarding
Local  Outgoing    Prefix             Outgoing     Next Hop        Bytes
Label  Label       or ID              Interface                    Switched
------ ----------- ------------------ ------------ --------------- ------------
20401  24005       SR Pfx (idx 4401)  Gi0/0/0/1    10.2.2.3        0
24000  Pop         SR Adj (idx 0)     Gi0/0/0/0    10.1.1.1        0
24001  Unlabelled  1.1.1.1/32         Gi0/0/0/0    10.1.1.1        0
24002  Pop         3.3.3.3/32         Gi0/0/0/1    10.2.2.3        7487
24003  Pop         10.3.3.0/24        Gi0/0/0/1    10.2.2.3        0
24004  24005       4.4.4.4/32         Gi0/0/0/1    10.2.2.3        0
24005  Unlabelled  10.4.4.0/24        Gi0/0/0/0    10.1.1.1        0
24006  Unlabelled  5.5.5.5/32         Gi0/0/0/0    10.1.1.1        0
            

 

疎通確認

R1の1.1.1.1からR4の4.4.4.4へTracerouteを実施します。

 

R1はパケットにLabel 20401を付加して、R2に転送していることが確認できます。また、R2は受信したパケットのLabelを20401から24005に変更して、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 20401 Exp 0] 24 msec  36 msec  18 msec
 2  10.2.2.3 [MPLS: Label 24005 Exp 0] 8 msec  15 msec  14 msec
 3  10.3.3.4 21 msec  *  19 msec
            

コメント

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