MAC 学習
PE ルーターが EVI アクセス インターフェイスで新しい MAC アドレスを検 出すると、そのアドレスを適切なローカル レイヤー 2 フォワーディング テーブル、つまり MAC-VRF に追加します。そして、PE は MP-BGP を使 用して、MAC アドバタイズメント ルートをすべてのリモート PE に送信し ます。これはまさに、EVPN の基礎であるコントロール プレーンベースの MAC 学習プロセスにほかなりません。
PE の MAC アドバタイジング ルートには、以下の情報が含まれています。
EVI に対応するルート ターゲット
学習された MAC アドレス
MAC アドレスが学習されたイーサネット タグ または VLAN ID
MAC アドレスが学習された ESI
MAC アドレスに対応する IP アドレス(既知で IRB が構成されてい
る場合)
MAC アドレスに対応する MPLS サービス ラベルまたは MAC ラベル
デフォルト ゲートウェイ拡張コミュニティ – VLAN の IRB インター フェイスで構成されている MAC/IP アドレス バインディング用
MAC モビリティ拡張コミュニティ – MAC の移動処理および MAC フ
ラッピングの検出用
PE は、CE へのローカル接続から MAC アドレスを最初に学習すると、IP アドレスのない MAC アドバタイジング ルートを送信します。また、所与 のホストの MAC/IP バインディングを学習すると、MAC アドレスと IP ア ドレスの両方を含む別の MAC アドバタイズメント ルートを送信します。
このプロセスをホストの MAC/IP の同期といいます。このラボ ネットワー クでは、MAC/IP バインディングは、ARP スヌーピングを通じて PE が動 的に学習します。また、EVPN VLAN の IRB インターフェイスは、PE が MAC/IP アドバタイズメント ルートを送信するように構成されている必要 があります。
PE は、デフォルト ゲートウェイ拡張コミュニティに合わせてローカルで 構成された IRB インターフェイスの IP アドレスと MAC アドレス を含む MAC/IP アドバタイズメント ルートもアドバタイズします。デフォルト ゲートウェイ拡張コミュニティは、受信 PE に対して、アドバタイズ元 PE の代わりにトラフィックをルーティングするように通知します。このプロ セスをデフォルト ゲートウェイの同期といいます。MAC/IP アドバタイズ メントは、レイヤ 3 ルーティングとレイヤー 2 EVPN の統合に必須です。
これについては、後の「レイヤー 3 の動作」セクションで詳しく説明します。
MAC アドバタイズメント ルートに ESI を含めることは、エイリアシング や負荷分散の実装に不可欠です。前のセクションでは、マルチホーム PE がすべてのリモート PE に自動検出ルートを送信して、共通の ESI に接続 していることを学びました。その後、所定のリモート PE が ESI から MAC アドレスを学習すると、マルチホーム PE のセットを通じて宛先に到達可 能であることを認識します。これによって、PE は共通の ES に接続してい る複数の PE へのトラフィックを負荷分散させることができます。これに ついては、以下の「エイリアシングを使用したレイヤー 2 転送」で詳しく 説明します。
MAC アドバタイズメント ルートの ESI により、マルチホーム PE 上のロー カルの宛先への転送も最適化されます。PE がマルチホーム ピア PE から MAC アドバタイジング ルートを受け取ると、ローカル ES インターフェイ スをネクスト ホップとして、フォワーディング エントリを適切な EVI
VLAN の MAC-VRF テーブルに設定します。その結果、PE のローカル イン
ターフェイスが、コアを経由するよりも常に優先されます。これは、PE が その MAC アドレスをまだローカル インターフェイスで学習していなかっ た場合を仮定しており、すでに学習済みの場合は、PE は受信した MAC ア ドバタイズメント ルートを無視します。
ローカル MAC アドレスが PE のフォワーディング テーブルからエージア ウトされると、宛先に到達できなくなるため、以前にアドバタイズされた MAC アドバタイズメント ルートを取り消す必要があります。MAC ルート のアドバタイズメントと取り消しは、MAC アドレスが ES から他の ES に 移動する場合に特に重要です。MAC モビリティ拡張コミュニティは、この プロセスを強固にするのに役立ちます。このトピックについては、以下の
「MAC モビリティ」セクションで詳しく説明します。
ラボの例 – MAC 学習
PE11 の EVI EVPN-1 ステータスを見ると、MAC 学習に関連する多くの詳細 がわかります。まず、リモート PE にアドバタイズされたサービス ラベル
(MAC route label)は 300944 です。このインスタンスは、PE12 とデータ セン ター 2 の PE を含む Remote PE から 6 つの MAC アドバタイズメント ルー トを受け取り、Local インターフェイスの 2 つのローカル MAC アドレスを 学習しています。このインスタンスには、静的に構成された IRB インター フェイスに対応する、Local デフォルト ゲートウェイの MAC アドレスが 1 つ あ り ま す。EVPN-2 な ど、 複 数 の VLAN を 含 む EVI の Total MAC addresses に、すべての VLAN の MAC アドレスの総数が表示されます。
さ ら に、PE11 は ネ イ バ ー か ら MAC address advertisement と MAC+IP address advertisement を受信しています。MAC label ヘッダーの下では、
PE11 が各リモート PE から MPLS MAC サービス ラベルの値も学習してい ることがわかります。興味深いことに、各 PE がアドバタイズするサービ ス ラベルの値とエイリアシング ラベルの値は同じです。
cse@PE11> show evpn instance EVPN-1 extensive Instance: EVPN-1
Route Distinguisher: 11.11.11.11:1 VLAN ID: 100
Per-instance MAC route label: 300944
MAC database status Local Remote Total MAC addresses: 2 6 Default gateway MAC addresses: 1 0 Number of local interfaces: 1 (1 up)
Interface name ESI Mode Status ae0.100 00:11:11:11:11:11:11:11:11:11 all-active Up Number of IRB interfaces: 1 (1 up)
Interface name VLAN ID Status L3 context irb.100 100 Up IPVPN-1 Number of bridge domains: 1
VLAN ID Intfs / up Mode MAC sync IM route label 100 1 1 Extended Enabled 301216
Number of neighbors: 3 12.12.12.12
Received routes
MAC address advertisement: 3 MAC+IP address advertisement: 1 Inclusive multicast: 1 Ethernet auto-discovery: 2 21.21.21.21
Received routes
MAC address advertisement: 1 MAC+IP address advertisement: 0 Inclusive multicast: 1 Ethernet auto-discovery: 2 22.22.22.22
Received routes
MAC address advertisement: 2 MAC+IP address advertisement: 2
Inclusive multicast: 1 Ethernet auto-discovery: 2 Number of ethernet segments: 2
ESI: 00:11:11:11:11:11:11:11:11:11 Status: Resolved by IFL ae0.100
Local interface: ae0.100, Status: Up/Forwarding Number of remote PEs connected: 1
Remote PE MAC label Aliasing label Mode 12.12.12.12 300688 300688 all-active Designated forwarder: 11.11.11.11
Backup forwarder: 12.12.12.12 Advertised MAC label: 300976 Advertised aliasing label: 300976 Advertised split horizon label: 299984 ESI: 00:22:22:22:22:22:22:22:22:22 Status: Resolved by NH 1048609 Number of remote PEs connected: 2
Remote PE MAC label Aliasing label Mode 21.21.21.21 300848 300848 all-active 22.22.22.22 301040 301040 all-active
EVI EVPN-1 の レイヤー 2 フォワーディング テーブルには、動的に学習し た MAC アドレスが表示されています。
cse@PE11> show evpn mac-table
MAC flags (S -static MAC, D -dynamic MAC, L -locally learned, C -Control MAC O -OVSDB MAC, SE -Statistics enabled, NM -Non configured MAC, R -Remote PE MAC) Routing instance : EVPN-1
Bridging domain : __EVPN-1__, VLAN : 100
MAC MAC Logical NH RTR address flags interface Index ID 00:00:09:c1:b0:d3 D ae0.100
00:00:09:c1:b0:d7 DC 1048609 1048609 00:00:51:01:96:44 D ae0.100
00:00:51:01:96:45 DRC ae0.100 00:00:51:01:96:46 DRC ae0.100
00:50:56:8c:76:67 DC 1048609 1048609
MAC flags の値が D のみの MAC アドレスが 2 つありますが、これらはアク セス インターフェイス ae0.100 でローカルで学習したものです。その他の 4 つのアドレスは、PE12 とデータ センター 2 の PE を含むリモート PE か ら学習したものです。これらのすべてのエントリの MAC flags の値には C が含まれています。これは、MP-BGP MAC アドバタイズメントの更新に より学習した制御 MAC であることを示します。さらに、4 つのエントリの うち 2 の MAC flags の値には R が含まれています。これは、マルチホーム ピア PE12 から学習し、ローカル アクセス インターフェイス ae0.100 を通 じて到達可能であることを示しています。
上記の Total MAC Addresses の出力に 6 とあるのに、リモートで学習した MAC アドレスが 4 つしかないのはなぜでしょうか。その理由は、PE11 が PE12 から受信した 2 つの MAC アドバタイジング ルートが、2 つのローカ ルで学習した MAC アドレスと一致するからです。この 2 つのローカル MAC アドレスが優先されるため、該当する MAC アドバタイジング ルート は無視されているのです。
注 仮想スイッチとして構成された EVI に対する同等のコマンドは、show bridge mac-table bridge-domain <VLAN name> instance <EVI name> です。
ホストの MAC アドレスに対応する IP アドレスも、既知であればアドバタ イズされることを思い出してください。EVI EVPN-1 の EVPN データベース には、レイヤー 2 フォワーディング テーブル、関連する IP アドレス(既知 の場合)、ESI の場所と同一の MAC アドレスが含まれます。ローカルで構 成されたデフォルト ゲートウェイに対応するエントリもリストに表示され ます。
cse@PE11> show evpn database instance EVPN-1 Instance: EVPN-1
VLAN MAC address Active source Timestamp IP address 100 00:00:00:01:01:01 irb.100 Nov 06 17:54:46 100.1.1.1 100 00:00:09:c1:b0:d3 00:11:11:11:11:11:11:11:11:11 Nov 07 09:45:31 100.1.1.12 100 00:00:09:c1:b0:d7 00:22:22:22:22:22:22:22:22:22 Nov 07 09:45:32 100.1.1.29 100 00:00:51:01:96:44 00:11:11:11:11:11:11:11:11:11 Nov 07 09:54:53
100 00:00:51:01:96:45 00:11:11:11:11:11:11:11:11:11 Nov 07 09:54:55 100 00:00:51:01:96:46 00:11:11:11:11:11:11:11:11:11 Nov 07 09:54:55
100 00:50:56:8c:76:67 00:22:22:22:22:22:22:22:22:22 Nov 07 07:12:51 100.1.1.10 MAC アドレス 00:50:56:8c:76:67 に注目すると、リモート PE から学習 した MAC アドバタイズメント ルートが 3 つあることがわかります。この MAC アドレス は、現在、データ センター 2 にある VLAN 100 仮想マシン
(VM)に対応します。PE21 と PE22 は両方とも PE11 にアドバタイズされ たホストの MAC アドレスを学習しています。さらに、PE22 は MAC/IP ア ドレス バインディングをアドバタイズします。これらのルートは、EVPN NLRI ルート タイプ 2 です。
cse@PE11> show route table EVPN-1.evpn.0 evpn-mac-address 00:50:56:8c:76:67 EVPN-1.evpn.0: 18 destinations, 18 routes (18 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both
2:21.21.21.21:1::100::00:50:56:8c:76:67/304
*[BGP/170] 04:03:50, localpref 100, from 1.1.1.1 AS path: I, validation-state: unverified
> to 10.11.1.1 via xe-1/2/0.0, label-switched-path from-11-to-21 2:22.22.22.22:1::100::00:50:56:8c:76:67/304
*[BGP/170] 1d 01:03:50, localpref 100, from 1.1.1.1 AS path: I, validation-state: unverified
> to 10.11.1.1 via xe-1/2/0.0, label-switched-path from-11-to-22
2:22.22.22.22:1::100::00:50:56:8c:76:67::100.1.1.10/304
*[BGP/170] 1d 01:03:50, localpref 100, from 1.1.1.1 AS path: I, validation-state: unverified
> to 10.11.1.1 via xe-1/2/0.0, label-switched-path from-11-to-22 最後の MAC/IP アドバタイズメント ルートをさらに詳しく見ると、ルート ターゲットは EVPN-1 に一致し、VLAN ID は 100、この MAC の宛先の PE22 へのトラフィックの送信に使用される PE11 用のラベルは 301040、この MAC ア ド レ ス は デ ー タ セ ン タ ー 2 で 構 成 さ れ て い る ESI 00:22:22:22:22:22:22:22:22:22 を通じて学習されたことがわかります。
cse@PE11> show route table EVPN-1.evpn.0 evpn-mac-address 00:50:56:8c:76:67 detail EVPN-1.evpn.0: 18 destinations, 18 routes (18 active, 0 holddown, 0 hidden)
<snip>
2:22.22.22.22:1::100::00:50:56:8c:76:67::100.1.1.10/304 (1 entry, 1 announced) *BGP Preference: 170/-101
Route Distinguisher: 22.22.22.22:1 Next hop type: Indirect
Address: 0x95c5868
Next-hop reference count: 41 Source: 1.1.1.1
Protocol next hop: 22.22.22.22
Indirect next hop: 0x2 no-forward INH Session ID: 0x0 State: <Secondary Active Int Ext>
Local AS: 65000 Peer AS: 65000 Age: 1d 16:51:15 Metric2: 2 Validation State: unverified Task: BGP_65000.1.1.1.1+179
Announcement bits (1): 0-EVPN-1-evpn AS path: I (Originator)
Cluster list: 1.1.1.1 Originator ID: 22.22.22.22 Communities: target:65000:1 Import Accepted
Route Label: 301040
ESI: 00:22:22:22:22:22:22:22:22:22 Localpref: 100
Router ID: 1.1.1.1
Primary Routing Table bgp.evpn.0