Índice del artículo

La administración de redes en Unix, es fundamental para poder implementar las funciones de servidor de nuestro equipo. Aquí se detallan algunos conceptos de los archivos y comandos para la configuración adecuada de las interfaces de red en el sistema operativo.

Comando ifconfig

El primer comando que veremos es ifconfig -a que nos ayuda a ver que interfaces de red tiene el equipo y la configuración, además será útil para modificar esta configuración en caso que sea necesario.

$ ifconfig -a
lo0: flags=849<UP,LOOPBACK,RUNNING,MULTICAST> mtu 8232
inet 127.0.0.1 netmask ff000000
bge0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
inet 192.33.6.43 netmask ffffff00 broadcast 192.33.6.232
ether 0:d:9d:8e:63:1b

Aquí pareciera tener dos interfaces, la primera lo0 es una interface de loopback, es se utiliza cuando una máquina requiere enviarse paquetes a sí misma.

Para ver los parámetros de una interface en partícular utilizamos el comando ifconfig con el parámetro del nombre de la interface que queremos revisar, en este caso sería:

$ ifconfig bge0
bge0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
inet 192.33.6.43 netmask ffffff00 broadcast 192.33.6.232
ether 0:d:9d:8e:63:1b

Aquí están las sintaxis más frecuentes que se utilizan con este comando

Activar una interfaz
$ ifconfig interfaz up

Desactivar una interfaz
$ ifconfig interfaz down

Establecer o cambiar una dirección IP
$ ifconfig interfaz inet direccion-IP

Fijar o cambiar una dirección Ethernet
$ ifconfig interfaz ether a0:b1:c2:d3:a4:b5

Comando hostname

Todos las objetos en la red necesitan ser identificados con un nombre, el comnado para mostrar o cambiar el nombre de un host es el comando hostname

Para cambiar un nombre de host podemos hacerlo de dos formas: la primera cambiando el nombre dle sistema en todos los siguientes archivos:

/etc/nodename
/etc/hosts
/etc/hostname.[interface]

La segunda forma es utilizando el comando hostname, que por sí solo nos muestra el nombre actual del host, pero con el parámetro del nombre del hostname, hace el cambio de dicho nombre

$ hostname
test
$ hostname test2
$ hostname
test2

Te recomendamos dar una revisada a los archivos /etc/nodename, /etc/hosts y /etc/hostname.

Máscaras de red

Para configurar la máscar de red del servidor se utiliza el comando ifconfig con algunos parámetros que le indican la interface que vamos a modificar y la máscara de red que le vamos a asignar, de la siguiente manera:

$ ifconfig [interface] netmask [mascara_de_red]

Por ejemplo

$ ifconfig bge0 netmask 255.255.255.0

Para revisar el que el cambio se haya realizado pudes recuerda utilizar el comando ifconfig [interface].

Esta configuración se registra en el archivo /etc/netmasks


Monitoreo de la red

Unix nos puede dar mucha información con tan sólo dos comandos de monitoreo de la red, uno es el comnado snoop que monitorea los paquetes de la red y el otro es el comando netstat que nos muestra el estatus actual de la red.

{mosgoogle}

Comando snoop

Este comando nos ayuda a ver todos los paquetes que pasan a través de las interfaces de red, podemos indicarle que únicamente revise una interface:

$ snoop -d interface

Podemos también decirle que sólo verifique los paquetes de protocolo tcp de dicha interface, lo cual ser haría con el comando:

$ snoop -d interface tcp

Los protocolos válidos para el monitoreo de la red son ip, arp, rarp, udp, tcp, icmp, apple, decnet

De igual forma podemos límitar para el monitoreo el tráfico de paquetes entre dos equipos escribiendo el hostname de orign y el hostname del destino antes del protocolo de la siguente manera:

$ snoop -d interface host_origen host_destino tcp

Para enviar el resultado del monitoreo a un archivo se utiliza el parámetro -o nombre_del_archivo, en el siguiente ejemplo podemos ver un comando con todas las opciones mencionadas.

$ snoop -d bge0 -o tcp.out test craco tcp

Este ejemplo envía al archivo tcp.out todos los paquetes tcp que se envían desde el host "test" al host "craco".

De entre los parámetros más utilizados del comando snoop nos reta aún el parámentro -i nombre_del_archivo que nos sirve para ver el contenido del archivo generado por el comando -o, siguiendo el ejemplo anterior podríamos utilizar:

$ snoop -i tcp.out | page

Comando netstat

El otro comando que nos ayuda a monitorear detalladamente la red es el comando netstat, que tiene los siguientes como parámentros principales:

$ netstat -i (estadística de las interfaces)
$ netstat -n (direcciones de internet)
$ netstat -s (estadística de protocolos)
$ netstat -r (tablas de ruteo)

Utilizando la opción -i [intervalo] nos dará la informácion para los segundos determinados en el intervalos. La información que muestra está expresada en bytes.

Ejemplo:

$ netstat -i 3
input eri0 output input (Total) output
packets errs packets errs colls packets errs packets errs colls
12492 0 13003 1 7932 58405 0 58016 1 732
7 0 5 0 0 13 0 11 0 0
47 0 56 0 0 268 0 277 0 0
38 0 52 0 0 89 0 103 0 0
9 0 9 0 0 15 0 15 0 0
7 0 7 0 0 13 0 13 0 0
^C

La primera línea muestra el total de bytes enviados y recibidos y las posteriores muestra dentro de los 3 segundos (como se determinó en el intervalo) siguientes y así se podría seguir.

Como podrás notar para salir de este comando se utiliza Control-C

Si quisieras que sólo lo midiera cada 3 segundos con 10 repeticiones, es decir que este conteo sólo se lleve a cabo durante 30 segundos, se escribe también el parámetro de repeticiones, por ejemplo:

$netstat -i 3 10

Comando ping

El comando ping es utilizado para determinar si el host que se pasa en el parámetro está en línea y funcionando, su sintaxis es de la siguiente manera:

$ ping [hostname]

Este comando funciona enviando peticiones de eco al host y reporta cuando la respuesta es recibida, estos son algunos ejemplos de su uso.

$ ping craco
craco is alive

Con el parámetro -s le indicamos que mande continuamente paquetes e informe el resultado, para terminar de enviar paquetes se teclea Control-C, Veamos el siguiente ejemplo.

$ ping -s craco
PING craco: 56 data bytes
64 bytes from craco (192.33.6.232): icmp_seq=0. time=0.477 ms
64 bytes from craco (192.33.6.232): icmp_seq=1. time=0.576 ms
64 bytes from craco (192.33.6.232): icmp_seq=2. time=0.586 ms
64 bytes from craco (192.33.6.232): icmp_seq=3. time=0.438 ms
64 bytes from craco (192.33.6.232): icmp_seq=4. time=0.553 ms
^C
----craco PING Statistics----
8 packets transmitted, 5 packets received, 0% packet loss
round-trip (ms) min/avg/max/stddev = 0.438/0.521/0.586/0.055