Las siguientes subsecciones las necesitará para saber y comprender ciertas cosas antes de que intente configurar la red. Son principios fundamentales que se aplican independientemente de la naturaleza exacta de la red que desee organizar.
5.1 ¿Qué necesito para comenzar?
Antes de que empiece a construir o configurar la red necesita saber algunas cosas. Las más importantes son:
Código fuente del núcleo.
Antes que nada:
La mayoría de las distribuciones vienen por defecto con el soporte de red activado, por lo cual no habrá que recompilar el núcleo. Si tiene hardware común, debería irle bien. Por ejemplo, tarjetas de red 3COM, NE2000, o Intel. Sin embargo proporcionamos la siguiente información por si necesita actualizar el núcleo.
Como puede ser que el núcleo que está ejecutando no esté preparado para los tipos de red o tarjetas que desee usar, probablemente necesitará las fuentes del núcleo para recompilarlo con las opciones apropiadas.
Siempre puede obtener la última versión de CDROM.com
ftp://ftp.cdrom.com/pub/linux/sunsite/kernel.org/pub/linux/kernel. Este no es el sitio oficial, pero tiene un GRAN ancho de banda y permite que MUCHOS usuarios conecten simultáneamente. El sitio oficial es kernel.org, pero use el anterior si tiene la posibilidad. Por favor, recuerde que ftp.kernel.org está seriamente sobrecargado. Use un servidor réplica.
Normalmente las fuentes del núcleo se instalarán en el directorio /usr/src/linux. Para más información sobre cómo aplicar parches y construir el núcleo debería leer el Kernel Como. Para más información sobre cómo configurar módulos del núcleo debería leer el Modules mini-Howto. Además, el fichero README que hay en las fuentes del núcleo y el directorio Documentation son muy ilustrativos para el lector intrépido.
A menos que se diga específicamente lo contrario, recomiendo que empiece con la versión estándar del núcleo (la que tenga un número par como segundo dígito del número de versión). Las versiones de desarrollo del núcleo (las que tienen el segundo dígito impar) podrían tener algunos cambios estructurales u otros que podrían causar problemas con otro software en su sistema. Si no está seguro de que pueda resolver ese tipo de problemas sumado al potencial de que haya otros errores de software, no los use.
Por otro lado, algunas de las capacidades aquí descritas han sido introducidas durante el desarrollo de los núcleos 2.1, por lo que tendrá que tomar una decisión: puede mantenerse en 2.0 mientras espera por el 2.2 y por una distribución con cada herramienta actualizada, o puede coger un 2.1 y buscar los diversos programas necesarios para explotar las nuevas capacidades. En el momento de escribir este Como, en Agosto de 1998, el núcleo disponible es el 2.1.115 y se espera que el 2.2 aparezca pronto.
Nota del Traductor: En el momento en que acabó la traducción de este Como, en septiembre de 1999, las versiones disponibles del núcleo son la 2.2.12 (estable) y la 2.3.16 (desarrollo). Además, las principales distribuciones han puesto al día sus herramientas para tratar las capacidades de la serie 2.1 y superiores.
Herramientas de red actualizadas.
Las herramientas de red son los programas que usted usa para configurar los dispositivos de red de linux. Estas herramientas permiten asignar direcciones a dispositivos y configurar rutas, por ejemplo.
La mayoría de distribuciones modernas de Linux están dotadas con las herramientas de red, por lo que si ha instalado Linux a partir de una distribución y no ha instalado las herramientas de red, debería hacerlo.
Si no ha instalado a partir de una distribución entonces necesitará las fuentes para compilar las herramientas usted mismo. No es difícil.
Las herramientas de red las mantiene ahora Bernd Eckenfelds y están disponibles en:
ftp://ftp.inka.de/pub/comp/Linux/networking/NetTools/ y están replicadas en: ftp://ftp.uk.linux.org/pub/linux/Networking/base/.
También puede encontrar los últimos paquetes de RedHat en ftp://ftp.cdrom.com/pub/linux/redhat/redhat-6.0/i386/base/net-tools-1.51-3.i386.rpm.
Para Debian, los paquetes que traen las principales herramientas son los paquetes hostname, netbase y netstd, que encontrará en ftp://ftp.debian.org/debian/dists/stable/main/binary-i386/base/.
Asegúrese de que elige la versión que más se ajuste al núcleo que desee usar y siga las instrucciones del paquete para instalarlo.
Para instalar y configurar la versión actual, ---en el momento de traducirse esto--- esto necesitará hacer lo siguiente:
usuario% cd /usr/src
usuario% tar xvfz net-tools-x.xx.tar.gz
usuario% cd net-tools-x.xx
usuario% make config
usuario% make
root# make install
O si no, use los paquetes de su distribución. Por ejemplo, con RedHat:
root# rpm -U net-tools-x.xx-y.i386.rpm
y con Debian:
root# dpkg -i hostname_x.xx-y.yy.deb
root# dpkg -i netbase_x.xx-y.yy.deb
root# dpkg -i netstd_x.xx-y.yy.deb
En los anteriores ejemplos, x.xx se refiere a la versión de las herramientas, e y.yy a la revisión de los correspondientes paquetes.
Si además va a configurar un cortafuegos o a usar la característica de IP Masquerade, necesitará ipfwadm. La última versión la puede obtener en: ftp:/ftp.xos.nl/pub/linux/ipfwadm. De nuevo se encontrará con más de una versión disponible. Asegúrese de coger la versión que más se ajuste a su núcleo. Tenga en cuenta que las capacidades de cortafuegos de Linux cambiaron durante el desarrollo 2.1 y ipfwadm ha sido sustituida por ipchains en la versión 2.2 del núcleo. ipfwadm sólo vale para la versión 2.0 del núcleo. Se sabe de estas distribuciones que se ajustan a versiones 2.0 o anteriores del núcleo:
- Redhat 5.2 o anteriores
- Caldera antes de la versión 2.2
- Slackware antes de las versiones 4.x
- Debian antes de las versiones 2.x
Para instalar y configurar la versión actual en el momento de escribir esto necesita leer el IPChains Howto, disponible en el Proyecto de Documentación de Linux http://www.linuxdoc.org
Tenga en cuenta que si tiene una versión 2.2 (o 2.1 de las últimas) del núcleo, ipfwadm no es la herramienta correcta para configurar un cortafuegos. Esta versión del NET-3-HOWTO todavía no trata con la nueva configuración de cortafuegos. Si necesita información más detallada sobre ipchains, por favor, diríjase al documento mencionado anteriormente.
Aplicaciones de red.
Las aplicaciones de red son programas como telnet y ftp y sus respectivos programas servidores. David Holland estuvo manteniendo una distribución de las más comunes de la que ahora se ocupa :netbug@ftp.uk.linux.org. Puede obtenerlas en: ftp://ftp.uk.linux.org/pub/linux/Networking/base.
Introducción a las direcciones IP.
Las direcciones del Protocolo Internet (IP) están compuestas por cuatro bytes. La convención es escribir estas direcciones en la denominada «notación decimal puntuada» (dotted decimal notation). De esta forma cada byte es convertido en un número decimal (0-255), despreciando los ceros a la izquierda a menos que el número en sí sea cero. Por convención, cada interfaz de una máquina o encaminador tiene una dirección IP. Es válido usar la misma IP para cada interfaz de una sola máquina en algunas circunstancias, pero normalmente cada interfaz tiene su propia dirección.
Las Redes basadas en Internet Procotol son secuencias contiguas de direcciones IP. Todas las direcciones dentro de una red tienen un número de dígitos de en común. A la porción de la red que es común a todas las direcciones llama la «porción de la red». Los dígitos restantes son llamados «porción de la máquina». Al número de bits que comparten todas las direcciones de una red se le llama máscara de red (netmask), y su papel es determinar qué direcciones pertenecen a la red y cuáles no. Consideremos el siguiente ejemplo:
--------------------- ---------------
Dirección Host 192.168.110.23
Máscara de red 255.255.255.0
Porción de red 192.168.110.
Porción de Host .23
--------------------- ---------------
Dirección de Red 192.168.110.0
Dirección de Difusión 192.168.110.255
--------------------- ---------------
Cualquier dirección a la que se aplique una operación and de bits con su máscara de red, revelará la dirección de la red a la que pertenece. La dirección de red es por tanto siempre el menor número de dirección dentro de el rango de la red y siempre tiene la porción de máquina codificada toda con ceros.
La dirección «de difusión» (broadcast) es una especial a la que escucha cada máquina en la red además de a la suya propia. Esta dirección es a la que se envían los datagramas si se supone que todas las máquinas de la red lo deben recibir. Ciertos tipos de datos, como la información de encaminamiento y los mensajes de aviso son transmitidos a la dirección de difusión para que cada estación en la red pueda recibirlo simultáneamente. Hay dos estándares usados comúnmente al respecto de la dirección de difusión. El más ampliamente aceptado es el de usar la dirección más alta posible en la red. En el ejemplo anterior sería 192.168.110.255. Por alguna razón, otras estaciones han adoptado la convención de usar las direcciones de red como direcciones de difusión. En la práctica no importa mucho cual use, pero asegúrese de que cada máquina en la red está configurada con la misma.
Por razones administrativas, durante el desarrollo inicial del protocolo IP se formaron, de forma arbitraria, algunos grupos de direcciones como redes, y estas redes se agruparon en las llamadas «clases». Estas clases proporcionan un cierto número de redes de tamaño estándar que pueden ser reservadas. Los rangos reservados son:
----------------------------------------------------------
| Clase | Máscara de | Direcciones de red |
| de red | red | |
----------------------------------------------------------
| A | 255.0.0.0 | 0.0.0.0 - 127.255.255.255 |
| B | 255.255.0.0 | 128.0.0.0 - 191.255.255.255 |
| C | 255.255.255.0 | 192.0.0.0 - 223.255.255.255 |
|Multicast| 240.0.0.0 | 224.0.0.0 - 239.255.255.255 |
----------------------------------------------------------
Las direcciones que deberá usar dependen de lo que vaya a hacer exactamente. Puede que tenga que realizar varias de las siguientes actividades para obtener las direcciones que necesite:
- Instalar una máquina Linux en una red IP existente
-
Si desea instalar una máquina Linux en una red IP existente entonces debería contactar con los administradores de la red y preguntarles por la siguiente información:
- Dirección IP del Host
- Dirección IP de la red
- Dirección IP de broadcast
- Máscara de red IP
- Dirección del encaminador (router)
- Dirección del Servidor de Nombre de Dominio (DNS)
Debería configurar entonces el dispositivo de red Linux con esos detalles. No puede inventarlos y esperar que la configuración funcione.
- Construir una nueva red propia que nunca conectará con Internet
-
Si está construyendo una red privada y no tiene intención de conectar nunca esa red a Internet entonces puede elegir las direcciones que quiera. De todas maneras, por razones de seguridad y consistencia, se han reservado algunas direcciones IP de red específicamente para este propósito. Están descritas en el RFC1597 y son las que siguen:
-----------------------------------------------------------
| DIRECCIONES RESERVADAS PARA REDES PRIVADAS |
-----------------------------------------------------------
| Clase | Máscara de | Direcciones de red |
| de red | red | |
-----------------------------------------------------------
| A | 255.0.0.0 | 10.0.0.0 - 10.255.255.255 |
| B | 255.255.0.0 | 172.16.0.0 - 172.31.255.255 |
| C | 255.255.255.0 | 192.168.0.0 - 192.168.255.255 |
-----------------------------------------------------------
Primero debería decidir cuán grande quiere que sea su red para entonces elegir tantas direcciones como necesite.
5.2 ¿Dónde debería poner las órdenes de configuración?
Hay unas pocas opciones a elegir para el procedimiento de arranque del sistema Linux. Después de que carga el núcleo, siempre ejecuta un programa llamado init. El programa init lee entonces el fichero de configuración llamado /etc/inittab y comienza el proceso de arranque. Hay unos pocos init diferentes, aunque todo el mundo está ahora convergiendo al modelo SystemV, desarrollado por Miguel van Smoorenburg.
A pesar de que el programa init sea el mismo, la configuración del arranque del sistema está organizada de manera diferente en cada distribución.
Normalmente el fichero /etc/inittab contiene una entrada que dice algo como:
si::sysinit:/etc/init.d/boot
Esta línea especifica el nombre del fichero de guión de ejecución (script) que controla la secuencia de carga. Este fichero es algo así como el AUTOEXEC.BAT en MS-DOS.
El guión de arranque suele llamar a otros, y a menudo la red se configura dentro de alguno de éstos.
La siguiente tabla puede ser usada como guía para su sistema:
----------------------------------------------------------------------
Distrib. |Interfaz Configuración/Encaminado |Iniciación del Servidor
----------------------------------------------------------------------
Debian | /etc/init.d/network | /etc/rc2.d/*
----------------------------------------------------------------------
Slackware| /etc/rc.d/rc.inet1 | /etc/rc.d/rc.inet2
----------------------------------------------------------------------
RedHat | /etc/rc.d/init.d/network | /etc/rc.d/rc3.d/*
----------------------------------------------------------------------
Fíjese en que Debian y Red Hat usan un directorio entero de guiones que «levantan» los servicios del sistema (y normalmente la información no se encuentra en esos archivos; por ejemplo, el sistema de Red Hat almacena toda la configuración del sistema en ficheros dentro de /etc/sysconfig, de donde es leída por los guiones de carga). Si quiere comprender los detalles del proceso de arranque del sistema, le sugiero que examine /etc/inittab y la documentación que acompaña a init. Linux Journal va a publicar (o lo ha hecho ya) un artículo tratando la iniciación del sistema, y este documento mantendrá una referencia a él tan pronto como esté disponible en la red.
La mayoría de distribuciones modernas incluyen algún programa que le permita configurar la mayoría de interfaces de red. Si tiene una de éstas entonces debería ver si hace lo que usted quiere antes de acudir a la configuración manual.
--------------------------------------------
Distrib. | Programa de configuración de red
--------------------------------------------
RedHat | /sbin/netcfg
Slackware | /sbin/netconfig
--------------------------------------------
5.3 Creación de las interfaces de red.
En muchos sistemas operativos Unix los dispositivos de red tienen correspondencias en el directorio /dev. Esto no pasa en Linux. Los dispositivos de red se crean de forma dinámica y por tanto no requieren de la presencia de ficheros de dispositivo.
En la mayoría de los casos los dispositivos de red son creados automáticamente por el controlador de dispositivos mientras se inicia y localiza el hardware. Por ejemplo, el controlador Ethernet crea interfaces eth[0..n] secuencialmente según va encontrado tarjetas Ethernet. La primera tarjeta que encuentra es eth0, la segunda eth1, etc.
Sin embargo, en algunos casos, de los que slip y ppp son ejemplos notables, los dispositivos de red son creados por la acción de algún programa de usuario. Se aplica la misma numeración secuencial de dispositivos, pero no se crean al arrancar. La razón es que al contrario que con los dispositivos Ethernet, el número de dispositivos ppp o slip puede variar durante la actividad de la máquina. Estos casos serán cubiertos con más detalle en secciones posteriores.