La Red Digital de Servicios Integrados (RDSI) es una serie de estándares que especifican una red digital conmutada de propósito general. Una llamada RDSI crea un servicio de datos asíncrono punto a punto hacia el destino. RDSI suele distribuirse con un enlace de gran velocidad que se divide en varios canales discretos. Hay dos tipos de canales diferentes, los Canales B que son los que realmente transportan los datos del usuario y un sólo canal llamado canal D que se usa para enviar información de control a la RDSI para establecer llamadas y otras funciones. En Australia, por ejemplo, RDSI se distribuye con un enlace de 2Mbps que se divide en 30 canales discretos B de 64kbps con un canal D de 64kbps. Se pueden usar cualquier número de canales en cualquier momento y en cualquier combinación. Usted podría, por ejemplo, establecer 30 llamadas separadas a 30 destinos diferentes a 64kbps cada uno, o 15 llamadas a 15 destinos diferentes a 128kbps cada uno (dos canales por llamada), o sencillamente un pequeño número de llamadas y dejar el resto de los canales sin usar. Se puede usar un canal tanto para llamadas entrantes como salientes. La intención original de la RDSI fue permitir a las compañías de telecomunicaciones proporcionar un sólo servicio de datos que pudiera transmitir tanto teléfono (mediante voz digitalizada) como servicios de datos a su casa o negocio sin que tuviera que hacer ningún cambio especial de configuración.
Hay unas pocas maneras diferentes de conectar su ordenador a un servicio RDSI. Una manera es usar un dispositivo llamado Adaptador Terminal que se enchufa a la Unidad Terminadora de Red que su compañía local de telecomunicaciones tuvo que instalar al proporcionarle el servicio RDSI y que presenta unas cuantas interfaces serie. Uno de estos interfaces se usa para introducir instrucciones de establecimiento de llamadas y la configuración y los otros son los que realmente se conectan a los dispositivos de red que usarán los circuitos de datos cuando se hayan establecido. Linux trabajará con este tipo de configuración sin modificación alguna, simplemente tiene que tratar el puerto del Adaptador Terminal como trataría cualquier otro dispositivo serie. Otra manera, que es para la que está diseñado el soporte de RDSI del núcleo permite instalar una tarjeta RDSI en su máquina Linux y dejar entonces que sea el propio Linux quien maneje los protocolos y haga las llamadas.
Opciones de Compilación del Núcleo:
ISDN subsystem --->
<*> ISDN support
[ ] Support synchronous PPP
[ ] Support audio via ISDN
< > ICN 2B and 4B support
< > PCBIT-D support
< > Teles/NICCY1016PC/Creatix support
La implementación del núcleo de Linux de la RDSI soporta varios tipos diferentes de tarjetas RDSI. Son las que vienen listadas en las opciones de configuración del núcleo.
Algunas de estas tarjetas requieren que se les carguen ciertos programas antes de funcionar. Hay una utilidad aparte que hace esto.
Hay disponibles más detalles de cómo configurar el soporte RDSI de Linux
en el directorio /usr/src/linux/Documentation/isdn/
y también un
listado PUF (Pregutas de Uso Frecuente) dedicado a isdn4linux
en
http://www.lrz-muenchen.de/~ui161ab/www/isdn
. (Puede pulsar sobre
la bandera inglesa para la versión en inglés).
Una nota al respecto de PPP. El conjunto de protocolos PPP operará
tanto sobre lineas serie síncronas como asíncronas. El demonio PPP
(pppd
) que se suele distribuir para Linux sólo soporta el modo
asíncrono. Si desea ejecutar los protocolos PPP sobre el servicio RDSI,
necesitará una versión especial modificada. En la documentación
anteriormente mencionada encontrará detalles de cómo encontrarlo.
En
http://www.insflug.org/documentos/RDSI-Como/
tiene a su
disposición un documento con detalles específicos de la configuración en
España.
Los nombres de los dispositivos PLIP son `plip0
', `plip1
' y
`plip2
'.
Opciones de Compilación del Núcleo:
Network device support --->
<*> PLIP (parallel port) support
plip (Parallel Line IP), se parece a SLIP en que se usa para proporcionar conexiones punto a punto entre dos máquinas, excepto en que está diseñado para usar los puertos paralelos de impresora de la máquina en lugar de los puertos serie (se incluye un diagrama de cableado en la sección de diagramas de cableado más adelante). Como es posible transmitir más de un bit a la vez con un puerto paralelo, es posible obtener mayores velocidades con la interfaz plip que con los dispositivos serie estándar. Además, puede aprovecharse incluso el más sencillo de los puertos paralelos, el puerto de impresora, en lugar de tener que comprar una UART 16550AFN, comparativamente más cara, para los puertos serie. PLIP usa mucha CPU si lo comparamos con un enlace serie y casi seguro que no será una buena opción si puede obtener algunas tarjetas Ethernet baratas, pero funcionará cuando no esté disponible nada más y además lo hará bastante bien. Se puede esperar una tasa de transferencia de alrededor de 20 kilobytes por segundo cuando el enlace está funcionando correctamente.
Los controladores de dispositivo de PLIP compiten con el controlador de dispositivo paralelo por el hardware del puerto paralelo. Si desea usar ambos controladores deberá compilar los dos como módulos para asegurarse de que es capaz de elegir qué puerto quiere que use PLIP y qué puertos usará como dispositivos para la impresora. Lea el Modules mini-Howto para obtener más información sobre la configuración de los módulos en el núcleo.
Por favor tenga en cuenta que algunos portátiles usan circuitería que no funcionará con PLIP porque no permiten algunas combinaciones de señales en las que se basa PLIP, que las impresoras no usan.
El interfaz plip
de Linux es compatible con el Crynwyr Packet Driver
PLIP y esto significa que puede conectar su máquina Linux a una máquina DOS
que esté ejecutando cualquier clase de programas tcp/ip mediante plip
.
En la serie de núcleos 2.0.* los dispositivos PLIP están asignados a puertos e IRQ como sigue
dispositivo i/o IRQ
----------- ----- ---
plip0 0x3bc 5
plip1 0x378 7
plip2 0x278 2
Si sus puertos paralelos no se ajustan a alguna de las combinaciones de encima
entonces tendrá que cambiar la IRQ de un puerto usando el parámetro irq
de
la orden ifconfig
. Asegúrese de que activa las IRQ de los puertos de
impresora en la ROM BIOS antes, si es que dispone de esa opción. Como
alternativa, puede especificar las opciones io=
e irq=
como
argumentos a insmod
, si usa módulos. Por ejemplo:
root# insmod plip.o io=0x288 irq=5
La operación PLIP se controla con dos retardos, cuyos valores por defecto
suelen ser correctos. Posiblemente necesite incrementarlos si tiene una
máquina un tanto lenta, en cuyo caso los temporizadores a incrementar
están en la otra máquina. Hay un programa llamado plipconfig
que
permite cambiar la configuración de los temporizadores sin recompilar el
núcleo. Viene con muchas distribuciones Linux.
Para configurar una interfaz plip, necesitará invocar las siguientes órdenes (o añadirlas a su guión de iniciación del sistema):
root# /sbin/ifconfig plip1 pliplocal pointopoint plipremota
root# /sbin/route add plipremota plip1
Aquí, el puerto usado es el que está en la dirección E/S 0x378
;
pliplocal
y plipremota
son los nombres o direcciones IP usadas para
los extremos del cable PLIP. Personalmente, prefiero tenerlas en mi base de
datos /etc/hosts
:
# entradas plip
192.168.3.1 pliplocal
192.168.3.2 plipremota
El parámetro pointopoint
tiene el mismo significado que para SLIP, en el
que especifica la dirección de la máquina en el otro extremo del enlace.
En casi todos los aspectos, se puede tratar una interfaz plip
como si
fuese una interfaz SLIP
, excepto que no se puede (ni se necesita)
usar dip
ni slattach
.
Para obtener más información al respecto de PLIP, acuda al PLIP mini-Howto.
Durante el desarrollo de las versiones 2.1 del núcleo, se cambió la implementación del puerto paralelo, hacia una configuración mejor.
Opciones de compilación del núcleo:
General setup --->
[*] Parallel port support
Network device support --->
<*> PLIP (parallel port) support
El nuevo código de PLIP se comporta como el anterior (se usan las mismas
órdenes ifconfig
y route
que en la sección anterior, pero la
iniciación del dispositivo es diferente debido a la avanzada implementación del
manejo del puerto paralelo).
El «primer» dispositivo PLIP siempre es denominado plip0
, siendo
éste el que primero detecta el sistema, de manera similar a lo que ocurre
con los dispositivos Ethernet. El verdadero puerto paralelo que se va a
usar es uno de los que estén disponibles, tal como se muestra en
/proc/parport
. Por ejemplo, si sólo tiene un puerto paralelo,
sólo tendrá un directorio llamado /proc/parport/0
.
Si el núcleo no detecta la IRQ usada por el puerto, insmod plip
fallará; en este caso simplemente tendrá que escribir el número correcto en
/proc/parport/0/irq
y reinvocar insmod
.
Hay disponible información completa al respecto del puerto paralelo en el
archivo Documentation/parport.txt
, parte de las fuentes de su
núcleo.
Los nombres de los dispositivos PPP son ppp0
, ppp1
, etc. Los
dispositivos están numerados de forma secuencial de manera que el primer
dispositivo configurado recibe el 0
.
Opciones de compilación del Núcleo:
Networking options --->
<*> PPP (point-to-point) support
La configuración del PPP está cubierta en detalle en el PPP-Como,
http://www.insflug.org/documentos/PPP-Como/
.
pppd
.
Si es tan afortunado como para tener una conexión semi-permanente a la red y quiere hacer que su máquina establezca automáticamente la conexión PPP si se pierde, existe un truco sencillo para hacerlo.
Configure el PPP de tal manera que pueda ser iniciado por el usuario
root
ejecutando la orden:
# pppd
Asegúrese de que tiene configurada la opción -detach
en el fichero
/etc/ppp/options
. Entonces, inserte la siguiente línea en el fichero
/etc/inittab
, bajo las definiciones de getty
.
pd:23:respawn:/usr/sbin/pppd
Esto hará que el programa init
ejecute y monitorice el programa pppd
y que lo reinicie automáticamente si muere.
Los nombres de los dispositivos SLIP son sl0
, sl1
, etc. siendo
asignado el 0
al primer dispositivo configurado y el resto incrementando
secuencialmente según van siendo configurados.
Opciones de compilación del núcleo:
Network device support --->
[*] Network device support
<*> SLIP (serial line) support
[ ] CSLIP compressed headers
[ ] Keepalive and linefill
[ ] Six bit SLIP encapsulation
El SLIP (Serial Line Internet Protocol) le permite usar tcp/ip sobre una línea serie, sea una línea de teléfono con un módem, o una línea dedicada. Por supuesto para usar SLIP necesitará tener acceso a un servidor SLIP de algún tipo. Muchas universidades y empresas de todo el mundo proporcionan acceso mediante SLIP.
Slip usa los puertos serie de su máquina para transportar datagramas IP.
Para hacerlo debe tomar el control del dispositivo serie. Los dispositivos
SLIP se denominan sl0
, sl1
, etc. ¿Cómo se corresponden a sus
dispositivos serie? El código de red usa lo que denominados una llamada
ioctl (i/o control - control de e/s) para convertir los dispositivos
serie en dispositivos SLIP. Se le proporcionan dos programas
que pueden hacer esto, y se llaman dip
y slattach
.
dip
(Dialup IP) es un sofisticado programa capaz de programar la
velocidad del dispositivo serie, ordenar a su módem que llame al otro extremo
del enlace, identificarle automáticamente en el servidor remoto, examinar los
mensajes que le envía el servidor y obtener información tal como su dirección
IP y ejecutar las ioctl necesarias para conmutar su puerto serie al
modo SLIP. dip
tiene una gran capacidad para ejecutar guiones
(scripts) y esto lo puede explotar para automatizar el procedimiento de
autenticación.
Puede encontrarlo en:
ftp://metalab.unc.edu/pub/Linux/system/Network/serial/dip/dip337o-uri.tgz
.
Para instalarlo, intente lo siguiente:
usuario% cd /usr/src
usuario% gzip -dc dip337o-uri.tgz | tar xvf -
usuario% cd dip-3.3.7o
root# make install
El Makefile
asume la existencia de un grupo denominado uucp
,
pero puede que usted quiera cambiarlo a dip
o SLIP
dependiendo de su configuración.
slattach
es un programa muy sencillo comparado con dip
, muy
fácil de usar, pero no tiene la sofisticación de dip
. No tiene
capacidad para ejecutar guiones, todo lo que hace es configurar su dispositivo
serie como dispositivo SLIP. Asume que tiene toda la información que necesita
y la línea serie se establece antes de que lo invoque. slattach
es
ideal para usarlo donde necesite una conexión permanente al servidor, como un
cable físico o una línea dedicada.
Debería usar dip
cuando su enlace a la máquina servidora de SLIP es un
módem, o algún otro enlace temporal. Debería usar slattach
cuando
disponga de una línea dedicada, quizá un cable, entre su máquina y el servidor,
y no se necesita ejecutar ninguna acción especial para hacer que el enlace
funcione. Mire la sección
Conexión Permanente con Slip para más información.
configurar SLIP se parece mucho a configurar una interfaz Ethernet (lea la sección Configuración de un dispositivo Ethernet más atrás). Sin embargo, hay unas pocas diferencias clave.
Antes que nada, los enlaces SLIP son diferentes a las redes Ethernet en que sólo hay dos máquinas en la red, una en cada extremo del enlace. Al contrario que con Ethernet que está disponible para su uso nada más que termine de cablear, con SLIP, dependiendo del tipo de enlace que tenga, puede que tenga que iniciar la conexión de red de alguna manera especial.
Si está usando dip
entonces esto no debería hacerlo en el momento de
arrancar, sino algo más adelante, cuando esté preparado para usar el enlace. Es
posible automatizar este procedimiento. Si está usando slattach
entonces probablemente quieras añadir una sección a su fichero
rc.*
correspondiente. Esto lo describiremos pronto.
Hay dos tipos principales e servidores SLIP: servidores de direcciones IP
dinámicas y servidores de direcciones IP estáticas. Casi cualquier
servidor SLIP le pedirá al conectar una identificación y una contraseña.
dip
puede proporcionar estos datos automáticamente.
Un servidor estático de SLIP es aquél en el que se le ha dado una dirección IP
que es exclusivamente suya. Cada vez que conecte al servidor, tendrá que
configurar su puerto SLIP con esa dirección. El servidor estático de SLIP
contestará a la llamada del módem, posiblemente le pregunte su nombre de
usuario y contraseña, y entonces encaminará cualquier datagrama destinado a su
dirección mediante esa conexión. Si tiene un servidor estático, entonces puede
que quiera añadir una entrada con su dirección IP y el nombre de su máquina (ya
que sabe cuales serán) en /etc/hosts
. También debería configurar
algunos otros ficheros como: rc.*
, host.conf
,
resolv.conf
, /etc/HOSTNAME
y rc.local
. Recuerde que
cuando configure rc.*
, no necesita añadir ninguna orden especial para
la conexión SLIP ya que es dip
el que hace todo el trabajo duro al
configurar la interfaz. Necesitará proporcionarle a dip
la información
apropiada de manera que configure la interfaz por usted después de ordenarle al
módem que establezca la llamada y de darle de alta en el servidor SLIP.
Si esta es la manera de trabajar de su servidor SLIP entonces puede pasar
a la sección
Uso de Dip para aprender a configurar
dip
de forma apropiada.
Un servidor dinámico de SLIP es aquél que le asigna una dirección IP al azar, a partir de una reserva de direcciones, cada vez que se registra. Eso significa que no hay garantías de que tenga una dirección en particular cada vez, y esa dirección puede ser usada por otra persona después de que usted haya desconectado. El administrador de red que configuró el servidor SLIP habrá asignado un rango de direcciones para que el servidor SLIP las use, cuando el servidor recibe una nueva llamada entrante, localiza la primera dirección sin asignar, guía a quien llama a través del procedimiento de registro y entonces imprime un mensaje de bienvenida que contiene la dirección IP que se le ha asignado, para entonces proceder a usar esa dirección IP durante toda la llamada.
La configuración para este tipo de servidor es similar a la configuración para un servidor estático, excepto en que debe añadir un paso en el que obtiene la dirección IP que el servidor le ha asignado y configura su dispositivo SLIP con ella.
De nuevo, dip
hace el trabajo duro y las nuevas versiones son
suficientemente sofisticadas no sólo como para registrarle, sino también como
para leer automáticamente la dirección IP impresa en el mensaje de bienvenida y
almacenarla de manera que pueda configurar el dispositivo SLIP con ella.
Si esta es la manera de trabajar de su servidor SLIP, entonces puede pasar a la
sección
Uso de Dip para aprender a configurar
dip
de forma apropiada.
Como se explicó anteriormente, dip
es un programa potente que puede
simplificar y automatizar el proceso de llamada a el servidor SLIP, registro,
inicio de la conexión y configuración de tus dispositivos SLIP con las órdenes
ifconfig
y route
apropiadas.
Esencialmente, para usar dip
escribiremos un «guión dip», que es
básicamente una lista de órdenes que dip
comprende y que le dicen
cómo debe realizar cada una de las acciones que usted quiere que haga. Eche un
vistazo al fichero sample.dip
que viene con dip
para hacerse
una idea de cómo funciona. dip
es un programa bastante potente, con
muchas opciones. No las va a encontrar todas aquí, y tendrá que mirar la
correspondiente página man
, el README
y los ficheros de ejemplo que
vendrán con su versión de dip
.
Fíjese en que el guión sample.dip
asume que está accediendo a un
servidor SLIP estático, por lo que su IP ya se conoce de antemano. Las nuevas
versiones de dip
incluyen, para los servidores SLIP dinámicos, una
orden que puede usarse para leer y configurar automáticamente el dispositivo
SLIP con la dirección IP que el servidor dinámico le asigna. El ejemplo
siguiente es una versión modificada y traducida del sample.dip
que
viene con dip337j-uri.tgz
y probablemente sea un buen punto de
partida. Puede que quiera grabarlo como /etc/guiondip
y editarlo para
que se ajuste a su configuración.
#
# sample.dip Programa de soporte de conexión para Dialup IP
#
# Este fichero (debería mostrar) muestra el uso de DIP
# Este fichero debería funcionar para los servidores dinámicos
# de tipo Annex, si usted usa un servidor estático entonces utilice
# el fichero sample.dip que viene en el paquete dip337-uri.tgz
#
#
# Versión: @(#)sample.dip 1.40 20/07/93
#
# Autor: Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
#
main:
# Lo siguiente es configurar el nombre y dirección del otro extremo
# La máquina a la que llamo se llama 'xs4all.hacktic.nl'
# (== 193.78.33.42)
get $remote xs4all.hacktic.nl
# Asignar 255.255.255.0 como máscara de red de sl0
netmask 255.255.255.0
# Asignar el puerto serie y velocidad deseados
port cua02
speed 38400
# Reiniciar el módem y la línea terminal
# ¡Esto parece darle problemas a algunas personas!
reset
# ¡Nota! Valores "estándar" predefinidos de "errlevel"
# 0 - OK
# 1 - CONNECT
# 2 - ERROR
#
# Puede cambiarlos buscando "addchat()" en *.c...
# Nos preparamos para llamar.
send ATQ0V1E1X4\r
wait OK 2
if $errlvl != 0 goto problema_con_modem
dial 555-1234567
if $errlvl != 1 goto problema_con_modem
# Estamos conectados. Registrarse en el sistema.
login:
sleep 2
wait ogin: 20
if $errlvl != 0 goto problema_al_registrarse
send MILOGIN\n
wait ord: 20
if $errlvl != 0 goto clave_erronea
send MIPASSWD\n
loggedin:
# Ahora estamos registrados.
wait SOMEPROMPT 30
if $errlvl != 0 goto error_de_prompt
# Ordenamos al servidor que entre en modo SLIP
send SLIP\n
wait SLIP 30
if $errlvl != 0 goto error_de_prompt
# Obtenemos nuestra dirección IP del servidor y la asignamos
# Aquí asumiremos que tras ordenar al servidor SLIP que entre
# en modo SLIP, nos imprime nuestra dirección IP.
get $local remote 30
if $errlvl != 0 goto prompt_error
# Configurar los parámetros operativos de SLIP
get $mtu 296
# Aseguramos que se ejecuta "route add -net default xs4all.hacktic.nl"
default
# ¡Decimos hola y arrancamos!
done:
print CONNECTED $local ---> $rmtip
mode CSLIP
goto salir
error_de_prompt:
print Se produjo un TIME-OUT esperando a que arrancara sliplogin
goto error
problema_al_registrarse:
print Hubo un problema esperando por el mensaje Login:...
goto error
clave_erronea:
print Hubo un problema esperando por el mensaje Password:...
goto error
problema_con_modem:
print Hubo un problema con el módem...
error:
print FALLÓ LA CONEXIÓN a $remote
quit
salir:
exit
El ejemplo anterior asume que estamos llamando a un servidor SLIP
dinámico. Si está llamando a un servidor SLIP estático,
entonces debería funcionarle el fichero sample.dip
que viene con
dip-337-uri.tgz
.
Cuando se le da a dip
la orden get $local
, busca en el
texto que viene del otro extremo una cadena que se parezca a una dirección IP,
osea una cadena de números separados por caracteres «.». Esta modificación se
hizo específicamente pensando en los servidores SLIP dinámicos, para
que el proceso de leer la dirección IP pudiera ser automatizado.
El ejemplo anterior creará automáticamente una ruta por defecto a través del
enlace SLIP. Si no es lo que deseaba, a lo mejor porque tiene una conexión
Ethernet que debería ser la ruta por defecto, entonces elimine la orden
default
del guión. Después de que haya acabado de ejecutarse el guión,
si ejecuta la orden ifconfig
, verá que hay un dispositivo
sl0
. Este es el dispositivo SLIP. Si fuese necesario, podría modificar
su configuración a mano, después de que la orden dip
haya acabado,
usando las órdenes ifconfig
y route
.
Por favor, observe que dip
le permite elegir varios protocolos
diferentes en la orden mode
. El ejemplo más común es cSLIP
que es SLIP con compresión. Por favor, tenga en cuenta que ambos extremos del
enlace deben concordar, por lo que debe asegurarse de que elija lo que elija,
sea la mismo que lo que tenga el servidor.
El ejemplo anterior es bastante robusto y debería copar con la mayoría de los
errores. Para obtener más información, haga el favor de dirigirse a las páginas
man de dip
. Naturalmente podría, por ejemplo, codificar un guión para
que haga cosas como llamar de nuevo al servidor si no consigue conectarse tras
un periodo de tiempo determinado, o incluso hacer intentos con varios
servidores si tiene acceso a más de uno.
Si lo que tiene es un cable entre dos máquinas, o es tan afortunado como para
tener una línea dedicada, o algún otro tipo de conexión en serie permanente
entre su máquina y otra, entonces no necesita la complejidad de usar
dip
para establecer un enlace serie. slattach
es una utilidad
muy sencilla de usar, que le permite suficiente funcionalidad como para
configurar una conexión.
Como la conexión será permanente, querrá añadir algunas órdenes al fichero
rc
pertinente. En esencia, todo lo que necesita hacer para tener una
conexión permanente es asegurarse de que configura el dispositivo serie a la
velocidad correcta y que lo pasa a modo SLIP. slattach
permite hacer
esto con una sola orden. Añade lo siguiente al fichero rc
pertinente:
#
# Activar una conexión SLIP estática por línea dedicada
#
# configuramos /dev/cua0 para 19.2kbps y cslip
/sbin/slattach -p cslip -s 19200 /dev/cua0 &
/sbin/ifconfig sl0 IPA.IPA.IPA.IPA pointopoint IPR.IPR.IPR.IPR up
#
# Fin de SLIP estático
Nota del traductor: A fecha de la traducción, la serie estable del
núcleo era la 2.2
. En la serie 2.2
, los dispositivos
/dev/cuaX
han sido completamente eliminados, unificándolos a los
/dev/ttySX
.
Donde:
representa su dirección IP.
representa la dirección IP del extremo remoto.
slattach
asigna el primer dispositivo SLIP sin asignar al dispositivo
serie especificado. slattach
comienza por sl0
. Por lo tanto
la primera orden slattach
asocia el dispositivo SLIP sl0
al
dispositivo serie especificado y sl1
la siguiente vez, etc.
slattach
le permite configurar varios protocolos diferentes con el
argumento -p
. En su caso podrá usar tanto SLIP
como
cSLIP
dependiendo de si quiere o no usar compresión. Nota: ambos
extremos deben estar de acuerdo sobre si usar compresión o no.
Si tiene una máquina, quizá conectada a una red, a la que le gustaría que otra
máquina pudiese llamar y proporcionar servicios de red, entonces necesita
configurarla como servidor. Si quiere usar SLIP como protocolo de línea serie,
entonces tiene tres opciones para configurar su máquina Linux como servidor
SLIP. Yo preferiría usar la primera presentada, sliplogin
, ya que
parece la más sencilla de configurar y entender, pero presentaré un sumario de
cada una, para que pueda tomar su propia decisión.
sliplogin
.
sliplogin
es un programa, que puede asignar a los usuarios de SLIP en
lugar de un «shell» normal, que convierte una línea terminal en una línea SLIP.
Esto le permite configurar una máquina Linux tanto como servidor de
direcciones estáticas, obteniendo los usuarios la misma dirección cada vez que
llaman, o como servidor de direcciones dinámicas, donde los usuarios
obtienen una dirección que no tiene que ser necesariamente la misma que la
última vez que llamaron.
El que llama se registrará igual que en un proceso estándar de login
,
introduciendo su nombre de usuario y contraseña, pero en lugar de presentarle
un intérprete de órdenes normal tras el registro, se ejecuta sliplogin
, el
cual busca en su fichero de configuración (/etc/slip.hosts
) una
entrada con el nombre de usuario que corresponda a la persona que llamó. Si lo
encuentra, entonces configura la línea como «clean» y de 8 bit, y hace una
llamada ioctl para convertir la disciplina de la línea a SLIP. Cuando se
completa este proceso, toma lugar la última parte de la configuración, en la
cual sliplogin
invoca un guión de intérprete de órdenes que configura la
interfaz SLIP con la dirección ip y máscara de red relevantes, y asigna
las rutas apropiadas. Este guión suele llamarse /etc/slip.login
pero, de forma parecida a getty
, si ciertos usuarios requieren una
iniciación especial, entonces puede crear guiones de configuración llamados
/etc/slip.login.nombreusuario
que serán ejecutados específicamente
para ellos en lugar del que hay por defecto.
También hay tres o cuatro ficheros que necesitará configurar para tener
sliplogin
en funcionamiento. Detallaré cómo y dónde obtener los programas
y cómo se configura cada uno. Los ficheros son:
/etc/passwd
, para las cuentas de los usuarios que llaman.
/etc/slip.hosts
, para almacenar la información única a cada
usuario que llama.
/etc/slip.login
, que lleva la configuración del encaminamiento
que necesite hacerse para el usuario.
/etc/slip.tty
, que será necesario sólo si está configurando el
servidor para asignar direcciones dinámicas y contiene una tabla de direcciones
a asignar.
/etc/slip.logout
, que contiene las órdenes necesarias para dejar
las cosas a punto una vez el usuario cuelgue o cierre la conexión.
sliplogin
Puede que ya tenga el paquete sliplogin
instalado como parte de su
distribución; si no es así entonces podrá obtenerlo de:
ftp://metalab.unc.edu/pub/linux/system/Network/serial/sliplogin-2.1.1.tar.gz
.
El fichero tar contiene tanto las fuentes, como los programas ya compilados y
una página man.
para asegurar que sólo son capaces de ejecutar sliplogin
los usuarios
autorizados, debería añadir una entrada al fichero /etc/group
similar
a la siguiente:
..
slip::13:radio,fred
..
Cuando instale el paquete sliplogin
, el Makefile
cambiará el grupo al
que pertenece el programa sliplogin
por slip
, y esto significa que
sólo los usuarios que pertenezcan a ese grupo serán capaces de ejecutarlo. El
ejemplo anterior autorizará ejecutar sliplogin
sólo a los usuarios
radio
y fred
.
Para instalar los ejecutables en el directorio /sbin
y la página de
man en la sección 8, haga lo siguiente:
# cd /usr/src
# gzip -dc .../sliplogin-2.1.1.tar.gz | tar xvf -
# cd sliplogin-2.1.1
# <..edite el Makefile si no usa shadow password..>
# make install
Si quiere recompilar los ejecutables tras la instalación, añada un make
clean
antes de make install
. Si quiere instalar los ejecutables en
cualquier otro lado, necesitará editar la regla install
en el
Makefile
.
Por favor, lea los ficheros README
que vienen con el paquete si quiere
obtener más información.
/etc/passwd
para máquinas que usan Slip.
Lo normal es que cree algunos login especiales en el fichero
/etc/passwd
para la gente que llama con Slip. Una convención
comúnmente aceptada es usar el nombre de la máquina que llaman prefijándole una
letra «S» mayúscula. Por tanto, por ejemplo, si la máquina que llama se
denomina radio
, entonces podrías crear una entrada en /etc/passwd
que se pareciese a:
Sradio:FvKurok73:1427:1:radio SLIP login:/tmp:/sbin/sliplogin
Realmente no importa cómo se llame la cuenta, siempre y cuando tenga algún significado para usted.
Nota: el que llama no necesita ningún directorio personal, ya que no se le
presentará ningún intérprete de órdenes, por tanto /tmp
es una buena
elección. Observe también que se usa sliplogin
en lugar de un intérprete
de órdenes normal.
/etc/slip.hosts
El fichero /etc/slip.hosts
es el fichero en el que sliplogin
busca las entradas que se correspondan al nombre de login que de las que
obtiene los detalles de configuración para esa persona. Es aquí donde
se especifica la dirección ip y la máscara de red que se le asignará al que
llama y que serán configuradas para su uso. Las entradas para dos máquinas,
una con configuración estática para radio
y otra, con configuración
dinámica, para la máquina albert
, deberían parecerse a lo siguiente:
#
Sradio 44.136.8.99 44.136.8.100 255.255.255.0 normal -1
Salbert 44.136.8.99 DYNAMIC 255.255.255.0 compressed 60
#
Las entradas del fichero /etc/slip.hosts
son
DYNAMIC
entonces se asignará una dirección ip basada en la información
contenida en el fichero /etc/slip.tty
del que se habló antes.
Nota: deberá usar al menos la versión 1.3
de sliplogin para que esto
funcione.
255.255.255.0
para una máscara de red para una clase
C.
normal
y compressed
.
Nota: Para los campos 2 y 3 puede usar tanto el nombre de la máquina como su
dirección IP en notación decimal. Si usted usa nombres entonces tendrán que ser
resueltos, esto es, su máquina deberá ser capaz de localizar la dirección ip de
esos nombres o en caso contrario el guión fallará cuando sea ejecutado. Puede
probarlo intentando hacer telnet hacia esos nombres, y si obtiene el mensaje
Trying nnn.nnn.nnn...
entonces es que su máquina ha sido capaz de
encontrar una dirección ip para ese nombre. Si obtiene el mensaje Unknown
host
, entonces no lo consiguió. En este caso, use una dirección ip en notación
decimal o ponga a punto la configuración de su resolutor de nombres. (Ver
sección
Resolución de Nombres).
Los modos slip más comunes son:
para habilitar el SLIP normal sin compresión.
para habilitar la compresión de cabeceras de van Jacobsen (cSLIP)
Por supuesto, son mutuamente exclusivos. Puede usar uno o el otro, pero no
ambos. Para obtener más información sobre las otras opciones disponibles, ve a
las páginas de man
.
/etc/slip.login
.
Después de que sliplogin haya examinado el /etc/slip.hosts
y
encontrado una entrada que concuerde, intentará ejecutar el fichero
/etc/slip.login
para configurar la interfaz SLIP con su dirección ip y
su máscara.
El fichero de ejemplo /etc/slip.login
proporcionado con el paquete
sliplogin
se parece a esto:
#!/bin/sh -
#
# @(#)slip.login 5.1 (Berkeley) 7/1/90
#
# fichero de login genérico para una línea SLIP. sliplogin
# lo invoca con los parámetros:
# $1 $2 $3 $4, $5, $6 ...
# unidadSLIP veloctty pid los argumentos de la entrada en slip.host
#
/sbin/ifconfig $1 $5 pointopoint $6 mtu 1500 -trailers up
/sbin/route add $6
arp -s $6 <hw_addr> pub
exit 0
#
Podrá comprobar que este guión se limita a usar las órdenes ifconfig
y
route
para configurar el dispositivo SLIP con su dirección ip,
dirección ip remota y máscara de red y crea una ruta hasta la dirección remota
a través del dispositivo SLIP. Exactamente lo mismo que haría si estuviera
usando la orden slattach
.
Advierta también el uso de Proxy ARP para asegurar que otras
máquinas en la misma Ethernet que la máquina servidora sabrán cómo llegar
a la máquina que llama. El campo <hw_addr>
(dirección hardware)
debería ser la dirección hardware de la tarjeta Ethernet de la máquina. Si su
máquina servidora no está en una red Ethernet, entonces puede eliminar
completamente esa línea.
/etc/slip.logout
.
Cuando la llamada se corta, querrá asegurarse de que se restaura el estado
normal del dispositivo serie para que otras personas sean capaces más adelante
de registrarse correctamente. Esto se lleva a cabo mediante el uso del fichero
/etc/slip.logout
. Es de formato bastante sencillo y se le llama con
los mismos argumentos que al fichero /etc/slip.login
.
#!/bin/sh -
#
# slip.logout
#
/sbin/ifconfig $1 down
arp -d $6
exit 0
#
Todo lo que hace es desactivar (down) la interfaz, lo que borrará la ruta que
se creó anteriormente. También usa la orden arp
para borrar cualquier
proxy que se estableciese. De nuevo, no necesita la orden arp
en el
guión si su máquina servidora no tiene un puerto ethernet.
/etc/slip.tty.
Si está usando asignación dinámica de direcciones ip (tiene configurada
cualquier máquina con la palabra clave DYNAMIC
en el fichero
/etc/slip.hosts
, entonces deberá configurar el fichero
etc/slip.tty
para que tenga una lista de las direcciones que se
asignarán a qué puerto. Sólo necesita este fichero si desea que su servidor
asigne de manera dinámica las direcciones a los usuarios.
El fichero es una tabla que lista los dispositivos tty
que darán
soporte a las conexiones SLIP y las direcciones ip que deberían asignarse
a los usuarios que llaman a ese puerto.
Su formato es como sigue:
# slip.tty tty -> correspondencias IP para SLIP dinámico
# formato: /dev/tty?? xxx.xxx.xxx.xxx
#
/dev/ttyS0 192.168.0.100
/dev/ttyS1 192.168.0.101
#
Lo que dice esta tabla es que a la gente que llame al puerto
/dev/ttyS0
y que tengan la palabra DYNAMIC
en su campo de
dirección remota en el fichero /etc/slip.hosts
les será asignada una
dirección de 192.168.0.100
.
De esta manera sólo necesita asignar una dirección por puerto para todos los usuarios que no requieran una dirección dedicada para ellos. Esto le ayuda a mantener bajo mínimos los números de dirección para evitar su escasez.
dip
.
Déjeme empezar diciendo que parte de la información que sigue viene de las
páginas de manual de dip
, donde se documenta brevemente la manera de
usar Linux como servidor SLIP. por favor, preste atención, puesto que lo
siguiente está basado en el paquete dip337o-uri.tgz
y probablemente no
ses aplicable a otrs versiones de dip
.
dip
tiene un modo de operación de entrada, en el cual asigna
automáticamente una entrada para el usuario que lo invoque y configura la línea
serie como enlace SLIP de acuerdo con la información que encuentre en el
fichero /etc/dipshosts
. Este modo de operación de entrada se activa
invocando a dip
como diplogin
. Es así por tanto la manera de
usar dip
como servidor SLIP, creando cuentas especiales donde se usa
diplogin
como login shell.
Lo primero que necesita hacer es un enlace simbólico como sigue:
# ln -sf /usr/sbin/dip /usr/sbin/diplogin
Después necesitará añadir entradas tanto al fichero /etc/passwd
como
al /etc/diphosts
. Las entradas que necesita hacer tienen el formato
que sigue:
Para configurar Linux como servidor SLIP con dip
, se necesita crear
algunas cuentas SLIP especiales para los usuarios, en las que se usa
dip
(en modo entrada) como login shell. Se sugiere la convención
de comenzar los nombres de las cuentas SLIP con una S
mayúscula, como por
ejemplo Sfredm
.
Una entrada en /etc/passwd
para un usuario SLIP se parece a:
Sfredm:ij/SMxiTlGVCo:1004:10:Fred:/tmp:/usr/sbin/diplogin
^^ ^^ ^^ ^^ ^^ ^^ ^^
| | | | | | \__ diplogin como login shell
| | | | | \_______ Directorio `home'
| | | | \____________ Nombre completo del usuario
| | | \_________________ ID de grupo del usuario
| | \_____________________ ID del usuario
| \_______________________________ Contraseña cifrada
\__________________________________________ Nombre de Login del Usuario SLIP
Después de que el usuario se registre, el programa login
, si encuentra
y autentica al usuario, ejecutará la orden diplogin
. dip
,
cuando es invocado como diplogin
, sabe que debe asumir automáticamente
que va a ser usado como intérprete de órdenes de login. Cuando comienza
como diplogin
, la primera cosa que hace es usar la función
getuid()
para tomar el userid de quien fuera que lo invocó. Entonces
busca en el fichero /etc/diphosts
la primera entrada que se
corresponda bien con el userid, bien con el dispositivo tty
por el que
entró la llamada y se configura apropiadamente. Por razones de sentido común,
para que se pueda dar a un usuario una entrada en el fichero diphosts
,
o bien para que se le dé la configuración por defecto, es posible montar el
servidor de tal manera que se pueda tener una mezcla de usuarios a los que se
asigne la dirección de forma estática o dinámica.
dip
añadirá automáticamente una entrada Proxy-ARP si se le invoca
en modo entrada, por lo que no tendrá que preocuparse de hacerlo manualmente.
/etc/diphosts
lo usa dip
para buscar configuraciones ya
establecidas para máquinas remotas. Estas máquinas remotas pueden ser usuarios
que llaman a la máquina Linux, o pueden ser máquinas a las que usted llamas
desde su máquina.
El formato general para /etc/diphosts
es como sigue:
..
Suwalt::145.71.34.1:145.71.34.2:255.255.255.0:SLIP uwalt:CSLIP,1006
ttyS1::145.71.34.3:145.71.34.2:255.255.255.0:Dynamic ttyS1:CSLIP,296
..
Los campos son:
nombre de login
: el que devuelve getpwuid(getuid())
o el
nombre de la tty.
sin uso
: para compatibilidad con passwd
Dirección Remota
: dirección IP de la máquina que llama, puede
ser tanto la numérica como el nombre.
Dirección Local
: dirección IP de esta máquina, en número o por
nombre.
Máscara de red
: en notación decimal puntuada.Campo de comentario
: ponga aquí lo que quiera.protocolo
: Slip, cSLIP, etc.MTU
: número decimal.
Un ejemplo de entrada en /etc/net/diphosts
para un usuario SLIP
remoto podría ser:
Sfredm::145.71.34.1:145.71.34.2:255.255.255.0:SLIP uwalt:SLIP,296
lo que especifica un enlace SLIP con dirección remota 145.71.34.1
y MTU de
296
, o:
Sfredm::145.71.34.1:145.71.34.2:255.255.255.0:SLIP uwalt:CSLIP,1006
que especifica un enlace capaz de usar cSLIP con dirección remota
145.71.34.1
y MTU de 1006
.
Por tanto, todos los usuarios que desee que tengan asignado un acceso de
llamada con IP estática deberían tener una entrada en /etc/diphosts
.
Si quiere que los usuarios que llaman a un puerto en particular y, que los
detalles sean asignados dinámicamente, deberá tener entonces una entrada para
el dispositivo tty
y no una basada en el usuario. Debería configurar
al menos una entrada para cada dispositivo tty
que usen los usuarios
para asegurar que hay disponible para ellos una configuración adecuada
independientemente al módem al que llamen.
Cuando un usuario se registra recibirá las preguntas normales sobre su
cuenta y contraseña en las que debería introducir su userid o contraseña
de SLIP-login. Si se verifican, entonces el usuario no verá mensajes
especiales y sólo tendrá que cambiar el modo SLIP en su extremo. El
usuario debería ser capaz de conectar y quedar configurado con los
parámetros relevantes del fichero diphosts
.
dSLIP
.
Matt Dillon,
dillon@apollo.west.oic.com
ha escrito un paquete que no sólo hace
llamadas SLIP entrantes sino también llamadas salientes. El paquete de Matt es
una combinación de pequeños programas y guiones que coordinan las conexiones
por usted. Necesitará tener instalado tcsh
ya que al menos uno de los
guiones lo necesita. Matt proporciona una copia ejecutable de la utilidad
expect
ya que la necesita otro de los guiones. Además necesitará tener
algo de experiencia con expect
para hacer que este paquete funcione a
su gusto, pero no deje que eso le desanime.
Matt ha escrito unas instrucciones de instalación muy buenas en el fichero
README
, por lo que no pienso repetirlas.
Puede obtener el paquete dSLIP de su sitio de origen:
ftp://apollo.west.oic.com/pub/linux/dillon_src/dSLIP203.tgz
o desde:
ftp://metalab.unc.edu/pub/Linux/system/Network/serial/dSLIP203.tgz
Léase el fichero README
y cree las entradas en /etc/passwd
y
/etc/group
antes de hacer make install
.