SLIP-MiniComo

Manuel Soriano m_soriano@dapsys.ch
Maquetador Linuxdoc-SGML: Antonio Ismael Olea González,
olea@iname.com 2:345/108.9@fidonet.org


Cómo configurar Linux para usar TCP/IP por cable serie mediante SLIP.

1. Antes de nada

Hay que considerar una cosa, qué es lo que se quiere configurar, si un cliente o un servidor de comunicaciones o, por qué no, ambos.

Lo primero que hay que hacer es recompilar el kernel habilitando los siguientes parámetros:

``Networking support'' CONFIG_NET y
``TCP/IP networking'' CONFIG_INET y
``Assume subnets are local'' CONFIG_INET_SNARL y
``Network device support?'' CONFIG_NETDEVICES y
``Dummy net driver support'' CONFIG_DUMMY y
``SLIP (serial line) support'' CONFIG_SLIP y
``CSLIP compressed headers'' CONFIG_SLIP_COMPRESSED y
``PPP (point-to-point) support'' CONFIG_PPP y
``PLIP (parallel port) support'' CONFIG_PLIP y

2. Configuración de un servidor de comunicaciones:

Para ello usaremos el programa dip que hace el trabajo de configuración y rutado por nosotros.

Modificar el fichero /etc/hosts y poner las direcciones IP de ambas máquinas.

75.0.1.10      obe_slip  # maquina servidora o local
75.0.1.11      ide_slip  # maquina cliente o remota (la que llama, leche)

Creamos un usuario slip con la utilidad adduser.

Como adduser cambia los permisos del directorio al usuario, hacer lo siguiente:

chown root /tmp
chgrp root /tmp
chmod 777 /tmp

@:-)

Editamos el fichero /etc/group e incluimos un nuevo grupo slip, la línea quedará:

slip::16:Sidefix

NOTA : el número de grupo debe ser el más bajo posible después de man.

Editamos el fichero /etc/diphosts e incluimos la siguiente línea:

Sidefix::75.0.1.11:75.0.1.10:255.255.255.0::CSLIP,296

Esta línea se compone de campos separados por ":" . Vamos a ver qué quiere decir cada campo.

Nos aseguramos que en /sbin tenemos:

lrwxrwxrwx   1 root     root           10 Apr 30 19:35 dip -> dip-3.3.7l*
-rws--x--x   1 root     bin         40964 Feb 16 13:37 dip-3.3.7l*
lrwxrwxrwx   1 root     root           10 Apr 30 19:35 diplogin -> dip-3.3.7l*

Si no los tenemos, instalar la serie N de disquetes (porting Slackware)

Editar el fichero /etc/inittab y asegurarnos que tenemos la siguiente línea:

Se asume que la conexión se hará por el segundo puerto serie (COM2)

Para conexión directa, sin módem:

s2:45:respawn:/sbin/agetty 38400 ttyS1

Para los que tengan mgetty primero va el puerto (ttyS1) y luego la velocidad.

Para conexión con módem:

d2:45:respawn:/sbin/agetty -mt60 38400,19200,9600,2400,1200 ttyS1

(Ojo una almohadilla indica comentario)

Una vez el fichero inittab correcto hacer lo siguiente:

init q

Bueno, el servidor está configurado, vamos a ver el cliente;

En esta máquina nos debemos asegurar que existen los mismos programas dip en /sbin.

También modificaremos el fichero /etc/hosts, pero con la salvedad de que:

75.0.1.10      obe_slip  # maquina servidora o remota
75.0.1.11      ide_slip  # maquina cliente o local (la que llama, leche)

Asegurarnos que en el fichero /etc/inittab la línea correspondiente al módem o conexión está deshabilitada, comentada con #.

El usuario que quiere llamar debe tener un fichero de ordenes dip (chat.dip) que se debe parecer a algo como ésto:

  main:
    get $remote obe_slip
    get $local ide_slip
    port cua1   # (cua0 para com1 o el que quiera)
    speed 38400

    # Resetea el modem y la linea
    reset

    # Cadena de inicializacion del modem
    send ATQ0V1E1X4\r
    wait OK 2
    if $errlvl != 0 goto modem_trouble
    # con esto llamas obe_slip (mi maquina)
    dial 003461770949
    if $errlvl != 1 goto modem_trouble

    # Estamos conectados
  login:
    sleep 2
    send \r\n\r\n
    wait ogin: 20
    if $errlvl != 0 goto login_error
    send Sidefix\n
    wait ord: 20
    if $errlvl != 0 goto password_error
    send Sidefix\n
    if $errlvl != 0 goto password_error
    wait ord: 20
    if $errlvl != 0 goto password_error
    send \n # (esto es el password definido en /etc/dip.hosts)
  loggedin:
    default
    # Se acabo
  done:
    print CONECTADO $local ---> $remote
    mode CSLIP
    goto exit

  prompt_error:
    print TIME-OUT esperando el inicio de SLIPlogin ...
    goto error

  login_trouble:
    print Problemas esperando el login: prompt...
    goto error

  password:error:
    print Problemas esperando el password: prompt...
    goto error

  modem_trouble:
    print Problemas con el modem...
  error:
    print CONEXION con $remote fallada
    quit

  exit:
    exit

Para iniciar una conversación, hacer:

dip chat.dip

Según lo que parezca por pantalla, actuar en consecuencia.

Si aparece el mensaje:

CONECTADO 75.0.1.11 ---> 75.0.1.10

Entonces ya tienes acceso a todos los servicios TCP para esa conexión.

Para finalizar la conexión, en la máquina cliente, hacer:

dip -k

Para configurar una máquina cliente/servidor de comunicaciones serie, crear todo lo que se ha visto en este texto en una sola máquina. Ojo con los puertos serie dependiendo si queremos ser cliente, servidor o cliente/servidor.

Para los que quieran usar PPP o SLIP sin compresión, en los ficheros de configuración (/etc/dip.hosts y chat.dip), cambiar CSLIP por PPP o SLIP. Fácil.

Bueno pues esto es todo, que te diviertas comunicándote.

3. Anexo: El INSFLUG

El INSFLUG forma parte del grupo internacional Linux Documentation Project, encargándose de las traducciones al castellano de los Howtos (Comos), así como la producción de documentos originales en aquellos casos en los que no existe análogo en inglés.

En el INSFLUG se orienta preferentemente a la traducción de documentos breves, como los COMOs y PUFs (Preguntas de Uso Frecuente, las FAQs. :) ), etc.

Diríjase a la sede del INSFLUG para más información al respecto.

En la sede del INSFLUG encontrará siempre las últimas versiones de las traducciones: www.insflug.org. Asegúrese de comprobar cuál es la última versión disponible en el Insflug antes de bajar un documento de un servidor réplica.

Se proporciona también una lista de los servidores réplica (mirror) del Insflug más cercanos a Vd., e información relativa a otros recursos en castellano.

Francisco José Montilla, pacopepe@insflug.org.