Inleiding
In dit document wordt beschreven hoe apparaatclassificatie en profilering werkt op Cisco Catalyst 9800 Wireless LAN-controllers.
Voorwaarden
Vereisten
Er zijn geen specifieke vereisten van toepassing op dit document.
Gebruikte componenten
De informatie in dit document is gebaseerd op de volgende softwareversies:
- 9800 CL WLC met 17.2.1-afbeelding
- 1815i-toegangspunt
- Windows 10 Pro Wireless Client
- Cisco ISE 2.7
De informatie in dit document is gebaseerd op de apparaten in een specifieke laboratoriumomgeving. Alle apparaten die in dit document worden beschreven, hadden een opgeschoonde (standaard)configuratie. Als uw netwerk live is, moet u zorgen dat u de potentiële impact van elke opdracht begrijpt.
Profileringsproces
In dit artikel wordt een diepgaand overzicht gegeven van de werking van apparaatclassificatie en profilering op Cisco Catalyst 9800 Wireless LAN-controllers, worden mogelijke gebruiksscenario's, configuratievoorbeelden en stappen beschreven die nodig zijn om problemen op te lossen.
Apparaatprofilering is een functie waarmee u meer informatie kunt vinden over een draadloze client die is aangesloten op de draadloze infrastructuur.
Zodra apparaatprofilering is uitgevoerd, kan deze worden gebruikt om verschillende lokale beleidsregels toe te passen of om te voldoen aan specifieke RADIUS-serverregels.
Cisco 9800 WLC's kunnen drie (3) typen apparaatprofilering uitvoeren:
- MAC-adres OUI
- DHCP
- HTTP
MAC-adres OUI-profilering
MAC-adres is een unieke identificatie van elke draadloze (en bekabelde) netwerkinterface. Het is een 48-bits getal dat meestal wordt opgeschreven in een hexadecimaal formaat MM: MM: MM: SS: SS: SS.
De eerste 24 bits (of 3 octetten) staan bekend als Organizational Unique Identifier (OUI) en ze identificeren op unieke wijze een leverancier of fabrikant.
Ze worden gekocht bij en toegewezen door de IEEE. Eén leverancier of fabrikant kan meerdere OUI's aanschaffen.
Voorbeeld:
00:0D:4B - owned by Roku, LLC
90:78:B2 - owned by Xiaomi Communications Co Ltd
Zodra een draadloze client is gekoppeld aan het toegangspunt, voert de WLC de OUI-zoekopdracht uit om de fabrikant te bepalen.
In lokale switchimplementaties van Flexconnect geeft het toegangspunt nog steeds relevante clientinformatie door aan het WLC (zoals DHCP-pakketten en het MAC-adres van de client).
Profilering op basis van alleen OUI is uiterst beperkt en het is mogelijk om het apparaat te classificeren als een specifiek merk, maar het kan geen onderscheid maken tussen een laptop en smartphone.
Lokaal beheerde MAC-adressen problemen
Vanwege privacyproblemen zijn veel fabrikanten begonnen met het implementeren van mac-randomisatiefuncties in hun apparaten.
Lokaal beheerde MAC-adressen worden willekeurig gegenereerd en hebben een op één na minst significante bit van het eerste octet van het adres ingesteld op 1.
Dit bit fungeert als een vlag die aankondigt dat het MAC-adres eigenlijk willekeurig is gegenereerd.
Er zijn vier mogelijke formaten van lokaal beheerde MAC-adressen (x kan elke hexadecimale waarde zijn):
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-apparaten gebruiken standaard een willekeurig gegenereerd lokaal beheerd MAC-adres elke keer dat ze verbinding maken met een nieuw SSID-netwerk.
Deze functie verslaat de op OUI gebaseerde apparaatclassificatie volledig, omdat de controller erkent dat het adres is gerandomiseerd en geen zoekopdracht uitvoert.
DHCP-profilering
DHCP-profilering wordt uitgevoerd door WLC door onderzoek van de DHCP-pakketten die de draadloze client verzendt.
Als DHCP-profilering is gebruikt om het apparaat te classificeren, bevat de uitvoer van de gedetailleerde opdracht show wireless client mac-address [MAC_ADDR]:
Device Type : Microsoft-Workstation
Device Name : MSFT 5.0
Protocol Map : 0x000009 (OUI, DHCP)
Protocol : DHCP
WLC inspecteert verschillende DHCP Option-velden in de pakketten die door draadloze clients worden verzonden:
1. Optie 12 - Hostname
Deze optie vertegenwoordigt de hostnaam van de client en is te vinden in de pakketten DHCP Discover en DHCP Request:

2. Optie 60 - Identificatie leveranciersklasse
Deze optie is ook te vinden in de DHCP Discover en Request-pakketten.
Met deze optie kunnen clients zich identificeren met de DHCP-server en kunnen de servers vervolgens worden geconfigureerd om alleen te reageren op de clients met een specifieke leveranciersklasse-id.
Deze optie wordt meestal gebruikt om de toegangspunten in het netwerk te identificeren en er alleen op te reageren met de optie 43.
Voorbeelden van vendor class identifiers
- MSFT 5.0 voor alle Windows 2000-clients (en hoger)
- MSFT 98 voor alle Windows 98- en Me-clients
- MSFT voor alle Windows 98-, Me- en 2000-clients
Apple MacBook-apparaten verzenden standaard geen optie 60.
Voorbeeld van pakketopname vanuit Windows 10-client:

3. Optie 55 - Lijst met parameteraanvragen
De optie Lijst met aanvragen voor DHCP-parameters bevat configuratieparameters (optiecodes) die de DHCP-client bij de DHCP-server aanvraagt. Het is een tekenreeks geschreven in een door komma gescheiden notatie (bijvoorbeeld 1,15,43).
Het is geen perfecte oplossing omdat de gegevens die het produceert afhankelijk zijn van de leverancier en kunnen worden gedupliceerd door meerdere apparaattypen.
Windows 10-apparaten vragen bijvoorbeeld altijd standaard om een bepaalde parameterlijst. Apple iPhones en iPads gebruiken verschillende parameters waarop het mogelijk is om ze te classificeren.
Voorbeeld van vastlegging vanuit Windows 10-client:

4. Optie 77 - Gebruikersklasse
Gebruikersklasse is een optie die meestal niet standaard wordt gebruikt en waarvoor de client handmatig moet worden geconfigureerd. Deze optie kan bijvoorbeeld op een Windows-systeem worden geconfigureerd met de opdracht:
ipconfig /setclassid “ADAPTER_NAME” “USER_CLASS_STRING”
De naam van de adapter vindt u in het Netwerkcentrum in het Configuratiescherm:

DHCP-optie 66 configureren voor Windows 10-client in CMD (vereist beheerdersrechten):

Vanwege de Windows-implementatie van optie 66 kan wireshark deze optie niet decoderen en een deel van het pakket dat na optie 66 komt, wordt weergegeven als misvormd:

HTTP-profilering
HTTP-profilering is de meest geavanceerde manier om 9800 WLC-ondersteuning te profileren en biedt de meest gedetailleerde apparaatclassificatie. Als een client een HTTP-profiel wil hebben, moet deze in de status Uitvoeren staan en een HTTP GET-verzoek uitvoeren. WLC onderschept het verzoek en kijkt in het veld User-Agent in de HTTP-header van het pakket. Dit veld bevat aanvullende informatie over de draadloze client die kan worden gebruikt om deze te classificeren.
Standaard hebben bijna alle fabrikanten een functie geïmplementeerd waarbij een draadloze client probeert de internetverbinding te controleren. Deze controle wordt ook gebruikt voor automatische detectie van gastenportalen. Als een apparaat een HTTP-respons met statuscode 200 (OK) ontvangt, betekent dit dat het WLAN niet is beveiligd met webauth. Als dit het geval is, voert de WLC vervolgens de interceptie uit die nodig is om de rest van de authenticatie uit te voeren. Deze initiële HTTP GET is niet de enige die WLC kan gebruiken om het apparaat te profileren. Elk volgend HTTP-verzoek wordt geïnspecteerd door de WLC en het resulteert mogelijk met nog meer gedetailleerde classificatie.
Windows 10-apparaten gebruiken het domein msftconnecttest.com om deze test uit te voeren. Apple-apparaten gebruiken captive.apple.com, terwijl Android-apparaten meestal connectiviteitscontrole.gstatic.com gebruiken.
Pakketopnames van de Windows 10-client die deze controle uitvoert, vindt u hieronder. Het veld User Agent wordt gevuld met Microsoft NCSI, wat resulteert in een clientprofiel op de WLC als Microsoft-Workstation:

Voorbeeld van uitvoer van tonen draadloos client mac-adres [MAC_ADDR] gedetailleerd voor een client die is geprofileerd via 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
RADIUS Profiling
Als het gaat om methoden die worden gebruikt om het apparaat te classificeren, is er geen verschil tussen Lokale en RADIUS Profilering.
Als RADIUS-profilering is ingeschakeld, stuurt de WLC de informatie die de WLC over het apparaat heeft geleerd door naar de RADIUS-server via een specifieke set van RADIUS-attributen van de leverancier.
DHCP RADIUS Profiling
Informatie verkregen via DHCP-profilering wordt in het boekhoudverzoek naar de RADIUS-server verzonden als een leverancierspecifiek RADIUS AVPair cisco-av-paar: dhcp-option=<DHCP option>.
Voorbeeld van een boekhoudpakket met AVPairs voor DHCP-optie 12, 60 en 55, respectievelijk verzonden van WLC naar RADIUS-server (optie 55-waarde wordt mogelijk weergegeven als beschadigd vanwege Wireshark-decodering):

HTTP RADIUS Profiling
Informatie verkregen via HTTP Profiling (User-Agent veld van de header van HTTP GET verzoek) stuurt over naar de RADIUS-server in de boekhouding verzoek als een leverancier specifieke RADIUS AVPair cisco-av-pair: http-tlv=User-Agent=<user-agent>
Initiële connectiviteitscontrole HTTP GET-pakket bevat niet veel informatie in het veld User-Agent, alleen Microsoft NCSI. Voorbeeld van een boekhoudpakket dat deze eenvoudige waarde doorstuurt naar de RADIUS-server:

Zodra de gebruiker begint te surfen op het internet en maakt een aantal extra HTTP GET verzoeken, is het mogelijk om meer informatie over te krijgen. WLC stuurt een extra boekhoudpakket naar de ISE als het nieuwe User-Agent-waarden voor deze client detecteert. In dit voorbeeld kunt u zien dat de client Windows 10 64-bits en Firefox 76 gebruikt:

Profilering configureren op 9800 WLC
Configuratie lokale profilering
Als u wilt dat Local Profiling werkt, schakelt u Apparaatclassificatie in onder Configuratie > Draadloos > Draadloos wereldwijd. Met deze optie kunt u MAC OUI-, HTTP- en DHCP-profilering tegelijkertijd gebruiken:

Bovendien kunt u onder Beleidsconfiguratie HTTP TLV-caching en DHCP TLV-caching inschakelen. WLC voert profilering uit, zelfs zonder hen.
Als deze opties zijn ingeschakeld, cachet de WLC eerder geleerde informatie over deze client en voorkomt u dat extra pakketten die door dit apparaat zijn gegenereerd, moeten worden geïnspecteerd.

RADIUS-profielconfiguratie
Om RADIUS-profilering te laten werken, is het, naast het wereldwijd inschakelen van apparaatclassificatie (zoals vermeld in de sectie Local Profiling Configuration), noodzakelijk om:
1. Configureer de AAA-methodenlijst > Boekhouding met type-identiteit die naar de RADIUS-server wijst:

2. De boekhoudmethode moet worden toegevoegd onder Configuratie > Tags en profielen > Beleid > [Policy_Name] > Geavanceerd:

3. Ten slotte moet het selectievakje RADIUS Local Profiling worden aangevinkt onder Configuration > Tags & Profiles > Policy. Met dit selectievakje kunt u zowel HTTP- als DHCP RADIUS-profilering gebruiken (oude AireOS-WLC's hadden 2 afzonderlijke selectievakjes):

Gebruiksvoorbeelden van profilering
Lokaal beleid toepassen op basis van classificatie van lokale profilering
Deze voorbeeldconfiguratie toont de configuratie van Lokaal beleid met QoS-profiel dat YouTube- en Facebook-toegang blokkeert die alleen wordt toegepast op apparaten die zijn geprofileerd als Windows-Workstation.
Met kleine wijzigingen kan deze configuratie worden gewijzigd om bijvoorbeeld specifieke DSCP-markering in te stellen voor alleen draadloze telefoons.
Maak een QoS-profiel door te navigeren naar Configuratie > Services > QoS. Klik op Toevoegen om nieuw beleid te maken:

Geef de naam van het beleid op en voeg een nieuwe klassentoewijzing toe. Selecteer in de beschikbare protocollen de protocollen die moeten worden geblokkeerd, DSCP-markering of beperkte bandbreedte.
In dit voorbeeld worden YouTube en Facebook geblokkeerd. Zorg ervoor dat u dit QoS-profiel niet toepast op een van de beleidsprofielen onderaan het QoS-venster:


Navigeer naar Configuratie > Beveiliging > Lokaal beleid en maak een nieuwe servicesjabloon:

Geef Ingress QoS- en Egress QoS-profielen op die in de vorige stap zijn gemaakt. In deze stap kan ook een toegangslijst worden toegepast. Als er geen VLAN-wijziging nodig is, laat u het veld VLAN-ID leeg:

Navigeer naar het tabblad Beleidskaart en klik op Toevoegen:

Stel de naam van de beleidskaart in en voeg nieuwe criteria toe. Geef de servicesjabloon op die in de vorige stap is gemaakt en selecteer het apparaattype waarop deze sjabloon is toegepast.
In dit geval wordt Microsoft-Workstation gebruikt. Als er meerdere polissen zijn gedefinieerd, wordt de eerste match gebruikt.
Een andere veel voorkomende use case zou zijn om OUI-gebaseerde matchcriteria te specificeren. Als een implementatie een groot aantal scanners of printers van hetzelfde model heeft, hebben ze meestal dezelfde MAC-OUI.
Dit kan worden gebruikt om specifieke QoS DSCP-markering of een ACL toe te passen:

Om WLC in staat te stellen het YouTube- en Facebook-verkeer te herkennen, moet Zichtbaarheid van toepassingen worden ingeschakeld.
Navigeer naar Configuratie > Services > Zichtbaarheid van toepassingen om zichtbaarheid voor het beleidsprofiel van uw WLAN mogelijk te maken:

Controleer of onder het beleidsprofiel de HTTP TLV-caching, DHCP TLV-caching, Global Device Classification zijn ingeschakeld en of Local Subscriber Policy Name verwijst naar de lokale beleidskaart die in een van de vorige stappen is gemaakt:

Nadat de client verbinding heeft gemaakt, is het mogelijk om te controleren of het lokale beleid is toegepast en te testen of YouTube en Facebook daadwerkelijk zijn geblokkeerd. De uitvoer van het weergegeven draadloze client-mac-adres [MAC_ADDR] bevat:
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
RADIUS-profilering voor geavanceerde beleidssets in Cisco ISE
Met RADIUS-profilering ingeschakeld, stuurt de WLC profileringsinformatie door naar de ISE. Op basis van deze informatie is het mogelijk om geavanceerde authenticatie- en autorisatieregels te maken.
Dit artikel heeft geen betrekking op de configuratie van ISE. Raadpleeg de Cisco ISE Profiling Design Guide voor meer informatie.
Deze workflow vereist meestal het gebruik van CoA, dus zorg ervoor dat het is ingeschakeld op de 9800 WLC.
Profilering in FlexConnect-implementaties
centrale verificatie, lokale switching
In deze configuratie blijven zowel lokale als RADIUS-profilering precies werken zoals beschreven in eerdere hoofdstukken. Als het toegangspunt in de stand-alone modus wordt gezet (het toegangspunt verliest de verbinding met de WLC), werkt de apparaatprofilering niet meer en kunnen er geen nieuwe clients meer verbinding maken.
lokale verificatie, lokale switching
Als het toegangspunt zich in de verbindingsmodus bevindt (het toegangspunt is gekoppeld aan de WLC), blijft profilering werken (het toegangspunt verzendt een kopie van de DHCP-clientpakketten naar de WLC om het profileringsproces uit te voeren).
Ondanks dat profilering werkt, kunnen profileringsgegevens niet worden gebruikt voor een lokale beleidsconfiguratie of RADIUS-profileringsregels omdat de verificatie lokaal op het toegangspunt wordt uitgevoerd.
Probleemoplossing
radioactieve sporen
De eenvoudigste manier om problemen met clientprofilering op de WLC op te lossen, is via radioactieve sporen. Navigeer naar Problemen oplossen > Radioactief opsporen, voer het MAC-adres van de draadloze adapter van de client in en klik op Starten:

Verbind de client met het netwerk en wacht tot de status Run (Uitvoeren) is bereikt. Stop de sporen en klik op Genereren. Zorg ervoor dat de interne logboeken zijn ingeschakeld (deze optie bestaat alleen in 17.1.1 en latere versies):

Relevante fragmenten van het radioactieve spoor zijn hieronder te vinden.
Client wordt geprofileerd door WLC als 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-caching van de apparaatclassificatie:
(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 vindt de apparaatclassificatie in de cache:
(info): [74da.38f6.76f0:capwap_90000004] Device type found in cache Microsoft-Workstation
WLC die lokaal beleid toepast op basis van classificatie:
(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 verzendende boekhoudpakketten die het kenmerk DHCP en HTTP Profiling bevatten:
[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
Packet Captures
In een centraal geschakelde implementatie kunnen pakketopnames worden uitgevoerd op de WLC zelf. Ga naar Problemen oplossen > Pakketvastlegging en maak een nieuw opnamepunt op een van de interfaces die door deze client worden gebruikt.
U moet SVI op het VLAN hebben om de opname op het VLAN uit te voeren, anders neemt u de opname op de fysieke poort zelf

Gerelateerde informatie