簡介
本檔案將說明裝置分類和分析在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地址是每個無線(和有線)網路介面的唯一識別符號。這是一個通常以十六進位制格式MM:MM:MM:SS:SS:SS寫下的48位數字。
前24位(或3個八位位元組)稱為組織唯一識別符號(OUI),它們唯一標識供應商或製造商。
它們由IEEE購買和分配。一個供應商或製造商可以購買多個OUI。
範例:
00:0D:4B - owned by Roku, LLC
90:78:B2 - owned by Xiaomi Communications Co Ltd
無線客戶端與接入點關聯後,WLC會執行OUI查詢以確定製造商。
在Flexconnect本地交換部署中,AP仍會將相關的客戶端資訊中繼到WLC(例如DHCP資料包和客戶端mac地址)。
僅基於OUI的特徵提取極為有限,可以將裝置分類為特定品牌,但無法區分筆記型電腦和智慧手機。
本地管理的MAC地址問題
出於隱私考慮,許多製造商開始在他們的裝置上實施MAC隨機化功能。
本地管理的MAC地址是隨機生成的,並且地址第一八位數的第二最低有效位設定為1。
此位充當一個標誌,用於宣佈mac地址實際上是一個隨機生成的地址。
本地管理的MAC地址有四種可能的格式(x可以是任何十六進位制值):
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分析由WLC通過調查無線客戶端發出的DHCP資料包來執行。
如果使用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發現和DHCP請求資料包中找到:
2.選項60 — 供應商類別識別符號
也可以在DHCP發現和請求資料包中找到此選項。
使用此選項,客戶端可以向DHCP伺服器標識自己,然後可以將伺服器配置為僅響應具有特定供應商類別識別符號的客戶端。
此選項最常用於標識網路中的接入點,並且僅使用選項43對其作出響應。
供應商類識別符號示例
- 適用於所有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裝置總是請求特定引數清單。蘋果iPhone和iPad使用不同的參陣列合,可以對它們進行分類。
從Windows 10客戶端捕獲的示例:
4.選項77 — 使用者類
使用者類是預設情況下最常使用的選項,需要手動配置客戶端。例如,可以在Windows電腦上使用以下命令配置此選項:
ipconfig /setclassid “ADAPTER_NAME” “USER_CLASS_STRING”
介面卡名稱可在控制面板中的「網路和共用中心」中找到:
在CMD中為Windows 10客戶端配置DHCP選項66(需要管理員許可權):
由於選項66的Windows實現,wireshark無法解碼該選項,選項66之後的部分資料包顯示為格式不正確:
HTTP分析
HTTP分析是分析9800 WLC支援的最高級方法,它提供了最詳細的裝置分類。 對於要進行HTTP分析的客戶端,它需要處於Run狀態並執行HTTP GET請求。 WLC會攔截該要求並檢視封包的HTTP標頭中的User-Agent欄位。 此欄位包含有關可用於對其進行分類的無線客戶端的其他資訊。
預設情況下,幾乎所有製造商都實施了無線客戶端嘗試執行網際網路連線檢查的功能。 此檢查也用於自動訪客門戶檢測。如果裝置收到狀態碼為200(OK)的HTTP回應,則表示沒有使用webauth來保護WLAN。 如果均為0,WLC會執行執行執行其餘驗證所需的偵聽。此初始HTTP GET不是唯一一個WLC可用於設定裝置設定檔的。 WLC會檢查每個後續的HTTP要求,而且可能會產生更詳細的分類。
Windows 10裝置使用域msftconnecttest.com執行此測試。Apple裝置使用captive.apple.com,而Android裝置通常使用connectivitycheck.gstatic.com。
執行此檢查的Windows 10客戶端的資料包捕獲可在下面找到。「使用者代理」欄位填充了Microsoft NCSI,這導致在WLC上將客戶端配置為Microsoft-Workstation:
對於通過HTTP分析的客戶端,show wireless client mac-address [MAC_ADDR]的輸出示例是詳細的:
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分析
當涉及用於裝置分類的方法時,Local和RADIUS評測沒有區別。
如果啟用RADIUS分析,WLC會將它透過一組特定廠商的RADIUS屬性所瞭解的裝置資訊轉送到RADIUS伺服器。
DHCP RADIUS分析
通過DHCP分析獲取的資訊將作為供應商特定的RADIUS AVPair cisco-av-pair: dhcp-option=<DHCP選項>傳送到記帳請求中的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伺服器的記帳封包範例:
使用者開始瀏覽Internet並建立一些額外的HTTP GET請求後,就可以獲得有關它的更多資訊。 WLC如果檢測到此客戶端的新User-Agent值,則向ISE傳送其他計費資料包。 在此範例中,可以看到使用者端正在使用Windows 10 64位和Firefox 76:
在9800 WLC上配置效能分析
本地分析配置
為了使Local Profiling起作用,只需在Configuration > Wireless > Wireless Global下啟用Device Classification。此選項同時啟用MAC OUI、HTTP和DHCP分析:
此外,在Policy configuration下,您可以啟用HTTP TLV Caching和DHCP TLV Caching。即使沒有配置檔案,WLC也會執行效能分析。
啟用這些選項後,WLC會快取先前瞭解的此使用者端資訊,並避免檢查此裝置產生的其他封包。
RADIUS分析配置
為了使RADIUS分析工作,除了全域性啟用裝置分類(如本地分析配置中所述),還必須:
1.使用指向RADIUS伺服器的型別標識配置AAA方法清單>記帳:
2.需要在Configuration > Tags & Profiles > Policy > [Policy_Name] > Advanced下新增記帳方法:
3.最後,需要在Configuration > Tags & Profiles > Policy下勾選「RADIUS Local Profiling」覈取方塊。此覈取方塊啟用HTTP和DHCP RADIUS分析(舊的AireOS WLC有2個單獨的覈取方塊):
分析使用案例
基於區域性特徵分類的應用區域性策略
此示例配置演示了具有QoS profile blocking YouTube和Facebook access的本地策略的配置,該配置僅應用於配置為Windows-Workstation的裝置。
稍作更改後,可以修改此配置,例如,為僅無線電話設定特定的DSCP標籤。
導航到Configuration > Services > QoS以建立QoS配置檔案。按一下Add建立新策略:
指定策略名稱並新增新類對映。從可用協定中,選擇需要被阻止、已標籤DSCP或頻寬受限的協定。
在本示例中,YouTube和Facebook被阻止。確保不要將此QoS配置檔案應用到QoS視窗底部的任何策略配置檔案:
導覽至Configuration > Security > Local Policy,然後建立一個新的服務模板:
指定在上一步中建立的輸入QoS和輸出QoS配置檔案。在此步驟中還可以應用訪問清單。如果不需要更改VLAN,請將VLAN ID欄位留空:
導航到Policy Map頁籤,然後按一下Add:
設定策略對映名稱並新增新條件。指定在上一步中建立的Service Template,並選擇應用此模板的Device Type。
在本例中,使用Microsoft-Workstation。如果定義了多個策略,則使用第一個匹配項。
另一個常見用例是指定基於OUI的匹配條件。如果部署具有大量相同型號的掃描器或印表機,它們通常具有相同的MAC OUI。
這可用於應用特定的QoS DSCP標籤或ACL:
若要讓WLC識別YouTube和Facebook流量,需要開啟Application Visibility。
導覽至Configuration > Services > Application Visibility,以啟用WLAN的Policy Profile的可視性:
驗證在Policy Profile下,已啟用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
針對思科ISE中的高級策略集的RADIUS分析
啟用RADIUS分析後,WLC會將分析資訊轉發到ISE。根據此資訊,可以建立高級身份驗證和授權規則。
本文不涉及ISE配置。有關詳細資訊,請參閱Cisco ISE分析設計手冊。
此工作流程通常需要使用CoA,因此請確保在9800 WLC上啟用此工作流程。
在FlexConnect部署中進行分析
集中身份驗證、本地交換
在此設定中,「本地」和「RADIUS」分析繼續工作,與前幾章中所述的工作完全相同。如果AP進入獨立模式(AP失去與WLC的連線),裝置分析將停止工作,並且沒有新的客戶端能夠連線。
本地身份驗證、本地交換
如果AP處於連線模式(AP加入到WLC),分析將繼續工作(AP將客戶端DHCP資料包的副本傳送到WLC以執行分析過程)。
儘管分析工作正常,但由於身份驗證是在AP本地執行的,因此不能將分析資訊用於任何本地策略配置或RADIUS分析規則。
疑難排解
放射性痕跡
對WLC上的客戶端配置進行故障排除的最簡單方法是使用放射性跟蹤。導覽至Troubleshooting > Radiative 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
WLC傳送包含DHCP和HTTP分析屬性的記帳資料包:
[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,才能在其上執行擷取,否則需在實體連線埠上本身進行擷取
相關資訊