Guía de administración del sistema: servicios IP

Supervisión del estado de la red con el comando netstat

El comando netstat genera visualizaciones que muestran el estado de la red y estadísticas de protocolo. El estado de los protocolos TCP, SCTP y los puntos finales de UDP puede visualizarse en formato de tabla. También puede visualizarse información sobre la tabla de enrutamiento e información de interfaces.

El comando netstat muestra varios tipos de datos de red, según la opción de línea de comandos que se haya seleccionado. Estas visualizaciones son sumamente útiles para administrar sistemas. A continuación se muestra la sintaxis básica del comando netstat:

netstat [-m] [-n] [-s] [-i | -r] [-f familia_direcciones]

En esta sección se describen las opciones que más se usan del comando netstat. Para obtener más información sobre todas las opciones de netstat, consulte la página de comando man netstat(1M).

ProcedureCómo visualizar estadísticas por protocolo

La opción netstat -s muestra estadísticas de los protocolos UDP, TCP, SCTP, ICMP e IP.


Nota –

Puede utilizar su cuenta de usuario de Oracle Solaris para obtener salidas del comando netstat.


  1. Visualice el estado del protocolo.


    $ netstat -s
    

Ejemplo 8–5 Estadísticas de protocolos de red

En el ejemplo siguiente se muestra la salida del comando netstat - s. Se han truncado algunas partes. La salida puede indicar áreas en que el protocolo tiene problemas. Por ejemplo, la información estadística de ICMPv4 e ICMPv6 puede indicar dónde ha encontrado errores el protocolo ICMP.


RAWIP
        rawipInDatagrams    =  4701     rawipInErrors       =     0
        rawipInCksumErrs    =     0     rawipOutDatagrams   =     4
        rawipOutErrors      =     0

UDP
        udpInDatagrams      = 10091     udpInErrors         =     0
        udpOutDatagrams     = 15772     udpOutErrors        =     0

TCP     tcpRtoAlgorithm     =     4     tcpRtoMin           =   400
        tcpRtoMax           = 60000     tcpMaxConn          =    -1
        .
        .
        tcpListenDrop       =     0     tcpListenDropQ0     =     0
        tcpHalfOpenDrop     =     0     tcpOutSackRetrans   =     0

IPv4    ipForwarding        =     2     ipDefaultTTL        =   255
        ipInReceives        =300182     ipInHdrErrors       =     0
        ipInAddrErrors      =     0     ipInCksumErrs       =     0
        .
        .
        ipsecInFailed       =     0     ipInIPv6            =     0
        ipOutIPv6           =     3     ipOutSwitchIPv6     =     0

IPv6    ipv6Forwarding      =     2     ipv6DefaultHopLimit =   255
        ipv6InReceives      = 13986     ipv6InHdrErrors     =     0
        ipv6InTooBigErrors  =     0     ipv6InNoRoutes      =     0
        .
        .
        rawipInOverflows    =     0     ipv6InIPv4          =     0
 
       ipv6OutIPv4         =     0     ipv6OutSwitchIPv4   =     0

ICMPv4  icmpInMsgs          = 43593     icmpInErrors        =     0
        icmpInCksumErrs     =     0     icmpInUnknowns      =     0
        .
        .
        icmpInOverflows     =     0

ICMPv6  icmp6InMsgs         = 13612     icmp6InErrors       =     0
        icmp6InDestUnreachs =     0     icmp6InAdminProhibs =     0
        .
        .
        icmp6OutGroupQueries=     0     icmp6OutGroupResps  =     2
        icmp6OutGroupReds   =     0

IGMP:
      12287 messages received
          0 messages received with too few bytes
          0 messages received with bad checksum
      12287 membership queries received
SCTP  sctpRtoAlgorithm     =  vanj    
      sctpRtoMin           =  1000 
      sctpRtoMax           = 60000
      sctpRtoInitial       =  3000
      sctpTimHearBeatProbe =     2
      sctpTimHearBeatDrop  =     0
      sctpListenDrop       =     0
      sctpInClosed         =     0 

ProcedureCómo visualizar el estado de protocolos de transporte

El comando netstat permite visualizar información sobre el estado de los protocolos de transporte. Para obtener más información, consulte la página de comando man netstat(1M).

  1. Visualice el estado de los protocolos de transporte TCP y SCTP en un sistema.


    $ netstat
    
  2. Visualice el estado de un determinado protocolo de transporte en un sistema.


    $ netstat -P transport-protocol
    

    Los valores de la variable protocolo_transporte son tcp, sctp o udp.


Ejemplo 8–6 Visualización del estado de los protocolos de transporte TCP y SCTP

En este ejemplo se muestra la salida del comando netstat básico. Sólo se muestra información de IPv4.


$ netstat

TCP: IPv4
   Local Address     Remote Address    Swind Send-Q  Rwind Recv-Q      State
----------------- -------------------- ----- ------  ----- ------     -------
lhost-1.login      abc.def.local.Sun.COM.980 49640      0     49640    0 ESTABLISHED
lhost-1.login      ghi.jkl.local.Sun.COM.1020 49640     1     49640    0 ESTABLISHED
remhost-1.1014     mno.pqr.remote.Sun.COM.nfsd 49640    0     49640    0 TIME_WAIT
SCTP:                  
Local Address    Remote Address  Swind  Send-Q  Rwind  Recv-Q StrsI/O  State 
---------------- --------------  -----  ------ ------ ------  ------   -------
 *.echo            0.0.0.0            0       0 102400      0   128/1   LISTEN
 *.discard         0.0.0.0            0       0 102400      0   128/1   LISTEN
 *.9001            0.0.0.0            0       0 102400      0   128/1   LISTEN


Ejemplo 8–7 Visualización del estado de un determinado protocolo de transporte

En este ejemplo se muestran los resultados que se obtienen al especificar la opción -P del comando netstat.


$ netstat -P tcp
   
TCP: IPv4
   Local Address     Remote Address    Swind Send-Q  Rwind Recv-Q      State
----------------- -------------------- ----- ------  ----- ------     -------
lhost-1.login      abc.def.local.Sun.COM.980 49640      0     49640    0 ESTABLISHED
lhost.login        ghi.jkl.local.Sun.COM.1020 49640     1     49640    0 ESTABLISHED
remhost.1014       mno.pqr.remote.Sun.COM.nfsd 49640    0     49640    0 TIME_WAIT

TCP: IPv6
 Local Address    Remote Address        Swind Send-Q Rwind Recv-Q   State If 
---------------- ---------------------- ------ ----- ------ ----------- -----
localhost.38983   localhost.32777       49152      0 49152      0 ESTABLISHED      
localhost.32777   localhost.38983       49152      0 49152      0 ESTABLISHED      
localhost.38986   localhost.38980       49152      0 49152      0 ESTABLISHED      

ProcedureCómo visualizar el estado de interfaces de red

La opción i del comando netstat muestra el estado de las interfaces de red que se configuran en el sistema local. Esta opción permite determinar la cantidad de paquetes que transmite un sistema y que recibe cada red.

  1. Visualice el estado de las interfaces de red.


    $ netstat -i
    

Ejemplo 8–8 Visualización del estado de las interfaces de red

En el ejemplo siguiente se muestra el estado de un flujo de paquetes IPv4 e IPv6 a través de las interfaces del host.

Por ejemplo, la cantidad de paquetes de entrada (Ipkts) que aparece en un servidor puede aumentar cada vez que un cliente intenta iniciar, mientras que la cantidad de paquetes de salida (Opkts) no se modifica. De esta salida puede inferirse que el servidor está viendo los paquetes de solicitud de inicio del cliente. Sin embargo, parece que el servidor no sabe responder. Esta confusión podría deberse a una dirección incorrecta en la base de datos hosts, ipnodes, o ethers.

No obstante, si la cantidad de paquetes de entrada permanece invariable, el equipo no ve los paquetes. De este resultado puede inferirse otra clase de error, posiblemente un problema de hardware.


Name  Mtu  Net/Dest      Address        Ipkts  Ierrs Opkts  Oerrs Collis Queue 
lo0   8232 loopback      localhost      142    0     142    0     0      0     
hme0  1500 host58        host58        1106302 0     52419  0     0      0     

Name  Mtu  Net/Dest      Address                    Ipkts  Ierrs Opkts  Oerrs Collis
lo0   8252 localhost     localhost                   142    0     142    0     0     
hme0  1500 fe80::a00:20ff:feb9:4c54/10 fe80::a00:20ff:feb9:4c54 1106305 0 52422 0  0

ProcedureCómo visualizar el estado de los sockets

Mediante la opción -a del comando netstat se puede visualizar el estado de los sockets en el host local.

  1. Escriba lo siguiente para visualizar el estado de los sockets y las entradas de tabla de enrutador:

    Puede emplear su cuenta de usuario para ejecutar esta opción de netstat.


    % netstat -a  
    

Ejemplo 8–9 Visualización de todos los sockets y las entradas de tabla de enrutador

La salida del comando netstat -a muestra estadísticas exhaustivas. En el ejemplo siguiente se muestran partes de una salida típica de netstat -a.


UDP: IPv4
   Local Address         Remote Address     State
-------------------- -------------------- -------
      *.bootpc                              Idle
host85.bootpc                               Idle
      *.*                                   Unbound
      *.*                                   Unbound
      *.sunrpc                              Idle
      *.*                                   Unbound
      *.32771                               Idle
      *.sunrpc                              Idle
      *.*                                   Unbound
      *.32775                               Idle
      *.time                                Idle
       .
       .
      *.daytime                             Idle
      *.echo                                Idle
      *.discard                             Idle
      
UDP: IPv6
   Local Address                     Remote Address                   State      If  
--------------------------------- --------------------------------- ---------- -----
      *.*                                                           Unbound   
      *.*                                                           Unbound   
      *.sunrpc                                                      Idle      
      *.*                                                           Unbound   
      *.32771                                                       Idle      
      *.32778                                                       Idle      
      *.syslog                                                      Idle      
      .
      .
TCP: IPv4
   Local Address        Remote Address    Swind Send-Q Rwind Recv-Q  State
-------------------- -------------------- ----- ------ ----- ------ -------
      *.*                  *.*                0      0 49152      0 IDLE
localhost.4999             *.*                0      0 49152      0 LISTEN
      *.sunrpc             *.*                0      0 49152      0 LISTEN
      *.*                  *.*                0      0 49152      0 IDLE
      *.sunrpc             *.*                0      0 49152      0 LISTEN
      .
      .
      *.printer            *.*                0      0 49152      0 LISTEN
      *.time               *.*                0      0 49152      0 LISTEN
      *.daytime            *.*                0      0 49152      0 LISTEN
      *.echo               *.*                0      0 49152      0 LISTEN
      *.discard            *.*                0      0 49152      0 LISTEN
      *.chargen            *.*                0      0 49152      0 LISTEN
      *.shell              *.*                0      0 49152      0 LISTEN
      *.shell              *.*                0      0 49152      0 LISTEN
      *.kshell             *.*                0      0 49152      0 LISTEN
      *.login  
       .
       .
            *.*                0      0 49152      0 LISTEN
   *TCP: IPv6
 Local Address            Remote Address        Swind Send-Q Rwind Recv-Q   State If
----------------------- ----------------------- ----- ------ ----- ------    ----
   *.*                         *.*                0      0 49152      0      IDLE
   *.sunrpc                    *.*                0      0 49152      0      LISTEN
   *.*                         *.*                0      0 49152      0      IDLE
   *.32774                     *.*                0      0 49152

ProcedureCómo visualizar el estado de las transmisiones de paquetes de un determinado tipo de dirección

Utilice la opción -f del comando netstat para ver estadísticas relacionadas con transmisiones de paquetes de una determinada familia de direcciones.

  1. Visualice estadísticas de transmisiones de paquetes de IPv4 o IPv6.


    $ netstat -f inet  |  inet6
    

    Para ver información sobre transmisiones de IPv4, escriba inet como argumento de netstat -f. Utilice inet6 como argumento de netstat -f para ver información de IPv6.


Ejemplo 8–10 Estado de transmisión de paquetes de IPv4

En el ejemplo siguiente se muestra la salida del comando netstat - f inet.


TCP: IPv4
   Local Address        Remote Address    Swind Send-Q Rwind Recv-Q  State
-------------------- -------------------- ----- ------ ----- ------ -------
host58.734         host19.nfsd       49640      0 49640      0 ESTABLISHED
host58.38063       host19.32782      49640      0 49640      0 CLOSE_WAIT
host58.38146       host41.43601      49640      0 49640      0 ESTABLISHED
host58.996         remote-host.login 49640      0 49206      0 ESTABLISHED


Ejemplo 8–11 Estado de transmisión de paquetes de IPv6

En el ejemplo siguiente se muestra la salida del comando netstat - f inet6.


TCP: IPv6
 Local Address          Remote Address        Swind Send-Q Rwind Recv-Q   State    If
------------------ ------------------------- ----- ------ ----- ------ --------- -----
localhost.38065         localhost.32792       49152   0 49152      0    ESTABLISHED  
localhost.32792         localhost.38065       49152   0 49152      0    ESTABLISHED 
localhost.38089         localhost.38057       49152   0 49152      0    ESTABLISHED 

ProcedureCómo visualizar el estado de rutas conocidas

La opción -r del comando netstat muestra la tabla de rutas del host local. En esta tabla se muestra el estado de todas las rutas de las que el host tiene conocimiento. Esta opción de netstat puede ejecutarse desde la cuenta de usuario.

  1. Visualice la tabla de rutas IP.


    $ netstat -r
    

Ejemplo 8–12 Salida de tabla de rutas con el comando netstat

En el ejemplo siguiente se muestra la salida del comando netstat - r.


Routing Table: IPv4
  Destination           Gateway           Flags  Ref   Use   Interface
-------------------- -------------------- ----- ----- ------ ---------
host15               myhost               U         1  31059  hme0
10.0.0.14            myhost               U         1      0  hme0
default              distantrouter        UG        1      2  hme0
localhost            localhost            UH        42019361  lo0

Routing Table: IPv6
  Destination/Mask            Gateway                   Flags Ref   Use   If  
--------------------------- --------------------------- ----- --- ------ -----
2002:0a00:3010:2::/64    2002:0a00:3010:2:1b2b:3c4c:5e6e:abcd U  1      0 hme0:1
fe80::/10                fe80::1a2b:3c4d:5e6f:12a2    U       1     23 hme0 
ff00::/8                 fe80::1a2b:3c4d:5e6f:12a2    U       1      0 hme0 
default                  fe80::1a2b:3c4d:5e6f:12a2    UG      1      0 hme0 
localhost                localhost                   UH      9  21832 lo0 

La tabla siguiente describe el significado de los parámetros de salida de pantalla del comando netstat —r.

Parámetro 

Descripción 

Destination

Destination/Mask

Indica el host que es el punto final de destino de la ruta. La tabla de ruta IPv6 muestra el prefijo de un punto final de túnel 6to4 (2002:0a00:3010:2::/64) como punto final de destino de la ruta.

Gateway

Especifica el portal que se usa para enviar paquetes. 

Flags

Indica el estado actual de la ruta. El indicador U especifica que la ruta está activa. El indicador G especifica que la ruta es a un portal.

Use

Muestra la cantidad de paquetes enviados. 

Interface

Indica la interfaz concreta del host local que es el punto final de origen de la transmisión.