Mikan Network Lab.

ネットワーク技術やCisco製品に関して、勉強・検証した内容を発信しています。

Mikan Network Lab.

IOS-XRにおけるBGPネクストホップセルフの設定方法

Cisco IOS-XRにおけるBGPネクストホップセルフの設定方法を紹介します。

目次

前提条件

本記事は以下に基づいて作成しています。
・Cisco VIRL 1.6.65
・Cisco IOS XR Software, Version 6.1.3

1. コマンド一覧

本記事で重要なコマンドを以下に示します。

(config)# router bgp <as-number>
(config-bgp)# neighbor <ip-address>
(config-bgp-nbr)# address-family ipv4 unicast
(config-bgp-nbr-af)# next-hop-self

2. 仕様説明

2.1. 概要

BGPでは経路情報を広報するとき、EBGPネイバーとIBGPネイバーとでネクストホップの変更動作が異なります。EBGPネイバーに広報するときは自身のIPアドレスをネクストホップにして送信しますが、IBGPネイバーに広報するときはデフォルトでネクストホップを変更せずに送信します。ネクストホップが変更されない場合、ネクストホップへの到達性の問題が発生する可能性があります。この問題はnext-hop-selfコマンドを使用することで解決できます。

2.2. next-hop-self

経路情報をネイバーに広報するとき、ネクストホップを自身のIPアドレスに変更するには、アドレスファミリコンフィギュレーションモードでnext-hop-selfコマンドを使用します。

(config-bgp-nbr-af)# next-hop-self

【Sample】
経路情報をネイバー2.2.2.2に広報するとき、ネクストホップを自身のIPアドレスに変更する設定例を示します。

(config)# router bgp 65001
(config-bgp)# neighbor 2.2.2.2
(config-bgp-nbr)# address-family ipv4 unicast
(config-bgp-nbr-af)# next-hop-self

3. 設定例

3.1. 要件

  • XR1のBGPプロセスをAS番号65001で起動してください。
  • XR2とXR3のBGPプロセスをAS番号65002で起動してください。
  • XR1とXR3でLoopback0のネットワークを広報し、互いに到達性があることを確認してください。なお、XR2でnext-hop-selfコマンドを使用してください。

構成図

3.2. コンフィグ

本タスクの要件を満たす設定例を以下に示します。

 XR1 

hostname XR1
interface Loopback0
 ipv4 address 1.1.1.1/32
!
interface GigabitEthernet0/0/0/0
 ipv4 address 192.168.12.1/24
!
route-policy RPL
  pass
end-policy
!
router bgp 65001
 address-family ipv4 unicast
  network 1.1.1.1/32
 !
 neighbor 192.168.12.2
  remote-as 65002
  address-family ipv4 unicast
   route-policy RPL in
   route-policy RPL out
  !
 !
!
end

 XR2 

hostname XR2
interface Loopback0
 ipv4 address 2.2.2.2/32
!
interface GigabitEthernet0/0/0/0
 ipv4 address 192.168.12.2/24
!
interface GigabitEthernet0/0/0/1
 ipv4 address 192.168.23.2/24
!
route-policy RPL
  pass
end-policy
!
router bgp 65002
 address-family ipv4 unicast
 !
 neighbor 192.168.12.1
  remote-as 65001
  address-family ipv4 unicast
   route-policy RPL in
   route-policy RPL out
  !
 !
 neighbor 192.168.23.3
  remote-as 65002
  address-family ipv4 unicast
   next-hop-self
  !
 !
!
end

 XR3 

hostname XR3
interface Loopback0
 ipv4 address 3.3.3.3/32
!
interface GigabitEthernet0/0/0/0
 ipv4 address 192.168.23.3/24
!
router bgp 65002
 address-family ipv4 unicast
  network 3.3.3.3/32
 !
 neighbor 192.168.23.2
  remote-as 65002
  address-family ipv4 unicast
  !
 !
!
end

3.3. 動作確認

3.3.1. show bgp ipv4 unicast

  • XR1でネットワーク3.3.3.3/32を受信し、ベストパスとして選択されていることを確認します。
  • XR3でネットワーク1.1.1.1/32を受信し、ベストパスとして選択されていることを確認します。

RP/0/0/CPU0:XR1#show bgp ipv4 unicast
Sun Mar 15 02:49:59.016 UTC
BGP router identifier 1.1.1.1, local AS number 65001
BGP generic scan interval 60 secs
Non-stop routing is enabled
BGP table state: Active
Table ID: 0xe0000000   RD version: 6
BGP main routing table version 6
BGP NSR Initial initsync version 2 (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
   Network            Next Hop            Metric LocPrf Weight Path
*> 1.1.1.1/32         0.0.0.0                  0         32768 i
*> 3.3.3.3/32         192.168.12.2                           0 65002 i

Processed 2 prefixes, 2 paths
RP/0/0/CPU0:XR3#show bgp ipv4 unicast
Sun Mar 15 02:50:06.006 UTC
BGP router identifier 3.3.3.3, local AS number 65002
BGP generic scan interval 60 secs
Non-stop routing is enabled
BGP table state: Active
Table ID: 0xe0000000   RD version: 6
BGP main routing table version 6
BGP NSR Initial initsync version 2 (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
   Network            Next Hop            Metric LocPrf Weight Path
*>i1.1.1.1/32         192.168.23.2             0    100      0 65001 i
*> 3.3.3.3/32         0.0.0.0                  0         32768 i

Processed 2 prefixes, 2 paths
3.3.2. ping

  • XR1とXR3のLoopback0間で到達性があることを確認します。

RP/0/0/CPU0:XR1#ping 3.3.3.3 source 1.1.1.1
Sun Mar 15 02:45:56.603 UTC
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 3.3.3.3, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/5/9 ms
RP/0/0/CPU0:XR3#ping 1.1.1.1 source 3.3.3.3
Sun Mar 15 02:47:22.837 UTC
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 1.1.1.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/2/9 ms

3.4. 補足

3.4.1. next-hop-selfコマンドを設定しなかった場合の動作

XR2でnext-hop-selfコマンドを設定しなかった場合、XR3はネットワーク1.1.1.1/32へのBGPルートをベストパスとして選択しません。

XR1が広報したネットワーク1.1.1.1/32をXR2で確認すると、ネクストホップは192.168.12.1であることが分かります。

RP/0/0/CPU0:XR2#show bgp ipv4 unicast
Sun Mar 15 02:37:18.668 UTC
BGP router identifier 2.2.2.2, local AS number 65002
BGP generic scan interval 60 secs
Non-stop routing is enabled
BGP table state: Active
Table ID: 0xe0000000   RD version: 4
BGP main routing table version 4
BGP NSR Initial initsync version 2 (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
   Network            Next Hop            Metric LocPrf Weight Path
*> 1.1.1.1/32         192.168.12.1             0             0 65001 i
*>i3.3.3.3/32         192.168.23.3             0    100      0 i

Processed 2 prefixes, 2 paths

XR3で同様の確認をすると、ネクストホップは192.168.12.1から変更されていません。また、左端のステータスコードに「>」が出力されていないため、ベストパスとして選択されていないことが分かります。

RP/0/0/CPU0:XR3#show bgp ipv4 unicast
Sun Mar 15 02:37:26.598 UTC
BGP router identifier 3.3.3.3, local AS number 65002
BGP generic scan interval 60 secs
Non-stop routing is enabled
BGP table state: Active
Table ID: 0xe0000000   RD version: 3
BGP main routing table version 3
BGP NSR Initial initsync version 2 (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
   Network            Next Hop            Metric LocPrf Weight Path
* i1.1.1.1/32         192.168.12.1             0    100      0 65001 i
*> 3.3.3.3/32         0.0.0.0                  0         32768 i

Processed 2 prefixes, 2 paths

原因を確認するため、show bgp ipv4 unicast 1.1.1.1/32コマンドを実行すると、ネクストホップを示す場所に「inaccessible」が追記されており、ネクストホップへの到達性がないことが分かります。

RP/0/0/CPU0:XR3#show bgp ipv4 unicast 1.1.1.1/32
Sun Mar 15 02:37:39.207 UTC
BGP routing table entry for 1.1.1.1/32
Versions:
  Process           bRIB/RIB  SendTblVer
  Speaker                  0           0
Last Modified: Mar 15 02:18:01.725 for 00:19:37
Paths: (1 available, no best path)
  Not advertised to any peer
  Path #1: Received by speaker 0
  Not advertised to any peer
  65001
    192.168.12.1 (inaccessible) from 192.168.23.2 (2.2.2.2)
      Origin IGP, metric 0, localpref 100, valid, internal
      Received Path ID 0, Local Path ID 0, version 0