소개
이 문서에서는 9800 series 무선 컨트롤러를 Umbrella와 통합하는 문제를 해결하는 방법에 대해 설명합니다.
개요
이 문서는 Cisco Catalyst 9200 및 Catalyst 9300 스위치의 연속 문서이며, 9800과 Cisco Umbrella 사이의 워크플로는 물론 등록 문제 해결을 위한 가이드 역할을 합니다.
Cisco Umbrella 일반 워크플로
4415377983508
-
Cisco Umbrella 서버에 무선 컨트롤러를 등록하는 작업은 일회성 프로세스이며 보안 HTTPS 터널을 통해 수행됩니다.
-
Cisco Umbrella Dashboard에서 디바이스(9800) 등록용 API 토큰을 가져옵니다.
-
9800에 토큰을 적용합니다. 그러면 디바이스가 Cisco Umbrella 계정에 등록됩니다. 다음으로, 9800에서 Cisco Umbrella Profile/s를 생성합니다. ID와 정책이 ID별로 적용되므로 프로파일은 자동으로 Cisco Umbrella로 푸시됩니다.
-
무선 클라이언트 트래픽은 Cisco Umbrella 서버로 이동합니다.
-
무선 클라이언트가 9800에 DNS 요청을 보냅니다.
-
9800은 DNS 패킷을 스누핑하고 Cisco Umbrella 프로필에 태그를 지정합니다. 프로파일은 Cisco Umbrella에도 상주하는 패킷의 ID입니다.
-
이 EDNS 패킷은 이름 확인을 위해 Cisco Umbrella 클라우드 서버로 리디렉션됩니다.
-
그런 다음 Cisco Umbrella는 ID에 따라 정책을 시행하고 카테고리 기반 필터링 규칙을 적용하여 조직의 컴플라이언스를 보장합니다.
-
규칙에 따라, 쿼리된 DNS 요청에 대해 차단된 페이지 또는 확인된 IP 주소를 클라이언트에 반환합니다.
9800을 구성하는 자세한 단계는 Security Configuration Guide에 나와 있습니다.
등록 및 인증서 가져오기
- Umbrella Dashboard에서 API 토큰을 가져옵니다. Admin(관리) > API Keys(API 키) > (create) Legacy Network Devices(레거시 네트워크 디바이스) .
- 다음 방법 중 하나를 사용하여 CLI를 통해 CA 인증서를 9800으로 가져옵니다.
URL에서 가져오기
명령을 실행하고 9800에서 인증서를 가져오도록 허용합니다.
crypto pki trustpool import url http://www.cisco.com/security/pki/trs/ios.p7b
터미널에서 직접 가져오기
다음 명령을 사용하여 CA 인증서를 복사하여 붙여넣습니다(첨부 참조).
crypto pki trustpool import terminal
- 다음 명령을 사용하여 9800 CLI에 API 토큰을 입력합니다.
parameter-map type umbrella global
token XXXXXXXXXXXXXXXXXXXXXXXXXXXX
Cisco Umbrella 컨피그레이션 확인
Cisco Umbrella 컨피그레이션 세부사항을 보려면 다음 명령을 사용합니다.
Device# show umbrella config
Umbrella Configuration
========================
Token: 5XXXXXXABXXXXXFXXXXXXXXXDXXXXXXXXXXXABXX
API-KEY: NONE
OrganizationID: xxxxxxx
Local Domain Regex parameter-map name: dns_bypass
DNSCrypt:Enabled
Public-key: B735:1140:206F:225D:3E2B:D822:D7FD:691E:A1C3:3CC8:D666:8D0C:BE04:BFAB:CA43:FB79
UDP Timeout: 5 seconds
Resolver address:
1. 208.67.220.220
2. 208.67.222.222
3. 2620:119:53::53
4. 2620:119:35::35
ewc1#show umbrella deviceid detailed
Device registration details
1.global
Tag : global
Device-id : 010a2ed75e520fda
Description : Device Id recieved successfully
WAN interface : None
ewc1#show umbrella dnscrypt
DNSCrypt: Enabled
Public-key: B735:1140:206F:225D:3E2B:D822:D7FD:691E:A1C3:3CC8:D666:8D0C:BE04:BFAB:CA43:FB79
Certificate Update Status:
Last Successfull Attempt: 10:40:58 UTC Apr 8 2020
Certificate Details:
Certificate Magic : DNSC
Major Version : 0x0001
Minor Version : 0x0000
Query Magic : 0x7163373861576F6F
Serial Number : 1574811744
Start Time : 1574811744 (23:42:24 UTC Nov 26 2019)
End Time : 1606347744 (23:42:24 UTC Nov 25 2020)
Server Public Key : 88B4:E44B:35E9:64B4:90BD:DABA:E825:A24B:0415:A08B:E19D:7DDB:87A3:3CD7:7EDF:8E2F
Client Secret Key Hash: E323:7E82:C0C2:1F0C:55AE:1473:862D:6D26:9607:B41D:3F51:F587:9482:8709:401E:2EC4
Client Public key : 8D52:4D73:CF69:4890:F130:2845:4CBE:A9CA:87AF:4CDA:FE17:C626:2F8A:1780:CD18:C855
NM key Hash : FAAD:4C16:6DA3:D6F3:655D:FF98:36B7:73E7:9D1C:21F5:A0E3:A083:17D7:C308:522E:722D
디버깅 및 로깅
DNSCrypt를 비활성화하려면 다음 명령을 사용합니다.
parameter-map type umbrella global > no dnscrypt
다음 오류가 표시될 수 있습니다. "URL을 사용하여 인증서를 가져올 수 없음":
crypto pki trustpool import urlhttp://www.cisco.com/security/pki/trs/ios.p7b
% Error: failed to open file.
% No certificates imported fromhttp://www.cisco.com/security/pki/trs/ios.p7b.
해결 방법:
이 위치에서 PEM 형식의 CA 인증서를 수동으로 복사하여 붙여넣습니다.
다음으로 디바이스 등록 디버그 로그를 활성화합니다.
debug umbrella dnscrypt
debug umbrella device-registration
debug umbrella config
term monitor
참고: 여러 9800에 동일한 deviceId를 할당할 수 있는 인스턴스가 있을 수 있습니다. 이는 가상 9800(WC(Embedded Wireless Controller))의 경우 발생합니다.
모든 가상 WC는 하드코딩된 MAC 주소가 동일합니다. "CC46D6CCCCC".
eWC A의 디버그 샘플:
Nov 2 19:21:18.903 Central: UMBRELLA-DEV-REG:Device registration process start: umbrella parameter-map global (tag: global): TCP socket created, connect state will be verified before sending out request
Nov 2 19:21:18.915 Central: UMBRELLA-DEV-REG:Socket 0 event handler: event type = WRITE EVENT
Nov 2 19:21:18.915 Central: UMBRELLA-DEV-REG:Send POST request invoked
Nov 2 19:21:18.915 Central: UMBRELLA-DEV-REG:Get registration request info invoked
Nov 2 19:21:18.915 Central: UMBRELLA-DEV-REG:Get registration request info: Found new queued request for umbrella parameter-map global (tag: global), status :REQ QUEUED
Nov 2 19:21:18.915 Central: UMBRELLA-DEV-REG:Send POST request for umbrella parameter-map global (tag: global): status = 1
Nov 2 19:21:18.915 Central: UMBRELLA-DEV-REG:Send POST request for umbrella parameter-map global (tag: global): request license mode = TOKEN
Nov 2 19:21:18.915 Central: UMBRELLA-DEV-REG:Send POST request for umbrella parameter-map global (tag: global): POST size = 238, JSON size = 174,actual size = 412 , uri_size = 18
Nov 2 19:21:18.915 Central: UMBRELLA-DEV-REG:
Nov 2 19:21:18.915 Central: Dev reg json buffer :{"model":"B77A8731C7F4D6E92C07D7DCB68961470000A553","macAddress":"CC46D6CCCCCC","label":"global","tag":"global","serialNumber":"9KZNYR9FRRQ"} and bytes: 141
Nov 2 19:21:18.915 Central: UMBRELLA-DEV-REG:
Nov 2 19:21:18.915 Central: umbrella parameter-map name :global macAddr :cc46.d6cc.cccc
Nov 2 19:21:18.915 Central: UMBRELLA-DEV-REG:Build POST request invoked: post size = 238, size = 141
Nov 2 19:21:18.915 Central: UMBRELLA-DEV-REG:Build POST request: hostname = api.opendns.com
Nov 2 19:21:18.915 Central: UMBRELLA-DEV-REG:Build POST request: URI = /v3/networkdevices
Nov 2 19:21:18.916 Central: UMBRELLA-DEV-REG:Build POST request done
Nov 2 19:21:18.916 Central: UMBRELLA-DEV-REG:Send POST request for umbrella parameter-map global (tag: global): request buffer length = 368
Nov 2 19:21:18.916 Central: UMBRELLA-DEV-REG:Send POST request for umbrella parameter-map global (tag: global): Built request = POST /v3/networkdevices HTTP/1.1
Host: api.opendns.com
Authorization:OpenDNS,api_key="B0E16D19C32D42EC996B635X4X9005B9",token="B77A8731C7F4D6E92C07D7DCB68961470000A553"
Content-Type: application/json
Content-Length: 141
{"model":"B77A7561C7F4ABC92C07D7DCB68961470000A553","macAddress":"CC46D6CCCCCC","label":"global","tag":"global","serialNumber":"9KZNYR9FRRQ"}
----------------------------------------<OUTPUT OMITTED>----------------------------------------
Nov 2 19:21:23.553 Central: UMBRELLA-DEV-REG:Registration response: msg_part = 3, bytes = 256, resp: content-type: application/json
x-envoy-upstream-service-time: 1462
x-xss-protection: 1; mode=block
x-ingress-point: mil1
{"deviceId":"010a7859d0d39393","deviceKey":"B77A8731C7F4D6E92C07D7DCB68961470000A553-CC46D6CCCCCC-global","label":"global","seria
Nov 2 19:21:23.553 Central: UMBRELLA-DEV-REG:Registration response: msg_part = 4, bytes = 1
78, resp: lNumber":"9KZNYR9FPPQ","phishing":1,"createdAt":1635877282,"originId":xxxxxxxx,"
apiKey":"b0e16d19c32d42ec996b635x4x9005b9","deviceTypeId":1,"vendorId":51,"organizationId":xxxxx}
eWC B의 디버그 샘플:
Nov 2 19:21:41.909 Central: UMBRELLA-DEV-REG:Device registration process start: umbrella parameter-map global (tag: global): TCP socket created, connect state will be verified before sending out request
Nov 2 19:21:41.919 Central: UMBRELLA-DEV-REG:Socket 0 event handler: event type = WRITE EVENT
Nov 2 19:21:41.919 Central: UMBRELLA-DEV-REG:Send POST request invoked
Nov 2 19:21:41.919 Central: UMBRELLA-DEV-REG:Get registration request info invoked
Nov 2 19:21:41.919 Central: UMBRELLA-DEV-REG:Get registration request info: Found new queued request for umbrella parameter-map global (tag: global), status :REQ QUEUED
Nov 2 19:21:41.919 Central: UMBRELLA-DEV-REG:Send POST request for umbrella parameter-map global (tag: global): status = 1
Nov 2 19:21:41.919 Central: UMBRELLA-DEV-REG:Send POST request for umbrella parameter-map global (tag: global): request license mode = TOKEN
Nov 2 19:21:41.919 Central: UMBRELLA-DEV-REG:Send POST request for umbrella parameter-map global (tag: global): POST size = 238, JSON size = 174,actual size = 412 , uri_size = 18
Nov 2 19:21:41.919 Central: UMBRELLA-DEV-REG:
Nov 2 19:21:41.919 Central: Dev reg json buffer :{"model":"B77A7561C7F4ABC92C07D7DCB68961470000A553","macAddress":"CC46D6CCCCCC","label":"global","tag":"global","serialNumber":"9BRCYQ9KDRU"} and bytes: 141
Nov 2 19:21:41.919 Central: UMBRELLA-DEV-REG:
Nov 2 19:21:41.919 Central: umbrella parameter-map name :global macAddr :cc46.d6cc.cccc
Nov 2 19:21:41.919 Central: UMBRELLA-DEV-REG:Build POST request invoked: post size = 238, size = 141
Nov 2 19:21:41.919 Central: UMBRELLA-DEV-REG:Build POST request: hostname = api.opendns.com
Nov 2 19:21:41.919 Central: UMBRELLA-DEV-REG:Build POST request: URI = /v3/networkdevices
Nov 2 19:21:41.919 Central: UMBRELLA-DEV-REG:Build POST request done
Nov 2 19:21:41.919 Central: UMBRELLA-DEV-REG:Send POST request for umbrella parameter-map global (tag: global): request buffer length = 368
Nov 2 19:21:41.919 Central: UMBRELLA-DEV-REG:Send POST request for umbrella parameter-map global (tag: global): Built request = POST /v3/networkdevices HTTP/1.1
Host: api.opendns.com
Authorization:OpenDNS,api_key="B0E16D19C32D42EC996B635X4X9005B9",token="B77A8731C7F4D6E92C07D7DCB68961470000A553"
Content-Type: application/json
Content-Length: 141
{"model":"B77A8731C7F4D6E92C07D7DCB68961470000A553","macAddress":"CC46D6CCCCCC","label":"global","tag":"global","serialNumber":"9BRCYQ8RDRU"}
----------------------------------------<OUTPUT OMITTED>----------------------------------------
Nov 2 19:21:41.919 Central: UMBRELLA-DEV-REG:Registration response: msg_part = 3, bytes = 256, resp: content-type: application/json
x-envoy-upstream-service-time: 1462
x-xss-protection: 1; mode=block
x-ingress-point: mil1
{"deviceId":"010a7859d0d39393","deviceKey":"B77A8731C7F4D6E92C07D7DCB68961470000A553-CC46D6CCCCCC-global","label":"global","serialNumber":"9BRCYQ8RDRU"}
Nov 2 19:21:41.919 Central: UMBRELLA-DEV-REG:Registration response: msg_part = 4, bytes = 1
78, resp: lNumber":"9KZNYR9FPPQ","phishing":1,"createdAt":1635877282,"originId":573529511,"
apiKey":"b0e16d19c32d42ec996b635x4x9005b9","deviceTypeId":1,"vendorId":51,"organizationId":xxxxx}
여기서, POST 요청은 API 토큰(Cisco Umbrella Dashboard의 레거시 디바이스 API 토큰), API 키, 모델 번호(API 토큰과 동일), WLC(Wireless LAN Controller)의 MAC 주소, 파라미터 맵(태그)의 이름 및 디바이스 일련 번호를 포함한다.
디바이스 ID는 API 토큰, API 키, 태그 및 MAC 주소를 사용하여 생성됩니다. 이러한 9800은 모두 위에 대해 동일한 값을 가지므로, 동일한 디바이스 ID가 둘 다에 할당됩니다.
이는 예상된 동작입니다. 이 문제를 해결하려면 9800 중 하나 또는
둘 다에서 사용자 지정 매개변수
맵을 만들어야 합니다.
parameter-map type umbrella <custom name>
사용자 지정 매개 변수 맵 "cpm"
을 만들어 다른 Device ID(deviceId)를 가져오는 새 태그를
만듭니다.
{"deviceId":"010a30f6275c92ce","deviceKey":"0DCDA24CDD6A92D714FE357539FDCAE80051BA0A-DD46D6BBCCCC-global","label":"global","serialNumber":"F222424Q4M8","phishing":1,"createdAt":1641192490,"originId":563829932,"apiKey":"b0e16d15c32d4e8c996b635afa9005b9","deviceTypeId":1,"vendorId":51,"organizationId":******}
{"deviceId":"010a341b037ea6b9","deviceKey":"0DCDA24CDD6A92D714FE357539FDCAE80051BA0A-DD46D6BBCCCC-cpm","label":"global","serialNumber":"F222424Q4M8","phishing":1,"createdAt":1641825561,"originId":563829932,"apiKey":"b0e16d15c32d4e8c996b635afa9005b9","deviceTypeId":1,"vendorId":51,"organizationId":******}