Provided by: manpages-es-extra_0.8a-17_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)