sábado, 30 de agosto de 2014

netsh–Una manera simple de hacer network trace sin instalar nada en nuestros ambientes de Sharepoint

A partir de Windows 7/2008R2 vino una tool llamada netsh para realizar traces de nuestras placas de red (entre otras cosas de este comando).

http://technet.microsoft.com/en-us/library/dd878517%28v=ws.10%29.aspx

Aplica a: Windows Server 2012|2012 R2, Windows 8|8.1, Windows Server 2008R2, Windows 7

Probado sobre: Sharepoint 2013 SP1, CU agosto, Windows Server 2012, Azure VM (A6 instance)

Algunas ventajas de este comando:

  • No instalo nada en mis servers, ya viene incluido dentro de mi SO
  • Permite tracing persistentes, esto es, incluso con reboots, el trace sigue funcionando
  • Nos permite enfocar el trace en un escenario específico (Ej: dns, lan, dhcp, etc)
  • Los paquetes generados del trace (ETL) pueden ser abiertos por Wireshark, Network Monitor o Message Analyzer
  • Podemos ver reportes rápidos del trace (.cab)

Primero vemos que escenarios (conjunto de providers de trace) tenemos:

netsh trace show scenarios

image

Si nos interesa algún escenarios específico, podemos ejecutar

netsh trace show scenario lan

image

Pueden tener más providers con este comando: netsh trace show providers >c:\providers.txt

Revisando este archivo, veo que hay providers de Sharepoint

{0119F589-72D7-4EC3-ADF5-1F082061E832}    Microsoft-SharePoint Products-Web Content Management
{137DEDCF-DAEC-4E65-A6BC-02212AECD32F}    Microsoft-SharePoint Products-Office Automation Services
{1C415899-58B3-4BFC-9236-105E7FD38719}    Microsoft-SharePoint Products-SharePoint Foundation Search
{252BB337-A7F5-413F-9B03-F36FA4F18EF8}    Microsoft-SharePoint Products-Business Connectivity Services
{278E40D0-FDAA-4EB4-AB6B-9E0AD6BDBE79}    Microsoft-SharePoint Products-Excel Services Application
{38BB51E9-CF75-40CA-92CC-49E22F935F65}    Microsoft-SharePoint Products-Visio Graphics Service
{4CB0A010-80C2-4CDF-BB9D-8B7E923FAC8F}    Microsoft-SharePoint Products-Access Services 2010
{4F33CA13-30A4-4AF2-AEB7-DE59AA6C2563}    Microsoft-SharePoint Products-Services Infrastructure
{5311B1CA-DDE7-408B-A097-F7A1BF5BB170}    Microsoft-SharePoint Products-Access Services
{6FB10E7F-F8EF-44A7-9678-25744648F92C}    Microsoft-SharePoint Products-Document Conversions
{6FB7E0CD-52E7-47DD-997A-241563931FC2}    Microsoft-SharePoint Products-SharePoint Foundation
{73541538-24DA-4282-AE1C-3A6321C23FB8}    Microsoft-SharePoint Products-Secure Store Service
{8B3DDD3D-2B09-4669-BF81-E2D6921FEEEA}    Microsoft-SharePoint Products-SharePoint Portal Server
{A3499A35-DB34-421A-94FC-4D76522BEAB3}    Microsoft-SharePoint Products-InfoPath Forms Services
{A7CD5295-CBBA-4DCA-8B67-D5BE061B6FAE}    Microsoft-SharePoint Products-PerformancePoint Service
{B9499A35-DB34-421A-94FC-5A8DBBBC4228}    Microsoft-SharePoint Products-Education
{BAFFAE3D-E80A-4219-B41F-5760B7CEC473}    Microsoft-SharePoint Products-Shared
{C33B4F2A-64E9-4B39-BD72-F0C2F27A619A}    Microsoft-SharePoint Products-SharePoint Server
{C544CCCA-DCAA-416D-B91B-E639B8B28589}    Microsoft-SharePoint Products-Word Automation Services
{C8263AFE-83A5-448C-878C-1E5F5D1C4252}    Microsoft-SharePoint Products-SharePoint Server Search
{C8A9829C-C62B-46CD-AACF-95788DE23730}    Microsoft-SharePoint Products-SharePoint Translation Services
{D191778A-DFE4-11DE-A777-F8AD55D89593}    SharePoint Express
{E0E675CD-EA07-450D-9841-786EAC9A9812}    Microsoft-SharePoint Products-eApproval
{F78D66EC-09A9-42A2-AC7A-5EE2062DE7E4}    Microsoft-SharePoint Products-Document Management Server

Si yo quisiera ver un provider específico, ejecuto lo siguiente:

netsh trace show provider name="Microsoft-SharePoint Products-SharePoint Portal Server"

image

Estos providers nos permite enforcarnos en un trace espcífico, ej: search de Sharepoint

Ej: netsh trace start persistent=yes capture=yes tracefile=c:\temp\nettrace-search.etl" provider="Microsoft-SharePoint Products-SharePoint Server Search"

En este post, no me voy a enfocar en un escenario específico, sólo haré un trace de todo el tráfico del servidor de Sharepoint

Para ello ejecuto el siguiente comando:

netsh trace start persistent=yes capture=yes tracefile=C:\Temp\nettrace-sharepoint.etl

recuerda revisar que tengas espacio suficiente en el directorio. Por default usará 250 MB.

Acá tenés todos los parámetros del comando: http://technet.microsoft.com/en-us/library/dd878517%28v=ws.10%29.aspx#bkmk_traceStart

http://msdn.microsoft.com/en-us/library/windows/desktop/dd569142%28v=vs.85%29.aspx

Considera en principio los siguientes: level, maxSize

image

image

Ahora navego un poco el sitio de Sharepoint, y después de 10 minutos ejecuto el siguiente comando para detenerlo.

netsh trace stop

image

Veo que se generaron los dos archivos

image

Si yo ingreso al archivo .cab, veo un montón de archivos.

image

Si abro el archivo report.html (selecciona todos los files –> extract), nos muestra un montón de información del trace

image

Si selecciono un item, por ejemplo “DNS Information” veo más info

image

Los que nos importa es ver el archivo .etl con alguna tool de red. Exporta tu archivo .etl a tu máquina, y abre el archivo con Wireshark, Message Analyzer o Network Monitor

Por ejemplo mediante Message Analyzer (Browse)

image

Después selecciono Analysis Grid/Sequence Match

image

Veo el diagnóstico de los paquetes de red

image

Ej: veo 3 segmentos perdidos

Si cambio la vista “Analysis Grid”

image

Veo todos los paquetes del trace

image

Si yo aplico un filtro (tcp.port==80)

image

Si yo le aplico otro filtro (add destination to filter)

image

y aplico el filtro (cambia or por and)

image

Veo lo que me interesaba, filtrar los paquetes relacionados a mi sitio de Sharepoint

image

Cómo pueden ver tengo un montón de paquetes con status 401

image

Si yo me enfoco en un message number (648), veo que hubo dos paquetes en esta operación

image

Message Number 648: mi solicitud al Sharepoint montado sobre Azure

image

Algunos parámetros útiles del message number:

Method: Get

Host: chrissp2013dev.cloudpapp.net

Referer Url y User-Agent

image

Message Number 649: la respuesta del servidor de Sharepoint

image

Algunos parámetros útiles del message number:

StatusCode: 401 (unauthorized)

MicrosoftSharePointTeamServices: 15.0.0.4551 (es la versión de Sharepoint que está corriendo sobre Azure IaaS)

request-id o SPRequestGuid: 9094b39c-ee71-007a-0000-011f7b37ee10 (es el GUID asociado en los ULS logs)

Si yo reviso los logs mediante ULS Viewer, veo la solicutud

image

SPIisLatency: 0 (es el queue time del IIS antes de pasarle la solicitud a Sharepoint)image
SPRequestDuration: 3 (es el tiempo que tardo Sharepoint en procesar la solicitud )

La misma información la pueden procesar con Wireshark o Network Monitor.

Para mayor información sobre netsh, consulta este post, muy buen repaso por todos los componentes del trace: http://chentiangemalc.wordpress.com/2012/02/22/netsh-traceuse-it/

No hay comentarios:

Publicar un comentario