Router Teldat Protocolo TFTP Doc. DM765 Febrero, 2008
ÍNDICE Capítulo 1 Introducción...1 1. Protocolo TFTP...2 2. Detalles de una sesión TFTP... 3 2.1. Características fundamentales... 3 2.2. Inicio de transferencia... 3 2.3. Tipos de paquetes TFTP... 3 a) Paquetes RRQ y WRQ... 4 b) Paquetes DATA... 4 c) Paquetes ACK... 4 d) Paquetes ERR... 4 2.4. Terminación normal... 5 2.5. Terminación prematura... 5 Capítulo 2 Configuración del TFTP...6 1. Acceso al menú de configuración de TFTP... 7 2. Comandos del menú de configuración TFTP... 8 2.1.? (AYUDA)... 8 2.2. NO... 8 2.3. SERVER... 9 a) SERVER ENABLE... 9 b) SERVER FILE-SYSTEM... 9 c) SERVER PORT... 9 2.4. EXIT... 10 Capítulo 3 Monitorización del TFTP...11 1. Acceso al menú de monitorización de TFTP... 12 2. Comandos del menú de monitorización... 13 2.1. Del... 13 2.2. Dir... 14 2.3. Get... 14 2.4. Put... 15 2.5. Syst... 16 2.6. Exit... 16 Capítulo 4 Ejemplo...18 1. Carga de código y archivo de configuración... 19 - ii -
Capítulo 1 Introducción
1. Protocolo TFTP TFTP (Trivial File Transfer Protocol) es un protocolo para transferir ficheros entre distintas máquinas conectadas a través de una red de comunicaciones. TFTP es un protocolo muy simple semejante a una versión básica de FTP (File Transfer Protocol) cuyo funcionamiento detallado viene definido en la RFC 1350. Se implementa sobre un servicio de comunicaciones no fiable y no orientado a conexión. Su funcionalidad consiste principalmente en la lectura o escritura por parte de un cliente de un fichero (a veces un correo electrónico) de un servidor remoto. Las principales características que lo diferencian del FTP son las siguientes: Utiliza UDP (puerto 69) como protocolo de transporte (a diferencia de FTP que utiliza el puerto 21 TCP). No puede listar el contenido de los directorios remotos, por lo que se requiere que el cliente conozca la ruta completa en el servidor y el nombre de los archivos para poder transferirlos. No existen mecanismos de autenticación o encriptación, por lo que su uso se aconseja en tramos de red seguros (redes privadas, locales, etc.). Soporta tres modos diferentes de transferencia, "netascii", "octet" y "mail", de los que los dos primeros corresponden a los modos "ascii" e "imagen" (binario) del protocolo FTP. Este protocolo se utiliza a menudo para transferir pequeños archivos entre ordenadores en una red, como cuando un terminal X Window o cualquier otro cliente simple arranca desde un servidor de red. Un uso habitual de este protocolo se da en la transferencia de programas de arranque. ROUTER TELDAT - Introducción TFTP I - 2
2. Detalles de una sesión TFTP Ya que TFTP utiliza UDP, no hay una definición formal de sesión, cliente y servidor. Sin embargo, cada archivo transferido vía TFTP constituye un intercambio independiente de paquetes, y existe una relación cliente-servidor informal entre la máquina que inicia la comunicación y la que responde. 2.1. Características fundamentales Cualquier transferencia de ficheros comienza con una solicitud de lectura o escritura de un fichero por parte de un cliente. Si el servidor acepta dicha solicitud el fichero se transmite dividido en bloques de un tamaño fijo de 512 bytes. Cada paquete de datos contiene uno de esos bloques y lleva consigo un número de bloque, comenzando la transferencia por el bloque 1. Los paquetes de datos deben ser asentidos, de forma que en ausencia de fallos de las máquinas, el fichero acabe siendo transferido correctamente. El paquete de asentimiento indica el número de bloque que se está asintiendo. Hasta que no se recibe asentimiento de un bloque no se realiza el envío del siguiente. Un paquete de datos de menos de 512 bytes indica el fin de la transferencia. Si un paquete se pierde en la comunicación, a su destinatario le vence un plazo y debe retransmitir el último paquete transmitido (de datos o de asentimiento), lo que causa que el emisor del paquete perdido retransmita dicho paquete. Nótese que utilizan los plazos tanto el cliente como el servidor. Tres tipos de situaciones causan un error: cuando no es posible aceptar una solicitud de transferencia (fichero inexistente, violación de permisos) cuando se recibe un paquete con formato incorrecto cuando se pierde el acceso a un recurso (se llena el disco) en mitad de la transferencia Los errores causan la terminación de la transferencia. Un error se indica enviando un paquete de error. Este paquete ni se asiente ni se retransmite, así que el otro extremo de la comunicación puede no recibirlo nunca. 2.2. Inicio de transferencia Una transferencia se inicia con el envío por parte de un cliente de una solicitud (WRQ para solicitar una escritura o RRQ para solicitar una lectura) y la recepción en dicho cliente de una respuesta afirmativa por parte del servidor. Dicha respuesta afirmativa consiste en un paquete de asentimiento -- para las escrituras-- o el primer paquete de datos --para las lecturas--. El paquete de asentimiento para las escrituras utiliza el 0 como número de bloque. Si la respuesta a la solicitud es un paquete de error, la solicitud ha sido denegada. 2.3. Tipos de paquetes TFTP TFTP utiliza cinco tipos de paquetes: ROUTER TELDAT - Introducción TFTP I - 3
Tipo acrónimo operación 1 RRQ Solicitud de lectura 2 WRQ Solicitud de escritura 3 DATA Paquete de datos 4 ACK Paquete de asentimiento 5 ERR Paquete de error a) Paquetes RRQ y WRQ Tienen el siguiente formato: Tipo Nombre de fichero Tipo: Para RRQ un 1, para WRQ un 2 Nombre de fichero: Cadena de longitud arbitraria b) Paquetes DATA Tienen el siguiente formato: Tipo Número de bloque Datos Tipo: 3 Número de bloque: Un 1 para el primer trozo, y se incrementa progresivamente hasta llegar a 65535, para volver a empezar. Datos: De 0 a 512 bytes con un bloque del fichero que se lee o escribe. Si tiene justo 512 bytes, NO es el último paquete de datos. Si tiene de 0 a 511 bytes, indica el final de la transferencia. c) Paquetes ACK Tienen el siguiente formato: Tipo Número de trozo Tipo: 4 Número de trozo: Indica el número de bloque que se asiente. Si es cero, es un asentimiento a una solicitud de escritura. Todos los paquetes que no son de ERR deben ser asentidos. Enviar un paquete de datos es un asentimiento del ACK del bloque anterior. Así, los paquetes WRQ o DATA se asienten con paquetes ACK o ERR, mientras que los paquetes RRQ o ACK se asienten con paquetes DATA o ERR. d) Paquetes ERR Tienen el siguiente formato: Tipo Código de error Mensaje Tipo: 5 ROUTER TELDAT - Introducción TFTP I - 4
Código de error: Indica la naturaleza del error. La siguiente tabla explica el significado de cada valor: Valor Significado 0 No definido 1 Fichero no encontrado 2 Violación de permisos 3 Disco lleno 4 Operación ilegal de TFTP 5 Modo de transferencia desconocido 6 Archivo ya existente 7 Usuario inexistente Mensaje: Cadena de longitud indeterminada para ampliar información sobre el error, si es necesario. 2.4. Terminación normal El final de una transferencia se indica con un paquete DATA de 0 a 511 bytes. Este paquete debe ser asentido con un ACK (como todos los DATA). La máquina que asiente el último paquete DATA puede cerrar su lado de la comunicación después de enviar el ACK, pero normalmente espera un rato para retransmitir el último ACK si se perdiera, circunstancia que detectará si recibe el último paquete DATA otra vez. La máquina que envía el último paquete DATA debe esperar hasta recibir el ACK o desistir después de un determinado plazo de tiempo. Si desiste, terminará su lado de la comunicación sin saber si se completó o no la transferencia (depende de si se perdió el último ACK o el último DATA, respectivamente). 2.5. Terminación prematura Si una solicitud no puede ser aceptada, o si se produce un error en mitad de una transferencia, se envía un paquete de error y se termina la comunicación. Este paquete no será asentido ni retransmitido, por lo que podría suceder que nunca llegara a su destino. ROUTER TELDAT - Introducción TFTP I - 5
Capítulo 2 Configuración del TFTP
1. Acceso al menú de configuración de TFTP Para acceder a la configuración del TFTP utilice el comando FEATURE TFTP desde el menú de configuración principal. *config Config>feature tftp -- TFTP user configuration -- TFTP config> ROUTER TELDAT - Configuración TFTP II - 7
2. Comandos del menú de configuración TFTP En este apartado se describen los comandos del menú de configuración de TFTP. La siguiente tabla resume los comandos disponibles en el menú de configuración de TFTP. Estos comandos se explican detalladamente en los siguientes apartados. Comando Función? (AYUDA) Muestra los comandos de configuración o las opciones de los comandos. NO Configura parámetros con valores por defecto. SERVER Configura parámetros del servidor TFTP. EXIT Sale del menú de configuración del TFTP. 2.1.? (AYUDA) Muestra los comandos disponibles o las opciones de un comando. Sintaxis: TFTP config>? TFTP config> TFTP config>? no Negate a command or set its defaults server Configures TFTP server parameters exit Exit to parent menu TFTP config> 2.2. NO Configura parámetros con valores por defecto. Sintaxis: TFTP config>no? server Configures TFTP server parameters enable Enables TFTP server file-system File system to use for TFTP port Port used to receive TFTP requests Deshabilita el servidor TFTP. TFTP config>no server enable TFTP config> Se configura el sistema de ficheros a usar por el servidor TFTP a su valor por defecto. TFTP config>no server file-system TFTP config> ROUTER TELDAT - Configuración TFTP II - 8
2.3. SERVER Configura parámetros del servidor TFTP. Sintaxis: TFTP config>server? enable Enables TFTP server file-system File system to use for TFTP port Port used to receive TFTP requests a) SERVER ENABLE Habilita el servidor TFTP. Una vez habilitado, el equipo atiende peticiones de lectura y escritura de ficheros. TFTP config>server enable TFTP config> b) SERVER FILE-SYSTEM Configura el sistema de ficheros a utilizar por el servidor TFTP. El servidor TFTP lee o escribe ficheros en el sistema de ficheros configurado. Sintaxis: TFTP config>server file-system? NUL Default file system when a system has not been loaded TST Checks that the FTP is operating correctly MEM Temporary buffer DSK Handles the disk.the code and configurations are stored here FCO Handles the code Flash memory FDA Handles the data Flash memory BIO Handles the BIOS zone.only the BIOS code files are saved here SMC Handles the Smart Memory Card TFTP config> Los sistemas de ficheros disponibles son los siguientes: NUL: sistema de ficheros por defecto. TST: usado para comprobar el funcionamiento del protocolo. MEM: buffer temporal. DSK: sistema de disco. Aquí se guardan el código y las configuraciones. FCO: memoria Flash usada para el código. FDA: memoria Flash usada para datos. BIO: zona de BIOS. Para almacenar ficheros de BIOS. SMC: Tarjeta Smart Card. Valor por defecto: por defecto se utiliza el sistema NUL. c) SERVER PORT Configura el puerto utilizado por el servidor TFTP para escuchar peticiones. ROUTER TELDAT - Configuración TFTP II - 9
Sintaxis: TFTP config>server port <port> <0..65535> Port number Configuración del puerto 150 como puerto de escucha. TFTP config>server port 150 Valor por defecto: por defecto se utiliza el puerto 69. 2.4. EXIT Sale del menú de configuración de TFTP. Sintaxis: TFTP config>exit TFTP config>exit Config> ROUTER TELDAT - Configuración TFTP II - 10
Capítulo 3 Monitorización del TFTP
1. Acceso al menú de monitorización de TFTP Para acceder al menú de monitorización de TFTP, utilice el comando FEATURES TFTP desde el menú de monitorización principal. *monitor Console Operator +features tftp TFTP manager TFTP+ ROUTER TELDAT - Monitorización TFTP III - 12
2. Comandos del menú de monitorización En este apartado se describen los comandos del menú de monitorización de TFTP. Estos comandos permiten utilizar el cliente TFTP. La siguiente tabla resume los comandos disponibles en el menú de monitorización de TFTP. Comando del dir get put syst exit Función Borra el fichero especificado del sistema de ficheros activo del equipo. Muestra información sobre el directorio del sistema de ficheros activo. Transfiere (lee) un archivo alojado en un servidor TFTP al sistema de ficheros activo del cliente TFTP. Transfiere (escribe) a un servidor TFTP un archivo del sistema de ficheros activo del cliente TFTP. Establece el sistema de ficheros activo en el equipo para el cliente TFTP. Sale del menú de monitorización de TFTP. 2.1. Del Borra el fichero especificado del sistema de ficheros activo del equipo. Sintaxis: del <fichero> <fichero> es el nombre completo (incluida la extensión) del fichero que queremos borrar del sistema de ficheros activo. dir Current file system: DSK Name Length Attributes ----------------------------------------- 0 ---V-- ATLAS.BIN 3521280 -----A ATLAS.CFG 2463 -----A IGMP.CFG 1611 -----A Total: 4 files, 3525354 bytes. 390144 bytes free. del igmp.cfg File erased Para comprobar que efectivamente se ha borrado podemos hacer a continuación un listado de los ficheros existentes en el sistema de ficheros activo. ROUTER TELDAT - Monitorización TFTP III - 13
dir Current file system: DSK Name Length Attributes ----------------------------------------- 0 ---V-- ATLAS.BIN 3521280 -----A ATLAS.CFG 2463 -----A Total: 3 files, 3523743 bytes. 392192 bytes free. 2.2. Dir Lista por pantalla información sobre el directorio del sistema de ficheros activo. Sintaxis: dir dir Current file system: DSK Name Length Attributes ----------------------------------------- 0 ---V-- ATLAS.BIN 3521280 -----A ATLAS.CFG 2463 -----A IGMP.CFG 1611 -----A Total: 4 files, 3525354 bytes. 390144 bytes free. El significado de los campos que aparecen es el siguiente: Información general Current file system Total Información de ficheros Sistema de ficheros del equipo activo en el cliente TFTP. Número total de ficheros en el sistema de ficheros activo, espacio total en bytes ocupado por dichos ficheros. Espacio libre restante en el sistema de ficheros activo. Name Nombre completo del archivo. Length Espacio en bytes ocupado por el archivo. Attributes Atributos del archivo (R: Sólo lectura / H: Oculto / S: Sistema / V : Volumen / D: Directorio / A: Archivo). 2.3. Get Transfiere (lee) un archivo alojado en el servidor TFTP al sistema de ficheros activo del cliente TFTP. ROUTER TELDAT - Monitorización TFTP III - 14
Sintaxis: get <servidor> <fichero_origen> <fichero_destino> <servidor> es la dirección IP del servidor TFTP desde el que queremos transferir el fichero origen. <fichero_origen> es el nombre completo del archivo (incluidas extensión y ruta) que queremos transferir (leer) desde el sistema de ficheros del servidor TFTP. <fichero_destino> es el nombre completo del archivo (incluida la extensión) en el que queremos que se escriba el fichero origen dentro del sistema de ficheros activo del cliente TFTP. get 10.1.1.1 cfgfiles\atlasteldat.cfg atlas.cfg Receiving atlas.cfg from 10.1.1.1\cfgfiles\atlasTeldat.cfg... 2463 File successfully received Para comprobar que efectivamente se ha transferido desde el servidor podemos hacer a continuación un listado de los ficheros existentes en el disco activo. dir Current file system: DSK Name Length Attributes ----------------------------------------- 0 ---V-- ATLAS.BIN 3521280 -----A ATLAS.CFG 2463 -----A Total: 3 files, 3523743 bytes. 392192 bytes free. 2.4. Put Transfiere (escribe) al servidor TFTP un archivo del sistema de ficheros activo del cliente TFTP. Sintaxis: put <servidor> <fichero_origen> <fichero_destino> <servidor> es la dirección IP del servidor TFTP al que queremos transferir el fichero origen. <fichero_origen> es el nombre completo (incluida la extensión) del archivo del sistema de ficheros activo que queremos transferir. <fichero_destino> es el nombre completo del archivo (incluidas extensión y ruta) en el que queremos que se escriba el fichero origen dentro del sistema de ficheros del servidor TFTP. put 10.1.1.1 atlas.cfg \cfgfiles\atlasteldat.cfg Sending atlas.cfg to 10.1.1.1\\cfgfiles\atlasTeldat.cfg... Sending 2463 bytes 2463 File successfully sent ROUTER TELDAT - Monitorización TFTP III - 15
2.5. Syst Establece el sistema de ficheros activo en el equipo para el cliente TFTP. Sintaxis: TFTP >syst <file system> <file system> es el código del nombre del sistema de ficheros que queremos activar. Para conocer los sistemas de ficheros disponibles en el equipo active el sistema de ficheros raíz (NUL) y a continuación obtenga un listado de los directorios existentes en el mismo. A continuación se muestra un ejemplo: syst nul Current file system set to NUL dir Current file system: NUL Name Length Attributes ----------------------------------------- TST 0 ----D- MEM 0 ----D- DSK 0 ----D- BIO 0 ----D- Total: 4 files, 0 bytes. El listado de directorios que aparece corresponde con los sistemas de ficheros gestionables en el equipo. A continuación se muestra un listado con los sistemas de ficheros más comunes en los equipos Teldat así como su utilización: BIO BIOS zone. Only the BIOS code files are saved here DSK Disk. The code and configurations are stored here FCO Code Flash memory FDA Data Flash memory MEM Temporary buffer NUL Default file system when a system has not been loaded SMC Smart Memory Card TST FTP Checking zone syst fda Current file system set to FDA Por defecto el sistema de ficheros activo es DSK. 2.6. Exit Sale del menú de monitorización de TFTP. ROUTER TELDAT - Monitorización TFTP III - 16
Sintaxis: exit exit + ROUTER TELDAT - Monitorización TFTP III - 17
Capítulo 4 Ejemplo
1. Carga de código y archivo de configuración Supongamos la siguiente situación: Servidor TFTP 10.1.1.1 Host local Router Teldat Cliente TFTP 10.1.1.2 LAN 2 192.168.1.1 192.168.1.2 LAN 1 Se quiere cargar remotamente una versión de código (newatlas.bin) así como un nuevo archivo de configuración (newatlas.cfg) para el router. Ambos archivos se encuentran alojados en un servidor TFTP accesible desde el equipo Teldat. Para ello primero habrá que conectarse desde el host local al router Teldat (vía telnet, por ejemplo) y, a continuación, utilizar el cliente TFTP que éste tiene para realizar una transferencia de los archivos deseados desde el servidor TFTP. Una vez conectados al router Teldat (por consola o LAN) accedemos al interfaz del cliente TFTP y seleccionamos el sistema de ficheros en el que queremos cargar los ficheros, en nuestro caso, DSK 1 : Teldat (c)2001-2005 Router model ATLAS 2 8 CPU MPC860 S/N: 403/00122 1 LAN, 3 WAN Lines, 1 ISDN Line CIT software version: 10.5.4-Alfa Feb 16 2005 13:30:43 *monitor Console Operator +tftp TFTP manager syst dsk Current file system set to DSK Comprobamos que estamos en el sistema de ficheros seleccionado realizando un listado: 1 Puesto que DSK es el sistema de ficheros por defecto en el que se cargan habitualmente el código y los ficheros de configuración de los equipos no sería necesario, en este caso, realizar esta operación de selección. ROUTER TELDAT - Ejemplo TFTP IV - 19
dir Current file system: DSK Name Length Attributes ----------------------------------------- 0 ---V-- ATLAS.BIN 3521280 -----A ATLAS.CFG 2463 -----A IGMP.CFG 1611 -----A Total: 4 files, 3525354 bytes. 390144 bytes free. Hecho esto comenzamos con la carga de la nueva versión de código newatlas.bin que se encuentra en el directorio code del servidor TFTP. Para ello hay que ejecutar el siguiente comando: get 10.1.1.1 \code\newatlas.bin atlas.bin Receiving newatlas.bin from 10.1.1.1\\code\newatlas.bin... 3521536 File successfully received Obsérvese que hemos dado como nombre del fichero destino el mismo nombre atlas.bin que el archivo de código ya existente en el equipo (mostrado al realizar el listado anterior) por lo que dicho archivo quedará sobreescrito. Sin embargo, si el equipo dispone de suficiente espacio libre en el sistema de archivos, se recomienda utilizar otro nombre de fichero destino y luego activar esa nueva versión de código seleccionando dicho fichero mediante el comando de configuración set application-active. La razón de hacerlo así es que si se produce un corte de alimentación durante la telecarga, el equipo quedará inservible, ya que el fichero de código estará incompleto. Siempre que sea posible se recomienda guardar el nuevo fichero con otro nombre, establecerlo como activo, y posteriormente borrar el antiguo fichero. A continuación realizamos la carga del archivo de configuración newatlas.cfg que se encuentra en el directorio cfgfiles del servidor TFTP. Para ello habrá que ejecutar el siguiente comando: get 10.1.1.1 \cfgfiles\newatlas.cfg atlas2.cfg Receiving atlas2.cfg from 10.1.1.1\\cfgfiles\newatlas.cfg... 2463 File successfully received En este caso hemos guardado el nuevo archivo de configuración como atlas2.cfg en el sistema de ficheros activos (DSK). Podemos realizar una comprobación de que ambos ficheros se han escrito satisfactoriamente en DSK realizando un listado del sistema de ficheros activo y comprobando que el nombre y la longitud coinciden con la de los archivos transmitidos: ROUTER TELDAT - Ejemplo TFTP IV - 20
dir Current file system: DSK Name Length Attributes ----------------------------------------- 0 ---V-- ATLAS.CFG 2463 -----A IGMP.CFG 1611 -----A ATLAS.BIN 3521536 -----A ATLAS2.CFG 2463 -----A Total: 5 files, 3528073 bytes. 387072 bytes free. No hay que olvidar que para activar el nuevo archivo de configuración en el equipo será necesario 2 indicárselo al equipo desde el menú de configuración: exit +ctrl+p *config Config>set file-cfg atlas2.cfg Config> Ya sólo nos queda reiniciar el equipo para que la nueva versión de código y la nueva configuración entren en efecto: Config>ctrl+p *load immediate Are you sure to reload the device(yes/no)? y Done 2 Siempre y cuando no se haya utilizado como nombre del fichero destino el nombre del archivo de configuración activo en el equipo. ROUTER TELDAT - Ejemplo TFTP IV - 21