본 제품에 대한 문서 세트는 편견 없는 언어를 사용하기 위해 노력합니다. 본 설명서 세트의 목적상, 편견 없는 언어는 나이, 장애, 성별, 인종 정체성, 민족 정체성, 성적 지향성, 사회 경제적 지위 및 교차성에 기초한 차별을 의미하지 않는 언어로 정의됩니다. 제품 소프트웨어의 사용자 인터페이스에서 하드코딩된 언어, RFP 설명서에 기초한 언어 또는 참조된 서드파티 제품에서 사용하는 언어로 인해 설명서에 예외가 있을 수 있습니다. 시스코에서 어떤 방식으로 포용적인 언어를 사용하고 있는지 자세히 알아보세요.
Cisco는 전 세계 사용자에게 다양한 언어로 지원 콘텐츠를 제공하기 위해 기계 번역 기술과 수작업 번역을 병행하여 이 문서를 번역했습니다. 아무리 품질이 높은 기계 번역이라도 전문 번역가의 번역 결과물만큼 정확하지는 않습니다. Cisco Systems, Inc.는 이 같은 번역에 대해 어떠한 책임도 지지 않으며 항상 원본 영문 문서(링크 제공됨)를 참조할 것을 권장합니다.
이 문서에서는 Catalyst 9800 WLC(Wireless LAN Controller)에서 외부 웹 인증(EWA)을 구성하고 문제를 해결하는 방법에 대해 설명합니다.
이 문서에서는 웹 서버가 외부 통신을 허용하도록 올바르게 구성되어 있고 웹 페이지가 WLC에서 사용자를 인증하고 클라이언트 세션을 RUN 상태로 이동하는 데 필요한 모든 매개변수를 전송하도록 올바르게 구성되어 있다고 가정합니다.
참고: 외부 리소스 액세스는 액세스 목록 권한을 통해 WLC에 의해 제한되므로 웹 페이지에서 사용되는 모든 스크립트, 글꼴, 이미지 등을 다운로드하고 웹 서버에 로컬로 유지해야 합니다.
사용자 인증에 필요한 매개변수는 다음과 같습니다.
다음 주제에 대한 지식을 보유하고 있으면 유용합니다.
이 문서의 정보는 다음 소프트웨어 및 하드웨어 버전을 기반으로 합니다.
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 현재 네트워크가 작동 중인 경우 모든 명령의 잠재적인 영향을 미리 숙지하시기 바랍니다.
외부 웹 인증은 전용 웹 서버 또는 ISE(Identity Services Engine)와 같은 다목적 서버에서 WLC 외부에서 호스팅되는 웹 포털을 활용하므로 웹 구성 요소에 대한 세부적인 액세스 및 관리가 가능합니다. 외부 웹 인증 WLAN에 클라이언트를 성공적으로 온보딩하는 데 관련된 핸드셰이크는 이미지에서 렌더링됩니다. 이 그림에는 URL(Uniform Resource Location)을 확인하는 무선 클라이언트, WLC, DNS(Domain Name System) 서버 및 WLC가 사용자 자격 증명을 로컬로 검증하는 웹 서버 간의 순차적 상호 작용이 나열되어 있습니다. 이 워크플로는 장애 상태를 해결하는 데 유용합니다.
참고: 클라이언트에서 WLC로 HTTP POST를 호출하기 전에 매개변수 맵에서 보안 웹 인증이 활성화되고 WLC에 신뢰할 수 있는 인증 기관에서 서명한 신뢰 지점이 없는 경우 브라우저에 보안 경고가 표시됩니다. 컨트롤러가 클라이언트 세션을 RUN 상태로 전환하려면 클라이언트가 이 경고를 무시하고 양식 재제출을 수락해야 합니다.
1단계. Configuration(컨피그레이션) > Security(보안) > Web Auth(웹 인증)로 이동하고 전역 매개변수 맵을 선택합니다. 적절한 리디렉션 기능을 제공하기 위해 가상 IPv4 주소 및 신뢰 지점이 구성되어 있는지 확인합니다.
참고: 기본적으로 브라우저에서는 HTTP 웹 사이트를 사용하여 리디렉션 프로세스를 시작합니다. HTTPS 리디렉션이 필요한 경우 웹 인증 가로채기 HTTP를 선택해야 합니다. 그러나 이 컨피그레이션은 CPU 사용량을 늘리기 때문에 권장되지 않습니다.
CLI 구성:
9800#configure terminal 9800(config)#parameter-map type webauth global 9800(config-params-parameter-map)#virtual-ip ipv4 192.0.2.1 9800(config-params-parameter-map)#trustpoint CISCO_IDEVID_SUDI
9800(config-params-parameter-map)#secure-webauth-disable
9800(config-params-parameter-map)#webauth-http-enable
2단계. 외부 서버를 가리키는 새 매개변수 맵의 이름을 추가(+ Add)를 선택하고 구성합니다. 선택적으로, 클라이언트가 제외되기 전에 최대 HTTP 인증 실패 횟수 및 클라이언트가 웹 인증 상태를 유지할 수 있는 시간(초)을 구성합니다.
3단계. General(일반) 탭 내에서 새로 생성된 매개변수 맵을 선택하고 Type(유형) 드롭다운 목록에서 인증 유형을 구성합니다.
웹 인증 | authbypass | 동의 | 웹 동의 |
클라이언트가 SSID를 사용하여 IP 주소를 가져온 다음 9800 WLC MAC 주소가 이(가) 네트워크, 대답이 "예"인 경우 이동 실행 상태가 아닌 경우 참가할 수 없습니다. (웹 인증으로 돌아가지 않음) |
4단계. Advanced(고급) 탭에서 특정 서버 사이트 URL 및 IP 주소로 각각 로그인 및 포털 IPV4 주소에 대한 리디렉션을 구성합니다.
2, 3, 4단계의 CLI 컨피그레이션:
9800(config)#parameter-map type webauth EWA-Guest 9800(config-params-parameter-map)#type consent 9800(config-params-parameter-map)#redirect for-login http://172.16.80.8/webauth/login.html 9800(config-params-parameter-map)#redirect portal ipv4 172.16.80.8
5단계. (선택 사항) WLC는 쿼리 문자열을 통해 추가 매개변수를 전송할 수 있습니다. 이는 9800을 서드파티 외부 포털과 호환되도록 하기 위해 필요한 경우가 많습니다. "Redirect Append for AP MAC Address", "Redirect Append for Client MAC Address" 및 "Redirect Append for WLAN SSID" 필드를 사용하면 사용자 지정 이름을 사용하여 리디렉션 ACL에 추가 매개변수를 추가할 수 있습니다. 새로 생성된 매개변수 맵을 선택하고 Advanced(고급) 탭으로 이동하여 필요한 매개변수의 이름을 구성합니다. 사용 가능한 매개 변수는 다음과 같습니다.
CLI 구성:
9800(config)#parameter-map type webauth EWA-Guest
9800(config-params-parameter-map)#redirect append ap-mac tag ap_mac
9800(config-params-parameter-map)#redirect append wlan-ssid tag ssid
9800(config-params-parameter-map)#redirect append client-mac tag client_mac
이 예에서 클라이언트로 전송된 리디렉션 URL은 다음과 같은 결과를 초래합니다.
http://172.16.80.8/webauth/consent.html?switch_url=http://192.0.2.1/login.html&ap_mac=&ssid=&client_mac=
참고: 포털 IPV4 주소 정보를 추가하면 무선 클라이언트의 HTTP 및 HTTPS 트래픽을 허용하는 ACL이 자동으로 외부 웹 인증 서버에 추가되므로 추가 사전 인증 ACL을 구성할 필요가 없습니다. 여러 IP 주소 또는 URL을 허용하려는 경우 인증을 수행하기 전에 지정된 URL과 일치하는 IP가 허용되도록 URL 필터를 구성하는 옵션만 있습니다. URL 필터를 사용하지 않는 한 둘 이상의 포털 IP 주소를 정적으로 추가할 수 없습니다.
참고: 전역 매개변수 맵은 가상 IPv4 및 IPv6 주소, Webauth 가로채기 HTTP, 종속 바이패스 포털, 감시 목록 활성화 및 감시 목록 만료 시간 제한 설정을 정의할 수 있는 유일한 맵입니다.
로컬 웹 서버
parameter-map type webauth <web-parameter-map-name> type { webauth | authbypass | consent | webconsent } timeout init-state sec 300 banner text ^Cbanner login^C
외부 웹 서버
parameter-map type webauth <web-parameter-map-name> type webauth timeout init-state sec 300 redirect for-login <URL-for-webauth> redirect portal ipv4 <external-server's-IP max-http-conns 10
이 컨피그레이션 섹션은 webauth 또는 webconsent 인증 유형에 대해 구성된 매개변수 맵에만 필요합니다.
1단계. Configuration(컨피그레이션) > Security(보안) > AAA로 이동한 다음 AAA Method List(AAA 메서드 목록)를 선택합니다. 새 방법 목록을 구성하고 + Add(추가)를 선택하고 목록 세부사항을 입력합니다. 이미지에 표시된 대로 Type(유형)이 "login(로그인)"으로 설정되어 있는지 확인합니다.
2단계. Authorization(권한 부여)을 선택한 다음 + Add(추가)를 선택하여 새 메서드 목록을 만듭니다. 이미지에 표시된 대로 Type(유형)을 network(네트워크)로 기본 이름으로 지정합니다.
참고: WLAN 레이어 3 보안 컨피그레이션 중 컨트롤러에 의해 광고되므로: Local Login Method List(로컬 로그인 방법 목록)가 작동하려면 디바이스에 'aaa authorization network default local' 컨피그레이션이 있는지 확인하십시오. 즉, 로컬 웹 인증을 올바르게 구성하려면 기본값으로 이름을 갖는 권한 부여 방법 목록을 정의해야 합니다. 이 섹션에서는 이 특정 권한 부여 방법 목록을 구성합니다.
1단계와 2단계의 CLI 컨피그레이션:
9800(config)#aaa new-model
9800(config)#aaa authentication login local-auth local
9800(config)#aaa authorization network default local
참고: 외부 RADIUS 인증이 필요한 경우, 9800 WLC의 RADIUS 서버 컨피그레이션(9800 WLC의 AAA 컨피그레이션)과 관련된 다음 지침을 참조하십시오. 인증 방법 목록에 dot1x 대신 유형으로 설정된 "login"이 있는지 확인하십시오.
3단계. Configuration(컨피그레이션) > Security(보안) > Guest User(게스트 사용자)로 이동합니다. + Add(추가)를 선택하고 게스트 사용자 어카운트 세부 정보를 구성합니다.
CLI 구성:
9800(config)#user-name guestuser
9800(config-user-name)#description "WebAuth user"
9800(config-user-name)#password 0 <password>
9800(config-user-name)#type network-user description "WebAuth user" guest-user lifetime year 1
If permanent users are needed then use this command:
9800(config)#username guestuserperm privilege 0 secret 0 <password>
4단계(선택 사항) 매개변수 맵 정의 시 두 개의 ACL(Access Control List)이 자동으로 생성됩니다. 이러한 ACL은 웹 서버로의 리디렉션을 트리거할 트래픽과 통과가 허용되는 트래픽을 정의하는 데 사용됩니다. 여러 웹 서버 IP 주소 또는 URL 필터와 같은 특정 요구 사항이 있는 경우 Configuration > Security > ACL select + Add로 이동하여 필요한 규칙을 정의합니다. deny 명령문이 통과 트래픽을 정의하는 동안 permit 명령문이 리디렉션됩니다.
자동으로 생성되는 ACL 규칙은 다음과 같습니다.
alz-9800#show ip access-list
Extended IP access list WA-sec-172.16.80.8
10 permit tcp any host 172.16.80.8 eq www
20 permit tcp any host 172.16.80.8 eq 443
30 permit tcp host 172.16.80.8 eq www any
40 permit tcp host 172.16.80.8 eq 443 any
50 permit tcp any any eq domain
60 permit udp any any eq domain
70 permit udp any any eq bootpc
80 permit udp any any eq bootps
90 deny ip any any (1288 matches)
Extended IP access list WA-v4-int-172.16.80.8
10 deny tcp any host 172.16.80.8 eq www
20 deny tcp any host 172.16.80.8 eq 443
30 permit tcp any any eq www
40 permit tcp any host 192.0.2.1 eq 443
1단계. Configuration(컨피그레이션) > Tags & Profiles(태그 및 프로필) > WLANs(WLAN)로 이동하고 + Add(추가)를 선택하여 새 WLAN을 생성합니다. General(일반) 탭에서 프로파일 및 SSID 이름, 상태를 정의합니다.
2단계. Air 암호화 메커니즘에서 Layer 2 인증이 필요하지 않은 경우 Security(보안) 탭을 선택하고 Layer 2 인증을 None(없음)으로 설정합니다. Layer 3(레이어 3) 탭에서 Web Policy(웹 정책) 상자를 선택하고 드롭다운 메뉴에서 매개변수 맵을 선택한 다음 드롭다운 메뉴에서 인증 목록을 선택합니다. 선택적으로, 사용자 지정 ACL이 이전에 정의된 경우 Show Advanced Settings를 선택하고 드롭다운 메뉴에서 적절한 ACL을 선택합니다.
CLI 구성:
9800(config)#wlan EWA-Guest 4 EWA-Guest
9800(config-wlan)# no security ft adaptive
9800(config-wlan)# no security wpa
9800(config-wlan)# no security wpa wpa2
9800(config-wlan)# no security wpa wpa2 ciphers aes
9800(config-wlan)# no security wpa akm dot1x
9800(config-wlan)# security web-auth
9800(config-wlan)# security web-auth authentication-list local-auth
9800(config-wlan)# security web-auth parameter-map EWA-Guest
9800(config-wlan)# no shutdown
3단계. Configuration(컨피그레이션) > Tags & Profiles(태그 및 프로필) > Policy(정책)로 이동하고 + Add(추가)를 선택합니다. 정책 이름 및 상태를 정의합니다. WLAN Switching Policy(WLAN 스위칭 정책) 아래의 Central(중앙) 설정이 Local(로컬) 모드 AP에 대해 Enabled(활성화됨)인지 확인합니다. 이미지에 표시된 대로 Access Policies(액세스 정책) 탭의 VLAN/VLAN Group(VLAN/VLAN 그룹) 드롭다운 메뉴에서 올바른 VLAN을 선택합니다.
CLI 구성:
9800(config)#wireless profile policy Guest-Policy
9800(config-wireless-policy)#description "Policy for guest access"
9800(config-wireless-policy)#vlan VLAN2621
9800(config-wireless-policy)#no shutdown
4단계. Configuration(컨피그레이션) > Tags & Profiles(태그 및 프로필) > Tags(태그)로 이동하고 Policy(정책) 탭 내에서 + Add(추가)를 선택합니다. 태그 이름을 정의한 다음 WLAN-POLICY Maps(WLAN-POLICY 맵)에서 + Add(추가)를 선택하고 이전에 생성한 WLAN 및 Policy Profile(정책 프로파일)을 추가합니다.
CLI 구성:
9800(config)#wireless tag policy EWA-Tag
9800(config-policy-tag)#wlan EWA-Guest policy Guest-Policy
5단계. Configuration(컨피그레이션) > Wireless(무선) > Access Points(액세스 포인트)로 이동하고 이 SSID를 브로드캐스트하는 데 사용되는 AP를 선택합니다. Edit AP(AP 수정) 메뉴의 Policy(정책) 드롭다운 메뉴에서 새로 생성된 태그를 선택합니다.
여러 AP에 동시에 태그를 지정해야 하는 경우 두 가지 옵션을 사용할 수 있습니다.
옵션 A. Configuration(구성) > Wireless Setup(무선 설정) > Advanced(고급)로 이동합니다. 여기서 Start Now(지금 시작)를 선택하여 구성 메뉴 목록을 표시합니다. Tag APs(태그 AP) 옆에 있는 목록 아이콘을 선택하면, Join(조인) 상태의 모든 AP 목록이 표시되고, 필요한 AP를 확인한 다음 + Tag APs(태그 AP)를 선택하고, 드롭다운 메뉴에서 생성된 Policy Tag(정책 태그)를 선택합니다.
옵션 B. [구성] > [태그 및 프로파일] > [태그]로 이동한 다음 [AP] 탭을 선택합니다. Filter(필터) 탭에서 + Add(추가)를 선택합니다. 규칙 이름, AP 이름 regex(이 설정에서는 컨트롤러가 어떤 AP가 태그되었는지 정의할 수 있음), 우선순위(숫자가 낮을수록 우선순위가 높음) 및 필요한 태그를 정의합니다.
구성이 올바르게 작동하는지 확인하려면 이 섹션을 활용하십시오:
9800#show running-config wlan 9800#show running-config aaa 9800#show aaa servers
9800#show ap tag summary
9800#show ap name <ap-name> config general
9800#show ap name <ap-name> tag detail
9800#show wlan [summary | id | name | all]
9800#show wireless tag policy detailed <policy-tag name>
9800#show wireless profile policy detailed <policy-profile name>
show ip http server status(show ip http server 상태)를 사용하여 http 서버 상태 및 가용성을 확인합니다.
9800#show ip http server status
HTTP server status: Enabled
HTTP server port: 80
HTTP server active supplementary listener ports: 21111
HTTP server authentication method: local
HTTP server auth-retry 0 time-window 0
HTTP server digest algorithm: md5
HTTP server access class: 0
HTTP server IPv4 access class: None
HTTP server IPv6 access class: None
[...]
HTTP server active session modules: ALL
HTTP secure server capability: Present
HTTP secure server status: Enabled
HTTP secure server port: 443
HTTP secure server ciphersuite: rsa-aes-cbc-sha2 rsa-aes-gcm-sha2
dhe-aes-cbc-sha2 dhe-aes-gcm-sha2 ecdhe-rsa-aes-cbc-sha2
ecdhe-rsa-aes-gcm-sha2 ecdhe-ecdsa-aes-gcm-sha2
HTTP secure server TLS version: TLSv1.2 TLSv1.1
HTTP secure server client authentication: Disabled
HTTP secure server PIV authentication: Disabled
HTTP secure server PIV authorization only: Disabled
HTTP secure server trustpoint: CISCO_IDEVID_SUDI
HTTP secure server peer validation trustpoint:
HTTP secure server ECDHE curve: secp256r1
HTTP secure server active session modules: ALL
다음 명령을 사용하여 클라이언트 세션에 대한 ACL plumb를 확인합니다.
9800#show platform software wireless-client chassis active R0 mac-address <Client mac in aaaa.bbbb.cccc format>
ID : 0xa0000002
MAC address : aaaa.bbbb.cccc
Type : Normal
Global WLAN ID : 4
SSID : EWA-Guest
Client index : 0
Mobility state : Local
Authentication state : L3 Authentication
VLAN ID : 2621
[...]
Disable IPv6 traffic : No
Dynamic policy template : 0x7b 0x73 0x0b 0x1e 0x46 0x2a 0xd7 0x8f 0x23 0xf3 0xfe 0x9e 0x5c 0xb0 0xeb 0xf8
9800#show platform software cgacl chassis active F0
Template ID Group Index Lookup ID Number of clients
---------------------------------------------------------------------------------------------------------------------------------------------
0x7B 0x73 0x0B 0x1E 0x46 0x2A 0xD7 0x8F 0x23 0xF3 0xFE 0x9E 0x5C 0xB0 0xEB 0xF8 0x0000000a 0x0000001a 1
9800#show platform software cgacl chassis active F0 group-idx <group index> acl
Acl ID Acl Name CGACL Type Protocol Direction Sequence
---------------------------------------------------------------------------------------------------------
16 IP-Adm-V6-Int-ACL-global Punt IPv6 IN 1
25 WA-sec-172.16.80.8 Security IPv4 IN 2
26 WA-v4-int-172.16.80.8 Punt IPv4 IN 1
19 implicit_deny Security IPv4 IN 3
21 implicit_deny_v6 Security IPv6 IN 3
18 preauth_v6 Security IPv6 IN 2
WLC 9800은 ALWAYS-ON 추적 기능을 제공합니다. 이렇게 하면 모든 클라이언트 연결 관련 오류, 경고 및 알림 수준 메시지가 지속적으로 로깅되며, 사고 또는 장애 발생 후 상황에 대한 로그를 볼 수 있습니다.
참고: 생성된 로그의 볼륨을 기반으로 몇 시간에서 며칠로 돌아갈 수 있습니다.
기본적으로 9800 WLC가 수집한 추적을 보려면 SSH/텔넷을 통해 9800 WLC에 연결하고 다음 단계를 읽을 수 있습니다(세션을 텍스트 파일에 로깅해야 함).
1단계. 문제가 발생했을 때까지의 시간에 로그를 추적할 수 있도록 컨트롤러 현재 시간을 확인합니다.
9800#show clock
2단계. 시스템 컨피그레이션에 따라 컨트롤러 버퍼 또는 외부 syslog에서 syslog를 수집합니다. 이렇게 하면 시스템 상태 및 오류가 있는 경우 이를 빠르게 확인할 수 있습니다.
9800#show logging
3단계. 디버그 조건이 활성화되었는지 확인합니다.
9800#show debugging IOSXE Conditional Debug Configs: Conditional Debug Global State: Stop IOSXE Packet Tracing Configs: Packet Infra debugs: Ip Address Port ------------------------------------------------------|----------
참고: 조건을 나열하면, 활성화된 조건(mac 주소, IP 주소 등)이 발생하는 모든 프로세스의 디버그 레벨에 추적이 로깅됨을 의미합니다. 이로 인해 로그의 볼륨이 증가합니다. 따라서 능동적으로 디버깅하지 않을 때는 모든 조건을 지우는 것이 좋습니다.
4단계. 테스트 중인 mac 주소가 3단계의 조건으로 나열되지 않았다는 가정. 특정 MAC 주소에 대한 always-on 알림 레벨 추적을 수집합니다.
9800# show logging profile wireless filter [mac | ip] [<aaaa.bbbb.cccc> | <a.b.c.d>] to-file always-on-<FILENAME.txt>
세션의 콘텐츠를 표시하거나 파일을 외부 TFTP 서버에 복사할 수 있습니다.
9800# more bootflash:always-on-<FILENAME.txt>
or
9800# copy bootflash:always-on-<FILENAME.txt> tftp://<a.b.c.d>/<path>/always-on-<FILENAME.txt>
상시 추적 기능에서 조사 중인 문제의 트리거를 확인하기 위해 충분한 정보를 제공하지 않는 경우, 조건부 디버깅을 활성화하고 RA(Radio Active) 추적을 캡처할 수 있습니다. 그러면 지정된 조건(이 경우 클라이언트 mac 주소)과 상호 작용하는 모든 프로세스에 대한 디버그 레벨 추적이 제공됩니다. 조건부 디버깅을 활성화하려면 다음 단계를 읽으십시오.
1단계. 활성화된 디버그 조건이 없는지 확인합니다.
9800#clear platform condition all
2단계. 모니터링할 무선 클라이언트 mac 주소에 대한 디버그 조건을 활성화합니다.
이 명령은 30분(1,800초) 동안 제공된 MAC 주소를 모니터링하기 시작합니다. 선택적으로 이 시간을 최대 2,085,978,494초까지 늘릴 수 있습니다.
9800#debug wireless mac <aaaa.bbbb.cccc> {monitor-time <seconds>}
참고: 한 번에 둘 이상의 클라이언트를 모니터링하려면 mac 주소당 debug wireless mac 명령을 실행합니다.
참고: 모든 로그가 나중에 볼 수 있도록 내부적으로 버퍼링되므로 무선 클라이언트 작업이 터미널 세션에 표시되지 않습니다.
3단계. 모니터링할 문제나 동작을 재현합니다.
4단계. 기본 또는 구성된 모니터 시간이 끝나기 전에 문제가 재현되는 경우 디버그를 중지합니다.
9800#no debug wireless mac <aaaa.bbbb.cccc>
모니터링 시간이 경과하거나 무선 디버그가 중단되면 9800 WLC는 다음과 같은 이름의 로컬 파일을 생성합니다.
ra_trace_MAC_aaaabbbbcccc_HHMMSS.XXX_timezone_DayWeek_Month_Day_year.log
5단계. MAC 주소 활동의 파일을 수집합니다. RA 추적 .log를 외부 서버에 복사하거나 출력을 화면에 직접 표시할 수 있습니다.
RA 추적 파일의 이름을 확인합니다.
9800#dir bootflash: | inc ra_trace
파일을 외부 서버에 복사:
9800#copy bootflash:ra_trace_MAC_aaaabbbbcccc_HHMMSS.XXX_timezone_DayWeek_Month_Day_year.log tftp://<a.b.c.d>/ra-FILENAME.txt
콘텐츠 표시:
9800#more bootflash:ra_trace_MAC_aaaabbbbcccc_HHMMSS.XXX_timezone_DayWeek_Month_Day_year.log
6단계. 근본 원인이 아직 명확하지 않은 경우 디버그 레벨 로그를 더 자세히 보여주는 내부 로그를 수집합니다. 이 명령은 이미 수집되어 내부적으로 저장된 디버그 로그를 제공하므로 클라이언트를 다시 디버깅할 필요가 없습니다.
9800#show logging profile wireless internal filter [mac | ip] [<aaaa.bbbb.cccc> | <a.b.c.d>] to-file ra-internal-<FILENAME>.txt
참고: 이 명령 출력은 모든 프로세스의 모든 로깅 레벨에 대한 추적을 반환하며 상당히 방대합니다. 이러한 추적을 구문 분석할 수 있도록 Cisco TAC에 문의하십시오.
9800#copy bootflash:ra-internal-<FILENAME>.txt tftp://<a.b.c.d>/ra-internal-<FILENAME>.txt
콘텐츠 표시:
9800#more bootflash:ra-internal-<FILENAME>.txt
7단계. 디버그 조건을 제거합니다.
참고: 트러블슈팅 세션 후 항상 디버그 조건을 제거해야 합니다.
9800 컨트롤러는 기본적으로 패킷을 스니핑할 수 있습니다. 따라서 컨트롤 플레인 패킷 처리 가시성으로 더 쉽게 문제를 해결할 수 있습니다.
1단계. 원하는 트래픽을 필터링할 ACL을 정의합니다. 웹 인증의 경우 클라이언트가 연결된 AP에서 보내고 받는 트래픽은 물론 웹 서버로의 트래픽도 허용하는 것이 좋습니다.
9800(config)#ip access-list extended EWA-pcap
9800(config-ext-nacl)#permit ip any host <web server IP>
9800(config-ext-nacl)#permit ip host <web server IP> any
9800(config-ext-nacl)#permit ip any host <AP IP>
9800(config-ext-nacl)#permit ip host <AP IP> any
2단계. 모니터 캡처 매개변수를 정의합니다. 컨트롤 플레인 트래픽이 양방향으로 활성화되었는지 확인합니다. 인터페이스는 컨트롤러의 물리적 업링크를 가리킵니다.
9800#monitor capture EWA buffer size <buffer size in MB>
9800#monitor capture EWA access-list EWA-pcap
9800#monitor capture EWA control-plane both interface <uplink interface> both
9800#show monitor capture EWA
Status Information for Capture EWA
Target Type:
Interface: Control Plane, Direction: BOTH
Interface: TenGigabitEthernet0/1/0, Direction: BOTH
Status : Inactive
Filter Details:
Access-list: EWA-pcap
Inner Filter Details:
Buffer Details:
Buffer Type: LINEAR (default)
Buffer Size (in MB): 100
Limit Details:
Number of Packets to capture: 0 (no limit)
Packet Capture duration: 0 (no limit)
Packet Size to capture: 0 (no limit)
Packet sampling rate: 0 (no sampling)
3단계. 모니터 캡처를 시작하고 문제를 재현합니다.
9800#monitor capture EWA start
Started capture point : EWA
4단계. 모니터 캡처를 중지하고 내보냅니다.
9800#monitor capture EWA stop
Stopped capture point : EWA
9800#monitor capture EWA export tftp://<a.b.c.d>/EWA.pcap
또는 GUI에서 캡처를 다운로드하고 Troubleshooting(트러블슈팅) > Packet Capture(패킷 캡처)로 이동한 다음 구성된 캡처에서 Export(내보내기)를 선택합니다. HTTP를 통해 원하는 폴더로 캡처를 다운로드하려면 드롭다운 메뉴에서 Desktop(데스크톱)을 선택합니다.
웹 인증 WLAN은 클라이언트 동작에 의존하며, 이를 기반으로 클라이언트 측 동작 지식 및 정보는 웹 인증 오동작의 근본 원인을 식별하는 데 중요합니다.
Mozilla Firefox 및 Google Chrome과 같은 많은 최신 브라우저는 웹 애플리케이션 상호 작용을 디버깅하는 콘솔 개발자 도구를 제공합니다. HAR 파일은 클라이언트-서버 상호 작용의 레코드이며 요청 및 응답 정보(헤더, 상태 코드, 매개변수 등)와 함께 HTTP 상호 작용의 타임라인을 제공합니다.
HAR 파일은 클라이언트 브라우저에서 내보내고 추가 분석을 위해 다른 브라우저에서 가져올 수 있습니다. 이 문서에서는 Mozilla Firefox에서 HAR 파일을 수집하는 방법을 간략하게 설명합니다.
1단계. Ctrl + Shift + I로 Web Developer Tools를 열거나, 브라우저 내용 내에서 마우스 오른쪽 버튼을 클릭하고 Inspect를 선택합니다.
2단계. Network(네트워크)로 이동하여 모든 요청 유형을 캡처하려면 "All(모두)"이 선택되었는지 확인합니다. 기어 아이콘을 선택하고 Persist Logs(로그 유지) 옆에 화살표가 있는지 확인합니다. 그렇지 않으면 도메인 변경이 트리거될 때마다 로그 요청이 지워집니다.
3단계. 문제를 재현하고 브라우저가 모든 요청을 기록하는지 확인합니다. 문제가 재현되면 네트워크 로깅을 중지한 다음 톱니바퀴 아이콘에서 선택하고 Save All As HAR(모두 HAR로 저장)을 선택합니다.
Windows 또는 MacOS와 같은 OS가 있는 무선 클라이언트는 무선 카드 어댑터에서 패킷을 스니핑할 수 있습니다. OTA(over-the-air) 패킷 캡처를 직접 대체하는 것은 아니지만 전반적인 웹 인증 흐름을 한눈에 파악할 수 있습니다.
DNS 요청:
리디렉션을 위한 초기 TCP 핸드셰이크 및 HTTP GET:
외부 서버와의 TCP 핸드셰이크:
외부 서버에 대한 HTTP GET(종속 포털 요청):
인증을 위해 가상 IP에 대한 HTTP POST:
이는 Radio Active 추적 관점에서 성공한 연결 시도의 출력입니다. 레이어 3 웹 인증 SSID에 연결하는 클라이언트의 클라이언트 세션 단계를 식별하기 위한 참조로 사용합니다.
802.11 인증 및 연결:
2021/09/28 12:59:51.781967 {wncd_x_R0-0}{1}: [client-orch-sm] [26328]: (note): MAC: 3423.874c.6bf7 Association received. BSSID 0cd0.f897.ae60, WLAN EWA-Guest, Slot 0 AP 0cd0.f897.ae60, C9117AXI-lobby
2021/09/28 12:59:51.782009 {wncd_x_R0-0}{1}: [client-orch-sm] [26328]: (debug): MAC: 3423.874c.6bf7 Received Dot11 association request. Processing started,SSID: EWA-Guest, Policy profile: Guest-Policy, AP Name: C9117AXI-lobby, Ap Mac Address: 0cd0.f897.ae60 BSSID MAC0000.0000.0000 wlan ID: 4RSSI: -39, SNR: 0
2021/09/28 12:59:51.782152 {wncd_x_R0-0}{1}: [client-orch-state] [26328]: (note): MAC: 3423.874c.6bf7 Client state transition: S_CO_INIT -> S_CO_ASSOCIATING
2021/09/28 12:59:51.782357 {wncd_x_R0-0}{1}: [dot11-validate] [26328]: (info): MAC: 3423.874c.6bf7 WiFi direct: Dot11 validate P2P IE. P2P IE not present.
2021/09/28 12:59:51.782480 {wncd_x_R0-0}{1}: [dot11] [26328]: (debug): MAC: 3423.874c.6bf7 dot11 send association response. Sending association response with resp_status_code: 0
2021/09/28 12:59:51.782483 {wncd_x_R0-0}{1}: [dot11] [26328]: (debug): MAC: 3423.874c.6bf7 Dot11 Capability info byte1 1, byte2: 14
2021/09/28 12:59:51.782509 {wncd_x_R0-0}{1}: [dot11-frame] [26328]: (info): MAC: 3423.874c.6bf7 WiFi direct: skip build Assoc Resp with P2P IE: Wifi direct policy disabled
2021/09/28 12:59:51.782519 {wncd_x_R0-0}{1}: [dot11] [26328]: (info): MAC: 3423.874c.6bf7 dot11 send association response. Sending assoc response of length: 115 with resp_status_code: 0, DOT11_STATUS: DOT11_STATUS_SUCCESS
2021/09/28 12:59:51.782611 {wncd_x_R0-0}{1}: [dot11] [26328]: (note): MAC: 3423.874c.6bf7 Association success. AID 1, Roaming = False, WGB = False, 11r = False, 11w = False
2021/09/28 12:59:51.782626 {wncd_x_R0-0}{1}: [dot11] [26328]: (info): MAC: 3423.874c.6bf7 DOT11 state transition: S_DOT11_INIT -> S_DOT11_ASSOCIATED
2021/09/28 12:59:51.782676 {wncd_x_R0-0}{1}: [client-orch-sm] [26328]: (debug): MAC: 3423.874c.6bf7 Station Dot11 association is successful.
계층 2 인증을 건너뛰었습니다.
2021/09/28 12:59:51.782727 {wncd_x_R0-0}{1}: [client-orch-sm] [26328]: (debug): MAC: 3423.874c.6bf7 Starting L2 authentication. Bssid in state machine:0cd0.f897.ae60 Bssid in request is:0cd0.f897.ae60
2021/09/28 12:59:51.782745 {wncd_x_R0-0}{1}: [client-orch-state] [26328]: (note): MAC: 3423.874c.6bf7 Client state transition: S_CO_ASSOCIATING -> S_CO_L2_AUTH_IN_PROGRESS
2021/09/28 12:59:51.782785 {wncd_x_R0-0}{1}: [client-auth] [26328]: (note): MAC: 3423.874c.6bf7 L2 Authentication initiated. method WEBAUTH, Policy VLAN 2621,AAA override = 0
2021/09/28 12:59:51.782803 {wncd_x_R0-0}{1}: [sanet-shim-translate] [26328]: (ERR): 3423.874c.6bf7 wlan_profile Not Found : Device information attributes not populated
[...]
2021/09/28 12:59:51.787912 {wncd_x_R0-0}{1}: [client-auth] [26328]: (info): MAC: 3423.874c.6bf7 Client auth-interface state transition: S_AUTHIF_L2_WEBAUTH_PENDING -> S_AUTHIF_L2_WEBAUTH_PENDING
2021/09/28 12:59:51.787953 {wncd_x_R0-0}{1}: [client-auth] [26328]: (info): MAC: 3423.874c.6bf7 Client auth-interface state transition: S_AUTHIF_L2_WEBAUTH_PENDING -> S_AUTHIF_L2_WEBAUTH_DONE
2021/09/28 12:59:51.787966 {wncd_x_R0-0}{1}: [client-orch-sm] [26328]: (debug): MAC: 3423.874c.6bf7 L2 Authentication of station is successful., L3 Authentication : 1
ACL 플러그 앤:
2021/09/28 12:59:51.785227 {wncd_x_R0-0}{1}: [webauth-sm] [26328]: (info): [ 0.0.0.0]Starting Webauth, mac [34:23:87:4c:6b:f7],IIF 0 , audit-ID 041510AC0000000E2C7D71DB
2021/09/28 12:59:51.785307 {wncd_x_R0-0}{1}: [auth-mgr-feat_wireless] [26328]: (info): [0000.0000.0000:unknown] Retrieved zone id 0x0 for bssid 12364632846202045372
2021/09/28 12:59:51.785378 {wncd_x_R0-0}{1}: [webauth-acl] [26328]: (info): capwap_9000000b[3423.874c.6bf7][ 0.0.0.0]Applying IPv4 intercept ACL via SVM, name: WA-v4-int-172.16.80.8, priority: 50, IIF-ID: 0
2021/09/28 12:59:51.785738 {wncd_x_R0-0}{1}: [epm-redirect] [26328]: (info): [0000.0000.0000:unknown] URL-Redirect-ACL = WA-v4-int-172.16.80.8
2021/09/28 12:59:51.786324 {wncd_x_R0-0}{1}: [webauth-acl] [26328]: (info): capwap_9000000b[3423.874c.6bf7][ 0.0.0.0]Applying IPv6 intercept ACL via SVM, name: IP-Adm-V6-Int-ACL-global, priority: 52, IIF-ID: 0
2021/09/28 12:59:51.786598 {wncd_x_R0-0}{1}: [epm-redirect] [26328]: (info): [0000.0000.0000:unknown] URL-Redirect-ACL = IP-Adm-V6-Int-ACL-global
2021/09/28 12:59:51.787904 {wncd_x_R0-0}{1}: [client-auth] [26328]: (info): MAC: 3423.874c.6bf7 Client auth-interface state transition: S_AUTHIF_AWAIT_L2_WEBAUTH_START_RESP -> S_AUTHIF_L2_WEBAUTH_PENDING
IP 학습 프로세스:
2021/09/28 12:59:51.799515 {wncd_x_R0-0}{1}: [client-orch-state] [26328]: (note): MAC: 3423.874c.6bf7 Client state transition: S_CO_DPATH_PLUMB_IN_PROGRESS -> S_CO_IP_LEARN_IN_PROGRESS
2021/09/28 12:59:51.799716 {wncd_x_R0-0}{1}: [client-iplearn] [26328]: (info): MAC: 3423.874c.6bf7 IP-learn state transition: S_IPLEARN_INIT -> S_IPLEARN_IN_PROGRESS
2021/09/28 12:59:51.802213 {wncd_x_R0-0}{1}: [client-auth] [26328]: (info): MAC: 3423.874c.6bf7 Client auth-interface state transition: S_AUTHIF_L2_WEBAUTH_DONE -> S_AUTHIF_L2_WEBAUTH_DONE
2021/09/28 12:59:51.916777 {wncd_x_R0-0}{1}: [sisf-packet] [26328]: (debug): RX: ARP from interface capwap_9000000b on vlan 2621 Source MAC: 3423.874c.6bf7 Dest MAC: ffff.ffff.ffff ARP REQUEST, ARP sender MAC: 3423.874c.6bf7 ARP target MAC: 0000.0000.0000 ARP sender IP: 0.0.0.0, ARP target IP: 172.16.21.153
[...]
2021/09/28 12:59:52.810136 {wncd_x_R0-0}{1}: [client-iplearn] [26328]: (note): MAC: 3423.874c.6bf7 Client IP learn successful. Method: ARP IP: 172.16.21.153
2021/09/28 12:59:52.810185 {wncd_x_R0-0}{1}: [epm] [26328]: (info): [0000.0000.0000:unknown] HDL = 0x0 vlan 2621 fail count 0 dirty_counter 0 is_dirty 0
2021/09/28 12:59:52.810404 {wncd_x_R0-0}{1}: [auth-mgr] [26328]: (info): [3423.874c.6bf7:capwap_9000000b] auth mgr attr change notification is received for attr (8)
2021/09/28 12:59:52.810794 {wncd_x_R0-0}{1}: [auth-mgr-feat_wireless] [26328]: (info): [0000.0000.0000:unknown] Retrieved zone id 0x0 for bssid 12364632846202045372
2021/09/28 12:59:52.810863 {wncd_x_R0-0}{1}: [client-iplearn] [26328]: (info): MAC: 3423.874c.6bf7 IP-learn state transition: S_IPLEARN_IN_PROGRESS -> S_IPLEARN_COMPLETE
레이어 3 인증 및 리디렉션 프로세스:
2021/09/28 12:59:52.811141 {wncd_x_R0-0}{1}: [client-auth] [26328]: (note): MAC: 3423.874c.6bf7 L3 Authentication initiated. LWA
2021/09/28 12:59:52.811154 {wncd_x_R0-0}{1}: [client-auth] [26328]: (info): MAC: 3423.874c.6bf7 Client auth-interface state transition: S_AUTHIF_L2_WEBAUTH_DONE -> S_AUTHIF_WEBAUTH_PENDING
2021/09/28 12:59:55.324550 {wncd_x_R0-0}{1}: [webauth-httpd] [26328]: (info): capwap_9000000b[3423.874c.6bf7][ 172.16.21.153]GET rcvd when in LOGIN state
2021/09/28 12:59:55.324565 {wncd_x_R0-0}{1}: [webauth-httpd] [26328]: (info): capwap_9000000b[3423.874c.6bf7][ 172.16.21.153]HTTP GET request
2021/09/28 12:59:55.324588 {wncd_x_R0-0}{1}: [webauth-httpd] [26328]: (info): capwap_9000000b[3423.874c.6bf7][ 172.16.21.153]Parse GET, src [172.16.21.153] dst [x.x.x.x] url [http://browser-test-website/]
[...]
2021/09/28 13:01:29.859434 {wncd_x_R0-0}{1}: [webauth-httpd] [26328]: (info): capwap_9000000b[3423.874c.6bf7][ 172.16.21.153]POST rcvd when in LOGIN state
2021/09/28 13:01:29.859636 {wncd_x_R0-0}{1}: [webauth-acl] [26328]: (info): capwap_9000000b[3423.874c.6bf7][ 172.16.21.153]Unapply IPv4 intecept ACL via SVM, name "WA-v4-int-172.16.80.8", pri 50, IIF 0
2021/09/28 13:01:29.860335 {wncd_x_R0-0}{1}: [webauth-acl] [26328]: (info): capwap_9000000b[3423.874c.6bf7][ 172.16.21.153]Unapply IPv6 intecept ACL via SVM, name "IP-Adm-V6-Int-ACL-global", pri 52, IIF 0
2021/09/28 13:01:29.861092 {wncd_x_R0-0}{1}: [auth-mgr] [26328]: (info): [3423.874c.6bf7:capwap_9000000b] Authc success from WebAuth, Auth event success
2021/09/28 13:01:29.861151 {wncd_x_R0-0}{1}: [ewlc-infra-evq] [26328]: (note): Authentication Success. Resolved Policy bitmap:0 for client 3423.874c.6bf7
2021/09/28 13:01:29.862867 {wncd_x_R0-0}{1}: [client-auth] [26328]: (note): MAC: 3423.874c.6bf7 L3 Authentication Successful. ACL:[]
2021/09/28 13:01:29.862871 {wncd_x_R0-0}{1}: [client-auth] [26328]: (info): MAC: 3423.874c.6bf7 Client auth-interface state transition: S_AUTHIF_WEBAUTH_PENDING -> S_AUTHIF_WEBAUTH_DONE
실행 상태로 전환:
2021/09/28 13:01:29.863176 {wncd_x_R0-0}{1}: [client-auth] [26328]: (note): MAC: 3423.874c.6bf7 ADD MOBILE sent. Client state flags: 0x78 BSSID: MAC: 0cd0.f897.ae60 capwap IFID: 0x9000000b
2021/09/28 13:01:29.863272 {wncd_x_R0-0}{1}: [errmsg] [26328]: (info): %CLIENT_ORCH_LOG-6-CLIENT_ADDED_TO_RUN_STATE: Username entry (3423.874C.6BF7) joined with ssid (EWA-Guest) for device with MAC: 3423.874c.6bf7
2021/09/28 13:01:29.863334 {wncd_x_R0-0}{1}: [aaa-attr-inf] [26328]: (info): [ Applied attribute :bsn-vlan-interface-name 0 "VLAN2621" ]
2021/09/28 13:01:29.863336 {wncd_x_R0-0}{1}: [aaa-attr-inf] [26328]: (info): [ Applied attribute : timeout 0 1800 (0x708) ]
2021/09/28 13:01:29.863343 {wncd_x_R0-0}{1}: [aaa-attr-inf] [26328]: (info): [ Applied attribute : url-redirect-acl 0 "IP-Adm-V4-LOGOUT-ACL" ]
2021/09/28 13:01:29.863387 {wncd_x_R0-0}{1}: [ewlc-qos-client] [26328]: (info): MAC: 3423.874c.6bf7 Client QoS run state handler
2021/09/28 13:01:29.863409 {wncd_x_R0-0}{1}: [rog-proxy-capwap] [26328]: (debug): Managed client RUN state notification: 3423.874c.6bf7
2021/09/28 13:01:29.863451 {wncd_x_R0-0}{1}: [client-orch-state] [26328]: (note): MAC: 3423.874c.6bf7 Client state transition: S_CO_L3_AUTH_IN_PROGRESS -> S_CO_RUN
개정 | 게시 날짜 | 의견 |
---|---|---|
5.0 |
12-Jan-2023 |
기본 권한 부여 방법에 대한 작은 메모를 추가했습니다. |
4.0 |
02-May-2022 |
오타 및 서식 수정 |
2.0 |
11-Oct-2021 |
최초 릴리스 |
1.0 |
12-Oct-2021 |
최초 릴리스 |