Segment Routing OSPF Attach Flag

今回はOSPFのマルチエリア構成で使用されるAttach Flagについて説明します。

 

概要

OSPFのAttach Flag

OSPFの特性上、マルチエリア構成の場合、特定のエリアのルータは別のエリアに存在するPrefixは認識できますが、ネットワークの構造は認識できません。(Router LSA、Network LSA、OSPFv2 Extended Link Opaque LSAは他のエリアには投入されないため)

下図のように、R3が直接接続されているエリア1の10.4.4.0/24にPrefix SIDを割り当てたとします。ABRであるR3はエリア1のPrefix SIDの情報をエリア0に投入し、R2とR1に広報します。この結果、R1とR2はPrefix SIDとして20301を認識できます。

しかし、R1とR2はエリア1のRouter LSAやNetwork LSA等の情報を保持していないため、10.4.4.0/24がR3の奥に存在することは認識できますが、10.4.4.0/24がR3と直接接続しているかは分かりません。

この結果、R2は10.4.4.0/24のPrefix SIDである20301宛のパケットを受信した際、PHPを実施せずに、SIDを付加した状態でパケットをR3に転送するため、無駄が発生してしまいます。

 

上記のように、本来はPHPを実施すべき箇所でPHPが実施されない問題を回避するために、OSPFv2 Extended Prefix Opaque LSAにはA(Attach) Flagが存在します。

 

ABRは特定のエリアのOSPFv2 Extended Prefix Opaque LSAを他のエリアに投入する際、そのPrefixがABRに直接接続されている場合、A Flagをセットします。

 

A FlagがセットされたOSPFv2 Extended Prefix Opaque LSAを学習した他のエリアのルータは、そのPrefixがABRに直接接続されていると判断し、ABRにパケットを転送する際、PHPを実施し、パケットからSIDを削除します。

 

検証の基本設定

基本設定の内容

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

R3でLoopback Interfaceの3.3.3.3/32にPrefix SIDとして20301を割り当てます。
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
            


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 GigabitEthernet0/0/0/0
   network point-to-point
  !
 !
 area 1
  interface Loopback0
   prefix-sid absolute 20301
  !
  interface GigabitEthernet0/0/0/1
   network point-to-point
            


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 1
  interface Loopback0
   prefix-sid absolute 20401
  !
  interface GigabitEthernet0/0/0/0
   network point-to-point
            

 

状態確認

LSDBの確認

R3は3.3.3.3/32と4.4.4.4/32のOSPFv2 Exteded Prefix Opaque LSAをエリア0に投入する際、直接接続されている3.3.3.3/32のA Flagのみセットします。

 

エリア0に投入された3.3.3.3/32のOSPFv2 Extended Prefix Opaque LSAのA Flagがセットされていることが確認できます。

R1

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


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

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

  LS age: 443
  Options: (No TOS-capability, DC)
  LS Type: Opaque Area Link
  Link State ID: 7.0.0.2
  Opaque Type: 7
  Opaque ID: 2
  Advertising Router: 3.3.3.3
  LS Seq Number: 80000001
  Checksum: 0x75b0
  Length: 44

    Extended Prefix TLV: Length: 20
      Route-type: 3
      AF        : 0
      Flags     : 0xc0
      Prefix    : 3.3.3.3/32

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

 

一方、エリア0に投入された4.4.4.4/32のOSPFv2 Extended Prefix Opaque LSAのA Flagはセットされていないことが確認できます。

R3

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


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

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

  LS age: 384
  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: 80000001
  Checksum: 0xa25c
  Length: 44

    Extended Prefix TLV: Length: 20
      Route-type: 3
      AF        : 0
      Flags     : 0x40
      Prefix    : 4.4.4.4/32

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

 

以下はエリア0に投入された3.3.3.3/32のOSPFv2 Extended Prefix Opaque LSAのキャプチャになります。A Flagがセットされていることが確認できます。

 

LFIBの確認

R2のLFIBを見ると、R3に直接接続されている3.3.3.3/32のOutgoing LabelがPopなので、PHPが有効なことが確認できます。一方、R3に直接接続されていない4.4.4.4/32のOutgoing Labelは20401なので、PHPが無効なことが確認できます。

 

R2

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

 

疎通確認

R1の1.1.1.1からR3の3.3.3.3へTracerouteを実施します。

 

R2はSIDを削除してから、R3にパケットを転送していることが確認できます。

R1

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: Label 20301 Exp 0] 84 msec  99 msec  93 msec
 2  10.2.2.3 100 msec  *  96 msec
            

 

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

 

R2はSIDを削除せずに、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 20401 Exp 0] 8 msec  15 msec  14 msec
 3  10.3.3.4 21 msec  *  19 msec
            

コメント

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