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