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:
Ejemplo de una conexión en red |
El enrutamiento en realidad es parte de las capas inferiores. En la figura 7 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:
Las tarjetas ethernet (NIC - Network Interface Card) existen para diferentes buses internos: ISA, PCI y otros. Según el circuito integrado que realiza la función de la codificación/decodificación hay diferentes “driver”, los más conocidos son NE2000, DEC/Tulip, 3COM. El dispositivo es accesible en linux como /dev/eth*.
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 configuración de estos dispositivos y redes se discutirá a través de ejemplos de aplicación concreta en otros capítulos.
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.
Los números IP en Internet son asignados por instituciones coordinadas (p.ej. www.nic.ni), para que ningunas dos computadoras tengan configurados el mismo número. Si configuramos un Intranet nosotros tenemos que cumplir esta tarea. Existen playas de números “privadas” que son reservados en Internet para la configuración de Intranets. Un rango que usamos en este libro para ilustrar nuestros ejemplos es: 192.168.0.0 - 192.168.255.255
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 dispositivo
El 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 | ttyS0 | 0x3f8 | 4 |
Com2 | ttyS1 | 0x2f8 | 3 |
Com3 | ttyS2 | 0x378 | ? |
Com4 | ttyS3 | 0x278 | ? |
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
|
ATZ | Reinicializar Modem | ||
ATH | 1/0 | “levantar”/colgar el telefono | A veces solo se puede usarATH y ATH0 |
ATD | # telefónico | Marcar un número (dial) | El modem espera estableceruna conexión de datos. Estose indica con “CONNECT”.En caso que no se puede conectardespués de un tiempo se recibeun mensaje de error. |
ATA | Contestar (Answer) | Si entra una llamada el modemenvia el texto “RING” altermnial. Si se contesta el modemespera sincronizarse con unmodem remoto y señaliza estehecho con “CONNECT”. | |
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 (3.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:
pppd puede ser configurado de una manera que le permite asignar al lado opuesto uno de un rango de números IP (eventualmente el rango solo consiste de un número), esto se hace cuando pppd es usado como “servidor”. En “nuestro” lado local podemos acceptar la configuración propuesta remotamente, pero también se podría insistir en un número IP fijo. Otro parámetro importánte para el daemon local es, “defaultroute” que inserta en la tabla de enrutamiento de paquetes IP una salida por defecto a través del dispositivo transitorio que ha creado el daemon (ppp0, ppp1, etc.). Al cerrar la conexión la ruta por defecto original se restablece. De nuevo: si utilizamos ppp para conexiones, por ejemplo via un enlace radio hacia un subdominio de nuestra red comercial intranet, no se establecería una ruta por defecto, sino solamente para este subdominio, por lo cual la configuración sería diferente.
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.
A continuación una línea de comando típica, que puede usarse experimentalmente para conectarse con un daemon ppp remoto:
pppd /dev/ttyS0 modem crtscts defaultroute noauth
Para averiguar problemas en una conexión se pueden utilizar las siguientes opciones:
Los archivos que contienen los secretos para PAP y para CHAP tienen la misma estructura:
# 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)
Por fín hay que saber, que por lo general pppd es ejecutado sin opciones de la línea de comando, ya que todas las opciones se pueden grabar en los archivos de configuración, en primero lugar en /etc/ppp/options.
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.
Ejemplo de uso de ppp para una red local |
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ón2.
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.
donde:
En la siguente tabla se dan algunos valores estándard:
Puerto | I/O | Irq | nombre en dos |
/dev/lp0 | 0x378 | 7 | LPT1: |
/dev/lp1 | 0x278 | 5 | LPT2: |
/dev/lp2 | 0x3bc | - | En tarjetas monocromaticas |
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:
en la portatil y
en la(s) computadora(s) de mesa respectivamente.
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
Una configuración ejemplar que funcionaría con la mayoría de las computadoras actuales puede ser:
modprobe plip
ifconfig plip0 192.168.255.253 pointopoint 192.168.255.254
Este segmento de comandos se puede grabar en una archivo script, p.ej. llamado plipon y ejecutar cuando se quiere conectar las dos computadoras. Obviamente hay que modificar la última línea de acuerdo a qué máquina se trata.
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 las dos computadoras disponen de puertos paralelos con dispositivos mejorados se puede posiblemente utiliza el modo de transferencia de un byte completo llamado también Modo 1. Para esto se requiere de un cable especial, que solamente se debe utilizar con las dos computadoras configurados para este modo, ya que de otra manera podrían causarse daños en los dispositivos de hardware. En resumen: El modo estándard, o Modo 0 utiliza un cable “especial”, llamado cable “Parallel-Null-Modem” (que es el mismo que utiliza LapLink para MS-DOS/Windows), y que no puede dañar al hardware (del puerto de impresión), pero por supuesto no puede usarse para imprimir. Este modo es lento ya que solo transmite un nibble - medio byte a la vez. El modo más rápido, Modo 1, requiere de: puertos mejores que SPP en ambos lados, un cable “especial” y que las computadoras estén configuradas ambas en Modo 1. La información como hacer estos cables se encuentra p.ej. en los archivos fuente del núcleo en el subdirectorio Documentation/networking/PLIP.txt