Udostępnij za pośrednictwem


O caso do problema no Identificador de Status de conexão de Rede (NCSI) do Windows quando conectado à rede Wireless

Autor: Eduardo Gaeta / Revisão Técnica: Daniel Mauser

Introdução:

Quando uma máquina Windows se conecta a uma rede, há duas tecnologias, de locais de rede (NLA) e Indicador de Status de conexão de rede (NCSI); que a máquina usa para identificar automaticamente a rede ele está se conectando, e se tem ou não tem acesso à Internet. Neste artigo iremos falar especificamente sobre Indicador de Status de conexão de rede (NCSI). Para maiores informações sobre o funcionamento de ambas as tecnologias verifique o blog - https://blogs.technet.com/b/networking/archive/2012/12/20/the-network-connection-status-icon.aspx

Problema:

Identificador de Status de conexão de Rede (NCSI) não funciona quando conectado à rede Wireless.

  • Quando conectamos à estação em uma rede Wireless, por alguma razão, a mesma não consegue validar o acesso à internet;

  • O erro acontece somente em redes Wirelees, para redes cabeadas o funcionamento é normal

  • Para validar o acesso à internet, a estação abre a seguinte página no Internet Explorer - https://www.msn.com/th-th/?ocid=wispr

  • Todas as vezes que a estação reconecta à rede Wireless, a validação ocorre , causando invoveniente para os usuários;

  • Enquanto a página não é aberta, a ícone da conexão Wireless fica com uma exclamação amarela (Sem acesso à internet).   Depois de aberta a página, a exclamação desaparece;

  • Notamos que quando a estação esta conectada à rede cabeada, essa validação ocorre através do servidor proxy, e quando a rede utilizada é a Wireless, a validação é feita diretamente pelo firewall.

Nos traces de rede, podemos ver os seguintes comportamentos:

1. Cenário saudável – estação conectada à rede cabeada:

Query DNS para o NCSI:

39 17:18:44.8345014 0.0000000 <IP estação>  <DNS Server> DNS www.msftncsi.com DNS:QueryId = 0xF59E, QUERY (Standard query), Query for www.msftncsi.com of type Host Addr on class Internet

Resposta da Query para o NCSI:

40 17:18:44.8378217 0.0033203 <DNS Server>  <IP estação> DNS www.msftncsi.com DNS:QueryId = 0xF59E, QUERY (Standard query), Response - Success, 190.98.140.137, 190.98.140.123 ...

 

A estação tenta se conectar ao IP público do NCSI sem sucesso. Isso é esperado, visto que as conexões HTTP devem utilizar o proxy:

41 17:18:44.8383699 0.0005482 <IP estação> 190.98.140.137 TCP TCP:Flags=......S., SrcPort=61908, DstPort=HTTP(80), PayloadLen=0, Seq=3799356614, Ack=0, Win=8192 ( Negotiating scale factor 0x8 ) = 8192

170 17:18:47.8461813 3.0078114 <IP estação> 190.98.140.137 TCP TCP:[SynReTransmit #41]Flags=......S., SrcPort=61908, DstPort=HTTP(80), PayloadLen=0, Seq=3799356614, Ack=0, Win=8192 ( Negotiating scale factor 0x8 ) = 8192

414 17:18:53.8597024 3.6070138 <IP estação> 190.98.140.137 TCP TCP:[SynReTransmit #41]Flags=......S., SrcPort=61908, DstPort=HTTP(80), PayloadLen=0, Seq=3799356614, Ack=0, Win=8192 ( Negotiating scale factor 0x8 ) = 8192

 

Agora nós vemos que a estação tenta acessar o endereço utilizando o proxy:

345 17:18:50.2258807 2.3796994 <estação> proxy.contoso.local HTTP HTTP:Request, GET https://ipv6.msftncsi.com/ncsi.txt

346 17:18:50.2259196 0.0000389 <estação> proxy.contoso.local  HTTP HTTP:Request, GET https://www.msftncsi.com/ncsi.txt

347 17:18:50.2310621 0.0051425 proxy.contoso.local  <estação> HTTP HTTP:Response, HTTP/1.1, Status: Service unavailable, URL: https://ipv6.msftncsi.com/ncsi.txt

352 17:18:50.2526886 0.0216265 proxy.contoso.local  <estação> HTTP HTTP:Response, HTTP/1.1, Status: Ok, URL: https://www.msftncsi.com/ncsi.txt

  

2. Cenário com problemas – estação conectada à rede Wireless:

Query DNS para o NCSI:

204 11:38:51 AM 11/16/2015 0.0000000 <IP estação>  <DNS Server>  DNS DNS:QueryId = 0x3C86, QUERY (Standard query), Query for www.msftncsi.com of type Host Addr on class Internet {DNS:53, UDP:52, IPv4:22}

Resposta da Query para o NCSI:

274 11:38:53 AM 11/16/2015 0.5774852 <DNS Server>   <IP estação> DNS DNS:QueryId = 0x3C86, QUERY (Standard query), Response - Success, 190.98.146.25, 190.98.146.19 ... {DNS:53, UDP:52, IPv4:22}

 

A estação, conforme quando conectada à rede cabeada, envia o "HTTP GET" diretamente ao endereço público do NCSI - 190.98.146.25:

332 11:38:53 AM 11/16/2015 0.4822906 <IP estação> 190.98.146.25 HTTP HTTP:Request, GET /ncsi.txt {HTTP:153, TCP:118, IPv4:117}

Porém neste cenário ele recebe uma resposta:

397 11:38:55 AM 11/16/2015 1.4469217 190.98.146.25 <IP estação> HTTP HTTP:Response, HTTP/1.1, Status: Temporary Redirect, URL: /ncsi.txt {HTTP:153, TCP:118, IPv4:117}

 

Detalhes da Resposta:

Frame: Number = 397, Captured Frame Length = 305, MediaType = WiFi

+ WiFi: [Unencrypted QoS Data] F..R..P, (I) RSSI = -252 dBm, Rate = 24.0 Mbps

+ LLC: Unnumbered(U) Frame, Command Frame, SSAP = SNAP(Sub-Network Access Protocol), DSAP = SNAP(Sub-Network Access Protocol)

+ Snap: EtherType = Internet IP (IPv4), OrgCode = XEROX CORPORATION

+ Ipv4: Src = 190.98.146.25, Dest = <DNS Server>, Next Protocol = TCP, Packet ID = 42722, Total IP Length = 239

- Tcp: Flags=...AP..F, SrcPort=HTTP(80), DstPort=61451, PayloadLen=199, Seq=2181436018 - 2181436218, Ack=3442973846, Win=24862 (scale factor 0x5) = 795584

- Http: Response, HTTP/1.1, Status: Temporary Redirect, URL: /ncsi.txt

ProtocolVersion: HTTP/1.1

StatusCode: 307, Temporary Redirect

Reason: Temporary Redirect

Location: https://<IP do Checkpoint>/UserCheck/PortalMain?IID=804DF151-2279-2E5C-6133-AFECFF0CCE84&origUrl=aHR0cDovL3d3dy5tc2Z0bmNzaS5jb20vbmNzaS50eHQ

Connection: close

HeaderEnd: CRLF

 

6 segundos depois, a estação envia a requisição para o proxy conforme supostamente deveria acontecer, mas ja é tarde:

673 11:39:01 AM 11/16/2015 6.6398035 <estação> proxy.contoso.local HTTP HTTP:Request, GET https://www.msftncsi.com/ncsi.txt {HTTP:341, TCP:334, IPv4:242}

693 11:39:02 AM 11/16/2015 0.5544214 proxy.contoso.local <estação> HTTP HTTP:Response, HTTP/1.1, Status: Ok, URL: https://www.msftncsi.com/ncsi.txt {HTTP:341, TCP:334, IPv4:242}

701 11:39:02 AM 11/16/2015 0.0011508 <estação> proxy.contoso.local HTTP HTTP:Request, GET https://ipv6.msftncsi.com/ncsi.txt {HTTP:350, TCP:333, IPv4:242} 

Causa Raiz do Problema:

O redirecionamento para a URL - https://<IP_do_Checkpoint>/UserCheck/PortalMain?IID=804DF151-2279-2E5C-6133-AFECFF0CCE84&origUrl=aHR0cDovL3d3dy5tc2Z0bmNzaS5jb20vbmNzaS50eHQ

Pesquisando na internet, identificamos que a URL mencionada acima esta relacionada à uma resposta do Firewall da Checkpoint

+++ How to customize and localize the UserCheck portal - https://supportcenter.checkpoint.com/supportcenter/portal?eventSubmit_doGoviewsolutiondetails=&solutionid=sk83700

 

Solução do Problema:

Garantir que o tráfego da estação seja bloqueado quando a mesma tentar acessar o endereço público do NCSI, ao invés de redirecionar o tráfego para à página do Firewall (UserCheck portal). Assim como acontece quando a estação esta conectada à rede cabeada.

Referência:

The Network Connection Status Icon

https://blogs.technet.com/b/networking/archive/2012/12/20/the-network-connection-status-icon.aspx