EVPN-VXLANデータセンターにおけるBGP番号なしIPv6アンダーレイ
このガイドでは、BGP番号なしピアリング(BGP自動検出またはBGP自動ピアリングとも呼ばれます)を導入および検証する方法について説明します。この機能により、BGP は、直接接続されたネイバーのリンクローカル IPv6 アドレスを使用して、ピアネイバーセッションを自動検出し、作成することができます。
概要
今日、多くの企業や大規模データセンターが、BGPをアンダーレイルーティングプロトコルとして使用しています。OSPF や IS-IS などの従来の IGP とは異なり、BGP では通常、ルート交換を制御するために、ピアリング、自律システム(AS)番号、ルーティングポリシーを明示的に設定する必要があります。
多くの事業者は、まだIPv6の経験が比較的浅い状態です。IPv6ネイバーを動的に検出するBGP番号なしピアリングを使用することで、EVPN-VXLANデータセンター(DC)ファブリックでIPv6アンダーレイを手動で設定する負担を軽減します。Junos OSは、BGPグループ設定をサポートすることで、ベースラインIPv6の機能に基づいて構築されています。BGPグループ設定は、番号なしIPv6ファブリックをサポートするために使用される動的ピアリングパラメーター(許可されたリモートAS番号など)のサポートを提供します。
EVPN-VXLAN DCファブリックは、手動で設定することも、BGP番号なしピアリング機能を使用して設定することもできます。このユースケースでは、ファブリックを手動で設定することの複雑さと、BGPの番号なしピアリング機能を使用した方がはるかに簡単なソリューションが得られる理由について説明します。
シンプルな 2 層のデータセンターについて考えてみましょう。この適度なサイズのファブリックは、4台のスパインデバイスと32台のリーフデバイスで構成されています。各スパインデバイスには、リーフデバイスに接続する32個のリンクがあり、各リーフには2つのファブリックリンク(各スパインデバイスに1つ)があります。
この手動設定では、最初にネットワークのIPアドレスを割り当てる必要があります。このファブリックでは、4*32=128個のIPv6 IPアドレスを設定する必要があります。各ネットワークには、2つのホストアドレス割り当てが必要です。
次に、BGPピアとそれに関連するAS番号を設定します。各ファブリックリンクの各エンドに対して、1つのBGPピアリングセッションが必要です。この計算は、合計4*32*2=256のBGPピア定義に相当し、それぞれに固有のピアリングIPとリモートAS番号が必要です。
256個のBGPピアリングを手動で定義するのは面倒な作業であり、エラーが発生しやすくなります。複雑なファブリックでは、単純な設定ミスでも切り分けるのが難しくなります。ファブリックが128のリーフデバイスをサポートしているとします。ここで、4*128=512 IP IPv6 ネットワークを構成する必要があります。数学から見ても、大規模なファブリックを手動でプロビジョニングする複雑さがすぐに負担になることは明らかです。また、IPv4ファブリックでは、アンダーレイが消費するIPv4アドレスの数が多いことが、見落とされがちな要因です。多くのネットワークでは、IPv4アドレス指定スペースは貴重なものです。
これとは対照的に、BGP 番号なしピアリングでは、アンダーレイ リンクにルーティング可能な IP ネットワークを割り当てる必要はありません。アンダーレイのすべての BGP ピアリングは、リンクローカル IP アドレスのみを使用します。リンクローカルIPアドレスを使用すると、設定や複雑さが軽減され、ルーティングテーブルが小さくなり、IPアドレスを保持できます。
BGP番号なしEVPNファブリックの設定
BGP番号なしピアリングを設定する場合、必要な設定ステートメントは最小限です。これらの設定ステートメントは、IPv6 ベースのアンダーレイを迅速にブートストラップするために使用されます。このアンダーレイは、EVPN-VXLAN オーバーレイをサポートします。アンダーレイはネイティブ IPv6 を使用しますが、IPv6 ネクストホップ (RFC5549) による IPv4 ルートもサポートします。つまり、アンダーレイは、EVPN-VXLAN オーバーレイで IPv4 と IPv6 の両方のワークロードと、それらに関連する仮想ネットワークをサポートします。IPv6 ステートレス自動設定の詳細については、このドキュメントの範囲外です。
以下のリストは、BGP番号なしピアリングの主な機能を示しています。
- IPv6 が有効なすべてのインターフェイスで、ステートレスなリンクローカル IPv6 アドレスを自動的に設定します。
- 許可されたAS番号のリストをサポートして、リモートファブリックデバイスへのピアリングを簡素化します。
- 直接接続されたネイバーの動的な発見を提供するIPv6ルーターアドバタイズメント(RA)を使用します。
- IPv6近隣探索を使用して、ネイバーのリンクローカルIPを対応するMACアドレスに解決し、リンクレベルの通信を容易にします。
- ローカルエンドは、検出されたピアのリンクローカルアドレスとMACアドレスを使用して、直接接続されたネイバーにBGPオープンメッセージを送信します。このオープンメッセージには、ローカルピアのAS番号が含まれています。リモートピアはこれを許可されたAS番号のリストと照合して、セッションを許可するかどうかを判断します。同様に、ローカルピアは、リモートピアのオープンメッセージで返されるように、リモートピアのAS番号で一致します。
- 直接接続されたすべてのネットワークを広告するシンプルな BGP ポリシーを提供します(最低でも、各ファブリックデバイスのループバックアドレスは広告する必要があります)。
- デフォルトのEBGPポリシーを使用して、他のファブリックデバイスから学習したルートを再アドバタイズします。
- BGP AS パス長を使用してループを防止し、ECMP ロードバランシングに最適なルート選択を提供します。
- アンダーレイはループバック到達性を提供するため、EVPN-VXLANオーバーレイの追加が簡素化されます。
BGP番号なしピアリングは、EBGPのみをサポートします。マルチホップEBGPおよびIBGPはサポートされていません。
位相幾何学
次の図は、シンプルな2つのスパインと2つのリーフのトポロジーを示しています。
-
ファブリックアンダーレイは、デバイスループバックを含めて純粋なIPv6です。
-
接続されたサーバは IPv4 ベースであり、IPv6 上での IPv4 のサポートを示しています(RFC 5549 参照)。IPv6ワークロードもオーバーレイでサポートされています。これらのサーバーはベアメタル・サーバー (BMS) であり、示されている IP アドレッシングで事前構成されているとします。VLAN メンバーシップは、これらのワークロードを VXLAN カプセル化によって分離されたオーバーレイ仮想ネットワークにマッピングするために使用されます。この例では、アクセスインターフェイスはタグなしです。
-
オーバーレイを追加するときに、サーバー ワークロード間で接続がルーティングされることが想定されます。オーバーレイは CRB または ERB のいずれかです。BGP 番号なしアンダーレイは、どちらのタイプのオーバーレイもサポートします。
ステップバイステップの設定
ステップバイステップ: リーフ1
すべてのファブリック インターフェイスで
inet6ファミリーを有効にします。これらのファブリック インターフェイスは、リーフ 1 をスパイン デバイスに接続します。inet6ファミリーは、IPv6のステートレスな自動設定とネイバー探索をサポートします。IPv4ワークロードをサポートするには、inetファミリーも追加する必要があります。set interfaces xe-0/0/0 unit 0 family inet6 set interfaces xe-0/0/0 unit 0 family inet set interfaces xe-0/0/1 unit 0 family inet6 set interfaces xe-0/0/1 unit 0 family inet
ループバック インターフェイス lo0 を作成し、IPv6 アドレスを設定します。ループバックアドレスは、EVPN-VXLANオーバーレイを追加する際にBGPピアリングをサポートするために使用されます。
set interfaces lo0 unit 0 family inet6 address 2001:db8:100::3/128
動的BGPピアリングを許可するBGP AS番号のリストを指定するポリシーを設定します。
set policy-options as-list a-list members [65000-65100]
パケット単位のロードバランシングポリシーを設定します。ロードバランシングポリシーでは、複数の等コストネクストホップを転送テーブルにインストールできます。これにより、リンク障害が発生した場合に、代替の等コストファブリックホップに迅速にフェイルオーバーできます。
set policy-options policy-statement load-balancing-policy then load-balance per-packet
パケット単位のロードバランシングポリシーを転送テーブルに適用します。
set routing-options forwarding-table export load-balancing-policy
直接ルートをアドバタイズするポリシーを設定します。リンクローカルサブネットはエクスポートされないため、この例では、このポリシーはループバックアドレスのみをアドバタイズします。この同じループバックアドレスは、後でオーバーレイでBGPピアリングを設定する際に使用します。
set policy-options policy-statement DIRECT-RTS from protocol direct set policy-options policy-statement DIRECT-RTS then accept
ルーター ID (RID) を構成します。この例はネイティブIPv6ファブリック用であるため、設定にIPv4形式のルーターIDが含まれていることを確認する必要があります。ほとんどの場合、RID はループバック アドレスから自動的に派生しますが、この例ではループバックは IPv6 のみです。
set routing-options router-id 10.0.0.4
各ファブリックインターフェイスのルーターアドバタイズメント(RA)を設定します。RA が有効な場合、インターフェイスは定期的に RA メッセージを送信します。RAメッセージは、リモートネイバーのリンクローカルIPを発見するために使用されます。これにより、ネイバー探索と残りの動的ピアリングプロセスが開始されます。
set protocols router-advertisement interface xe-0/0/0 set protocols router-advertisement interface xe-0/0/1
番号なしピアリングをサポートするBGPグループを設定します。このグループには、直接ルートをエクスポートするポリシーを適用します。このグループにはすべてのファブリック インターフェイスを含める必要があり、
[protocols bgp group <group-name> dynamic-neighbor <neighbor-group-name>]階層でpeer-auto-discoveryのあるインターフェイスを有効にする必要があります。このグループは、動的ピアリングに許可されるAS番号を定義するポリシーにリンクされています。複数のパスと複数のAS番号でロードバランシングを有効にします。このファブリックでは、各ノードが一意のAS番号を使用することに注意してください。複数のAS番号に対するマルチパスロードバランシング(ECMP)により、RIBがこれらの異なるAS番号を指す複数のネクストホップをインストールできるようにすることで、高速フェイルオーバーが可能になります。拡張IPv4ネクストホップのサポートを追加することで、IPv6 BGPセッション上でのIPv4ルート交換が可能になります。
set protocols bgp group auto-disc family inet6 unicast set protocols bgp group auto-disc family inet unicast extended-nexthop set protocols bgp group auto-disc export DIRECT-RTS set protocols bgp group auto-disc local-as 65003 set protocols bgp group auto-disc dynamic-neighbor FABRIC peer-auto-discovery family inet6 ipv6-nd set protocols bgp group auto-disc dynamic-neighbor FABRIC peer-auto-discovery interface xe-0/0/0 set protocols bgp group auto-disc dynamic-neighbor FABRIC peer-auto-discovery interface xe-0/0/1 set protocols bgp group auto-disc peer-as-list a-list set protocols bgp group auto-disc multipath multiple-as
業績
すべてのファブリックデバイスの構成が似ていることを思い出してください。簡潔にするために、リーフ 1 の設定差分のみを示しています。
user@leaf-1> show configuration
system {
host-name leaf1;
}
interfaces {
xe-0/0/0 {
unit 0 {
family inet;
family inet6;
}
}
xe-0/0/1 {
unit 0 {
family inet;
family inet6;
}
}
lo0 {
unit 0 {
family inet6 {
address 2001:db8:100::3/128;
}
}
}
}
policy-options {
policy-statement DIRECT-RTS {
from protocol direct;
then accept;
}
policy-statement load-balancing-policy {
then load-ballance per-packet;
}
as-list a-list members 65000-65100;
}
routing-options {
router-id 10.0.0.3;
forwarding-table {
export load-balancing-policy;
}
}
protocols {
router-advertisement {
interface xe-0/0/0.0;
interface xe-0/0/1.0;
}
bgp {
group auto-disc {
family inet6 {
unicast;
}
family inet {
unicast {
extended-nexthop;
}
}
export DIRECT-RTS;
local-as 65003;
multipath;
dynamic-neighbor FABRIC {
peer-auto-discovery {
family inet6 {
ipv6-nd;
}
interface xe-0/0/0.0;
interface xe-0/0/1.0;
}
}
peer-as-list a-list;
}
}
}
クイックコンフィグレーション
すぐに使い始められるように、トポロジー内の各ノードに簡単な構成が用意されています。ご使用の環境に合わせて、必要に応じて以下のコマンドをコピーして編集します(通常、ここに示されているコマンドを正確に使用することはありません)。変更したコマンドを、関連するファブリック デバイスの端末ウィンドウに貼り付けます。 [edit] 階層で設定モードになっている必要があります。
リーフ 1 の簡易設定:
set system host-name leaf1 set interfaces xe-0/0/0 unit 0 family inet set interfaces xe-0/0/1 unit 0 family inet set interfaces xe-0/0/0 unit 0 family inet6 set interfaces xe-0/0/1 unit 0 family inet6 set interfaces lo0 unit 0 family inet6 address 2001:db8:100::3/128 set policy-options as-list a-list members [65000-65100] set policy-options policy-statement DIRECT-RTS from protocol direct set policy-options policy-statement DIRECT-RTS then accept set policy-options policy-statement load-balancing-policy then load-balance per-packet set protocols router-advertisement interface xe-0/0/0 set protocols router-advertisement interface xe-0/0/1 set protocols bgp group auto-disc family inet6 unicast set protocols bgp group auto-disc export DIRECT-RTS set protocols bgp group auto-disc local-as 65003 set protocols bgp group auto-disc dynamic-neighbor FABRIC peer-auto-discovery family inet6 ipv6-nd set protocols bgp group auto-disc dynamic-neighbor FABRIC peer-auto-discovery interface xe-0/0/0 set protocols bgp group auto-disc dynamic-neighbor FABRIC peer-auto-discovery interface xe-0/0/1 set protocols bgp group auto-disc peer-as-list a-list set protocols bgp group auto-disc multipath multiple-as set routing-options forwarding-table export load-balancing-policy set routing-options router-id 10.0.0.3
リーフ 2 の簡易設定:
set system host-name leaf2 set interfaces xe-0/0/0 unit 0 family inet set interfaces xe-0/0/1 unit 0 family inet set interfaces xe-0/0/0 unit 0 family inet6 set interfaces xe-0/0/1 unit 0 family inet6 set interfaces lo0 unit 0 family inet6 address 2001:db8:100::4/128 set policy-options as-list a-list members [65000-65100] set policy-options policy-statement DIRECT-RTS from protocol direct set policy-options policy-statement DIRECT-RTS then accept set policy-options policy-statement load-balancing-policy then load-balance per-packet set protocols router-advertisement interface xe-0/0/0 set protocols router-advertisement interface xe-0/0/1 set protocols bgp group auto-disc family inet6 unicast set protocols bgp group auto-disc export DIRECT-RTS set protocols bgp group auto-disc local-as 65004 set protocols bgp group auto-disc dynamic-neighbor FABRIC peer-auto-discovery family inet6 ipv6-nd set protocols bgp group auto-disc dynamic-neighbor FABRIC peer-auto-discovery interface xe-0/0/0 set protocols bgp group auto-disc dynamic-neighbor FABRIC peer-auto-discovery interface xe-0/0/1 set protocols bgp group auto-disc peer-as-list a-list set protocols bgp group auto-disc multipath multiple-as set routing-options forwarding-table export load-balancing-policy set routing-options router-id 10.0.0.4
スパイン1の簡易設定:
set system host-name spine1 set interfaces xe-0/0/0 unit 0 family inet set interfaces xe-0/0/1 unit 0 family inet set interfaces xe-0/0/0 unit 0 family inet6 set interfaces xe-0/0/1 unit 0 family inet6 set interfaces lo0 unit 0 family inet6 address 2001:db8:100::1/128 set policy-options as-list a-list members [65000-65100] set policy-options policy-statement DIRECT-RTS from protocol direct set policy-options policy-statement DIRECT-RTS then accept set policy-options policy-statement load-balancing-policy then load-balance per-packet set protocols router-advertisement interface xe-0/0/0 set protocols router-advertisement interface xe-0/0/1 set protocols bgp group auto-disc family inet6 unicast set protocols bgp group auto-disc export DIRECT-RTS set protocols bgp group auto-disc local-as 65001 set protocols bgp group auto-disc dynamic-neighbor FABRIC peer-auto-discovery family inet6 ipv6-nd set protocols bgp group auto-disc dynamic-neighbor FABRIC peer-auto-discovery interface xe-0/0/0 set protocols bgp group auto-disc dynamic-neighbor FABRIC peer-auto-discovery interface xe-0/0/1 set protocols bgp group auto-disc peer-as-list a-list set protocols bgp group auto-disc multipath multiple-as set routing-options forwarding-table export load-balancing-policy set routing-options router-id 10.0.0.1
スパイン2の簡易設定:
set system host-name spine2 set interfaces xe-0/0/0 unit 0 family inet set interfaces xe-0/0/1 unit 0 family inet set interfaces xe-0/0/0 unit 0 family inet6 set interfaces xe-0/0/1 unit 0 family inet6 set interfaces lo0 unit 0 family inet6 address 2001:db8:100::2/128 set policy-options as-list a-list members [65000-65100] set policy-options policy-statement DIRECT-RTS from protocol direct set policy-options policy-statement DIRECT-RTS then accept set policy-options policy-statement load-balancing-policy then load-balance per-packet set protocols router-advertisement interface xe-0/0/0 set protocols router-advertisement interface xe-0/0/1 set protocols bgp group auto-disc family inet6 unicast set protocols bgp group auto-disc export DIRECT-RTS set protocols bgp group auto-disc local-as 65002 set protocols bgp group auto-disc dynamic-neighbor FABRIC peer-auto-discovery family inet6 ipv6-nd set protocols bgp group auto-disc dynamic-neighbor FABRIC peer-auto-discovery interface xe-0/0/0 set protocols bgp group auto-disc dynamic-neighbor FABRIC peer-auto-discovery interface xe-0/0/1 set protocols bgp group auto-disc peer-as-list a-list set protocols bgp group auto-disc multipath multiple-as set routing-options forwarding-table export load-balancing-policy set routing-options router-id 10.0.0.2
必ずすべてのデバイスで設定変更をコミットしてください。
検証
これらのコマンドとサンプル出力を使用して、番号なしアンダーレイの適切な動作を確認します。すべてのノードの構成と動作は似ています。以下に、リーフ 1 のコマンドと出力のみを示します。すべてのノードに同じコマンドが適用され、すべてのデバイスで同様の出力が期待されます。
全体として、主な検証タスクは、すべてのノードがリンクローカルアドレスを使用して確立された予期されたBGPセッションを持っていること、およびファブリックデバイスがループバックルートを適切に交換していることを確認することです。私たちは、BGPセッションを正常に確立するために必要な各側面を確認する構造化されたボトムアップアプローチを採用しています。
ファブリック インターフェイスが稼働し、動作していることを確認します。
user@leaf1> show interfaces xe-0/0/0Physical interface: xe-0/0/0, Enabled, Physical link is Up
Interface index: 650, SNMP ifIndex: 516
Link-level type: Ethernet, MTU: 1514, LAN-PHY mode, Speed: 10Gbps, Duplex: Full-Duplex, BPDU Error: None,
Loop Detect PDU Error: None, Ethernet-Switching Error: None, MAC-REWRITE Error: None, Loopback: Disabled,
Source filtering: Disabled, Flow control: Disabled, Media type: Fiber
Device flags : Present Running
Interface flags: SNMP-Traps Internal: 0x4000
Link flags : None
CoS queues : 8 supported, 8 maximum usable queues
Current address: 02:05:86:24:88:03, Hardware address: 02:05:86:24:88:03
Last flapped : 2022-03-14 10:56:00 PDT (6d 23:47 ago)
Input rate : 0 bps (0 pps)
Output rate : 0 bps (0 pps)
Active alarms : None
Active defects : None
PCS statistics Seconds
Bit errors 0
Errored blocks 0
Ethernet FEC statistics Errors
FEC Corrected Errors 0
FEC Uncorrected Errors 0
FEC Corrected Errors Rate 0
FEC Uncorrected Errors Rate 0
Interface transmit statistics: Disabled
Logical interface xe-0/0/0.0 (Index 555) (SNMP ifIndex 540)
Flags: Up SNMP-Traps 0x4004000 Encapsulation: ENET2
Input packets : 47384
Output packets: 48579
Protocol inet, MTU: 1500
Max nh cache: 75000, New hold nh limit: 75000, Curr nh cnt: 0, Curr new hold cnt: 0, NH drop cnt: 0
Flags: Sendbcast-pkt-to-re
Protocol inet6, MTU: 1500
Max nh cache: 75000, New hold nh limit: 75000, Curr nh cnt: 1, Curr new hold cnt: 0, NH drop cnt: 0
Flags: Is-Primary
Addresses, Flags: Is-Preferred
Destination: fe80::/64, Local: fe80::205:86ff:fe24:8803
user@leaf1> show interfaces terse
Interface Admin Link Proto Local Remote
gr-0/0/0 up up
pfe-0/0/0 up up
pfe-0/0/0.16383 up up inet
inet6
pfh-0/0/0 up up
pfh-0/0/0.16383 up up inet
pfh-0/0/0.16384 up up inet
xe-0/0/0.0 up up inet
inet6 fe80::205:86ff:fe24:8803/64
xe-0/0/1 up up
xe-0/0/1.0 up up inet
inet6 fe80::205:86ff:fe24:8807/64
xe-0/0/2 up up
xe-0/0/2.16386 up up
. . .
jsrv up up
jsrv.1 up up inet 128.0.0.127/2
lo0 up up
lo0.0 up up inet
inet6 2001:db8:100::3
fe80::205:860f:fcc1:6f00
lo0.16385 up up inet
lsi up up
mtun up up
pimd up up
pime up up
pip0 up up
tap up up
vme up down
vtep up up
この出力は、リーフ1のファブリックインターフェイスが動作していることを示しています。また、明示的な IPv4 または IPv6 アドレスがないことも見られます。インターフェイスには、 inet および inet6 ファミリーのみが設定されます。その結果、IPv6 ステートレス アドレス設定の一部として、IPv6 リンクローカル IPv6 アドレスのみが存在します。また、ループバックアドレスには、想定されるIPv6アドレスが割り当てられていることにも注意してください。
show interfaces terse CLIコマンドの出力により、ループバックアドレスを含むすべてのインターフェイスの状態と設定を簡単に確認することができます。
すべてのファブリックインターフェイスがIPv6ルーターアドバタイズメント(RA)を送受信していることを確認します。
user@leaf1> show ipv6 router-advertisement
Interface: xe-0/0/0.0
Advertisements sent: 1512, last sent 00:01:05 ago
Solicits sent: 1, last sent 6d 23:49:07 ago
Solicits received: 3, last received 4d 18:18:57 ago
Advertisements received: 503
Solicited router advertisement unicast: Disable
IPv6 RA Preference: DEFAULT/MEDIUM
Advertisement from fe80::205:86ff:fe0c:dd03, heard 4d 18:15:17 ago
Managed: 0
Other configuration: 0
Reachable time: 0 ms
Default lifetime: 0 sec
Retransmit timer: 0 ms
Current hop limit: 64
Interface: xe-0/0/1.0
Advertisements sent: 1523, last sent 00:02:05 ago
Solicits sent: 1, last sent 6d 23:49:07 ago
Solicits received: 0
Advertisements received: 1515
Solicited router advertisement unicast: Disable
IPv6 RA Preference: DEFAULT/MEDIUM
Advertisement from fe80::205:86ff:fec6:b503, heard 00:03:47 ago
Managed: 0
Other configuration: 0
Reachable time: 0 ms
Default lifetime: 1800 sec
Retransmit timer: 0 ms
Current hop limit: 64
この出力では、リーフ1が両方のスパインデバイスとの間でRAを送受信していることを確認します。RA は、送信側のリンクローカルアドレスを正しく報告します。
ファブリックデバイスが、IPv6 NDを使用して、直接接続されたすべてのIPv6ネイバーのMACからリンクローカルアドレスへのバインディングを学習したことを確認します。
user@leaf1> show ipv6 neighbors IPv6 Address Linklayer Address State Exp Rtr Secure Interface fe80::205:86ff:fe0c:dd03 02:05:86:0c:dd:03 reachable 19 yes no xe-0/0/0.0 fe80::205:86ff:fec6:b503 02:05:86:c6:b5:03 reachable 34 yes no xe-0/0/1.0 Total entries: 2
この出力では、リーフ1がMAC を両方のネイバー(つまり2つのスパインデバイス)のリンクローカルアドレスに正常に解決したことを確認します。
リンクローカル アドレスを使用してネイバーに ping を実行できることを確認します。
user@leaf1> ping fe80::205:86ff:fe0c:dd03 interface xe-0/0/0 PING6(56=40+8+8 bytes) fe80::205:86ff:fec1:6f03 --> fe80::205:86ff:fe0c:dd03 16 bytes from fe80::205:86ff:fe0c:dd03, icmp_seq=0 hlim=64 time=117.229 ms 16 bytes from fe80::205:86ff:fe0c:dd03, icmp_seq=1 hlim=64 time=114.074 ms ^C --- fe80::205:86ff:fe0c:dd03 ping6 statistics --- 2 packets transmitted, 2 packets received, 0% packet loss round-trip min/avg/max/std-dev = 114.074/115.651/117.229/1.577 ms
リーフ 1 からスパイン 1 への ping は成功します。この結果、リンクローカル アドレスを使用した IPv6 接続が確認されます。
すべてのファブリックデバイスが、直接接続されたネイバーとのBGPピアリングセッションを確立していることを確認します。
user@leaf1> show bgp summary
Threading mode: BGP I/O
Default eBGP mode: advertise - accept, receive - accept
Groups: 1 Peers: 2 Down peers: 0
Auto-discovered peers: 2
Table Tot Paths Act Paths Suppressed History Damp State Pending
inet6.0
4 4 0 0 0 0
Peer AS InPkt OutPkt OutQ Flaps Last Up/Dwn State|#Active/Received/Accepted/Damped...
fe80::205:86ff:fe0c:dd03%xe-0/0/0.0 65001 6 5 0 1 50 Establ
inet6.0: 2/2/2/0
fe80::205:86ff:fec6:b503%xe-0/0/1.0 65002 6 6 0 1 51 Establ
inet6.0: 2/2/2/0
予想通り、リーフ1デバイスで2つのBGPセッションが確立されていることが出力に示されています。表示により、IPv6 ルートが交換されたことが確認されます。確認については、後で詳しく説明します。必要に応じて、BGPネイバーの詳細を表示します。
user@leaf1> show bgp neighbor
Peer: fe80::205:86ff:fe0c:dd03%xe-0/0/0.0+56258 AS 65001 Local: fe80::205:86ff:fec1:6f03%xe-0/0/0.0+179 AS 65003
Group: auto-disc Routing-Instance: master
Forwarding routing-instance: master
Type: External State: Established Flags: <Sync PeerAsList AutoDiscoveredNdp>
Last State: OpenConfirm Last Event: RecvKeepAlive
Last Error: None
Export: [ DIRECT-RTS ]
Options: <AddressFamily Multipath LocalAS Refresh>
Options: <MultipathAs>
Options: <GracefulShutdownRcv>
Address families configured: inet6-unicast
Holdtime: 90 Preference: 170
Graceful Shutdown Receiver local-preference: 0
Local AS: 65003 Local System AS: 0
Number of flaps: 1
Last flap event: TransportError
Peer ID: 10.0.0.1 Local ID: 10.0.0.3 Active Holdtime: 90
Keepalive Interval: 30 Group index: 0 Peer index: 1 SNMP index: 2
I/O Session Thread: bgpio-0 State: Enabled
BFD: disabled, down
Local Interface: xe-0/0/0.0
NLRI for restart configured on peer: inet6-unicast
NLRI advertised by peer: inet6-unicast
NLRI for this session: inet6-unicast
Peer supports Refresh capability (2)
Stale routes from peer are kept for: 300
Peer does not support Restarter functionality
Restart flag received from the peer: Notification
NLRI that restart is negotiated for: inet6-unicast
NLRI of received end-of-rib markers: inet6-unicast
NLRI of all end-of-rib markers sent: inet6-unicast
Peer does not support LLGR Restarter functionality
Peer supports 4 byte AS extension (peer-as 65001)
Peer does not support Addpath
NLRI(s) enabled for color nexthop resolution: inet6-unicast
Table inet6.0 Bit: 20000
RIB State: BGP restart is complete
Send state: in sync
Active prefixes: 2
Received prefixes: 2
Accepted prefixes: 2
Suppressed due to damping: 0
Advertised prefixes: 2
Last traffic (seconds): Received 1 Sent 27 Checked 56
Input messages: Total 7 Updates 3 Refreshes 0 Octets 342
Output messages: Total 5 Updates 2 Refreshes 0 Octets 260
Output Queue[1]: 0 (inet6.0, inet6-unicast)
. . .
すべてのノードが、他のノードのループバックアドレスを学習しながら、自身のループバックアドレスをアドバタイズしていることを確認します。
user@leaf1> show route protocol bgp
inet.0: 8 destinations, 8 routes (8 active, 0 holddown, 0 hidden)
inet6.0: 8 destinations, 11 routes (8 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
2001:db8:100::1/128*[BGP/170] 00:33:43, localpref 100
AS path: 65001 I, validation-state: unverified
> to fe80::205:86ff:fe0c:dd03 via xe-0/0/0.0
[BGP/170] 00:33:46, localpref 100
AS path: 65002 65004 65001 I, validation-state: unverified
> to fe80::205:86ff:fec6:b503 via xe-0/0/1.0
2001:db8:100::2/128*[BGP/170] 00:33:46, localpref 100
AS path: 65002 I, validation-state: unverified
> to fe80::205:86ff:fec6:b503 via xe-0/0/1.0
[BGP/170] 00:33:43, localpref 100
AS path: 65001 65004 65002 I, validation-state: unverified
> to fe80::205:86ff:fe0c:dd03 via xe-0/0/0.0
2001:db8:100::4/128*[BGP/170] 00:33:46, localpref 100
AS path: 65002 65004 I, validation-state: unverified
> to fe80::205:86ff:fec6:b503 via xe-0/0/1.0
[BGP/170] 00:33:43, localpref 100
AS path: 65001 65004 I, validation-state: unverified
> to fe80::205:86ff:fe0c:dd03 via xe-0/0/0.0
予想通り、この出力では、リーフ1が他のすべてのファブリックデバイスのループバックアドレスを学習したことを確認しています。リーフ 2 では、スパイン 1 を経由するパスとスパイン 2 を経由するパスの 2 つの等コスト パスが示されています。
必要に応じて、特定のBGPネイバーにアドバタイズされた、または特定のBGPネイバーから受信した特定のルートを表示することで、ルーティングの問題を切り分けることができます。リンクローカル アドレスへの ping と同様に、対応するエグレス インターフェイスでピアのリンクローカル IP を修飾する必要があることに注意してください。
user@leaf1> show route advertising-protocol bgp fe80::205:86ff:fe0c:dd03%xe-0/0/0.0 inet6.0: 8 destinations, 10 routes (8 active, 0 holddown, 0 hidden) Prefix Nexthop MED Lclpref AS path * 2001:db8:100::2/128 Self 65002 I * 2001:db8:100::3/128 Self I user@leaf1> show route receive-protocol bgp fe80::205:86ff:fe0c:dd03%xe-0/0/0.0 inet.0: 8 destinations, 8 routes (8 active, 0 holddown, 0 hidden) inet6.0: 8 destinations, 10 routes (8 active, 0 holddown, 0 hidden) Prefix Nexthop MED Lclpref AS path * 2001:db8:100::1/128 fe80::205:86ff:fe0c:dd03 65001 I * 2001:db8:100::4/128 fe80::205:86ff:fe0c:dd03 65001 65004 I
ファブリックがECMPロードバランシングをサポートしていることを確認します。リーフ 1 がリーフ 2 に到達するために使用するルートの詳細を表示します。各スパインデバイスを1つずつ、合計2つの等コスト ルートが想定されます。以下では、ルーティングテーブルとフォワーディングテーブル(RIBとFIB)の両方でECMPを確認します。
user@leaf1> show route 2001:db8:100::4 detail
inet6.0: 8 destinations, 11 routes (8 active, 0 holddown, 0 hidden)
2001:db8:100::4/128 (2 entries, 1 announced)
*BGP Preference: 170/-101
Next hop type: Router, Next hop index: 0
Address: 0xd057cc8
Next-hop reference count: 2
Source: fe80::205:86ff:fe0c:dd03%xe-0/0/0.0
Next hop: fe80::205:86ff:fe0c:dd03 via xe-0/0/0.0, selected
Session Id: 0
Next hop: fe80::205:86ff:fec6:b503 via xe-0/0/1.0
Session Id: 0
State: <Active Ext>
Peer AS: 65001
Age: 1:39:21
Validation State: unverified
Task: BGP_0_65003.fe80::205:86ff:fe0c:dd03
Announcement bits (3): 0-KRT 1-BGP_Multi_Path 2-BGP_RT_Background
AS path: 65001 65004 I
Accepted Multipath
Localpref: 100
Router ID: 10.0.0.1
Thread: junos-main
BGP Preference: 170/-101
Next hop type: Router, Next hop index: 1731
Address: 0xd22cc50
Next-hop reference count: 5
Source: fe80::205:86ff:fec6:b503%xe-0/0/1.0
Next hop: fe80::205:86ff:fec6:b503 via xe-0/0/1.0, selected
Session Id: 321
State: <Ext>
Inactive reason: Active preferred
Peer AS: 65002
Age: 1:39:21
Validation State: unverified
Task: BGP_0_65003.fe80::205:86ff:fec6:b503
AS path: 65002 65004 I
Accepted MultipathContrib
Localpref: 100
Router ID: 10.0.0.2
Thread: junos-main
user@leaf1> show route forwarding-table destination 2001:db8:100::4
Routing table: default.inet6
Internet6:
Destination Type RtRef Next hop Type Index NhRef Netif
2001:db8:100::4/128 user 0 ulst 131070 2
fe80::205:86ff:fe0c:dd03
ucst 1730 6 xe-0/0/0.0
fe80::205:86ff:fec6:b503
ucst 1731 6 xe-0/0/1.0
この出力から、リーフ1とリーフ2の間の両方のパスがトラフィックの転送にアクティブに使用されており、マルチパスルートの一部であることがわかります。
リーフ 1 とリーフ 2 がアンダーレイを介して接続されていることを確認します。
user@leaf1> traceroute no-resolve 2001:db8:100::4 traceroute6 to 2001:db8:100::4 (2001:db8:100::4) from 2001:db8:100::3, 64 hops max, 12 byte packets 1 2001:db8:100::1 220.185 ms 210.200 ms 203.652 ms 2 2001:db8:100::4 213.774 ms 246.773 ms 186.533 ms
この出力では、リーフ 1 とリーフ 2 にアンダーレイ接続があることを確認します。このパスは、最初のホップとしてのループバックアドレスで示されるように、このフローがスパイン1を通過したことを示しています。
これで、このアンダーレイは、選択したEVPN-VXLANオーバーレイをサポートする準備が整いました。使用可能なオーバーレイ オプションの詳細については、 VXLAN データ プレーン カプセル化を使用した EVPN について を参照してください。