簡介
本文檔介紹在啟用交換矩陣的無線802.1x SSID上動態SGT和L2VNID分配的過程。
必要條件
需求
思科建議您瞭解以下主題:
- 遠端驗證撥入使用者服務(RADIUS)
- 無線LAN控制器(WLC)
- 身分識別服務引擎 (ISE)
- 安全組標籤(SGT)
- L2VNID(第2層虛擬網路識別符號)
- 支援SD訪問交換矩陣的無線(SDA少)
- Locator/ID Separation Protocol (LISP)
- 虛擬可擴充區域網路(VXLAN)
- 光纖控制平面(CP)和邊緣節點(EN)
- Catalyst Center (CatC,之前稱為Cisco DNA Center)
採用元件
WLC 9800 Cisco IOS® XE版本17.6.4
Cisco IOS® XE
ISE版本2.7
CatC版本2.3.5.6
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路運作中,請確保您瞭解任何指令可能造成的影響。
背景資訊
SD-Access的關鍵方面之一是透過Scalable Groups實現的VN中的微分段。
SGT可以按照支援交換矩陣的WLAN或SSID靜態分配(雖然它們不同,但它們的差異不會影響本文檔的主要目標,因此我們可互換使用兩個含義相同的術語以增強可讀性)。但是,在許多實際部署中,通常有連線到同一WLAN的使用者需要一組不同的策略或網路設定。此外,在某些情況下,需要為同一交換矩陣WLAN內的特定客戶端分配不同的IP地址,以便為其應用基於IP的特定策略或滿足公司的IP編址要求。L2VNID(第2層虛擬網路識別符號)是FEW基礎架構用於將無線使用者放置在不同子網範圍內的引數。存取點將VxLAN報頭中的L2VNID傳送到交換矩陣邊緣節點(EN),然後由交換矩陣邊緣節點將其與相應的L2 VLAN關聯。
為了在同一WLAN中實現此粒度,使用動態SGT和/或L2VNID分配。WLC收集終端的身份資訊,將其傳送到ISE進行身份驗證,ISE使用它來匹配要應用於此客戶端的正確策略,並在身份驗證成功後返回SGT和/或L2VNID資訊。
拓撲
為了瞭解此過程的工作原理,我們使用本實驗拓撲製作了一個示例:
在本示例中,WLAN使用以下命令靜態配置:
- L2VNID = 8198 / IP池名稱= Pegasus_Read_Only —> VLAN 1030 (10.10.10.x)
- 無SGT
連線的無線使用者端會動態取得下列引數:
- L2VNID = 8199 / IP池名稱= 10_10_30_0-READONLY_VN —> VLAN 1031 (10.10.30.x)
- SGT = 18
組態
首先,我們需要確定相關的WLAN並檢查其配置方式。本例中使用的是「TC2E-druedahe-802.1x」 SSID。在本文檔進行密文時,SDA僅透過CatC受支援,因此我們必須檢查其中配置了什麼配置。在Provision/SD-Access/Fabric Sites/<specific Fabric site>/Host Onboarding/Wireless SSIDs下:
SSID對映了名為「Pegasus_Read_Only」的IP池,並且沒有靜態分配SGT,這意味著SGT=0。這意味著,如果無線客戶端成功連線和身份驗證而未通過ISE傳送任何屬性返回進行動態分配,則這是無線客戶端設定。
動態指定的池必須存在於WLC配置之前。這可以透過在CatC的虛擬網路中將IP池增加為「Wireless Pool」來完成:
在WLC GUI中的Configuration/Wireless/Fabric下,此設定反映以下方式:
「Pegasus_Read_Only」池相當於8198 L2VNID,我們希望我們的客戶端位於8199 L2VNID上,這意味著ISE需要通知WLC為此客戶端使用「10_10_30_0-READONLY_VN」池。請記得,WLC沒有保留光纖VLAN的任何配置。它只知道L2VNID。然後,每個對映到SDA交換矩陣EN中的特定VLAN。
驗證
所報告的涉及SGT/L2VNID動態分配問題的症狀為:
- 在連線到特定WLAN的無線客戶端上未實施SG策略。(動態SGT分配問題)。
- 無線客戶端未通過DHCP獲取IP地址,或者未從特定WLAN的所需子網範圍獲取IP地址。(動態L2VNID分配問題)。
現在描述了在這個過程中每個相關節點的驗證。
ISE驗證
起點是ISE。轉到ISE GUI的Operation/RADIUS/Live Logs/下並使用無線客戶端MAC地址作為Endpoint ID欄位中的過濾器,然後點選Details圖示:
然後它會開啟另一個包含驗證詳細資訊的標籤。我們主要關注兩部分,概述和結果:
Overview顯示對此無線客戶端身份驗證使用的是預期策略還是期望策略。如果不是,則需要重新檢視ISE策略配置,但這超出了本文檔的範圍。
結果顯示ISE向WLC返回的內容。目標是動態分配SGT和L2VNID,因此這些資料必須包含在這裡,並且它是。請注意兩點:
1. L2VNID名稱作為「Tunnel-Private-Group-ID」屬性傳送。ISE必須返回名稱(10_10_30_0-READONLY_VN)而不是ID (8199)。
2. SGT作為「cisco-av-pair」傳送。在cts:security-group-tag屬性中,請注意SGT值以十六進位制(12)表示,而非ascii (18),但它們相同。TC2E_Learers是ISE內部的SGT名稱。
WLC驗證
在WLC中,我們可以使用show wireless fabric client summary命令檢查客戶端狀態,並使用show wireless fabric summary按兩下確認交換矩陣配置和存在動態分配的L2VNID:
eWLC#show wireless fabric client summary
Number of Fabric Clients : 1
MAC Address AP Name WLAN State Protocol Method L2 VNID RLOC IP
----------------------------------------------------------------------------------------------------------------------
08be.ac18.c4d9 DNA12-AP-01 19 Run 11ac Dot1x 8199 172.16.69.68
eWLC4#show wireless fabric summary
Fabric Status : Enabled
Control-plane:
Name IP-address Key Status
--------------------------------------------------------------------------------------------
default-control-plane 172.16.201.4 f9afa1 Up
Fabric VNID Mapping:
Name L2-VNID L3-VNID IP Address Subnet Control plane name
----------------------------------------------------------------------------------------------------------------------
Pegasus_APs 8196 4097 10.10.99.0 255.255.255.0 default-control-plane
Pegasus_Extended 8207 0 0.0.0.0 default-control-plane
Pegasus_Read_Only 8198 0 0.0.0.0 default-control-plane
10_10_30_0-READONLY_VN 8199 0 0.0.0.0 default-control-plane
如果期望的資訊未反映出來,我們可以在WLC中啟用無線客戶端MAC地址的RA跟蹤,以準確檢視從ISE接收的資料。有關如何獲取特定客戶端的RA Traces輸出的資訊,請參閱以下文檔:
https://www.cisco.com/c/en/us/td/docs/wireless/controller/9800/17-6/config-guide/b_wl_17_6_cg/m_debug_ra_ewlc.html?bookSearch=true
在客戶端的RA Trace輸出中,ISE傳送的屬性在RADIUS Access-Accept資料包中傳輸:
{wncd_x_R0-0}{1}: [radius] [21860]: (info): RADIUS: Received from id 1812/14 172.16.201.206:0, Access-Accept, len 425
{wncd_x_R0-0}{1}: [radius] [21860]: (info): RADIUS: authenticator c6 ac 95 5c 95 22 ea b6 - 21 7d 8a fb a0 2f 3a d9
{wncd_x_R0-0}{1}: [radius] [21860]: (info): RADIUS: User-Name [1] 10 "druedahe"
{wncd_x_R0-0}{1}: [radius] [21860]: (info): RADIUS: Class [25] 53 ...
{wncd_x_R0-0}{1}: [radius] [21860]: (info): 01:
{wncd_x_R0-0}{1}: [radius] [21860]: (info): RADIUS: Tunnel-Type [64] 6 VLAN [13]
{wncd_x_R0-0}{1}: [radius] [21860]: (info): 01:
{wncd_x_R0-0}{1}: [radius] [21860]: (info): RADIUS: Tunnel-Medium-Type [65] 6 ALL_802 [6]
{wncd_x_R0-0}{1}: [radius] [21860]: (info): RADIUS: EAP-Message [79] 6 ...
{wncd_x_R0-0}{1}: [radius] [21860]: (info): RADIUS: Message-Authenticator[80] 18 ...
{wncd_x_R0-0}{1}: [radius] [21860]: (info): 01:
{wncd_x_R0-0}{1}: [radius] [21860]: (info): RADIUS: Tunnel-Private-Group-Id[81] 25 "10_10_30_0-READONLY_VN"
{wncd_x_R0-0}{1}: [radius] [21860]: (info): RADIUS: EAP-Key-Name [102] 67 *
{wncd_x_R0-0}{1}: [radius] [21860]: (info): RADIUS: Vendor, Cisco [26] 38
{wncd_x_R0-0}{1}: [radius] [21860]: (info): RADIUS: Cisco AVpair [1] 32 "cts:security-group-tag=0012-01"
{wncd_x_R0-0}{1}: [radius] [21860]: (info): RADIUS: Vendor, Cisco [26] 34
{wncd_x_R0-0}{1}: [radius] [21860]: (info): RADIUS: Cisco AVpair [1] 28 "cts:sgt-name=TC2E_Learners"
{wncd_x_R0-0}{1}: [radius] [21860]: (info): RADIUS: Vendor, Cisco [26] 26
{wncd_x_R0-0}{1}: [radius] [21860]: (info): RADIUS: Cisco AVpair [1] 20 "cts:vn=READONLY_VN"
{wncd_x_R0-0}{1}: [radius] [21860]: (info): RADIUS: Vendor, Microsoft [26] 58
…
{wncd_x_R0-0}{1}: [epm-misc] [21860]: (info): [08be.ac18.c4d9:capwap_9000000a] Username druedahe received
{wncd_x_R0-0}{1}: [epm-misc] [21860]: (info): [08be.ac18.c4d9:capwap_9000000a] VN READONLY_VN received in misc plugin
…
{wncd_x_R0-0}{1}: [auth-mgr] [21860]: (info): [08be.ac18.c4d9:capwap_9000000a] User Profile applied successfully - REPLACE
{wncd_x_R0-0}{1}: [client-auth] [21860]: (note): MAC: 08be.ac18.c4d9 ADD MOBILE sent. Client state flags: 0x42 BSSID: MAC: 488b.0a97.0128 capwap IFID: 0x9000000a
然後,WLC將SGT和L2VNID資訊傳送到:
1. 透過CAPWAP(無線存取點的控制和調配)的存取點(AP)。
2. 透過LISP的交換矩陣CP。
交換矩陣CP然後透過LISP將SGT值傳送到連線AP的交換矩陣EN。
交換矩陣EN驗證
下一步是驗證交換矩陣EN是否反映動態接收的資訊。show vlan命令確認與L2VNID 8199關聯的VLAN:
EDGE-01#show vlan | i 819
1028 Pegasus_APs active Tu0:8196, Gi1/0/4, Gi1/0/5, Gi1/0/6, Gi1/0/10, Gi1/0/18
1030 Pegasus_Read_Only active Tu0:8198, Gi1/0/15
1031 10_10_30_0-READONLY_VN active Tu0:8199, Gi1/0/1, Gi1/0/2, Gi1/0/9
我們可以看到L2VNID 8199對映到VLAN 1031。
並且,如果無線客戶端位於所需的VLAN上,則會顯示show device-tracking database mac <mac address>:
EDGE-01#show device-tracking database mac 08be.ac18.c4d9
Load for five secs: 1%/0%; one minute: 1%; five minutes: 1%
Time source is NTP, 15:16:09.219 UTC Thu Nov 23 2023
Codes: L - Local, S - Static, ND - Neighbor Discovery, ARP - Address Resolution Protocol, DH4 - IPv4 DHCP, DH6 - IPv6 DHCP, PKT - Other Packet, API - API created
Preflevel flags (prlvl):
0001:MAC and LLA match 0002:Orig trunk 0004:Orig access
0008:Orig trusted trunk 0010:Orig trusted access 0020:DHCP assigned
0040:Cga authenticated 0080:Cert authenticated 0100:Statically assigned
Network Layer Address Link Layer Address Interface vlan prlvl age state Time left
macDB has 0 entries for mac 08be.ac18.c4d9,vlan 1028, 0 dynamic
macDB has 2 entries for mac 08be.ac18.c4d9,vlan 1030, 0 dynamic
DH4 10.10.30.12 08be.ac18.c4d9 Ac1 1031 0025 96s REACHABLE 147 s try 0(691033 s)
最後,show cts role-based sgt-map vrf <vrf name> all 命令提供分配給客戶端的SGT值。在本例中,VLAN 1031是「READONLY_VN」 VRF的一部分:
EDGE-01#show cts role-based sgt-map vrf READONLY_VN all
Load for five secs: 1%/0%; one minute: 1%; five minutes: 1%
Time source is NTP, 10:54:01.496 UTC Fri Dec 1 2023
Active IPv4-SGT Bindings Information
IP Address SGT Source
============================================
10.10.30.12 18 LOCAL
10.10.30.14 4 LOCAL
注意:在適用於無線客戶端的SDA交換矩陣(例如適用於有線客戶端)中,Cisco TrustSec (CTS)策略實施由EN進行,而不是AP或WLC。
這樣,EN可以應用為指定SGT配置的策略。
如果這些輸出填充不正確,我們可以使用EN中的debug lisp control-plane all命令檢查其是否收到來自WLC的LISP通知:
378879: Nov 28 18:49:51.376: [MS] LISP: Session VRF default, Local 172.16.69.68, Peer 172.16.201.4:4342, Role: Active, Received reliable registration message wlc mapping-notification for IID 8199 EID 08be.ac18.c4d9/48 (state: Up, RX 0, TX 0).
378880: Nov 28 18:49:51.376: [XTR] LISP-0 IID 8199 MAC: Map Server 172.16.201.4, WLC Map-Notify for EID 08be.ac18.c4d9 has 0 Host IP records, TTL=1440.
378881: Nov 28 18:49:51.376: [XTR] LISP-0 IID 8199: WLC entry prefix 08be.ac18.c4d9/48 client, Created.
378888: Nov 28 18:49:51.377: [XTR] LISP-0 IID 8199 MAC: SISF event scheduled Add of client MAC 08be.ac18.c4d9.
378889: Nov 28 18:49:51.377: [XTR] LISP: MAC, SISF L2 table event CREATED for 08be.ac18.c4d9 in Vlan 1031, IfNum 92, old IfNum 0, tunnel ifNum 89.
請注意,LISP通知首先由CP接收,然後由CP將其轉發給EN。SISF或裝置跟蹤條目是在收到此LISP通知時建立的,這是該過程的一個重要部分。您也可以檢視以下通知:
EDGE-01#show lisp instance-id 8199 ethernet database wlc clients detail
Load for five secs: 1%/0%; one minute: 1%; five minutes: 1%
Time source is NTP, 21:23:31.737 UTC Wed Nov 29 2023
WLC clients/access-points information for router lisp 0 IID 8199
Hardware Address: 08be.ac18.c4d9
Type: client
Sources: 1
Tunnel Update: Signalled
Source MS: 172.16.201.4
RLOC: 172.16.69.68
Up time: 00:01:09
Metadata length: 34
Metadata (hex): 00 01 00 22 00 01 00 0C 0A 0A 63 0B 00 00 10 01
00 02 00 06 00 12 00 03 00 0C 00 00 00 00 65 67
AB 7B
注意:後設資料部分中突出顯示的值12是我們最初打算分配的SGT 18的十六進製版本。這證實了整個過程是正確完成的。
封包驗證
作為最後確認步驟,我們還可以使用EN交換機中的嵌入式資料包捕獲(EPC)工具,檢視此客戶端的資料包如何透過AP傳輸。有關如何透過EPC獲取捕獲檔案的資訊,請參閱:
https://www.cisco.com/c/en/us/td/docs/switches/lan/catalyst9300/software/release/17-3/configuration_guide/nmgmt/b_173_nmgmt_9300_cg/configuring_packet_capture.html
在本範例中,對閘道的ping是在無線使用者端本身中啟動:
請注意,資料包預期會附帶來自AP的VXLAN報頭,因為AP和EN在它們之間為交換矩陣無線客戶端形成VXLAN隧道:
隧道的源是AP IP地址(10.10.99.11),目標是EN Loopback0 IP地址(172.16.69.68)。在VXLAN標頭中,我們可以看到實際的無線使用者端資料,在此案例中為ICMP封包。
最後,檢查VXLAN標頭:
將SGT值記為組策略ID —在本例中為ascii格式,並將L2VNID值記為VXLAN網路識別符號(VNI)。