Introduzione
In questo documento viene descritto il funzionamento della classificazione e della profilatura dei dispositivi sui Cisco Catalyst 9800 Wireless LAN Controller.
Prerequisiti
Requisiti
Nessun requisito specifico previsto per questo documento.
Componenti usati
Le informazioni fornite in questo documento si basano sulle seguenti versioni software:
- 9800 CL WLC con immagine 17.2.1
- Access point 1815i
- Client wireless Windows 10 Pro
- Cisco ISE 2.7
Le informazioni discusse in questo documento fanno riferimento a dispositivi usati in uno specifico ambiente di emulazione. Su tutti i dispositivi menzionati nel documento la configurazione è stata ripristinata ai valori predefiniti. Se la rete è operativa, valutare attentamente eventuali conseguenze derivanti dall'uso dei comandi.
Processo di profilatura
In questo documento viene descritto in modo approfondito il funzionamento della classificazione e della profilatura dei dispositivi sui Cisco Catalyst 9800 Wireless LAN Controller, vengono descritti i potenziali casi di utilizzo, gli esempi di configurazione e i passaggi necessari per risolvere il problema.
La profilatura dei dispositivi è una funzionalità che consente di ottenere ulteriori informazioni su un client wireless che si è unito all'infrastruttura wireless.
Una volta eseguita, la profilatura dei dispositivi può essere utilizzata per applicare criteri locali diversi o per soddisfare specifiche regole del server RADIUS.
Cisco 9800 WLC sono in grado di eseguire tre (3) tipi di profiling dei dispositivi:
- OUI indirizzo MAC
- DHCP
- HTTP
Profiling OUI indirizzo MAC
L'indirizzo MAC è un identificatore univoco di ciascuna interfaccia di rete wireless (e cablata). Si tratta di un numero a 48 bit in genere scritto in formato esadecimale MM:MM:MM:SS:SS:SS.
I primi 24 bit (o 3 ottetti) sono noti come identificatori univoci dell'organizzazione (OUI, Organizationally Unique Identifier) e identificano in modo univoco un fornitore o un produttore.
Vengono acquistate e assegnate dalla IEEE. Un fornitore o un produttore può acquistare più OUI.
Esempio:
00:0D:4B - owned by Roku, LLC
90:78:B2 - owned by Xiaomi Communications Co Ltd
Una volta che un client wireless si associa al punto di accesso, il WLC esegue la ricerca OUI per determinare il produttore.
Nelle distribuzioni di switching locale Flexconnect, l'access point inoltra ancora le informazioni rilevanti del client al WLC (come i pacchetti DHCP e l'indirizzo MAC del client).
La profilatura basata solo su OUI è estremamente limitata ed è possibile classificare il dispositivo come un marchio specifico, ma non è in grado di distinguere tra un laptop e uno smartphone.
Problemi relativi agli indirizzi MAC amministrati localmente
A causa di problemi di privacy, molti produttori hanno iniziato ad implementare funzionalità di randomizzazione mac nei loro dispositivi.
Gli indirizzi MAC amministrati localmente sono generati in modo casuale e il secondo bit meno significativo del primo ottetto dell'indirizzo è impostato su 1.
Questo bit funge da contrassegno che annuncia che l'indirizzo MAC è in realtà un indirizzo generato in modo casuale.
Esistono quattro possibili formati di indirizzi MAC amministrati localmente (x può essere qualsiasi valore esadecimale):
x2-xx-xx-xx-xx-xx
x6-xx-xx-xx-xx-xx
xA-xx-xx-xx-xx-xx
xE-xx-xx-xx-xx-xx
Per impostazione predefinita, i dispositivi Android 10 utilizzano un indirizzo MAC amministrato localmente generato in modo casuale ogni volta che si connettono a una nuova rete SSID.
Questa funzione annulla completamente la classificazione dei dispositivi basata su OUI, in quanto il controller riconosce che l'indirizzo è stato casuale e non esegue alcuna ricerca.
Profilatura DHCP
La profilatura DHCP viene eseguita dal WLC analizzando i pacchetti DHCP inviati dal client wireless.
Se per classificare il dispositivo è stata utilizzata la profilatura DHCP, l'output del comando show wireless client mac-address [MAC_ADDR] detailed contiene:
Device Type : Microsoft-Workstation
Device Name : MSFT 5.0
Protocol Map : 0x000009 (OUI, DHCP)
Protocol : DHCP
WLC controlla diversi campi dell'opzione DHCP nei pacchetti inviati dai client wireless:
1. Opzione 12 - Hostname
Questa opzione rappresenta il nome host del client ed è disponibile nei pacchetti DHCP Discover e DHCP Request:

2. Opzione 60 - Identificatore della classe del fornitore
Questa opzione è disponibile anche nei pacchetti DHCP Discover e Request.
Con questa opzione, i client possono identificarsi sul server DHCP e i server possono quindi essere configurati in modo da rispondere solo ai client con un identificatore di classe fornitore specifico.
Questa opzione viene in genere utilizzata per identificare i punti di accesso nella rete e rispondere solo con l'opzione 43.
Esempi di identificatori di classe del fornitore
- MSFT 5.0 per tutti i client Windows 2000 (e versioni successive)
- MSFT 98 per tutti i client Windows 98 e Me
- MSFT per tutti i client Windows 98, Me e 2000
I dispositivi MacBook Apple non inviano l'opzione 60 per impostazione predefinita.
Esempio di acquisizione di pacchetti dal client Windows 10:

3. Opzione 55 - Elenco richieste parametri
L'opzione DHCP Parameter Request List contiene i parametri di configurazione (codici di opzione) richiesti dal client DHCP al server DHCP. È una stringa scritta in notazione separata da virgole (ad esempio 1,15,43).
Non è una soluzione perfetta perché i dati prodotti dipendono dal fornitore e possono essere duplicati da più tipi di dispositivi.
Ad esempio, i dispositivi Windows 10 richiedono sempre per impostazione predefinita un determinato elenco di parametri. Apple iPhone e iPad utilizzano diversi set di parametri su cui è possibile classificarli.
Esempio di acquisizione da client Windows 10:

4. Opzione 77 - Classe utente
La classe utente è un'opzione che nella maggior parte dei casi non viene utilizzata per impostazione predefinita e richiede la configurazione manuale del client. Ad esempio, questa opzione può essere configurata su un computer Windows utilizzando il comando:
ipconfig /setclassid “ADAPTER_NAME” “USER_CLASS_STRING”
Il nome della scheda è disponibile in Centro connessioni di rete e condivisione nel Pannello di controllo:

Configurare l'opzione DHCP 66 per il client Windows 10 in CMD (sono necessari i diritti di amministratore):

A causa dell'implementazione di Windows dell'opzione 6, wireshark non è in grado di decodificare questa opzione e parte del pacchetto che arriva dopo l'opzione 66 risulta in formato non valido:

Profiling HTTP
La profilatura HTTP è il modo più avanzato di profilatura supportato da 9800 WLC e offre la classificazione dei dispositivi più dettagliata. Per poter profilare un client HTTP, è necessario che si trovi in stato di esecuzione ed esegua una richiesta HTTP GET. WLC intercetta la richiesta ed esamina il campo User-Agent nell'intestazione HTTP del pacchetto. Questo campo contiene ulteriori informazioni sul client wireless che possono essere utilizzate per classificarlo.
Per impostazione predefinita, quasi tutti i produttori hanno implementato una funzionalità in cui un client wireless tenta di eseguire il controllo della connettività Internet. Questo controllo viene utilizzato anche per il rilevamento automatico del portale guest. Se un dispositivo riceve una risposta HTTP con codice di stato 200 (OK), la WLAN non è protetta con webauth. In caso affermativo, il WLC esegue l'intercettazione necessaria per eseguire il resto dell'autenticazione. Questo GET HTTP iniziale non è l'unico WLC che può utilizzare per profilare il dispositivo. Ogni richiesta HTTP successiva viene ispezionata dal WLC e può risultare con una classificazione ancora più dettagliata.
Per eseguire questo test, i dispositivi Windows 10 utilizzano il dominio msftconnecttest.com. I dispositivi Apple utilizzano captive.apple.com, mentre i dispositivi Android utilizzano in genere connectivitycheck.gstatic.com.
Le acquisizioni dei pacchetti del client Windows 10 che esegue questo controllo sono disponibili di seguito. Il campo Agente utente è popolato con Microsoft NCSI, il che fa sì che il client venga profilato sul WLC come Microsoft-Workstation:

Output di esempio di show wireless client mac-address [MAC_ADDR] dettagliato per un client con profilo tramite HTTP:
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
Profilatura RADIUS
Quando si tratta dei metodi utilizzati per classificare il dispositivo, non vi è alcuna differenza tra la profilatura locale e quella RADIUS.
Se la profilatura RADIUS è abilitata, il WLC inoltra al server RADIUS le informazioni apprese sul dispositivo tramite un insieme specifico di attributi RADIUS specifici del fornitore.
Profiling RADIUS DHCP
Le informazioni ottenute tramite la profilatura DHCP vengono inviate al server RADIUS all'interno della richiesta di accounting come coppia AVPair cisco-av RADIUS specifica del fornitore: dhcp-option=<opzione DHCP>.
Esempio di pacchetto di richiesta di accounting che mostra gli AVPair per le opzioni DHCP 12, 60 e 55, rispettivamente inviate dal WLC al server RADIUS (il valore dell'opzione 55 potrebbe essere danneggiato a causa della decodifica Wireshark):

Profilatura RADIUS HTTP
Le informazioni ottenute tramite profilatura HTTP (campo Agente utente dall'intestazione della richiesta HTTP GET) vengono inviate al server RADIUS all'interno della richiesta di accounting come RADIUS AVPair cisco-av-pair specifico del fornitore: http-tlv=Agente-utente=<agente-utente>
Il pacchetto HTTP GET per il controllo iniziale della connettività non contiene molte informazioni nel campo Agente utente, ma solo Microsoft NCSI. Esempio di pacchetto di accounting che inoltra questo valore semplice al server RADIUS:

Una volta che l'utente ha iniziato a navigare in Internet e ha creato alcune richieste HTTP GET aggiuntive, è possibile ottenere ulteriori informazioni al riguardo. WLC invia un pacchetto di accounting aggiuntivo all'ISE se rileva nuovi valori User-Agent per questo client. In questo esempio, è possibile vedere che il client sta utilizzando Windows 10 a 64 bit e Firefox 76:

Configurazione della profilatura su 9800 WLC
Configurazione profilatura locale
Per il corretto funzionamento della profilatura locale, è sufficiente abilitare la classificazione dei dispositivi in Configurazione > Wireless > Wireless Global. Questa opzione abilita contemporaneamente l'OUI MAC, il profiling HTTP e il profiling DHCP:

Inoltre, in Configurazione criteri è possibile abilitare la memorizzazione nella cache TLV HTTP e la memorizzazione nella cache TLV DHCP. WLC esegue la profilatura anche se senza di essi.
Con queste opzioni abilitate, il WLC memorizza quindi nella cache le informazioni apprese in precedenza su questo client ed elimina la necessità di ispezionare pacchetti aggiuntivi generati da questo dispositivo.

Configurazione profilatura RADIUS
Per il corretto funzionamento del profiling RADIUS, oltre alla classificazione globale dei dispositivi (come indicato nella sezione di configurazione del profiling locale), è necessario:
1. Configurare AAA Method List > Accounting con il tipo identity che punta al server RADIUS:

2. Il metodo contabile deve essere aggiunto in Configurazione > Tag e profili > Criterio > [Nome_criterio] > Avanzato:

3. Infine, selezionare la casella di controllo Profilatura locale RADIUS in Configurazione > Tag e profili > Criterio. Questa casella di controllo abilita la profilatura dei dati HTTP e DHCP RADIUS (i WLC AireOS precedenti disponevano di due caselle di controllo distinte):

Creazione profilo casi di utilizzo
Applica criteri locali in base alla classificazione di profilatura locale
In questa configurazione di esempio viene illustrata la configurazione di Criteri locali con profilo QoS che blocca l'accesso a YouTube e Facebook che viene applicata solo ai dispositivi con profilo Windows-Workstation.
Con alcune piccole modifiche, questa configurazione può essere modificata, ad esempio, impostando un contrassegno DSCP specifico solo per i telefoni wireless.
Creare un profilo QoS selezionando Configurazione > Servizi > QoS. Fare clic su Add (Aggiungi) per creare un nuovo criterio:

Specificare il nome del criterio e aggiungere un nuovo mapping di classi. Dai protocolli disponibili, selezionare quelli che devono essere bloccati, contrassegnati DSCP o con larghezza di banda limitata.
In questo esempio, YouTube e Facebook sono bloccati. Accertarsi di non applicare questo profilo QoS a nessuno dei profili di criteri nella parte inferiore della finestra QoS:


Passare a Configurazione > Protezione > Criteri locali e creare un nuovo modello di servizio:

Specificare i profili QoS in ingresso e QoS in uscita creati nel passaggio precedente. In questo passaggio è possibile applicare anche un elenco degli accessi. Se non è necessario modificare la VLAN, lasciare vuoto il campo ID VLAN:

Passare alla scheda Mappa criteri e fare clic su Aggiungi:

Impostare il nome della mappa dei criteri e aggiungere nuovi criteri. Specificare il modello di servizio creato nel passaggio precedente e selezionare il tipo di dispositivo a cui viene applicato il modello.
In questo caso, viene utilizzato Microsoft-Workstation. Se vengono definiti più criteri, viene utilizzata la prima corrispondenza.
Un altro caso d'uso comune sarebbe quello di specificare i criteri di corrispondenza basati su OUI. Se una distribuzione dispone di un numero elevato di scanner o stampanti dello stesso modello, in genere dispone dello stesso OUI MAC.
Questa opzione può essere utilizzata per applicare un contrassegno DSCP QoS specifico o un ACL:

Affinché il WLC sia in grado di riconoscere il traffico di YouTube e Facebook, è necessario attivare Application Visibility.
Selezionare Configuration> Services > Application Visibility per abilitare la visibilità del profilo delle policy della WLAN:

Verificare che nel Profilo criteri siano abilitate la memorizzazione nella cache TLV HTTP, la memorizzazione nella cache TLV DHCP, la classificazione globale dei dispositivi e che il nome del criterio del sottoscrittore locale punti alla mappa dei criteri locali creata in uno dei passaggi precedenti:

Dopo la connessione del client, è possibile verificare se la politica locale è stata applicata e verificare se YouTube e Facebook sono effettivamente bloccati. L'output del comando show wireless client mac-address [MAC_ADDR] dettagliato contiene:
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
Creazione di profili RADIUS per set di criteri avanzati in Cisco ISE
Se la profilatura RADIUS è abilitata, il WLC inoltra le informazioni di profilatura all'ISE. In base a queste informazioni, è possibile creare regole di autenticazione e autorizzazione avanzate.
In questo documento non viene trattata la configurazione ISE. Per ulteriori informazioni, consultare la Cisco ISE Profiling Design Guide.
Questo flusso di lavoro in genere richiede l'uso di CoA, quindi accertarsi che sia abilitato sul WLC 9800.
Creazione profilo nelle distribuzioni FlexConnect
Autenticazione centrale, switching locale
In questa configurazione, la profilatura locale e RADIUS continua a funzionare esattamente come descritto nei capitoli precedenti. Se il punto di accesso entra in modalità standalone (il punto di accesso perde la connessione al WLC), la profilatura dei dispositivi smette di funzionare e nessun nuovo client è in grado di connettersi.
Autenticazione locale, switching locale
Se l'access point è in modalità connessa (un access point è stato aggiunto al WLC), la profilatura continua a funzionare (l'access point invia una copia dei pacchetti DHCP client al WLC per eseguire il processo di profilatura).
Nonostante il funzionamento della profilatura, poiché l'autenticazione viene eseguita localmente nell'access point, le informazioni di profilatura non possono essere utilizzate per alcuna configurazione di Criteri locali o regole di profilatura RADIUS.
Risoluzione dei problemi
Tracce radioattive
Il modo più semplice per risolvere i problemi relativi ai profili dei client sul WLC è tramite tracce radioattive. Passare a Risoluzione dei problemi > Traccia radioattiva, immettere l'indirizzo MAC della scheda wireless del client e fare clic su Start:

Connettere il client alla rete e attendere che raggiunga lo stato di esecuzione. Arrestare le tracce e fare clic su Genera. Verificare che i registri interni siano abilitati (questa opzione è disponibile solo nella versione 17.1.1 e successive):

Frammenti rilevanti della traccia radioattiva sono reperibili qui di seguito.
Il client viene profilato da WLC come 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
Memorizzazione nella cache WLC della classificazione del dispositivo:
(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: ricerca della classificazione dei dispositivi nella cache in corso:
(info): [74da.38f6.76f0:capwap_90000004] Device type found in cache Microsoft-Workstation
WLC applicazione dei criteri locali in base alla classificazione:
(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
Invio WLC di pacchetti di accounting contenenti gli attributi DHCP e Profiling 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
Acquisizioni pacchetti
In un'implementazione a commutazione centrale, le acquisizioni dei pacchetti possono essere eseguite sul WLC stesso. Passare a Risoluzione dei problemi > Acquisizione pacchetti e creare un nuovo punto di acquisizione su una delle interfacce utilizzate dal client.
Per eseguire l'acquisizione sulla VLAN, è necessario disporre di una SVI sulla VLAN, altrimenti acquisire il pacchetto sulla porta fisica

Informazioni correlate