Cisco Unified Wireless実装のCAPWAPステートマシン:検出状態

ユニファイドワイヤレスネットワークアーキテクチャは、アクセスポイントが最初に登録する必要がある単一のインターフェイス、つまりワイヤレスネットワークコントローラから、すべてのアクセスポイント(以下APと呼びます)を集中管理します。







アクセスポイントとコントローラ間の対話中のCAPWAPステートマシン(状態遷移シーケンス)を理解することは、ワイヤレスネットワークの問題をすばやくトラブルシューティングするのに非常に役立ちます。 CAPWAPステートマシンは、RFC 5415(CAPWAPプロトコル仕様)で説明されています。 この記事では、Cisco Unified Wirelessの実装における検出状態について詳しく説明します。 以降の記事では、Cisco Unified Wirelessの実装における参加、フェールオーバー、およびフォールバックの状態について説明します。







Cisco Wireless AireOSでのCAPWAPディスカバリフェーズIPv4



画像







特定のコントローラへのアクセスポイントの登録は、次の手順で構成されます。







  1. 発見フェーズ(検出フェーズ);

    • アクセスポイントは、CAPWAP Discovery Requestを既知のすべてのコントローラーに送信します。
    • CAPWAP Discovery Requestを受信した各コントローラーは、CAPWAP Discovery Responseメッセージで応答します。
  2. 参加フェーズ

    • CAPWAP Discovery Responseパケットで収集されたデータに基づいて、アクセスポイントは接続するコントローラーを選択し、CAPWAP Join要求を送信します
    • コントローラはアクセスポイントをチェックし、CAPWAP Join応答を送信します
    • アクセスポイントはコントローラをチェックします。




CAPWAPディスカバリー要求は、コントローラーインターフェースの管理IPアドレスに送信されます。

アクセスポイントがCAPWAPディスカバリリクエストの送信先を決定するために、いくつかのツールが提供されていますが、検索メカニズムの操作を開始するには、アクセスポイントがIPアドレスを取得する必要があります。 これはDHCPで実行するか、手動で設定できます。 さらに検索エンジンが機能し始めます。 アクセスポイントは、接続する特定のコントローラーを既に選択しているコントローラーのリストを検出および生成できたすべてのコントローラーにCAPWAPディスカバリー要求を送信します(CAPWAP参加要求を送信します)。







  1. APは、第3レベルのブロードキャスト要求を送信します(アドレス255.255.255.255へのレイヤー3ローカルブロードキャスト。
  2. TDは、NVRAMに保存されているコントローラーのローカルリストを調べます。
  3. DHCPアドレスを要求すると、APはDHCPオファーメッセージのDHCPオプション43を調べます。
  4. アクセスポイントは、DNS名CISCO-CAPWAP-CONTROLLER.local-domainまたはCISCO-LWAPP-CONTROLLER.local-domainを解決しようとしています


CAPWAPディスカバリフェーズIPv4の仕組み



次のコマンドを使用して、コンソールから現在のAP設定を表示できます。







show capwap client config
      
      





アクセスポイントに変更が加えられた場合、private-configとIPアドレスの設定を削除することにより、元の設定を復元できます。







 clear capwap private-config clear capwap ap ip address clear capwap ap ip default-gateway
      
      





現在のテストでは、clear capwap private-configコマンドで常に十分でしたが、書籍 『Cisco Wireless LAN Controllersの導入とトラブルシューティング』では、著者はAPがすべての既知のコントローラーを正確に忘れ、erase / all nvramコマンドを使用することを推奨しています:そのため、デバッグをアクティブにする必要があります/ debug capwap console cliコマンドを使用したトラブルシューティングモード。







 debug capwap console cli erase /all nvram:
      
      





次に、アクセスポイントを再起動します。







 reload
      
      





再起動後、アクセスポイントがIPアドレスを受信するまで、ディスカバリフェーズを開始できないことを確認できます(DHCPサービスが実行されていない場合)。







 %CAPWAP-3-ERRORLOG: Not sending discovery request AP does not have an Ip !!
      
      





 %CAPWAP-3-DHCP_RENEW: Could not discover WLC using DHCP IP. Renewing DHCP IP.
      
      





ディスカバリフェーズを開始するには、アクセスポイントにDHCP経由でアドレスを指定するか、次のコマンドを使用してコンソールから静的に設定する必要があります。







 capwap ap ip address ip mask capwap ap ip default-gateway ip
      
      





1)レイヤー3ローカルブロードキャスト



アクセスポイントは、ブロードキャストディスカバリ要求をUPDポート5246のアドレス255.255.255.255に送信します。ディスカバリ要求は、コントローラの管理インターフェイスによって処理されます。 コントローラの管理インターフェイスとAPのインターフェイスが同じVLANにある場合、コントローラはこの要求を処理し、検出応答を送信します。







アクセスポイントは、アドレスを受信すると、考えられるすべての検索メカニズムをアクティブにし、その結果、DiscoveyリクエストのブロードキャストによりDiscovery応答を受信します。







 delphi %DHCP-6-ADDRESS_ASSIGN: Interface BVI1 assigned DHCP address 10.0.191.7, mask 255.255.255.0, hostname AP001b.d542.1d2c AP001b.d542.1d2c# Translating "CISCO-CAPWAP-CONTROLLER"...domain server (255.255.255.255) AP001b.d542.1d2c# *Dec 28 02:26:04.306: %CAPWAP-3-ERRORLOG: Did not get log server settings from DHCP. Translating "CISCO-LWAPP-CONTROLLER"...domain server (255.255.255.255) *Dec 28 02:26:13.307: %CAPWAP-3-ERRORLOG: Could Not resolve CISCO-CAPWAP-CONTROLLER *Dec 28 02:26:22.308: %CAPWAP-3-ERRORLOG: Could Not resolve CISCO-LWAPP-CONTROLLER *Dec 28 02:26:32.309: %CAPWAP-3-ERRORLOG: Go join a capwap controller *Mar 16 10:18:26.000: %CAPWAP-5-DTLSREQSEND: DTLS connection request sent peer_ip: 10.0.191.4 peer_port: 5246 *Mar 16 10:18:28.500: %CAPWAP-5-DTLSREQSUCC: DTLS connection created sucessfully peer_ip: 10.0.191.4 peer_port: 5246 *Mar 16 10:18:28.502: %CAPWAP-5-SENDJOIN: sending Join Request to 10.0.191.4
      
      





次に、設定を以前にリセットして、アクセスポイントを別のVLANに配置しようとします。 接続は発生しません。







 delphi *Dec 28 01:55:27.942: %DHCP-6-ADDRESS_ASSIGN: Interface BVI1 assigned DHCP address 10.0.192.3, mask 255.255.255.0, hostname AP001b.d542.1d2c Translating "CISCO-CAPWAP-CONTROLLER"...domain server (255.255.255.255) *Dec 28 01:55:32.817: %CAPWAP-3-ERRORLOG: Did not get log server settings from DHCP. Translating "CISCO-LWAPP-CONTROLLER"...domain server (255.255.255.255) *Dec 28 01:55:41.817: %CAPWAP-3-ERRORLOG: Could Not resolve CISCO-CAPWAP-CONTROLLER *Dec 28 01:55:50.818: %CAPWAP-3-ERRORLOG: Could Not resolve CISCO-LWAPP-CONTROLLER*Dec 28 01:56:36.324: %CAPWAP-3-DHCP_RENEW: Could not discover WLC using DHCP IP. Renewing DHCP IP.
      
      





アクセスポイントが別のVLANにあるため、ブロードキャスト要求はコントローラの管理インターフェイスに到達しません。







この場合、ブロードキャスト要求をコントローラの管理インターフェイスに強制できます。 これを行うには、コマンドを使用してUDPポート5246経由でブロードキャストトラフィックのリダイレクトをアクティブにする必要があります







 forward-protocol udp 5246
      
      





そして、第3レベルのインターフェースで登録します







 ip helper-address [ ]
      
      





スイッチ構成では、次のようになります。







 CAT2(config)#ip forward-protocol udp 5246 CAT2(config)#int vlan 192 CAT2(config-if)#ip helper-address 10.0.191.4
      
      





次に、ブロードキャスト要求もコントローラーに送られ、ポイントはコントローラーに接続します。







2)ローカルNVRAMリスト



アクセスポイントは、不揮発性NVRAMに保存されているコントローラの独自のリストを確認します。 次の情報がNVRAMに保存されます。 アクセスポイントで事前設定されたプライマリ、セカンダリ、およびターシャリコントローラ。 これらの設定は、CLIを介してアクセスポイント自体で設定でき、アクセスポイントがコントローラに接続されている場合は、コントローラを介して(CLIまたはWebを介して)設定できます。 同じグループ内の最後に接続されたコントローラーとそのモビリティメンバー。 ドキュメントのこの部分については、若干の不一致があります。これについては、対応するセクションで後述します。







一次、二次、三次コントローラー



アクセスポイントでは、コントローラに関するデータを2つのコマンドで設定できます。 それらの1つはcapwap ap controller ip addressです。







 delphi AP001b.d542.1d2c#capwap ap controller ip address 10.0.191.4 *Dec 28 01:57:11.888: %CAPWAP-3-ERRORLOG: Go join a capwap controller
      
      





このコマンドのアクションは、2つの出力に表示されます。







 delphi AP001b.d542.1d2c#sh capwap ip config LWAPP Static IP Configuration IP Address 10.0.192.102 IP netmask 255.255.255.0 Default Gateway 10.0.192.1 Primary Controller 10.0.191.3
      
      





 delphi AP001b.d542.1d2c#sh capwap cli con ... mwarName mwarIPAddress 10.0.191.4
      
      





つまり、一方でコントローラーはそれを静的IP構成に登録し、他方でプライマリーとして登録します。 ある場所または別の場所で巧妙な操作を行った場合、とにかくこのコントローラーへの接続があります。







アクセスポイントのプライマリ、セカンダリ、またはターシャリは、次のコマンドを使用して設定できます。







 capwap ap primary-base [wlc_sysname] [IP]; capwap ap secondary-base [wlc_sysname] [IP]; capwap ap tertiary-base [wlc_sysname] [IP]; delphi AP001b.d542.1d2c#capwap ap primary-base wlc2504 10.0.191.4 *Dec 28 01:57:44.901: %CAPWAP-3-ERRORLOG: Selected MWAR 'wlc2504'(index 0). *Dec 28 01:57:44.901: %CAPWAP-3-ERRORLOG: Go join a capwap controller AP001b.d542.1d2c#sh capwap client config .. mwarName wlc2504 mwarIPAddress 10.0.191.4
      
      





プライマリを指定する必要はありません。セカンダリのみを指定できます。







 delphi AP001b.d542.1d2c#capwap ap secondary-base wlc2504 10.0.191.4 *Dec 28 01:57:04.097: %CAPWAP-3-ERRORLOG: Selected MWAR 'wlc2504'(index 1). *Dec 28 01:57:04.097: %CAPWAP-3-ERRORLOG: Go join a capwap controller
      
      





プライマリ、セカンダリ、ターシャリコントローラは、アクセスポイントのコンソールだけでなく、CLIまたはコントローラのWebインターフェイス(ポイントが既に何らかの種類のコントローラに接続されている場合)からも登録できます。







 (Cisco Controller) >config ap secondary-base wlc2 AP001b.d542.1d2c 10.0.191.5 delphi AP001b.d542.1d2c#sh capwap cli con .. mwarName wlc2 mwarIPAddress 10.0.191.5
      
      





同じグループ内の最後に接続されたコントローラーとそのモビリティメンバー。



上記のように、このアイテムにはわずかな違いがあります。 例えば









モビリティメンバーは、show capwap client config出力の「Configured Switch X」設定に表示されます。







 delphi AP001b.d542.1d2c#sh capw cli con ... Configured Switch 1 Addr 10.0.191.4 Configured Switch 2 Addr 10.0.193.4
      
      





以前は、アクセスポイントは分離されたVLANに配置され、NVRAMを除くすべてのディスカバリメカニズムが除外されました(プライマリ、セカンダリ、およびターシャリを含む)。 テストはソフトウェア8.0.140.0(15.3(3)JA10)で実施されました。







アクセスポイントはコントローラ10.0.193.4に接続され、コントローラ10.0.191.4は同じMobilibty Groupに登録されました。 再起動時に、コントローラ10.0.191.4に接続されたアクセスポイント(ポイントは別のVLANにあり、ブロードキャスト検出は機能しませんでした)。







つまり、これらのテストでは、ヘッダーからの情報が確認されました。少なくともこのバージョンのソフトウェアでは、アクセスポイントは同じグループのモビリティメンバに関する情報をNVRAMに保存し、ディスカバリ要求を送信します。







アクセスポイントが接続されている最後のコントローラは、技術的には同じグループのモビリティメンバーでもあります。 テスト中、アクセスポイントは最後に接続されたコントローラに関するデータを「Configured Switch 1」レコードに保存しました。







3)DHCPオプション43



インストールで最も一般的に使用される方法は、IPアドレスとともに、パケットの43番目のDHCPオファーオプションでコントローラーアドレスを転送することです。







コントローラのアドレスは、次のように記述されます(16進数形式)。







 f1[  * 4][IP  ()]
      
      





たとえば、コントローラ10.0.191.4および10.0.191.5の場合、オプション43は次のようになります。







 f1080a00bf040a00bf05
      
      





スイッチの場合、構文は次のようになります。







 CAT2(dhcp-config)#option 43 hex f108.0a00.bf04.0a00.bf05
      
      





アクセスポイントの出力:







 delphi *Dec 28 01:56:13.045: %DHCP-6-ADDRESS_ASSIGN: Interface BVI1 assigned DHCP address 10.0.192.2, mask 255.255.255.0, hostname AP001b.d542.1d2c *Dec 28 01:56:23.945: %CAPWAP-5-DHCP_OPTION_43: Controller address 10.0.191.4 obtained through DHCP *Dec 28 01:56:23.945: %CAPWAP-5-DHCP_OPTION_43: Controller address 10.0.191.5 obtained through DHCP *Dec 28 01:56:51.950: %CAPWAP-3-ERRORLOG: Go join a capwap controller
      
      





オプション43のみを設定すると、この場合、アクセスポイントだけでなく、例外なく全員に返されます。







このオプションをシスコのアクセスポイントのみに返す場合は、DHCP検出でVCI(ベンダークラス識別子)をチェックする可能性があります。 各アクセスポイントモデルは、特定のVCIをDHCP検出に渡します。 DHCPサーバー上の対応するVCIにオプション60を登録すると、要求でまったく同じVCIを送信するクライアントにのみオプション43が発行されます。







アイデアは、それを必要としない人に43番目のオプションを渡さないことです。 しかし、別のポイントがあります。 1つのプールに2つの異なるシリーズのアクセスポイントがあり、すべてのDHCPサーバーが複数のVCIを指定する機能をサポートしているわけではない場合、最初にこれを確認する必要があります。







4)DNS



アクセスポイントは、DNS名CISCO-CAPWAP-CONTROLLER.local-domainまたはCISCO-LWAPP-CONTROLLER.local-domainの解決を試みます。







これを行うには、アクセスポイント(DHCPプール)にDNSサーバーとドメインを登録する必要があります。 それに応じてDNSサーバーを構成します。







 CAT2(dhcp-config)#dns-server 10.0.191.8 CAT2(dhcp-config)#domain test.local
      
      





アドレスを受信した後、コントローラーは名前を解決し、検出フェーズでIPアドレスを使用できます。







 delphi Translating "CISCO-CAPWAP-CONTROLLER.test.local"...domain server (10.0.191.4) [OK]
      
      





可能なすべての手段でコントローラーを検索し、ディスカバリー要求を送信し、ディスカバリー応答を受信すると、コントローラーのリストが形成され、それに基づいて、接続しようとするコントローラーが決定されます(参加要求の送信)。








All Articles