Provided by: manpages-es-extra_0.8a-19_all bug

NOMBRE

       dip - maneja conexiones IP del tipo "dialup"

SINOPSIS

       dip [-v] [-m mtu] [-p proto]  scriptfile
       dip -t [-v]
       dip -i [-a] [-v]
       diplogin [username]
       diplogini
       dip [-v] -k [-l tty_line]

DESCRIPCIÓN

       dip  maneja  las  conexiones necesarias para enlaces IP conmutados, como lo son PPP o puede manejar tanto
       conexiones entrantes como salientes, usando palabras clave de seguridad para  las  conexiones  entrantes.
       Las conexiones de salida utilizan la biblioteca del sistema dial(3) si ésta está disponible.

       La  primera  forma  interpreta  scriptfile  para  marcar  y  abrir la conexión IP.  (ver MODO DIALOUT más
       adelante).

       La opción -t ejecuta dip interactivamente (ver MODO COMANDO más adelante).  Esta es más útil mientras  se
       reunen datos para levantar un chat script.

       dip -i maneja las conexiones entrantes (ver MODO DIALIN más adelante) diplogin es equivalente a dip -i, y
       diplogini es equivalente a dip -i -a. Estas son principalmente para usar con versiones de login(1) que no
       pasan parámetros de línea de comando al programa en el shell.

       dip -k elimina un proceso existente dip, cerrando la conexión.

OPCIONES

       -a     Pregunta por el nombre de usuario y clave de acceso.

       -i     Actúa como un servidor de marcado entrante (dialin)(ver MODO DIALIN más adelante).

       -k     Elimina  el  proceso  dip  que ejecuta el dispositivo tty especificado (ver la opción -l), en otro
              caso, la invocación más reciente de dip.  Note que dip tiene el cuidado de no eliminar un  proceso
              iniciado por alguna otra persona (al menos que sea el root quien demande tal operación ;-))

       -l tty_line
              Indica la línea a ser eliminada (Requiere la opción -k)

       -m mtu Configura la Unidad de Transferencia Máxima (MTU, Maximum Transfer Unit) (296 por defecto)

       -p proto
              Configura el protocolo del línea. proto debe ser uno de los siguientes: LIP, CSLIP, PPP o TERM.

       -t     Ejecuta en modo de pruebas (ver MODO COMANDO más adelante).

       -v     Configura  el modo verboso. Este permite varias impresiones de depuración, incluyendo la escritura
              en pantalla de cada línea del chat script.

MODO COMANDO

       El primer uso posible de dip es como un programa interactivo para  levantar  una  conexión  IP  saliente.
       Esto puede hacerse invocando dip con la opción -t la cual significa  y más precisamente, te lleva al Modo
       de Comando (COMMAND-MODE) del programa dip. Este hecho te será recordado por el prompt DIP>  o  bien,  si
       también  especificaste  la  bandera de depuración -v te encontrarás con el prompt DIP [NNNN]> Este último
       prompt también muestra el valor actual de la variable global $errlvl la cual se utiliza mayormente cuando
       dip  corre en el modo script Para el modo interactivo, puede ser usado para determinar si el resultao del
       comando previo fue satisfactorio (OK) o no.

       La siguiente es una muestra tomada desde una sesión viva:

       $dip -t
       DIP: Dialup IP Protocol Driver version 3.3.7n-uri (7 Mar 95)
       Written by Fred N. van Kempen, MicroWalt Corporation.

       DIP> _

       Los comandos posibles se listan abajo (ver  COMANDOS).   Note  particularmente  el  comando  help.   Cada
       comando  muestra  un  mensaje  si  éste es invocado en forma incorrecta.  Experimente un poco para ver el
       efecto de esto, y eche un vistazo al archivo script de prueba, el cual también utiliza este  lenguaje  de
       comandos.  (Ver EJEMPLOS).

MODO DIALOUT

       La  segunda  forma  de usar dip es para iniciar conexiones salientes.  Para hacer las cosas más sencillas
       para la gente que tiene que manejar enlaces de este tipo, dip usa chat script  para  levantar  un  enlace
       hacia  un  sistema  remoto. Esto da al usuario una enorme flexibilidad a la hora de hacer la conexión, la
       cual, en otra circunstancia podría requerir varias opciones de líneas de comando.  El nombre de ruta  del
       script  para  ser  ejecutado  es  entonces  dado  como un simple argumento de dip. Si scriptfile no tiene
       extensión de archivo, dip automáticamente agregará la extensión ".dip".  Esto es simplemente  una  manera
       de agrupar scripts en un único directorio.

MODO DIALIN

       La  tercera manera posible de usar dip es como un shell de autenticación (login shell) para conexiones IP
       entrantes, como si se tratara de una conexión conmutada usando PPP o  SLIP.  Para  hacer  la  integración
       dentro  del  sistema  UNIX  existente  tan  fácil  como  sea posible, dip puede ser instalado simplemente
       nombrándolo como el shell de autenticación (login shell) en /etc/passwd.  Una muestra se vería como:

       suunet:ij/SMxiTlGVCo:1004:10:UUNET:/tmp:/usr/sbin/diplogin

       cuando el usuario suunet logra autenticarse, el programa login(1) fija  el  directorio  casa  en  /tmp  y
       ejecuta  el  programa  diplogin diplogin debe ser un enlace simbólico a dip, el cual quiere decir que dip
       debe ejecutarse en modo de entrada, input dip entonces trata de encontrar el nombre del  usuario  que  se
       autenticó (i.e el nombre correspondiente al identificador de usuario actual, tal como es entregado por la
       llamada del sistema .BR getuid (2)) en su archivo de base  de  datos.  Un  único  argumento  opcional  al
       programa dip en este modo puede ser el nombre de usuario que debe ser usado en esta muestra, sin importar
       el identificador de usuario actual.

       dip ahora examina /etc/diphosts para una entrada para el nombre de usuario dado.  Este  archivo  contiene
       lineas  de  texto  (muy similar al archivo estándar de palabras clave). Toda línea que inicie con # es un
       comentario.  De lo contrario, cada línea tiene siete elementos separados por dos puntos, con el formato
       user : password : remote host : local host : netmask :
             comments : protocol,MTU
       El primer campo de una línea es el nombre de usuario, el cual debemos concordar.

       El segundo campo puede contener una palabra clave cifrada. Si este campo no es  nulo,  dip  despliega  el
       mensaje  "External security password:", y la respuesta debe concordar con la palabra clave en este campo.
       Si el campo es "s/key" (verifica el valor  de  SKEY_TOKEN  en  dip.h)  y  dip  fue  compilado  con  S/Key
       habilitado,  entonces  la  autenticación  dip se llevará a cabo. (ver README.SKEY en el directorio fuente
       dip).

       El tercer campo contiene el nombre (o la dirección IP pura) del anfitrión remoto. Si se provee el  nombre
       de  un  anfitrión,  se dará inicio con el proceso usual para resolver una dirección, utilizando ya sea el
       nombre de un servidor o un archivo del anfitrión local.

       El cuarto campo contiene el nombre (o la dirección IP pura) del anfitrión local. Si se provee  un  nombre
       de anfitrión, éste se resuelve, tal como el nombre del anfitrión remoto en el tercer campo.

       El quinto campo contiene la máscara de red en notación punto decimal (como 225.255.255.0). Si está vacío,
       se utilizará por defecto 255.255.255.0.

       El sexto campo puede contener cualquier texto. No es usado por dip.

       Finalmente, el séptimo campo de una línea contiene una mezcla de banderas separadas por  comas.  Banderas
       posibles son:

         SLIP para indicar que debemos usar el protocolo SLIP.
         CSLIP Para indicar protocolo SLIP comprimido.
         PPP Para indicar que debemos usar protocolo PPP.
         number el cual nos da el parámetro MTU de esta conexión.

       Por favor note: la experiencia muestra que bloques más pequeños trabajan mejor. Usted *puede* definir MTU
       1500, pero eso no va a responder por su cordura !.

       Después de encontrar la línea correcta dip pone la línea de la terminal en modo RAW y solicita a la  capa
       de  red del sistema localizar un canal del protocolo deseado. Finalmente, si el canal logra ser activado,
       añade una entrada a la tabla de ruteo del sistema para hacer trabajar la conexión.

       dip ahora entra en un lazo de letargo sin fin, el cual  continúa  hasta  que  la  conexión  sea  abortada
       físicamente  (es  decir,  se bote la linea). En ese momento, dip elimina la entrada que había hecho en la
       tabla de ruteo del sistema, y libera el canal de protocolo hasta ahora usado para poder ser reusado. Éste
       entonces existe otra vez, haciendo espacio para otra sesión.

COMANDOS

       Los siguientes pueden aparecer en el script chat. La mayoría pueden ser usados en el modo de comandos:

       label: Define una etiqueta.

       beep [times]
              Emite un sonido en la terminal del usuario [esto varias veces]

       bootp [howmany [howlong]]
              Usa protocolo BOOTP para ir a buscar las direcciones IP locales y remotas.

       break  Envía un corte.

       chatkey keyword [code]
              añade a la colección de dip de palabras de respuesta del módem.  Por ejemplo,
              chatkey CONNECT 1
              duplicaría una de las entradas existentes

       config [interface|routing] [pre|up|down|post] {arguments...}
              Guarda  los  parámetros  de  configuración  de  la  interfaz  (esto puede ser deshabilitado por el
              administrador)

       databits 7|8
              Fija el número de bits de datos

       dec $variable [decrement-value|$variable]
              Decrementa una variable. El valor por defecto de decrement-value es 1.

       default
              Le dice a DIP que levante la ruta por defecto al anfitrión remoto al cual  hizo  la  conexión.  Si
              este  comando  no  está  presente  en  el  archivo  de  comandos,  la  ruta  por  defecto  no será
              fijada/cambiada.

       dial phonenumber [timeout]
              Marca el número indicado. El valor por defecto de  timeout es de 60 segundos. dip extrae la cadena
              que regresa el módem, y fija $errlvl de acuerdo con esta. Los codigos estándar son los siguientes:
                   0    OK (correcto)
                   1    CONNECT (conectar)
                   2    ERROR (error)
                   3    BUSY (ocupado)
                   4    NO CARRIER (sin portadora)
                   5    NO DIALTONE (sin tono de marcar)
              Usted puede cambiar o agregar a estos con el comando chatkey.

       echo on|off
              Habilita o deshabilita que se muestren loscomandos del modem.

       exit [exit-status]
              Sale del script dejando intacta y establecida la conexión [C]SLIP y dip corriendo.

       flush  Vacía la entrada en la terminal.

       get $variable [value | ask | remote [timeout_value | $variable]]
              Toma o solicita el valor de una variable.  Si el segundo parámetro es ask, se muestra un mensaje y
              el valor es leído por la entrada estándar. Si este es remote, este se lee desde la máquina remota.
              De otro modo, el segundo parámetro es una constante o otra variable que provea el valor.

       goto label
              Tranfiere control a la etiqueta en el chat script.

       help   Imprime una lista de comandos similar a esta

              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    port     quit     reset    securidf securid
                      send     shell    sleep    speed    stopbits term
                      timeout  wait

              DIP> _

       if expr goto label
              Evalúa algún código resuelto. El expr debe tener la forma
              $variable op constant
              donde op en una de: == != < > <= >=.

       inc $variable [increment-value|$variable]
              Incrementa una variable. El valor por defecto de increment-value es 1.

       init init-string
              Fija  la  cadena  de  inicio  (enviada al módem antes del marcado de entrada) a la cadena indicada
              (ATE0 Q0 V1 X1 por defecto) Por favor úsela!

       mode SLIP|CSLIP|PPP|TERM
              Fija el protocolo de línea (SLIP por defecto)

       modem modem-name
              Fija el tipo de módem (El valor por defecto, y el único valor legal en la actualidad es HAYES)

       netmask xxx.xxx.xxx.xxx
              Indica la máscara de red que queremos usar

       onexit .......
              La descripción  se  ha  perdido  -  mire  a  través  del  fuente  en  comman.c.   O  pregúntele  a
              <inaky@@peloncho.fis.ucm.es> - él lo escribió !.

       parity E|O|N
              Fija el tipo de paridad.

       password
              Pregunta por una palabra clave y la envía.

       proxyarp
              Solicita que sea fijado Proxy ARP

       print $variable
              Imprime el contenido de alguna variable.

       psend command [arguments]
              envía  la  salida  de command al controlador serial, pasando opcionalmente arguments a command. El
              UID es reiniciado al verdadero UID antes de ejecutar command.

       port tty_name
              Fija el nombre del puerto de la terminal que se va a usar, (Se asume la ruta /dev/)

       quit   Sale con el estado de salida distinto de cero.

       reset  Reinicia el modem (Envía "+++" y luego "ATZ".)

       securidf fixedpart
              Guarda la parte fija del idenfificador seguro de la palabra clave (SecureID password)

       securid
              Pregunta por la parte de la palabra clave generada por la tarjeta "ACE System SecureID". La  parte
              fija  de  la palabra clave debe ya haber sido guardada usando un comando secureidf.  Las dospartes
              son concatenadas y enviadas al servidor remoto terminal.

       send text-string
              Envía una cadena al controlador serial.

       shell command [parameters]
              Ejecuta command a través del  shell  por  defecto  (obtenido  desde  la  variable  de  SHELL)  con
              parameters  como  argumento de la línea de comandos. La sustitución de variables de Dip se realiza
              antes de la ejecución del comando. Si usted no quiere que un  parámetro  que  empiece  por  $  sea
              interpretado como una variable de dip, anteceda este por \.

       skey [timeout | $variable]
              Este  dice  a  dip  que  busque  un  envío  de  S/Key  desde el servidor terminal remoto. Nota del
              traductor: El párrafo anterior es un poco ambiguo. Se adjunta el texto en inglés. Si alguien tiene
              una  mejor  forma de traducirlo, favor comunicarmelo, lsolano@sol.racsa.co.cr.  "This tells dip to
              look for an S/Key challenge from the remote terminal server."  Entonces dip le pregunta al usuario
              por  la  palabra  clave secreta, genera la respuesta, y la envía al anfitrión remoto. El parámetro
              opcional timeout fija cuánto debe esperar dip para ver el envío.  $errlvl es fijado  en  1  si  el
              comando  skey llega al tiempo límite.  Si skey envía una respuesta exitosamente, $errlvl es fijado
              en 0.  Requiere soporte de S/Key para ser compilado.

       sleep time-in-secs
              Espera un momento.

       speed bits-per-sec
              Fija la velocidad del puerto (38400 por defecto) Note que la velocidad actual asociada con "38400"
              puede  ser  cambiada  usando  setserial(8)..  Además,  debes especificar aquí la velocidad real de
              puerto, en vista que dip le pone atención a set_hi y  sus  bits  por  sí  mismo.  También,  no  te
              preocupes  si pones la velocidad en "57600" y se reporta otra vez en "38400" - todo está bien, las
              banderas apropiadas se aplicaron y la velocidad real del puerto será la que tú dijiste  que  debía
              ser, por ejemplo, "57600"

       stopbits 1|2
              Fija el número de bits de parada.

       term   Inicia un modo terminal.

       timeout time-in-sec
              Fija  el  tiempo  límite.  Este define el periodo de inactividad de la línea, después del cual DIP
              forzará la línea a romper la conexión (y salir).

       wait text [timeout_value | $variable]
              Espera por la llegada de alguna cadena.

   VARIABLES ESPECIALES
       $errlvl
              Mantiene el resultado del comando previo.

       $locip Número IP del anfitrión local en notación puntual (por ejemplo, 128.96.41.50).

       $local Nombre completo en palabras del anfitrión local (por ejemplo sunsite.unc.edu).

       $rmtip Número IP del anfitrión remoto en notación punto.

       $remote
              Nombre completo en palabras del anfitrión remoto.

       $mtu   Unidad de Transferencia Máxima (máximo número de bytes transferidos de forma simultánea)

       $modem Tipo de modem (en la actualidad, el único valor válido es HAYES)

       $port  El nombre del puerto de la terminal que se va a usar. (Se asume la ruta /dev/)

       $speed tasa de transferencia entre el anfitrión local y el modem, en bits/seg.

EJEMPLOS

       He aquí un  ejemplo /etc/diphosts:

       #
       # diphost Este archivo describe un mapeo de nobres a direcciones
       #         para el porgrama DIP. Se usa para determinar cuál
       #         dirección IP del anfitrión usar en caso de una llamada entrante
       #         de un usuario.
       #
       # Versión:     @(#)diphosts        1.20 05/31/94
       #
       # Autor:  Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org>
       # Modificado:     Uri Blumenthal      <uri@watson.ibm.com>
       # Traducido al Español: Luis Carlos Solano <lsolano@sol.racsa.co.cr>
       #
       # name : pwd : hostname : local server: netmask: comments : protocol,mtu
       #==================================================
       sbonjovi::bonjovi:server1:netmask:MicroWalt "bonjovi" SLIP:SLIP,296
       sroxette::roxette:server2:netmask:MicroWalt "roxette" SLIP:CSLIP,296

       stephen:s/key:tuin:server3:netmask:S/Key Authenticated login:CSLIP,296

       # End of diphosts.

       Un chat script se vería similar a esto:

       #
       # sample.dip   Programa de soporte para conecxiones IP conmutadas
       #
       # Versión:     @(#)sample.dip 1.40 07/20/93
       #
       # Autor:  Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
       # Traducido al Español: Luis Carlos Solano <lsolano@sol.racsa.co.cr>
       #

       main:

         # Primero que todo, fijar nuestro nombre para esta conexio´n.
         # Me llamo "uwalt.hacktic.nl"  (== 193.78.33.238)
         get $local uwalt.hacktic.nl
         # Siguiente, fijar el nombre y dirección del otro lado
         # Mi máquina a la que llamo tiene por nombre  'xs4all.hacktic.nl' (== 193.78.33.42)
         get $remote xs4all.hacktic.nl
         # Fijar la máscara de red en sl0 a 255.255.255.0
         netmask 255.255.255.0
         # Fijar el puerto serial deseado y su velocidad
         port cua02
         speed 38400

         # Reinicial el modem y la línea terminal
         # Esto parece causarle poroblemas a algunas personas !
         reset

       # Nota: Valores "errlvl" pre-definidos "estándares"
       #    0 - OK (correcto)
       #    1 - CONNECT (conectar)
       #    2 - ERROR (error)
       #    3 - BUSY (ocupado)
       #    4 - NO CARRIER (sin portadora)
       #    5 - NO DIALTONE (sin tono de marcar)
       #
       # puedes cambiar esto cpm el comando chatkey

         # Prepárese para el marcado.
         send ATQ0V1E1X4\r
         wait OK 2
         if $errlvl != 0 goto modem_trouble
         dial 555-1234567
         if $errlvl != 1 goto modem_trouble

         # Estamos conectados. Autentíquese en el sistema.
         # We are connected.  Login to the system.
       login:
         sleep 2
         wait ogin: 20
         if $errlvl != 0 goto login_error
         send MYLOGIN\n
         wait ord: 20
         if $errlvl != 0 goto password_error
         send MYPASSWD\n
       loggedin:

         # Estamos autenticados
         wait SOMETEXT 15
         if $errlvl != 0 goto prompt_error

         # Fijar los parámetros de operación de SLIP.
         get $mtu 296
         # Garantizar que "route add -net default xs4all.hacktic.nl" se hará el valor por defecto

         # Say hello and fire up!
       done:
         print CONNECTED $locip ---> $rmtip
         mode CSLIP
         goto exit

       prompt_error:
         print TIME-OUT waiting for SLIPlogin to fire up...
         goto error

       login_trouble:
         print Trouble waiting for the Login: prompt...
         goto error

       password_error:
         print Trouble waiting for the Password: prompt...
         goto error

       modem_trouble:
         print Trouble occurred with the modem...

       error:
         print CONNECT FAILED to $remote
         quit 1

       exit:
         exit

       Este script causa que dip conmute a un anfitrión, se autentique, y consiga un canal  activo  de  interfaz
       SLIP  (de  la  misma manera como si se tratara de conexiones entrantes).  Cuando todo esté establecido en
       forma correcta, simplemente se va al fondo (background) y espera hasta que se cuelgue la comunicación  (o
       una simple señal letal), con la cual se cuelga y sale.

ARCHIVOS

       /etc/passwd
       /etc/diphosts
       /etc/rc.dip (para un ejemplo)

FALLOS

       Virtualmente ninguno - lo que ves son características (:-).

AUTORES

       Fred N. van Kempen <waltje@uwalt.nl.mugnet.org>,
       Uri Blumenthal <uri@watson.ibm.com>,
       Paul Cadach <paul@paul.east.alma-ata.su>,
       John Edwards <pje120@cs.usask.ca>,
       Olaf Kirch <okir@monad.sub.de>,
       Pauline Middelink <middelin@calvin.iaf.nl>,
       Paul Mossip <mossip@vizlab.rutgers.edu>,
       Bill Reynolds,
       Jim Seagrave <jes@grendel.demon.co.uk>,
       Stephen Shortland <stephen@cork.cig.mot.com>,
       Daniel Suman,
       Jeff Uphoff <juphoff@aoc.nrao.edu>

VÉASE TAMBIÉN

       login(1), skey(1), getuid(2), dial(3), ifconfig(8), netstat(8), route(8), setserial(8)