El Internet hoy en día es una palabra que designa una red que físicamente abarca todo el planeta tierra, mas común aún se utiliza para describir una aplicación específica: www, o http. Pero en su percepción original es una colección de servicios y protocolos de red. TCP significa Transfer-Control-Protocol, e IP significa Internet Protocol. Si hablamos de redes Internet puede ser entonces la implementación mundial específica, pero también si en una oficina se conectan dos computadoras Linux via una red se trata de una red Internet. Para distinguir esta red pequeña de la red Internet mundial se le suele llamar Intranet a estas configuraciones, aunque el funcionamiento es idéntico.
La conexión de dos o mas computadoras siempre sigue los mismos mecanismos, los que se han identificados y normados por ejemplo en el modelo ISO-OSI de siete capas. Sin entrar en el detalle de este modelo nos adherimos al modelo de capas. Solamente contemplamos las capas de interés para la configuración del nucleo Linux. Desde ``abajo'' hacia ``arriba'' diferenciamos entre:
El enrutamiento en realidad es parte de las capas inferiores. En la figura 8 se ilustra con la línea rayada la comunicación entre una computadora (izquierda) que utiliza el protocolo http para solicitar información de otra (derecha). Seguimos ahora el flujo de comunicación ``real'' desde la computadora izquierda a la computradora derecha. Se requiere de la seleción del destino (Dirección/puerto - información para el enrutamiento), los datos son empacados en un protocolo (ppp a la izquierda). Los driver del hardware, presuntamente en este caso para manejar un modem convierte los datos en señales analógicos que se transmiten a través de la línea telefónica. La ``red'' dibujado abajo puede contener multiples caminos para los datos, pero el enrutamiento asegura, que los datos llegan a la computadora específica indicada en la derecha, en nuestro caso presuntamente ya convertido en señales de una red local Ethernet. La tarjeta ethernet convierte estos en paquetes de datos, el driver ``eth'' extrae de estos la información TCP/IP y la remite en ``texto claro'' a la aplicación destino.
Se puede apreciar, que todos los componentes/todas las capas tienen que concordar en su configuración para que pueda establecerse una comunicación. A continuación en este capítulo se discuta la configuración de cada ``capa'' y los posibles problemas emergentes.
Los driver de hardware es la parte del sistema operativo que comunica el mundo exterior a través de dispositivos de entrada/salida con los programas. Cada tipo de dispositivos requiere un driver específico. Por suerte hay ciertas normas, que permiten ordenar los dispositivos en grupos y escribir driver's genéricos para un amplio rango de dispositivos reales.
Los dispositivos más comúnes para la conexión en red son:
El protocolo usado se llama PLIP (Parallel-Line-Internet-Protocoll). Existe el modo 0 y el modo 1 de transmisión. El modo 1 es más moderno y rápido y necesito otro tipo de cable y un puerto paralelo avanzado, mientras el modo 0 trabaja con cables ``parallel Nullmodem'' estándard y con cualquier tipo de computadora.
La transferencia de información en TCP/IP se realiza a través de paquetes IP, que pueden ser de clase TCP o UDP.
Ambos disponen de un encabezado (sobre) en el cual el destino y el remitente son indicados en forma de números IP, que son representados como cuatro números decimales con un rango de 0 a 255 separados por un punto. Ej: 192.168.3.45
Para usos especiales se realizaron modificaciones del estándard original, ejemplos son:
ppp puede usarse favorablemente también para conexiones experimentales entre dos computadoras, p.ej líneas de transmisión ``caseras'', equipos de infrarojo, ultrasonido, radio, etc.
Por ende vale mencionar, que los números IP no designan computadoras, sino dispositivos de red. Comunmente una computadora, especialmente si es de mesa, solo dispone de una conexión a la red, y por lo tanto es accesible solamente con un número IP. En este caso solemos identificar la computadora con su número IP.
Sin embargo imaginémonos la situación de una computadora de mesa con un modem conectado al Internet, a la cual conectamos una portatil via el puerto paralelo. En este caso la computadora de mesa dispone de dos números IP, una hacia el Internet que es asignada en el momento de conectarse via ppp y otra, que nosotros configuramos a la hora de instalar el interfaz plip hacia la computadora portatil.
En computadoras de mesa y muchas veces en servidores sencillos es suficiente despachar los paquetes de información de una manera fija - estática. Para esto, el núcleo de Linux dispone de una tabla de enrutamiento - routing table. La tabla de enrutamiento es una lista de especificaciones de rangos (playas) de direcciones IP, asociados con el dispositivo de red que se utilizará para despachar paquetes con destino en este rango. Eventualmente se puede configurar un ``gateway'' que es un número IP que designa una computadora capáz de remitir un paquete hacia otros segmentos de la red.
rango-ip dispositivo
rango-ip gateway dispositivoEl comando ``route'' es utilizado para modificar y analizar la tabla de enrutamiento. Evocando este comando sin parámetro arroja la lista de rutas (routes) en la pantalla. ``route add ...'' agrega rutas y ``route del ...'' borra rutas de la tabla. La palabra ``default'' es una abreviación para una ruta por defecto que entra en función cuando no hay ninguna ruta establecida para una dirección IP específica.
En este momento vale mencionar, que el enrutamiento por número IP es un ``enrutamiento externo'', que permite establecer comunicación entre dos computadoras en una red ámplia. Hay también un ``enrutamiento interno'', que permite realizar una variedad de conexiónes lógicas entre estas dos computadoras. Esto se realiza a través de los ``puertos'' TCP. Prácticamente cada servicio Internet tiene asignado oficialmente un puerto, que no es nada más que un número de 16 Bit, que identifica un canal de comunicación, dentro de un conexión física establecida entre dos computadoras. Entre todos los paquetes intercambiados se filtran para cada aplicación los paquetes correspondientes a su canal a través del número del puerto. Para poder utilizar el mismo servicio más que una vez, al comienzo de una conexión entre las dos computadoras se negocia en el puerto estándar un canal (puerto) libre, el cual se utiliza a continuación.
En el archivo /etc/services se relacionan nombre de servicios con su respectivo número de puerto. Este archivo es coordinado por el comité regulador de Internet y viene con asignaciones estándardizados, sin embargo puede ser ampliado o modificado al gusto del administrador del sistema. Casi todos los programas clientes y servidores tienen la opción de especificar puertos alternativos a los indicados en /etc/services, sin embargo esta opción se usará solamente en casos especiales.
Todos los servicios implementan una relación cliente servidor, es decir, al conectarse a una computadora (remota) mediante un programa 'cliente' se establece una comunicación con un programa 'servidor'. Al establecer una conexión el servidor en muchos casos le exige autentificación al cliente y le puede denegar el servicio según el resultado.El servidor en muchos casos implementa un ``lenguaje'' de comandos en texto claro (ASCII). Estos lenguajes son definidos en los documentos RFC - Request-For-Comment lo que en realidad significa propuesta para comentarios, sin embargo suelen a llegar a ser ``normas''.
He aquí algunos (pocos) de los servicios de red que se usan más frecuentemente.
Telnet se puede utilizar para comprobar la disponibilidad de un servicio IP en un host mediante la especificación del puerto correspondiente.
Eventualmente (y en Internet muy común) se permite acceso a un usuario 'anonymous' al cual se le pide como clave su dirección de correo electrónico. A este usuario se le brinde acceso 'world' a un directorio especifico, donde se depositan archivos disponibles para la publicidad. ftp-anonymous crea una debilidad de seguridad en un servidor.
Este tipo de conexión es altamente vulnerable, ya que se basa en una técnica de transmisión y conexión de baja calidad y robustéz en comparación con otras tecnologías. Además hay varios niveles en los cuales pueden ocurrir problemas. Por eso vamos a analizar este ejemplo muy a detalle, aunque en la actualidad existen herramientas de configuración muy versátiles que simplifican sustancialmente la tarea de configuración y conexión.
A nivel de dispositivo podemos contar con un modem externo o interno.
Este se conecta a través de un puerto en serie, o COM-Port. Hay que configurar la velocidad de conexión entre modem y computadora, así como los demás parámetros, mediante el comando setserial. Mientras en viejas distribuciones se utilizaron puertos /dev/cua* actualmente se considera el uso de /dev/ttyS* donde ttyS0 = COM1, ttyS1=COM2, etc.
Modem modernos pueden utilizar hasta la velocidad máxima (IBM-Compatibles 115200 Bd), pero hay modem que requieren una velocidad específica máxima, un valor seguro puede ser 9600 Bd, muy seguro: 2400 Bd. Esta velocidad solo tiene que ver con la velocidad de conexión telefónica en el sentido, que no se puede transmitir más rápido en la línea telefónica que en la conexión entre computadora y modem. Sin embargo puede haber una conexión mas lenta en el teléfono que en el cable serial, así que es recomendable usar velocidades reducidas solamente para pruebas.
Hay que asegurarse, que se utiliza un cable correcto. Las computadoras PC utilizan tradicionalmente un conector DB25 para el puerto paralelo y para el puerto serial. Estos se distinguen, en que el puerto serial usa pines (macho). Con el modelo PS2 se introdujo el uso de conectores de DB9 (9 pines) para el puerto en serie, que por cierto es contra la norma RS232C, pero viene siendo práctico para reducir el tamaño de las cajas de computadoras. En todo caso el cable debe tener en un lado un conector DB25 con pines que se conecta en el modem en un conector ``hembra'', y entonces queda por lo general solamente la elección entre uno o dos conectores seriales en la computadora. Eventualmente se requiere de un convertido DB9 a DB25 - este también existe en dos formas y hay que fijarse bien cual tipo es necesario. También recuerda conectar el cable al modem primero.
Hay cables ``incompletos'' que no tienen conectados todas las líneas. Se puede realizar una conexión serial entre dos modem (o computadoras) con tres hilos, sin embargo esto no es recomendado porque requiere un mecanismo llamado Software-Handshake (Xon-Xoff) que no es tan confiable y además reduce la velocidad de transmisión de datos. En efecto en el conector DB25 no se ocupan todos los pines, en el conector DB9 sí. El uso de Software-Handshake requiere una configuración especial y no lo contemplamos aquí. Si utilizamos un cable incompleto (o con algún hilo quebrado!) pueden haber problemas de conexión, que no son detectables instantaneamente.
En caso que no hay posibilidad de distinguir cual conector corresponde a cual puerto serial hay varios posibilidades. Lo más recomendable es abrir la caja y verificarlo físicamente. A veces en la tarjeta madre o en la tarjeta serial se puede leer el número del puerto asociado con el conector respectivo.
Un método seguro es la utilización de un probador de puertos seriales en conjunto con un software para controlar el puerto, p.ej. el emulador de terminales ``minicom'', kermit, sayon, u otro.
Habiendo detectado el conector no necesariamente identifica el dispositivo ttyS* ya que este puede cambiarse eventualmente mediante jumper o en el CMOS-Setup (BIOS) de la computadora, así que posblemente hay que referirse al manual de la tarjeta y/o al CMOS-Setup de la computadora. Los valores estándard para los puertos utilizados son:
COM* | ttyS* | IO-Port | Irq
Com1 |
En las computadoras modernas puede que el puerto USB o el puerto infrarojo utiliza un dispositivo serial (el secundario), así que en el CMOS-Setup se puede configurar a cual puerto correspondiente al dispositivo restante (el primario), y con eso determinar el ttyS* a usar para el modem.
En este tipo de modems se ahorran los problemas con los cables, sin embargo es requerida la configuración del puerto y de la interrupción. Esto se realiza en modems ``viejos'' con conector ISA o EISA mediante el sistema PnP (Plug 'n Praise). La utilidad ``pnpdump'' arroja en la pantalla todas las posibles configuraciones para un modem PnP, en una forma que permite de manera fácil crear un archivo de configuración (p.ej. /etc/isapnp.conf). Este debe cargarse antes de usar setserial mediante la utilidad ``isapnp'', (p.ej: isapnp /etc/isapnp.conf)
A veces se requiere reinicializar la computadora para este paso, inclusive puede ser necesario apagarla. No culpen al Linux por eso, hablen con ...
Modems internos con conector PCI también utilizan PnP pero ``de lo bueno'' y su configuración se puede detectar con la utilidad ``lspci'', o con el comando ``cat /proc/pci'' (en núcleos con versiones inferiores de 2.4.0).
Generalmente se utiliza la velocidad de 115200 Bd para modems internos, ya que es un valor no relevante, pués no existe un conexión serial entre la tarjeta-modem y la computadora; sin embargo se tiene que usar un valor compatible con el driver serial.
Una utilidad bastante sencilla para comprobar la funcionalidad básica de un modem es el programa minicom, que permite conectarse al modem en modo ``terminal''. Cada tecla que se aprieta se envia mediante el puerto serial al modem, cada caracter que el modem remite al puerto serial se visualiza como caracter en la pantalla.
Como root tiene que configurarse el puerto a usar (C-A O), es importante salir (C-A X) y volver a entrar de minicom para que los cambios tengan efecto (al menos conmigo). Al volver a entrar normalmente ya se puede apreciar un diálogo entre minicom y el modem. La mayoría de los modem utilizan comandos ``Hayes'' para su control. Estos inician con los caracteres ``AT'' (ATtention). El modem refleja cada caracter y remite una respuesta, si el comando es exitoso la respuesta es ``CR-LF'', o sea, el cursor de la terminal pasa a la siguiente línea.
A continuación una lista de comandos básicos:
AT* | Parámetros | Significado | Comentarios |
El modem trabaja en uno de dos modos: en modo de ``comando'' podemos enviar los comandos al modem, pero después de establecer una conexión el modem trabaja en modo ``transparente'', donde todos los caracteres se envian al modem remoto es decir a la computadora remota respectivamente ya que el modem remoto también está en modo transparente. De este modo se puede regresar al modo comando por falla de conexión: interferenica, interrupción de la línea etc., o con una secuencia específica de caracteres.
El primer paso para conectarse a un servidor internet es marcar el número, lo que efectuamos con el comando ``ATD'' seguido por el número del servidor. El modem marca primero el número y si la línea no está occupada se puede esperar que al otro lado contesta el modem del servidor. En este momento los dos modem intentan sincronizar la velocidad y el protocolo de transmisión sobre la línea telefónica, un proceso que no siempre es exitoso, especialmente con altas velocidades de transmisión y cuando la línea telefónica sufre interferencias.
Una vez que se ``entienden'' los modems lo notifican a la computadora; normalmente con el texto ``CONNECT'', y a veces seguido por la velocidad y los parámetros de la conexión, y pasan inmediatamente al modo transparente.
Ahora le toca el turno al proveedor del servicio. En la actualidad prácticamente todos los proveedores de servicios Internet via la línea telefónica utilizan el protocolo PPP para establecer el enlace de red, y nosotros vamos a enfocar en este.
Aunque PPP incluye un método de autentificación, muchos proveedores requieren una autentificación en texto pleno, normalmente con un diálogo como lo escribimos en los capítulos iniciales (4.1). Podemos realizar la autentificación manualmente, pero también hay utilidades para automatizar este proceso, dos de ellos (los más usados) son ``chat'' y ``runscript''. Este último es parte de minicom. Para curios@s refiero a las páginas manuales de estos programas y a las noches interminables que pueden pasar cuando empiezan a experimentar con ellos. Sin embargo hay que mencionar una cosa: La autentificación en texto pleno es un atentado contra la seguridad y es preferible cambiar de proveedor antes de acceptar esta clase de anacronismo. La utilización de scripts de conexión requiere por lo general escribir la clave de una (o varias) cuentas en un archivo texto y por lo tanto directamente legible para quien tenga acceso al archivo. Por lo tanto aumentamos también con esto la vulnerabilidad de nuestro sistema.
En algunos casos el proveedor configuró el servidor de tal manera, que después de la autentificación se lanza inmediatamente el servidor ppp, en otros casos nosotros tenemos que iniciarlo desde una línea de comando remota, por ejemplo con el comando ``ppp<Enter>''. En ambos casos hay que lanzar a continuación inmediatamente el enlaze ppp localmente. Si nos estamos conectando con minicom u otro emulador de terminal tenemos que terminar este sin reinizialización del modem o corte del enlace. Terminar: porque el puerto serial va siendo bloqueando por cada aplicación que lo occupa, para que no haya conflictos en su uso; Sin reinizializar: normalmente los programas que usan un puerto serial modifican sus parametros al usarlo y tratan de reestablecer los parametros anteriores antes de ceder el dispositivo. En el caso de minicom se puede lograr estas dos condiciones con la secuencia de teclas: ``C-a q''.
La conexión transparente entre las dos computadoras ahora se utiliza para realizar una conexión TCP/IP, mediante dos dispositivos de red, que se crean transitoriamente mediante el daemon pppd (en caso de una máquina Unix). Este es un programa que lee caracteres en su stdin y escribe en el stdout. Si lo lanzamos, especificando como uno de los parámetros de la línea de comandos un dispositivo de caracteres, pppd utiliza este dispositivo como stdin/stdout, en nuestro caso le especificamos entonces el puerto serial donde está conectado el modem.
pppd realiza la conexión con el pppd remoto en tres etapas:
Existen dos formas de autentificación: PAP y CHAP.
La clave puede archivarse en /etc/ppp/pap-secrets en forma encriptada (unix-crypt) y se puede exigir que solamente secretos encriptados sean acceptados (en la configuración del daemon remoto - pruebelo con su proveedor). Crypt hoy en día no es una encripción fiable, cualquier computadora común puede descubrir un secreto encriptado con unix-crypt dentro de minutos.
pppd /dev/ttyS0 modem crtscts defaultroute noauthPara averiguar problemas en una conexión se pueden utilizar las siguientes opciones:
# Nombre_de_cuenta Nombre_de_Computadora Secreto
l2310ka ikarus el_sol_quema
lodemas * 3i4fe0es65
# un asterisco es válido para cualquier nombre de computadora
# en todas las conexiones menos con (ikarus) se usara el nombre lodemas
# con su secreto (encriptado)
En muchos casos desde una computadora no solo se conecta a un proveedor, sino eventualmente a varios, o se utiliza por lo menos diferentes números telefónicos para el enlace. Sea así, o haya solamente una conexión, no es factible que todo el mundo aprenda utilizar minicom, syslog y pppd desde la línea de comando para poder configurar su conexión telefónica a redes. A continuación una lista de programas que se han hecho para facilitar la configuración y la conexión, pero primero algunos aspectos desde el punto de vista de su utilización.
Se requiere de la configuración que se pueda introducir las características para una conexión. Estas se dividen en dos grupos: el dispositivo a usar: puerto serial, velocidad, modem, y los parámetros de conexión: número telefónico del servidor, nombre de la cuenta, secreto, y parámetros: autentificación previa, CHAP/PAP entre otros. Tienen que poderse manejar diferentes configuraciones, que se identifican y manejan a través del ``nombre de la conexión''.
Después se necesita utilidades que facilitan el control de la conexión: establecerla, cortarla y poder saber si se está conectado o no, asi como el tiempo transcurrido, la cantidad de información enviada y recibida, y eventualmente el costo incurrido:
algunos conceptos que hacen pppd interesante para redes locales.
Junto con configuraciones de este estilo vienen práctico utilidades que permiten sumar el costo total de la conexión, llevar el control de cuando se establece y cuando se corta la conexión, y hasta que usuari@ ha consumido cuánto tiempo de conexión. El programa dialdcost y ip-account se occupan de estas tareas.
En vez de utilizar disquetes, o unidades externos de almacenamiento de datos como ZIP-Drives etc. para copiar datos entre una computadora portatil y su PC ``de casa'' y de oficina se pueden enlazar mediante una conexión de cable. Hay soluciones en MS-Dos y Windows, que siguen un esquema de maestro - esclavo donde una parte inicia la comunicación y domina el proceso de copiado. El programa posiblemente más antíguo es ``kermit'', que utiliza un puerto serial en ambas computadoras. El puerto serial tiene la desventaja de una velocidad baja y la serialización de los datos: un caracter requiere aproximadamente 10 ciclos para su transmisión.
Una salida de este cuello de botella es el uso del puerto parallelo, desvirtuando las funciones de las líneas de control. La idea es, utilizar cuatro líneas de datos (de los ocho disponibles) como salida parallela, y cuatro de las líneas de señalización como entradas. Estas líneas normalmente usa la impresora conectada para señalizarle a la computadora fallas como la falta de papel o su estado para recibir datos (occupado/listo). Las ``entradas'' se conectan a traves de un cable especialmente preparado a las ``salidas'' de otra computadora. Ambas computadora por supuesto utilizan un programa especial, con el cual pueden intercambiar datos serializados en nibbles. Haciendose común este arreglo fue tomado en cuenta por los diseñadores del hardware de las computadoras y actualmente hay puertos parallelos que pueden reconfigurar las ocho líneas de datos como entrada y/o salida y se pueden utilizar las líneas de señalización para el control. El hardware permite de esta manera a veces inclusive transferencia de bloques grandes de datos mediante DMA, aliviando la CPU del trabajo de controlar la conexión. Tambien esta forma de conexión utiliza un cable especial, de ningúna manera puede usarse un cable de impresora para interconexión de dos puertos parallelos.
Linux provee una alternativa al enfoque maestro - esclavo, proveyendo un dispositivo de red a través del puerto parallelo. El protocolo utilizado permite el transporte bidirecional de paquetes TCP/IP a través del puerto parallelo y se llama PLIP: Parallel Line Interface Protocol. El driver (módulo de núcleo) y el nombre del dispositivo de red llevan este mismo nombre.
Es recomendable que el driver se compilado como módulo de núcleo, y no integrado fijamente a este, ya que de esta manera se puede cargar y descargar de la memoria y liberar el puerto parallelo después de usar la conexión PLIP. Si se compila fijamente, no será posible utilizar el puerto parallelo para otra cosa, como por ejemplo la impresión.
PLIP requiere el uso de la interrupción hardware para el puerto paralelo.
Normalmente este no está activado, ya que el uso del puerto paralelo
para la impresión no lo requiere, y las interrupciones son un recurso
muy valioso como para ocuparlo innecesariamente. Por lo tanto necesita
activarse la interrupción, o a la hora de cargar el módulo del driver
del puerto paralelo (parport_pc), o posteriormente mediante el sistema
virtual de archivos 'proc'.
Notese, que hay (por lo menos) dos cambios esenciales entre las versiones de núcleo antes de y apartir de la versión 2.4. respectivamente. El primero es la ubicación de los módulos de núcleo en una jerarquía de directorios en /lib/modulos, y la segunda es la estructura de la información del núcleo en el sistema virtual de archivos /proc. A continuación se presenta la información pre-2.4. Para núcleos 2.4 y adelante hay que cambiar los parámetros.
número es el número de la interrupción que utiliza el hardware y
puert--s7s6s9o la dirección de I/O (entrada/salida) correspondiente.
En la siguente tabla se dan algunos valores estándard:
Puerto | I/O | Irq | nombre en dos
/dev/lp0 |
A esta altura tenemos un dispositivo de red disponible (se puede visualizar en /proc/net/dev), normalmente llamado ``plip0''. El próximo paso es:
Por supuesto tiene que efectuarse el anterior paso con éxito en las dos computadoras que se pretenden comunicar. A continuación hay que configurar en ambas el interfáz plip0 para que pueda comunicarse con la otra computadora. En la mayoría de los casos el enlace será temporal por lo que utilizamos números IP privados. Si queremos conectar una portatíl en diferentes computadoras de mesa, p.ej: en casa, en el trabajo, en la universidad, donde un cliente, etc. una posible configuración es, configurar en todas las computadoras de mesa el mismo número IP, digamos que sea: 192.168.255.254. La portatíl se configuraría con un número fijo, sea: 192.168.255.253, y se puede facilitar el trabajo dandole un nombre a estos números IP en el archivo /etc/hosts, p.ej plippc para las computadoras de mesa y pliplap para la portatil respectivamente.
Los enlaces plip tienen que configurarse con la opción punto a punto:
Para más completo aquí una sección del archivo /etc/hosts, que sería iqual para todas las computadoras
192.168.255.254 plippc
modprobe plip
ifconfig plip0 192.168.255.253 pointopoint 192.168.255.254
En caso que no se puede iniciar el uso del puerto como interfáz plip, puede ser que hay trabajos de impresión pendiente y el daemon de la cola de impresión ``lpd'' está occupando el puerto. Este hecho se puede revisar por ejemplo con el comando lpq, o lpstat. Si hay trabajos en cualquier cola de impresión que utilize el puerto de impresión en cuestión (revisar /etc/printcap y las entradas :lp=<puerto>:) tienen que terminarse o cancelarse estos primero.
El puerto paralelo puede existir con varias capacidades:
Si estamos planificando una red local podemos servirnos en muchos casos de la tecnología Ethernet, que permite una conexión rápida, de bajo costo y con un soporte tecnologíco bien fundamentado. Aunque hay diferentes formas de cableado se han establecido dos en especial: Thin-Ethernet, con un cable coaxial RG50 y conectores BNC (parecido pero diferente a los cables de antena de la televisión), y RJ45 o UTP, con cables de diez hilos y conectores parecidos a los conectores americanes de teléfono, pero mas anchos.
Este último cableado ha ganado mucha importancia a la medida que se han bajado los costos para un dispositivo llamado ``Hub'' o concentrador, que es necesario para interconectar las máquinas en esta configuración.
Cada computadora necesita una tarjeta Ethernet, también llamado adaptador de red Ethernet o NIC - ``Network Interface Card'', que en el caso del cableado UTP está conectada con el concentrador, en el caso del cable coaxial con dos máquinas ``vecinas'' a través de un adaptador ``T''.
Vamos a asumir resuelto el cableado y la interconexión de todas las computadoras conectadas a la red, entonces necesitamos un gestor para la tarjeta de red, que facilita la comunicación entre el tráfico de información en la red y el núcleo del sistema operativo Linux (o cual sea).
Cada tarjeta Ethernet tiene un número único, que le está programado al momento de la producción. Cuando la trajeta transmite un paquetes de información binaria hacia la red, este es marcadoscon este número único, el NIC-number, o ``hardware address'' - la dirección hardware. Este número es importante en primer lugar para la sincronización y aseguración de la información entre las diferentes tarjetas que participan en la red. En escasos casos se requiere, pero en estos es recomendable pegar en cada computadora como referncua una etiqueta con el número NIC de la tarjeta Ethernet, el cual consiste de ocho números hexadecimales de dos cifras separado por un doble punto ``:''.
Existen grandes variedades de productos de tarjetas Ethernet, que se diferencian básicamente por
Algunas tarjetas son configurables mediante el interfáz ISA-PnP, para el cual hay soporte completo en Linux.
Hasta ahora solo estuvimos hablando de tarjetas para el bus ISA. Todas las tarjetas con bus PCI alivian el problema de la configuración porque está tecnología permite una autoconfiguración mediante el BIOS o mediante el núcleo del sistema.
Ente las tarjetas para el bus ISA son los más conocidos:
ne, 3c501 (p.ej.), tulip, ne2k-pci, 3c59x, sis900, dmfe, 8139tooEstos tienen que cargarse, y en el caso de las tarjetas ISA con los parámetros respectivos de interrupción y dirección, para que el núcleo disponga de ellas. Supongamos una red (con computadoras viejas) con tarjetas compatibles con NE2000. Para facilitar nuestro trabajo garantizamos, que en todas las computadoras podemos configurar las tarjetas para la dirección 0x340 y la interrupción 10.
Para cargar el gestor necesitamos ejecutar el comando:
En otros sistemas se utilizará eventualmente una herramienta gráfica para agregar el ``dispositivo'' con sus parámetros al sistema, o se edita directamente el archivo /etc/modules.conf con la línea indicada, y el archivo /etc/rc.d/init.d/network o /etc/rc.d/init.d/modules para ejecutar ``modprobe ne''.
Aunque en una red estrictamente Intranet no hay necesidad de usar números IP específicos es recomendable utilizar siempre números de los rangos privados, por ejemplo del rango: 192.168.1.0-255
Este es suficiente para una red Internet en base a Ethernet, pués esta tecnología no permite conectar más que 64 computadoras. Los números que terminan en 0 y en 255 no pueden usarse, porque son reservado para mensajes especiales de la red.
El número que termina en 1 se le asigna preferiblemente a la computadora que funge como enlace con otros redes (gateway), si es que hay un enlace; y esta computadora eventualmente también se utiliza como servidor primario de nombres (DNS).
Entonces supongamos que tenemos cinco computadoras en una oficina, de las cuales la de la secretaria se utiliza para conectarse por teléfono con Internet. Les asignamos los números IP 192.168.1.1 (secretaria), -2, -3, -4 y -5.
Asignamos un nombre de dominio a nuestra red, que puede consistir de un solo nombre, pero decidimos usar un nombre similar a las convenciones del internet: cigarros.com, ya que nuestra oficina ficticia es de la empresa ``Cigarros del Caribe'', también ficticia.
Cada una de las computadoras necesita un nombre de computadora hostname, que la identifica, y que probablemente ya ha sido establecido a la hora de instalar el sistema operativo. Hay distribuciones de Linux, que no molestan al/a la usuario/a en el momento de la instalación y le ponen el nombre ``localhost'', o algun nombre fijo. En el momento de crear una red, no es recomendable tener varias computadoras con el mismo nombre, aunque se diferencian por su número IP.
Por lo general no es recomendable darle nombres secuenciales a computadoras en red, como por ejemplo pc01, pc02, al menos que se trata de una sala de cómputos, o una serie de cajas electrónicas (caja1, caja2, etc.) donde la númeración de la computadora corresponde a un esquema numérico físico. Tampoco es de utilidad general ponerle a la computadora el nombre de la persona que la utiliza, porque esta puede cambiar probablemente antes de cambiar la computadora, y al menos que se aprecia la confusión, requiere entonces una reconfiguració de la máquina. Un sistema practicable es, buscar una categoría de objetos y utilizar nombres de elementos concretos, ejemplos:
En nuestra red fictica usamos como nombres las funciones de los empleados que los usuan:
En nuestra red pequeña inicialmente creamos un archivo /etc/hosts, para dar a conocer la asociación entre nombres de computadoras y números IP, lo cual es por ende la identificación de la computadora en red:
192.168.1.1 secre.cigarros.com secre
192.168.1.2 jefe.cigarros.com jefe
192.168.1.3 venta.cigarros.com venta
192.168.1.4 almacen.cigarros.com almacen
192.168.1.5 jofer.cigarros.com jofer
Notese, que efectivamente cada computadora tiene dos (2) interfazes de red: el ``loopback'', llamado localhost y el interfaz ethernet. El interfaz loopback se utiliza como simúlacro para mandar información entre diferentes aplicaciones de red en la misma computadora. Ya que mensajes dirigido a la misma computadora no tienen que salire a la ``publicidad'' de la red no es necesario, que cada ``loopback'' en la red tenga un nombre diferente y como convención se utiliza el número IP 127.0.0.1 para el en todas las computadoras.
El número IP es asociado con su interfáz de red correspondiente a través de la utilidad de sistema ifconfig. El gestor para la tarjeta Ethernet al cargarse en la memoria revisa los dispositivos presentes (o indicados mediante los parámetros), y les asigna en el orden de detección símbolos de dispositivo. En el caso de las tarjetas Ethernet son: eth0, eth1, eth2...
En nuestras computadoras ficticias solo tenemos una tarjeta que siempre se llamará eth0, y que vamos a configurar por ejemplo en la computadora almacen:
También este pasó tiene que establecerse permanentemente en el inicio del sistema, que en algunas distribuciones se hace con la misma herramienta gráfica al momento de declarar todos los datos del interfáz a ``agregar'' al sistema. En Debian Gnu/Linux se edita el archivo /etc/network/interfaces:
iface eth0 inet static
address 192.168.1.4
netmask 255.255.255.0
Este proceso no esta muy estandardizado entre diferentes distribuciones, y el sistema RedHat, por ejemplo, tiene comandos parecidos, pero que no son compatible y se configuran de forma diferente al esquema que utiliza Debian.
Si suponemos, que en la computadora de la secretaria hay un faxmodem el cual está configurado para conectarse al Internet, podemos usar esta computadora como enlace para el resto de las computadoras en la red. Esto requiere la configuración de la computadora secre como ``Masquerading Firewall'', un procedimiento que no vamos a extender aquí.
Para las otras computadoras en la red basta ``saber'', que secre es el ``gateway'', la ruta para tráfico de red que no está destinado a la red local. Para estos fines hay un ``default'' rule, una regla por defecto que se puede aplicar en la tabla de enrutamiento con el comando:
En el archivo de configuración de los interfaces de Debian agregamos una línea:
iface eth0 inet static
address 192.168.1.4
netmask 255.255.255.0
gateway 192.168.1.1
Aún en redes tan pequeños como es cigarros.com es recomendable instalar un nameserver, un servidor de nombres de dominio. La ventaja es, que al cambiar el número IP de una computadora o agregar una computadora nueva a la red solo hay que cambiarlo en esta misma y en el servidor de dominio, para las otras computadoras el cambio está disponible a través del servicio de nombres. Otra ventaja es, que el servidor de nombres puede realizar todas las solicitudes de nombres a una red remota y memorizar las respuestas, si nuestra minired tiene un enlace hacia el Internet (caching nameserver). De esta manera, si se repite la solicitud (un caso muy común) la respuesta se da a través del servidor de nombres local y no se genera tráfico en el enlace remoto. También la configuración de las computadoras es más sencilla, ya que no hay que informarles sobre servidores remotos de nombres, lo que se hace complicado cuando el enlace es intermitente.
El archivo /etc/hosts de todas las computadoras se reduce al interfáz loopback y al interfáz Ethernet, por ejemplo enel caso de jofer:
192.168.1.5 jofer.cigarros.com jofer
nameserver 192.168.1.1
La configuración del servidor de nombres está fuera del marco del libro, pero esencialmente hay que crear dos archivos, uno para la resolución de nombres en númerios IP y uno para la resolución ``inversa'', con listas como:
jefe A 192.168.1.2.
venta A 192.168.1.3.
2. A jefe
3. A venta