5.9. La orden netstat

netstat es una herramienta �til para comprobar la configuraci�n y actividad de su red. Se llama netstat, aunque se trata en realidad de una colecci�n de herramientas combinadas. Describiremos cada una de las funciones en las secciones siguientes.

5.9.1. Consulta de la tabla de encaminamiento

Si ejecuta netstat usando el indicador –r, puede ver la informaci�n de la tabla de encaminamiento del n�cleo igual que hemos venido haciendo hasta ahora con route. Para vstout, tendr�amos:
    # netstat -nr
    Kernel IP routing table
    Destination   Gateway      Genmask         Flags  MSS Window  irtt Iface
    127.0.0.1     *            255.255.255.255 UH       0 0          0 lo
    172.16.1.0    *            255.255.255.0   U        0 0          0 eth0
    172.16.2.0    172.16.1.1   255.255.255.0   UG       0 0          0 eth0

La opci�n -n hace que netstat imprima las direcciones IP en notaci�n de cuaterna en vez de usar los nombres simb�licos de las m�quinas o las redes. Esto es especialmente �til si pretende evitar consultas para esos nombres a trav�s de la red (por ejemplo consultas a un servidor DNS o NIS).

La segunda columna de la salida producida por netstat informa sobre las pasarelas a las que apunta la informaci�n de encaminamiento. Si una ruta no usa pasarela, el programa imprime un asterisco. La tercera columna imprime el nivel de “generalizaci�n” de una ruta. Dada una direcci�n IP para la que encontrar una ruta apropiada, el n�cleo recorre la tabla registro a registro haciendo un "AND" l�gico de la direcci�n y la m�scara de nivel de generalizaci�n antes de compararla con el destino que muestra dicho registro.

La cuarta columna muestra varios indicadores que describen la ruta:

Las siguientes tres columnas muestran el MSS, tama�o de ventana y irtt que ser�n aplicados a las conexiones TCP establecidas a trav�s de esta ruta. El MSS es el Tama�o M�ximo de Segmento, y es el tama�o del datagrama m�s grande que construir� el n�cleo para transmitir a trav�s de esta ruta. La Ventana es la cantidad m�xima de datos que el sistema aceptar� de una sola vez desde una m�quina remota. El acr�nimo irtt significa “tiempo inicial de ida y vuelta”, por sus iniciales en ingl�s. El protocolo TCP se asegura de que los datos han sido transmitidos de forma fiable entre m�quinas retransmitiendo un datagrama si �ste ha sido perdido. El protocolo TCP mantiene un contador de cu�nto tarda un datagrama en ser enviado a su destino, y el "recibo" que se recibe, de forma que sabe cu�nto esperar antes de suponer que un datagrama necesita retrasmitirse. Este proceso se llama tiempo de ida y vuelta. El tiempo de ida y vuelta inicial es el valor que el protocolo TCP usar� cuando se establezca una conexi�n por primera vez. Para la mayor�a de los tipos de redes, el valor por omisi�n es v�lido, pero para algunas redes lentas, especialmente ciertos tipos de redes de radiopaquetes de aficionados, el tiempo es demasiado peque�o y causa retransmisiones innecesarias. El valor de irtt puede ajustarse usando el comando route. Los campos a 0 significan que se est� usando el valor por omisi�n.

Para terminar, el �ltimo campo muestra el interfaz de red que usar� esta ruta.

5.9.2. Consulta de las estad�sticas de una interfaz

Cuando se invoca con el indicador –i netstat presenta las estad�sticas para las interfaces de red configuradas en ese momento. Si tambi�n se pasa la opci�n –a, mostrar� todas las interfaces presentes en el n�cleo, y no s�lo aquellas que hayan sido configuradas. En vstout, la salida para netstat ser�a algo as�:
    # netstat -i
    Kernel Interface table
    Iface MTU Met  RX-OK RX-ERR RX-DRP RX-OVR  TX-OK TX-ERR TX-DRP TX-OVR Flags
    lo      0   0   3185      0      0      0   3185      0      0      0 BLRU
    eth0 1500   0 972633     17     20    120 628711    217      0      0 BRU

Los campos MTU y Met muestran los valores actuales de MTU y de m�trica para esa interfaz. Las columnas RX y TX muestran cu�ntos paquetes han sido recibidos o transmitidos sin errores (RX-OK/TX-OK) o da�ados (RX-ERR/TX-ERR); cu�ntos fueron descartados (RX-DRP/TX-DRP); y cu�ntos se perdieron por un desbordamiento. (RX-OVR/TX-OVR).

La �ltima columna muestra los indicadores activos para cada interfaz. Son abreviaturas del nombre completo del indicador, que se muestran con la configuraci�n de la interfaz que ofrece ifconfig:

5.9.3. Mostrar conexiones

netstat ofrece una serie de opciones para mostrar los puertos activos o pasivos. Las opciones –t, –u, –w, y –x muestran conexiones activas a puertos TCP, UDP, RAW, o Unix. Si incluye adem�s el indicador –a, se mostrar�n tambi�n los puertos que est�n esperando una conexi�n (es decir, que est�n escuchando). Esto le dar� una lista de todos los servidores que est�n corriendo actualmente en su sistema.

Llamar a netstat -ta en vlager produce esta salida:
    $ netstat -ta
    Active Internet Connections
    Proto Recv-Q Send-Q Local Address    Foreign Address    (State)
    tcp        0      0 *:domain         *:*                LISTEN
    tcp        0      0 *:time           *:*                LISTEN
    tcp        0      0 *:smtp           *:*                LISTEN
    tcp        0      0 vlager:smtp      vstout:1040        ESTABLISHED
    tcp        0      0 *:telnet         *:*                LISTEN
    tcp        0      0 localhost:1046   vbardolino:telnet  ESTABLISHED
    tcp        0      0 *:chargen        *:*                LISTEN
    tcp        0      0 *:daytime        *:*                LISTEN
    tcp        0      0 *:discard        *:*                LISTEN
    tcp        0      0 *:echo           *:*                LISTEN
    tcp        0      0 *:shell          *:*                LISTEN
    tcp        0      0 *:login          *:*                LISTEN

Esta salida muestra que la mayor�a de los servidores est�n simplemente esperando una conexi�n externa. Sin embargo, la cuarta l�nea muestra una conexi�n SMTP desde vstout, y la sexta l�nea le indica que usted est� haciendo una conexi�n telnet a vbardolino.[1]

El indicador –a por s� s�lo indicar� todos los sockets de todo tipo.

Notas

[1]

Para saber si una conexi�n es saliente por los n�meros de puerto. El n�mero de puerto mostrado por una m�quina que llama siempre ser� un entero simple. En el caso de llamar a una m�quina, usaremos un puerto correspondiente a un servicio conocido, por lo que netstat usar� el nombre simb�lico, como smtp, que encuentre en /etc/services.