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'ON

       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 esta
       esta disponible.

       La  primera forma interpreta scriptfile para marcar y abrir la conexion
       IP.  (ver MODO DIALOUT mas adelante).

       La opcion  -t  ejecuta  dip  interactivamente  (ver  MODO  COMANDO  mas
       adelante).   Esta es mas util mientras se reunen datos para levantar un
       chat script.

       dip -i maneja las conexiones entrantes (ver MODO DIALIN  mas  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 parametros de linea de comando al programa en el shell.

       dip -k elimina un proceso existente dip, cerrando la conexion.

OPCIONES

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

       -i     Actua  como  un  servidor  de marcado entrante (dialin)(ver MODO
              DIALIN mas adelante).

       -k     Elimina  el  proceso  dip  que  ejecuta   el   dispositivo   tty
              especificado (ver la opcion -l), en otro caso, la invocacion mas
              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 operacion ;-))

       -l tty_line
              Indica la linea a ser eliminada (Requiere la opcion -k)

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

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

       -t     Ejecuta en modo de pruebas (ver MODO COMANDO mas adelante).

       -v     Configura el modo verboso. Este permite  varias  impresiones  de
              depuracion,  incluyendo  la  escritura en pantalla de cada linea
              del chat script.

MODO COMANDO

       El primer uso posible de dip  es  como  un  programa  interactivo  para
       levantar  una  conexion  IP saliente.  Esto puede hacerse invocando dip
       con la opcion -t la cual significa  y mas  precisamente,  te  lleva  al
       Modo  de  Comando  (COMMAND-MODE)  del programa dip. Este hecho te sera
       recordado por el prompt  DIP>  o  bien,  si  tambien  especificaste  la
       bandera  de depuracion -v te encontraras con el prompt DIP [NNNN]> Este
       ultimo prompt tambien 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 sesion 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
       este  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
       tambien utiliza este lenguaje de comandos.  (Ver EJEMPLOS).

MODO DIALOUT

       La  segunda  forma  de  usar  dip es para iniciar conexiones salientes.
       Para hacer las cosas mas 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  conexion, la cual, en otra circunstancia podria requerir
       varias opciones de lineas de comando.  El nombre  de  ruta  del  script
       para ser ejecutado es entonces dado como un simple argumento de dip. Si
       scriptfile no tiene extension de archivo, dip automaticamente  agregara
       la extension ".dip".  Esto es simplemente una manera de agrupar scripts
       en un unico directorio.

MODO DIALIN

       La tercera manera posible de usar dip es como un shell de autenticacion
       (login  shell)  para conexiones IP entrantes, como si se tratara de una
       conexion conmutada usando PPP o SLIP. Para hacer la integracion  dentro
       del  sistema  UNIX  existente tan facil como sea posible, dip puede ser
       instalado simplemente nombrandolo como el shell de autenticacion (login
       shell) en /etc/passwd.  Una muestra se veria 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  simbolico  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 autentico (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 unico
       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 estandar de palabras clave). Toda linea que inicie con # es  un
       comentario.    De  lo  contrario,  cada  linea  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 linea 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
       autenticacion dip se llevara a cabo. (ver README.SKEY en el  directorio
       fuente dip).

       El  tercer  campo  contiene  el  nombre  (o  la  direccion IP pura) del
       anfitrion remoto. Si se provee el  nombre  de  un  anfitrion,  se  dara
       inicio  con el proceso usual para resolver una direccion, utilizando ya
       sea el nombre de un servidor o un archivo del anfitrion local.

       El cuarto campo contiene  el  nombre  (o  la  direccion  IP  pura)  del
       anfitrion local. Si se provee un nombre de anfitrion, este se resuelve,
       tal como el nombre del anfitrion remoto en el tercer campo.

       El quinto campo contiene la mascara de red en  notacion  punto  decimal
       (como   225.255.255.0).   Si  esta  vacio,  se  utilizara  por  defecto
       255.255.255.0.

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

       Finalmente, el septimo campo  de  una  linea  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 parametro MTU de esta conexion.

       Por  favor  note:  la  experiencia  muestra  que  bloques  mas pequenos
       trabajan mejor. Usted *puede* definir  MTU  1500,  pero  eso  no  va  a
       responder por su cordura !.

       Despues de encontrar la linea correcta dip pone la linea 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,
       anade una entrada a la tabla de ruteo del sistema para  hacer  trabajar
       la conexion.

       dip  ahora  entra en un lazo de letargo sin fin, el cual continua hasta
       que la conexion sea abortada fisicamente (es decir, se bote la  linea).
       En  ese  momento, dip elimina la entrada que habia hecho en la tabla de
       ruteo del sistema, y libera el canal de  protocolo  hasta  ahora  usado
       para poder ser reusado. Este entonces existe otra vez, haciendo espacio
       para otra sesion.

COMANDOS

       Los siguientes pueden aparecer en el script chat. La mayoria 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  Envia un corte.

       chatkey keyword [code]
              anade a la coleccion de dip de palabras de respuesta del  modem.
              Por ejemplo,
              chatkey CONNECT 1
              duplicaria una de las entradas existentes

       config [interface|routing] [pre|up|down|post] {arguments...}
              Guarda  los  parametros  de  configuracion  de la interfaz (esto
              puede ser deshabilitado por el administrador)

       databits 7|8
              Fija el numero 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 anfitrion
              remoto al cual  hizo  la  conexion.  Si  este  comando  no  esta
              presente  en el archivo de comandos, la ruta por defecto no sera
              fijada/cambiada.

       dial phonenumber [timeout]
              Marca el numero indicado. El valor por defecto de  timeout es de
              60  segundos.  dip extrae la cadena que regresa el modem, y fija
              $errlvl de acuerdo  con  esta.  Los  codigos  estandar  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 conexion
              [C]SLIP y dip corriendo.

       flush  Vacia la entrada en la terminal.

       get $variable [value | ask | remote [timeout_value | $variable]]
              Toma o solicita  el  valor  de  una  variable.   Si  el  segundo
              parametro  es ask, se muestra un mensaje y el valor es leido por
              la entrada estandar. Si este es remote, este  se  lee  desde  la
              maquina  remota.  De  otro  modo,  el  segundo  parametro 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
              Evalua algun codigo 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 modem antes del marcado de
              entrada) a la cadena indicada (ATE0 Q0 V1 X1  por  defecto)  Por
              favor usela!

       mode SLIP|CSLIP|PPP|TERM
              Fija el protocolo de linea (SLIP por defecto)

       modem modem-name
              Fija  el  tipo  de modem (El valor por defecto, y el unico valor
              legal en la actualidad es HAYES)

       netmask xxx.xxx.xxx.xxx
              Indica la mascara de red que queremos usar

       onexit .......
              La descripcion se ha perdido -  mire  a  traves  del  fuente  en
              comman.c.   O  preguntele a <inaky@@peloncho.fis.ucm.es> - el lo
              escribio !.

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

       password
              Pregunta por una palabra clave y la envia.

       proxyarp
              Solicita que sea fijado Proxy ARP

       print $variable
              Imprime el contenido de alguna variable.

       psend command [arguments]
              envia 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 (Envia "+++" 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
              Envia una cadena al controlador serial.

       shell command [parameters]
              Ejecuta command a traves del shell por defecto  (obtenido  desde
              la  variable de SHELL) con parameters como argumento de la linea
              de comandos. La sustitucion de variables de Dip se realiza antes
              de la ejecucion del comando. Si usted no quiere que un parametro
              que empiece por $ sea interpretado como  una  variable  de  dip,
              anteceda este por \.

       skey [timeout | $variable]
              Este  dice  a dip que busque un envio de S/Key desde el servidor
              terminal remoto. Nota del traductor: El parrafo anterior  es  un
              poco  ambiguo.  Se  adjunta el texto en ingles. 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 envia al anfitrion remoto. El parametro opcional
              timeout fija cuanto debe esperar dip para ver el envio.  $errlvl
              es fijado en 1 si el comando skey llega al  tiempo  limite.   Si
              skey  envia  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).. Ademas, debes especificar aqui la velocidad  real
              de puerto, en vista que dip le pone atencion a set_hi y sus bits
              por si mismo. Tambien, no te preocupes si pones la velocidad  en
              "57600"  y  se reporta otra vez en "38400" - todo esta bien, las
              banderas apropiadas se aplicaron y la velocidad real del  puerto
              sera la que tu dijiste que debia ser, por ejemplo, "57600"

       stopbits 1|2
              Fija el numero de bits de parada.

       term   Inicia un modo terminal.

       timeout time-in-sec
              Fija  el tiempo limite. Este define el periodo de inactividad de
              la linea, despues del cual DIP forzara  la  linea  a  romper  la
              conexion (y salir).

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

   VARIABLES ESPECIALES
       $errlvl
              Mantiene el resultado del comando previo.

       $locip Numero  IP del anfitrion local en notacion puntual (por ejemplo,
              128.96.41.50).

       $local Nombre completo en palabras del  anfitrion  local  (por  ejemplo
              sunsite.unc.edu).

       $rmtip Numero IP del anfitrion remoto en notacion punto.

       $remote
              Nombre completo en palabras del anfitrion remoto.

       $mtu   Unidad   de   Transferencia   Maxima  (maximo  numero  de  bytes
              transferidos de forma simultanea)

       $modem Tipo de modem (en la actualidad, el unico valor valido 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 anfitrion local y el modem, en
              bits/seg.

EJEMPLOS

       He aqui un  ejemplo /etc/diphosts:

       #
       # diphost Este archivo describe un mapeo de nobres a direcciones
       #         para el porgrama DIP. Se usa para determinar cu'al
       #         direcci'on IP del anfitri'on usar en caso de una llamada entrante
       #         de un usuario.
       #
       # Versi'on:     @(#)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~nol: 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 veria similar a esto:

       #
       # sample.dip   Programa de soporte para conecxiones IP conmutadas
       #
       # Versi'on:     @(#)sample.dip 1.40 07/20/93
       #
       # Autor:  Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
       # Traducido al Espa~nol: 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'on del otro lado
         # Mi m'aquina a la que llamo tiene por nombre  'xs4all.hacktic.nl' (== 193.78.33.42)
         get $remote xs4all.hacktic.nl
         # Fijar la m'ascara 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'inea terminal
         # Esto parece causarle poroblemas a algunas personas !
         reset

       # Nota: Valores "errlvl" pre-definidos "est'andares"
       #    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'arese 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'iquese 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'ametros de operaci'on de SLIP.
         get $mtu 296
         # Garantizar que "route add -net default xs4all.hacktic.nl" se har'a 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  anfitrion,  se  autentique,  y
       consiga un canal activo de interfaz SLIP (de la misma manera como si se
       tratara de conexiones entrantes).   Cuando  todo  este  establecido  en
       forma  correcta, simplemente se va al fondo (background) y espera hasta
       que se cuelgue la comunicacion (o una simple senal 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'isticas (:-).

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'EASE TAMBI'EN

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

Version 3.3.7o                      3/7/95                              DIP(8)