概要
仮想拡張 LAN(VXLAN)および Cisco One Fabric(以前のダイナミック ファブリック オートメーション(DFA))の導入以降、 DHCP サービスの提供は、クライアントに割り当てる適切なアドレスをサーバに通知するのに、DHCP オプション 82 に依存するようになりました。 このドキュメントでは、クライアントに適切なアドレスを割り当てるため、オプション 82 のフィールドの情報を識別するように Microsoft Windows Server 2012 を設定する方法を示します。
前提条件
要件
この記事を読む前に、以下の概念の基本的な点について理解しておくことをお勧めします。
- VXLAN イーサネット VPN(EVPN)設定
- DHCP リレー設定
- DHCP サービスの基本的な知識
- Microsoft Windows Server 2012 での DHCP サービスの設定
使用するコンポーネント
このドキュメントの情報は、次のソフトウェアとハードウェアのバージョンに基づくものです。
- 7.0(3)I1(2) を実行する Nexus 9300 および 9500 スイッチ
- Microsoft Windows Server 2012 R2
本書の情報は、特定のラボ環境にあるデバイスに基づいて作成されたものです。 このドキュメントで使用するすべてのデバイスは、初期(デフォルト)設定の状態から起動しています。 稼働中のネットワークで作業を行う場合、コマンドの影響について十分に理解したうえで作業してください。
設定
ネットワーク図

ここでの課題は、すべてのリーフ スイッチがクライアント VLAN で同じ VLAN インターフェイス アドレスを共有するため、dhcp パケットを受け取るのに一意の IP アドレスを使用する必要があるという点です。 そのため、DHCP リレー フレームを受け取るのにループバック アドレス(この場合 103)を使用します。
次の図では、2 つのフィールドが強調表示されています。1 つはフレームの送信元および宛先 IP アドレスで、もう 1 つはリレー エージェントの IP アドレス(ゲートウェイ アドレスや giaddress とも呼ばれます)です。 これは、Microsoft Windows Server がクライアントにアドレスを割り当てるため、スコープ/アドレス プールを識別するのに使用するフィールドです。 すべての VLAN はこのループバックを送信元とするため、サブネットを区別するために、他の方法が必要になります。

以下は、アドレスが割り当てられているかどうかを判断するために Microsoft Windows 2012 が使用するロジックです。

設定
Microsoft Windows Server 2012 で、まずリレー エージェント アドレスをカバーするスコープを定義する必要があります。 これは、この DHCP 検出パケットを処理できるかどうかを判断するためにサーバが使用する唯一の方法です。 リレー エージェント アドレスに一致するアドレス プールがない場合、サーバは応答しません。 そのため、まず次のスコープを作成する必要があります。

スコープの作成を開始します。

適宜名前を付けます。

DHCP リレーを実行するスイッチのループバックを含むアドレス範囲を選択します。

次にこの範囲のアドレスを必ず除外します。 この範囲にサーバが割り当てるために使用できるアドレスがないようにすることが重要です。 この範囲に使用可能なアドレスがないと、この dhcp 要求を処理するために、サーバに他のスコープとルールを検索させることができます。 この手順は、この方法を機能させるうえで最も重要な手順の 1 つになります。

次の画面が表示されるまで [Next] をクリックします。 スコープをアクティブにするため、1 つのオプションを設定する必要があります。

ルータとなるサブネット内にアドレスを追加します。 デフォルトのゲートウェイなしでは、サーバでスコープをアクティブにすることはできません。

次の画面が表示されるまで [Next] をクリックし、[Yes] を選択して [Next] をクリックします。

これで完了しました。 [Finish] をクリックします。

次にスーパースコープを作成し、このスコープを追加する必要があります。

[Next] をクリックして開始します。

適宜名前を付けます。

新しいスーパースコープに含める新たに作成したループバック スコープを選択します。

これで終了です。 [Finish] をクリックします。

次にクライアント スコープを作成する必要があります。 通常、クライアント スコープを作成するように、このスコープを作成します。次に示すように、スーパースコープにこのスコープを含める点だけ注意してください。

スコープが作成されたら、サーバが正しいスコープを特定することを可能にするオプション 82 の情報を追加します。 スコープを展開し、ポリシーに移動して、新しいポリシーを作成します。

適宜名前を付けます。

[Add] をクリックしてポリシーを作成します。

[Relay Agent Information] と [Equals] を選択します。 次のように回線 ID を追加します。 これは、クライアントに IP アドレスを割り当てるために、サーバが適切な VLAN を判断する方法になります。 各 VLAN には、VN セグメント ID に由来する一意の回線 ID が割り当てられます。 終了したら、[OK] をクリックします。

[Next] をクリックして、カスタム オプションに進みます。

[Yes] をチェックしてアドレスの範囲を選択するか、[No] を選択してスコープ内の有効なアドレスが割り振られるようにして、カスタム IP 範囲を設定できます。 ここでは、[No] が選択され、スコープ内のアドレスがクライアントに割り振られるようにしています。

必要に応じて、このポリシーのメイン スコープのオプションを上書きすることもできます。 この例では、カスタム オプションはありません。

確認してから、[Finish] をクリックしてポリシーを作成します。

これで、クライアントが新らたに作成されたスコープの IP アドレスを受信し始めたことを確認できるようになります。
複数のサブネットに対して複数の DHCP スコープが必要な場合、すべてのリーフ上のサブネット/VLAN ごとに 1 つの LoopbackX を作成し、VLAN ごとに LoopbackX 範囲スコープと実際のクライアント IP サブネット スコープでスーパースコープを作成する必要があります。
これは、Microsoft DHCP サーバが、スーパースコープの下のループバック スコープに使用可能な IP がないことを検出した後にしか、セカンダリ サブスコープから IP を割り当てないためです。
そのため、VLAX X と VLAN Y があり、2 つのスーパースコープが必要な場合、1 つにサブネット X とループバック X、もう 1 つにはサブネット Y とループバック Y を用意します。
たとえば、2 つのサブネット、VLAN 1601 と VLAN 1602 があるとします。
同じ VRF に別のアドレスで、BGP にアドバタイズされた 2 つのループバックを作成する必要があります。
interface loopback601
vrf member evpn-tenant-kk1
ip address 192.168.0.43/32
ip router ospf 1 area 0.0.0.4
interface loopback602
vrf member evpn-tenant-kk1
ip address 192.168.10.43/32
ip router ospf 1 area 0.0.0.41
router bgp 2
vrf evpn-tenant-kk1
address-family ipv4 unicast
network 192.168.0.43/32
network 192.168.10.43/32
advertise l2vpn evpn
各 VLAN は異なるループバックを DHCP リレー ソースとして使用します。
インターフェイス Vlan1601
no shutdown
vrf member evpn-tenant-kk1
no ip redirects
ip address 10.160.1.254/24
no ipv6 redirects
fabric forwarding mode anycast-gateway
ip dhcp relay address 10.160.2.253
ip dhcp relay source-interface loopback601
インターフェイス Vlan1602
no shutdown
vrf member evpn-tenant-kk1
no ip redirects
ip address 10.160.2.254/24
no ipv6 redirects
fabric forwarding mode anycast-gateway
ip dhcp relay address 10.160.2.253
ip dhcp relay source-interface loopback602
次に、異なるループバック IP 範囲を持つ、VLAN 1601 と VLAN 1602 用の 2 つのスーパースコープを作成する必要があります。
これらを設定しないと、VLAN 1601 と 1602 のホストは常に 1 つのスコープから IP を取得します。

確認
サーバで Wireshark を実行すると、正しいサブネットでオファーが送信されていることを確認できます。
