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