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