Cisco IOS-XRにおけるBGPネクストホップセルフの設定方法を紹介します。
目次
- 1. コマンド一覧
- 2. 仕様説明
- 2.1. 概要
- 2.2. next-hop-self
- 3. 設定例
前提条件
本記事は以下に基づいて作成しています。
・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