简介
本文档介绍如何使用带AireOS控制器的Cisco DNA空间配置强制网络门户。
作者:Andres Silva思科TAC工程师。
先决条件
要求
Cisco 建议您了解以下主题:
- 命令行界面(CLI)或图形用户界面(GUI)访问无线控制器
- 思科DNA空间
使用的组件
本文档中的信息基于以下软件和硬件版本:
配置
网络图

配置
将WLC连接到思科DNA空间
控制器需要使用任何可用的设置(直接连接)、DNA空间连接器或CMX Tethering连接到DNA空间。
在本例中,“直接连接”(Direct Connect)选项正在使用中,尽管强制网络门户的配置方式与所有设置相同。
要将控制器连接到Cisco DNA空间,它必须能够通过HTTPS访问Cisco DNA空间云。有关如何将控制器连接到DNA空间的详细信息,请参阅以下链接:DNA空间直接连接配置示例
在DNA空间上创建SSID
步骤1.单击DNA空间控制板中的强制门户:

步骤2.单击页面左上角的三行图标打开强制网络门户菜单,然后单击SSID:

步骤3.单击Import/Configure SSID,选择CUWN(CMX/WLC)作为“Wireless Network”类型,然后输入SSID名称:

控制器上的ACL配置
由于这是Web身份验证SSID,因此需要预身份验证ACL,并且当无线设备连接到SSID并收到IP地址时,设备的策略管理器状态将变为Webauth_Reqd状态,并且ACL将应用于客户端会话以限制设备可以访问的资源。
步骤1.导航至Security > Access Control Lists > Access Control Lists,单击New,并配置规则以允许无线客户端与DNA空间之间的通信,如下所示。将IP地址替换为使用中帐户的DNA空间给出的IP地址:

注意:要获得ACL中允许的DNA空间的IP地址,请从ACL配置部分下的在DNA空间上创建SSID的步骤3中单击手动配置选项。
SSID可以配置为使用或不使用RADIUS服务器。如果在强制网络门户规则配置的操作部分配置了该会话持续时间、带宽限制或无缝调配Internet,则需要使用RADIUS服务器配置SSID,否则,无需使用RADIUS服务器。两种配置均支持DNA空间上的所有门户。
DNA空间上没有RADIUS服务器的强制网络门户
控制器上的SSID配置
步骤1.导航至WLAN > WLANs。创建新WLAN。配置配置文件名称和SSID。确保SSID名称与“在DNA空间上创建SSID”一节的第3步中配置的名称相同。

步骤2.配置第2层安全性。导航到WLAN配置选项卡中的安全(Security)>第2层(Layer 2)选项卡,并从Layer 2 Security的下拉菜单中选择为无(None)。确保MAC过滤已禁用。

步骤3.配置第3层安全性。导航至WLAN配置选项卡中的Security > Layer 3选项卡,将Web Policy配置为第3层安全方法,启用Passthrough,配置预身份验证ACL,启用Override Global Config,将Web Auth Type 设置为External,并配置Redirect URL。

注意:要获取重定向URL,请从SSID配置部分下的SSID在DNA空间上创建SSID一节的步骤3中创建的SSID中单击“手动配置”选项。
在DNA空间上使用RADIUS服务器的强制网络门户
注意:DNA空间RADIUS服务器仅支持来自控制器的PAP身份验证。
控制器上的RADIUS服务器配置
步骤1.导航至Security > AAA > RADIUS > Authentication,单击New并输入RADIUS服务器信息。Cisco DNA空间充当RADIUS服务器进行用户身份验证,它可以对两个IP地址做出响应。配置两个RADIUS服务器:

注意:要获取主服务器和辅助服务器的RADIUS IP地址和密钥,请点击在DNA空间上创建SSID部分中创建的SSID的Configure Manually选项,并导航至RADIUS服务器配置部分。
步骤2.配置记帐RADIUS服务器。导航至Security > AAA > RADIUS > Accounting,然后单击New。配置两个RADIUS服务器相同:

控制器上的SSID配置
重要信息:在从SSID配置开始之前,请确保在Controller > General下将Web Radius Authentication设置为“PAP”。
步骤1.导航至WLAN > WLANs。创建新WLAN。配置配置文件名称和SSID。确保SSID名称与“在DNA空间上创建SSID”一节的第3步中配置的名称相同。

步骤2.配置第2层安全性。导航至WLAN配置选项卡中的Security > Layer 2选项卡。将第2层安全配置为None。启用Mac过滤。

步骤3.配置第3层安全性。导航至WLAN配置选项卡中的Security > Layer 3选项卡,将Web Policy配置为第3层安全方法,在Mac过滤器故障时启用,配置预身份验证ACL,将Web Auth Type 设置为External,并配置Redirect URL。

步骤4.配置AAA服务器。导航至WLAN配置选项卡中的Security > AAA Servers选项卡,启用Authentication Servers 和Accounting Servers ,然后从下拉菜单中选择两个RADIUS服务器:

步骤6.配置Web身份验证用户的Authentication Priority顺序。导航至WLAN配置选项卡中的Security > AAA Servers选项卡,并按顺序将RADIUS设置为第一个。

步骤7.导航至WLAN配置选项卡中的“高级”选项卡,然后启用“允许AAA覆盖”。

在DNA空间上创建门户
步骤1.单击DNA空间控制板中的强制门户:

步骤2.单击“创建新”,输入门户名称,并选择可使用门户的位置:

步骤3.选择身份验证类型,选择是否要在门户主页上显示数据捕获和用户协议,以及是否允许用户选择加入以接收消息。单击“下一步”:

步骤4.配置数据捕获元素。如果要从用户捕获数据,请选中启用数据捕获框,然后单击+添加字段元素以添加所需字段。单击“下一步”:

步骤5.选中Enable Terms & Conditions(启用条款和条件),然后单击Save & Configure Portal:

步骤6.根据需要编辑门户,单击“保存:

在DNA空间上配置强制网络门户规则
步骤1.打开强制网络门户菜单,然后点击强制网络门户规则(Captive Portal Rules):

步骤2.单击+ Create New Rule。输入规则名称,选择之前配置的SSID,并选择此门户规则可用于的位置:

步骤3.选择强制网络门户的操作。在这种情况下,当规则被命中时,将显示门户。单击“保存并发布”。

验证
要确认连接到SSID的客户端的状态,请导航至Monitor > Clients,单击MAC地址并查找Policy Manager State:

故障排除
在测试确认客户端的关联和身份验证过程之前,可以在控制器中启用以下命令。
(5520-Andressi) >debug client
(5520-Andressi) >debug web-auth redirect enable mac
以下是在连接到没有RADIUS服务器的SSID时,成功尝试在关联/身份验证过程中识别每个阶段的输出:
802.11关联/身份验证:
*apfOpenDtlSocket: Apr 09 21:49:06.227: 34:e1:2d:23:a6:68 Received management frame ASSOCIATION REQUEST on BSSID 70:d3:79:dd:d2:0f destination addr 70:d3:79:dd:d2:0f slotid 1
*apfMsConnTask_5: Apr 09 21:49:06.227: 34:e1:2d:23:a6:68 Updating the client capabiility as 4
*apfMsConnTask_5: Apr 09 21:49:06.227: 34:e1:2d:23:a6:68 Processing assoc-req station:34:e1:2d:23:a6:68 AP:70:d3:79:dd:d2:00-01 ssid : AireOS-DNASpaces thread:bd271d6280
*apfMsConnTask_5: Apr 09 21:49:06.227: 34:e1:2d:23:a6:68 CL_EVENT_ASSOC_START (1), reasonCode (1), Result (0), Ssid (AireOS-DNASpaces), ApMac (70:d3:79:dd:d2:00), RSSI (-72), SNR (22)
*apfMsConnTask_5: Apr 09 21:49:06.228: 34:e1:2d:23:a6:68 Sending assoc-resp with status 0 station:34:e1:2d:23:a6:68 AP:70:d3:79:dd:d2:00-01 on apVapId 1
DHCP和第3层身份验证:
*apfMsConnTask_5: Apr 09 21:49:06.228: 34:e1:2d:23:a6:68 Mobility query, PEM State: DHCP_REQD
*webauthRedirect: Apr 09 21:49:51.949: captive-bypass detection enabled, checking for wispr in HTTP GET, client mac=34:e1:2d:23:a6:68
*webauthRedirect: Apr 09 21:49:51.949: captiveNetworkMode enabled, mac=34:e1:2d:23:a6:68 user_agent = AnyConnect Agent 4.7.04056
*webauthRedirect: Apr 09 21:49:51.949: 34:e1:2d:23:a6:68- Preparing redirect URL according to configured Web-Auth type
*webauthRedirect: Apr 09 21:49:51.949: 34:e1:2d:23:a6:68- unable to get the hostName for virtual IP, using virtual IP =192.0.2.1
*webauthRedirect: Apr 09 21:49:51.949: 34:e1:2d:23:a6:68- Checking custom-web config for WLAN ID:1
*webauthRedirect: Apr 09 21:49:51.949: 34:e1:2d:23:a6:68- Global status is 0 on WLAN
*webauthRedirect: Apr 09 21:49:51.949: 34:e1:2d:23:a6:68- checking on WLAN web-auth type
*webauthRedirect: Apr 09 21:49:51.949: 34:e1:2d:23:a6:68- Web-auth type External, using URL:https://splash.dnaspaces.io/p2/mexeast1
*webauthRedirect: Apr 09 21:49:51.949: 34:e1:2d:23:a6:68- Added switch_url, redirect URL is now https://splash.dnaspaces.io/p2/mexeast1?switch_url=https://192.0.2.1/login.html
*webauthRedirect: Apr 09 21:49:51.949: 34:e1:2d:23:a6:68- Added ap_mac (Radio ), redirect URL is now https://splash.dnaspaces.io/p2/mexeast1?switch_url=https://192.0.2.1/login.html&ap_mac=70:d3:79:dd:d2:00
*webauthRedirect: Apr 09 21:49:51.949: 34:e1:2d:23:a6:68- Added client_mac , redirect URL is now https://splash.dnaspaces.io/p2/mexeast1?switch_url=https://192.0.2.1/login.html&ap_mac=70:d3:79:dd:d2:00&client_mac=34:e1:2d:23:a6
*webauthRedirect: Apr 09 21:49:51.950: 34:e1:2d:23:a6:68- Added wlan, redirect URL is now https://splash.dnaspaces.io/p2/mexeast1?switch_url=https://192.0.2.1/login.html&ap_mac=70:d3:79:dd:d2:00&client_mac=34:e1:2d:23:a6:68&wla
*webauthRedirect: Apr 09 21:49:51.950: 34:e1:2d:23:a6:68- http_response_msg_body1 is <HTML><HEAD><TITLE> Web Authentication Redirect</TITLE><META http-equiv="Cache-control" content="no-cache"><META http-equiv="Pragma" content="
*webauthRedirect: Apr 09 21:49:51.950: 34:e1:2d:23:a6:68- added redirect=, URL is now https://splash.dnaspaces.io/p2/mexeast1?switch_url=https://192.0.2.1/login.html&ap_mac=70:d3:79:dd:d2:00&client_mac=34:e1:2d:23:a6:68&wlan=Ai
*webauthRedirect: Apr 09 21:49:51.950: 34:e1:2d:23:a6:68- str1 is now https://splash.dnaspaces.io/p2/mexeast1?switch_url=https://192.0.2.1/login.html&ap_mac=70:d3:79:dd:d2:00&client_mac=34:e1:2d:23:a6:68&wlan=AireOS-DNASpaces&r
*webauthRedirect: Apr 09 21:49:51.950: 34:e1:2d:23:a6:68- Message to be sent is
HTTP/1.1 200 OK
Location: https://splash.dnaspaces.io/p2/mexeast1?switch_url=https://192.0.2.1/login.html&ap_mac=70:d3:79:dd:d2:00&client_mac=34:
*webauthRedirect: Apr 09 21:49:51.950: 34:e1:2d:23:a6:68- 200 send_data =HTTP/1.1 200 OK
Location: https://splash.dnaspaces.io/p2/mexeast1?switch_url=https://192.0.2.1/login.html&ap_mac=70:d3:79:dd:d2:00&client_mac=34:e1:2d:23
*webauthRedirect: Apr 09 21:49:51.950: 34:e1:2d:23:a6:68- send data length=688
*webauthRedirect: Apr 09 21:49:51.950: 34:e1:2d:23:a6:68- Url:https://splash.dnaspaces.io/p2/mexeast1
*webauthRedirect: Apr 09 21:49:51.950: 34:e1:2d:23:a6:68- cleaning up after send
第3层身份验证成功,将客户端移至RUN状态:
*emWeb: Apr 09 21:49:57.633: Connection created for MAC:34:e1:2d:23:a6:68
*emWeb: Apr 09 21:49:57.634:
ewaURLHook: Entering:url=/login.html, virtIp = 192.0.2.1, ssl_connection=0, secureweb=1
*ewmwebWebauth1: Apr 09 21:49:57.634: 34:e1:2d:23:a6:68 10.10.30.42 WEBAUTH_NOL3SEC (14) Change state to RUN (20) last state WEBAUTH_NOL3SEC (14)
*ewmwebWebauth1: Apr 09 21:49:57.634: 34:e1:2d:23:a6:68 CL_EVENT_WEB_AUTH_DONE (8), reasonCode (0), Result (0), ServerIp (), UserName ()
*ewmwebWebauth1: Apr 09 21:49:57.634: 34:e1:2d:23:a6:68 CL_EVENT_RUN (9), reasonCode (0), Result (0), Role (1), VLAN/VNID (20), Ipv4Addr (10.10.30.42), Ipv6Present (No)
*ewmwebWebauth1: Apr 09 21:49:57.634: 34:e1:2d:23:a6:68 10.10.30.42 RUN (20) Successfully plumbed mobile rule (IPv4 ACL ID 255, IPv6 ACL ID 255, L2 ACL ID 255,URL ACL ID 255,URL ACL Action 0)
*emWeb: Apr 09 21:49:57.634: User login successful, presenting login success page to user