Crea tu propia red "casera" con Linux

En este ejemplo tendremos 2 ordenadores conectados por 2 tarjetas ne2000 compatibles y PCI cuyos parámetros serán los siguientes:

Dirección de la red: 192.168.0.0
Máscara de subred: 255.255.255.0
Dirección de broadcast de la red: 192.168.0.255

Máquina 1:
Dirección IP elegida: 192.168.0.1
Nombre: Linux.es,
S.O: Linux.
Máquina 2:
Dirección IP elegida: 192.168.0.2
nombre: Windows.es
S.O: Windows 9x

Configuración del Servidor Linux

La compilación del kernel es un paso muy habitual y para compilar el kernel se deben de tener instalados los fuentes y ficheros de cabecera del kernel, todo el proceso de compilación debe hacerse en el directorio /usr/src/linux, y se basa en una serie de comandos y configuraciones que se realizan de una forma muy rápida y sencilla. Una vez configurada la tarjeta de red en el kernel, al iniciarlo debería aparecer una línea parecida a la siguiente (en el caso de ser PCI y estar integrada en el núcleo:

ne2k-pci.c:v0.99L 2/7/98 D. Becker/P. Gortmaker
ne2k-pci.c: PCI NE2000 clone "RealTek RTL-8029" at I/O 0x6100, IRQ 11.

Si es ISA la mejor opción es instalarla como módulo, y especificar en el fichero de configuración de módulos (/etc/conf.modules) la configuración de la tarjeta, en una línea similar a la siguiente (para distribuciones Redhat):

alias eth0 ne
options ne io=0x6100 irq=11

Especificación de la dirección IP

Nuestro siguiente paso es asignar a la tarjeta de red la dirección IP correcta. En el caso del servidor Linux esta IP era 192.168.0.1, dirección que habrá que ligar al interface de red eth0. Para distribuciones Linux Mandrake esto se hace editando (por ejemplo con el editor joe) el fichero /etc/sysconfig/network-scripts/ifcfg-eth0 y modificando los diferentes parámetros que contiene para especificar los de nuestra red:

DEVICE="eth0"
IPADDR="192.168.0.1"
NETMASK="255.255.255.0"
NETWORK="192.168.0.0"
BROADCAST=192.168.0.255
ONBOOT="yes"
BOOTPROTO="none"
USERCTL=no
IPXNETNUM_802_2=""
IPXPRIMARY_802_2="no"
(+ otros parámetros para IPX no necesarios).

Para forzar la lectura de este fichero y por tanto la lectura de los nuevos parámetros para el interface eth0 ejecutamos una de las 2 órdenes siguientes (según donde esté el script ifup):

./ifup eth0
ifup eth0

La primera de las órdenes se debe ejecutar si el script ifup está en el directorio actual, mientras que la segunda es para el caso en que éste esté en otro path.

El siguiente paso es comprobar si la tarjeta de red se ha instalado y configurado correctamente, realizando un ping a la dirección IP asociada a eth0, y esperando que ésta nos lo responda correctamente:

[carlitos] [/dos/d/info/monkiki/redes]$ ping 192.168.0.1
PING 192.168.0.1 (192.168.0.1): 56 data bytes
64 bytes from 192.168.0.1: icmp_seq=0 ttl=64 time=0.2 ms
64 bytes from 192.168.0.1: icmp_seq=1 ttl=64 time=0.2 ms
64 bytes from 192.168.0.1: icmp_seq=2 ttl=64 time=0.2 ms
(Ctrl+C)
--- 192.168.0.1 ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 0.2/0.2/0.2 ms

Configuración del Hostname

Para hacer accesibles las máquinas por su nombre (no sólo por su dirección IP), es necesario modificar algunos ficheros de configuración de Linux, entre ellos el fichero /etc/hosts, una base de datos de direcciones IP y nombres asociados, que además permite incluir alias o nombres cortos para las máquinas. Un ejemplo de /etc/hosts para nuestros propósitos (incluyendo ya la dirección IP de la otra máquina) sería el siguiente:

# Ejemplo de /etc/hosts (líneas # son comentarios)
# Las separaciones entre cadenas son tabuladores.
# Direccion IP Alias Nombre y dominio

127.0.0.1 localhost localhost.localdomain
192.168.0.1 Linux Linux.es
192.168.0.2 Windows Windows.es

Para distribuciones RedHat deberemos modificar además el fichero /etc/sysconfig/network con parámetros como los que siguen (de acuerdo a nuestra red):

NETWORKING=yes
FORWARD_IPV4=no
HOSTNAME="Linux.es"
DOMAINNAME=es
GATEWAY=
GATEWAYDEV=
NISDOMAIN=""

El fichero /etc/host.conf debe contener las siguientes líneas para configuración del servidor DNS (el encargado de transformar nombres en las direcciones IP correctas):

order hosts, bind
multi on

Si también hemos configurado el cliente Windows también deberíamos poder pingear hacia su IP o hostname. Por otra parte,
si en lugar de (o además de) un cliente Windows quisiéramos configurar otro cliente Linux, la configuración se realizaría con los
mismo parámetros que la máquina servidora Linux.

Configuración del cliente Windows

La configuración del cliente Windows suele ser la más problemática de ambas: si éste no detecta su tarjeta de red (aunque sea Plug&Play es muy habitual) y no se dispone de los discos de drivers del fabricante tendrá que sacar la tarjeta de red de su slot, arrancar, apagar, y volver a conectar la tarjeta (para que Windows detecte el cambio e instale el nuevo hardware). Tras esto deberemos comprobar que la dirección del puerto E/S y la IRQ asignadas con Linux coinciden con las de la tarjeta (que se suelen cambiar mediante una utilidad incluida en los diskettes de drivers de la misma). Para esto miramos en el Panel de control, Red, Propiedades, y examinamos los valores asignados, cambiándolos si no son correctos.

Tras esto debemos asignar a este nodo de la red la dirección IP que decidimos en un principio: la 192.168.0.2; esto se realiza desde el Panel de control, Red, Propiedades TCP/IP (de la tarjeta de red, no las genéricas), aquí debemos especificar los siguientes datos:

Dirección IP -> Especificar dirección IP -> 192.168.0.2
Máscara de subred -> 255.255.255.0
Identificación -> Nombre del PC -> WINDOWS
Grupo de trabajo -> GRUPO
Descripción del PC -> Es indiferente.

Después debemos crear la base de datos de nombres y direcciones IP, situada en el fichero c:windowshosts, donde el formato es IP+Nombre+Apodo, y los espacios entre campos son tabuladores:

127.0.0.1 localhost
192.168.0.1 Linux.es Linux
192.168.0.2 Windows.es Windows

Si posteriormente pensamos instalar Samba (un servicio de Linux para compartir impresoras y archivos con clientes Linux o Windows), podemos compartir cualquiera de estas dos cosas en Configuración, Compartir impresoras y archivos, y utilizando el botón derecho del ratón sobre las carpetas, para que aparezca una nueva opción llamada Compartir. En principio si no vamos a utilizar Samba esto no es necesario. Como suele ser habitual, después de los cambios habrá que reiniciar el equipo para que estos tengan efecto, tras lo cual deberemos comprobar si la tarjeta de red está funcionando haciendo ping a la dirección de red o al equipo Linux.

Probando la Red

La mejor manera de probar la red es, desde cualquiera de los clientes, hacer un ping, telnet o ftp al servidor Linux. En el caso de que éste tenga los puertos correspondientes abiertos (configurable en el fichero /etc/inetd.conf), podremos entrar en el servidor Linux si disponemos de cuenta en él, e incluso desde el telnet de Windows podremos trabajar con Linux o con X Window (utilizando un cliente de X Window como Mi/X o VNC). No olvide que lo contrario (hacer un telnet de un equipo Linux a un Windows) no es posible porque Windows 95 no tiene capacidades de servidor.

También será posible instalar diferentes servicios en la máquina servidora Linux, como por ejemplo Apache (servidor http free). Si el daemon está corriendo (es decir, durante el arranque aparece un mensaje de starting httpd...), tecleando en cualquier navegador de las máquinas clientes la dirección http://linux.es/ nos estaría apareciendo en dicho navegador el fichero /home/httpd/index.html. Es decir, la jerarquía de ficheros y directorios que aparece en /home/httpd será la que aparecerá en http://linux.es/. Esto nos permite la creación de Webs o incluso un rápido sistema de testeo de CGIs y Webs sin tener que subirlas a Internet (ideal para los desarrolladores de Webs). Si no tenemos activado el servidor de http basta con instalar Apache (el .rpm instala automáticamente el servicio) o ejecutar el comando "/etc/rc.d/init.rd/httpd start". También puede montarse en Linux un ftp anónimo o un servidor de Irc. Las posibilidades son infinitas con Linux...

Documento original de Santiago Romero (http://www.ctv.es/USERS/sromero/)




1