7.4. Usando dip

Lo visto anteriormente es simple. Sin embargo, se pueden automatizar estas tareas. Es mucho m�s pr�ctico tener solamente un orden que realice los pasos necesarios para activar la l�nea serie, que el m�dem llame al proveedor de Internet, comenzar la sesi�n, activar la disciplina de l�nea SLIP, y por �ltimo, configurar la interfaz de red. Para todo esto esta la orden dip.

dip significa Dialup IP (enlace IP telef�nico). Fue escrito por Fred van Kempen y ha sufrido bastantes modificaciones de mucha gente. Es actualmente utilizado por todo el mundo. La versi�n dip337p-uri, se encuentra en casi todas las distribuciones de GNU/Linux actuales, o tambi�n a trav�s de FTP en metalab.unc.edu.

dip provee un int�rprete para un lenguaje de guiones simple que puede manejar el m�dem , convertir la l�nea a modo SLIP y configurar las interfaces. Este lenguaje de guiones es poderoso a la hora de manejar diferentes configuraciones.

Para poder configurar la interfaz SLIP, dip requiere privilegios de superusuario. Puede hacerse cambiando al programa dip el bit setuid como root para que todos los usuarios puedan conectarse a cualquier servidor SLIP sin tener privilegios de superusuario. Esto es muy peligroso, ya que una configuraci�n incorrecta del encaminamiento de dip puede estropear el encaminamiento en su red. Aun peor, esto dar� a los usuarios la posibilidad de conectarse a cualquier servidor SLIP y lanzar desde all�, peligrosos ataques a su red. Si desea que los usuarios puedan activar conexiones SLIP, escriba peque�os programas empaquetados por cada perspectiva de conexi�n a los diferentes servidores SLIP y que esos peque�os programas invoquen a dip con guiones (scripts) espec�ficos para establecer las conexiones. Bien escritos, estos programas pueden ser f�cilmente habilitados con el bit setuid de superusuario (root).[1] Una alternativa un poco m�s flexible, es darle a los usuarios, acceso verdadero a dip como superusuario, utilizando alguna herramienta como por ejemplo sudo.

7.4.1. Un gui�n de ejemplo

Asumiendo que el servidor al cual nos queremos conectar v�a SLIP se llama cowslip, y que se ha escrito un gui�n para que dip lo interprete llamado cowslip.dip, el cual har� la conexi�n. Al programa dip, hay que pasarle como argumento, el nombre del gui�n:
    # dip cowslip.dip
    DIP: Dialup IP Protocol Driver version 3.3.7 (12/13/93)
    Written by Fred N. van Kempen, MicroWalt Corporation.
    connected to cowslip.moo.com with addr 192.168.5.74
    #

El codigo del gui�n es mostrado en el Ejemplo 7-1.

Una vez conectado a cowslip y activo el SLIP, dip pasar� a ejecutarse en segundo plano. Ahora puede empezar a trabajar con sus los programas habituales de red a trav�s del enlace SLIP. Para terminar la conexi�n, simplemente invoque a dip con el par�metro –k. Esto env�a la se�al de cortar (hangup) a dip, junto con el identificador de proceso que dip escribi� en el fichero /etc/dip.pid al comenzar:
    # dip -k

En el lenguaje de guiones que dip interpreta, las palabras clave precedidas con el signo de d�lar significan nombre de variables. dip tiene un conjunto de variables que est�n listadas a continuaci�n. $remote y $local, por ejemplo, contienen los nombres de los computadores remoto y local involucrados en la conexi�n SLIP.

Las dos primeras declaraciones en el ejemplo, son �rdenes get, que es la forma en que dip declara una variable. Aqu�, los nombres de las computadoras local y remota son vlager y cowslip, respectivamente.

las cinco declaraciones siguientes preparan la terminal de l�nea y el m�dem . la orden reset env�a la cadena de reinicio al m�dem. La siguiente sentencia limpia el b�ffer de salida del m�dem , para conseguir que el di�logo de registro (login) en las siguientes l�neas trabaje correctamente. Este dialogo es extremadamente simple: simplemente marca 41988, el n�mero telef�nico de cowslip, y ae regiatra en la cuenta Svlager usando la contrase�a knockknock. La orden wait hace que dip espere una cadena dada como primer argumento; el n�mero dado como segundo argumento es el tiempo (en segundos) que se debe esperar por esa cadena. la orden if ,en el proceso de entrada, revisa que no se produzcan errores.

Las �rdenes finales, tras un correcto registro, son default, que hace que el enlace SLIP sea la ruta predeterminada a todos los servidores, y mode, que activa el modo SLIP en la l�nea y configura la interfaz y la tabla de rutas.

7.4.2. Referencia de dip

En esta secci�n, se har� referencia a las �rdenes de dip m�s usadas. usted puede obtener un vistazo de todos los �rdenes reconocidos invocando a dip en modo prueba e introduciendo la orden help. Para conocer m�s sobre la sintaxis de una orden, se debe teclear sin argumentos. Recuerde que esto no funcionar� con �rdenes que no aceptan argumentos. El siguiente ejemplo ilustra el funcionamiento de la orden help:

    # dip -t
    DIP: Dialup IP Protocol Driver version 3.3.7p-uri (25 Dec 96)
    Written by Fred N. van Kempen, MicroWalt Corporation.
    Debian version 3.3.7p-2 (debian).
    
    DIP> help
    DIP knows about the following commands:
    
    	beep         bootp        break        chatkey      config       
    	databits     dec          default      dial         echo         
    	flush        get          goto         help         if           
    	inc          init         mode         modem        netmask      
    	onexit       parity       password     proxyarp     print        
    	psend        port         quit         reset        securidfixed 
    	securid      send         shell        skey         sleep        
    	speed        stopbits     term         timeout      wait         
    
    DIP> echo
    Usage: echo on|off
    DIP>

En los p�rrafos siguientes, los ejemplos que muestran el cursor DIP > indican como teclear un orden en modo prueba y cual ser� su respuesta. Los ejemplos mostrados sin el cursor, deben tomarse como trozos de guiones.

7.4.2.1. Las �rdenes del m�dem

dip provee algunas �rdenes para configurar el puerto serie y el modem . Algunos son obvios como la orden port, que selecciona el puerto serie, y speed, databits, stopbits, y parity, que configura los par�metros m�s comunes de la l�nea. La orden m�dem selecciona el tipo de m�dem . Actualmente, s�lo esta soportado el tipo HAYES (en may�sculas). Se debe proveer a dip con el tipo de m�dem , o �ste se negar� a ejecutar las �rdenes dial y reset. La orden reset env�a la cadena de reinicio (reset) al m�dem; el tipo de cadena depende del modelo y marca del m�dem. Para modems compatibles con Hayes, esta cadena es ATZ.

la orden flush puede usarse para vaciar todas las respuestas que el m�dem envi� hasta ese momento. De otro modo, un gui�n de di�logo que ejecute un reset podr�a confundirse si leyese un OK como respuesta de alg�n orden anterior.

La orden init selecciona la cadena de inicializaci�n enviada al m�dem antes de marcar. predeterminada, para modems Hayes es “ATE0 Q0 V1 X1”, que activa el eco de las �rdenes y los c�digos de retorno, adem�s selecciona el modo de marcado a ciegas (no comprueba si la l�nea tiene tono). Los modems modernos, vienen con una buena configuraci�n de fabrica, as� que esto es un poco innecesario, pero no hace da�o alguno.

La orden dial env�a la cadena de inicializaci�n al m�dem y llama al sistema remoto. La orden predeterminada para modems tipo Hayes es ATD.

Notas

[1]

diplogin debe activarse con el bit setuid como root. Examine la secci�n al final de este cap�tulo.