.\" 3/5/95 man page updated by Jim Van Zandt .\" Translated into Spanish on Mon May 31 by .\" Luis Carlos Solano" .\" .TH DIP "8" "3/7/95" "Versión 3.3.7o" "Manual de Referencia" .SH NOMBRE dip - maneja conexiones IP del tipo "dialup" .SH SINOPSIS \fBdip\fP [\fB-v\fP] [\fB-m\fP \fImtu\fP] [\fB-p\fP \fIproto\fP] \fIscriptfile\fP .br \fBdip -t\fP [\fB-v\fP] .br \fBdip -i\fP [\fB-a\fP] [\fB-v\fP] .br .BR diplogin [\fIusername\fP] .br .BR diplogini .br \fBdip \fP[\fB-v\fP] \fB-k\fP [\fB-l\fP \fItty_line\fP] .SH DESCRIPCIÓN \fBdip\fP 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 \fBdial\fP(3) si ésta está disponible. .PP La primera forma interpreta \fIscriptfile\fP para marcar y abrir la conexión IP. (ver \fBMODO DIALOUT\fP más adelante). .PP La opción \fB-t\fP ejecuta \fBdip\fP interactivamente (ver \fBMODO COMANDO\fP más adelante). Esta es más útil mientras se reunen datos para levantar un chat script. .PP \fBdip -i\fP maneja las conexiones entrantes (ver \fBMODO DIALIN\fP más adelante) \fBdiplogin\fP es equivalente a \fBdip -i\fP, y \fPdiplogini\fP es equivalente a \fBdip -i -a\fP. Estas son principalmente para usar con versiones de \fBlogin\fP(1) que no pasan parámetros de línea de comando al programa en el shell. .PP \fBdip -k\fP elimina un proceso existente \fBdip\fP, cerrando la conexión. .SH OPCIONES .IP \fB-a\fP Pregunta por el nombre de usuario y clave de acceso. .IP \fB-i\fP Actúa como un servidor de marcado entrante (dialin)(ver \fBMODO DIALIN\fP más adelante). .IP \fB-k\fP Elimina el proceso \fBdip\fP que ejecuta el dispositivo tty especificado (ver la opción \fB-l\fP), en otro caso, la invocación más reciente de \fBdip\fP. Note que \fBdip\fP tiene el cuidado de no eliminar un proceso iniciado por alguna otra persona (al menos que sea el root quien demande tal operación ;-)) .IP "\fB-l\fP \fItty_line\fP" Indica la línea a ser eliminada (Requiere la opción \fB-k\fP) .IP "\fB-m\fP \fImtu\fP" Configura la Unidad de Transferencia Máxima (MTU, Maximum Transfer Unit) (296 por defecto) .IP "\fB-p\fP \fIproto\fP" Configura el protocolo del línea. \fIproto\fP debe ser uno de los siguientes: LIP, CSLIP, PPP o TERM. .IP \fB-t\fP Ejecuta en modo de pruebas (ver \fBMODO COMANDO\fP más adelante). .IP \fB-v\fP Configura el modo verboso. Este permite varias impresiones de depuración, incluyendo la escritura en pantalla de cada línea del chat script. .SH "MODO COMANDO" El primer uso posible de .B dip es como un programa interactivo para levantar una conexión IP saliente. Esto puede hacerse invocando .B dip con la opción .B -t la cual significa .B "" y más precisamente, te lleva al .B Modo de Comando (COMMAND-MODE) del programa dip. Este hecho te será recordado por el prompt .B "DIP> " o bien, si también especificaste la bandera de depuración .B -v te encontrarás con el prompt .B "DIP [NNNN]> " Este último prompt también muestra el valor actual de la variable global .B $errlvl la cual se utiliza mayormente cuando dip corre en el modo .B script Para el modo interactivo, puede ser usado para determinar si el resultao del comando previo fue satisfactorio (OK) o no. .PP La siguiente es una muestra tomada desde una sesión viva: .br .sp 1 .nf $dip -t DIP: Dialup IP Protocol Driver version 3.3.7n-uri (7 Mar 95) Written by Fred N. van Kempen, MicroWalt Corporation. DIP> _ .fi .sp 1 Los comandos posibles se listan abajo (ver \fBCOMANDOS\fP). Note particularmente el comando \fBhelp\fP. 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 \fBEJEMPLOS\fP). .SH "MODO DIALOUT" La segunda forma de usar .B dip es para iniciar conexiones salientes. Para hacer las cosas más sencillas para la gente que tiene que manejar enlaces de este tipo, .B dip usa .B "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 \fBdip\fP. Si \fIscriptfile\fP no tiene extensión de archivo, \fBdip\fP automáticamente agregará la extensión \fB".dip"\fP. Esto es simplemente una manera de agrupar scripts en un único directorio. .SH "MODO DIALIN" La tercera manera posible de usar .B 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, .B dip puede ser instalado simplemente nombrándolo como el shell de autenticación (login shell) en \fI/etc/passwd\fP. Una muestra se vería como: .sp 1 .nf suunet:ij/SMxiTlGVCo:1004:10:UUNET:/tmp:/usr/sbin/diplogin .fi .sp 1 cuando el usuario .B suunet logra autenticarse, el programa .BR login (1) fija el directorio casa en \fI/tmp\fP y ejecuta el programa .B diplogin \fBdiplogin\fP debe ser un enlace simbólico a \fBdip\fP, el cual quiere decir que .B dip debe ejecutarse en modo de entrada, .B input .B 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 .B dip en este modo puede ser el nombre de usuario que debe ser usado en esta muestra, sin importar el identificador de usuario actual. .PP .B dip ahora examina \fI/etc/diphosts\fP 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 \fB#\fP es un comentario. De lo contrario, cada línea tiene siete elementos separados por dos puntos, con el formato .nf user : password : remote host : local host : netmask : comments : protocol,MTU .fi El primer campo de una línea es el nombre de usuario, el cual debemos concordar. .PP El segundo campo puede contener una palabra clave cifrada. Si este campo no es nulo, .B dip despliega el mensaje "\fBExternal security password:\fP", y la respuesta debe concordar con la palabra clave en este campo. Si el campo es "s/key" (verifica el valor de \fBSKEY_TOKEN\fP en \fIdip.h\fP) y \fBdip\fP fue compilado con S/Key habilitado, entonces la autenticación \fBdip\fP se llevará a cabo. (ver \fIREADME.SKEY\fP en el directorio fuente \fBdip\fP). .PP 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. .PP 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. .PP 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. .PP El sexto campo puede contener cualquier texto. No es usado por \fBdip\fP. .PP Finalmente, el séptimo campo de una línea contiene una mezcla de banderas separadas por comas. Banderas posibles son: .sp 1 .ti +.2i .B SLIP para indicar que debemos usar el protocolo SLIP. .br .ti +.2i .B CSLIP Para indicar protocolo SLIP comprimido. .br .ti +.2i .B PPP Para indicar que debemos usar protocolo PPP. .br .ti +.2i .B number el cual nos da el parámetro MTU de esta conexión. .sp 1 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 !. .PP Después de encontrar la línea correcta .B dip pone la línea de la terminal en modo .B 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 .B ruteo del sistema para hacer trabajar la conexión. .PP .B 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, .B 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. .SH COMANDOS Los siguientes pueden aparecer en el script chat. La mayoría pueden ser usados en el modo de comandos: .IP \fIlabel\fP\fB:\fP Define una etiqueta. .IP "\fBbeep\fP [\fItimes\fP]" Emite un sonido en la terminal del usuario [esto varias veces] .IP "\fBbootp\fP [\fIhowmany\fP [\fIhowlong\fP]]" Usa protocolo BOOTP para ir a buscar las direcciones IP locales y remotas. .IP \fBbreak\fP Envía un corte. .IP "\fBchatkey\fP \fIkeyword\fP [\fIcode\fP]" añade a la colección de \fBdip\fP de palabras de respuesta del módem. Por ejemplo, .br .nf \fBchatkey CONNECT 1\fP .fi duplicaría una de las entradas existentes .IP "\fBconfig\fP [\fBinterface\fP|\fBrouting\fP] [\fBpre\fP|\fBup\fP|\fBdown\fP|\fBpost\fP] {\fIarguments...\fP}" Guarda los parámetros de configuración de la interfaz (esto puede ser deshabilitado por el administrador) .IP "\fBdatabits 7\fP|\fB8\fP" Fija el número de bits de datos .IP "\fBdec\fP \fI$variable\fP [\fIdecrement-value\fP|\fI$variable\fP]" Decrementa una variable. El valor por defecto de \fIdecrement-value\fP es 1. .IP \fBdefault\fP 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. .IP "\fBdial\fP \fIphonenumber\fP [\fItimeout\fP]" Marca el número indicado. El valor por defecto de \fItimeout\fP es de 60 segundos. \fBdip\fP extrae la cadena que regresa el módem, y fija \fB$errlvl\fP de acuerdo con esta. Los codigos estándar son los siguientes: .nf 0 OK (correcto) 1 CONNECT (conectar) 2 ERROR (error) 3 BUSY (ocupado) 4 NO CARRIER (sin portadora) 5 NO DIALTONE (sin tono de marcar) .fi Usted puede cambiar o agregar a estos con el comando \fBchatkey\fP. .IP "\fBecho\fP \fBon\fP|\fBoff\fP" Habilita o deshabilita que se muestren loscomandos del modem. .IP "\fBexit\fP [\fIexit-status\fP]" Sale del script dejando intacta y establecida la conexión [C]SLIP y \fBdip\fP corriendo. .IP \fBflush\fP Vacía la entrada en la terminal. .IP "\fBget\fP \fI$variable\fP [\fIvalue\fP | \fBask\fP | \fBremote\fP [\fItimeout_value\fP | \fI$variable\fP]] Toma o solicita el valor de una variable. Si el segundo parámetro es \fBask\fP, se muestra un mensaje y el valor es leído por la entrada estándar. Si este es \fBremote\fP, 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. .IP "\fBgoto\fP \fIlabel\fP" Tranfiere control a la etiqueta en el chat script. .IP \fBhelp\fP Imprime una lista de comandos similar a esta .sp 1 .nf 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> _ .sp 1 .fi .IP "\fBif\fP \fIexpr\fP \fBgoto\fP \fIlabel\fP" Evalúa algún código resuelto. El \fIexpr\fP debe tener la forma .nf \fI$variable op constant\fP .fi donde \fIop\fP en una de: \fB== != < > <= >=\fP. .IP "\fBinc\fP \fI$variable\fP [\fIincrement-value\fP|\fI$variable\fP]" Incrementa una variable. El valor por defecto de \fIincrement-value\fP es 1. .IP "\fBinit\fP \fIinit-string\fP" Fija la cadena de inicio (enviada al módem antes del marcado de entrada) a la cadena indicada (ATE0 Q0 V1 X1 por defecto) \fBPor favor\fP úsela! .IP "\fBmode SLIP\fP|\fBCSLIP\fP|\fBPPP\fP|\fBTERM\fP" Fija el protocolo de línea (SLIP por defecto) .IP "\fBmodem\fP \fImodem-name\fP" Fija el tipo de módem (El valor por defecto, y el único valor legal en la actualidad es HAYES) .IP "\fBnetmask\fP \fIxxx.xxx.xxx.xxx\fP" Indica la máscara de red que queremos usar .IP "\fBonexit\fP ......." La descripción se ha perdido - mire a través del fuente en comman.c. O pregúntele a - él lo escribió !. .IP "\fBparity E\fP|\fBO\fP|\fBN\fP" Fija el tipo de paridad. .IP \fBpassword\fP Pregunta por una palabra clave y la envía. .IP \fBproxyarp\fP Solicita que sea fijado Proxy ARP .IP "\fBprint\fP \fI$variable\fP" Imprime el contenido de alguna variable. .IP "\fBpsend\fP \fIcommand\fP [\fIarguments\fP]" envía la salida de \fIcommand\fP al controlador serial, pasando opcionalmente \fIarguments\fP a \fIcommand\fP. El UID es reiniciado al verdadero UID antes de ejecutar \fIcommand\fP. .IP "\fBport\fP \fItty_name\fP" Fija el nombre del puerto de la terminal que se va a usar, (Se asume la ruta \fI/dev/\fP) .IP \fBquit\fP Sale con el estado de salida distinto de cero. .IP \fBreset\fP Reinicia el modem (Envía "+++" y luego "ATZ".) .IP "\fBsecuridf\fP \fIfixedpart\fP" Guarda la parte fija del idenfificador seguro de la palabra clave (SecureID password) .IP \fBsecurid\fP 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 \fBsecureidf\fP. Las dospartes son concatenadas y enviadas al servidor remoto terminal. .IP "\fBsend\fP \fItext-string\fP" Envía una cadena al controlador serial. .IP "\fBshell\fP \fIcommand [parameters]\fP" Ejecuta \fIcommand\fP a través del shell por defecto (obtenido desde la variable de SHELL) con \fIparameters\fP como argumento de la línea de comandos. La sustitución de variables de \fBDip\fP 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 \fBdip\fP, anteceda este por \\. .IP "\fBskey\fP [\fItimeout\fP | \fI$variable\fP]" Este dice a \fBdip\fP 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 \fBdip\fP to look for an S/Key challenge from the remote terminal server." Entonces \fBdip\fP le pregunta al usuario por la palabra clave secreta, genera la respuesta, y la envía al anfitrión remoto. El parámetro opcional \fItimeout\fP fija cuánto debe esperar \fBdip\fP para ver el envío. \fB$errlvl\fP es fijado en 1 si el comando \fBskey\fP llega al tiempo límite. Si \fBskey\fP envía una respuesta exitosamente, \fB$errlvl\fP es fijado en 0. Requiere soporte de S/Key para ser compilado. .IP "\fBsleep\fP \fItime-in-secs\fP" Espera un momento. .IP "\fBspeed\fP \fIbits-per-sec\fP" Fija la velocidad del puerto (38400 por defecto) Note que la velocidad actual asociada con "38400" puede ser cambiada usando \fBsetserial\fP(8).. Además, debes especificar aquí la velocidad \fBreal\fP de puerto, en vista que \fBdip\fP le pone atención a \fIset_hi\fP 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" .IP "\fBstopbits 1\fP|\fB2\fP" Fija el número de bits de parada. .IP \fBterm\fP Inicia un modo terminal. .IP "\fBtimeout\fP \fItime-in-sec\fP" 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). .IP "\fBwait\fP \fItext \fP[\fItimeout_value\fP | \fI$variable\fP]" Espera por la llegada de alguna cadena. .PP .SS "VARIABLES ESPECIALES" .IP \fB$errlvl\fP Mantiene el resultado del comando previo. .IP \fB$locip\fP Número IP del anfitrión local en notación puntual (por ejemplo, 128.96.41.50). .IP \fB$local\fP Nombre completo en palabras del anfitrión local (por ejemplo sunsite.unc.edu). .IP \fB$rmtip\fP Número IP del anfitrión remoto en notación punto. .IP \fB$remote\fP Nombre completo en palabras del anfitrión remoto. .IP \fB$mtu\fP Unidad de Transferencia Máxima (máximo número de bytes transferidos de forma simultánea) .IP \fB$modem\fP Tipo de modem (en la actualidad, el único valor válido es HAYES) .IP \fB$port\fP El nombre del puerto de la terminal que se va a usar. (Se asume la ruta \fI/dev/\fP) .IP \fB$speed\fP tasa de transferencia entre el anfitrión local y el modem, en bits/seg. .SH EJEMPLOS He aquí un ejemplo \fI/etc/diphosts\fP: .sp 1 .ft B .nf # # 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, # Modificado: Uri Blumenthal # Traducido al Español: Luis Carlos Solano # # 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. .ft P .fi .sp 1 Un chat script se vería similar a esto: .sp 1 .ft B .nf # # sample.dip Programa de soporte para conecxiones IP conmutadas # # Versión: @(#)sample.dip 1.40 07/20/93 # # Autor: Fred N. van Kempen, # Traducido al Español: Luis Carlos Solano # 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 .fi .ft P .sp 1 Este script causa que .B dip conmute a un anfitrión, se autentique, y consiga un canal activo de interfaz .B 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. .SH ARCHIVOS .nf .ft I /etc/passwd /etc/diphosts /etc/rc.dip \fR(para un ejemplo)\fP .ft R .fi .SH FALLOS Virtualmente ninguno - lo que ves son .B características (:-). .SH AUTORES .nf Fred N. van Kempen , .br Uri Blumenthal , .br Paul Cadach , .br John Edwards , .br Olaf Kirch , .br Pauline Middelink , .br Paul Mossip , .br Bill Reynolds, .br Jim Seagrave , .br Stephen Shortland , .br Daniel Suman, .br Jeff Uphoff .fi .SH "VÉASE TAMBIÉN" .BR login (1), .BR skey (1), .BR getuid (2), .BR dial (3), .BR ifconfig (8), .BR netstat (8), .BR route (8), .BR setserial (8)