はじめに
このドキュメントでは、Cisco Catalyst 9800ワイヤレスLANコントローラでデバイスの分類とプロファイリングがどのように機能するかについて説明します。
要件
このドキュメントに関する固有の要件はありません。
使用するコンポーネント
このドキュメントの情報は、次のソフトウェアのバージョンに基づいています。
- 17.2.1イメージが稼働する9800 CL WLC
- 1815iアクセスポイント
- Windows 10 Proワイヤレスクライアント
- Cisco ISE 2.7
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。
プロファイルプロセス
この記事では、Cisco Catalyst 9800ワイヤレスLANコントローラでデバイスの分類とプロファイリングがどのように機能するかについて詳しく説明し、潜在的な使用例、設定例、およびトラブルシューティングに必要な手順について説明します。
デバイスプロファイリングは、無線インフラストラクチャに参加した無線クライアントに関する追加情報を見つける方法を提供する機能です。
デバイスのプロファイリングが実行されると、そのプロファイルを使用してさまざまなローカルポリシーを適用したり、特定のRADIUSサーバのルールに一致させたりできます。
Cisco 9800 WLCは、次の3種類のデバイスプロファイリングを実行できます。
- MACアドレスOUI
- DHCP
- HTTP
MACアドレスOUIプロファイリング
MACアドレスは、各ワイヤレス(および有線)ネットワークインターフェイスの一意のIDです。通常は48ビットの数値で、16進形式で表記されます(MM:MM:MM:SS:SS:SS)。
最初の24ビット(または3オクテット)はOrganizational Unique Identifier(OUI;組織固有識別子)と呼ばれ、ベンダーまたは製造元を一意に識別します。
これらはIEEEから購入され、IEEEによって割り当てられます。1つのベンダーまたはメーカーが複数のOUIを購入できます。
以下に例を挙げます。
00:0D:4B - owned by Roku, LLC
90:78:B2 - owned by Xiaomi Communications Co Ltd
ワイヤレスクライアントがアクセスポイントに関連付けられると、WLCはOUIルックアップを実行して製造元を特定します。
Flexconnectローカルスイッチングの導入では、APは引き続き関連するクライアント情報(DHCPパケットやクライアントMACアドレスなど)をWLCにリレーします。
OUIのみに基づくプロファイリングは非常に限られており、デバイスを特定のブランドとして分類することは可能ですが、ラップトップとスマートフォンを区別することはできません。
ローカルで管理されるMACアドレスの問題
プライバシーの懸念から、多くのメーカーがMACランダム化機能をデバイスに実装し始めました。
ローカルで管理されるMACアドレスはランダムに生成され、アドレスの最初のオクテットの2番目の最下位ビットが1に設定されます。
このビットは、MACアドレスが実際にはランダムに生成されたものであることを通知するフラグとして機能します。
ローカルで管理されるMACアドレスには、次の4つの形式があります(xは任意の16進数値)。
x2-xx-xx-xx-xx-xx
x6-xx-xx-xx-xx-xx
xA-xx-xx-xx-xx-xx
xE-xx-xx-xx-xx-xx
Android 10デバイスは、新しいSSIDネットワークに接続するたびに、デフォルトでランダムに生成されたローカル管理MACアドレスを使用します。
この機能は、アドレスがランダム化されたことをコントローラが認識し、ルックアップを実行しないため、OUIベースのデバイス分類を完全に無効にします。
DHCPプロファイリング
DHCPプロファイリングは、ワイヤレスクライアントが送信しているDHCPパケットの調査を通じてWLCによって実行されます。
DHCPプロファイリングを使用してデバイスを分類した場合は、show wireless client mac-address [MAC_ADDR] detailedコマンドの出力に次のように表示されます。
Device Type : Microsoft-Workstation
Device Name : MSFT 5.0
Protocol Map : 0x000009 (OUI, DHCP)
Protocol : DHCP
WLCは、ワイヤレスクライアントから送信されたパケットの中のいくつかのDHCPオプションフィールドを検査します。
1.オプション12 – ホスト名
このオプションはクライアントのホスト名を表し、DHCP DiscoverおよびDHCP Requestパケットで確認できます。
2.オプション60 – ベンダークラスID
このオプションは、DHCP DiscoverおよびRequestパケットにも含まれています。
このオプションを使用すると、クライアントはDHCPサーバに対して自身を識別し、特定のベンダークラスIDを持つクライアントにのみ応答するようにサーバを設定できます。
このオプションは、ネットワーク内のアクセスポイントを特定し、それに対してオプション43でのみ応答する場合に最も一般的に使用されます。
ベンダークラスIDの例
- すべてのWindows 2000クライアント(以降)でMSFT 5.0
- すべてのWindows 98およびMeクライアント用のMSFT 98
- すべてのWindows 98、Me、および2000クライアント用のMSFT
Apple MacBookデバイスは、デフォルトではオプション60を送信しません。
Windows 10クライアントからのパケットキャプチャ例:
3.オプション55:パラメータ要求リスト
DHCP Parameter Request Listオプションには、DHCPクライアントがDHCPサーバに要求する設定パラメータ(オプションコード)が含まれています。カンマ区切り形式(例:1,15,43)で記述された文字列です。
生成されるデータはベンダーに依存し、複数のデバイスタイプで重複する可能性があるため、完全なソリューションではありません。
たとえば、Windows 10デバイスは常にデフォルトで特定のパラメータリストを要求します。AppleのiPhoneとiPadは、それらを分類できる異なるパラメータセットを使用します。
Windows 10クライアントからのキャプチャ例:
4.オプション77:ユーザクラス
ユーザクラスは、デフォルトでは最も一般的に使用されないオプションであり、クライアントを手動で設定する必要があります。たとえば、Windowsマシンで次のコマンドを使用して、このオプションを設定できます。
ipconfig /setclassid “ADAPTER_NAME” “USER_CLASS_STRING”
アダプタ名は、コントロールパネルの[ネットワークと共有センター]で確認できます。
CMDでWindows 10クライアント用のDHCPオプション66を設定します(管理者権限が必要)。
Windowsのオプション66の実装により、Wiresharkはこのオプションをデコードできず、オプション66の後に到着するパケットの一部が不正として表示されます。
HTTPプロファイリング
HTTPプロファイリングは、9800 WLCがサポートする最も高度なプロファイリング方法であり、最も詳細なデバイス分類を提供します。 クライアントをHTTPプロファイルするには、クライアントが実行状態でHTTP GET要求を実行する必要があります。 WLCが要求をインターセプトし、パケットのHTTPヘッダーのUser-Agentフィールドを調べます。 このフィールドには、分類に使用できるワイヤレスクライアントに関する追加情報が含まれています。
デフォルトでは、ほとんどすべての製造元で、ワイヤレスクライアントがインターネット接続チェックを実行しようとする機能が実装されています。 このチェックは、自動ゲストポータル検出にも使用されます。デバイスがステータスコード200(OK)のHTTP応答を受信した場合、WLANはwebauthで保護されていません。 その場合、WLCは残りの認証を実行するために必要なインターセプションを実行します。この最初のHTTP GETは、WLCがデバイスのプロファイリングに使用できる唯一のHTTP GETではありません。 後続のHTTP要求はWLCによって検査され、さらに詳細な分類が行われる可能性があります。
Windows 10デバイスは、ドメインmsftconnecttest.comを使用してこのテストを実行します。Appleデバイスはcaptive.apple.comを使用しますが、Androidデバイスは通常connectivitycheck.gstatic.comを使用します。
このチェックを実行しているWindows 10クライアントのパケットキャプチャは次のとおりです。User AgentフィールドにはMicrosoft NCSIが入力され、クライアントはWLC上でMicrosoft-Workstationとしてプロファイルされます。
HTTP経由でプロファイルされたクライアントのshow wireless client mac-address [MAC_ADDR] detailed の出力例を次に示します。
Device Type : Microsoft-Workstation
Device Name : MSFT 5.0
Protocol Map : 0x000029 (OUI, DHCP, HTTP)
Device OS : Windows NT 10.0; Win64; x64; rv:76.0
Protocol : HTTP
RADIUS Profiling
デバイスの分類に使用される方法に関しては、ローカルとRADIUSプロファイリングに違いはありません。
RADIUSプロファイリングが有効な場合、WLCは特定のベンダー固有のRADIUSアトリビュートのセットを使用してデバイスについて学習した情報をRADIUSサーバに転送します。
DHCP RADIUSプロファイリング
DHCPプロファイリングによって取得された情報は、ベンダー固有のRADIUS AVPair cisco-av-pair:dhcp-option=<DHCP option>としてアカウンティング要求内のRADIUSサーバに送信されます。
DHCPオプション12、60、および55のAVPairsを示すアカウンティング要求パケットがそれぞれWLCからRADIUSサーバに送信された例(オプション55の値は、Wiresharkのデコードにより破損していると考えられます):
HTTP RADIUSプロファイリング
HTTPプロファイリング(HTTP GET要求のヘッダーのUser-Agentフィールド)によって取得された情報は、ベンダー固有のRADIUS AVPair cisco-av-pair:http-tlv=User-Agent=<user-agent>としてアカウンティング要求内のRADIUSサーバに送信されます
初期接続チェックHTTP GETパケットのUser-AgentフィールドにはMicrosoft NCSIのみという情報が多く含まれていません。 この単純な値をRADIUSサーバに転送するアカウンティングパケットの例:
ユーザがインターネットの閲覧を開始し、追加のHTTP GET要求を作成すると、その要求に関する詳細情報を取得できます。 WLCは、このクライアントの新しいUser-Agent値を検出すると、追加のアカウンティングパケットをISEに送信します。 この例では、クライアントがWindows 10 64ビットおよびFirefox 76を使用していることを確認できます。
9800 WLCでのプロファイリングの設定
ローカルプロファイリング設定
ローカルプロファイリングを機能させるには、Configuration > Wireless > Wireless Globalの下でDevice Classificationをイネーブルにするだけです。このオプションは、MAC OUI、HTTP、およびDHCPプロファイリングを同時に有効にします。
また、ポリシー設定で、HTTP TLVキャッシングとDHCP TLVキャッシングを有効にできます。プロファイルがない場合でも、WLCはプロファイルを実行します。
これらのオプションをイネーブルにすると、WLCはこのクライアントに関して以前に学習した情報をキャッシュするため、このデバイスによって生成された追加パケットを検査する必要がなくなります。
RADIUSプロファイリングの設定
RADIUSプロファイリングが機能するためには、(「ローカルプロファイリング」の設定で説明した)デバイス分類をグローバルに有効にするだけでなく、次の作業が必要です。
1. RADIUSサーバを指すタイプidentityでAAA Method List > Accountingを設定します。
2.アカウンティング方式をConfiguration > Tags & Profiles > Policy > [Policy_Name] > Advancedの下に追加する必要があります。
3.最後に、Configuration > Tags & Profiles > Policyの下でRADIUS Local Profilingチェックボックスをオンにする必要があります。このチェックボックスでは、HTTPとDHCP RADIUSの両方のプロファイリングを有効にします(古いAireOS WLCには2つの独立したチェックボックスがありました)。
使用例のプロファイリング
ローカルプロファイル分類に基づくローカルポリシーの適用
この設定例では、Windows-Workstationとしてプロファイルされたデバイスにのみ適用されるYouTubeおよびFacebookアクセスをブロックするQoSプロファイルを使用したローカルポリシーの設定を示します。
わずかな変更を加えると、この設定を変更して、たとえば無線電話だけに特定のDSCPマーキングを設定できます。
Configuration > Services > QoSの順に移動して、QoSプロファイルを作成します。Addをクリックして、新しいポリシーを作成します。
ポリシー名を指定し、新しいクラスマップを追加します。使用可能なプロトコルから、ブロックする必要があるプロトコル、DSCPがマークされているプロトコル、または帯域幅が制限されているプロトコルを選択します。
この例では、YouTubeとFacebookがブロックされています。このQoSプロファイルは、QoSウィンドウの下部にあるポリシープロファイルには必ず適用しないでください。
Configuration > Security > Local Policyの順に移動し、新しいサービステンプレートを作成します。
前の手順で作成した入力QoSおよび出力QoSプロファイルを指定します。この手順では、アクセスリストも適用できます。VLANを変更する必要がない場合は、VLAN IDフィールドを空のままにします。
Policy Mapタブに移動し、Addをクリックします。
ポリシーマップの名前を設定し、新しい基準を追加します。前のステップで作成したサービステンプレートを指定し、このテンプレートを適用するデバイスタイプを選択します。
この場合は、Microsoft-Workstationが使用されます。複数のポリシーが定義されている場合は、最初の一致が使用されます。
もう1つの一般的な使用例は、OUIベースの一致基準を指定することです。同じモデルのスキャナまたはプリンタが多数導入されている場合、通常は同じMAC OUIが使用されます。
これは、特定のQoS DSCPマーキングまたはACLを適用するために使用できます。
WLCがYouTubeとFacebookのトラフィックを認識できるようにするには、アプリケーションの可視性をオンにする必要があります。
WLANのポリシープロファイルを表示するには、Configuration > Services > Application Visibility の順に選択します。
ポリシープロファイルでHTTP TLV Caching、DHCP TLV Caching、Global device Classificationが有効になっており、Local Subscriber Policy Nameが前の手順のいずれかで作成されたローカルポリシーマップを指していることを確認します。
クライアントが接続したら、ローカルポリシーが適用されているかどうかを確認し、YouTubeとFacebookが実際にブロックされているかどうかをテストできます。 show wireless client mac-address [MAC_ADDR] detailedの出力は次のとおりです。
Input Policy Name : block
Input Policy State : Installed
Input Policy Source : Native Profile Policy
Output Policy Name : block
Output Policy State : Installed
Output Policy Source : Native Profile Policy
Local Policies:
Service Template : BlockTemplate (priority 150)
Input QOS : block
Output QOS : block
Service Template : wlan_svc_11override_local (priority 254)
VLAN : VLAN0039
Absolute-Timer : 1800
Device Type : Microsoft-Workstation
Device Name : MSFT 5.0
Protocol Map : 0x000029 (OUI, DHCP, HTTP)
Protocol : HTTP
Cisco ISEの高度なポリシーセットのRADIUSプロファイリング
RADIUSプロファイリングを有効にすると、WLCはプロファイリング情報をISEに転送します。この情報に基づいて、高度な認証および許可ルールを作成できます。
この記事では、ISEの設定については説明しません。詳細については、『Cisco ISEプロファイリング設計ガイド』を参照してください。
このワークフローでは通常CoAを使用する必要があるため、9800 WLCでCoAが有効になっていることを確認してください。
FlexConnectの導入におけるプロファイリング
中央認証、ローカル スイッチング
この設定では、ローカルとRADIUSの両方のプロファイリングが、前の章で説明したとおりに動作し続けます。APがスタンドアロンモードになると(APがWLCへの接続を失うと)、デバイスのプロファイリングは機能しなくなり、新しいクライアントは接続できなくなります。
ローカル認証、ローカル スイッチング
APが接続モード(APがWLCに加入)の場合、プロファイリングは引き続き機能します(APはクライアントDHCPパケットのコピーをWLCに送信してプロファイリングプロセスを実行します)。
プロファイリングが機能しているにもかかわらず、認証はAPでローカルに実行されるため、ローカルポリシー設定やRADIUSプロファイリングルールにプロファイリング情報を使用することはできません。
トラブルシューティング
放射性微量
WLCでのクライアントプロファイリングのトラブルシューティングを行う最も簡単な方法は、放射性トレースを使用することです。Troubleshooting > Radioactive Traceの順に移動し、クライアントワイヤレスアダプタのMACアドレスを入力して、Startをクリックします。
クライアントをネットワークに接続し、実行状態になるまで待ちます。トレースを停止し、Generateをクリックします。内部ログが有効になっていることを確認します(このオプションは17.1.1以降のリリースにのみ存在します)。
次に、放射性物質の痕跡から関連する断片を見つけることができます。
クライアントがWLCによってMicrosoft-Workstationとしてプロファイルされます。
2020/06/18 10:46:41.052366 {wncd_x_R0-0}{1}: [auth-mgr] [21168]: (info): [74da.38f6.76f0:capwap_90000004] Device type for the session is detected as Microsoft-Workstation and old device-type not classified earlier &Device name for the session is detected as MSFT 5.0 and old device-name not classified earlier & Old protocol map 0 and new is 41
2020/06/18 10:46:41.052367 {wncd_x_R0-0}{1}: [auth-mgr] [21168]: (debug): [74da.38f6.76f0:capwap_90000004] updating device type Microsoft-Workstation, device name MSFT 5.0
デバイス分類をキャッシュするWLC:
(debug): [74da.38f6.76f0:unknown] Updating cache for mac [74da.38f6.76f0] device_type: Microsoft-Workstation, device_name: MSFT 5.0 user_role: NULL protocol_map: 41
キャッシュ内のデバイス分類を検出するWLC:
(info): [74da.38f6.76f0:capwap_90000004] Device type found in cache Microsoft-Workstation
分類に基づいてローカルポリシーを適用するWLC:
(info): device-type filter: Microsoft-Workstation required, Microsoft-Workstation set - match for 74da.38f6.76f0 / 0x9700001A
(info): device-type Filter evaluation succeeded
(debug): match device-type eq "Microsoft-Workstation" :success
DHCPおよびHTTPプロファイリング属性を含むアカウンティングパケットを送信するWLC:
[caaa-acct] [21168]: (debug): [CAAA:ACCT:c9000021] Accounting session created
[auth-mgr] [21168]: (info): [74da.38f6.76f0:capwap_90000004] Getting active filter list
[auth-mgr] [21168]: (info): [74da.38f6.76f0:capwap_90000004] Found http
[auth-mgr] [21168]: (info): [74da.38f6.76f0:capwap_90000004] Found dhcp
[aaa-attr-inf] [21168]: (debug): Filter list http-tlv 0
[aaa-attr-inf] [21168]: (debug): Filter list dhcp-option 0
[aaa-attr-inf] [21168]: (debug): Get acct attrs dc-profile-name 0 "Microsoft-Workstation"
[aaa-attr-inf] [21168]: (debug): Get acct attrs dc-device-name 0 "MSFT 5.0"
[aaa-attr-inf] [21168]: (debug): Get acct attrs dc-device-class-tag 0 "Workstation:Microsoft-Workstation"
[aaa-attr-inf] [21168]: (debug): Get acct attrs dc-certainty-metric 0 10 (0xa)
[aaa-attr-inf] [21168]: (debug): Get acct attrs dhcp-option 0 00 0c 00 0f 44 45 53 4b 54 4f 50 2d 4b 4c 52 45 30 4d 41
[aaa-attr-inf] [21168]: (debug): Get acct attrs dhcp-option 0 00 3c 00 08 4d 53 46 54 20 35 2e 30
[aaa-attr-inf] [21168]: (debug): Get acct attrs dhcp-option 0 00 37 00 0e 01 03 06 0f 1f 21 2b 2c 2e 2f 77 79 f9 fc
### http profiling sent in a separate accounting packet
[aaa-attr-inf] [21168]: (debug): Get acct attrs http-tlv 0 00 01 00 0e 4d 69 63 72 6f 73 6f 66 74 20 4e 43 53 49
パケット キャプチャ
中央でスイッチされる導入では、WLC自体でパケットキャプチャを実行できます。Troubleshooting > Packet Captureの順に選択し、このクライアントで使用されているいずれかのインターフェイスに新しいキャプチャポイントを作成します。
キャプチャを実行するには、VLAN上にSVIが必要です。それ以外の場合は、物理ポート自体でキャプチャを実行します
関連情報