内容

概要

前提条件

要件

使用するコンポーネント

設定

ネットワーク図

設定

確認

トラブルシュート

概要

このドキュメントでは、NX-OSオペレーティングシステムを実行するCisco Nexusスイッチファミリのボーダーゲートウェイプロトコル(BGP)でのdisable-peer-as-checkコマンドについて説明します。

前提条件

要件

次の項目に関する知識があることが推奨されます。

- Nexus NX-OS ソフトウェア

- BGPルーティングプロトコル。

使用するコンポーネント

このドキュメントの情報は、次のソフトウェアとハードウェアのバージョンに基づいています。

- Cisco Nexus 7000

- NXOSバージョン7.3(0)D1(1)

このドキュメントの情報は、特定のソフトウェアおよびハードウェアのバージョンに限定されるものではありません。このドキュメントの情報は、特定のラボ環境にあるデバイスから作成されたものです。このドキュメントで使用するすべてのデバイスは、初期（デフォルト）設定の状態から起動しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。

設定

ネットワークプレフィックスがeBGPピアにアドバタイズされると、そのネットワークプレフィックスは常に自律システム(AS)の先頭にBGPのAS_PATH属性リストが付加されます。

デフォルトでは、Cisco Nexus NX-OSベースのスイッチは、BGPのネットワークプレフィックスAS_PATH属性の最後にASがすでに見つかったeBGPピアにネットワークプレフィックスをアドバタイズしません。

この動作は、ピアのASがすでにネットワークプレフィックスAS_PATH属性に含まれている場合でも、ネットワークプレフィックスがeBGPピアにアドバタイズされるCisco IOS® (およびCisco IOS® -XE)ベースのルータおよびスイッチとは異なります。

この場合、BGPループ防止メカニズムは受信側ピアのネットワークプレフィックス（デフォルト）を廃棄し、「DENIED due to:AS-PATHには、適切なデバッグが有効になっている場合にのみ、独自のASが含まれます。

注：Cisco IOS® XRベースのルータは、デフォルトでNX-OSと同様に動作します。Cisco IOS® XRでは、as-path-loopcheck out disableコマンドを使用して、この動作を変更できます。

ネットワーク図

設定

R1:Cisco IOS®

configure terminal

!

hostname R1

!

interface Loopback0

ip address 10.255.255.1 255.255.255.255

!

interface GigabitEthernet0/1

ip address 10.1.2.1 255.255.255.0

no shutdown

!

router bgp 64512

bgp log-neighbor-changes

network 10.255.255.1 mask 255.255.255.255

neighbor 10.1.2.2 remote-as 65535

!

end

N7K-2:Nexus NX-OS

configure terminal

!

hostname N7K-2

!

feature bgp

!

interface Ethernet2/1

no switchport

ip address 10.1.2.2/24

no shutdown

interface Ethernet2/2

no switchport

ip address 10.2.3.2/24

no shutdown

!

router bgp 65535

address-family ipv4 unicast

neighbor 10.1.2.1

remote-as 64512

address-family ipv4 unicast

neighbor 10.2.3.3

remote-as 64512

address-family ipv4 unicast

!

end

R3:Cisco IOS®

configure terminal

!

hostname R3

!

interface GigabitEthernet0/1

ip address 10.2.3.3 255.255.255.0

no shutdown

!

router bgp 64512

bgp log-neighbor-changes

neighbor 10.2.3.2 remote-as 65535

!

end

確認

ここでは、設定が正常に機能しているかどうかを確認します。

disable-peer-as-checkコマンドを使用しないと、R3のAS(64512)がAS_PATH属性の最後に見つかるため、NX-OSが実行されるN7K-2がルータR3にアドバタイズされなくなります。

注：disable-peer-as-checkコマンドは、設定でデフォルトで無効になっています。この機能を有効にするには、コマンドを手動で追加する必要があります。

N7K-2が10.255.255.1/32をR3にアドバタイズすると、AS_PATH属性の最後にAS 64512が含まれます。

このAS 64512は、R3で設定されているASと同じです。

N7K-2:Nexus NX-OS

N7K-2# show bgp ipv4 unicast

BGP routing table information for VRF default, address family IPv4 Unicast

BGP table version is 17, local router ID is 10.1.2.2

Status: s-suppressed, x-deleted, S-stale, d-dampened, h-history, *-valid, >-best

Path type: i-internal, e-external, c-confed, l-local, a-aggregate, r-redist, I-i

njected

Origin codes: i - IGP, e - EGP, ? - incomplete, | - multipath, & - backup

Network            Next Hop            Metric     LocPrf     Weight Path

*>e10.255.255.1/32    10.1.2.1                 0                     0 64512 i

N7K-2#

R3で、debugコマンドdebug bgp ipv4 unicastが有効になっていることを確認します。

ルートが受信されていないことを確認するために、コマンドclear bgp ipv4 unicast * softが実行され、ルートが再度交換されます。R3ルートはルートを受信しません。

R3:Cisco IOS®

R3#debug bgp ipv4 unicast

BGP debugging is on for address family: IPv4 Unicast

R3#

R3#clear bgp ipv4 unicast * soft

R3#

*Jul 15 19:22:36.427: BGP: 10.2.3.2 sending REFRESH_REQ(5) for afi/safi: 1/1, refresh code is 0

R3#

N7K-2でコマンドdisable-peer-as-checkを有効にして、ネットワークプレフィックスをR3にアドバタイズできるようにする必要があります。

N7K-2:Nexus NX-OS

N7K-2# conf t

Enter configuration commands, one per line.  End with CNTL/Z.

N7K-2(config)# router bgp 65535

N7K-2(config-router)# neighbor 10.2.3.3

N7K-2(config-router-neighbor)# address-family ipv4 unicast

N7K-2(config-router-neighbor-af)# disable-peer-as-check

N7K-2(config-router-neighbor-af)#

N7K-2でdisable-peer-as-checkを実行すると、ルートはR3にアドバタイズされますが、予期されるBGPのループ防止メカニズムによって廃棄されます。

「DENIED due to:AS-PATH contains our our own AS」がデバッグ出力に表示されます。

R3:Cisco IOS®

R3#

*Jul 15 19:29:06.440: BGP(0): 10.2.3.2 rcv UPDATE w/ attr: nexthop 10.2.3.2, origin i, originator 0.0.0.0, merged path 65535 64512, AS_PATH , community , extended community , SSA attribute

*Jul 15 19:29:06.442: BGPSSA ssacount is 0

*Jul 15 19:29:06.442: BGP(0): 10.2.3.2 rcv UPDATE about 10.255.255.1/32 -- DENIED due to: AS-PATH contains our own AS;

R3#

注：R3のASがAS_PATH属性の最後に見つからない場合、N7K-2はルートをアドバタイズするコマンドを必要としません。

この例では、AS_PATH属性の最後に別のASが付加され、route-mapコマンドとset as-path prependコマンドが使用されます。ここで、AS_PATHにR3のASの前に別のASがあります。

AS_PATHは65300 64512をリストします。

N7K-2:Nexus NX-OS

configure terminal

!

route-map TEST permit 10

set as-path prepend 65300

!

N7K-2# conf t

Enter configuration commands, one per line.  End with CNTL/Z.

N7K-2(config)# router bgp 65535

N7K-2(config-router)#   neighbor 10.1.2.1

N7K-2(config-router-neighbor)#     address-family ipv4 unicast

N7K-2(config-router-neighbor-af)# route-map TEST in

N7K-2(config-router-neighbor-af)#

N7K-2#

N7K-2# show bgp ipv4 unicast

BGP routing table information for VRF default, address family IPv4 Unicast

BGP table version is 18, local router ID is 10.1.2.2

Status: s-suppressed, x-deleted, S-stale, d-dampened, h-history, *-valid, >-best

Path type: i-internal, e-external, c-confed, l-local, a-aggregate, r-redist, I-injected

Origin codes: i - IGP, e - EGP, ? - incomplete, | - multipath, & - backup

Network            Next Hop            Metric     LocPrf     Weight Path

*>e10.255.255.1/32    10.1.2.1                 0                     0 65300 64512 i

N7K-2#

N7K-2がこの場合にdisable-peer-as-checkを必要とせずに、ルートをアドバタイズする方法を確認します。

N7K-2:Nexus NX-OS

N7K-2# sh run bgp

!Command: show running-config bgp

!Time: Mon Jul 15 21:28:59 2019

version 7.3(0)D1(1)

feature bgp

router bgp 65535

address-family ipv4 unicast

neighbor 10.1.2.1

remote-as 64512

address-family ipv4 unicast

route-map TEST in

neighbor 10.2.3.3

remote-as 64512

address-family ipv4 unicast

N7K-2#

「DENIED due to:AS-PATH contains our our own AS」がR3のデバッグ出力に表示されます。

R3:Cisco IOS®

R3#show debug

IP routing:

BGP debugging is on for address family: IPv4 Unicast

BGP updates debugging is on for address family: IPv4 Unicast

R3#

R3#clear bgp ipv4 unicast * soft

R3#

*Jul 15 21:33:11.309: BGP: 10.2.3.2 sending REFRESH_REQ(5) for afi/safi: 1/1, refresh code is 0

*Jul 15 21:33:12.312: BGP(0): 10.2.3.2 rcv UPDATE w/ attr: nexthop 10.2.3.2, origin i, originator 0.0.0.0, merged path 65535 65300 64512, AS_PATH , community , extended community , SSA attribute

*Jul 15 21:33:12.313: BGPSSA ssacount is 0

*Jul 15 21:33:12.313: BGP(0): 10.2.3.2 rcv UPDATE about 10.255.255.1/32 -- DENIED due to: AS-PATH contains our own AS;

R3#

トラブルシュート

ここでは、設定のトラブルシューティングに使用できる情報を示します。

BGPの設定を確認するには、NX-OSでdisable-peer-as-checkコマンドが必要です。次のデバッグをオンにします。

debug-filter bgp neighbor <eBGP_NEIGHBOR>

debug-filter bgp prefix <ROUTE_TO_BE_ADVERTISED>

debug bgp updates

debug logfile <FILE_NAME>

「10.2.3.3 10.255.255.1/32 path-id 1 not sent to peer due to:advertising AS」は、ルートの再送信要求があると生成されます。

N7K-2:Nexus NX-OS

N7K-2# debug-filter bgp neighbor 10.2.3.3

N7K-2# debug-filter bgp prefix 10.255.255.1/32

N7K-2# debug bgp updates

N7K-2#

N7K-2# debug logfile bgpdebug.log

N7K-2# show debug logfile bgpdebug.log

2019 Jul 15 21:38:12.586085 bgp: 65535 [7848] (default) UPD: [IPv4 Unicast] Continuing update run for peer 10.2.3.3 (#0)

2019 Jul 15 21:38:12.586129 bgp: 65535 [7848] (default) UPD: [IPv4 Unicast] consider sending 10.255.255.1/32 to peer 10.2.3.3, path-id 1, best-ext is off

2019 Jul 15 21:38:12.586145 bgp: 65535 [7848] (default) UPD: [IPv4 Unicast] 10.2.3.3 10.255.255.1/32 path-id 1 not sent to peer due to: advertising AS

2019 Jul 15 21:38:12.586160 bgp: 65535 [7848] (default) UPD: [IPv4 Unicast] 10.2.3.3: walked 0 nodes and packed 0/0 prefixes

2019 Jul 15 21:38:12.586177 bgp: 65535 [7848] (default) UPD: [IPv4 Unicast] Found marker dest 0xf35349f0 on xmitlist for peer 10.2.3.3 (sent prefixes: 0)

2019 Jul 15 21:38:12.586200 bgp: 65535 [7848] (default) UPD: [IPv4 Unicast] Created EOR marker UPDATE msg (len 23) to peer 10.2.3.3 afer sending 0 routes

2019 Jul 15 21:38:12.586213 bgp: 65535 [7848] (default) UPD: [IPv4 Unicast] (#24) Suspending update run for peer 10.2.3.3 (#24)

N7K-2#

完了したら、次のコマンドを使用してデバッグを無効にします。

undebug all

no debug-filter all

clear debug logfile <FILE_NAME>