キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 
cancel
66
閲覧回数
1
いいね!
0
コメント
tokyu
Cisco Employee
Cisco Employee

 

 

 

 

はじめに

 

ACI ファブリックネットワークを構築するために、Switch の物理インターフェースに VLAN Pool を適用して設定することが必要です。 本ドキュメントでは、VLAN Pool の仕組み、設定時の注意点や VLAN Pool の設定を確認するための便利なツールをご紹介します。

ACI における Domain、EPG/L3Out、Policy Group や MO (Managed Object) などについてすでに知識のある方を対象に作成しておりますので、それらの基本概念について詳細な説明を割愛します。

 

  

VLAN Pool の基本

 

ACI では、VLAN Pool を利用して物理インターフェースに割り当て可能な VLAN 番号のレンジを指定します。VLAN Pool を設定するには APIC GUI の Fabric > Access Policies > Pools > VLAN を右クリックし、Create VLAN Pool をクリックしてください。

例えば、下記の例では、2800 から 2899 までの 100 個の VLAN 範囲を指定しています。

Screenshot 2025-04-23 at 16.44.52.png

作成された VLAN Pool を Domain、AEP (Access Entity Profiles)、Policy Group の順に関連づけをし、最終的に Switch の物理インターフェースに適用します。

Screenshot 2025-04-23 at 16.32.23.png

VLAN Pool を物理インターフェースに適用することで、その物理インターフェースに EPG や L3Out としてデプロイ可能な 802.1q VLAN は、VLAN Pool に指定された範囲の中に制限されています。それにより、マルチテナント運用が必要なデータセンターネットワークのセキュリティが向上するなどのメリットがあります。

また、VLAN Pool を物理インターフェースに適用したタイミングでは、まだ実際その物理インターフェースに VLAN をデプロイしていないことに注意してください。VLAN Pool を適用することは、あくまでもデプロイ可能な 802.1q VLAN の範囲を規定するだけです。

  

VLAN Pool の注意点 1 - F0467

 

VLAN Pool にはモードの設定があり、Dynamic Allocation と Static Allocation のいずれかが選択できます。

Screenshot 2025-04-23 at 17.15.07.png

 

Dynamic Allocation を選択した場合、EPG としてデプロイする 802.1q VLAN は自動的に VLAN Pool より払い出されます。 Dynamic Allocation は主に EPG に仮想マシンを VMM (Virtual Machine Manager) 連携してデプロイする際に利用されます。一方 Bare metal の物理サーバを Switch の固定ポート (Static Port) に接続して EPG としてデプロイするなどの場合は、手動で 802.1q VLAN を EPG に設定する必要があるため、VLAN Pool のモードを Static Allocation に選択してください。

EPG の Static Port に 802.1q VLAN 2850 を手動で設定する例

Screenshot 2025-04-23 at 17.32.03.png

 

その際に設定した 802.1q VLAN が VLAN Pool の範囲に含まれていないと、F0467 (invalid-vlan) の Fault が発生します。

F0467 の例

luicontr_0-1685889938607.png

上記の F0467 (invalid-vlan) では、EPG に設定した 802.1q VLAN 421 が VLAN Pool レンジに含まれていないことを示しています。

正しい設定例

Screenshot 2025-04-24 at 12.22.06.png

F0467 が出る設定例

Screenshot 2025-04-24 at 12.44.26.png

F0467 (invalid-vlan) を回避するために、VLAN Pool モードを Static Allocation にした場合、必ず VLAN Pool のレンジから EPG に 802.1q VLAN 番号を指定ししてください。

 

  

VLAN Pool の注意点 2 - Overlapping VLAN Pool

1 つの EPG に複数の VLAN Pool を紐付けており、さらにそれらの VLAN Pool のレンジに重複がある状態を Overlapping VLAN Pool と呼んでいます。例えば下記の例では、EPG A に対して VLAN Pool 1 と VLAN Pool 2 が紐づいていますが、VLAN 10 - 20 のレンジは、VLAN Pool 1 と VLAN Pool 2 の両方に含まれており、重複しています。

Overlapping VLAN Pool の例 1

 Screenshot 2025-04-24 at 17.12.56.png

Overlapping VLAN Pool の例 2

Screenshot 2025-04-24 at 17.13.13.png

Overlapping VLAN Pool が起きていると、下述のような理由で通信が失敗する問題は発生する可能性がありますので、Overlapping VLAN Pool を避けなければいけません。

 

 

FD (Forwarding Domain) VNID or VLAN VNID とは

Overlapping VLAN Pool を理解するのにまず FD VNID または VLAN VNID についてご説明します。

ACI Fabric 内部では VXLAN を使ってパケットをカプセル化して転送します。VXLAN では ネットワークセグメントを一意に識別ための識別子のことを VXLAN VNID と呼んでいます。ACI Fabric では VRF や BD (Bridge Domain) ごとに 1 つの VXLAN VNID (VRF VNID と BD VNID) を割り当てています。L3 通信の際に、VRF を VXLAN Fabric 内で識別するには VRF VNID を、L2 通信 ( BUM トラフィックなど ) の際に、BD を VXLAN Fabric 内で識別するには BD VNID を利用しています。

さらに、VRF VNID や BD VNID とは別に、VLAN ごとにも VXLAN VNID を割り当てています。それが VLAN VNID または FD VNID と呼ばれています。VLAN VNID は下記の用途に使われます。

  • VPC ピア間のエンドポイント情報の同期
  • ファブリック内で STP (Spanning Tree Protocol) の BPDU フレームの Flooding
  • Flood in Encap オプションが BD/EPG の設定で有効になった際に、ファブリック内で BUM (Broadcast, Unknown Unicast, Multicast) トラフィックの Flooding

まとめる、ACI Fabric では主に下記の 3 種類の VXLAN VNID が使われています。

VXLAN VNID の種類 用途
VRF VNID L3 通信のときに VRF をファブリック内で一意に識別
BD VNID  L2 通信のときに BD をファブリック内で一意に識別
VLAN VNID VPC, STP BPDU, Flood in Encap

上記の機能が正しく動作するために VLAN VNID と VLAN ID のマッピングは必ず Fabric 内のどの Switch ノードにおいても一致しなければいけません

正しいマッピングの例 ( Switch 101 と 102 でマッピングが一致している )

  802.1q Encap VLAN VLAN VNID
Switch node 101 100 9792
Switch node 102 100 9792

 

マッピングが不一致の例 ( Switch 101 と 102 のマッピングが不一致 )

  802.1q Encap VLAN VLAN VNID
Switch node 101 100 9792
Switch node 102 100 8492

 

また、VLAN VNID のマッピングの不一致が VPC ピア間で起きていると、下記のように F3274 の Fault によって検知することが可能です。

"Code" : "F3274",
"Description" : "VNID mismatch between peers detected for encap vlans (<vlanId>).",
"Dn" : "topology/pod-1/node-<leafNodeId>/sys/vpc/inst/dom-<domainId>/if-<ifId>/fault-F3274"  

 

VLAN VNID のマッピングが Switch 間で不一致していると、下記のような問題が起きる可能性があり、通信障害が生じることがあります。

  • VPC 間のエンドポイント情報が正しく同期されない
  • STP BPDU が正しく転送されないため、ループが起きる
  • Floop in Encap が設定された場合、ARP リクエストを含む BUM トラフィックが正しく転送されないため、通信が失敗する

 

VLAN VNID マッピングの割り当て方法

特定の VLAN ID に対してどの VLAN VNID を割り当てるかは、VLAN Pool によって決まります。以下に VLAN Pool から、割り当てる VLAN VNID を計算する仕組みを説明します。

例えば、VLAN Pool を 2620 から 2699 までのレンジにしている場合、下記のように moquery コマンドを利用してフィルタすることでその VLAN Pool に対応する Managed Object を見つけることができます。

apic1# moquery -c fvnsEncapBlk -f 'fvns.EncapBlk.from=="vlan-2620"' # VLAN レンジでフィルタをかける
Total Objects shown: 1

# fvns.EncapBlk
from : vlan-2620
to : vlan-2699
allocMode : inherit
childAction :
descr :
dn : uni/infra/vlanns-[tokyu-vlan]-dynamic/from-[vlan-2620]-to-[vlan-2699] # VLAN Pool 名が "tokyu-vlan"

 

VLAN Pool 名が見つかったら、その VLAN Pool から Base VNID の番号を下記のように moquery を使って調べることができます。

apic1# moquery -c stpAllocEncapBlkDef -x 'query-target-filter=wcard(stpAllocEncapBlkDef.encapBlk,"tokyu-vlan")'

# stp.AllocEncapBlkDef
encapBlk : uni/infra/vlanns-[tokyu-vlan]-dynamic/from-[vlan-2620]-to-[vlan-2699]
base : 9392

上記の出力例では、Base VNID が 9392 になっています。

ここで、仮に EPG に対して 802.1q VLAN を 2650 に設定すると、VLAN ID 2650 にマッピングする VXLAN VNID は下記のように計算されます。

VXLAN VNID (VLAN VNID) = <Base VNID> + (<802.1q encap in EPG> - <from_encap in VLAN Pool>)

今回の場合、上記の結果から

  • Base VNID = 9392
  • 802.1q encap in EPG = 2650
  • from_encap in VLAN Pool = 2620

だと分かったので、今回の VLAN VNID = 9392 + (2650 – 2620) = 9422 だと計算されます。

このように、VLAN VNID が EPG に設定した 802.1q VLAN とそれに対応する VLAN Pool をもとに算出されるので、1 つの VLAN ID に複数の VLAN Pool が紐づいていると、つまり Overlapping VLAN Pool が発生すると 、この計算結果に一貫性がなくなり、ファブリック内で VLAN VNID のマッピングの不一致が起き、上述したように通信障害が発生する恐れがあります。

 

Overlapping VLAN Pool を防ぐには

ACI では Overlapping VLAN Pool の状態を引き起こす設定を検知し、それを防ぐ機能が用意されています。

APIC Web GUI にログインして、System System Settings > Fabric-Wide Settings > Enforce EPG VLAN Validation の項目にチェックを入れて有効にすることができます ( Default では有効にされていません ) 。

Screenshot 2025-04-25 at 17.44.59.png

こちらの機能が有効になった場合、Overlapping VLAN Pool の設定を入れようとすると、それを検知して下記のポップアップを画面上に表示した上で、この設定の投入を阻止します。ただし、この機能を有効化する前にすでに入った設定が消されません。

Screenshot 2025-04-25 at 17.45.16.png

 

 

VLAN Pool を確認するためのツール

ここまでの説明で VLAN Pool を適切に設定することが非常に重要であることを理解して頂けたと思います。以下にこの VLAN Pool の設定を確認できるいくつか便利なツールをご紹介します。

 

1. APIC GUI

APIC の標準 GUI でも VLAN Pool の設定を簡単に確認できるようになっています。

Tenants > 該当の Tenant を選択 > Application Profiles > 該当の Application Profile を選択 >  Application EPGs > 該当の EPG を選択 > 右側のスペースのタブから Operational > Configured Access Policies を順番にクリックすると、下記のようにこの EPG に紐づいている VLAN Pool の一覧が表示されます。

Screenshot 2025-04-25 at 17.51.26.png

上記の例では、Overlapping VLAN Pool になっていることことが分かります。

 

2. Python スクリプト

添付の Python スクリプトを実行することで VLAN Pool の設定を確認することもできます。GUI と比べると、コマンドラインで実行できるため、繰り返し操作が素早くできることや、EPG だけでなく L3Out にも対応していることが利点として挙げられます。

利用方法:

1. 本資料に添付の Python スクリプトを Download し、解凍してから、APIC の /data/techsupport のディレクトリにアップロードし、適切な名前で ".py" ファイルとして保存してください。

2. ファイルに適切な実行権限を与えてください。

admin@fab2-apic1:techsupport> pwd
/data/techsupport
admin@fab2-apic1:techsupport> chmod 755 tenant_vlanpool_mappings.py
admin@fab2-apic1:techsupport> ls -lh tenant_vlanpool_mappings.py
-rwxr-xr-x 1 admin admin 12K Apr 22 17:56 tenant_vlanpool_mappings.py

3. Python スクリプトを実行し、EPG or L3Out を選んだ上でダイアログに従って必要な項目を入力したら、VLAN Pool やそれに関連づいている Domain などが表示されます。

admin@fab2-apic1:techsupport> python tenant_vlanpool_mappings.py
Please choose EPG or L3Out? (Enter 'epg' or 'l3out'): l3out
Enter the tenant name: mgmt
Enter the L3Out name: Inband_L3Out
Domains associated with L3Out Inband_L3Out: ['uni/l3dom-Inband_L3_Access_Dom']
VLAN Pool associated with domain uni/l3dom-Inband_L3_Access_Dom: uni/infra/vlanns-[L3_VLAN_102]-static
VLAN ranges in VLAN Pool uni/infra/vlanns-[L3_VLAN_102]-static: [(102, 102)]  

上記の実行例では、L3Out を選択し、Tenant 名や L3Out 名を入力すると、それに関連付けされた Domain、VLAN Pool が表示され、最終的に VLAN Pool のレンジ ( 上記の例では VLAN ID 102 のみ ) が表示されています。

 

3. ACI Pre-Upgrade Validation Script 

Pre-Upgrade Validation Script を利用することで、簡単に Overlapping VLAN Pool を検知することができます。これはアップグレードする時でなくても利用できます。Pre-Upgrade Validation Script の使い方については別の資料で詳しく説明されていますので、本資料では詳細を割愛しますが、使い方について不明点があれば、こちらをご参照ください。

Pre-Upgrade Validation Script を実行すると、[Overlapping VLAN Pool] の章で詳しい検出結果が表示されます。

Overlapping VLAN Pool を検出した際の出力例 

[Check 35/67] Overlapping VLAN Pools...                                                                              MANUAL CHECK REQUIRED
  Tenant  AP               EPG               Node  Port     VLAN Scope  VLAN ID  VLAN Pools (Domains)                                                                                         Impact
  ------  --               ---               ----  ----     ----------  -------  --------------------                                                                                         ------
  tokyu   tokyu_demo_ap_1  tokyu_demo_epg_1  101   eth1/14  global      2850     tokyu_demo_vlan_pool_28xx(tokyu_demo_phy_dom), tokyu_demo_vlanpool_28xx_overlap(tokyu_demo_phy_dom_overlap)  Flood Scope

 

 

参考情報

Getting Started

検索バーにキーワード、フレーズ、または質問を入力し、お探しのものを見つけましょう

シスコ コミュニティをいち早く使いこなしていただけるよう役立つリンクをまとめました。みなさんのジャーニーがより良いものとなるようお手伝いします