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
ラボの例 - エイリアシング
VLAN フォワーディング テーブルに MAC アドレスが挿入されると、転送 動作を詳しく検証することができます。PE11 の EVPN-1 の mac-table をみ ると、データ センター 2 の MAC アドレスの宛先のネクスト ホップ イン デックス値が 1048609 であることが表示されます。
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
この値は、宛先 PE に対応するネクスト ホップのリストのインデックスを 表しています。宛先 PE のリストを決定するには、まず、ネクスト ホップ インデックスに関連付けられた ESI を見つけます。この場合、ネクスト ホッ プ インデックスは、データ センター 2 で構成された ESI と一致します。
cse@PE11> show evpn instance EVPN-1 extensive Instance: EVPN-1
Route Distinguisher: 11.11.11.11:1 VLAN ID: 100
<snip>
Number of ethernet segments: 2
<snip>
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
次に、mpls.0 テーブルで、ESI に関連付けられた MPLS ラベルを見つけ ます。この場合、MPLS ラベルは 301200 です。この場合の MPLS ラベルは、
トラフィックの転送には使用されません。これは EVPN が使用するダミー ルートで、ネクスト ホップのリストを指しています。
cse@PE11> show route table mpls.0 | match EVPN-1 | match esi
301184 *[EVPN/7] 2d 03:35:55, routing-instance EVPN-1, route-type Egress-MAC, ESI 00:11:11:11:11:11:11:11:11:11
301200 *[EVPN/7] 2d 03:35:55, routing-instance EVPN-1, route-type Egress-MAC, ESI 00:22:22:22:22:22:22:22:22:22
mpls.0 テーブルをもう一度見て、ラベル エントリのネクスト ホップを確 認します。この場合は、PE21 と PE22 です。forwarding-table を見ると、
デフォルトで EVPN の負荷分散(エイリアシング)が有効になっているた めに、実際に使用される 2 つのネクスト ホップが表示されます。ラベル 300848 とラベル 301040 は、リモート PE から受信した MAC ラベルとエイリ
アシング ラベルに対応します。
cse@PE11> show route label 301200
mpls.0: 37 destinations, 38 routes (37 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both
301200 *[EVPN/7] 2d 03:44:05, routing-instance EVPN-1, route-type Egress-MAC, ESI 00:22:22:22:22:22:22:22:22:22
> to 10.11.1.1 via xe-1/2/0.0, label-switched-path from-11-to-21 to 10.11.1.1 via xe-1/2/0.0, label-switched-path from-11-to-22 cse@PE11> show route forwarding-table label 301200
Routing table: default.mpls MPLS:
Destination Type RtRef Next hop Type Index NhRef Netif 301200 user 0 ulst 1048609 2 indr 1048577 3
10.11.1.1 Push 300848, Push 300912(top) 606 3 xe-1/2/0.0
indr 1048574 3
10.11.1.1 Push 301040, Push 300928(top) 603 3 xe-1/2/0.0
EVPN エイリアシング機能を検証するために、4 つのレイヤー 2 トラフィッ
ク フローを、Ixia 9/12 でエミュレートされた 4 台の各ホストから、宛先ホ ス ト Ixia 9/29(IP ア ド レ ス 100.1.1.29、MAC ア ド レ ス 00:00:09:c1:b0:d7)に毎秒 1000 パケット(pps)送信します。上記の
EVPN-1 転送 MAC テーブルによると、この宛先のネクスト ホップ インデッ
クスは 1048609 で、PE21 と PE22 への負荷分散トラフィックを確認したも のです。
CE10 からフローが開始されると、2 つのアップリングの間で 4 つのトラ フィック フローが均等に負荷分散されていることが CE10 で表示されます。
PE11 の LSP 統計をみると、PE11 が受信するトラフィック フローが PE21 と PE22 に対して負荷分散されていることが表示されます。
cse@PE11> clear mpls lsp statistics
cse@PE11> show mpls lsp statistics ingress Ingress LSP: 4 sessions
To From State Packets Bytes LSPname 12.12.12.12 11.11.11.11 Up 1 74 from-11-to-12 21.21.21.21 11.11.11.11 Up 5966 1527296 from-11-to-21 22.22.22.22 11.11.11.11 Up 5965 1527040 from-11-to-22 31.31.31.31 11.11.11.11 Up 0 0 from-11-to-31 Total 4 displayed, Up 4, Down 0
同じような転送動作が PE12 でも確認できます。
cse@PE12> clear mpls lsp statistics
cse@PE12> show mpls lsp statistics ingress Ingress LSP: 4 sessions
To From State Packets Bytes LSPname 11.11.11.11 12.12.12.12 Up 0 0 from-12-to-11 21.21.21.21 12.12.12.12 Up 3977 1018112 from-12-to-21 22.22.22.22 12.12.12.12 Up 3977 1018112 from-12-to-22 31.31.31.31 12.12.12.12 Up 0 0 from-12-to-31 Total 4 displayed, Up 4, Down 0
CE20 の統計では、PE21 と PE22 から合計 4000 pps のトラフィック フ ローを受信し、インターフェイス xe-0/0/23 の Ixia 9/29 ホストに配信し ていることがわかります。
この例では、複数のレベルで負荷分散が行われています。まず、CE10 は、
PE11 と PE12 へのオールアクティブ マルチホーム アップリンク全体でトラ フィック フローを負荷分散しています。そしてこれらの PE は、EVPN エ イリアシングを使用してデータ センター 2 のリモート PE へのトラフィッ クを負荷分散しています。
実際には、さらに多くのレベルで負荷分散が行われる可能性があります。
例えば、PE のペアの間に複数の LSP があれば、宛先 PE へのトラフィッ ク フローが負荷分散されます。LSP がたまたま LAG を通過すると、トラ フィック フローは、リンク バンドル メンバーの間でさらに負荷分散されま す。そのため、EVPN を使用して、レイヤー 2 のアクセスおよびコアと 「レ イヤー 3 の動作 - VLAN 間ルーティング」セクションで説明するレイヤー 3 トラフィックを含む、ネットワークのすべてのセグメントでリンクの利 用が最適化されます。
EVPN での負荷分散はフロー レベルで実行されます。つまり、あるフロー のすべてのパケットがネットワーク中の同じパスを通るということです。
これによって、パケットの順番が変わる可能性を排除し、遅延を最小限に 抑えます。フローはパケット ヘッダーにあるフィールドに基づいて識別さ れます。Junos は識別に使用するフィールドを細かく制御します。
MAC モビリティ
前に説明したように、PE は ローカル EVI アクセス インターフェイスを通 じて送信元 MAC アドレスを学習すると、他のすべての PE に MAC アドバ タイズメント ルートを送信します。MAC アドレスが他のイーサネット セ グメントに移動した場合、今度は他の PE から到達可能になりますが、元 の PE はこのアクションを認識せず、MAC アドバタイズメント ルートを取 り消しません。EVPN は MP-BGP コントロール プレーンを使用して MAC アドレスの移動を追跡し、このシナリオに対応するように設計されていま す。これを MAC モビリティといいます。
MAC アドレスがリモート データ センターの別のイーサネット セグメント に移動するとします。新しいデータ センターの PE は、MAC アドレスを学 習すると、他のすべての PE に MAC アドバタイズメント ルートを送信し ます。元のデータ センターの PE ルーターはこのルートを受信して、いく つかのアクションを実行します。まず、フォワーディング テーブルを新し いリーチャビリティ情報を使用して更新します。これによって、以前にア ドバタイズしていた MAC アドバタイズメント ルートの取り消しが行われ ます。
前の「MAC 学習」セクションで述べたように、MAC モビリティ拡張コミュ ニティには、各 MAC の移動によって増加するシーケンス番号が含まれま す。PE はこれを使用して、MAC アドバタイズメントが正しく処理される ようにします。これは、MAC フラッピングの検出にも使用することができ ます。例えば、PE は所定期間内の MAC の移動回数が設定されたしきい値を 超えていることを検出すると、通信業者に警告して、MAC アドバタイズメン ト ルートの送信を停止します。このコミュニティは、Junos の今後のリリー スでサポートされる予定です。
ラボの例 – MAC モビリティ
本書のラボ トポロジーには、データ センター 2 の Server 2(MAC アドレ ス 00:50:56:8C:76:67)上に、VLAN 100 で稼働する仮想マシンがありま す。PE11 の EVPN VLAN 100 フォワーディング テーブルは、この MAC ア ドレスがリモートであることを示します。以前に確認したように、PE11 は この MAC アドレス の MAC アドバタイズメント ルートを PE21 と PE22 か ら受信します。PE12 の出力も以下と同様です。
cse@PE11> show evpn mac-table 00:50:56:8c:76:67
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:50:56:8c:76:67 DC 1048609 1048609
PE21 では、この MAC アドレスはローカルで学習されています。PE22 の 出力も以下と同様です。
cse@PE21> show evpn mac-table 00:50:56:8c:76:67
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:50:56:8c:76:67 D ae0.100
次に、VMware vMotion を使用して、仮想マシンをデータ センター 1 の Server 1 に移動しましょう。MAC アドレス 00:50:56:8c:76:67 は、今度 は PE11 インターフェイス ae0.100 に対してローカルになります。
cse@PE11> show evpn mac-table 00:50:56:8c:76:67
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:50:56:8c:76:67 D ae0.100
PE11 では、PE21 と PE22 からの MAC アドバタイズメント ルートが取り消 されていることがわかります。PE 12 からの単一の MAC ルートのみが受け 入れられ、無視されます。
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:11.11.11.11:1::100::00:50:56:8c:76:67/304 *[EVPN/170] 00:02:13 Indirect
2:12.12.12.12:1::100::00:50:56:8c:76:67/304
*[BGP/170] 00:02:11, localpref 100, from 1.1.1.1 AS path: I, validation-state: unverified
> to 10.11.12.12 via ae1.0, label-switched-path from-11-to-12 2:11.11.11.11:1::100::00:50:56:8c:76:67::100.1.1.10/304
*[EVPN/170] 00:02:12 Indirect