ガジェット・ソフトウェアのレビュー依頼は "ひろやま"のTwitter DMまで

WLCを使った無線通信でDHCPサーバのIPアドレスが割り振られない

Cisco のWLC(ワイヤレスLANコントロール)を使い無線環境を構築したのですが、なぜか特定VLANのDHCPサーバからだけ無線接続時にIPアドレスの割り振られない現象が起きました。
もちろん有線ではDHCPサーバからIPアドレスを取得します。WLC配下のLightweight APからのみIPアドレスが取得できないということで対処してみました。

スポンサーリンク
スポンサーリンク

ネットワークイメージ

VLAN10,20とも有線LANでは問題ありません。何故かVLAN20のみ無線接続時のDHCPのアドレス取得で発生します。

問題個所の切り分け

直接L2スイッチに自律型のAironetのアクセスポイントを仮設置してみたところ、問題なくIPアドレスを取得してくれました。L3,L2スイッチの設定は間違いないようです。

この時点で「WLCが怪しい」と思いVLAN10, 20のInterface設定、WLANs(SSID)設定を比較しましたが、GUIでは設定に違いが無く。

とは言え切り分け結果からすると、WLCを経由した端末側からのDHCPを要求するパケット(DHCP Offer or Request)がVLAN20のDHCPサーバまで届いていないことが想像されます。

参考 https://www.cisco.com/c/ja_jp/support/docs/wireless/4400-series-wireless-lan-controllers/110865-dhcp-wlc.html

スポンサーリンク

WLCの外部DHCサーバの仕組み

先ほどのCiscoの参考URLを見ていると、WLCの外部DHCPを使った仕組みには
 ・DHCPプロキシ モード
 ・DHCPブリッジ モード
の2通りの方法があることがわかりました。
デフォルトで「DHCPプロキシ」が有効になっているようです。

DHCPプロキシ モード

DHCPプロキシモードについて、Ciscoのサイトには下記の注意が書かれています。

DHCP プロキシはすべてのネットワーク環境に最適であるとは限りません。 コントローラはすべての DHCP トランザクションを修正し、ヘルパー関数を提供し、ある特定のセキュリティ上の問題に対処するために中継で送ります。
通常、コントローラの仮想 IP アドレスは、クライアントに対するすべての DHCP トランザクションの送信元 IP アドレスとして使用されます。 その結果、実際の DHCP サーバ IP アドレスが公表されることはありません。 この仮想 IP はコントローラ上で、DHCP トランザクションのデバッグ出力として表示されます。 ただし、仮想 IP アドレスの使用は特定タイプのクライアントの問題を引き起こす場合があります。

DHCPブリッジ モード

対してDHCPブリッジは特に問題になることがないようです。有線LANのDHCPと同じ仕組みのようです。

DHCP ブリッジ機能は、DHCP トランザクションでのコントローラの役割をクライアントに対して完全に透過的にするように設定されています。 Ethernet II 変換への 802.11 を除いて、クライアントからのパケットは繋がれます。
~途中省略~
これについてクライアントの配線としてスイッチポートに考え、次にクライアント従来の DHCP トランザクションを行います。
スポンサーリンク

WLCを「DHCP ブリッジ モード」に変更する

ここまでの情報を整理すると、外部のDHCPサーバで問題が出る場合は、「DHCPブリッジ モード」に変更するのが「吉」のようです。

DHCPブリッジモードへの変更手順

WLCにコマンドで設定します。というか、コマンドでしか設定できません。(GUIでも行けました。)
ConsoleケーブルかSSHで接続して操作します。

WLCでコマンド設定する場合

(Cisco Controller) >config dhcp proxy disable
(Cisco Controller) >show dhcp proxy
DHCP Proxy Behaviour: disabled

「DHCP Proxy Behaviour:disable]がDHCPブリッジモードに切り替わったことを意味します。

WLCでGUI設定する場合

[CONTROLLER]-[Advanced]-[DHCP]の「Enable DHCP Proxy」のチェックをオフにします。

L3スイッチの実行コマンド

WLCを接続しているスイッチのVLANインターフェースにDHCPリレーをコマンド(ip helper-address)で設定します。

Switch#conf t
Switch(config)#interface vlan <#VLAN ID>
Switch(config-if)#ip helper-address <DHCPサーバ IPアドレス>

まとめ

WLCの外部DHCPのモードをDHCPブリッジモードに変更することで、
最初からIPアドレスの自動配布がOKだったVLAN10、ダメだったVLAN20とも問題なく動作するようになりました。

なぜVLAN20だけダメなのかハッキリした理由は不明ですが(管理者が他社なのでこれ以上は追及できず)、WLCのDHCP関連でうまくいかない場合はモード変更をコマンドで試してみましょう。

本番環境で試すのは怖いですが失敗したらこう言ってやりましょう。

よかれと思ってやってんだよ
どうでしょう名言
AireOS WLCによるDHCPプロトコルの処理方法の理解
このドキュメントでは、Cisco AireOSワイヤレスコントローラのさまざまなDHCP操作について説明します。

コメント