Segment Routing BGP Link State – OSPF

今回はBGP-LSを使用して、OSPFのLSDBの情報を広報する方法を説明します。

 

概要

BGP-LSによるOSPFのLSDBの広報

SR-TE DBに投入されたOSPFのLSDBの情報をBGPで広報することが可能です。

LSDBの情報をやり取りするBGPの機能をBGP-LS(BGP Link State)と呼び、マルチエリア環境でSR-TEを動作させる際に必要になります。

 

BGP-LSのフォーマット

BGP-LSのために、以下のNLRIが新たに定義されました。

  • Node NLRI
  • Link NLRI
  • IPv4 Topology Prefix NLRI

 

LSDBの情報はMP_REACH_NLRIパスアトリビュートとBGP-LSパスアトリビュートに格納されます。

MP_REACH_NLRIパスアトリビュートのフォーマット

Node NLRI用のMP_REACH_NLRIパスアトリビュート

Node NLRI用のMP_REACH_NLRIパスアトリビュートにはルータのRouter IDやArea IDが格納されます。

 

Link NLRI用のMP_REACH_NLRIパスアトリビュート

Link NLRI用のMP_REACH_NLRIパスアトリビュートにはネイバーのルータIDが格納されます。

 

IPv4 Topology Prefix NLRI用のMP_REACH_NLRIパスアトリビュート

IPv4 Topology Prefix NLRI用のMP_REACH_NLRIパスアトリビュートにはPrefixが格納されます。

 

MP_REACH_NLRIパスアトリビュートで使用されるTLV/Sub-TLVのフォーマット

Local Node Descriptors TLV

ルータ自身のRouter IDやArea ID等が格納されます。

 

Remote Node Descriptors TLV

ネイバーのRouter IDやArea ID等が格納されます。

 

IPv4 interface address TLV

ルータ自身のインタフェースのアドレスが格納されます。

 

IPv4 neighbor address TLV

ネイバーのインタフェースのアドレスが格納されます。

 

OSPF Route Type TLV

ルート情報の生成元のOSPFのLSAのタイプが格納されます。

 

Autonomous System Sub-TLV

ルータ自身が所属するAS番号が格納されます。

 

BGP-LS Identifier Sub-TLV

BGP-LSの識別子が格納されます。IOS-XRの場合は常に0が格納されます。

 

Area ID Sub-TLV

ルータ自身が所属するAreaのIDが格納されます。

 

Router ID Sub-TLV

ルータ自身のRouter IDが格納されます。

 

BGP-LSパスアトリビュート

 

IGP Metric TLV

リンクのメトリックが格納されます。

 

Prefix Metric TLV

Prefixのメトリックが格納されます。

 

IPv4 Router-ID of Local Node TLV

ルータ自身のRouter IDが格納されます。

 

IPv4 Router-ID of Remote Node TLV

ネイバーのRouter IDが格納されます。

 

Administrative Group TLV

32ビットのLink Colorが格納されます。

 

Maximum Link Bandwidth TLV

リンクの最大帯域幅が格納されます。

 

Maximum Reservable Link Bandwidth TLV

リンクの予約済みの帯域幅が格納されます。

 

Unreservable Link Bandwidth TLV

リンクの未使用な帯域幅が格納されます。

 

TE Default Metric TLV

TE Metricが格納されます。

 

Extended Administrative Group TLV

128ビットのLink Colorが格納されます。

 

SR Capabilities TLV TLV

SRGBの先頭のSIDとサイズが格納されます。

 

SR  Algorithm TLV

サポートしているSRのアルゴリズムが格納されます。

 

Adjacency SID TLV

ネイバーのAdjacency SIDが格納されます。

 

Prefix SID TLV

Prefix SIDのIndexが格納されます。

 

Prefix Attribute Flags TLV

Prefix SIDの追加の情報が格納されます。

 

検証内容と設定

基本設定の内容

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

R1でLoopback Interfaceの1.1.1.1/32にPrefix SIDとして20101を割り当てます。
R2でLoopback Interfaceの2.2.2.2/32にPrefix SIDとして20201を割り当てます。

R1とR3をAS 100に所属させ、IBGPネイバーを構成します。
R1はR3に対して、IBGP経由でOSPFのLSDBの情報を広報します。

 

初期設定


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.2.2.1 255.255.255.0
!
router ospf 1
 distribute link-state instance-id 1
 router-id 1.1.1.1
 area 0
  mpls traffic-eng
  interface Loopback0
   prefix-sid absolute 20101
  !
  interface GigabitEthernet0/0/0/0
   network point-to-point
  !
 !
!
router bgp 100
 bgp router-id 1.1.1.1
 address-family link-state link-state
 !
 neighbor 10.2.2.3
  remote-as 100
  address-family link-state link-state
            


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
!
router ospf 1
 router-id 2.2.2.2
 segment-routing mpls
 area 0
  mpls traffic-eng
  interface Loopback0
   prefix-sid absolute 20201
  !
  interface GigabitEthernet0/0/0/0
   network point-to-point
  !
 !
!
segment-routing
 traffic-eng
            


interface GigabitEthernet0/0/0/0
 ipv4 address 10.2.2.3 255.255.255.0
!
router bgp 100
 bgp router-id 3.3.3.3
 address-family link-state link-state
 !
 neighbor 10.2.2.1
  remote-as 100
  address-family link-state link-state
            

 

BGPの設定

BGP-LSを有効にするには、プロセス単位、ネイバー単位でaddress-family link-state link-stateコマンドを設定します。

R1

router bgp 100
 bgp router-id 1.1.1.1
 address-family link-state link-state
 !
 neighbor 10.2.2.3
  remote-as 100
  address-family link-state link-state
            

 

OSPFの設定

OSPFではdistribute link-state instance-id <id>コマンドを設定し、LSDBの情報をSR-TE DBに投入します。

R1

router ospf 1
 distribute link-state instance-id 1
            

 

BGPネイバーの状態確認

R1のBGPネイバーの状態を見ると、BGP-LSが有効なことが確認できます。

R1

RP/0/RP0/CPU0:R1#show bgp neighbor

BGP neighbor is 10.2.2.3
 Remote AS 100, local AS 100, internal link
 Remote router ID 3.3.3.3
  BGP state = Established, up for 02:33:02
  NSR State: None
  Last read 00:00:01, Last read before reset 00:00:00
  Hold time is 180, keepalive interval is 60 seconds
  Configured hold time: 180, keepalive: 60, min acceptable hold time: 3
  Last write 00:00:44, attempted 19, written 19
  Second last write 00:01:44, attempted 19, written 19
  Last write before reset 00:00:00, attempted 0, written 0
  Second last write before reset 00:00:00, attempted 0, written 0
  Last write pulse rcvd  Jun 23 21:27:47.034 last full not set pulse count 319
  Last write pulse rcvd before reset 00:00:00
  Socket not armed for io, armed for read, armed for write
  Last write thread event before reset 00:00:00, second last 00:00:00
  Last KA expiry before reset 00:00:00, second last 00:00:00
  Last KA error before reset 00:00:00, KA not sent 00:00:00
  Last KA start before reset 00:00:00, second last 00:00:00
  Precedence: internet
  Non-stop routing is enabled
  Multi-protocol capability received
  Neighbor capabilities:
    Route refresh: advertised (old + new) and received (old + new)
    4-byte AS: advertised and received
    Address family Link-state Link-state: advertised and received
    .
    <一部省略>
            

 

以下はR1がR3に送信したBGPのOPENメッセージのキャプチャになります。 BGP-LS用のAFIが16388、SAFIが71であることが確認できます。

 

BGP-LSのルート情報の確認

BGP-LSのルート情報はshow bgp link-state link-stateコマンド

R1

RP/0/RP0/CPU0:R3#show bgp link-state link-state
BGP router identifier 3.3.3.3, local AS number 100
BGP generic scan interval 60 secs
Non-stop routing is enabled
BGP table state: Active
Table ID: 0x0   RD version: 28
BGP main routing table version 28
BGP NSR Initial initsync version 7 (Reached)
BGP NSR/ISSU Sync-Group versions 0/0
BGP scan interval 60 secs

Status codes: s suppressed, d damped, h history, * valid, > best
              i - internal, r RIB-failure, S stale, N Nexthop-discard
Origin codes: i - IGP, e - EGP, ? - incomplete
Prefix codes: E link, V node, T IP reacheable route, S SRv6 SID, u/U unknown
              I Identifier, N local node, R remote node, L link, P prefix, S SID
              L1/L2 ISIS level-1/level-2, O OSPF, D direct, S static/peer-node
              a area-ID, l link-ID, t topology-ID, s ISO-ID,
              c confed-ID/ASN, b bgp-identifier, r router-ID, s SID
              i if-address, n nbr-address, o OSPF Route-type, p IP-prefix
              d designated router address
   Network            Next Hop            Metric LocPrf Weight Path
*>i[V][O][I0x1][N[c100][b0.0.0.0][a0.0.0.0][r1.1.1.1]]/376
                      10.2.2.1                      100      0 i
*>i[V][O][I0x1][N[c100][b0.0.0.0][a0.0.0.0][r2.2.2.2]]/376
                      10.2.2.1                      100      0 i
*>i[E][O][I0x1][N[c100][b0.0.0.0][a0.0.0.0][r1.1.1.1]][R[c100][b0.0.0.0][a0.0.0.0][r2.2.2.2]][L[i10.1.1.1][n10.1.1.2]]/792
                      10.2.2.1                      100      0 i
*>i[E][O][I0x1][N[c100][b0.0.0.0][a0.0.0.0][r2.2.2.2]][R[c100][b0.0.0.0][a0.0.0.0][r1.1.1.1]][L[i10.1.1.2][n10.1.1.1]]/792
                      10.2.2.1                      100      0 i
*>i[T][O][I0x1][N[c100][b0.0.0.0][a0.0.0.0][r1.1.1.1]][P[o0x01][p10.1.1.0/24]]/480
                      10.2.2.1                      100      0 i
*>i[T][O][I0x1][N[c100][b0.0.0.0][a0.0.0.0][r1.1.1.1]][P[o0x01][p1.1.1.1/32]]/488
                      10.2.2.1                      100      0 i
*>i[T][O][I0x1][N[c100][b0.0.0.0][a0.0.0.0][r2.2.2.2]][P[o0x01][p10.1.1.0/24]]/480
                      10.2.2.1                      100      0 i
*>i[T][O][I0x1][N[c100][b0.0.0.0][a0.0.0.0][r2.2.2.2]][P[o0x01][p2.2.2.2/32]]/488
                      10.2.2.1                      100      0 i

Processed 8 prefixes, 8 paths
            

 

Node NLRI

以下はR1のNode NLRIになります。Router IDやArea ID、SRGBの情報が格納されていることが確認できます。

R1

RP/0/RP0/CPU0:R3#show bgp link-state link-state [V][O][I0x1][N[c100][b0.0.0.0][a0.0.0.0][r1.1.1.1]]/376 detail
BGP routing table entry for [V][O][I0x1][N[c100][b0.0.0.0][a0.0.0.0][r1.1.1.1]]/376
NLRI Type: Node
Protocol: OSPF
Identifier: 0x1
Local Node Descriptor:
        AS Number: 100
        BGP Identifier: 0.0.0.0
        Area ID: 0.0.0.0
        Router ID IPv4: 1.1.1.1

Versions:
  Process           bRIB/RIB  SendTblVer
  Speaker                 22          22
    Flags: 0x00000001+0x00000000;
Last Modified: Jul 19 14:56:15.520 for 00:23:43
Paths: (1 available, best #1)
  Not advertised to any peer
  Path #1: Received by speaker 0
  Flags: 0x4000000001060005, import: 0x20
  Not advertised to any peer
  Local
    10.2.2.1 from 10.2.2.1 (1.1.1.1), if-handle 0x00000000
      Origin IGP, localpref 100, valid, internal, best, group-best
      Received Path ID 0, Local Path ID 1, version 22
      Link-state: MSD: Type 1 Value 10, Node-name: R1, Local TE Router-ID:
                  1.1.1.1 SRGB: 16000:8000 , SR-ALG: 0 SR-ALG: 1 , SRLB: 15000:1000
            

 

以下はR1のNode NLRIのMP_REACH_NLRIパスアトリビュートのキャプチャになります。Router IDとArea IDが格納されていることが確認できます。

 

以下はR1のNode NLRIのBGP-LSパスアトリビュートのキャプチャになります。SRGBの先頭のSIDとSRGBのサイズが格納されていることが確認できます。

 

Link NLRI

以下はR1のLink NLRIになります。Link NLRIにはネイバーのRouter ID、Link ColorなどのTE用の情報、Adjacency SID等が格納されていることが確認できます。

R1

RP/0/RP0/CPU0:R3#show bgp link-state link-state [E][O][I0x1][N[c100][b0.0.0.0][a0.0.0.0][r1.1.1.1]][R[c100][b0.0.0.0][a0.0.0.0][r2.2.2.2]][L[i10.1.1.1][n10.1.1.2]]/792 detail
BGP routing table entry for [E][O][I0x1][N[c100][b0.0.0.0][a0.0.0.0][r1.1.1.1]][R[c100][b0.0.0.0][a0.0.0.0][r2.2.2.2]][L[i10.1.1.1][n10.1.1.2]]/792
NLRI Type: Link
Protocol: OSPF
Identifier: 0x1
Local Node Descriptor:
        AS Number: 100
        BGP Identifier: 0.0.0.0
        Area ID: 0.0.0.0
        Router ID IPv4: 1.1.1.1
Remote Node Descriptor:
        AS Number: 100
        BGP Identifier: 0.0.0.0
        Area ID: 0.0.0.0
        Router ID IPv4: 2.2.2.2
Link Descriptor:
        Local Interface Address IPv4: 10.1.1.1
        Neighbor Interface Address IPv4: 10.1.1.2

Versions:
  Process           bRIB/RIB  SendTblVer
  Speaker                 23          23
    Flags: 0x00000001+0x00000000;
Last Modified: Jul 19 14:56:15.520 for 00:24:40
Paths: (1 available, best #1)
  Not advertised to any peer
  Path #1: Received by speaker 0
  Flags: 0x4000000001060005, import: 0x20
  Not advertised to any peer
  Local
    10.2.2.1 from 10.2.2.1 (1.1.1.1), if-handle 0x00000000
      Origin IGP, localpref 100, valid, internal, best, group-best
      Received Path ID 0, Local Path ID 1, version 23
      Link-state: Link ID: Local:7 Remote:7, MSD: Type 1 Value 10
                   Local TE Router-ID: 1.1.1.1, Remote TE Router-ID: 2.2.2.2
                   admin-group: 0x00000000, max-link-bw (kbits/sec): 1000000
                   max-reserv-link-bw (kbits/sec): 0, max-unreserv-link-bw (kbits/sec):
                   0 0 0 0 0 0 0 0 TE-default-metric: 1, metric: 1, ADJ-SID: 24000(60)
                   ext-admin-group: 0x00000000.0x00000000.0x00000000.0x00000000
                  .0x00000000.0x00000000.0x00000000.0x00000000
            

 

以下はR1のLink NLRIのMP_REACH_NLRIパスアトリビュートのキャプチャになります。ネイバーであるR2のRouter IDが格納されていることが確認できます。

 

以下はR1のLink NLRIのBGP-LSパスアトリビュートのキャプチャになります。Link ColorやAdjacency SID等が格納されていることが確認できます。

 

IPv4 Topology Prefix NLRI

以下はR1の1.1.1.1/32を格納したIPv4 Topology Prefix NLRIになります。PrefixとPrefix SIDのIndexが格納されていることが確認できます。

R1

RP/0/RP0/CPU0:R3#show bgp link-state link-state [T][O][I0x1][N[c100][b0.0.0.0][a0.0.0.0][r1.1.1.1]][P[o0x01][p1.1.1.1/32]]/488 detail
BGP routing table entry for [T][O][I0x1][N[c100][b0.0.0.0][a0.0.0.0][r1.1.1.1]][P[o0x01][p1.1.1.1/32]]/488
NLRI Type: Prefix
Protocol: OSPF
Identifier: 0x1
Local Node Descriptor:
        AS Number: 100
        BGP Identifier: 0.0.0.0
        Area ID: 0.0.0.0
        Router ID IPv4: 1.1.1.1
Prefix Descriptor:
        OSPF Route Type: 0x01
        Prefix: 1.1.1.1/32

Versions:
  Process           bRIB/RIB  SendTblVer
  Speaker                 24          24
    Flags: 0x00000001+0x00000000;
Last Modified: Jul 19 14:56:15.520 for 00:25:39
Paths: (1 available, best #1)
  Not advertised to any peer
  Path #1: Received by speaker 0
  Flags: 0x4000000001060005, import: 0x20
  Not advertised to any peer
  Local
    10.2.2.1 from 10.2.2.1 (1.1.1.1), if-handle 0x00000000
      Origin IGP, localpref 100, valid, internal, best, group-best
      Received Path ID 0, Local Path ID 1, version 24
      Link-state: Metric: 1, PFX-SID: 4101(0/0) , Extended IGP flags: 0x40
            

 

以下はR1の1.1.1.1/32を格納したIPv4 Topology Prefix NLRIのMP_REACH_NLRIパスアトリビュートのキャプチャになります。Prefixが格納されていることが確認できます。

 

以下はR1の1.1.1.1/32を格納したIPv4 Topology Prefix NLRIのBGP-LSパスアトリビュートのキャプチャになります。Prefix SIDのIndexが格納されていることが確認できます。

コメント

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