Introduction
O Network Mobility Services Protocol (NMSP) gerencia a comunicação entre o Mobility Services Engine (MSE) e o Wireless LAN Controller (WLC).
O NMSP é um protocolo bidirecional que pode ser executado em um transporte orientado a conexão ou sem conexão.Os switches sensíveis ao contexto podem usar o NMSP para se comunicar com um ou mais MSEs. O NMSP é baseado em um sistema bidirecional de solicitações e respostas entre o MSE e o controlador de acesso. Agora, vamos ver como habilitar essa comunicação entre MSE e WLC.
Aqui usamos 3850 (WLC baseada em IOS) e MSE para esta postagem.
Problema:
Problemas ao estabelecer o túnel NMSP entre 3850 e MSE.
Dispositivos usados:
MSE: MSE virtual 8.0.110 (MR1)
WLC: 3850 3.3.5SE
Infraestrutura principal (PI): 2.2.1
Como o NMSP funciona em SSL (Secure Socket Layer), você precisa configurar a credencial MSE em WLC. O MSE usa o endereço MAC e o hash de chave, portanto, o WLC deve estar ciente desses dois parâmetros. Você pode obter esses detalhes via MSE CLI como mostrado abaixo
[root@robin ~]# cmdshell
cmd> show server-auth-info
comando invocar: com.aes.server.cli.CmdGetServerAuthInfo
Marca alta da fila AesLog: 50000
Marca baixa da fila AesLog: 500
—
Informações de autenticação do servidor
—
Endereço MAC: 00:50:56:9c:34:89
Hash de chave SHA1: e0afbe2e2abeed5a2f9ffc75f059da6a1bf2bfa0
Hash de chave SHA2: 6ab919e20afc103d025aaf210c2a9dda151af9403ef52e80a35ae1ecb6d3c177
Tipo de certificado: SSC
Agora, configurando as configurações NMSP em uma plataforma de acesso convergido (5760/3850/3650).
Aqui usamos 3850 para este exemplo. Temos que configurar o endereço MAC MSE como nome de usuário e hash de chave como senha. Note: A versão em execução no meu 3850 é a criptografia 3.3.5 SE e SHA2 é usada no IOS-XE.
Comandos utilizados:
3850c(config)#username 0050569c3489 aaa attribute list NMSP
3850c(config)#aaa lista de atributos NMSP
3850c(config)#tipo de atributo senha 6ab919e20afc103d025aaf210c2a9dda151af9403ef52e80a35ae1ecb6d3c 177
3850c(config)#aaa authorization credential-download wcm_loc_serv_cert local

Em sua infraestrutura Prime, clique em: Serviços > Serviços de Mobilidade > Sincronizar Serviços
Selecione o 3850 e clique no botão "Alterar atribuição de MSE".
Em seguida, você precisa selecionar o MSE e os serviços apropriados que deseja sincronizar entre o WLC (3850) e o MSE.


Verifique:
Após a conclusão dos serviços de sincronização, você pode verificá-lo a partir da WLC, MSE ou IP GUI.
Via CLI 3850:



Via MSE GUI
Para MSE v8.0 ou posterior, acesse: (https://<MSE_IP>/mseui/ )

Troubleshoot:
Se o NMSP ainda estiver inativo:
1) Verifique o hash da chave e, se não corresponder, insira o hash manualmente conforme mostrado acima
2) A sincronização de horário do NTP deve estar lá entre o MSE e o WLC
Debugs:
Cenário de falha:
Falha na validação da chave hash:
3850c#set trace nmsp connection level debug
3850c#show trace messages nmsp
[03/06/15 22:28:10.762 UTC a27 10241] Nova conexão NMSP alocada 0
[03/06/15 22:28:10.762 UTC a28 10241] sslConexãoInicialização: SSL_new() conn ssl b3f8a8d0
[03/06/15 22:28:10.762 UTC a29 10241] sslConexãoInicialização: SSL_do_handshake para conn ssl b3f8a8d0, estado conn: Estado INIT, SSL: MANIPULAÇÃO
[03/06/15 22:28:10.762 UTC a2a 10241] Estado SSL = 0x6000; em que = 0x10; ret = 0x1
[03/06/15 22:28:10.762 UTC a2b 10241] ret_type_string=desconhecido
[03/06/15 22:28:10.762 UTC a2c 10241] ret_desc_string=desconhecido
[03/06/15 22:28:10.762 UTC a2d 10241] SSL_state_string=antes/aceitar inicialização
[03/06/15 22:28:10.762 UTC a2e 10241] Estado SSL = 0x6000; em que = 0x2001; ret = 0x1
[03/06/15 22:28:10.762 UTC a2f 10241] ret_type_string=desconhecido
[03/06/15 22:28:10.762 UTC a30 10241] ret_desc_string=desconhecido
[03/06/15 22:28:10.762 UTC a31 10241] SSL_state_string=antes/aceitar a inicialização
[03/06/15 22:28:10.762 UTC a32 10241] Estado SSL = 0x2111; em que = 0x2002; ret = 0xffffffff
[03/06/15 22:28:10.762 UTC a33 10241] ret_type_string=desconhecido
[03/06/15 22:28:10.762 UTC a34 10241] ret_desc_string=desconhecido
[03/06/15 22:28:10.762 UTC a35 10241] SSL_state_string=SSLv3 read client hello B
—Mais— ???????? ?????????[06/03/15 22:28:10.762 UTC a36 10241] — retorna WANT_READ para conn ssl b3f8a8d0
[03/06/15 22:28:10.762 UTC a37 10241] sslConnectionInit() êxito com o estado de conexão: Estado INIT, SSL: MANIPULAÇÃO
[03/06/15 22:28:10.768 UTC a38 10241] doSSLRecvLoop: O handshake não foi concluído para conn 0
[03/06/15 22:28:10.768 UTC a39 10241] sslConexãoInicialização: SSL_do_handshake para conn ssl b3f8a8d0, estado conn: Estado INIT, SSL: MANIPULAÇÃO
[03/06/15 22:28:10.768 UTC a3a 10241] Estado SSL = 0x2111; em que = 0x2001; ret = 0x1
[03/06/15 22:28:10.768 UTC a3b 10241] ret_type_string=desconhecido
[03/06/15 22:28:10.768 UTC a3c 10241] ret_desc_string=desconhecido
[03/06/15 22:28:10.768 UTC a3d 10241] SSL_state_string=SSLv3 read client hello B
[03/06/15 22:28:10.768 UTC a3e 10241] Estado SSL = 0x2130; em que = 0x2001; ret = 0x1
[03/06/15 22:28:10.768 UTC a3f 10241] ret_type_string=desconhecido
[03/06/15 22:28:10.768 UTC a40 10241] ret_desc_string=desconhecido
[03/06/15 22:28:10.768 UTC a41 10241] SSL_state_string=SSLv3 write server hello A
[03/06/15 22:28:10.768 UTC a42 10241] Estado SSL = 0x2140; em que = 0x2001; ret = 0x1
[03/06/15 22:28:10.768 UTC a43 10241] ret_type_string=desconhecido
[03/06/15 22:28:10.768 UTC a44 10241] ret_desc_string=desconhecido
[03/06/15 22:28:10.768 UTC a45 10241] SSL_state_string=SSLv3 write certificate A
—Mais— ???????? ??????????[06/03/15 22:28:10.768 UTC a46 10241] Estado SSL = 0x2160; em que = 0x2001; ret = 0x1
[03/06/15 22:28:10.768 UTC a47 10241] ret_type_string=desconhecido
[03/06/15 22:28:10.768 UTC a48 10241] ret_desc_string=desconhecido
[03/06/15 22:28:10.768 UTC a49 10241] SSL_state_string=SSLv3 write certificate request A
[03/06/15 22:28:10.768 UTC a4a 10241] Estado SSL = 0x2100; em que = 0x2001; ret = 0x1
[03/06/15 22:28:10.768 UTC a4b 10241] ret_type_string=desconhecido
[03/06/15 22:28:10.768 UTC a4c 10241] ret_desc_string=desconhecido
[03/06/15 22:28:10.768 UTC a4d 10241] SSL_state_string=SSLv3 flush data
[03/06/15 22:28:10.768 UTC a4e 10241] Estado SSL = 0x2180; em que = 0x2002; ret = 0xffffffff
[03/06/15 22:28:10.768 UTC a4f 10241] ret_type_string=desconhecido
[03/06/15 22:28:10.768 UTC a50 10241] ret_desc_string=desconhecido
[03/06/15 22:28:10.768 UTC a51 10241] SSL_state_string=SSLv3 read client certificate A
[03/06/15 22:28:10.768 UTC a52 10241] — retorna WANT_READ para conn ssl b3f8a8d0
[03/06/15 22:28:11.068 UTC a53 10241] doSSLRecvLoop: O handshake não foi concluído para conn 0
[03/06/15 22:28:11.068 UTC a54 10241] sslConnectionInit: SSL_do_handshake para conn ssl b3f8a8d0, estado conn: Estado INIT, SSL: MANIPULAÇÃO
[03/06/15 22:28:11.069 UTC a55 10241] Validação de certificado de peer Concluída para conn ssl b3f8a8d0, lista de autenticação de chamada.
—Mais— ???????? ??????????[06/03/15 22:28:11.070 UTC a56 10241] Falha na autenticação da lista de autorização para conn ssl b3f8a8d0
[03/06/15 22:28:12.070 UTC a57 10241] Ponto não validado em relação à AuthList
[03/06/15 22:28:12.070 UTC a58 10241] Estado SSL = 0x2182; em que = 0x4008; ret = 0x22e
[03/06/15 22:28:12.070 UTC a59 10241] ret_type_string=fatal
[06/03/15 22:28:12.070 UTC a5a 10241] ret_desc_string=certificado desconhecido
[03/06/15 22:28:12.070 UTC a5b 10241] SSL_state_string=SSLv3 read client certificate C
[03/06/15 22:28:12.070 UTC a5c 10241] Estado SSL = 0x2182; em que = 0x2002; ret = 0xffffffff
[03/06/15 22:28:12.070 UTC a5d 10241] ret_type_string=desconhecido
[03/06/15 22:28:12.070 UTC a5e 10241] ret_desc_string=desconhecido
[03/06/15 22:28:12.070 UTC a5f 10241] SSL_state_string=SSLv3 read client certificate C
[06/03/15 22:28:12.070 UTC a60 10241] — falha no handshake para conn ssl b3f8a8d0, erro ssl_err 1 = erro:140890B2:rotas SSL3_SSL GET_CLIENT_CERTIFICATE:nenhum certificado retornado
[06/03/15 22:28:12.070 UTC a61 10241] liberando Nmsp conn ssl b3f8a8d0, conn id 0
Cenário de sucesso:
[06/06/15 17:47:53.600 UTC 4f2 10205] Enviando NMSP_APP_MEAS_NOTIFY_MSG para o servidor 0
[06/06/15 17:56:34.305 UTC 4f3 10205] Nova conexão NMSP alocada 0
—Mais— ???????? ??????????[06/06/15 17:56:34.306 UTC 4f4 10205] sslConnectionInit: SSL_new() conn ssl 590a6048
[06/06/15 17:56:34.306 UTC 4f5 10205] sslConexãoInicialização: SSL_do_handshake para conn ssl 590a6048, estado conn: Estado INIT, SSL: MANIPULAÇÃO
[06/06/15 17:56:34.306 UTC 4f6 10205] Estado SSL = 0x6000; em que = 0x10; ret = 0x1
[06/06/15 17:56:34.306 UTC 4f7 10205] ret_type_string=desconhecido
[06/06/15 17:56:34.306 UTC 4f8 10205] ret_desc_string=desconhecido
[06/06/15 17:56:34.307 UTC 4f9 10205] SSL_state_string=antes/aceitar a inicialização
[06/06/15 17:56:34.307 UTC 4fa 10205] Estado SSL = 0x6000; em que = 0x2001; ret = 0x1
[06/06/15 17:56:34.307 UTC 4fb 10205] ret_type_string=desconhecido
[06/06/15 17:56:34.307 UTC 4fc 10205] ret_desc_string=desconhecido
[06/06/15 17:56:34.307 UTC 4fd 10205] SSL_state_string=antes/aceitar inicialização
[06/06/15 17:56:34.307 UTC 4fe 10205] Estado SSL = 0x2111; em que = 0x2002; ret = 0xffffffff
[06/06/15 17:56:34.307 UTC 4ff 10205] ret_type_string=desconhecido
[06/06/15 17:56:34.307 UTC 500 10205] ret_desc_string=desconhecido
[06/06/15 17:56:34.307 UTC 501 10205] SSL_state_string=SSLv3 read client hello B
[06/06/15 17:56:34.307 UTC 502 10205] — retorna WANT_READ para conn ssl 590a6048
[06/06/15 17:56:34.307 UTC 503 10205] sslConnectionInit() êxito com o estado de conexão: Estado INIT, SSL: MANIPULAÇÃO
—Mais— ???????? ??????????[06/06/15 17:56:34.309 UTC 504 10205] doSSLRecvLoop: O handshake não foi concluído para conn 0
[06/06/15 17:56:34.309 UTC 505 10205] sslConnectionInit: SSL_do_handshake para conn ssl 590a6048, estado conn: Estado INIT, SSL: MANIPULAÇÃO
[06/06/15 17:56:34.309 UTC 506 10205] Estado SSL = 0x2111; em que = 0x2001; ret = 0x1
[06/06/15 17:56:34.309 UTC 507 10205] ret_type_string=desconhecido
[06/06/15 17:56:34.309 UTC 508 10205] ret_desc_string=desconhecido
[06/06/15 17:56:34.309 UTC 509 10205] SSL_state_string=SSLv3 read client hello B
[06/06/15 17:56:34.309 UTC 50a 10205] Estado SSL = 0x2130; em que = 0x2001; ret = 0x1
[06/06/15 17:56:34.309 UTC 50b 10205] ret_type_string=desconhecido
[06/06/15 17:56:34.309 UTC 50c 10205] ret_desc_string=desconhecido
[06/06/15 17:56:34.309 UTC 50d 10205] SSL_state_string=SSLv3 write server hello A
[06/06/15 17:56:34.310 UTC 50e 10205] Estado SSL = 0x2140; em que = 0x2001; ret = 0x1
[06/06/15 17:56:34.310 UTC 50f 10205] ret_type_string=desconhecido
[06/06/15 17:56:34.310 UTC 510 10205] ret_desc_string=desconhecido
[06/06/15 17:56:34.310 UTC 511 10205] SSL_state_string=SSLv3 write certificate A
[06/06/15 17:56:34.310 UTC 512 10205] Estado SSL = 0x2160; em que = 0x2001; ret = 0x1
[06/06/15 17:56:34.310 UTC 513 10205] ret_type_string=desconhecido
—Mais— ???????? ??????????[06/06/15 17:56:34.310 UTC 514 10205] ret_desc_string=desconhecido
[06/06/15 17:56:34.310 UTC 515 10205] SSL_state_string=SSLv3 write certificate request A
[06/06/15 17:56:34.310 UTC 516 10205] Estado SSL = 0x2100; em que = 0x2001; ret = 0x1
[06/06/15 17:56:34.310 UTC 517 10205] ret_type_string=desconhecido
[06/06/15 17:56:34.310 UTC 518 10205] ret_desc_string=desconhecido
[06/06/15 17:56:34.310 UTC 519 10205] SSL_state_string=SSLv3 flush data
[06/06/15 17:56:34.310 UTC 51a 10205] Estado SSL = 0x2180; em que = 0x2002; ret = 0xffffffff
[06/06/15 17:56:34.310 UTC 51b 10205] ret_type_string=desconhecido
[06/06/15 17:56:34.310 UTC 51c 10205] ret_desc_string=desconhecido
[06/06/15 17:56:34.310 UTC 51d 10205] SSL_state_string=SSLv3 read client certificate A
[06/06/15 17:56:34.310 UTC 51e 10205] — retorna WANT_READ para conn ssl 590a6048
[06/06/15 17:56:34.610 UTC 51f 10205] doSSLRecvLoop: O handshake não foi concluído para conn 0
[06/06/15 17:56:34.610 UTC 520 10205] sslConexãoInicialização: SSL_do_handshake para conn ssl 590a6048, estado conn: Estado INIT, SSL: MANIPULAÇÃO
[06/06/15 17:56:34.616 UTC 521 10205] Validação de certificado de peer concluída para o conn ssl 590a6048, lista de autenticação de chamada.
[06/06/15 17:56:34.622 UTC 522 10205] Aulist authentication successfully for conn ssl 590a6048
??????????? ??????????[06/06/15 17:56:35.616 UTC 523 10205] Peer validado em relação à AuthList
[06/06/15 17:56:35.616 UTC 524 10205] Estado SSL = 0x2180; em que = 0x2001; ret = 0x1
[06/06/15 17:56:35.616 UTC 525 10205] ret_type_string=desconhecido
[06/06/15 17:56:35.616 UTC 526 10205] ret_desc_string=desconhecido
[06/06/15 17:56:35.616 UTC 527 10205] SSL_state_string=SSLv3 read client certificate A
[06/06/15 17:56:35.633 UTC 528 10205] Estado SSL = 0x2190; em que = 0x2001; ret = 0x1
[06/06/15 17:56:35.633 UTC 529 10205] ret_type_string=desconhecido
[06/06/15 17:56:35.633 UTC 52a 10205] ret_desc_string=desconhecido
[06/06/15 17:56:35.633 UTC 52b 10205] SSL_state_string=SSLv3 read client key exchange A
[06/06/15 17:56:35.635 UTC 52c 10205] Estado SSL = 0x21a0; em que = 0x2001; ret = 0x1
[06/06/15 17:56:35.636 UTC 52d 10205] ret_type_string=desconhecido
[06/06/15 17:56:35.636 UTC 52e 10205] ret_desc_string=desconhecido
[06/06/15 17:56:35.636 UTC 52f 10205] SSL_state_string=SSLv3 read certificate verify A
[06/06/15 17:56:35.636 UTC 530 10205] Estado SSL = 0x21c0; em que = 0x2001; ret = 0x1
[06/06/15 17:56:35.636 UTC 531 10205] ret_type_string=desconhecido
[06/06/15 17:56:35.636 UTC 532 10205] ret_desc_string=desconhecido
—Mais— ???????? ??????????[06/06/15 17:56:35.636 UTC 533 10205] SSL_state_string=SSLv3 lido pronto A
[06/06/15 17:56:35.636 UTC 534 10205] Estado SSL = 0x21d0; em que = 0x2001; ret = 0x1
[06/06/15 17:56:35.636 UTC 535 10205] ret_type_string=desconhecido
[06/06/15 17:56:35.636 UTC 536 10205] ret_desc_string=desconhecido
[06/06/15 17:56:35.636 UTC 537 10205] SSL_state_string=SSLv3 write change cipher spec A
[06/06/15 17:56:35.636 UTC 538 10205] Estado SSL = 0x21e0; em que = 0x2001; ret = 0x1
[06/06/15 17:56:35.636 UTC 539 10205] ret_type_string=desconhecido
[06/06/15 17:56:35.636 UTC 53a 10205] ret_desc_string=desconhecido
[06/06/15 17:56:35.636 UTC 53b 10205] SSL_state_string=SSLv3 write concluído A
[06/06/15 17:56:35.637 UTC 53c 10205] Estado SSL = 0x2100; em que = 0x2001; ret = 0x1
[06/06/15 17:56:35.637 UTC 53d 10205] ret_type_string=desconhecido
[06/06/15 17:56:35.637 UTC 53e 10205] ret_desc_string=desconhecido
[06/06/15 17:56:35.637 UTC 53f 10205] SSL_state_string=SSLv3 flush data
[06/06/15 17:56:35.637 UTC 540 10205] Estado SSL = 0x3; em que = 0x20; ret = 0x1
[06/06/15 17:56:35.637 UTC 541 10205] ret_type_string=desconhecido
[06/06/15 17:56:35.637 UTC 542 10205] ret_desc_string=desconhecido
[06/06/15 17:56:35.637 UTC 543 10205] SSL_state_string=A negociação SSL foi concluída com êxito
[06/06/15 17:56:35.637 UTC 544 10205] Estado SSL = 0x3; em que = 0x2002; ret = 0x1
—Mais— ???????? ??????????[06/06/15 17:56:35.637 UTC 545 10205] ret_type_string=desconhecido
[06/06/15 17:56:35.637 UTC 546 10205] ret_desc_string=desconhecido
[06/06/15 17:56:35.637 UTC 547 10205] SSL_state_string=A negociação SSL foi concluída com êxito
[06/06/15 17:56:35.637 UTC 548 10205] SSL_do_handshake() foi bem sucedido para o conn ssl 590a6048
[06/06/15 17:56:35.637 UTC 549 10205] Êxito na conexão NMSP! para conn 0