今回はBGP-LSを使用して、OSPFのLSDBの情報を広報する方法を説明します。
- 概要
- BGP-LSによるOSPFのLSDBの広報
- BGP-LSのフォーマット
- MP_REACH_NLRIパスアトリビュートのフォーマット
- MP_REACH_NLRIパスアトリビュートで使用されるTLV/Sub-TLVのフォーマット
- BGP-LSパスアトリビュート
- IGP Metric TLV
- Prefix Metric TLV
- IPv4 Router-ID of Local Node TLV
- IPv4 Router-ID of Remote Node TLV
- Administrative Group TLV
- Maximum Link Bandwidth TLV
- Maximum Reservable Link Bandwidth TLV
- Unreservable Link Bandwidth TLV
- TE Default Metric TLV
- Extended Administrative Group TLV
- SR Capabilities TLV TLV
- SR Algorithm TLV
- Adjacency SID TLV
- Prefix SID TLV
- Prefix Attribute Flags TLV
- 検証内容と設定
概要
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コマンドを設定します。
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に投入します。
router ospf 1
distribute link-state instance-id 1
BGPネイバーの状態確認
R1のBGPネイバーの状態を見ると、BGP-LSが有効なことが確認できます。
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コマンド
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の情報が格納されていることが確認できます。
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等が格納されていることが確認できます。
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が格納されていることが確認できます。
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が格納されていることが確認できます。
コメント