Documentos de Académico
Documentos de Profesional
Documentos de Cultura
CONTENIDO
6.1 El servicio DNS – El sistema de nombres - Servidores DNS e Internet – Dominios – Zonas -
Servidores de nombres – Registros de recursos – Formato de los registros de recursos DNS –
Servidores de nombres: primario, secundario y maestro – Archivos de zona – Transferencia de
zona – Notificación DNS - Servidores de reenvío (forwarders) y servidores esclavo – El
almacenamiento en cache - Resolución de nombres – Obtención del nombre del host dada la
dirección IP – Formato del mensaje DNS – Respuestas de consultas – Actualización dinámica –
Seguridad para el servicio DNS – Seguridad en la transferencia de datos – Seguridad de los datos
almacenados – Autenticación de los datos – RR especiales KEY, SIG, NXT- Como se firma una
zona – Generación de claves – Configuración del servidor DNS de reenvío – El formato de la
consulta y respuesta DNSSEC – Crear un esquema de seguridad global – Navegación desde el
punto de confianza – Rotación de las claves KSK y ZSK – Configuración del servicio DNS y
DNSSEC.
6.2 El protocolo DHCP – Terminología DHCP – Protocolo DHCP – Diferencias entre BOOTP y
DHCP - Re-utilización de una dirección de red previamente asignada – El formato del mensaje
DHCP – Agente rele DHCP – Como funcionan los agentes de retransmisión - Planificación de
redes DHCP – Servidores DHCP – Clientes DHCP – Opciones de DHCP – Configuración de un
servidor DHCP – Actualización dinámica con el servidor DNS.
6.3 El protocolo HTTP – Mensajes entre cliente y servidor – Tipos de conexiones cliente servidor
– Cabeceras del protocolo – Estructura de los mensajes HTTP – Caches de páginas y servidores
Proxy – Cookies – Sitios virtuales – Directorios virtuales – Configuración de un servidor HTTP.
6.4 El protocolo FTP – Terminología FTP – El modelo FTP – Transferencia de datos – Modos de
transmisión – El cliente FTP – El servidor FTP – Configuración e un servidor FTP.
6.5 El servicio de Correo Electrónico – El agente de transferencia de mensajes – El agente de
distribución de mensajes – El agente de mensajes del usuario – Formato de un mensaje de correo
electrónico – Protocolo Simple de Transmisión de Correo (SMTP) – Protocolo SMTP desde un
cliente Telnet hacia un servidor SMTP – Configuración de un servidor SMTP.
6.6 Protocolo IMAP – Comunicación entre cliente y servidor – Atributos del mensaje de correo –
Partes del mensaje – Estados de una conexión IMAP – Comandos de cliente – Configuración de un
servidor IMAP4.
6.7 Protocolo POP3 – Comandos POP3 – Configuración del servicio.
6.8 Especificaciones MIME – Campos de cabecera de un mensaje – Ejemplos.
6.9 El protocolo Telnet – El Terminal Virtual de Red – Opciones negociadas – Simetría de las
conexiones – Transmisión de datos – Ordenes Telnet – Aplicaciones de Telnet .
6.10 Administración de redes – Gestión de redes en Internet – Base de información de gestión –
Estructura de información de gestión – El estándar ASN.1 – El protocolo SNMP – La seguridad en
SNMP.
1
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
OBJETIVOS DE LA UNIDAD
Al finalizar esta unidad, usted estará en condiciones de alcanzar los siguientes objetivos:
2
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
CONTENIDOS DE LA UNIDAD
En esta unidad se estudiarán los servicios más importantes en una red TCP/IP, más precisamente
en el ámbito de Internet.
Los servicios y protocolos que se explicarán son los siguientes:
1. El servicio DNS
2. El protocolo DHCP
3. El protocolo HTTP
4. El protocolo FTP
5. El servicio de Correo Electrónico
6. Protocolo IMAP
7. Protocolo POP3
8. Especificaciones MIME
9. El protocolo Telnet
10. Administración de redes
3
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
ESQUEMA CONCEPTUAL
El servicio DNS
El protocolo DHCP
El protocolo HTTP
El protocolo FTP
PROTOCOLO TCP/IP
Protocolo IMAP
Protocolo POP3
Especificaciones MIME
El protocolo Telnet
Administración de redes
4
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
INTRODUCCIÓN
En esta unidad veremos en detalle las aplicaciones servidoras y protocolos que ya se anunciaron en
la presentación de la capa de aplicación del modelo OSI.
5
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
A mediados de los 70, la ARPANET era una comunidad pequeña y amistosa de unas cientos de
máquinas. Un solo archivo, HOSTS.TXT, contenía toda la información que se necesitaba saber
sobre esas máquinas: contenía un mapeo de nombre a dirección para cada máquina en la
ARPANET.
El archivo /etc/hosts (se usa normalmente en LINUX para resolver nombres de computadoras en
direcciones IP) se obtenía entonces del archivo HOSTS.TXT (el cual tenía información adicional
que no era necesaria).
Sin embargo, cuando la ARPANET se cambió a los protocolos TCP/IP, la población de la red
explotó, y con ello se presentaron los siguientes problemas:
• La carga y el tráfico de red para la máquina que contenía las tablas que hacían posible el
mapeo de nombres a direcciones IP se volvió inmanejable.
• Colisiones de nombres. El NIC (organismo encargado de administrar la creación de
nombres) no podía garantizar que alguien asignara el mismo nombre a máquinas distintas
(Esto se debe a que con el método del HOSTS.TXT se tenía un dominio plano, es decir, sin
jerarquías).
• Consistencia: Mantener la consistencia del archivo a lo largo de una red en crecimiento se
hacía cada vez más difícil (Por ejemplo, cuando el archivo HOSTS.TXT llegaba a una
máquina muy lejana ya era obsoleto).
Este método se tornaba ineficiente a medida que aumentaban el número de máquinas. Es allí donde
entra DNS (Domain Name System, Sistema de Nombres de Dominio).
El Sistema de nombres de dominio (DNS) es un conjunto de protocolos y servicios sobre una red
TCP/IP que permite a los usuarios de la red utilizar nombres amigables jerárquicos cuando se
busca a otros hosts, en lugar de tener que recordar y usar sus direcciones IP.
En la actualidad, este sistema se usa en Internet y en casi todas las intranets de las empresas
privadas cuyos sistemas operativos estén configurados para trabajar con el protocolo TCP/IP. Si
alguna vez ha utilizado un explorador WEB, una aplicación de Telnet, un programa de FTP o
cualquier otro programa de TCP/IP parecido de Internet, entonces probablemente haya usado un
servidor DNS.
La función más conocida de los protocolos DNS es la asignación de nombres amigables a
direcciones IP. Por ejemplo, si la dirección IP del sitio FTP de Microsoft es 157.55.100.1, la
mayoría de la gente llega a este equipo especificando ftp.microsoft.com y no la dirección IP, que
es menos amigable. Además de ser más fácil de recordar, el nombre es más fiable (es como una
marca registrada) ya que las otras direcciones de las computadoras (mac address y direcciones IP)
son temporarias aunque sean estáticas.
Antes de la implementación de DNS, la utilización de nombres de equipos que fueran amigables se
realizaba a través del uso de archivos planos como HOSTS, que contenían una lista de nombres y
sus direcciones IP asociadas. En Internet, este archivo se administraba de forma centralizada y cada
6
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
administración descargaba periódicamente una nueva copia. A medida que fue creciendo el
número de equipos en Internet, esta solución se complicó demasiado y surgió la necesidad de algo
mejor. Esta solución mejor se convirtió en DNS.
Según el Dr. Paul Mockapetris, el diseñador principal de DNS, el objetivo original del diseño de
DNS era reemplazar este engorroso archivo HOSTS, administrado de forma singular, por una base
de datos distribuida ligera que permitiera la existencia de un espacio jerárquico de nombres, la
distribución de la administración, tipos de datos extensibles, tamaño de base de datos virtualmente
ilimitado y un rendimiento razonable.
DNS se asigna a la capa 7 del modelo OSI y puede usar UDP o TCP como protocolo subyacente.
Los resolver (programa del sistema operativo encargado de resolver los nombres de las
computadoras a solicitud de los programas de aplicación) envían consultas UDP primero a los
servidores, para obtener un mejor rendimiento, y sólo acuden a TCP si los datos devueltos están
truncados.
La implementación más conocida del protocolo DNS ‘BIND’ se programó en Berkeley,
originalmente, para el sistema operativo UNIX BSD 4.3. El nombre ‘BIND’ significa Berkeley
Internet Name Domain (Dominio de nombres de Internet de Berkeley). Las especificaciones
principales de DNS se definen en las Peticiones de comentarios (Requests for Comments, RFC)
974, 1034 y 1035.
El Sistema de Nombres
Un sistema de nombres de dominio (DNS) consta de una base de datos de nombres distribuida. Los
nombres de la base de datos DNS establecen una estructura lógica de árbol conocida como espacio
de nombres del dominio. Cada nodo o dominio del espacio de nombres del dominio tiene un
nombre y puede contener sub-dominios.
Los dominios y sub-dominios se agrupan en zonas para permitir la administración distribuida del
espacio de nombres (las zonas se describen más adelante en esta sección).
El nombre del dominio identifica la posición del dominio en la jerarquía lógica de DNS respecto de
su dominio principal, al separar cada rama del árbol con un punto ‘.’. En la Figura se muestran
varios dominios superiores, entre los que se encuentra el dominio IUA y un host llamado ‘www’
dentro del dominio ´iua.edu.ar´. Si alguien quisiera contactar con ese host, usaría el Nombre de
dominio completo (FQDN) www.iua.edu.ar.
7
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
Dominios
Cada nodo del árbol de una base de datos DNS, junto con todos los nodos por debajo del mismo, se
llama un dominio. Los dominios pueden contener host (equipos) y otros dominios (sub-dominios).
Por ejemplo, el dominio Microsoft, microsoft.com, podría contener a la vez equipos, como
ftp.microsoft.com, y sub-dominios, como dev.microsoft.com, que a su vez podría contener host,
como por ejemplo ntserver.dev.microsoft.com.
Zonas
Una zona es alguna parte del espacio de nombre DNS, almacenado como un conjunto de registros
de una base de datos, en un archivo de zona. Puede configurarse un único servidor DNS para
administrar uno o múltiples archivos de zona. Los archivos de zona no contienen necesariamente
todo el árbol (es decir, todos los sub-dominios) bajo el dominio raíz de la zona. En la Figura, que
se muestra a continuación, se ofrece una comparación entre dominios y zonas. En este ejemplo,
microsoft.com es un dominio pero el dominio completo no está controlado por un archivo de zona.
Parte del dominio está realmente dividido en un archivo de zona distinto para dev.microsoft.com.
Es muy importante que comprenda la diferencia entre una zona y un dominio. Una zona es un
archivo físico compuesto de varios registros de recurso que definen uno o varios sub-dominios. Un
dominio es un nodo del espacio de nombres DNS y todos los sub-dominios que se encuentran por
debajo. Podríamos hacer una semejanza entre el árbol de dominios y un árbol de directorios. Los
dominios serian los directorios; los sub-dominios, los sub-directorios; y los hosts , los archivos.
8
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
Registros de recursos
Una base de datos DNS o zona, se compone de uno o varios archivos de zonas utilizados por el
servidor DNS. Cada zona mantiene un conjunto de registros de recursos estructurados.
Todos los registros de recursos tienen un formato definido que utiliza los mismos campos de nivel
superior, según se describe en la tabla siguiente.
9
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
Campo Descripción
Propietario Indica el nombre de dominio DNS o dirección IP que posee un registro de recursos.
Para la mayor parte de los registros de recursos, este campo es opcional. Indica el
espacio de tiempo utilizado por otros servidores DNS para determinar cuánto tarda
la información en caché en caducar un registro y descartarlo.
Por ejemplo, la mayor parte de los registros de recursos que crea el servicio del
servidor DNS heredan el TTL mínimo (predeterminado) de 1 hora desde el registro
de recurso de inicio de autoridad (SOA) que evita que otros servidores DNS
Tiempo de
almacenen en caché durante demasiado tiempo.
vida (TTL)
En un registro de recursos individual, puede especificar un TTL específico para el
registro que suplante el TTL mínimo (predeterminado) heredado del registro de
recursos de inicio de autoridad. También se puede utilizar el valor cero (0) para el
TTL en los registros de recursos que contengan datos volátiles que no estén en la
memoria caché para su uso posterior una vez se complete la consulta DNS en
curso.
Contiene texto nemotécnico estándar que indica la clase del registro de recursos.
Clase Por ejemplo, el valor "IN" indica que el registro de recursos pertenece a la clase
Internet.
Contiene texto nemotécnico estándar que indica el tipo de registro de recursos. Por
Tipo ejemplo, el texto nemotécnico "A" indica que el registro de recursos almacena
información de direcciones de host. Este campo es obligatorio.
Datos Un campo, de longitud variable y obligatorio con información que describe el
específicos del recurso. El formato de esta información varía según el tipo y clase del registro de
registro recursos.
Registro tipo A
Descripción: registro de recursos de direcciones de host (A). Asigna un nombre de dominio DNS
a una dirección de 32 bits de Protocolo Internet (IP) versión 4
Sintaxis: propietario clase ttl A dirección IPv4
Ejemplo: www.iua.edu.ar IN A 200.200.200.200
Asynchronous Transfer Mode address). Asigna un nombre de dominio DNS del campo propietario
a una dirección ATM a la que hace referencia el campo dirección Atm.
Sintaxis: propietario ttl clase ATMA dirección Atm
Ejemplo: atm-host ATMA 47.0079.00010200000000000000.00a03e000002.00
Registro de tipo MB
Registro de tipo MG
Descripción: registro de recursos del grupo de correo (MG). Se utiliza para agregar buzones de
dominio, cada uno especificado por un registro de recursos de buzón (MB) en la zona actual, al
grupo de correo de dominio identificado por propietario en este registro de recursos. Los nombres
utilizados en el campo nombreBuzón deben ser idénticos a los registros de recursos de buzón (MB)
válidos ya presentes en la zona actual
Sintaxis: propietario ttl clase MG nombreBuzón
Ejemplo: administrator.pepe.com. MG mailbox1.pepe.com mailbox2.pepe.com
11
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
Registro de tipo MX
Descripción: registro de recursos del agente de intercambio de correo (MX) (servidor de correo
MTA). Permite localizar al ruteador (intercambiador de correo) de correo MTA de un dominio
determinado. El nombre del servidor se especifica en hostIntercambiadorDeCorreo. Permite
localizar el intercambiador de correo para el correo (Ej. Dirección Juan@pepe.com) enviado con
nombre de dominio que se especifica en el campo propietario. El valor de preferencia de 2 dígitos
indica el orden preferido cuando se especifican varios hosts intercambiadores. Cada host
intercambiador debe tener su correspondiente registro de recursos de direcciones de host (A) en
una zona válida.
Sintaxis: propietario ttl clase MX preferencia hostIntercambiadorDeCorreo
Ejemplo: pepe.com. MX 10 mailserver1.pepe.com
Registro de tipo NS
Sintaxis:
propietario clase SOA servidorNombres personaResponsable (numeroSerie intervaloActualiza
cion intervaloReintento caducidad tiempoDeVidaMinimo)
Ejemplo:
1 ; serial number
Descripción: registro de recursos X.25 (X25): Asigna un nombre de dominio DNS en el campo
propietario al número de dirección de Red pública de datos conmutados (PSDN, Public Switched
Data Network) especificado en númeroPsdn. Los números PSDN que se utilizan con este registro
deben seguir el plan de numeración internacional X.121.
Sintaxis: propietario ttl clase X25 númeroPsdn
Ejemplo pepe.com. X25 52204455506
13
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
En la mayor parte de implementaciones con versiones anteriores de servidores DNS, este método
de transferencia completa de una zona también se utiliza cuando la zona necesita actualizarse
después de haber experimentado cambios. Para los servidores DNS que ejecutan versiones
modernas, el servicio DNS admite la transferencia de zona incremental; un proceso revisado de
transferencia de zona DNS para cambios intermedios.
14
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
Archivos de zona
Los archivos de zona constituyen las bases de datos de los servidores DNS que tienen autoridad
sobre la zona. El conjunto de estos archivos de todo el mundo constituyen la base de datos
distribuida DNS mundial.
Se usan archivos separados puesto que no existe una relación biunívoca entre las direcciones y los
nombres. Un nombre puede tener varias direcciones IP y una dirección IP puede tener varios
nombres.
;
; Archivo de zona para iua.edu.ar
;
; Mínimo indispensable para tener funcionando un dominio
;
@ IN SOA ns.iua.edu.ar. root.ns.iua.edu.ar. (
2002062701 ; Numero de serie, fecha de hoy + n. de
; serie de hoy
28800 ; Tasa de Refresco, en segundos
7200 ; Tasa de Reintento, en segundos
3600000 ; Caducidad para secundario, en segundos
86400 ) ; Tiempo de Validez para Clientes, en segundos
NS ns.iua.edu.ar. ; servidor DNS
MX 10 mail.iua.edu.ar. ; servidor de Correo Primario
MX 20 mail2.iua.edu.ar. ; servidor de Correo Secundario
localhost A 127.0.0.1
ns A 192.168.1.200
mail A 192.168.1.201
mail2 A 192.168.1.202
……………………………………………
……………………………………………
Deben de observarse dos cosas sobre los registros SOA: ns.iua.edu.ar. debe ser una máquina actual
con un registro A. No es legal tener un registro CNAME (alias) para la máquina mencionada en el
registro SOA. Su nombre no necesita ser ns, podría ser cualquier nombre legal de máquina. Ud
debería usar el nombre y dirección IP de su servidor DNS.
El hostmaster de ns.iua.edu.ar deberá tener una dirección de correo como root@ns.iua.edu.ar; esto
es una cuenta de correo, donde la(s) persona(s) que realizan el mantenimiento de DNS deberían
leer con frecuencia el correo. Cualquier email respecto del dominio será mandado a la dirección
aquí indicada. El nombre no tiene por que ser root, puede ser cualquier dirección email legal.
15
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
El registro de recurso (RR) MX, o Mail eXchanger indica el servidor de correo a donde mandar el
correo dirigido a alguien@ iua.edu.ar.
El número que precede a cada nombre de máquina es la prioridad del RR MX. El RR con el
número más bajo (10) es aquel al que el correo será enviado primero. Si este falla, puede ser
mandado a otro con un número más alto, que será gestor secundario de correo, como
mail2.iua.edu.ar que tiene una prioridad 20 aquí.
La zona de resolución inversa es la parte de la configuración que parece crear más dolores de
cabeza. Se usa para encontrar el nombre de la máquina a partir de su dirección IP. Existe esta
necesidad cuando por razones de seguridad se desea comprobar que existe dicho nombre y tiene tal
dirección IP.
La resolución inversa puede parecer que sólo es importante para los servidores, o que no tienen
importancia. No es así; muchos servidores de ftp, news, irc e incluso algunos servidores http
(WWW) NO aceptarán conexiones de máquinas de las cuales no son capaces de resolver el
nombre en forma inversa. Por tanto el mapeo inverso de máquinas es de hecho obligatorio.
En base a lo explicado queda para el alumno la configuración completa del servidor DNS que
instalará en su computadora de acuerdo a las características de su red.
16
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
Transferencia de zona
El servidor secundario o esclavo debe buscar en el servidor primario o maestro los datos de la zona
de la cual el es servidor con autoridad.
Para ello el servidor secundario debe conocer la dirección de red del servidor primario, al cual
recurrirá inmediatamente de ser configurado, y luego en sucesivas búsquedas para actualizar su
archivo de zona de acuerdo a lo establecido en el registro SOA de la zona respectiva.
El servidor secundario se fija en el número de serie del registro SOA y si su versión es inferior a
este, realiza la copia o transferencia de zona completa.
También es posible de acuerdo a la configuración del servidor primario, que este notifique a los
servidores secundarios cuando se realicen modificaciones en la zona. En cuyo caso los servidores
secundarios deberán iniciar la transferencia de la zona completa.
Cuando un servidor DNS que actúa como origen para una zona y los servidores que copian la zona
de él admiten las transferencias incrementales, se obtiene un método más eficiente para la
propagación de los cambios y las actualizaciones de la zona.
En las implementaciones DNS anteriores, una solicitud de actualización de los datos de la zona
requería una transferencia completa de toda la base de datos de la zona mediante una consulta
AXFR.
Con la transferencia incremental, se puede utilizar un tipo de consulta alternativo (IXFR). Esto
permite al servidor secundario extraer sólo los cambios de la zona que necesita para sincronizar su
copia de la zona con su origen, ya sea una copia principal o secundaria de la zona que mantiene
otro servidor DNS.
Con las transferencias de zona IXFR, primero se determinan las diferencias entre el origen y las
versiones replicadas de la zona. Si se determina que las zonas tienen la misma versión, en función
del valor indicado en el campo de número de serie del registro de recursos de inicio de autoridad
(SOA) de cada zona, no se realiza ninguna transferencia.
Si el número de serie de la zona de origen es mayor que el del servidor secundario solicitante,
solamente se realiza una transferencia de los cambios efectuados en los registros de recursos (RR)
de cada versión incremental de la zona.
Para realizar una consulta IXFR efectiva y enviar los cambios, el servidor DNS de origen de la
zona debe mantener un historial de los cambios incrementales de la zona para utilizarlo al
responder a estas consultas. El proceso de transferencia incremental requiere bastante menos
tráfico en la red y las transferencias de zona se completan mucho más rápidamente.
Las transferencias de zona siempre se inician en el servidor secundario de una zona y se envían a
sus servidores maestros configurados que actúan como origen de la zona. El servidor maestro
puede ser cualquier otro servidor DNS que cargue la zona, como el servidor principal para la zona
u otro servidor secundario. Cuando un servidor maestro recibe la solicitud para la zona, puede
responder con una transferencia parcial o completa de la zona al servidor secundario.
Como se muestra en la ilustración siguiente, las transferencias de zona entre servidores siguen un
proceso ordenado. Este proceso varía en función de si la zona se ha replicado anteriormente o si se
está realizando la replicación inicial de una zona nueva.
En este ejemplo, se lleva a cabo la siguiente secuencia para un servidor secundario solicitante (el
servidor de destino) de una zona y su servidor de origen (otro servidor DNS que aloja la zona).
18
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
6. Si el servidor de destino deduce que la zona ha cambiado, envía una consulta IXFR al
servidor de origen, que contiene su valor local actual para el número de serie del registro de
inicio de autoridad de la zona.
7. El servidor de origen responde con una transferencia incremental o completa de la zona.
19
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
Notificación DNS
Para que los servidores secundarios reciban una notificación del servidor DNS que actúa como su
origen configurado para una zona, cada servidor secundario debe tener primero su dirección IP en
la lista de notificación del servidor de origen.
Además de enviar notificaciones a los servidores de la lista, la consola DNS permite utilizar el
contenido de la lista de notificación como un medio para restringir o limitar el acceso de la
transferencia de zona sólo a los servidores secundarios especificados en la lista.
Esto puede servir de ayuda para impedir que un servidor DNS no aprobado o desconocido intente
extraer o solicitar actualizaciones de zona.
A continuación, se muestra un breve resumen del proceso de notificación DNS típico para las
actualizaciones de zonas:
1. La zona local se actualiza en un servidor DNS que actúa como servidor maestro, es decir,
como origen para la zona en otros servidores. Cuando se actualiza la zona en el servidor
maestro o de origen, también se actualiza el campo de número de serie del registro de
recursos de inicio de autoridad, que indica una versión local nueva de la zona.
2. El servidor maestro envía un mensaje de notificación DNS a otros servidores que forman
parte de su lista de notificación configurada.
3. A continuación, todos los servidores secundarios que reciben el mensaje de notificación
pueden responder mediante la emisión de una solicitud de transferencia de zona al servidor
maestro que envió la notificación.
El proceso de transferencia de zona normal puede continuar tal y como se describió en la sección
anterior.
Use la notificación DNS sólo con los servidores que actúan como servidores secundarios de una
zona.
De forma predeterminada, el servidor DNS sólo permitirá una transferencia de zona a los
servidores DNS autorizados, que son los especificados en los registros de recursos del servidor de
nombres maestro de la zona.
20
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
Cuando un servidor de nombres DNS recibe una petición de DNS, intenta localizar la información
solicitada dentro de sus propios archivos de zona. Si esto no funciona porque el servidor no tiene
autoridad sobre el dominio solicitado, debe comunicarse con otros servidores de nombres DNS
para resolver la petición.
Teniendo en cuenta que la petición de resolución DNS fuera de una zona local suele requerir la
interacción con servidores de nombres DNS de fuera de la empresa en Internet, puede que desee
activar de forma selectiva, determinados servidores de nombres DNS en su empresa para realizar
esta comunicación de área extensa, con servidores DNS de Internet.
Para solucionar este asunto, DNS ofrece el concepto de servidor de reenvío. Se seleccionan
determinados servidores de nombres DNS para que sean servidores de reenvío para el resto de los
servidores, de tal manera que estos sean los que lleven a cabo la comunicación de área amplia en
Internet.
Todos los demás servidores de nombres DNS de la compañía se configuran para que usen los
servidores de reenvío, mediante la indicación de la dirección IP de dichos servidores, como
servidores de reenvío. Esta configuración se realiza teniendo en cuenta el servidor, no la zona (son
servidores de reenvío para todas las zonas que se desee consultar y no para una en particular) . En
la siguiente figura se muestra ésta situación.
Cuando un servidor configurado como servidor de reenvío recibe una petición DNS que no puede
resolver (a través de sus propios archivos de zona), pasa la petición a sus servidores de reenvío. A
continuación, el siguiente servidor de reenvío realiza la comunicación necesaria para satisfacer la
petición y así sucesivamente. Una vez resuelta la petición original, se devuelve los resultados al
21
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
servidor que efectuó la petición, que a su vez, devuelve la petición al anterior, hasta llegar al
solicitante original.
Si el servidor de reenvío no puede resolver la consulta, el servidor que realizó la petición, también
tiene la alternativa de resolverla por sí mismo, de forma normal, consultando a otros servidores
DNS, para obtener la dirección del servidor DNS que tiene autoridad sobre la zona donde está
registrado el host de quien se quiere conocer su dirección IP.
Los esclavos son servidores DNS configurados para usar servidores de reenvío solamente y
también para devolver un mensaje de error si el propio servidor de reenvío no es capaz de resolver
la consulta. Los esclavos no intentan ponerse en contacto con otros servidores de nombres cuando
el servidor de reenvío no puede satisfacer la petición, salvo que estén definidos otros servidores de
reenvío a los cuales realizará las peticiones hasta lograr respuesta satisfactoria de alguno de ellos ó
agotar la lista de forwarders.
22
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
El almacenamiento en caché
Cuando los servidores DNS procesan las consultas de los clientes mediante la recursividad o la
iteración, descubren y adquieren un almacén significativo de información acerca del espacio de
nombres DNS. A continuación, el servidor almacena en caché esta información.
Cuando los servidores DNS realizan consultas en nombre de clientes, almacenan temporalmente en
caché los registros de recursos. Los registros de recursos almacenados en caché contienen
información obtenida de los servidores DNS que tienen autoridad para los nombres de dominio
DNS.
Posteriormente, cuando otros clientes realizan consultas nuevas que solicitan información de un
registro de recursos que coincide con los registros de recursos almacenados en la caché, el servidor
DNS puede utilizar la información de registro de recursos almacenada en la caché para
responderlas.
Cuando la información se almacena en la caché, se aplica el valor Tiempo de vida (TTL) a todos
los registros de recursos almacenados en la caché.
Al valor de los TTL del almacenamiento en caché, se le asigna el TTL mínimo (predeterminado)
que se utiliza en el registro de recursos de inicio de autoridad (SOA) de la zona de donde proviene
la información del recurso.
De forma predeterminada, el tiempo de vida mínimo es de 3.600 segundos (1 hora), pero se puede
ajustar o, si es necesario, se pueden establecer tiempos de vida individuales de almacenamiento en
caché para cada registro de recursos.
El administrador del servidor de nombres de la zona que contiene los datos originales, decide el
TTL para los datos propios. Cuanto menores sean los valores de TTL se asegurará que los datos del
23
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
dominio sean más consistentes en la red si este valor cambia a menudo. Sin embargo, esto también
aumentará la carga del servidor de nombres.
En cuanto se almacenan los datos en la caché de un servidor DNS, debe empezar a disminuir el
TTL (es decir, a descontar) del valor original, de forma que pueda saber cuándo eliminar los datos
de su caché. Si llega una consulta que se puede contestar con los datos acumulados, el TTL que se
devuelve con los datos es el tiempo real restante hasta que se eliminen los datos de la caché del
servidor DNS. Los resolver cliente también disponen de cachés de datos y utilizan el valor TTL, lo
que les permite saber cuándo caducan los datos.
24
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
Resolución de nombres
Un cliente puede realizar dos tipos de consultas a un servidor DNS, recursiva e iterativa.
Mientras se comenta la resolución de nombres, recuerde que un servidor DNS puede ser un cliente
de otro servidor DNS.
Consultas recursivas: En una consulta recursiva, se pide al servidor de nombres que responda con
los datos pedidos, o con un error que indique que el nombre del dominio especificado o los datos
del tipo pedido no existen. El servidor de nombres no puede mandar al solicitante a un servidor de
nombres distinto.
Este tipo de consulta suele realizarla un cliente DNS (un Resolver) a un servidor DNS. Además, si
un servidor DNS está configurado para usar un servidor de reenvío, la consulta de este servidor
DNS a su servidor de reenvío será una consulta recursiva.
Consultas iterativas: En una consulta iterativa, el servidor de nombres consultado devuelve al
solicitante la mejor respuesta que tiene disponible (la dirección IP de un servidor de nombres de
una zona lo más cercana al host en cuestión). Este tipo de consulta la suele realizar un servidor
DNS a otros servidores DNS después de haber recibido una consulta recursiva de un resolver.
En la siguiente figura se muestra un ejemplo de ambos tipos de consultas. La consulta 1/8 es una
consulta recursiva de un resolver de clientes a su servidor DNS, mientras que 2/3, 4/5 y 6/7 son
consultas iterativas del servidor DNS a otros servidores DNS.
Estas consultas iterativas son posibles debido a que cada servidor DNS contiene la dirección IP de
los servidores DNS de sus sub-zonas y de esta manera se materializa el árbol DNS para permitir su
navegación de arriba hacia abajo.
Por ejemplo el servidor DNS root-server (“.”) mantiene en su base de datos la dirección IP del
servidor DNS de la zona .com. Este servidor a su vez mantiene la dirección del servidor DNS de la
zona .empresa.com. Y este servidor finalmente es la autoridad de la zona que contiene a la
dirección IP de la computadora www.empresa.com. Vemos que la clave es disponer de la “punta
del ovillo” o sea de la dirección IP de algún root-server.
La lista de los root-servers (nombres y direcciones IP) se mantiene en un archivo o base de datos
en todo servidor DNS que desee realizar consultas iterativas. En la actualidad hay
aproximadamente (esto esta sujeto a cambios) 13 servidores DNS en el mundo que trabajan como
root-servers. En la figura se muestra un mapa con la ubicación geográfica de estos. Los nombres se
refieren como A-root-server, B-root-server, C…….
25
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
En la siguiente figura vemos un archivo que normalmente viene con el software de la aplicación
servidora DNS, que contiene el listado de los root-servers.
. 3600000 IN NS A.ROOT-SERVERS.NET.
A.ROOT-SERVERS.NET. 3600000 A 198.41.0.4
;
; formerly NS1.ISI.EDU
;
. 3600000 NS B.ROOT-SERVERS.NET.
B.ROOT-SERVERS.NET. 3600000 A 128.9.0.107
;
; formerly C.PSI.NET
;
. 3600000 NS C.ROOT-SERVERS.NET.
C.ROOT-SERVERS.NET. 3600000 A 192.33.4.12
;
; formerly TERP.UMD.EDU
;
. 3600000 NS D.ROOT-SERVERS.NET.
D.ROOT-SERVERS.NET. 3600000 A 128.8.10.90
;
; formerly NS.NASA.GOV
;
. 3600000 NS E.ROOT-SERVERS.NET.
E.ROOT-SERVERS.NET. 3600000 A 192.203.230.10
;
; formerly NS.ISC.ORG
;
. 3600000 NS F.ROOT-SERVERS.NET.
F.ROOT-SERVERS.NET. 3600000 A 192.5.5.241
;
; formerly NS.NIC.DDN.MIL
;
. 3600000 NS G.ROOT-SERVERS.NET.
G.ROOT-SERVERS.NET. 3600000 A 192.112.36.4
;
; formerly AOS.ARL.ARMY.MIL
;
26
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
. 3600000 NS H.ROOT-SERVERS.NET.
H.ROOT-SERVERS.NET. 3600000 A 128.63.2.53
;
; formerly NIC.NORDU.NET
;
. 3600000 NS I.ROOT-SERVERS.NET.
I.ROOT-SERVERS.NET. 3600000 A 192.36.148.17
;
; temporarily housed at NSI (InterNIC)
;
. 3600000 NS J.ROOT-SERVERS.NET.
J.ROOT-SERVERS.NET. 3600000 A 198.41.0.10
;
; housed in LINX, operated by RIPE NCC
;
. 3600000 NS K.ROOT-SERVERS.NET.
K.ROOT-SERVERS.NET. 3600000 A 193.0.14.129
;
; temporarily housed at ISI (IANA)
;
. 3600000 NS L.ROOT-SERVERS.NET.
L.ROOT-SERVERS.NET. 3600000 A 198.32.64.12
;
; housed in Japan, operated by WIDE
;
. 3600000 NS M.ROOT-SERVERS.NET.
M.ROOT-SERVERS.NET. 3600000 A 202.12.27.33
; End of File
Cada entrada contiene dos líneas. Las líneas que comienzan con “;” son solo comentarios. La
primera indica que se trata de un registro NS o sea se refiere a un servidor de nombres. En este
caso el dominio propietario es root (“.“ ). La segunda indica que se trata de un registro A que
relaciona el nombre con la dirección IP de este servidor. Este archivo describe los servidores de
nombres del dominio raíz en el mundo. Uno es el primario y el resto son los secundarios. Este
archivo cambiará a lo largo del tiempo y tiene que ser mantenido y actualizado con una cierta
regularidad.
27
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
28
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
En el gráfico siguiente se muestra un ejemplo de una consulta inversa iniciada por un cliente DNS
(host-b) para aprender el nombre de otro host (host-a) basándose en su dirección IP, 192.168.1.20.
El proceso de búsqueda inversa que se muestra en este gráfico se produce en los siguientes pasos:
1. El cliente, "host-b", consulta al servidor DNS un registro de recursos de puntero (PTR) que
asigna la dirección IP 15.16.192.152 a "host-a".
29
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
Ya que esta consulta se realiza en los registros de puntero, el resolver invierte la dirección y
agrega el dominio in-addr.arpa al final de la dirección inversa. De esta manera, forma el
nombre de dominio completo ("15.16.192.152.in-addr.arpa.") que se va a buscar en una
zona de búsqueda inversa.
30
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
Respuestas de consultas
Las consultas en general pueden generar varios tipos de respuestas. Las más habituales son:
Una respuesta con autoridad es una respuesta positiva devuelta al cliente y entregada con el bit de
autoridad activado en el mensaje DNS para indicar que la respuesta se obtuvo de un servidor con
autoridad directa para el nombre consultado.
Una respuesta positiva puede estar formada por el registro de recursos consultado o por una lista
de registros de recursos (también llamada RRset) que se ajusta al nombre de dominio DNS
consultado y el tipo de registro especificado en el mensaje de la consulta.
Una respuesta de referencia contiene datos adicionales como registros de recursos (RR) distintos
de los del tipo consultado. Por ejemplo, si el nombre de host consultado era "www" y no se
encontró ningún registro de recursos de dirección (A) para este nombre en esta zona pero, en su
lugar, se encontró un registro de recursos de CNAME para "www", el servidor DNS puede incluir
esa información cuando responda al cliente.
Si el cliente puede utilizar la iteración, puede hacer consultas adicionales con la información de
referencia en un intento de resolver completamente el nombre por sí mismo.
31
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
Una respuesta negativa del servidor puede indicar que se encontró uno de los dos resultados
posibles mientras el servidor intentaba procesar y resolver de forma recursiva la consulta
completamente y con autoridad:
Si la respuesta resultante de una consulta es demasiado larga para poderla enviar y resolver en un
sólo paquete de mensaje UDP, el servidor DNS puede iniciar una respuesta de conmutación por
error a través del puerto 53 de TCP para responder al cliente completamente en una sesión
conectada de TCP.
De forma predeterminada, los servidores DNS utilizan varios tiempos predeterminados cuando
realizan una consulta recursiva y se ponen en contacto con otros servidores DNS. Son los
siguientes:
En la mayor parte de los casos, no es necesario ajustar estos parámetros. Sin embargo, si utiliza
búsquedas recursivas en un vínculo WAN de baja velocidad, es posible que pueda mejorar el
rendimiento del servidor y la resolución de la consulta realizando pequeños ajustes en estos
valores.
32
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
Actualización dinámica
El servicio DNS tradicional es estático en el sentido que las zonas solo se pueden cambiar
mediante intervención manual del administrador en el servidor primario. Sin embargo actualmente
existe la posibilidad de la actualización dinámica o sea la modificación de una zona sin la
intervención del administrador.
La actualización dinámica permite a los equipos cliente DNS (computadora que usa el servicio
DNS) guardar y actualizar dinámicamente sus registros de recursos (los propios del cliente) en un
servidor DNS siempre que se produzcan cambios. Esto disminuye la necesidad de administrar de
forma manual los registros de zona, especialmente para los clientes que mueven o cambian
ubicaciones con frecuencia y utilizan DHCP (servicio de asignación de direcciones IP en forma
dinámica) para obtener una dirección IP.
Los servicios de Cliente y Servidor DNS admiten el uso de actualizaciones dinámicas, tal como
se describe en el documento solicitud de comentarios (RFC) 2136, "Actualizaciones dinámicas en
el Sistema de nombres de dominio".
El servicio Servidor DNS permite habilitar o deshabilitar la actualización dinámica por zonas en
cada servidor configurado para cargar una zona principal estándar o integrada en directorio.
La actualización también puede hacerse con la intervención del servidor DHCP en las redes de
configuración dinámica del protocolo TCP/IP.
Las actualizaciones dinámicas se pueden enviar por cualquiera de las siguientes razones o sucesos
que modifican la configuración de un servidor DHCP:
Cuando uno de los sucesos anteriores activa una actualización dinámica, el servicio Cliente
DHCP (no el servicio Cliente DNS) envía las actualizaciones.
33
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
También se puede utilizar el servidor DHCP para registrar y actualizar los registros de recursos de
punteros (PTR) y de direcciones (A) en nombre de sus clientes habilitados para DHCP.
Este proceso requiere la utilización de una opción de DHCP adicional. Esta opción permite que el
cliente proporcione su nombre de dominio completo (FQDN), así como instrucciones al servidor
DHCP acerca de cómo desea que el servidor procese las actualizaciones dinámicas de DNS (si las
hubiera) en su nombre.
Cuando esta opción la emite un cliente DHCP calificado, los servidores DHCP la procesan y la
interpretan para determinar la forma en que el servidor iniciará las actualizaciones en nombre del
cliente.
34
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
Las extensiones de seguridad realizadas a DNS en DNSSEC (RFC 2535) ofrecen servicios para
realizar la autenticación de origen de datos y la comprobación de integridad. Estos servicios
permiten cifrar firmas digitales (hash de un RR) utilizando claves privadas y enviarlas como
registros de recursos desde servidores DNS que alojen zonas firmadas (compatibles con DNSSEC)
a interpretadores (resolvers) en los que se puedan autenticar los registros de recursos utilizando
claves públicas.
En otras palabras, cada registro de recurso (RR) tiene un registro adicional (registro SIG) que
contiene la firma digital de dicho recurso. Dicha firma digital se comprueba mediante una llave
pública de la zona (ZSK o Zone Signing Key) para verificar la autenticidad e integridad del RR.
Tanto las firmas digitales como las claves públicas se agregan a una zona firmada en forma de
registros de recursos.
En la figura se muestran las partes afectadas por posibles problemas de seguridad. El servidor DNS
de reenvío es el resolver DNSSEC que permite adquirir datos DNS seguros y proporcionárselos a
los clientes que son resolvers comunes que no trabajan con DNSSEC.
Los casos 2, 3 y 4 tienen que ver con la transferencia de datos y el caso 1 con la seguridad de los
datos almacenados.
Se usa el mecanismo conocido como Transaction Signatures (TSIG) que consiste en definir una
clave secreta que debe ser compartida entre transmisor y receptor. Existen herramientas que
permiten generar las claves. La distribución de las claves debe realizarse mediante medios extraños
35
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
a DNSSEC por el momento. Por ejemplo mediante una comunicación telefónica o mediante correo
protegido por PGP. Dicha clave debe incluirse en el archivo o base de datos que conforma la
configuración del servidor DNS que tiene DNSEC activada. Esto debe realizarse en ambos
servidores, transmisor (fuente de los datos) y el receptor (servidor primario DNS o secundario
DNS).
Hay que tener en cuenta que los servidores participantes son de la misma empresa y deben estar
autenticados unos con otros, para no permitir la participación de terceros que pueden generar
inseguridades. Debido a que los servidores se reconocen mutuamente no es necesaria la utilización
de criptografía pública. Se emplea la criptografía de clave secreta por ser la mas adecuada en este
caso.
Se aplica a la información almacenada. Tanto las claves privadas como las públicas están
asociadas a zonas específicas y no a los servidores DNS que alojen dichas zonas.
Las características de DNSSEC aquí descritas, o en RFC 2535, no son totalmente compatibles con
varios servidores DNS actuales. Por ejemplo, el servidor DNS de Windows Server 2003
proporciona solamente "compatibilidad básica" del protocolo de Extensiones de seguridad de DNS
(DNSSEC) tal como se define en el documento RFC 2535.
En DNSSEC, cada zona tiene su propia clave pública y privada utilizada para cifrar y descifrar
firmas digitales.
Una zona cifrada o segura es una zona DNS que tiene tanto clave privada como pública. Cuando
un conjunto de registros de recursos (RR) de una zona está firmado con una clave privada, los
interpretadores que contienen la clave pública de la zona pueden autenticar si un RR recibido de la
zona está autorizado.
SE define un RRSeset como el grupo de RRs que tienen un mismo nombre (propietario), misma
clase y mismo tipo.
Todo servidor primario DNS debe generar su par de claves pública y privada que usara para firmar
los RRs de la zona. Dicha clave es la que llamamos ZSK o Zone Signing Key. La clave pública se
publica en la zona correspondiente y la clave privada se guarda en un archivo de máxima
seguridad.
Cuando un servidor DNS responde positivamente a una consulta de un nombre DNS, contesta con
los registros de recursos solicitados y los RR de recursos SIG que corresponden a cada RR. Los
interpretadores que conozcan la clave pública asociada al nombre solicitado reciben el registro de
recurso SIG y utilizan la clave pública para autenticar los registros de recursos.
36
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
Se deben proporcionar los registros de recursos KEY al interpretador (resolver) antes de que este
pueda autenticar registros de recursos SIG. La obtención de esta clave pública en el caso más
simple se obtiene fuera de banda o sea por algún mecanismo extraño a DNSSEC. Luego veremos
que en el caso general, la clave ZSK se obtiene mediante el protocolo DNSSEC (tenga en cuenta
que DNSSEC es el mismo protocolo DNS con agregados de seguridad que estamos comentando).
Tenga en cuenta que el resolver o interpretador debe basarse en una llave que provenga de un
mecanismo que le proporcione confianza. En las conexiones 2 y 3 de la figura anterior se establece
un canal seguro mediante el secreto compartido entre los servidores. En el caso 4 (los servidores
no tienen relación de confianza) no existe tal canal seguro. Tampoco se usa PKI (infraestructura de
llave pública) para garantizar que la llave pública en poder del resolver sea la auténtica. Por eso en
el caso más simple debe usarse un medio seguro para la distribución de la clave pública, y hasta
ese momento DNS no lo es. Una vez que el resolver tiene la llave pública recién entonces
comienza el mecanismo DNSSEC.
RR especiales
Descripción: Registro de recurso de clave pública. Contiene una clave pública asociada a una
zona. En la implementación DNSSEC completa, los interpretadores y servidores utilizan los
registros de recursos KEY para autenticar los registros de recursos SIG recibidos de zonas
firmadas. Los registros de recurso KEY, a su vez, están firmados por la zona padre, permitiendo
que cualquier servidor que conozca la clave pública de la zona padre pueda descubrir y verificar
la clave KEY de la zona hija. Los servidores o interpretadores de nombre que reciben registros de
recurso desde una zona firmada, obtienen los registros SIG correspondiente a los RR y, después, el
registro KEY de la zona.
Sintaxis:
propietario clase KEY flags protocolo algoritmo_de_firma_digital clave_pública
Ejemplo: se indica en la siguiente figura
37
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
de recursos literales de dicha zona. También indican los tipos de registro de recursos presentes en
un nombre existente.
Sintaxis:
propietario clase NXT NombreDominioSiguiente UltimoTipoRecurso NXT
Ejemplo: dom1.dom.pepe.com. IN NXT ftp.dom.pepe.com. A NXT
En las siguientes figuras podemos apreciar la diferencia entre una zona sin firmar y una zona
firmada.
$TTL 100
$ORIGIN my.dom.
my.dom. IN NS ns.my.dom.
secondary.my.dom IN A 192.168.1.1
my.dom.
100 IN SOA localhost.root.localhost. (
2002050501; serial
10 ; refresh (1 minute 40 seconds)
200 ; retry (3 minutes 20 seconds)
604800 ; expire (1 week)
100 ; minimum (1 minute 40 seconds)
)
100 SIG SOA 3 2 100 20040902093054 (
20040803093054 8987 my.dom.
BIXpbP5zrJxniT/E6gM4kliupdLQqLFJm+VK
DpLbcm1JOjz3nq21cjM= )
100 NS ns.my.dom.
100 SIG NS 3 2 100 20040902093054 (
20040803093054 8987 my.dom.
BIjE6ogFfsY0V8qYoCF+p17ksrnKagiKHIk7
GkL2eA13Gowf7zAh6io= )
100 KEY 256 3 3 (
BM8d6185SU4ba815a6T2s4f8jNK14EOplnQ4
K7jEc5UAs3UT+yiIvps0HC2gyoRvpwVf798r
161zZBdGtoQ3rRqjoJLbHCI+tDKxtk7GbLFV
2bIRBhau7lXbLBf+5ci8id6wvun8nxJjZLaY
8KPFBPD1ocQh3NqZLqefGPoS8XXHcBypHE/c
39
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
r7ZFjaUqgn8BMzBN4COV6PkbM+bvZFogfsOL
Vt6ToU89fnDztYpMvx5qdDDYG/aLC8kYz95i
GNnc8v76qNrAb1GCccYArZ9TtAwf11mZaqQL
07r5oCbByzdQuo+YY3t+maOWL0DcG2P4snPZ
2rlP2Mf2/AR9qpjUTeNU5SYbIuVaso2wtmFt
r1Y9xlYZqdq6nXcr1+8uknVpJRjWlIXCWoJZ
ktBk38Af6Bp2GX9V
) ; key id = 8987
100 NXT secondary.my.dom NS SOA SIG KEY NXT
100 SIG NXT 3 2 100 20040902093054 (
20040803093054 8987 my.dom.
BEckizFAreqKu8sgrKYSVkMdVJCQKMyF6eY9
4ZIVb5ohuFXIdj8M/Kk= )
secondary.my.dom.
100 IN A 192.168.1.1
100 SIG A 3 5 100 20040902093054 (
20040803093054 8987 my.dom.
BBh+ePXrvgfOoz71V4bmN5cJyCoxOI3mbT3R
9VIqtYWGNYvHbd2kaAE= )
100 NXT my.dom. A SIG NXT
100 SIG NXT 3 5 100 20040902093054 (
20040803093054 8987 my.dom.
BDDwUk/0INxaFlmwbceHDldT4GGhfYUUGIv+
hH7lnPI+5chIS024f+w= )
Firmar una zona consiste en obtener un archivo con las características del mostrado en la figura
anterior. Los pasos a realizar son los siguientes.
De esta forma se obtiene la zona firmada. Como vemos los registros SIG, KEY y NXT son
incluidos por la herramienta. Cuando se debe modificar la zona se procede de la siguiente manera:
• Modificar la zona
• Ejecutar la herramienta indicando el nombre del archivo de zona actualizado.
Algoritmos de cifrado
40
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
Generación de claves
Kmy.dom.+003+08987
# cat Kmy.dom.+003+08987.key
BM8d6185SU4ba815a6T2s4f8jNK14EOplnQ4K7jEc5UAs3UT+yiIvps0
HC2gyoRvpwVf798r161zZBdGtoQ3rRqjoJLbHCI+tDKxtk7GbLFV2bIR
Bhau7lXbLBf+5ci8id6wvun8nxJjZLaY8KPFBPD1ocQh3NqZLqefGPoS
8XXHcBypHE/cr7ZFjaUqgn8BMzBN4COV6PkbM+bvZFogfsOLVt6ToU89
fnDztYpMvx5qdDDYG/aLC8kYz95iGNnc8v76qNrAb1GCccYArZ9TtAwf
11mZaqQL07r5oCbByzdQuo+YY3t+maOWL0DcG2P4snPZ2rlP2Mf2/AR9
qpjUTeNU5SYbIuVaso2wtmFtr1Y9xlYZqdq6nXcr1+8uknVpJRjWlIXC
WoJZktBk38Af6Bp2GX9V
#cat Kmy.dom.+003+08987.private
Private-key-format: v1.2
Algorithm: 3 (DSA)
Prime(p):
4EOplnQ4K7jEc5UAs3UT+yiIvps0HC2gyoRvpwVf798r161zZBdGtoQ3rRqj
oJLbHCI+tDKxtk7GbLFV2bIRBhau7lXbLBf+5ci8id6wvun8nxJjZLaY8KPFBPD1ocQh
Subprime(q):
zx3rXzlJThtrzXlrpPazh/yM0rU=
Base(g):
3NqZLqefGPoS8XXHcBypHE/cr7ZFjaUqgn8BMzBN4COV6PkbM+bvZFogfsOL
Vt6ToU89fnDztYpMvx5qdDDYG/aLC8kYz95iGNnc8v76qNrAb1GCccYArZ9TtAwf11mZ
Private_value(x):
nVisc+b5n2oXbDF5zpGWSHocgAo=
Public_value(y):
aqQL07r5oCbByzdQuo+YY3t+maOWL0DcG2P4snPZ2rlP2Mf2/AR9qpjUTeNU
41
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
5SYbIuVaso2wtmFtr1Y9xlYZqdq6nXcr1+8uknVpJRjWlIXCWoJZktBk38Af6Bp2GX9V
A continuación veremos el procedimiento de firma de una zona DNS para la aplicación BIND 9
(servicio DNS) de LINUX.
• Incluir en la zona DNS el contenido del archivo .key que contiene la llave pública de la
clave ZSK. Se agrega al final del archivo de zona la sentencia include, con el nombre del
archivo .key como se muestra a continuación.
$TTL 100
$ORIGIN my.dom.
my.dom.
IN NS ns.my.dom.
secondary.my.dom IN A 192.168.1.1
$include Kmy.dom.+003+08987.key
También la transferencia de datos entre cliente y servidor es mas compleja como se muestra en la
siguiente figura cuando tenemos habilitado el DNSSEC. El servidor DNS de reenvio (caching
42
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
forwarder) es el servidor dns.iua.edu.ar, que actua como resolver DNSSEC y que alimenta con
respuestas DNS a los resolvers DNS de la institución.
Vemos que la clave ZSK se envía con la respuesta siempre que quepa dentro de los límites del
mensaje ya que este está limitado.
Si el resolver no dispone de la clave ZSK o esta no esta actualizada podrá requerir mediante otra
consulta la clave que le hace falta.
43
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
Hasta ahora nuestro DNSSEC se basa en la confianza de la clave ZSK, pero esto trae como
resultado los siguientes inconvenientes.
• En un ambiente seguro se debe confiar solo en algunos servidores que realmente nos
garanticen seguridad, no en todos los servidores DNS.
• Para tener seguridad la longitud de las claves debe ser elevada. Esto trae como
consecuencia el crecimiento de los archivos de zona y lentitud en el servicio DNS.
• Se crea el concepto de la clave KSK (Key Signing Key) que se usa para firmar claves de
zona o ZSKs. Esta clave es de una longitud máxima (lo que permita el algoritmo) ya que en
esta clave se basa la seguridad. Tiene un tiempo de vida que va de varios meses a varios
años.
• Las claves ZSKs se eligen cortas (mejora la velocidad del servicio y el archivo de zona es
menos voluminoso) y se rotan periódicamente por seguridad (concepto que se conoce como
Key Rollover). Tienen un tiempo de vida de varios días.
• La llave KSK (base de la seguridad) se usa para garantizar seguridad en algún punto del
árbol DNS (lo ideal sería en root) que se conoce como ¨punto de entrada en la cadena de
confianza¨. Ese punto seguro otorga (en forma segura) la clave pública ZSK de la zona hija
firmada por su KSK en la cual se confía. De esta forma se puede navegar en forma segura
el árbol DNS (o DNSSEC) de arriba hacia abajo partiendo de una zona que nos garantice
seguridad con su KSK. Como vemos se está usando el protocolo DNS (o DNSSEC en
realidad) para la distribución de claves públicas KSK (ya que no usamos PKI). De esta
forma también sería posible el uso de DNSSEC para distribuir claves para otros protocolos
como IPSec y SSH por ejemplo. Una vez que se arriba (luego de la navegación desde el
punto seguro) al servidor que tiene autoridad del recurso que se busca, con su KSK
(obtenida de la zona padre) se verifica su ZSK, y con esta ZSK se verifica la firma del
recurso buscado.
• Cada zona crea su propia KSK (pública y privada). Con la clave privada de esta KSK firma
la ZSK pública. En realidad con KSK se firma el conjunto de llaves de una zona que está
formado por su KSK y una o varias ZSK.
• Una vez que la ZSK está firmada, se envía la clave pública de la KSK a la zona padre
donde se guarda en un nuevo registro para tal fin denominado DS (Delegation Signature)
para constituir lo que se denomina ¨delegación de firma¨.
• La zona padre hace lo mismo con sus KSK y ZSK (envía la KSK a su zona padre) y así
sucesivamente hasta alcanzar la zona que se constituye como punto de entrada de la cadena
de confianza.
• La clave pública KSK de esta última zona se distribuye por un mecanismo seguro (fuera
del protocolo DNSSEC) a los resolvers DNSSEC que son clientes de esta cadena de
confianza.
En la siguiente figura se muestra en una forma simplificada las zonas padre e hija en donde se
relacionan los contenidos de los registros DS y KEY (de una KSK). En vez de las claves públicas
se indican los identificadores de estas claves.
44
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
Vemos que en la zona padre, el registro DS contiene como dato la KSK del dominio kids.net, y el
número 1234 es el identificador de la KSK de la zona hija kids.net.
El registro: SIG key … 1234 kids.net. ….. Indica que se trata de la firma del conjunto de
registros key , y que está firmado por la llave 1234.
A su vez el registro: SIG A (...) 3456 kids.net. Indica que esta firmado por la clave 3456 o sea
esa es la ZSK.
También vemos que el registro: SIG key … 3456 Kids.net. Indica que se trata de la firma del
conjunto de registros key , y que está firmado por por la llave 3456. Como vemos el conjunto de
registros de las claves tiene una firma con cada clave, donde una de ellas es la KSK y el resto son
ZSKs.
45
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
Para mayor seguridad también se pueden rotar las claves KSK, pero ello implica una estrategia de
distribución de claves por un método extraño a DNS como se indicó previamente. La ubicación de
las claves en los registros DS es previa al funcionamiento seguro de DNSSEC.
Tanto la rotación de claves ZSK y KSK implica una estrategia adicional para permitir que registros
firmados que todavía están en los caché puedan verificarse tanto con claves ¨viejas¨como con
claves ¨nuevas¨ para no rechazar registros correctos pero firmados con una de las dos llaves y
verificado por la otra.
Esta estrategia debe contemplar la vigencia de las dos claves ¨vieja¨ y ¨nueva¨ en el archivo de
zona por un determinado tiempo (que tiene que ver con los valores de los tiempos de vida de los
recursos y de las claves) con las respectivas firmas (cada recurso se firma con ambas claves). Esto
se hace mediante la herramienta dnssec-signzone.
46
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
Veremos a continuación los pasos que debe realizar el administrador del servicio DNS para
configurar el servicio DNS en un servidor de Internet o de una intranet.
Configurar las propiedades del protocolo TCP/IP que habilitan al servidor conectarse con otras
redes e Internet.
• Dirección IP
• Máscara de sub-red
• Dirección de difusión
• Nombre de Host
• Nombre de dominio DNS al que pertenece
• Dirección IP de un servidor de nombres
• Dirección IP del ruteador por defecto (puerta de enlace)
Configuración de DNSSEC:
[1]
47
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
[2]
[3]
[4]
[5]
[6]
[7]
[8]
[9]
[10]
Explique como es posible que un cliente conectado a Internet desde cualquier parte del mundo
pueda obtener la dirección IP de un nombre DNS remoto.
[11]
48
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
[12]
[13]
[14]
[15]
[16]
[17]
[18]
[19]
[20]
49
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
DHCP (Dynamic Host Configuration Protocol) son las siglas que identifican a un protocolo
empleado para que los hosts (clientes) en una red puedan obtener su configuración TCP/IP en
forma dinámica a través de un servidor.
Los datos así obtenidos pueden ser: la dirección IP, la máscara de red, la dirección de broadcast,
las características del DNS, entre otros.
El servicio DHCP permite acelerar y facilitar la configuración de muchos hosts en una red
evitando en gran medida los posibles errores humanos. También permite simplificar
administrativamente la actualización de la configuración de los hosts evitando que el administrador
se desplace físicamente ubicando los hosts para su configuración y/o re-configuración.
Con una función similar a la del DHCP, pero con algunas restricciones, existe el BOOTP o
Internet Bootstrap Protocol, el cual permite también la asignación de la configuración de red en
forma dinámica pero a partir de su definición estática para cada cliente en una base de datos en el
servidor. Esta información a diferencia de como se hace usualmente con DHCP no puede ser
renovada.
Todos los servidores alcanzados por la solicitud responden al cliente con sus respectivas
propuestas, este acepta una de ellas haciéndoselo saber al servidor elegido, el cual le otorga la
información requerida. Esta información se mantiene asociada al cliente mientras este no desactive
su interfaz de red (posiblemente porque se apague la máquina) o no expire el plazo del ``contrato''
(lease time).
El plazo del ``contrato'' o concesión es el tiempo en que un cliente DHCP mantiene como propios
los datos que le otorgó un servidor. Este se negocia como parte del protocolo entre el cliente y el
servidor. Una vez vencido el plazo del contrato el servidor puede renovar la información del
50
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
cliente, fundamentalmente su dirección IP, y asignarle otra nueva o extender el plazo, manteniendo
la misma información. El cliente puede solicitar también la renovación o liberación de sus datos.
Terminología de DHCP
Término Descripción
Un ámbito es un conjunto de definiciones de configuración, donde
fundamentalmente se define el intervalo consecutivo de direcciones IP de una red o
rango de direcciones. Normalmente los ámbitos se asocian a una subred física de la
ámbito
red a la que se ofrecen los servicios DHCP. Los ámbitos proporcionan el medio
principal para que el servidor administre la distribución y asignación de direcciones
IP, así como los parámetros de configuración relacionados, a los clientes de la red.
Un superámbito es un agrupamiento administrativo de ámbitos que se puede
utilizar para admitir varias subredes IP lógicas en la misma subred física. Los
superámbitos sólo contienen una lista de ámbitos miembros o ámbitos secundarios
superámbito que se pueden activar juntos. Los superámbitos no se utilizan para configurar otros
detalles acerca de la utilización de los ámbitos. Para configurar la mayor parte de
las propiedades que utiliza un superámbito es necesario configurar individualmente
las propiedades de los ámbitos miembros.
Un intervalo de exclusión es una secuencia limitada de direcciones IP de un
intervalo de ámbito, excluida de las ofertas del servicio DHCP. Los intervalos de exclusión
exclusión aseguran que el servidor no ofrecerá las direcciones de estos intervalos a los
clientes DHCP de la red.
Tras definir un ámbito DHCP y aplicar intervalos de exclusión, las direcciones
conjunto de restantes forman el conjunto de direcciones disponibles del ámbito. El servidor
direcciones puede elegir cualquiera de las direcciones del conjunto para asignarla
dinámicamente a los clientes DHCP de la red.
Una concesión es un período de tiempo especificado por los servidores DHCP y
durante el cual un equipo cliente puede utilizar una dirección IP asignada. Cuando
se realiza una concesión a un cliente, la concesión está activa. Antes de que
concesión caduque la concesión, el cliente suele necesitar renovar la asignación de la
concesión de dirección en el servidor. Una concesión queda inactiva cuando caduca
o cuando se elimina del servidor. La duración de una concesión determina cuándo
caducará y la frecuencia con la que el cliente necesita renovarla en el servidor.
Utilice una reserva para crear una asignación de concesión de dirección definitiva
reserva por parte del servidor DHCP. Las reservas aseguran que un dispositivo de hardware
específico de la subred siempre podrá utilizar la misma dirección IP.
Los tipos de opciones (o simplemente opciones) son otros parámetros de
configuración del cliente que un servidor DHCP puede asignar al proporcionar
concesiones a los clientes DHCP. Por ejemplo, algunas opciones comúnmente
utilizadas incluyen las direcciones IP de las puertas de enlace predeterminadas
tipos de (enrutadores), y servidores DNS. Normalmente, estos tipos de opciones se habilitan
opciones y configuran para cada ámbito. Las herramientas de configuración DHCP también
permiten definir tipos de opciones predeterminadas que utilizarán todos los ámbitos
agregados y configurados en el servidor. La mayor parte de las opciones están
predefinidas a través del documento RFC 2132, pero se puede utilizar una
herramienta DHCP para definir y agregar tipos de opciones personalizadas si es
51
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
necesario.
Protocolo DHCP
Cuando el cliente DHCP arranca resulta evidente que ignora la configuración de red por lo que
necesita realizar las primeras comunicaciones mediante mensajes de difusión o broadcast. Esta
difusión y el resto de las comunicaciones se basan en 8 tipos de mensajes en DHCP, como se
muestra en la siguiente figura:
52
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
DHCPREQUEST que incluye la opción identificadora del servidor para indicar qué
mensaje ha seleccionado.
4. Los servidores reciben el broadcast de DHCPREQUEST del cliente. Los servidores no
seleccionados utilizan el mensaje como notificación e que el cliente ha declinado su oferta.
El servidor seleccionado vincula al cliente al almacenamiento persistente y responde con
un mensaje DHCPACK que contiene los parámetros de configuración para el cliente. La
combinación de las direcciones hardware y asignada del cliente constituyen un
identificador único de su arrendamiento y las usan tanto el cliente como el servidor para
identificar cualquier arrendamiento al que se haga referencia en un mensaje DHCP. El
campo "your IP address" en los mensaje DHCPACK se rellena con la dirección de red
seleccionada.
5. El cliente recibe el mensaje DHCPACK con parámetro de configuración. Realiza un
chequeo final de estos parámetros, por ejemplo con ARP para la dirección de red asignada,
y registra la duración del arrendamiento y el cookie de identificación de éste especificado
en el mensaje DHCPACK. En este punto, el cliente está configurado. Si el cliente detecta
un problema con los parámetros en el mensaje DHCPACK, envía un mensaje
DHCPDECLINE al servidor y reinicia el proceso de configuración. El cliente debería
esperar un mínimo de diez segundos antes de reiniciar este proceso para evitar un exceso de
tráfico en la red en caso de que se produzca algún bucle.
A continuación se listan los principales mensajes que se intercambian como parte del protocolo
DHCP y para que se emplea cada uno:
53
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
Un servidor de DHCP puede identificar a cada cliente a través de dos formas fundamentales:
Aunque la idea central del servicio DHCP es la dinamicidad de las direcciones IP asignadas no se
excluye la posibilidad de utilizar direcciones fijas para algunos hosts que por sus características lo
requieran, ejemplo de ello son las máquinas proveedoras de disímiles servicios como el correo
electrónico o el DNS. Este tipo de host utilizaría las ventajas del servicio para obtener el resto de
los datos que se pueden proveer mediante DHCP. En otras palabras es posible identificar a ciertos
hosts por sus direcciones MAC y asignarles a estas direcciones fijas ya pre-establecidas.
Hay importantes diferencias en la forma en que BOOTP y DHCP realizan la configuración del
host. La tabla siguiente compara y contrasta las características que varían en los dos protocolos.
BOOTP DHCP
Diseñado antes que DHCP. Diseñado después que BOOTP.
Diseñado para configurar equipos de la red que cambian
Pensado para configurar estaciones de
de ubicación frecuentemente (como los equipos portátiles)
trabajo sin disco con capacidades de
y que tienen discos duros locales y capacidades de inicio
inicio limitadas.
completas.
Las concesiones de direcciones IP de
Las concesiones de direcciones IP de DHCP dinámico
BOOTP dinámico caducan a los 30
caducan a los ocho días de forma predeterminada.
días de forma predeterminada.
Admite un número limitado de
parámetros de configuración de los Admite un conjunto mayor y extensible de parámetros de
clientes llamados extensiones de configuración de los clientes llamados opciones.
proveedor.
Describe un proceso de configuración
de inicio en dos fases, como se muestra
a continuación:
54
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
Si el cliente recuerda y desea usar una dirección de red previamente asignada se llevan a cabo los
siguientes pasos:
Si el cliente detecta algún problema con los parámetros en el DHCPACK, envía un mensaje
DHCPDECLINE al servidor y reinicia el proceso de configuración solicitando una nueva
dirección de red. Si el cliente recibe un mensaje DHCPNAK, no puede reutilizar la
dirección que solicitó. En vez de eso debe pedir una nueva dirección reiniciando el proceso
de configuración descrito en Asignando una nueva dirección de red. El cliente puede elegir
renunciar a su arrendamiento de la dirección de red al enviar un mensaje DHCPRELEASE
al servidor. Identifica el arrendamiento al que renuncia con el cookie de identificación.
Nota: Un host debería usar DHCP para readquirir o verificar su dirección IP y sus parámetros de
configuración siempre que cambien los parámetros de su red local, por ejemplo en el arranque del
sistema o después de una desconexión de la red local, ya que la configuración de esta puede haber
cambiado sin que lo sepa el host o el usuario.
A continuación vemos el formato del mensaje DCHP que usa tanto el cliente como el servidor para
intercambiar los mensajes mencionados.
55
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
bit de broadcast se debe poner a 1 para indicar al servidor que el mensaje DHCPREPLY se
debe enviar como un broadcast en IP y MAC. De otro modo, este bit debe ponerse a cero.
Client IP adress: Fijada por el cliente. O bien es su dirección IP real , o 0.0.0.0.
Your IP Address: Fijada por el servidor si el valor del campo anterior es 0.0.0.0
Server IP address: Fijada por el servidor.
Router IP address: Fijada por el "router" retransmisor si se usa retransmisión BOOTP.
Client hardware address: fijada por el cliente y usada por el servidor para identificar cuál
de los clientes registrados está arrancando.
Server host name: Nombre opcional del host servidor acabado en X'00'.
Nombre del archivo de arranque: El cliente o bien deja este campo vacío o especifica un
nombre genérico, como "router" indicando el tipo de archivo de arranque a usar. En la
solicitud de DHCPDISCOVER se pone al valor nulo. El servidor devuelve el la ruta de
acceso completa del archivo en una respuesta DHCPOFFER. El valor termina en X'00'.
Options: el campo de opciones consiste en parámetros marcados llamados opciones. Allí
se indican las opciones sugeridas por el cliente en una consulta de este o las opciones
ofrecidas por el servidor DHCP en una respuesta de este.
El computador Agente relé DHCP es un intermediario con protocolo Bootstrap (BOOTP) que re-
transmite mensajes en Protocolo DHCP entre los clientes DHCP y los servidores DHCP ubicados
en distintas redes IP. De esta forma es posible que clientes DHCP emitan su solicitud por difusión
y esta sea retransmitida a otra red mediante el agente de distribución (rele), para alcanzar
finalmente al servidor DHCP. El Agente relé DHCP cumple con la especificación RFC 1542,
"Clarifications and Extensions for the Bootstrap Protocol". En los segmentos de red IP que
contienen clientes DHCP, se requiere un servidor DHCP o un equipo que funcione como Agente
relé DHCP. Normalmente se configura el agente de distribución DHCP en los ruteadores que
comunican las redes con clientes DHCP.
Un agente de retransmisión retransmite los mensajes DHCP y BOOTP que se difunden en una de
las interfaces físicas a las que está conectado, como por ejemplo un adaptador de red, a otras
subredes remotas a las que está conectado mediante otras interfaces físicas. La siguiente ilustración
muestra cómo el cliente C de la subred 2 obtiene una concesión de dirección DHCP del servidor
DHCP 1 de la subred 1.
57
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
58
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
59
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
Puesto que no existe un límite fijo para el número máximo de clientes a los que puede prestar
servicio un servidor DHCP ni para el número de ámbitos que se pueden crear en un servidor
DHCP, los factores principales que hay que tener encuentra para determinar el número de
servidores DHCP que se utilizarán son la arquitectura de la red y el hardware del servidor.
Por ejemplo, en un entorno con una única subred solamente se necesita un servidor DHCP, aunque
quizás desee utilizar dos servidores para crear un clúster de servidores DHCP y así aumentar el
nivel de tolerancia a errores.
Por otra parte, en entornos con varias subredes los enrutadores (con agente DHCP) deben reenviar
de una a otra los mensajes DHCP, por lo que el rendimiento del enrutador puede afectar al servicio
DHCP. En ambos casos, el hardware del servidor DHCP afecta a los clientes.
Para determinar el número de servidores DHCP que se deben utilizar debe tener en cuenta los
siguientes aspectos:
• La velocidad de transmisión entre los segmentos para los que se proporciona el servicio
DHCP.
• La velocidad de las unidades del disco del servidor y la cantidad de memoria de acceso
aleatorio (RAM) instalada en el servidor DHCP.
Para optimizar el rendimiento del servidor DHCP se deben utilizar las unidades de disco
más rápidas y la mayor cantidad de memoria RAM posible. Debe evaluar cuidadosamente
60
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
Para determinar las limitaciones y las posibilidades del hardware y comprobar si la arquitectura de
la red, el tráfico y otros factores afectan al rendimiento del servidor DHCP puede probar los
servidores DHCP antes de implementarlos en la red de la organización. Las pruebas de hardware y
de configuración también permiten determinar el número de ámbitos que se deben configurar en
cada servidor.
La mayoría de las redes necesitan un servidor DHCP principal en línea y otro servidor DHCP que
actúa como servidor secundario o de reserva. Si decide no implementar dos servidores DHCP, pero
desea proporcionar cierto nivel de tolerancia a errores, quizá desee considerar la posibilidad de
implementar un servidor DHCP de espera como alternativa.
En la configuración de espera, el servidor DHCP en espera es otro equipo servidor que se instala y
configura de forma idéntica al servidor DHCP principal. En este caso, la única diferencia es que el
servidor en espera y sus ámbitos no están activados para utilizarlos en condiciones normales. Se
configuran ámbitos duplicados, pero no se activan excepto cuando se necesita de forma crítica,
como, por ejemplo, para sustituir el servidor DHCP principal si se detiene o apaga durante un largo
período de tiempo.
Puesto que la solución del servidor en espera requiere prestar una atención especial a su
configuración, así como administrarlo manualmente para asegurar una transición correcta para que
lo utilicen los clientes DHCP, resulta menos recomendable como alternativa que la utilización de
dos o tres servidores DHCP que se repartan de forma equilibrada el uso de los ámbitos activos.
Para que el servicio DHCP admita subredes adicionales en la red, primero deberá determinar si los
enrutadores utilizados para conectar las subredes próximas pueden admitir la retransmisión de
mensajes BOOTP y DHCP.
Este equipo simplemente reenvía los mensajes entre los clientes de la subred local y un
servidor DHCP remoto, para lo que utiliza la dirección IP del servidor remoto.
Este equipo servidor debe contener y administrar ámbitos y otra información de direcciones
que se puede configurar para la subred local a la que proporciona el servicio.
61
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
En redes con enrutadores que utilicen subredes para dividir segmentos de la red, al planear las
opciones de los servicios DHCP se debe tener en cuenta requisitos específicos para que funcione
una implementación completa de los servicios DHCP. Estos requisitos incluyen:
• Al menos un servidor DHCP ubicado en una de las subredes de la red con enrutadores.
• Para que un servidor DHCP admita clientes de otras subredes remotas separadas mediante
enrutadores se debe utilizar un enrutador configurado para la retransmisión DHCP y
BOOTP o un equipo remoto como agente de retransmisión de DHCP y BOOTP para
admitir el reenvío del tráfico DHCP entre las subredes.
La siguiente ilustración muestra una red sencilla con enrutadores en la que está implementado
DHCP.
• Planear las subredes físicas de la red y la ubicación relativa de los servidores DHCP.
• Especificar los tipos de opciones DHCP y sus valores predefinidos para cada ámbito para
los clientes DHCP.
• Reconocer el efecto que los vínculos más lentos tienen sobre el entorno de WAN.
62
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
Por ejemplo, en el plan de red de una gran compañía la segmentación de la WAN en subredes
lógicas puede coincidir con la estructura física del conjunto de redes. Así, una subred IP puede
actuar como red troncal, que mantiene una dirección de subred IP independiente en relación con
cada subred física.
Recomendaciones
Hay importantes cuestiones de diseño que se deben tener en cuenta antes de instalar los agentes
relé en la red.
Cuando hay varios servidores DHCP, se recomienda colocar los servidores en diferentes subredes,
para alcanzar un grado de tolerancia a errores, en lugar de mantenerlos a todos en una subred. Los
servidores no deben tener direcciones IP comunes en sus ámbitos (cada servidor debe tener un
grupo de direcciones únicas). Si el servidor DHCP de la subred local se cierra, las solicitudes se
transmiten a la subred remota. El servidor DHCP de esa ubicación puede responder a las
solicitudes DHCP si mantiene un ámbito de direcciones IP para la subred que realiza la solicitud.
Si el servidor remoto no dispone de un ámbito definido para la subred que realiza la solicitud, no
podrá proporcionar direcciones IP aunque tenga direcciones disponibles de otros ámbitos. Si cada
servidor DHCP tiene un grupo de direcciones para cada subred, podrá proporcionar direcciones IP
a los clientes remotos cuyo servidor DHCP esté desconectado.
63
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
Servidores DHCP
Clientes DHCP
Un equipo se convierte en cliente DHCP si la opción de utilizar DHCP está activada en sus
propiedades de TCP/IP. Cuando un equipo cliente se configura para utilizar DHCP, acepta una
oferta de concesión y puede recibir del servidor lo siguiente:
• El uso temporal de una dirección IP que se sabe que es válida en la red a la que se une.
• Parámetros adicionales de configuración TCP/IP, que el cliente utilizará en forma de datos
de opciones.
Además de una dirección IP, los servidores DHCP se pueden configurar para proporcionar datos
opcionales que permiten completar la configuración TCP/IP de los clientes. Algunos de los tipos
de opciones de DHCP más comunes configuradas y distribuidas por el servidor DHCP durante las
concesiones son:
Opciones de DHCP
DHCP proporciona un marco de trabajo interno para pasar información de configuración a los
clientes de la red. Los parámetros de configuración y demás información de control se transportan
en elementos de datos etiquetados almacenados en mensajes de protocolo, que se intercambian
entre el servidor y los clientes DHCP. Estos elementos de datos reciben el nombre de opciones.
La mayor parte de las opciones estándar de DHCP están definidas actualmente en el documento
Solicitudes de comentarios (RFC, Request for Comments) que publica el Grupo de trabajo de
ingeniería de Internet (IETF, Internet Engineering Task Force). El conjunto completo de opciones
estándar de DHCP se describe específicamente en el documento RFC 2132, "Opciones de DHCP y
extensiones de proveedor de BOOTP".
64
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
Aunque la mayor parte de los servidores DHCP pueden asignar muchas opciones, la mayoría de
los clientes DHCP están diseñados para solicitar o admitir solamente una parte del conjunto
completo de opciones estándar especificadas en RFC.
Veremos a continuación los pasos que debe realizar el administrador del servicio DHCP para
configurar el servicio DHCP en un servidor de una intranet.
Configurar las propiedades del protocolo TCP/IP que habilitan al servidor conectarse con otras
redes e Internet.
• Dirección IP
• Máscara de sub-red
• Dirección de difusión
• Nombre de Host
• Nombre de dominio DNS al que pertenece
• Dirección IP de un servidor de nombres
• Dirección IP del ruteador por defecto (puerta de enlace)
65
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
En este ejemplo, no se configuraron para el equipo cliente, nombres de dominio DNS específicos
de la conexión, en otras palabras el cliente no conoce el nombre del servidor DNS que contiene la
zona con autoridad donde se registra su nombre completo. Más tarde, se cambió el nombre del
equipo de "antiguohost" a "nuevohost", lo que conlleva los cambios de nombre siguientes en el
sistema:
Una vez aplicado el cambio de nombre en el cliente, se debe reiniciar el equipo. Cuando el equipo
reinicia, el servicio Cliente DHCP realiza la siguiente secuencia para actualizar DNS:
1. El servicio Cliente DHCP envía una consulta al servidor DNS por defecto, de tipo
inicio de autoridad (SOA) con el nombre de dominio DNS del equipo.
El equipo cliente utiliza el nombre completo actualmente configurado del equipo (como
"nuevohost.ejemplo.pepe.com") como el nombre especificado en esta consulta.
2. El servidor DNS autorizado para la zona que contiene el nombre completo del cliente
responde a la consulta de tipo SOA.
66
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
También, el cliente DHCP puede negociar con el servidor DHCP para que sea este el que registre
el cambio en el servidor DNS.
Observe que los nombres no se quitan de las zonas DNS si pasan a estado inactivo o no se
actualizan en el intervalo de actualización (7 días). DNS no usa un sistema para liberar o desechar
los nombres, aunque los clientes DNS intentan eliminar o actualizar los registros de nombres
antiguos cuando se aplica un nuevo nombre o cambia una dirección.
Cuando el servicio Cliente DHCP registra los registros de recursos de host (A) y de puntero (PTR)
para un equipo, utiliza un período de vida (TTL) predeterminado de almacenamiento en caché de
15 minutos (depende del sistema operativo) para los registros del host. Esto determina durante
cuánto tiempo otros servidores y clientes DNS almacenan en caché los registros de un equipo
cuando se incluyen en la respuesta a una consulta.
67
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
68
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
[21]
[22]
[23]
[24]
[25]
Realice un dibujo que permita ver la funcionalidad de un ruteador con protocolo DHCP para
proporcionar servicio a varias subredes.
[26]
[27]
69
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
Desde el punto de vista de las comunicaciones, está soportado sobre los servicios de conexión
TCP/IP, y funciona de la misma forma que el resto de los servicios comunes: un proceso servidor
escucha en un puerto de comunicaciones TCP (por defecto, el 80), y espera las solicitudes de
conexión de los clientes Web. Una vez que se establece la conexión, el protocolo TCP se encarga
de mantener la comunicación y garantizar un intercambio de datos libre de errores.
Los recursos u objetos que actúan como entrada o salida de un comando HTTP están
clasificados por su descripción MIME. De esta forma, el protocolo puede intercambiar
cualquier tipo de dato, sin preocuparse de su contenido. La transferencia se realiza en modo
binario, byte a byte, y la identificación MIME permitirá que el receptor trate adecuadamente
los datos.
El cliente toma la iniciativa de localizar una página en un sitio Web mediante una petición http.
70
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
La página Web está compuesta por un archivo HTML base, que hace referencia a otros objetos. Se
hace referencia a cada objeto mediante un URL (Universal Resource Locator) o localizador de
recursos universal.
Un objeto puede ser un archivo HTML, una imagen JPEG, un applet JAVA, un archivo de sonido,
etc.
Ejemplo de URL:
El cliente inicia una conexión TCP al servidor, en el puerto 80. El servidor acepta la conexión TCP
del cliente. Cada uno tiene un socket conectado con el otro. Se intercambian mensajes HTTP entre
el navegador y el servidor Web. Se cierra la conexión TCP.
HTTP es “sin estado”. El servidor no mantiene ninguna información de peticiones anteriores del
cliente
Los protocolos que mantienen “estado” son complejos. Debe mantener la historia pasada (estado).
Si el cliente/servidor falla, el estado entre ambos puede volverse incoherente.
El cliente puede establecer dos tipos de conexiones según como está configurado el servidor:
• Conexión persistente
• Conexión no persistente
71
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
HTTP no persistente: En cada conexión TCP se envía como máximo un objeto. Es la situación
por defeco de la versión HTTP/1.0.
De acuerdo a lo representado en la figura, se realiza una conexión entre cliente y servidor por cada
objeto de la página.
HTTP persistente: En la misma conexión TCP se pueden enviar varios objetos entre el servidor y
el cliente. Es la situación por defecto en la versión HTTP/1.1. Mediante una conexión se
transfieren todos los objetos de la página.
Se define el tiempo RTT como el tiempo de respuesta a una petición. Veremos las alternativas que
se presentan en conexiones persistentes y no persistentes.
72
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
En la conexión persistente se necesitan 2 RTT en el primer objeto y solo un RTT en los demás
objetos.
73
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
Se puede optimizar una conexión persistente usando pipelining que significa adelantar la petición
del siguiente objeto como se puede apreciar en la siguiente figura.
Cabe hacer notar que cuando un cliente realiza una conexión con el servidor, se crea un proceso en
este último para hacerse cargo de la petición del cliente. Eso significa que si en un momento dado
acceden 100 clientes simultáneamente, en el servidor se activan 100 procesos.
En una conexión persistente, un proceso se tiene que hacer cargo de un cliente durante el acceso a
todos los objetos de la página y recién entonces será liberado para atender a otro cliente. Por lo
tanto se necesitan más procesos y por lo tanto más recursos en el servidor.
Sin embargo con una conexión persistente el cliente es atendido más rápidamente. En la
configuración del servidor se define si trabajará en modo persistente o no.
En realidad, cuando un navegador conecta con un servidor Web remoto no sólo le solicita la
página cuya URL el usuario ha tecleado (o la indicada en el enlace seleccionado con el ratón),
sino que le informa de detalles del navegador, de la página que solicita, etc. Quizás viendo un
ejemplo esto último quede más claro. A continuación se muestra una petición HTTP típica:
GET / HTTP/1.1
74
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
Host: www.iua.edu.ar
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2b) Gecko/20021016
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,
text/plain;q=0.8,video/x-mng,image/png,image/jpeg,image/gif;q=0.2,
text/css,*/*;q=0.1
Accept-Language: es-es, en-us;q=0.66, en;q=0.33
Accept-Encoding: gzip, deflate, compress;q=0.9
Accept-Charset: ISO-8859-15, utf-8;q=0.66, *;q=0.66
Keep-Alive: 300
Connection: keep-alive
Por ejemplo, se informa del navegador en uso (User-Agent) y en qué idioma se prefiere
visualizar la página que se está solicitando (Accept-Language) (esto permite que una Web
albergue los contenidos en varios idiomas, y se le envía al navegador la versión en el idioma que
tenga configurado en sus opciones).
De hecho, estas y otras cabeceras son personalizables, de manera que podemos forzar que
nuestro navegador se identifique como otro, para entrar en esos sitios que nos impiden el acceso
por la arbitraria razón de no usar un navegador en concreto.
La pareja de cabeceras Keep-Alive y Connection, sólo está presente en la versión 1.1 del
protocolo HTTP, y permite recibir muchos recursos (páginas HTML, imágenes, etc.) a través de
la conexión TCP persistente. En la versión 1.0 del protocolo HTTP era necesario establecer y
terminar una conexión TCP por cada recurso (no persistente), lo que resultaba ineficiente.
75
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
Hasta ahora, el servidor sólo sabe que tiene que enviar al navegador remoto la página inicial del
servidor Web asociado a la IP a que se ha conectado. Pero no sería posible tener hospedadas las
páginas de varios sitios en el mismo servidor y usando la misma dirección IP (virtual hosting).
Para ello, la versión 1.1 del protocolo HTTP añadió la obligatoriedad de la cabecera Host (host
header), que indica al servidor las páginas de qué sitio queremos ver, para el caso de que haya
varias asociadas a un servidor Web en la misma dirección IP. Por eso la barra (/) que sigue al
nombre del sitio representa el directorio raíz del sitio (cada sitio en el mismo servidor tiene un
directorio raíz diferente) cuyo nombre se indica como //sitio y que se envía en el campo Host
del encabezado.
El servidor recibe todas estas (y posiblemente más cabeceras, por ejemplo, en el caso de que
haya algún proxy intermedio), las interpreta, y devolverá al navegador una respuesta estándar
HTTP (indicando si la petición tuvo éxito o no), y a continuación la página solicitada. En el caso
de la página principal implícita (/), el servidor tendrá configurado un archivo, normalmente
index.html, que enviará en caso de no especificarse una página en concreto:
HTTP/1.1 200 OK
Date: Sun, 10 Nov 2002 22:50:55 GMT
Server: Apache/1.3.26 (Unix) mod_bwlimited/1.0 PHP/4.2.2 mod_log_bytes/0.3
FrontPage/5.0.2.2510 mod_ssl/2.8.9 OpenSSL/0.9.6b
Content-Type: text/html
Age: 130
Connection: close
<-- archivo index.html que contiene la página principal del sitio -->
Se ha recortado la respuesta del servidor Web mostrando solamente la cabecera. Como se ve, en
primer lugar el servidor informa del éxito de la petición (200 OK) y de la versión del protocolo
que conoce (HTTP/1.1). También indica la fecha y hora en el servidor (Date) y la versión y
módulos del servidor Web (Server).
HTTP/1.1 200 OK
Date: Sun, 10 Nov 2002 23:15:31 GMT
Server: Apache/1.3.26 (Unix) mod_bwlimited/1.0 PHP/4.2.2 mod_log_bytes/0.3
FrontPage/5.0.2.2510 mod_ssl/2.8.9 OpenSSL/0.9.6b
Last-Modified: Fri, 01 Nov 2002 12:23:38 GMT
ETag: "23c32f-171cb-3dc2724a"
Accept-Ranges: bytes
Content-Length: 94667
Content-Type: image/png
Age: 131
76
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
Una respuesta similar a la primera, pero en este caso se indica que a continuación viene el
contenido de un archivo binario en formato PNG, el tamaño en octetos del archivo, y la fecha de
su última modificación. Esta fecha, y el valor de las etiquetas ETag son usados por los cachés de
protocolo HTTP para decidir si almacenar o no en su memoria y disco el recurso al cual se
refieren, por considerarlo más reciente que la copia que ya tenían (en caso de tenerla). Cuando
alguien vuelve a solicitar ese mismo recurso y la caché ve la petición, devuelve al cliente la
copia almacenada en su memoria, lo cual acelera la carga del recurso y reduce la carga en los
enlaces de la red y en el servidor remoto.
El diálogo con los servidores HTTP se establece a través de mensajes formados por líneas de texto,
cada una de las cuales contiene los diferentes comandos y opciones del protocolo. Sólo existen
dos tipos de mensajes, uno para realizar solicitudes y otro para devolver la correspondiente
respuesta. La estructura general de los dos tipos de mensajes se puede ver en el siguiente
esquema:
La primera línea del mensaje de solicitud contiene el comando que se solicita al servidor HTTP,
mientras que en la respuesta contiene el resultado de la operación, un código numérico que permite
conocer el éxito o fracaso de la operación. Después aparece, para ambos tipos de mensajes, un
conjunto de cabeceras (unas obligatorias y otras opcionales), que condicionan y matizan el
funcionamiento del protocolo.
La separación entre cada línea del mensaje se realiza con un par CR-LF (retorno de carro más
nueva línea). El final de las cabeceras se indica con una línea en blanco, tras la cual se pueden
incluir los datos transportados por el protocolo, por ejemplo, el documento HTML que devuelve
un servidor o el contenido de un formulario que envía un cliente.
Los siguientes apartados describen con más detalle el contenido de cada una de las secciones de
los mensajes. El conocimiento y empleo de los mensajes HTTP es necesario en las siguientes
situaciones:
• Para diseñar aplicaciones de servidor (scripts PHP, ASP, JSP, CGI, etc., ya que es preciso
construir una respuesta similar a la que el servidor HTTP proporciona al cliente.
• Para diseñar aplicaciones independientes que soliciten información a un servidor
(automatizar la recuperación de documentos o construir robots de búsqueda) se debe
construir una cabecera HTTP con la información de la petición al servidor.
77
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
Los comandos o verbos de HTTP representan las diferentes operaciones que se pueden solicitar a
un servidor HTTP. El formato general de un comando es:
Nombre del comando Objeto sobre el que se aplica Versión de HTTP utilizada
Cada comando actúa sobre un objeto del servidor, normalmente un archivo o aplicación, que se
toma de la URL de activación. La última parte de esta URL, que representa la dirección de un
objeto dentro de un servidor HTTP, es el parámetro sobre el que se aplica el comando. Se compone
de una serie de nombres de directorios y archivos, además de parámetros opcionales para las
aplicaciones de scripts, o CGI.
El estándar HTTP/1.0 recoge únicamente tres comandos, que representan las operaciones de
recepción y envío de información y chequeo de estado:
• GET Se utiliza para recoger cualquier tipo de información del servidor. Se utiliza siempre
que se pulsa sobre un enlace o se teclea directamente a una URL. Como resultado, el
servidor HTTP envía el documento correspondiente a la URL seleccionada, o bien activa
una aplicación de servidor (script o CGI), que generará a su vez la información de retorno.
• HEAD Solicita información sobre un objeto (archivo): tamaño, tipo, fecha de
modificación, etc. Es utilizado por los gestores de cachés de páginas o los servidores proxy,
para conocer cuándo es necesario actualizar la copia que se mantiene de un archivo.
• POST Sirve para enviar información al servidor, por ejemplo los datos contenidos en un
formulario. El servidor pasará esta información a un proceso encargado de su tratamiento
(generalmente una aplicación de servidor). La operación que se realiza con la información
proporcionada depende de la URL utilizada. Se utiliza, sobre todo, en los formularios.
Un cliente Web selecciona automáticamente los comandos HTTP necesarios para recoger la
información requerida por el usuario. Así, ante la activación de un enlace, siempre se ejecuta una
operación GET para recoger el documento correspondiente.
El envío del contenido de un formulario utiliza GET o POST, en función del atributo de <FORM
METHOD="...">. Además, si el cliente Web tiene un caché de páginas recientemente visitadas,
puede utilizar HEAD para comprobar la última fecha de modificación de un archivo, antes de traer
una nueva copia del mismo.
Posteriormente se han definido algunos comandos adicionales, que sólo están disponibles en
determinadas versiones de servidores HTTP. La última versión de HTTP, denominada 1.1, utiliza
estas y otras novedades, que se pueden usar, por ejemplo, para editar las páginas de un servidor
Web trabajando en remoto.
• PUT Actualiza información sobre un objeto del servidor. Es similar a POST, pero en este
caso, la información enviada al servidor debe ser almacenada en la URL que acompaña al
comando. Así se puede actualizar el contenido de un documento.
• DELETE Elimina el documento especificado del servidor.
• LINK Crea una relación entre documentos.
78
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
Las cabeceras
Son un conjunto de variables que se incluyen en los mensajes HTTP, para modificar su
comportamiento o incluir información de interés. En función de su nombre, pueden aparecer en los
requerimientos de un cliente, en las respuestas del servidor o en ambos tipos de mensajes. El
formato general de una cabecera es:
• Accept: campo opcional que contiene una lista de tipos MIME aceptados por el cliente. Se
pueden utilizar * para indicar rangos de tipos de datos; tipo/* indica todos los subtipos de
un determinado medio, mientras que */* representa a cualquier tipo de dato disponible.
• Authorization: clave de acceso que envía un cliente para acceder a un recurso de uso
protegido o limitado. La información incluye el formato de autorización empleado, seguido
de la clave de acceso propiamente dicha. La explicación se incluye más adelante.
• From: campo opcional que contiene la dirección de correo electrónico del usuario del
cliente Web que realiza el acceso.
• If-Modified-Since: permite realizar operaciones GET condicionales, en función de si la
fecha de modificación del objeto requerido es anterior o posterior a la fecha proporcionada.
Puede ser utilizada por los sistemas de almacenamiento temporal de páginas. Es
equivalente a realizar un HEAD seguido de un GET normal.
79
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
• Referer: contiene la URL del documento desde donde se ha activado este enlace. De esta
forma, un servidor puede informar al creador de ese documento de cambios o
actualizaciones en los enlaces que contiene. No todos los clientes lo envían.
• User-agent: cadena que identifica el tipo y versión del cliente que realiza la petición.
• Allow: informa de los comandos HTTP opcionales que se pueden aplicar sobre el objeto al
que se refiere esta respuesta. Por ejemplo, Allow: GET, POST.
• Expires: fecha de expiración del objeto enviado. Los sistemas de cache deben descartar las
posibles copias del objeto pasada esta fecha. Por ejemplo, Expires: Thu, 12 Jan 97 00:00:00
GMT+1. No todos los sistemas lo envían. Puede cambiarse utilizando un <META
EXPIRES> en el encabezado de cada documento.
• Last-modified: fecha local de modificación del objeto devuelto. Se puede corresponder
con la fecha de modificación de un archivo en disco, o, para información generada
dinámicamente desde una base de datos, con la fecha de modificación del registro de datos
correspondiente.
• Location: informa sobre la dirección exacta del recurso al que se ha accedido. Cuando el
servidor proporciona un código de respuesta de la serie 3xx, este parámetro contiene la
URL necesaria para accesos posteriores a este recurso.
• Server: cadena que identifica el tipo y versión del servidor HTTP. Por ejemplo, Server:
NCSA 1.4.
• WWW-Autenticate: cuando se accede a un recurso protegido o de acceso restringido, el
servidor devuelve un código de estado 401, y utiliza este campo para informar de los
modelos de autentificación válidos para acceder a este recurso.
Ante cada transacción con un servidor HTTP, éste devuelve un código numérico que informa sobre
el resultado de la operación, como primera línea del mensaje de respuesta. Estos códigos aparecen
en algunos casos en la pantalla del cliente, cuando se produce un error. El formato de la línea de
estado es:
Nota: Dependiendo del servidor, es posible que se proporcione un mensaje de error más
elaborado, en forma de documento HTML, en el que se explican las causas del error y su
posible solución.
Existen cinco categorías de mensajes de estado, organizadas por el primer dígito del código
numérico de la respuesta:
• 1xx: mensajes informativos. Por ahora (en HTTP/1.0) no se utilizan, y están reservados
para un futuro uso.
• 2xx: mensajes asociados con operaciones realizadas correctamente.
• 3xx: mensajes de redirección, que informan de operaciones complementarias que se deben
realizar para finalizar la operación.
80
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
• 4xx: errores del cliente; el requerimiento contiene algún error, o no puede ser realizado.
• 5xx: errores del servidor, que no ha podido llevar a cabo una solicitud.
81
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
Muchos clientes Web utilizan un sistema para reducir el número de accesos y transferencias de
información a través de Internet, y así agilizar la presentación de documentos previamente
visitados. Para ello, almacenan en el disco del cliente una copia de las últimas páginas a las que se
ha accedido. Este mecanismo, denominado "caché de páginas", mantiene la fecha de acceso a un
documento y comprueba, a través de un comando HEAD, la fecha actual de modificación del
mismo. En caso de que se detecte un cambio o actualización, el cliente accederá, ahora a través de
un GET, a recoger la nueva versión del archivo. En caso contrario, se procederá a utilizar la copia
local.
Un sistema parecido, pero con más funciones es el denominado "servidor proxy". Este tipo de
servidor, una mezcla entre servidor HTTP y cliente Web, realiza las funciones de cache de páginas
para un gran número de clientes. Todos los clientes conectados a un proxy dejan que éste sea el
encargado de buscar en la red las URLs solicitadas por dichos clientes. De esta forma, en caso de
82
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
que varios clientes accedan a la misma página, el servidor proxy la podrá proporcionar con un
único acceso a la información original.
Además, las organizaciones limitan, por motivos de seguridad, los accesos desde su red privada al
exterior y viceversa. Para ello, se dispone de sistemas denominados "cortafuegos" (firewalls), que
son los únicos habilitados para conectarse con el exterior. En este caso, el uso de un servidor proxy
se vuelve indispensable.
Cookies
Las ‘galletas mágicas’ o simplemente “cookies” son una de las incorporaciones en la nueva
versión del protocolo, HTTP/1.1. Las cookies son pequeños archivos de texto que se intercambian
los clientes y servidores HTPP, para solucionar una de las principales “deficiencias” del protocolo:
la falta de información de estado entre dos transacciones. Recuerde que HTTP es un protocolo sin
estados. Fueron introducidas por Netscape, y ahora han sido estandarizadas en el RFC 2109.
Cada intercambio de información con un servidor es completamente independiente del resto, por lo
que las aplicaciones de servidor necesitan recordar operaciones previas de un usuario (por ejemplo,
los supermercados electrónicos) pueden optar por dos soluciones, que complican bastante su
diseño: almacenar temporalmente en el sistema del servidor un registro de las operaciones
realizadas, con una determinada política para eliminarlas cuando no son necesarias, o bien incluir
esta información en el código HTML devuelto al cliente, como campos HIDDEN de un
formulario.
Las cookies son una solución más flexible a este problema. La primera vez que un usuario accede
a un determinado documento de un servidor, éste proporciona una cookie que contiene datos que
relacionarán posteriores operaciones. El cliente almacena la cookie en su sistema para usarla
después en forma automática, transparente al usuario. En los futuros accesos a este servidor, el
browser podrá proporcionar la cookie original, que servirá de nexo entre este acceso y los
anteriores. Todo este proceso se realiza automáticamente, sin intervención del usuario. El siguiente
ejemplo muestra una cookie generada por el sitio pepe.com.
EGSOFT_ID
191.46.211.13-655193640.29148285
www.pepe.com/
0
2867435528
30124157
83
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
4206779936
291478284
La información dentro de una cookie se organiza a partir de líneas de texto. El campo más
interesante es la tercera línea. El cliente Web la compara cada URL a la que accede; si se produce
una concordancia entre ambas, se enviará la cookie correspondiente. Es decir, una cookie asociada
a www.pepe.com/shop sólo se enviará con accesos por debajo de la sección /shop, mientras que la
cookie del ejemplo servirá para todo el servidor www.pepe.com. Las cookies pueden tener
asociada una fecha de expiración, a partir de la cual el cliente Web tratará de obtener una nueva
versión.
¿Para qué se pueden utilizar? Su aplicación más inmediata son los sistemas de compra electrónica.
Estos supermercados virtuales necesitan relacionar el contenido de un pedido con el cliente que lo
ha solicitado. Sin cookies, la solución más sencilla es incluir dentro de los documentos HTML el
contenido de las operaciones o pedidos previos, a través de variables ocultas que se envían con los
formularios que llena el cliente. Con ellas es posible relacionar los sucesivos accesos al sistema
con su origen y simplificar la gestión de la aplicación Web.
Otro uso muy interesante son los sistemas personalizados de recepción de información, en los que
es posible construir una página a medida, con información procedente de fuentes muy diversas (ver
por ejemplo my.yahoo.com/ o www.snap.com). En el primer acceso al sistema, se procede al
registro; a partir de él, se genera una cookie que recibe el cliente. En accesos sucesivos, el cliente
enviará la cookie, y el servidor podrá generar una página personalizada con las preferencias del
usuario.
Por último, algunas compañías emplean las cookies para realizar un seguimiento de los accesos a
sus servidores WWW, identificando las páginas más visitadas, la manera en que se pasa de una a
otra sección, etc.
Nota: Para utilizar las cookies, es necesario que los clientes estén preparados para
recogerlas y almacenarlas. Netscape Navigator e Internet Explorer disponen de esta
capacidad. Sin embargo, los servidores no necesitan capacidades especiales, ya que son las
aplicaciones de servidor, las encargadas de su gestión.
Por defecto, los clientes Web reciben y envían cookies sin solicitar confirmación al usuario, pero
es posible recibir avisos de la recepción de cookies, para rechazarlas en caso de no ser de nuestro
agrado. ¿Por qué rechazar las cookies?. Bueno, se pueden utilizar para seguir una pista del tipo de
información que buscamos en Internet, y ofrecer información comercial en función de ello. Sin
embargo, algunos servicios Web como tiendas on-line dependen de ellas para operar
correctamente.
Las cookies tienen un tiempo de vida, que hace que sean descartadas, pasado un cierto tiempo de
actividad. Algunas expiran al salir del cliente Web, pero otras cookies tienen una duración mayor,
por lo que el cliente Web las almacena en un archivo. Netscape utiliza el archivo cookies.txt de su
directorio de instalación, mientras que Microsoft almacena cada uno en un archivo independiente
del caché de páginas.
Las cookies son imprescindibles para operar con determinados servidores de acceso restringido, en
los cuales es preciso seguir un proceso de registro, y posiblemente abonar algún tipo de tasa.
84
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
Cuando se pierde una de esas cookies, por una reinstalación, fallo del computador o limpieza del
caché de páginas, en algunos casos puede ser posible regenerarla siguiendo un nuevo proceso de
registro en el servidor que la proporcionó, de forma que se relacione algún tipo de información
personal o clave de acceso proporcionado en la primera visita al servidor.
Una cookie es simplemente una serie de líneas de texto, con pares variable/valor. Existe un
conjunto predefinido de nombres de variables necesarias para el correcto funcionamiento de las
cookies, pero se pueden crear nuevas variables para cubrir las necesidades de una aplicación
concreta. Las principales variables predefinidas son:
• Domain = conjunto de direcciones Internet para el que es válida la cookie. Se puede dar
una dirección única (www.mitienda.ar) o un rango (.netscape.com).
• Path = fija el subconjunto de URLs para las que sirve esta cookie.
• Version = Permite seleccionar entre diferentes versiones del modelo de cookies.
• Expires = Fecha de expiración de la información. Si no se incluye, los datos son
descartados al finalizar la sesión con el cliente Web. En caso contrario se almacenará en el
disco del cliente. El RFC 2109 ha cambiado esta variable por Max-Age, una duración
relativa en segundos.
Un servidor HTTP envía los diferentes campos de una cookie con la cabecera HTTP Set-Cookie:
Cuando se accede a una URL que verifica el par dominio/path registrado, el cliente enviará
automáticamente la información de los diferentes campos de la cookie con la nueva cabecera
HTTP Cookie:
Sitios virtuales
Es posible mantener u hospedar varios sitios en un mismo servidor. Estos sitios se pueden
diferenciar ya sea por tener varias direcciones IP y/o tener diferentes nombres de dominio DNS.
Se debe tener en cuenta que cada nombre de dominio que se pretenda utilizar debe estar registrado
en el servidor DNS que corresponda.
Cada sitio debe ser declarado como “sitio virtual” indicando su dirección IP y/o su nombre de
dominio.
Opcionalmente se deberán declarar otras propiedades del sitio como por ejemplo el nombre o path
del directorio raíz del sitio. De esta forma cada sitio tiene su propio árbol de directorios donde se
guarda el contenido del sitio.
Existe un sitio por defecto que es el que responde en caso de que se acceda al sitio indicando sola
mente la dirección IP. Dicho sitio se conoce como sitio por defecto del servidor.
85
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
Directorios virtuales
Es posible definir cualquier directorio ya se del mismo servidor o de otra computadora como sub-
directorio del directorio raíz del sitio. Es similar a definir una carpeta compartida. Se deberá definir
el “alias” o sea el path con que se lo ubica desde la red (por ejemplo /profesores, donde / es el
directorio raíz del sitio). También se debe definir el path real del directorio en el sistema de
archivos. Y por último las protecciones y propiedades del directorio.
86
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
Veremos a continuación los pasos que debe realizar el administrador del servicio Web para
configurar el servicio HTTP en un servidor de una intranet o Internet.
Configurar las propiedades del protocolo TCP/IP que habilitan al servidor conectarse con otras
redes e Internet.
• Dirección IP
• Máscara de sub-red
• Dirección de difusión
• Nombre de Host
• Nombre de dominio DNS al que pertenece
• Dirección IP de un servidor de nombres
• Dirección IP del ruteador por defecto (puerta de enlace)
Veremos solo las configuraciones básicas, ya que la configuración completa es muy compleja por
la diversidad de funciones que se han incluido últimamente a un servidor de Web.
87
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
[28]
[29]
[30]
[31]
[32]
[33]
[34]
[35]
[36]
88
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
Este servicio pertenece a la familia de servicios esenciales de Internet y se usa para la transferencia
de archivos fundamentalmente.
Trabaja como todos los servicios TCP/IP bajo el modelo cliente/servidor. Normalmente todos los
sistemas operativos poseen un cliente FTP para bajar o subir archivos hacia el servidor FTP. Este
protocolo es universal como todos los servicios esenciales TCP/IP y por lo tanto su funcionalidad
no varía con el sistema operativo que lo contiene. Debido a su naturaleza interactiva mediante
comandos, se trata en dos partes: FTP cliente y FTP servidor.
También el comportamiento se diferencia por la identidad del usuario que accede al servicio, ya
que este puede ser un usuario que tenga una cuenta de usuario local en el servidor o ser
simplemente un usuario anónimo que accede con los privilegios de una cuenta predeterminada que
normalmente se llama “anonymous”. En el servidor se relaciona la cuenta ficticia “anonymous”
con una cuenta local que otorga los privilegios a “anonymous”.
Veremos algunas de las características del protocolo FTP de acuerdo a como se define en la
RFC959.
Terminología FTP
ASCII: El conjunto de caracteres ASCII se considera tal y como está definido en el manual de
protocolos de ARPA-Internet. En el FTP los caracteres ASCII se definen como la mitad inferior de
un código de 8 bits (i.e., el bit más significativo es cero).
Controles de acceso: Los controles de acceso definen los privilegios de acceso del usuario para el
uso de un sistema y de los archivos que hay en él. Son necesarios para evitar el uso no autorizado o
accidental de archivos. Es una prerrogativa para un proceso servidor FTP utilizar los controles de
acceso.
Tamaño de byte: Hay dos tamaños de byte interesantes en el FTP: el tamaño lógico de byte del
archivo y el tamaño de byte usado para la transmisión de los datos. El tamaño de byte utilizado
para la transmisión es siempre de 8 bits. Este tamaño no es necesariamente el tamaño de byte con
el que se guardan los datos en un sistema ni el tamaño lógico de byte para la interpretación de la
estructura de los datos.
Conexión de datos: Una conexión bidireccional sobre la que se transfieren los datos en un modo y
tipo especificados. Los datos transferidos pueden ser una parte de un archivo, un archivo entero o
un cierto número de archivos. La conexión se puede establecer entre un server-DTP (proceso de
transferencia de datos del servidor) y un user-DTP (proceso de transferencia de datos del usuario)
o entre dos server-DTP's.
89
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
Puerto de datos: El proceso de transferencia pasiva de datos "escucha" en el puerto de datos hasta
que recibe una conexión del proceso de transferencia activa para abrir la conexión de datos.
DTP: El proceso de transferencia de datos (DTP, Data Transfer Process) establece y maneja la
conexión de datos. Puede ser activo o pasivo.
Órdenes FTP: Un conjunto de órdenes que abarcan la información de control que va desde el
proceso user-FTP al proceso server-FTP.
Modo: El modo en que se trasfieren datos por la conexión de datos. El modo define el formato de
los datos durante la transferencia, incluyendo EOR y EOF. Los modos de transferencia definidos
para FTP se describen en la sección Modos de Transmisión.
NVT: El terminal virtual de red (Network Virtual Terminal) tal y como se define en el Protocolo
Telnet.
NVFS: El sistema de archivos virtual de red (Network Virtual File System). Un concepto que
define un sistema de archivos de red estándar con órdenes estándar y convenciones sobre los
nombres de ruta [pathname].
Nombre de ruta [pathname]: El nombre de ruta se define como una cadena de caracteres que
el usuario pasa al sistema de archivos para identificar un archivo. La ruta normalmente contiene
nombres de dispositivos y/o directorios y un nombre de archivo. El FTP no especifica aún un
estándar para indicar una ruta. Cada usuario debe seguir las normas que dictan los sistemas de
archivos implicados en la transferencia para nombrar los archivos.
PI: El Intérprete del Protocolo (Protocol Interpreter). La parte del usuario y del servidor del
protocolo tienen distintos papeles que se implementan como un user-PI y un server-PI.
90
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
Server-DTP (server Data Transfer Process): El proceso de transferencia de datos (Data Transfer
Process), en su estado normal de "activo", establece una conexión de datos con el puerto de datos
que está a la espera. Prepara los parámetros para transferir y almacenar y transfiere los datos
cuando así se requiere a través de su PI. El DTP se puede poner en estado "pasivo" para esperar
una conexión, en lugar de iniciarla.
Tipo: El tipo de representación de datos usado para transferir y almacenar los datos. El tipo
implica ciertas transformaciones a la hora de almacenar y enviar los datos. Los tipos de
representación definidos en el FTP se describen en la sección titulada "Estableciendo conexiones
de datos".
Usuario: Una persona o un proceso en su lugar que desea utilizar el servicio de transferencia de
archivos. La persona puede interactuar directamente con el proceso server-FTP, pero se prefiere el
uso de un proceso user-FTP ya que el diseño del protocolo está orientado a su utilización por
autómatas.
User-DTP (user Data Transfer Process): El Proceso de Transferencia de Datos espera a recibir
una conexión en el puerto de datos desde el proceso server-FTP. Si dos servidores están
transfiriendo datos entre ellos, el user-DTP permanece inactivo.
91
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
El modelo FTP
NOTAS:
La conexión de control sigue el Protocolo Telnet. Las órdenes FTP estándar las genera el user-PI y
se transmiten al proceso servidor a través de la conexión de control. (El usuario puede establecer
una conexión de control directa con el server-FTP, desde un terminal TAC –terminal de control de
acceso como un cliente telnet- por ejemplo, y enviar órdenes FTP estándar, obviando así el proceso
user-FTP.) Las respuestas estándar se envían desde el server-PI al user-PI por la conexión de
control como contestación a las órdenes.
Las órdenes FTP especifican parámetros para la conexión de datos (puerto de datos, modo de
transferencia, tipo de representación y estructura) y la naturaleza de la operación sobre el sistema
de archivos (almacenar, recuperar, añadir, borrar, etc.). El user-DTP u otro proceso en su lugar,
debe esperar a que el servidor inicie la conexión al puerto de datos especificado y transferir los
datos en función de los parámetros que se hayan especificado. Se debe aclarar que el puerto de
datos no tiene por qué estar en el mismo computador que envía las órdenes FTP a través de la
conexión de control, pero el usuario o el proceso user-FTP debe asegurarse de que se espera la
conexión en el puerto de datos indicado. También hay que destacar que la conexión de datos se
puede usar simultáneamente para enviar y para recibir.
En otra situación, un usuario puede querer transferir archivos entre dos computadores que no son
locales. El usuario prepara las conexiones de control con los dos servidores y da las órdenes
necesarias para crear una conexión de datos entre ellos. De esta forma, la información de control se
envía por el user-PI pero los datos se transfieren entre los procesos de transferencia de datos de los
servidores. A continuación se muestra un modelo de esta interacción servidor-servidor.
92
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
El protocolo requiere que las conexiones de control permanezcan abiertas mientras se transfieren
datos. Es responsabilidad del usuario solicitar el cierre de las conexiones de control una vez
termine de usar el servicio, mientras que el servidor es el encargado de cerrarlas. El servidor puede
interrumpir la transferencia de datos si las conexiones de control se cierran sin previa solicitud.
La relación entre FTP y Telnet: El protocolo FTP usa el protocolo Telnet en la conexión de
control. Esto se puede conseguir de dos formas: primera, el user-PI o el server-PI pueden
implementar las reglas del Protocolo Telnet directamente; o, segunda, el user-PI o el server-PI
pueden usar el módulo Telnet que exista en el sistema.
93
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
Transferencia de datos
Los archivos sólo se transmiten por la conexión de datos. La conexión de control se usa para
enviar órdenes, que describen la función a realizar, y las repuestas a estas órdenes. Varias órdenes
se refieren a la transferencia de datos entre computadores.
La mecánica de transferir datos consiste en preparar la conexión de datos en los puertos apropiados
y elegir los parámetros para la transferencia. El usuario-DTP y los server-DTPs tienen ambos un
puerto por defecto. El puerto por defecto del proceso de usuario es el mismo que el puerto de la
conexión de control (i.e., U). El puerto por defecto del proceso servidor es el puerto adyacente al
puerto de la conexión de control (i.e., L-1).
El proceso de transferencia de datos pasivo que espera el inicio de conexión (que puede ser un
user-DTP o un segundo server-DTP) deberá "escuchar" en el puerto de datos antes de enviar una
orden de petición de transferencia.
Esta orden determina el sentido de la transferencia de los datos. El servidor, una vez recibida la
petición de transferencia, iniciará la conexión de datos al puerto indicado. Una vez establecida la
conexión, la transferencia de datos comienza entre los DTPs, mientras el server-PI envía una
respuesta de confirmación al user-PI.
Todas las implementaciones del FTP deben soportar el uso de los puertos de datos por defecto y
sólo el user-PI puede solicitar un cambio a un puerto diferente.
Conexión de datos
Puertos de la conexión de datos por defecto: Todas las implementaciones del FTP deben
soportar el uso de los puertos de datos por defecto y sólo el user-PI puede iniciar el uso de otros
puertos.
Negociando puertos de datos distintos a los que hay por defecto: el user-PI puede especificar
un puerto de datos diferente por su parte con la orden PORT. El user-PI puede solicitar al servidor
la localización de un puerto en el propio servidor con la orden PASV.
Como una conexión está definida por el par de direcciones, cualquiera de estas acciones es
suficiente para tener una conexión de datos diferente, pero se permite usar ambas órdenes para
utilizar nuevos puertos en los dos lados de la conexión.
94
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
Modos de transmisión
Otro aspecto a considerar en la transferencia de datos es la elección apropiada del modo de
transmisión. Hay tres modos: uno que formatea los datos y permite reiniciar la transmisión; otro
que además comprime los datos para una transferencia eficaz; y otro que pasa los datos sin apenas
procesarlos.
Todas las transferencia de datos se deben complementar con un fin-de-archivo (EOF, end-of-file)
que se puede indicar explícita o implícitamente cerrando la conexión de datos. Para archivos con
estructura de registro, todos los indicadores de fin-de-registro (EOR) son explícitos, incluyendo el
último. Para archivos transmitidos con estructura de página, se usa una página con el indicador de
última página activado.
Modo flujo: Los datos se transmiten como un flujo de bytes. No hay ninguna restricción en el tipo
de representación usado; se permiten estructuras de registro.
Modo bloque: El archivo se transmite como una serie de bloques de datos precedidos por uno o
más bytes cabecera.
Modo comprimido: Hay tres clases de información a enviar: datos normales, enviados en una
cadena de bytes; datos comprimidos, formados por repeticiones o relleno; e información de
control, enviada en una secuencia de escape de dos bytes.
EL modo comprimido es útil para obtener un ancho de banda adicional en transmisiones muy
largas con un costo extra de CPU muy pequeño.
95
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
El cliente FTP
El cliente FTP es el navegador de Internet para usar desde una interfaz gráfica con el URL:
ftp://nombre_del_sitio/path
Esto es para el usuario anonymosus. Si el usuario tiene una cuenta en el servidor, será:
Estudiaremos algunos de los comandos FTP que se pueden ejecutar desde el cliente para
interactuar con el servidor FTP.
Comando ftp
Transfiere archivos a y desde un equipo ejecutando un servicio Servidor de ftp. El comando ftp
puede utilizarse de manera interactiva tipeando ftp en la línea de comandos. Este comando está
disponible sólo si se ha instalado el protocolo TCP/IP. Ftp es un servicio, que, una vez iniciado,
crea un sub-entorno en el que es posible utilizar comandos propios de ftp y desde el que se puede
volver al símbolo del sistema al escribir el sub-comando quit. Cuando se está ejecutando el sub-
entorno ftp, el símbolo del sistema de ftp lo indica.
ftp [-v] [-n] [-i] [-d] [-g] [-s:nombreDeArchivo] [-a] [-w:tamañoDeVentana] [equipo]
Parámetros
-v
-n
-i
-d
Habilita la depuración y muestra todos los comandos ftp transferidos entre el cliente y el
servidor.
-g
96
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
-s:nombreDeArchivo
-a
-w:tamañoDeVentana
computer
Especifica el nombre de equipo o la dirección IP del equipo remoto con el que establece la
conexión. Si especifica el equipo, debe ser el último parámetro de la línea.
Comandos de ftp
Los comandos propios de FTP cliente son los siguientes (hay pequeñas diferencias entre las
plataformas):
97
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
Ftp: !
Nota
• Este comando se utiliza sin parámetros. Utilícelo cuando haya terminado de usar
comandos ftp y desee volver al intérprete de comandos del sistema operativo local.
Ftp: cd
cd directorioRemoto
Parámetro
directorio_remoto
Ftp: dir
Parámetros
directorio_remoto
Especifica el directorio cuyo contenido desea examinar. Este parámetro debe especificarse
siempre. Si no especifica ningún directorio, se utilizará el directorio de trabajo actual del
equipo remoto.
archivo_local
help [comando]
Parámetro
98
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
comando
Especifica el nombre del comando acerca del cual desea obtener más información. Si no
especifica el parámetro comando, ftp mostrará una lista completa de todos los comandos.
Ftp: lcd
lcd [directorio]
Parámetro
directorio
Ftp: get
get archivo
Ftp: ls
ls [directorioRemoto] [archivoLocal]
Parámetros
directorio_remoto
Especifica el directorio cuyo contenido desea examinar. Este parámetro debe especificarse
siempre. Si no especifica ningún directorio, se utilizará el directorio de trabajo actual del
equipo remoto.
archivo_local
FTP: mput
99
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
Parámetro
archivos_locales
Ftp: open
Parámetros
computer
Especifica el equipo remoto con el cual desea establecer una conexión. El equipo puede
especificarse mediante una dirección IP o un nombre de equipo (deberá haber un archivo
DNS o HOSTS disponible). Si está activada la opción de inicio de sesión automático (valor
predeterminado), ftp también intentará registrar al usuario automáticamente en el servidor
de FTP (para obtener más información acerca de cómo desactivar el inicio de sesión
automático, haga clic en ftp en la lista Temas relacionados).
puerto
Especifica un número de puerto que se utilizará para entrar en contacto con el servidor de
FTP.
Ftp: prompt
prompt
Ftp: put
Parámetros
100
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
archivo_local
archivo_remoto
Ftp: pwd
pwd
Ftp: quit
quit
Ftp: usuario
Parámetros
nombre_usuario
Especifica un nombre de usuario con el cual se iniciará una sesión en el equipo remoto.
contraseña
cuenta
Códigos de respuestas
En un diálogo, se responde a cada comando con un código de respuesta y un mensaje, es decir, los
servidores de FTP manejan códigos estándar para dar información al usuario sobre una operación
concreta, por ejemplo ejecutaremos el comando get para bajar un archivo del sitio FTP:
101
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
Los códigos de respuestas se componen de tres dígitos. Cada uno tiene un cometido específico:
• Los códigos en el rango de los 200 indican que el comando se realizó con éxito.
• Los códigos en el rango de los 100 indican que se ha comenzado a realizar una acción.
• Los códigos en el rango de los 300 indican que se ha alcanzado con éxito un punto
intermedio
• Los códigos en el rango de los 400 indican errores pasajeros
• Los códigos en el rango de los 500 son realmente malas noticias e indica un error
permanente.
Los dígitos segundo y tercero de un código de respuesta, clasifican la respuesta de forma más
precisa.
102
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
El Servidor FTP
También en este servicio podemos definir servidores virtuales, o sea instancias de servidor que
responden a nombres diferentes con direcciones IP diferentes pero en la misma computadora.
Es posible definir también directorios virtuales en cada servidor virtual, que no son más que
directorios que se ubican lógicamente en el sitio FTP pero que físicamente están en alguna carpeta
del servidor (no necesariamente debajo del directorio raíz del sitio) o incluso en una carpeta
compartida de otro servidor.
Este servicio presenta una característica de seguridad de acceso a través de contraseña, pero
también puede permitir acceso anónimo, usando una cuenta definida para ese propósito.
Normalmente el nombre de login de esa cuenta es anonymous y la contraseña es la dirección de
correo del usuario.
Veremos a continuación los pasos que debe realizar el administrador del servicio FTP para
configurar el servicio FTP en un servidor de una intranet o Internet.
Configurar las propiedades del protocolo TCP/IP que habilitan al servidor conectarse con otras
redes e Internet.
• Dirección IP
• Máscara de sub-red
• Dirección de difusión
• Nombre de Host
• Nombre de dominio DNS al que pertenece
• Dirección IP de un servidor de nombres
• Dirección IP del ruteador por defecto (puerta de enlace)
103
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
[37]
[38]
[39]
[40]
Cual es el tipo de acceso (local o anónimo) que Usted considera más seguro.
[41]
[42]
Indique cuales son los procesos que se ejecutan tanto en cliente como en el servidor FTP.
104
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
[43]
[44]
Indique 7 comandos que usted considere como básicos o habituales en una sesión FTP.
[45]
105
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
El correo electrónico es posiblemente el servicio más utilizado de todos los que existen
actualmente con arquitectura cliente-servidor. Gracias a este se tiene la posibilidad de comunicarse
rápidamente con todo el mundo desde una estación de trabajo de forma muy simple y barata
incluso con los teléfonos celulares tan difundidos en nuestro medio.
Basta con tener un buzón en un servidor de correo correctamente configurado y una aplicación
cliente (en una forma precaria pero efectiva basta con solo disponer de un programa como telnet
para enviar mensajes a un servidor de correo) para operar con dicho buzón.
Los MTAs (Mail Transport Agent) o agentes para la trasmisión de correo son aquellos programas
servidores que permiten transportar el correo electrónico de una máquina a otra a través de la red.
Como ejemplos de MTAs se pueden citar a Sendmail, Qmail, Postfix, Exchange Server y otros.
Todos hablan el mismo idioma, o sea utilizan un protocolo común para la comunicación: el SMTP
(Simple Mail Transfer Protocol).
El SMTP como su nombre lo indica es un protocolo muy simple orientado a caracteres y que
permite el traslado de los correos tanto desde el cliente al servidor como entre servidores.
Normalmente los servidores de correo utilizan el puerto 25 para comunicarse mediante el SMTP.
Por tanto, los servidores SMTP son funcionalmente similares a los routers de paquetes.
Normalmente, un mensaje pasará a través de varias pasarelas SMTP antes de llegar a su destino
final. En cada parada, el servidor SMTP evalúa el mensaje y lo almacena o lo envía. También
puede suceder que si el servidor SMTP encuentra un mensaje que no se puede enviar, este
devuelva un mensaje de error al remitente explicando el problema.
También entran en juego los MDA's (Mail Delivery Agent) o Agentes de Distribución de Correo
que se encargan de mover el correo dentro de un sistema, es decir, desde un MTA al buzón local
de un usuario, o del buzón hacia un MUA mediante POP3 o IMAP.
106
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
Por otro lado se encuentran los MUAs (Mail User Agents) que son los programas clientes que
posibilitan a los usuarios manipular su mensajería. Estos programas son ejecutados directamente
por los usuarios. Proveen facilidades para escribir los mensajes, enviarlos, descargar y leer los que
llegan, organizarlos en directorios, hacer búsquedas, imprimirlos, mantener un libro de direcciones
electrónicas, etc.
Ejemplos de MUAs en Linux son los progamas: pine, mail, mutt y elm. Para entornos gráficos
están el Netscape Messenger y el kmail del entorno KDE. En la plataforma de Windows está el
conocido Outlook.
También es posible interactuar con páginas Web para la tarea de cliente, que se conoce como Web
Mail. La ventaja de este último es que toda computadora dispone de un navegador que sería el
cliente y se aprovecha la tecnología de multimedios que proporciona un sitio Web.
Para enviar los mensajes, los MUAs se pueden conectar a un MTA determinado utilizando SMTP
o escribir los mensajes directamente en el buzón si este es local.
En cambio para descargar la mensajería un MUA puede hacerlo localmente o emplear alguna
variante de dos protocolos fundamentales: POP (Post Office Protocol) o IMAP (Internet Message
Access Protocol).
107
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
El mensaje de correo electrónico que envía su computadora sigue una norma internacional con el
objeto de ser "legible" para quien lo recibe.
• Encabezado ("Header")
• Cuerpo del mensaje
• Archivos adjuntos ("Attachment")
Return-Path: <pepe@pepe.com>
Received: from maquina1 (maquina1.pepe.com [192.168.73.129]
by mail.iua.edu.ar (8.9.3/8.9.3) with ESMTP id RAA20801
for <info@iua.edu.ar>; Tue, 29 Aug 2000 17:08:21 -0400
From: "Pepe Pepe" < pepe@pepe.com >
To: < info@iua.edu.ar >
Subject: Importante
Date: Tue, 29 Aug 2000 18:08:21 -0300
Message-ID: <Este_es_el_mensaje…………………………. >
108
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
MIME-Version: 1.0
Content-Type: multipart/alternative;
boundary="----=_NextPart_000_0000_01C011DF.871D08A0"
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 5.00.2919.6700
X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2919.6700
X-UIDL: 102a4a2c4e95ed6dd5ac92e9f6e1b072
Return-Path: pepe@pepe.com
Return-Path es la dirección del remitente. Esta dirección puede ser alterada para evitar detectar el
verdadero remitente.
mail.iua.edu.ar (8.9.3/8.9.3) es el nombre del servidor que recibió el mensaje para Ud.
Las demás líneas tienen que ver con particularidades de los servidores y del software utilizado para
redactar el mensaje.
Es el mensaje en sí, tal como Ud. lo ve en su pantalla. Puede estar redactado en formato de texto
plano ("Plain Text") y/o HTML, es decir como una página web, lo que permite darle formato al
texto, utilizar un gráfico de fondo, etc.
La gran mayoría de los programas de correo electrónico actuales tiene la posibilidad de adjuntar al
texto del mensaje, un archivo, usualmente residente en el disco de su computadora. Este archivo
puede ser de cualquier tipo (programa ejecutable (exe), archivo comprimido (zip), imagen gráfica
(GIF, JPG, etc.).
Como consejo general, cuídese de los attachments. Esto significa que nunca debe abrir un archivo
adjunto de cualquier tipo que provenga de un desconocido, ya que aquí es donde puede
transmitirse código malicioso (virus) a su computadora. Si el adjunto proviene de una persona
109
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
conocida, puede abrirlo, pero siempre con un antivirus actualizado instalado en su máquina. Nunca
abra un archivo adjunto que sea ejecutable en su computadora!!!.
110
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
Para que dos sistemas intercambien correo mediante el protocolo SMTP, no es necesario que exista
una conexión interactiva, ya que este protocolo usa métodos de almacenamiento y reenvío de
mensajes.
Son tres los protocolos que se aplican a un transporte de correo de esta clase. El termino SMTP es
frecuentemente y erróneamente usado para referirse a la combinación del grupo de protocolos
involucrados en el envío de correo electrónico. Esto es porque los tres están estrechamente
relacionados, pero estrictamente hablando SMTP es uno de los tres protocolos. Los tres protocolos
son:
De todos modos esto es bastante cambiante. Lo cierto es que normalmente se definen varias
especificaciones para tratar partes de una función. En este caso se trata de recibir en mensaje,
interpretarlo y darle salida a un nuevo destino. A todo esto comúnmente se le llama SMTP. Al
servidor que realiza estas funciones se lo llama servidor SMTP.
Cuando un servidor de SMTP, requiere transmitir un mensaje a otro servidor SMTP, el emisor
(servidor que inicia la sesión SMTP) establece una conexión con el receptor (servidor que recibe
petición de establecer sesión SMTP). Esta conexión es unidireccional, es decir, el emisor puede
enviar correo al receptor, pero durante esa conexión, el receptor no puede enviar correo al emisor.
Si el receptor tiene que enviar correo al emisor, tiene que esperar a que finalice la conexión
establecida y establecer otra en sentido contrario, cambiando los papeles de emisor y receptor. Una
vez establecida la conexión, el emisor envía comandos y mensajes.
Los mensajes pueden tener como destino el receptor o un intermediario para llegar a un destino
más lejano. El receptor puede enviar al emisor respuestas y códigos de estado.
Los comandos son cadenas de caracteres que se pueden entender fácilmente y las respuestas son
códigos numéricos seguidos de una explicación del código.
111
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
Por lo señalado, SMTP está basado en entrega "end-to-end". Esto es diferente del principio guardar
y enviar común en muchos sistemas de mensajería electrónica, donde el mensaje puede pasar a
través de un numero de maquinas intermediarias en su camino al destino final.
Existen aplicaciones que permiten intercambiar correo entre el sistema de mensajería electrónica
TCP/IP SMTP y el sistema de correo localmente usado.
Estas aplicaciones son llamadas "Gateways" de correo o "Bridges" de correo. Enviar correo a
través de un "Gateway" puede alterar la entrega "end-to-end". El protocolo SMTP solo puede
garantizar la entrega al "Gateway" y no al destino final, que está localizado más allá de la red
TCP/IP.
El Emisor SMTP genera comandos que son contestados por el Receptor SMTP.
112
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
Los comandos y respuestas son estrictamente definidos por el protocolo, el intercambio de ellos
entre emisor y receptor resultar fácil de comprender.
A continuación veremos los comandos SMTP para comprender las características de intercambio
de mensajes entre cliente SMTP y servidor SMTP o entre servidores SMTP que intercambian
mensajes.
Como el protocolo es orientado a caracteres, se puede interactuar con el servidor mediante cadena
de caracteres ASCII que corresponden a los comandos SMTP, usando el cliente del protocolo
TELNET.
Vemos a continuación un ejemplo que nos permite enviar un mensaje de correo a un servidor
SMTP solamente mediante el cliente Telnet que siempre está disponible en cualquier computadora.
Este intercambio interactivo de mensajes está automatizado en los programas que usan SMTP para
la comunicación entre cliente SMTP y servidor SMTP o entre servidores SMTP.
113
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
telnet sigma.eafit.edu.co 25
Ud. Deberá indicar el nombre de dominio de su servidor de correo saliente (MTA con SMTP).
Par iniciar la conexión con el servidor SMTP en el puerto 25. Habilite el echo local del emulador
de Terminal, para poder ver los comandos que el cliente digita.
Esto les permitirá conectarse al servicio SMTP. Ahora componga manualmente el mensaje de
correo y pruebe algunos comandos que soporta el servidor.
Una vez conectado al servidor de correo, éste le enviará un mensaje de conexión y quedará en
modo de espera a que usted le introduzca comandos. A continuación indicamos el diálogo entre
cliente (transmisor) y servidor (receptor) SMTP. Este diálogo se muestra en la pantalla del cliente
interactivo. Se indica la forma más simple. Es posible indicar encabezados, el asunto, etc.
telnet sigma.eafit.edu.ar 25
220 sigma.eafit.edu.co ESMTP Sendmail 8.11.6/8.11.6; Wed, 24 Apr 2005 10:27
HELO eafit.edu.ar
250 sigma.eafit.edu.ar Hello firewall.ucbcba.edu.ar [166.114.106.8], pleased to
meet you
HELP
214-2.0.0 This is sendmail version 8.11.6
214-2.0.0 Topics:
214-2.0.0 HELO EHLO MAIL RCPT DATA
214-2.0.0 RSET NOOP QUIT HELP VRFY
214-2.0.0 EXPN VERB ETRN DSN AUTH
214-2.0.0 STARTTLS
214-2.0.0 For more info use "HELP <topic>".
214-2.0.0 To report bugs in the implementation send email to
214-2.0.0 sendmail-bugs@sendmail.org.
214-2.0.0 For local information send email to Postmaster at your site.
214 2.0.0 End of HELP info
MAIL FROM: usuario@eafit.edu.ar
250 2.1.0 emontoya@eafit.edu.ar... Sender ok
RCPT TO: userst@dominio.subdominio (especifica el destino)
250 2.1.5 usert@dominio.subdominio Recipient ok
DATA
354 Start mail input; end with <CRLF>.<CRLF>
Hola como estas, esta es una prueba de
correo electrónico.
bla, bla, bla, ...
.
250 2.0.0 g3OFd0s14381 Message accepted for delivery
114
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
Cliente Servidor
telnet sigma.eafit.edu.ar 25
220 sigma.eafit.edu.co ESMTP Sendmail
8.11.6/8.11.6; Wed, 24 Apr 2005 10:27
HELO eafit.edu.ar
DATA
115
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
DATA: este comando indica al servidor que el texto que va a continuación del comando es ya el
mensaje de correo que debe de llevarse al destinatario indicado por el encabezado del mensaje. El
texto del mensaje debe de estar de acuerdo con el estándar del formato de mensaje de Internet,
descrito en la RFC 2822. Este texto del mensaje debe finalizar con un punto, que tiene que ir
precedido (del comando anterior) y sucedido de los caracteres de retorno carro/avance de línea.
Dentro del texto se reconocen las palabras claves como: from:, to:, subject:, etc. El funcionamiento
es sencillo, se envía el comando y el servidor debería responder con el código de respuesta 354. El
paso siguiente es enviar el texto del mensaje, al término del cual se debería de recibir el código de
respuesta 250.
La tabla siguiente indica los posibles códigos de respuesta que puede recibir este comando:
Código Significado
250 La acción solicitada se ha completado
Comenzar la introducción del correo, acabando con
354
<CRLF>.<CRLF>
421 El servicio no esta disponible
451 Se abandono la acción por un error de procesamiento local
No se produjo la acción por que el disco no tiene espacio de
452
almacenamiento suficiente
500 Error en la sintaxis, no se pudo reconocer el comando
501 Error en la sintaxis de los parámetros del comando
503 Secuencia de comandos incorrecta
552 Abandono de la acción porque se supero la reserva de espacio
554 Se produjo un fallo en la transacción
HELO: este comando es el encargado de iniciar el dialogo SMTP. Este comando tiene como
parámetro un nombre de dominio. El servidor responderá con un código de respuesta 250 seguido
del nombre del servidor.
Código Significado
250 La acción solicitada se ha completado
421 El servicio no esta disponible
500 Error en la sintaxis, no se pudo reconocer el comando
501 Error en la sintaxis de los parámetros del comando
504 El parámetro del comando no esta implementado
HELP: este comando hace que el servidor envíe información de ayuda sobre todos los comando o
sobre un comando en concreto.
Los posibles códigos de respuesta a este comando están en la siguiente tabla:
Código Significado
211 El sistema tiene disponible la ayuda
214 Mensaje de información de ayuda
421 El servicio no esta disponible
500 Error en la sintaxis, no se pudo reconocer el comando
501 Error en la sintaxis de los parámetros del comando
502 El comando no esta implementado
504 El parámetro del comando no esta implementado
MAIL: este comando indica al servidor el inicio de un mensaje de correo y le indica además quien
es el remitente del mensaje.
Código Significado
250 La acción solicitada se ha completado
421 El servicio no esta disponible
451 Se abandono la acción por un error de procesamiento local
No se produjo la acción por que el disco no tiene espacio de
452
almacenamiento suficiente
500 Error en la sintaxis, no se pudo reconocer el comando
501 Error en la sintaxis de los parámetros del comando
552 Abandono de la acción porque se supero la reserva de espacio
QUIT: este comando le indica al servidor que el cliente no tiene mas operaciones que realizar y
que se debería cerrar la conexión. El servidor responde OK y seguidamente, cierra la conexión con
el cliente.
Los posibles códigos de respuesta a este comando están en la siguiente tabla:
Código Significado
221 Se está cerrando la conexión
500 Error en la sintaxis, no se pudo reconocer el comando
117
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
RCPT (destinatario): este comando indica al servidor quien es el destinatario del mensaje que se
está enviando. Si el mensaje debe de ir a varios destinatarios, se pueden expresar separados por
comas.
Código Significado
250 La acción solicitada se ha completado
El usuario no es local, entonces se remite el mensaje a nombre-
251
servidor
421 El servicio no esta disponible
450 No ser realizo la acción porque el buzón no esta disponible
451 Se abandono la acción por un error de procesamiento local
No se produjo la acción por que el disco no tiene espacio de
452
almacenamiento suficiente
500 Error en la sintaxis, no se pudo reconocer el comando
501 Error en la sintaxis de los parámetros del comando
503 Secuencia de comandos incorrecta
550 La acción no se realizo por que no se ha encontrado el buzón
El usuario no es local, el cliente debería conectarse a nombre-
551
servidor
552 Abandono de la acción porque se supero la reserva de espacio
No se realizo la operación porque la sintaxis del nombre del buzón
553
es incorrecta
118
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
Veremos a continuación los pasos que debe realizar el administrador del servicio SMTP para
configurar un servidor de una intranet o Internet.
Configurar las propiedades del protocolo TCP/IP que habilitan al servidor conectarse con otras
redes e Internet.
• Dirección IP
• Máscara de sub-red
• Dirección de difusión
• Nombre de Host
• Nombre de dominio DNS al que pertenece
• Dirección IP de un servidor de nombres
• Dirección IP del ruteador por defecto (puerta de enlace)
Habilitar registro
Active esta opción para crear archivos de registro de transacciones. Los archivos de registro se
utilizan para recopilar datos estadísticos acerca del uso de los servidores y constituyen una
herramienta muy útil para los administradores. Por ejemplo, los archivos de registro pueden
mostrar cuándo se conectan los usuarios, y desde dónde se conectan.
Control de acceso
Para elegir la forma en que el servidor autentica a los usuarios cuando éstos inician una sesión.
Puede permitir el acceso anónimo o solicitar credenciales como el nombre de usuario, la
contraseña y el certificado de seguridad X509.
servidor cuando debe atender a una gran cantidad de correo, que en realidad no interesa al
propietario del servidor.
Correo Saliente
Utilice esta configuración para controlar los intervalos en los que el servidor virtual intentará
entregar mensajes de correo electrónico que no se han podido entregar. También puede especificar
cuándo notificar a los usuarios que los mensajes están retrasados y cuándo dejar de intentar la
entrega de mensajes.
Seguridad saliente
Configurar las opciones de seguridad para conexiones con otros servidores del Protocolo simple de
transferencia de correo (SMTP). Puede conectarse con otros servidores SMTP de forma anónima o
bien utilizar autenticación y cifrado.
Ruteo
Vemos que como ruteador de correo el servidor SMTP tiene tres opciones para reenviar los
mensajes entrantes, con una dirección del tipo xx@dominio.com, según el siguiente orden de
prioridad:
1. Al host inteligente
2. Al servidor SMTP que se obtiene de la tabla de servidores de reenvío de dominios
remotos
3. Al servidor SMTP que se obtiene de la consulta DNS por el tipo MX que
corresponde al dominio remoto dominio.com.
4. A un mailbox local
[46]
[47]
Realice un dibujo que muestre las relaciones entre los módulos o funciones básicas de un servicio
de correo.
[48]
[49]
Escriba la secuencia básica de comandos SMTP que permiten enviar un correo electrónico.
[50]
121
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
IMAP4rev1 nos permite manipular los archivos contenedores de mensajes, llamadas comúnmente
"buzones", con una funcionalidad equivalente a la que obtenemos con los contenedores de
mensajes locales.
IMAP4rev1 ofrece además, operaciones para crear, borrar, y renombrar estos buzones;
comprobación de nuevos mensajes; lectura del contenido; borrado permanente de mensajes;
establecimiento y borrado de banderas; búsqueda genérica; y recuperación selectiva de atributos de
mensaje, textos, y porciones de texto.
La comunicación entre cliente y servidor se realiza en forma de líneas; es decir, cadenas que
terminan con un CRLF.
Un argumento del comando está formado de un número de octetos, los argumentos del comando
requieren una realimentación por parte del servidor. El servidor envía una respuesta de solicitud de
continuación del comando si este está preparado para recibir los octetos (si es lo adecuado) y el
recordatorio del comando. Esta respuesta viene precedida del token"+".
122
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
En caso de que el servidor detecta un error en el comando, envía una respuesta de transacción
errónea con la etiqueta que corresponde al comando para rechazar el comando, y con ello evita que
el cliente envíe más información del comando.
Es posible que el servidor envíe una respuesta de transacción completa para otros comandos (si
hay varios comandos en progreso), o datos no etiquetados. Esto indica que la comunicación no
tiene que ser obligatoriamente sincrónica. En cualquier caso, la solicitud de continuación de
comando está todavía pendiente; el cliente actúa de manera adecuada a la respuesta, y lee otra
respuesta del servidor. En todos los casos, el cliente DEBE enviar un comando completo antes de
inicializar un nuevo comando.
Además del texto del mensaje, cada uno de los mensajes posee una serie de atributos. Estos
atributos se pueden recuperar individualmente o en conjunción con otros atributos o textos del
mensaje. Veremos algunos de los atributos más representativos.
Números del Mensaje: Para tener acceso a los mensajes en IMAP4rev1 se utilizan uno de los
siguientes números; el identificador único o el número de secuencia del mensaje.
Identificador Único (UID): Asignamos a cada mensaje un valor de 32 bit, que junto con el valor
de vigencia de identificador único obtenemos un valor de 64 bit, con lo cual garantizamos que
hacemos referencia al mensaje en concreto y no a cualquier otro presente en el buzón. Los
identificadores únicos se asignan en el buzón en orden ascendente; de forma que cualquier mensaje
que llegue al buzón recibirá un UID mayor que el identificador asignado al mensaje recibido justo
antes que él.
Al contrario que los números de secuencia de mensaje, los identificadores únicos no son
necesariamente contiguos. Los identificadores únicos también permanecen a lo largo de sesiones
diferentes. Esto permite al cliente re-sincronizar su estado partiendo desde una sesión previa con el
servidor. (p.ej. clientes "offline" o desconectados).
Fecha y hora interna del mensaje en el servidor: Esta no es la fecha y hora de la cabecera, sino
que es una fecha y una hora que refleja el momento de recepción del mensaje.
123
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
Una conexión IMAP4rev1 puede encontrarse en cuatro estados. La mayoría de los comandos son
válidos únicamente en ciertos estados. Es un error de protocolo de parte del cliente intentar
ejecutar un comando mientras este no se encuentra en el estado apropiado.
Estado autentificado: En este estado, el cliente está autentificado y debe seleccionar un buzón
antes de que se le permita utilizar cualquier comando que afecte a los mensajes contenidos en el
mismo.
Estado seleccionado: En este estado, se ha seleccionado un buzón al que acceder. Este estado se
alcanza cuando la selección del buzón es aceptada.
Comandos de cliente
En esta sección se detallan los comandos IMAP4rev1. Los comandos se organizan en función del
estado en el cual está permitida su ejecución. Existen comandos que puedan utilizarse en varios
estados.
Veremos algunos ejemplos de comandos que le permiten al cliente realizar tareas en el servidor.
En los ejemplos se indicará con “C” el envío del cliente, y con “S” la respuesta del servidor.
124
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
Ejemplo:
S: * OK KerberosV4 IMAP4rev1 Servidor
C: A001 AUTHENTICATE KERBEROS_V4
S: + AmFYig==
C:BAcAQU5EUkVXLkNNVS5FRFUAOCAsho84kLN3/IJmrMG+25a4DT+n
ZImJjnTNHJUtxAA+o0KPKfHEcAFs9a3CL5Oebe/ydHJUwYFdwuQ1MWiy
6IesKvjL5rL9WjXUb9MwT9bpObYLGOKi1Qh
S: + or//EoAADZI=
C: DiAF5A4gA+oOIALuBkAAmw==
S: A001 OK Kerberos V4 autentificación conseguida.
Ejemplo:
Comando SELECT: El comando SELECT selecciona un buzón de correo para que en un futuro
se pueda tener acceso a los mensajes que este contiene.
Ejemplo:
Comando CREATE: El comando CREATE crea un buzón de correo con el nombre especificado.
Comando DELETE: El comando DELETE borra el buzón de correo que posea el nombre
especificado.
Comando CLOSE: El comando CLOSE elimina de manera permanente todos los mensajes del
buzón que tengan la bandera \Deleted activa.
125
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
126
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
Los servidores del servicio MDA están preconfigurados de tal manera de prestar el servicio de
acuerdo al protocolo IMAP. Normalmente solo hace falta crear los buzones de los usuarios y
protegerlos de acuerdo a las restricciones de acceso del servidor que controla el acceso a la
información que se mantiene en los buzones.
[51]
[52]
[53]
Resuma las características básicas de una conexión cliente/servidor mediante el protocolo IMAP4.
[54]
Indique que partes del mensaje se pueden discriminar en una lectura del contenido del mismo.
[55]
[56]
Indique que relación existe entre los estados de una conexión y los comandos del protocolo
IMAP4.
[57]
127
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
Un protocolo sencillo y muy usado para bajar correo electrónico de un buzón remoto, es el
protocolo de oficina postal (post office protocol, POP3). El objetivo del POP3 es obtener correo
electrónico del buzón remoto y almacenarlo en la maquina local del usuario para su lectura
posterior. Se emplea principalmente en conexiones con MODEM en las que el tiempo de conexión
cuesta dinero. De las posibilidades que el protocolo POP3 permite, los clientes de correo POP3
suelen ofrecer las siguientes facilidades operativas
El inconveniente principal es que, si se ha recibido un mensaje largo, habrá que esperar a que el
agente lo traiga desde el buzón para poder ver de qué se trata. Este es un problema de como los
agentes usan el POP, no del protocolo en si mismo.
Principio de funcionamiento
Inicialmente, el equipo servidor inicia el servicio POP3 escuchando el puerto TCP 110. Cuando un
equipo cliente quiere hacer uso del servicio, establece una conexión TCP con el equipo servidor.
Cuando la conexión se ha establecido, el servidor POP3 envía un saludo. El cliente y el servidor
POP3 a partir de entonces intercambian órdenes y respuestas (respectivamente) hasta que se cierre
o interrumpa la conexión.
Las órdenes en el protocolo POP3 consisten en una serie de palabras claves sin diferenciar
mayúsculas de minúsculas, posiblemente seguidas de uno o más argumentos. Todas las órdenes
terminan con un par CRLF (Carriage Return Line Feed, Retorno de Carro Nueva Línea). Las
órdenes y sus argumentos están compuestos de caracteres ASCII imprimibles, separados de sus
argumentos por un sólo carácter espacio. Las órdenes tienen tres o cuatro caracteres de longitud.
Cada argumento puede tener hasta 40 caracteres.
Las respuestas en el POP3 están formadas por un indicador de estado y una palabra clave,
posiblemente seguida de información adicional. Todas las respuestas están terminadas por un par
CRLF. Las respuestas pueden tener hasta 512 caracteres de longitud, incluyendo el CRLF del final.
Una sesión POP3 pasa por varios estados durante su periodo de vida. Una vez abierta la conexión
TCP y tras enviar el servidor POP3 el saludo, la sesión entra en la fase de AUTORIZACIÓN. En
esta fase, el cliente debe identificarse ante el servidor POP3.
Una vez que el cliente lo realiza con éxito, el servidor adquiere los recursos asociados con el buzón
del cliente, y la sesión entra en la fase de TRANSACCIÓN. En esta fase, el cliente solicita la
actuación al servidor POP3.
Tras el envío por el cliente de la orden QUIT, la sesión entra en la fase de ACTUALIZACIÓN. En
esta fase, el servidor POP3 libera cualquier recurso adquirido durante la fase de TRANSACCIÓN,
y dice adiós. En ese momento se cierra la conexión TCP.
128
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
Un servidor POP3 puede tener un contador de inactividad para cerrar la conexión. Ese contador
debe de ser de al menos 10 minutos de duración. La recepción de cualquier orden durante el
intervalo debería bastar para reiniciar el contador. Cuando el contador se agota, la sesión NO entra
en fase de ACTUALIZACIÓN: el servidor debería cerrar la conexión TCP sin eliminar ningún
mensaje ni enviar ninguna respuesta al cliente.
Comandos POP3
PASS (Clave): señala al servidor la clave de la cuenta de usuario indicada por el comando USER.
Si la clave no es correcta o la casilla no pasa al estado de bloqueo exclusivo, se produce un error.
La sintaxis de este comando es la siguiente:
PASS clave
129
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
QUIT: se puede usar cuando el servidor está en estado de autorización y en estado de transacción.
Si se usa cuando está en estado de autorización, la sesión finaliza y se interrumpe la conexión. Si
se usa cuando está en estado de transacción, se cierra la sesión y el servidor pasa a estado de
actualización. La sintaxis de este comando es la siguiente:
QUIT
USER nombre
DELE (Eliminar): marca como eliminado un mensaje, pero en realidad el servidor no lo elimina
hasta que no pasa al estado de actualización, con lo que no se pierde en el caso de que la conexión
fallase o que se deseara quitarle la marca de eliminar. Cada mensaje que está en la casilla del
servidor POP tiene asignado un número, que lo identifica. La sintaxis es la siguiente para este
comando:
DELE numero_mensaje
LIST: recupera información acerca del tamaño que ocupa un mensaje determinado o todos los
mensajes. En el caso de que se aplique sobre un solo mensaje, el servidor responde con una línea
indicando el número del mensaje y el tamaño. Si se refiere a más de un mensaje, el servidor
responde enviando una línea por cada mensaje que incluye el número y tamaño correspondiente. El
final de estas líneas es un punto y seguido por los caracteres #13#10. La sintaxis de este comando
es:
LIST numero_mensaje
NOOP
RETR (Recuperar): permite recuperar o solicitar que el servidor envíe un mensaje determinado.
El mensaje se solicita enviando el número del mensaje a continuación del comando. Este número
de mensaje no puede corresponder a un mensaje con marca de borrado. El servidor responde a la
petición enviando el texto del mensaje, que finaliza cuando le llega al cliente un punto seguido de
los caracteres de retorno de carro/avance de línea (#13#10). La sintaxis del comando es:
RETR numero_mensaje
RSET (Reiniciar): anula la marca de borrado de todos los mensajes en la casilla. No se puede
eliminar la marca de borrado de un mensaje en concreto, tiene que ser de todos. La sintaxis es la
siguiente:
RSET
130
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
STAT (Estado): permite obtener un resumen del contenido de la casilla. El servidor responde a
este comando enviando el número de mensajes que hay en la casilla, sin contar aquellos que están
marcados como borrados, y el volumen o tamaño en bytes de la casilla. Estos dos datos los
devuelve separados por espacios. La sintaxis de este comando es:
STAT
APOP (entrar en el sistema con contraseña encriptada): es una alternativa a los comandos
USER y PASS. El comando APOP necesita de dos parámetros, uno es un identificador de cuenta y
el otro es la clave encriptada. Al conectarse al servidor POP, éste envía una marca de tiempo. Junto
con esta marca de tiempo, se aplica un algoritmo para encriptar la contraseña. Este algoritmo se
encuentra definido en el RFC 1321. Este método de autentificación POP es útil para aquellos
usuarios que se conectan frecuentemente a sus servidores de correo, evitando de esta manera, que
la clave de la cuenta viaje frecuentemente por la red sin encriptar. La sintaxis de este comando es
la siguiente:
TOP: permite al cliente de correo leer la parte del encabezado del mensaje y un numero de líneas
del cuerpo o núcleo del mensaje. Este comando se suele utilizar cuando se desea conocer los
mensajes sin leerlos. La sintaxis de este comando es:
[58]
[59]
Explique brevemente la secuencia de estados en una sesión básica del protocolo POP3.
[60]
Enliste la secuencia de comandos para acceder al buzón, leer un resumen de los mensajes del
buzón, leer el primer mensaje, marcar como leído dicho mensaje y salir de sesión con el protocolo
POP3.
131
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
MIME y Extensión de servicios SMTP son cercanos y complementarios más que estándares
excluyentes [18]. Desde el estándar MIME, se permiten mensajes para ser declarados como
consistentes de datos de 8-bit más que de datos de 7-bit, debido a que los mensajes no pueden ser
transmitidos por agentes SMTP que estrictamente se ajusten a RFC 821(especifica ASCII de 7-
bit).
Cuando un cliente SMTP intenta enviar datos de 8 bits a un servidor que no soporta esa extensión,
el cliente SMTP debe codificar el contenido del mensaje a una representación de 7 bits o retornara
un error permanente del servidor.
RFC 822 define un protocolo de representación de mensaje que considera detalles específicos
sobre la cabecera y cuerpo del mensaje, como texto en EE.UU.-ASCII. El conjunto de
documentos, comúnmente llamado Extensión de correo de Internet multipropósito o MIME,
redefine el formato de mensajes para permitir cuerpos de mensajes textuales y no textuales con un
conjunto de caracteres diferentes a EE.UU.-ASCII de 7 bits.
El protocolo MIME surge por la incapacidad que tiene el RFC 822 para representar todos los datos
que se desean transmitir a través de correo electrónico. Desde un principio RFC 822 define el
formato normal de mensajes textuales en Internet (define sintaxis de cuerpo y cabecera). Su éxito
ha sido tal que se utiliza más allá de los límites de Internet y más que el transporte por Internet
132
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
SMTP, definido por RFC 821. Cuando el formato se ha usado en forma más extensa, se ha
observado un aumento de las limitaciones para la comunidad de usuarios.
RFC 822 especifica un formato para los mensajes de texto, y como tal, no considera mensajes
multimediales que incluyan audio o imágenes. Incluso, en el caso de texto, RFC 822 es inadecuado
para las necesidades de usuarios, cuyos idiomas requieren el uso de un conjunto de caracteres más
rico que EE.UU.-ASCII de 7 bits. Puesto que RFC 822 no especifica mecanismos para correo que
contiene audio, texto de idiomas asiático, vídeo, o el texto de la mayoría de los idiomas europeos,
se necesitan las características técnicas adicionales que proporciona MIME.
Una de las limitaciones notables del sistema de correo basado en RFC 821/822 es que limita la
longitud del mensaje de correo electrónicos a líneas relativamente cortas (Ej. 1000 caracteres o
menos). Esto obliga a los usuarios a convertir cualquier dato no textual a la representación de
caracteres de bytes de 7-bits EE.UU.-ASCII antes de invocar un UA (Agente del Usuario, un
programa con el que los usuarios humanos envían y reciben correo).
Las limitaciones de RFC 822 quedan aún más claras en el momento que se diseñan "Gateways"
para permitir el intercambio de mensajes del correo entre máquinas clientes RFC 822 y máquinas
clientes X.400. X.400 especifica mecanismos para la inclusión de información no textual en los
mensajes del correo electrónicos.
Las normas actuales para la conversión de mensajes X.400 a mensajes RFC 822 especifican que
cualquier contenido no textual X.400 debe ser convertido a un formato especial (IA5Text), de lo
contrario debe ser desechado y debe notificarse al usuario RFC 822 que el desecho ha ocurrido.
La especificación MIME define 5 nuevos campos en la cabecera del mensaje, que se muestran a
continuación junto con la explicación de su valor. Estos campos permiten definir un formato que
posibilita la mezcla de contenidos. Especialmente se define un delimitador para separar
contenidos.
MIME-Version: Indica al agente de usuario receptor del mensaje que esta tratando con un
mensaje MIME. El valor identifica la versión del MIME (actualmente la 1.0). Se considera que
cualquier mensaje que no contenga una cabecera MIME-Versión: es un mensaje de texto que
únicamente contiene código ASCII de 7 bits y se procesa como tal.
Content-Description: El valor contiene una cadena ASCII que especifica el contenido del
mensaje MIME en pocas palabras. Esta cadena es útil para que el destinatario sepa si vale la pena
descodificar y leer el mensaje o no.
Content-Id: Valor que contiene un identificador unívoco del mensaje. Usa el mismo formato que
la cabecera estándar Message-Id.
133
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
7bit: Es la codificación más sencilla. Los caracteres ASCII usan 7 bits y pueden
transportarse directamente mediante el protocolo de correo electrónico, siempre y cuando
ninguna línea exceda 1000 caracteres.
8bit: Igual que la codificación anterior pero los caracteres ASCII usan 8 bits. Esta
codificación viola el protocolo original del correo electrónico de Internet, pero es usado por
algunas partes de Internet que implementan ciertas extensiones al protocolo original. Los
mensajes que usan esta codificación aún deben adherirse a la longitud máxima de linea
estándar.
base64: Los archivos binarios arbitrarios usan 8 bits, pero no respetan el límite de 1000
caracteres por línea. No se da ninguna garantía de que los mensajes en binario llegaran
correctamente, pero mucha gente los envía de todos modos. La manera correcta de
codificar mensajes binarios es usar codificación base64. En este esquema, se dividen
grupos de 24 bits en unidades de 6 bits, enviándose cada unidad como carácter ASCII de 7
bits.
Content-Type: Valor especifica la naturaleza del cuerpo del mensaje. Hay muchísimos valores
distintos, pero todos siguen el formato tipo/subtipo. Observe que el tipo y el subtipo se separan
mediante una diagonal. Ambos, tanto el tipo como el subtipo, deben indicarse explícitamente, pues
no se proporcionan valores predeterminados. Una lista reducida de tipos y subtipos comunes se da
a continuación:
text/plain, text/html: El tipo texto es para texto normal. La combinación text/plain es para
mensajes ordinarios que pueden visualizarse como se reciben, sin codificación ni ningún
procesamiento posterior. Esta opción permite el transporte de mensajes ordinarios en
MIME con sólo unas pocas cabeceras extra. La combinación text/html es para mostrar
paginas web escritas en html.
image/gif, image/jpeg: El tipo image se usa para transmitir imágenes fijas. Hoy día se usan
muchos formatos para almacenar y transmitir imágenes, tanto con compresión como sin
ella. Dos de los subtipos oficiales son GIF y JPEG, pero sin duda hay muchos más.
134
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
En MIME aparece la idea de mandar un mensaje compuesto por múltiples partes, y cada una de
ellas a su vez de múltiples partes. Aparece por tanto una estructura recursiva que permite la
generación de combinaciones complejas de varias partes. Veamos el siguiente ejemplo:
From: mabel@hotmail.com
To: florencia@yahoo.com
Subject: Queria decirte ...
MIME-Version: 1.0
Message-Id: <0704760941.AA00747@abc.com>
Content-Type: multipart/alternative;
boundary=qwertyuiopasdfghjklzxcvbnm
--qwertyuiopasdfghjklzxcvbnm
Content-Type: text/plain
--qwertyuiopasdfghjklzxcvbnm
Content-Type: audio/basic;
directory="tmp";
name="aniversario.snd"
Content-Transfer-Encoding: base64
MIIC1DCCAn6gAwIBAgIBADANBgkqhkiG9w0BAQQFADCBgDELMAkGA1UEBhM
CRVMx
DzANBgNVBAgUBkVzcGHxYTESMBAGA1UEBxMJQ2FzdGVsbG9uMQ0wCwYDV
QQKEwMX
aXN1MR0wGwYDVQQDExRNYW5vbG8gTW9sbGFyIEdhcmNpYTEeMBwGCSqGSIb
3DQEJ
ARYPbW9sbGFyQG5pc3Uub3JnMB4XDTAwMTEyMzA4MTIxOVoXDTAwMTIyMzA
4MTIx
OVowgYAxCzAJBgNVBAYTAkVTM
--qwertyuiopasdfghjklzxcvbnm--
En el mensaje anterior se transmite una felicitación de cumpleaños como texto y como canción.
Observe como la cabecera Content-Type aparece en tres lugares distintos. En el nivel superior, esta
cabecera indica que el mensaje tiene varias partes, y que cada una contiene el mismo mensaje
codificado en diferentes formatos. Las partes están delimitadas por dos guiones seguidos de una
cadena, definida por el usuario, especificada en el parámetro boundary. Los estándares
135
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
recomiendan que esta cadena sea única en el mundo. El final de las distintas partes se marca con
dos guiones seguidos de la cadena boundary seguida de otros dos guiones.
En las dos partes la cabecera Content-Type indica el tipo y el subtipo de la parte. En la primera
parte indica que sigue un texto sin formato en ASCII de 7 bits. En la segunda parte indica que
sigue un archivo de audio. Observe como en esta parte también se requiere una cabecera Content-
Transfer-Encoding para indicar la codificación adecuada para el sonido. Si el receptor tiene
capacidad de audio, el agente de usuario decodificara y ejecutara el archivo de sonido
aniversario.snd.
Ejemplo 1:
From: pepe@pepe.com
Subject: Pruebas-(S)MIME
To: alguno@pepe.com
MIME-Version: 1.0
Content-Type: text/plain
Content-Transfer-Encoding: quoted-printable
Ejemplo 2:
From: pepe@pepe.com
Subject: Pruebas-(S)MIME
To: alguno@pepe.com
MIME-Version: 1.0
Content-Type: multipart/alternative;
boundary=linux.00.sáb.dic..9.13:11:01.CET.2000
--linux.00.sáb.dic..9.13:11:01.CET.2000
Content-Type: text/plain
Content-Transfer-Encoding: quoted-printable
--linux.00.sáb.dic..9.13:11:01.CET.2000
Content-Type: text/html
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline
<html>Alternativa <b>HTML</b>
--linux.00.sáb.dic..9.13:11:01.CET.2000-
Ejemplo 3:
From: pepe@pepe.com
136
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
Subject: Pruebas-(S)MIME
To: alguno@pepe.com
MIME-Version: 1.0
Content-Type: multipart/mixed;
boundary=linux.00.sáb.dic..9.13:25:31.CET.2000
--linux.00.sáb.dic..9.13:25:31.CET.2000
Content-Type: text/plain
Content-Transfer-Encoding: quoted-printable
--linux.00.sáb.dic..9.13:25:31.CET.2000
Content-Type: image/gif;
name="sound2.gif"
Content-Transfer-Encoding: base64
Content-Disposition: inline
R0lGODlhKwAmAPf/AP//////zP//mf//Zv//M///AP/M///MzP/Mmf/MZv/MM//MAP+Z//+Z
YgoK0
sWrab651h9lK8jghUd+stdKID/Jlxgi+NlX32ugRrnCFSjxUd8gO1GaUEPzWWFTgl54MQ
g/VEm
2qkpPIdACFN7tkeqKMSVmBbAJEnZaRiOKF8CEJc4AhY4rtijth0kBhtppguDTAlQTSgV
Fhs+O
Ga0VgXwjGCILZ8TPFSwsV+JTUVY6EkkH54PILFuaNp0+UUTklAyv0fsWxl6BlU8X+
wTyZF
dj5YgkSSXdY7NYY5FF8JFtJQmUWrXxLPRBAQEAOw==
--linux.00.sáb.dic..9.13:25:31.CET.2000-
Ejemplo 4:
From: pepe@pepe.com
Subject: Pruebas-(S)MIME
To: alguno@pepe.com
MIME-Version: 1.0
Content-Type: multipart/mixed;
boundary=linux.00.sáb.dic..9.13:25:33.CET.2000
--linux.00.sáb.dic..9.13:25:33.CET.2000
Content-Type: multipart/alternative;
boundary=linux.11.sáb.dic..9.13:25:33.CET.2000
--linux.11.sáb.dic..9.13:25:33.CET.2000
Content-Type: text/plain
Content-Transfer-Encoding: quoted-printable
Alternativa de texto
--linux.11.sáb.dic..9.13:25:33.CET.2000
137
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
Content-Type: text/html
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline
<html>Alternativa <b>HTML</b>
--linux.11.sáb.dic..9.13:25:33.CET.2000-
--linux.00.sáb.dic..9.13:25:33.CET.2000
Content-Type: image/gif;
name="sonido.gif"
Content-Transfer-Encoding: base64
Content-Disposition: inline
R0lGODlhKwAmAPf/AP//////zP//mf//Zv//M///AP/M///MzP/Mmf/MZv/MM//MAP+Z//+Z
YgoK0
sWrab651h9lK8jghUd+stdKID/Jlxgi+NlX32ugRrnCFSjxUd8gO1GaUEPzWWFTgl54MQ
g/VEm
2qkpPIdACFN7tkeqKMSVmBbAJEnZaRiOKF8CEJc4AhY4rtijth0kBhtppguDTAlQTSgV
Fhs+O
Ga0VgXwjGCILZ8TPFSwsV+JTUVY6EkkH54PILFuaNp0+UUTklAyv0fsWxl6BlU8X+
wTyZF
dj5YgkSSXdY7NYY5FF8JFtJQmUWrXxLPRBAQEAOw==
--linux.00.sáb.dic..9.13:25:33.CET.2000-
Ejemplo 5:
From: pepe@pepe.com
Subject: Pruebas-(S)MIME
To: alguno@pepe.com
MIME-Version: 1.0
Content-Type: multipart/mixed;
boundary=linux.00.sáb.dic..9.13:25:39.CET.2000
--linux.00.sáb.dic..9.13:25:39.CET.2000
Content-Type: text/plain
Content-Transfer-Encoding: quoted-printable
Un texto
--linux.00.sáb.dic..9.13:25:39.CET.2000
Content-Type: image/gif;
name="imagen2.gif"
Content-Transfer-Encoding: base64
Content-Disposition: inline
R0lGODlhKwAnAPf/AP//////zP//mf//Zv//M///AP/M///MzP/Mmf/MZv/MM//MAP+Z//+ZzJ
kAmZ
kAZpkAM5kAAGb//2b/zGb/mWb/Zmb/M2b/AGbM/2bMzGbMmWbMZmbMM2bMAG
aZ/2aZ
zAAAmQAAZgAAM+4AAN0AALsAAKoAAIgAAHcAAFUAAEQAACIAABEAAAD
uAADd
138
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
AAC7AACqAACIf/RAiw4d2uQ/VvlWdFR7uW5HsmlZy55N2269qjwRBcK3gi5tgn4FC5
SrD1w
/uB1XELW8Fvc9mA9/UHXmZ2nqHOgPK4OqhuxHt+GmFYWuJtaYfvh4KJZdIYK05Vf
0ghUW
--linux.00.sáb.dic..9.13:25:39.CET.2000
Content-Type: text/x-vcard;
name="mm.nisu.vcard"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachement;
filename="mm.nisu.vcard"
este es un = attachment
--linux.00.sáb.dic..9.13:25:39.CET.2000-
--linux.00.sáb.dic..9.16:21:34.CET.2000
Content-Type: multipart/mixed;
boundary=linux.11.sáb.dic..9.16:21:34.CET.2000
--linux.11.sáb.dic..9.16:21:34.CET.2000
Content-Type: text/plain
Content-Transfer-Encoding: quoted-printable
--linux.11.sáb.dic..9.16:21:34.CET.2000
Content-Type: image/gif;
name="sound2.gif"
Content-Transfer-Encoding: base64
Content-Disposition: inline
R0lGODlhKwAmAPf/AP//////zP//mf//Zv//M///AP/M///MzP/Mmf/MZv/MM//MAP+Z//+Z
YgoK0
sWrab651h9lK8jghUd+stdKID/Jlxgi+NlX32ugRrnCFSjxUd8gO1GaUEPzWWFTgl54MQ
g/VEm
2qkpPIdACFN7tkeqKMSVmBbAJEnZaRiOKF8CEJc4AhY4rtijth0kBhtppguDTAlQTSgV
Fhs+O
Ga0VgXwjGCILZ8TPFSwsV+JTUVY6EkkH54PILFuaNp0+UUTklAyv0fsWxl6BlU8X+
wTyZF
dj5YgkSSXdY7NYY5FF8JFtJQmUWrXxLPRBAQEAOw==
139
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
--linux.11.sáb.dic..9.16:21:34.CET.2000-
--linux.00.sáb.dic..9.16:21:34.CET.2000
Content-Type: multipart/mixed;
boundary=linux.11295.sáb.dic..9.16:21:37.CET.2000
--linux.22.sáb.dic..9.16:21:37.CET.2000
Content-Type: text/plain
Content-Transfer-Encoding: quoted-printable
--linux.22.sáb.dic..9.16:21:37.CET.2000
Content-Type: image/gif;
name="world2.gif"
Content-Transfer-Encoding: base64
Content-Disposition: inline
R0lGODlhKwAnAPf/AP//////zP//mf//Zv//M///AP/M///MzP/Mmf/MZv/MM//MAP+Z//+ZzJ
kAmZ
kAZpkAM5kAAGb//2b/zGb/mWb/Zmb/M2b/AGbM/2bMzGbMmWbMZmbMM2bMAG
aZ/2aZ
zAAAmQAAZgAAM+4AAN0AALsAAKoAAIgAAHcAAFUAAEQAACIAABEAAAD
uAADd
AAC7AACqAACIf/RAiw4d2uQ/VvlWdFR7uW5HsmlZy55N2269qjwRBcK3gi5tgn4FC5
SrD1w
/uB1XELW8Fvc9mA9/UHXmZ2nqHOgPK4OqhuxHt+GmFYWuJtaYfvh4KJZdIYK05Vf
0ghUW
--linux.22.sáb.dic..9.16:21:37.CET.2000-
--linux.00.sáb.dic..9.16:21:34.CET.2000-
[61]
[62]
Indique concretamente cuales son las mejoras que introduce el protocolo MIME en el contenido de
los mensajes de correo electrónico.
[63]
Indique cual es el objetivo de los campos MIME en una cabecera de correo SMTP.
[64]
Indique en forma resumida como se organizan los campos o partes de un mensaje MIME.
140
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
[65]
--qwertyuiopasdfghjklzxcvbnm
Content-Type: text/plain
--qwertyuiopasdfghjklzxcvbnm
Content-Type: audio/basic;
directory="tmp";
name="aniversario.snd"
Content-Transfer-Encoding: base64
MIIC1DCCAn6gAwIBAgIBADANBgkqhkiG9w0BAQQFADCBgDELMAkGA1UEBhM
CRVMx
DzANBgNVBAgUBkVzcGHxYTESMBAGA1UEBxMJQ2FzdGVsbG9uMQ0wCwYDV
QQKEwMX
aXN1MR0wGwYDVQQDExRNYW5vbG8gTW9sbGFyIEdhcmNpYTEeMBwGCSqGSIb
3DQEJ
ARYPbW9sbGFyQG5pc3Uub3JnMB4XDTAwMTEyMzA4MTIxOVoXDTAwMTIyMzA
4MTIx
OVowgYAxCzAJBgNVBAYTAkVTM
--qwertyuiopasdfghjklzxcvbnm--
[66]
[67]
141
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
El principal objetivo es permitir un método estándar para comunicar entre sí terminales y procesos
orientados a terminal. Está previsto que el protocolo se pueda usar también para comunicaciones
terminal-terminal ("enlace") y comunicaciones proceso-proceso (computación distribuida).
Opciones negociadas
El principio de opciones negociadas tiene en cuenta el hecho de que muchos computadores querrán
proporcionar servicios adicionales a los disponibles en un NVT y muchos usuarios tendrán
terminales sofisticados y querrán disponer de servicios sofisticados en lugar de los mínimos.
La estrategia básica para el uso de opciones es hacer que una parte (o ambas) inicien la petición de
activar alguna opción. El otro lado puede entonces aceptar o rechazar la petición. Si la petición se
acepta, tiene efecto inmediato; si se rechaza, el aspecto asociado de la conexión queda tal y como
se especifica para un NVT. Claramente, una parte siempre puede rehusar activar una opción y
142
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
nunca debe rehusar desactivar alguna opción ya que ambos lados deben estar preparados para
soportar un NVT.
Transmisión de datos
Cuando se usa para acceso remoto de usuarios a un computador (acceso desde un terminal
remoto) a este protocolo se le asigna el puerto servidor 23 (27 en octal).
La comunicación entre cliente y servidor se maneja con órdenes internas, que no son accesibles
por los usuarios. Todas las órdenes internas de Telnet consisten en secuencias de 2 ó 3 bytes,
dependiendo del tipo de orden.
El objetivo primario del protocolo Telnet es la provisión de una interfaz estándar para hosts sobre
una red. Para permitir la conexión entre hosts con distintos sistemas operativos, el protocolo Telnet
define una representación estándar para algunas funciones:
Aplicaciones de Telnet
Terminal virtual
Mediante Telnet es posible crear una sesión de Terminal en un servidor desde un host cliente de tal
manera que se pueda acceder al intérprete de comandos como es la práctica habitual en UNIX o
Linux. En otras palabras, un “usuario” accede a los servicios de un intérprete de comandos.
143
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
En el servidor UNIX existirá un servidor Telnet en el puerto 23 que espera una conexión de algún
cliente Telnet. Una vez establecida la conexión, el servidor solicita la identificación del usuario.
Una vez que este se registra exitosamente, el servidor lo conecta con el intérprete de comandos
respectivo del servidor. A partir de allí, el usuario podrá ejecutar los comandos en el host remoto
como si estuviera trabajando localmente.
Es posible conectarse con Telnet al puerto 110 para peticionar comandos al servidor POP3 como
vemos en el siguiente ejemplo
1.Conectarse:
2.Identificarse:
user nombreDeUsuario
pass contraseña
list
stats
4.Leer un mensaje:
retr mensajeNúmero
top mensajeNúmero númeroDeLíneas
5.Borrar un mensaje:
dele mensajeNúmero
rset
144
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
6.Terminar la sesión:
quit
1. Conectarse:
Telnet servidorSMTP.com 25
2. Saludar:
3. Enviar un mensaje:
4. Añadir cabeceras:
subject: elAsunto
from: miNombre
to: elNombreDelOtro
Este_es_el_mensaje …………….
6.
Terminar la sesión:
quit
[68]
[69]
[70]
145
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
En el mundo actual, en el que la informática gira en torno al concepto de red, el trabajo de los
administradores de sistemas es muy complejo. Su misión consiste en mantener en funcionamiento
recursos tales como encaminadores (routers), concentradores (hubs), servidores, así como cada
dispositivo crítico que conforma la red.
Hay gran cantidad de motivos por los cuales un administrador necesita monitorizar entre otros:
La monitorización de la red es también un buen punto para comenzar el estudio de los problemas
de seguridad.
Por ejemplo, en la gestión de un hub, SNMP podría desconectar automáticamente los nodos que
estén corrompiendo la red, o se podrían establecer alarmas para alertar al administrador de la red
cuando en un dispositivo el tráfico de datos supere el umbral establecido, o se podrían buscar IPs
duplicadas, etc.
En muchos casos, la red de una organización está enlazada mediante costosos enlaces a redes de
área extensa (WAN) o con la Internet, y cuyos costos dependen del volumen de tráfico.
Es muy importante mantener un registro estadístico del tráfico que circula por estos enlaces. Ésta
situación es bastante común en los enlaces X.25, y son todavía de uso corriente. La tarificación de
este tipo de líneas se realiza en función del número de paquetes enviados y recibidos.
Otros tipos de enlaces, como los punto a punto (Frame relay), son de tarifa plana. En éstos la
compañía telefónica ha de garantizar un ancho de banda, el cual es importante monitorizar.
Gestión de fallos: trata sobre la gestión de dispositivos para reaccionar frente a fallos producidos.
146
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
Entidad gestora: es una aplicación con control humano que supervisa y controla el desempeño de
los dispositivos que con su comportamiento modifican el comportamiento de la red.
Dispositivo gestionado: Son los dispositivos de red sensibles a la gestión centralizada por el
gestor.
En la figura se muestra una red con los dispositivos gestionados y los gestores.
La descripción anterior sobre gestión de red es bastante global y se aplica a varios estándares de
gestión de redes. A fines de la década de los 80 apareció el protocolo SNMP con el propósito de
147
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
ser independiente del hardware, de la plataforma y de las aplicaciones. En las siguientes sesiones
trataremos específicamente el protocolo SNMP y otros estándares relacionados.
El entorno de gestión estándar de Internet se ocupa de las siguientes cuestiones, mediante normas
que interactúan pero que se mantien independientes entre si, y al mismo tiempo se aplican a
sistemas heterogéneos que interactúan:
Definición de los objetos de gestión de red: también conocidos como objetos MIB. Los
elementos que referencian la gestión, son objetos que se almacenan en una base de datos virtual
conocida como base de información de gestión (MIB).
Cada objeto contiene información de distinto tipo que permite medir o conocer el estado de un
dispositivo como también actuar sobre él para ejercer el control remoto.
Los objetos MIB definen la información de gestión que mantiene un dispositivo. MIB define la
información que intercambian gestores y gestionados. Los objetos que están relacionados se
agrupan en módulos. Existen módulos estándar definidos por normas y módulos propietarios
definidos por fabricante de dispositivos.
Es una base de datos distribuida que almacena los objetos administrables de la red. Estos objetos
pueden ser consultados o modificados mediante el protocolo SNMP. Los objetos se especifican
utilizando la construcción SMI OBJECT-TYPE, y son agrupados en módulos utilizando el
constructor MODULE-IDENTITY.
La IETF se ocupa de definir módulos para dispositivos genéricos de red y de esa forma generó
alrededor de 100 módulos MIB basado en los estándares.
Un problema que se tuvo que resolver es referente al nombre de los objetos para evitar todo tipo de
ambigüedad en sistemas heterogéneos que interactúan. Para resolver dicho problema se adoptó el
entorno de definición de objetos de la ISO denominado ASN.1 o Notación de Sintaxis Abstracta
Uno. ASN.1 es un lenguaje de definición de objetos que complementa al lenguaje SMI
fundamentalmente en definiciones de transferencia de objetos y en la adopción de un esquema de
nombres de objetos universal que puede ser adoptado por cualquier sistema. De esta forma se
obtiene la solución para el caso en que interactúen sistemas heterogéneos. En la siguiente figura se
representa el árbol de definición de objetos ASN.1.
148
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
El espacio de nombres ISO (sub-árbol) está situado dentro del espacio de nombres SMI/ASN.1
junto con otros árboles de otros estándares de otras organizaciones. Dentro del espacio de nombres
ISO hay una rama específica para la información MIB. Dentro de esta rama MIB, los objetos están
a su vez jerarquizados en su-árboles para los distintos protocolos y aplicaciones, de forma que esta
información puede representarse unívocamente.
149
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
En la figura se puede apreciar el espacio de nombres del MIB del TCP/IP, que está situado dentro
del árbol SMI/ASN.1, justo bajo el espacio del sub-árbol "mgmt". La jerarquía también específica
el número para cada nivel.
Lo que se representa en la parte inferior del árbol de la figura anterior, son los módulos MIB.
Cada nodo contenedor de módulos está administrado por el IETF para el caso de módulos IETF, o
por empresas propietarias que homologan sus respectivos objetos que permiten la gestión de sus
productos. En la siguiente figura se muestran algunos módulos MIB definidos por la IETF.
En la siguiente figura se puede apreciar la rama del árbol que corresponde a Internet.
Vemos a la rama de módulos privados en donde se puede apreciar el nodo asignado a la empresa
CISCO.
150
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
Volviendo al caso específico de los módulos MIB, podemos agregar que la versión MIB-II se
encuentra definida en el RFC-1213. En ella se clasifica la información que un dispositivo puede
mantener, en diez categorías. Cualquier variable ha de estar en una de estas categorías.
Categoría Información
system Información del host del sistema de encaminamiento
interfaces Información de los interfaces de red
addr-translation Información de traducción de direcciones
ip Información sobre el protocolo IP
icmp Información sobre el protocolo ICMP
tcp Información sobre el protocolo TCP
udp Información sobre el protocolo UDP
egp Información sobre el protocolo (Exterior Gateway)
transmission No hay objetos definidos para este grupo
snmp Información de actividad SNMP
A continuación se resumen algunos ejemplos de objetos de cada grupo. La lista completa está
definida en el RFC 1213.
• Grupo de sistema
o sysDescr - Descripción completa del sistema(version, HW, OS)
o sysObjectID - Identificación que da el distribuidor al objeto
o sysUpTime - Tiempo desde la última reinicialización
o sysContact - Nombre de la persona que hace de contacto
o sysServices - Servicios que ofrece el dispositivo
• Grupo de interfaces
o ifIndex - Número de interfaz
o ifDescr - Descripción de la interfaz
o ifType - Tipo de la interfaz
o ifMtu - Tamaño máximo del datagrama IP
o ifAdminisStatus - Status de la interfaz
o ifLastChange - Tiempo que lleva la interfaz en el estado actual
o ifINErrors - Número de paquetes recibidos que contenían errores
o ifOutDiscards - Número de paquetes enviados y desechados
• Grupo de traducción de direcciones
o atTable - Tabla de traducción de direcciones
o atEntry - Cada entrada que contiene una correspondencia de dirección de red a
dirección física
o atPhysAddress - La dirección física dependiente del medio
o atNetAddress - La dirección de red correspondiente a la dirección física
• Grupo IP
o ipForwarding - Indicación de si la entidad es una pasarela IP
o ipInHdrErrors - Número de datagramas de entrada desechados debido a errores en
sus cabeceras IP
151
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
Esta no es la definición completa del MIB pero sirve de ejemplo de los objetos de cada grupo.
La definición de un elemento concreto MIB implica la especificación del tipo de dato que puede
contener. Normalmente, los elementos de un MIB son enteros, pero también pueden almacenar
cadenas de caracteres o estructuras más complejas como tablas.
152
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
Los objetos administrables son los nodos hoja del árbol MIB. Un objeto puede tener más de una
instancia (valor), como por ejemplo un objeto tabla. Para referirse al valor contenido en un objeto,
se ha de añadir el número de la instancia. Cuando sólo exista una instancia del objeto, está es la
instancia cero.
Por ejemplo, el objeto ifNumber de la categoría "interfaces" es un entero que representa el número
de interfaces de red presentes en el dispositivo; mientras el objeto ipRoutingTable de la categoría
"ip" contiene la tabla de encaminamiento del dispositivo.
Hay que utilizar el número de la instancia para leer el valor de un objeto. En este caso, el número
de interfaces presentes en un encaminador puede ser observado mediante la instancia ifNumber.0.
En el caso de ser un objeto tabla, se ha de utilizar el índice a la tabla como último número para
especificar la instancia (fila de la tabla).
Es importante constatar que la mayor parte del software necesita el punto raíz (.) para localizar el
objeto en el MIB. Si no se incluye el punto raíz, se asume que el path es relativo desde
.iso.org.dod.internet.mgmt.mib-2.
• .iso.org.dod.internet.mgmt.mib-2.interfaces.ifnumber
• el equivalente numérico: .1.3.6.1.2.1.2.1
• la instancia es: .iso.org.dod.internet.mgmt.mib-2.interfaces.ifnumber.0
• el equivalente numérico: .1.3.6.1.2.1.2.1.0
SMI es un lenguaje que se utiliza para definir la información de gestión (objetos MIB) de una red.
Este lenguaje es necesario para asegurar que la sintaxis y semántica de los datos de gestión de la
red estén bien definidos y no sean ambiguos. SMI define primero los tipos de datos básicos y luego
las construcciones de las definiciones de objetos MIB.
La RFC 2578 especifica los tipos de datos básicos de SMI. También SMI adopta las definiciones
de ASN.1. En la siguiente tabla, a modo de ejemplo, se muestran los 11 tipos de datos básicos de
la RFC 2578.
Tipo de datos
INTEGER
OCTET STRING
Counter
OBJECT IDENTIFIER
NULL
SEQUENCE
SEQUENCE OF
IpAddress
153
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
NetworkAddress
Gauge
TimeTicks
Opaque
Además de los tipos básicos, el lenguaje SMI define objetos mediante construcciones de alto nivel.
A modo de ejemplo se indica a continuación la definición del objeto snmpORLastChange
mediante el constructor OBJECT-TYPE.
snmpORLastChange OBJECT-TYPE
SYNTAX TimeStamp
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"El valor de sysUpTime en el momento
del cambio más reciente en el valor
o estado de cualquier instancia de
snmpORID."
fizbin MODULE-IDENTITY
LAST-UPDATED "9210070433Z"
ORGANIZATION "IETF SNMPv2 Grupo de trabajo"
CONTACT-INFO
" Marshall T. Rose
Postal: Dover Beach Consulting, Inc.
420 Whisman Court
Mountain View, CA 94043-2186,
US
Tel: +1 415 968 1052
Fax: +1 415 968 2510
E-mail: mrose@dbc.mtview.ca.us "
DESCRIPTION
"Módulo MIB para entidades SNMPv2."
REVISION "9210070433Z"
DESCRIPTION
"Versión inicial de este módulo MIB."
::= { snmpModules 1 }
El estándar ASN.1
ASN.1 (Abstract Syntax Notation number One) es un estándar internacional que tiene como
objetivo especificar los datos usados en protocolos de la telecomunicación. Es un lenguaje
computacional de gran alcance y complejo: fue diseñado para modelar eficientemente la
comunicación entre los sistemas heterogéneos.
La Notación de Sintaxis Abstracta Uno (ASN.1) es una notación que se utiliza para describir los
mensajes que se intercambian entre si los programas de aplicación. Proporciona una descripción
154
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
del alto nivel que libera a los diseñadores de protocolos de tener que centrarse en los detalles de los
bits y bytes del mensaje.
Inicialmente describían los mensajes de E-mail dentro de los protocolos de ISO (Open Systems
Interconnection). ASN.1 ha sido adoptado desde entonces para el uso por una amplia gama de
otros usos, por ejemplo en la gestión de la red, E-mail seguro, telefonía celular, control del tráfico
aéreo, y voz y vídeo sobre el Internet.
ASN.1 define las reglas de codificación estandardizadas que describen los bits y bytes de los
mensajes, mientras están en tránsito entre los programas que se comunican.
Los documentos formales de los estándares en ASN.1 y sus reglas de codificación son publicados
por el International Telecommunications Union Telecommunications (ITU-T) y por el
International Standards Organization (ISO) / International Electrotechnical Commission (IEC).
Aunque los estándares son muy directos y exactos en sus definiciones, no son fáciles de leer.
El protocolo SNMP
El participante principal del sistema de gestión de red es el protocolo llamado Simple Network
Management Protocol (SNMP). Diseñado en los años 80, su principal objetivo fue el integrar la
gestión de diferentes tipos de redes mediante un diseño sencillo y que produjera poca sobrecarga
en la red.
SNMP opera en el nivel de aplicación, utilizando el protocolo de transporte UDP de TCP/IP, por lo
que ignora los aspectos específicos del hardware sobre el que funciona. La gestión se lleva a cabo
a nivel de IP, por lo que se pueden controlar dispositivos que estén conectados en cualquier red
accesible desde la Internet, y no únicamente aquellos localizados en la propia red local.
El protocolo SNMP está compuesto por dos elementos: el agente (agent), y el gestor (manager). Es
una arquitectura cliente-servidor, en la cual el agente desempeña el papel de servidor y el gestor
hace el de cliente.
El agente es un programa que ha de ejecutase en cada dispositivo de red que se desea gestionar o
monitorizar. Ofrece un interfaz a todos los elementos que se pueden configurar. Estos elementos se
almacenan en unas estructuras de datos jerárquicos, llamadas "Management Information Base"
(MIB).
Vemos que en cada dispositivo que interviene en la administración consta de una base de datos
MIB. También notamos la presencia de un gestor intermedio que se ocupa de gestionar una parte
de la red para descentralizar la función de gestión. Sin embargo dicho gestor es a su vez gestionado
por el gestor de mayor jerarquía que se muestra en la parte superior de la figura.
Hay un comando especial en SNMP, llamado trap, que permite a un agente enviar datos que no
han sido solicitados de forma explícita al gestor, para informar de eventos tales como: errores,
fallos en la alimentación eléctrica, etc.
En esencia, el SNMP es un protocolo muy sencillo puesto que todas las operaciones se realizan
bajo el paradigma de carga-y-almacenamiento (load-and-store), lo que permite un juego de
comandos reducido.
Un gestor puede realizar sólo dos tipos diferentes de operaciones sobre un agente: leer o escribir
un valor de una variable en el MIB del agente.
La posibilidad de ampliación del protocolo, está directamente relacionado con la capacidad del
MIB de almacenar nuevos elementos. Si un fabricante quiere añadir un nuevo comando a un
dispositivo, como puede ser un encaminador, tan sólo tiene que añadir las variables
correspondientes a su base de datos (MIB).
Casi todos los fabricantes implementan versiones agente de SNMP en sus dispositivos:
encaminadores, hubs, sistemas operativos, etc.
• GetRequest: Recuperar los valores de un objeto del MIB. Del gestor al agente.
• GetNextRequest: Obtener la siguiente instancia de una lista. Del gestor al agente.
• SetRequest: Alterar los valores de un objeto del MIB. Del gestor al agente.
• InformRequest: Pedir información a otro gestor. De gestor a gestor.
• GetBulkRequest: Obtener múltiples datos de una tabla. Del gestor al agente.
• GetResponse: Respuesta de GetRequest, GetNextRequest, GetBulkRequest,
InformRequest y SetRequest.
• Trap: Capacidad de los elementos de red para generar eventos como la inicialización.,
reinicio o fallo en el enlace del MA. Hay siete tipos de traps definidos en el RFC 1157:
coldStart, warmStart, linkDown, linkUp, authenticationFailure, egpNeighborLoss y
enterpriseSpecific.
En la figura se muestra el formato de un mensaje SNMPv1 como ejemplo. Los campos varían
según el tipo de mensaje.
La seguridad en SNMP
SNMPv1 ofrece muy poco soporte para la autentificación. Tan sólo ofrece el esquema de dos
palabras clave (two-passwords). La clave pública permite a los gestores realizar peticiones de
valores de variables, mientras que la clave privada permite realizar peticiones de escritura.
157
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
A estas palabras clave se les llama en SNMP communities. Cada dispositivo conectado con una red
gestionada con SNMP, ha de tener configuradas estas dos communities.
Es muy común tener asignando por defecto el valor "public" al community público, y "private" al
privado. Por lo que es muy importante cambiar estos valores para proteger la seguridad de tu red.
[71]
[72]
[73]
Explique en forma resumida los elementos que intervienen en una gestión de red bajo protocolo
TCP/IP.
[74]
Explique con detalle, lo que Ud entiende por objeto de gestión de red en una administración
SNMP.
[75]
[76]
[77]
158
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
159
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
Desde cualquier parte del mundo conectada a Internet, se puede localizar cualquier zona remota
mediante la navegación del árbol DNS posibilitada por las consultas iterativas.
11)
Un resolver realiza una consulta recursiva cuando espera que el servidor a quien consulta le
resuelva totalmente la consulta o le devuelva un código de error en caso contrario. Una consulta
iterativa a un servidor DNS le permite navegar el árbol DNS desde un punto de este, hacia abajo.
Siempre es posible comenzar desde un root-server para acceder a cualquier zona del árbol.
12)
El servicio DNS es estático en el sentido de que los archivos de zona deben actualizarse
manualmente. Dicha tarea está a cargo de personas autorizadas que se conocen como
administradores DNS.
DDNS permita la actualización de las zonas en una forma automática. La actualización la lleva a
cabo la computadora que posee el cliente DNS que debe actualizar su registro en dicha zona. Si
dicha computadora es a su vez cliente DHCP, puede acordar con el servidor DHCP para que sea
este el que lo represente en la actualización en el servidor DNS.
13)
Para la transferencia de datos entre computadoras de la misma administración usa el mecanismo
conocido como Transaction Signatures (TSIG) que consiste en definir una clave secreta que debe
ser compartida entre transmisor y receptor. Existen herramientas que permiten generar las claves.
La distribución de las claves debe realizarse mediante medios extraños a DNSSEC por el
momento.
Para proteger a los datos almacenados y su transferencia a otros servidores con los que no tiene
una relación de confianza, realiza una firma digital a las zonas, para proporcionar autenticación e
integridad mediante criptografía de clave pública.
14)
Consiste en un par de claves privada y pública. Con la clave privada que se debe guardar en un
lugar secreto, se firman digitalmente los registros de recursos de una zona DNS. Con la clave
pública, que se publicita en la misma zona en un registro de tipo KEY, se comprueban las firmas
digitales de los recursos. Dichas firmas digitales también se almacenan en la zona, en registros de
tipo SIG.
15)
Consiste en un par de claves privada y pública. Con la clave privada se firma digitalmente la clave
ZSK y la clave pública KSK se publicita en la zona en un registro de tipo KEY.
También se almacena la clave pública KSK en la zona padre, donde se almacena en un registro de
tipo DS. Si se tiene confianza en la zona padre, se puede confiar en dicho registro DS y de esa
forma se confía en la clave KSK que a su vez permite confirmar la clave ZSK que finalmente
permite confirmar las firmas digitales de todos los registros de recurso de la zona.
Si no se tiene confianza en la zona padre, se debe acceder a una zona de jerarquía superior donde
se tenga confianza y desde allí navegar hacia abajo, estableciendo confianzas temporarias con las
zonas inferiores mediante el procedimiento descrito anteriormente, hasta alcanzar la zona que
contiene el recurso que se desea comprobar. La zona de la cual confiamos su KSK
permanentemente, se denomina punto de acceso a la cadena de confianza.
16)
Para firmar digitalmente una zona debemos disponer en primer lugar la zona DNS convencional y
el par de claves ZSK. El paso siguiente consiste en ejecutar una herramienta como por ejemplo
dnssec, que toma ambos elementos y genera la zona firmada. Dicha zona DNSSEC contiene los
registros de tipo KEY, SIG y NXT como también las claves públicas asociadas a dicha zona.
17)
160
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
Una rotación de claves ZSK consiste en el cambio de clave ZSK (por razones de seguridad) y los
procedimientos necesarios para mantener vigentes las claves vieja y nueva, de tal manera que los
recursos firmados con cualquiera de las claves permanezcan vigentes durante el tiempo de vida de
dichos recursos.
18)
El servidor “DNS de reenvío / resolver DNSSEC”, permite adquirir datos DNS seguros y
proporcionárselos a los clientes que son resolvers comunes que no trabajan con DNSSEC. En la
figura se muestra la ubicación de dicho servidor.
19)
Un cliente DNS es una computadora que tiene configurado su “resolver” para localizar a un
servidor DNS por defecto.
20)
Configurar a un servidor DNS requiere, además de los siguientes pasos básicos:
Se deben realizar las siguientes definiciones mínimas en algún archivo o base de datos de
configuración de la aplicación servidora DNS:
161
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
21)
DHCP (Dynamic Host Configuration Protocol) son las siglas que identifican a un protocolo
empleado para que los hosts (clientes) en una red puedan obtener su configuración TCP/IP en
forma dinámica a través de un servidor. Los datos así obtenidos pueden ser: la dirección IP, la
máscara de red, la dirección de broadcast, las características del DNS, entre otros.
22)
Básicamente el servicio DHCP/BOOTP funciona de la siguiente forma. Existe un programa
servidor en un host de la red que escucha las solicitudes de los clientes y que en su configuración
almacena tablas de posibles direcciones IP a otorgar además del resto de la información del
protocolo. Cuando un cliente requiere del servicio envía una solicitud en forma de broadcast a
través de la red.
Todos los servidores alcanzados por la solicitud responden al cliente con sus respectivas
propuestas, este acepta una de ellas haciéndoselo saber al servidor elegido, el cual le otorga la
información requerida. Esta información se mantiene asociada al cliente mientras este no desactive
su interfaz de red (posiblemente porque se apague la máquina) o no expire el plazo del ``contrato''
(lease time).
El plazo del ``contrato'' o concesión es el tiempo en que un cliente DHCP mantiene como propios
los datos que le otorgó un servidor. Este se negocia como parte del protocolo entre el cliente y el
servidor. Una vez vencido el plazo del contrato el servidor puede renovar la información del
cliente, fundamentalmente su dirección IP, y asignarle otra nueva o extender el plazo, manteniendo
la misma información. El cliente puede solicitar también la renovación o liberación de sus datos. Si
el cliente no renueva a término, la dirección IP asignada será liberada y podrá ser asignada a otro
cliente DHCP.
23)
Un ámbito es un conjunto de definiciones de configuración, donde fundamentalmente se define el
intervalo consecutivo de direcciones IP de una red o rango de direcciones. Normalmente los
ámbitos se asocian a una subred física de la red a la que se ofrecen los servicios DHCP. Los
ámbitos proporcionan el medio principal para que el servidor administre la distribución y
asignación de direcciones IP, así como los parámetros de configuración relacionados, a los clientes
de la red.
24)
El computador Agente relé DHCP es un intermediario con protocolo Bootstrap (BOOTP) que re-
transmite mensajes en Protocolo DHCP entre los clientes DHCP y los servidores DHCP ubicados
en distintas redes IP. De esta forma es posible que clientes DHCP emitan su solicitud por difusión
y esta sea retransmitida a otra red mediante el agente de distribución (rele), para alcanzar
finalmente al servidor DHCP. En los segmentos de red IP que contienen clientes DHCP, se
requiere un servidor DHCP o un equipo que funcione como Agente relé DHCP. Normalmente se
configura el agente de distribución DHCP en los ruteadores que comunican las redes con clientes
DHCP.
25)
Se recomienda la siguiente implementación de agente relé en una red DHCP enrutada. Utiliza dos
servidores DHCP que están conectados a dos subredes diferentes.
162
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
26)
Las opciones de configuración DHCP básicas son las siguientes:
• Dirección de subred
• Máscara de subred
• Dirección IP del ruteador por defecto
• Dirección IP del servidor DNS por defecto
• Nombre del dominio
• Tiempo de concesión
27)
El cliente DHCP puede actualizar dinámicamente a un servidor DDNS (DNS Dinámico) o puede
negociar con el servidor DHCP para que sea este el que registre dinámicamente al cliente en
servidor DDNS.
28)
163
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
30)
En la misma conexión TCP se pueden enviar varios objetos entre el servidor y el cliente. Es la
situación por defecto en la versión HTTP/1.1. Mediante una conexión se transfieren todos los
objetos de la página.
31)
Son un conjunto de variables que se incluyen en los mensajes HTTP, para modificar su
comportamiento o incluir información de interés. En función de su nombre, pueden aparecer en los
requerimientos de un cliente, en las respuestas del servidor o en ambos tipos de mensajes. El
formato general de una cabecera es:
164
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
165
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
43)
Se definen los siguientes modos de transferencia de datos en el protocolo FTP:
Modo flujo: Los datos se transmiten como un flujo de bytes. No hay ninguna restricción en el tipo
de representación usado; se permiten estructuras de registro.
Modo bloque: El archivo se transmite como una serie de bloques de datos precedidos por uno o
más bytes cabecera.
Modo comprimido: Hay tres clases de información a enviar: datos normales, enviados en una
cadena de bytes; datos comprimidos, formados por repeticiones o relleno; e información de
control, enviada en una secuencia de escape de dos bytes.
44)
45)
166
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
167
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
48)
• Encabezado ("Header")
• Cuerpo del mensaje
• Archivos adjuntos ("Attachment")
49)
HELO eafit.edu.ar
MAIL FROM: usuario@eafit.edu.ar
RCPT TO: userst@dominio.subdominio (especifica el destino)
DATA
Hola como estas, esta es una prueba de
correo electrónico.
bla, bla, bla, ...
.
50)
1. Limitar el número de conexiones entrantes
2. Control de acceso de conexiones entrante en el puerto 25
3. Restricciones de retransmisión (Relay)
4. Seguridad saliente para establecer conexión con otros servidores
5. Nombre de dominios que son locales para este servidor
6. Host inteligente (“smart host”)
7. Servidores SMTP de reenvío para mensajes de dominios remotos
8. Ruteo
• Al host inteligente
168
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
169
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
58)
El objetivo del POP3 es obtener correo electrónico del buzón remoto y almacenarlo en la maquina
local del usuario para su lectura posterior. Se emplea principalmente en conexiones con MODEM
en las que el tiempo de conexión cuesta dinero. Es un protocolo mucho más simple que IMAP.
Inicialmente, el equipo servidor inicia el servicio POP3 escuchando el puerto TCP 110. Cuando un
equipo cliente quiere hacer uso del servicio, establece una conexión TCP con el equipo servidor.
Cuando la conexión se ha establecido, el servidor POP3 envía un saludo. El cliente y el servidor
POP3 a partir de entonces intercambian órdenes y respuestas (respectivamente) hasta que se cierre
o interrumpa la conexión.
59)
Una sesión POP3 pasa por varios estados durante su periodo de vida. Una vez abierta la conexión
TCP y tras enviar el servidor POP3 el saludo, la sesión entra en la fase de AUTORIZACIÓN. En
esta fase, el cliente debe identificarse ante el servidor POP3.
Una vez que el cliente lo realiza con éxito, el servidor adquiere los recursos asociados con el buzón
del cliente, y la sesión entra en la fase de TRANSACCIÓN. En esta fase, el cliente solicita la
actuación al servidor POP3.
Tras el envío por el cliente de la orden QUIT, la sesión entra en la fase de ACTUALIZACIÓN.
En esta fase, el servidor POP3 libera cualquier recurso adquirido durante la fase de
TRANSACCIÓN, y dice adiós. En ese momento se cierra la conexión TCP.
60)
1. Abrir conexión en el puerto 110
2. USER nombre (indicar el nombre de una cuenta de correo)
3. PASS password (indicar la contraseña de la cuenta)
4. STAT (pide el resumen del mailbox)
5. LIST (pide el listado de los mensajes)
6. RETR 1 (solicita el mensaje 1)
7. DELE 1 (marca al mensaje 1 como eliminado)
8. QUIT (cierra la sesión)
9. Cierre de la conexión
61)
Este protocolo, especifica un mecanismo para codificar texto y datos binarios dentro de los límites
del desarrollo de correo electrónico. Pero también es adoptado por otros servicios que trabajan con
contenido multimedial como el protocolo HTTP.
62)
Permite incluir en un mismo mensaje, los siguientes tipos de contenido:
• Mensajes en idiomas con acentos (por ejemplo español, francés y alemán).
• Mensajes en idiomas sin alfabetos (por ejemplo, chino y japonés).
• Mensajes que no contienen texto (por ejemplo, imágenes, audio y video).
• Mensajes combinados de los anteriores (por ejemplo texto, una foto y una canción).
63)
La especificación MIME define 5 campos en la cabecera del mensaje. Estos campos permiten
definir un formato que posibilita la mezcla de contenidos. Especialmente se define un delimitador
para separar contenidos.
64)
En MIME aparece la idea de mandar un mensaje compuesto por múltiples partes, y cada una de
ellas a su vez de múltiples partes. Aparece por tanto una estructura recursiva que permite la
generación de combinaciones complejas de varias partes.
65)
boundary=qwertyuiopasdfghjklzxcvbnm
170
Autor: Ing. Oscar R. Espeche
Unidad 6: Servicios y protocolos de aplicación Informática VI
66)
--qwertyuiopasdfghjklzxcvbnm
67)
--qwertyuiopasdfghjklzxcvbnm--
68)
El principal objetivo es permitir un método estándar para comunicar entre sí terminales y procesos
orientados a Terminal (interactivos). Está previsto que el protocolo se pueda usar también para
comunicaciones terminal-terminal ("enlace") y comunicaciones proceso-proceso (computación
distribuida).
69)
Un NVT es un dispositivo imaginario que proporciona una representación normalizada intermedia
de un terminal real. Esto elimina la necesidad para los computadores "servidor" y "usuario" de
guardar información de las características del terminal del otro y de las convenciones para
manejarlo. Ambos mapean (relacionan) las características del dispositivo local para que a través de
la red parezca un NVT y ambos pueden asumir un mapeado similar en el otro extremo.
El computador "usuario" es aquel al que el terminal físico está normalmente conectado y el
computador "servidor" es el que normalmente proporciona algún servicio. Desde otro punto de
vista, aplicable incluso en comunicaciones terminal-terminal o proceso-proceso, el computador
"usuario" es aquel que inicia la comunicación donde se encuentra el usuario que interactúa con el
servidor.
70)
Mediante Telnet es posible crear una sesión de Terminal en un servidor desde un host cliente de tal
manera que se pueda acceder al intérprete de comandos como es la práctica habitual en UNIX o
Linux. En otras palabras, un “usuario” accede a los servicios de un intérprete de comandos. En la
figura siguiente se representa esta situación.
71)
Hay gran cantidad de motivos por los cuales un administrador necesita monitorizar entre otros:
esquema jerárquico de nombres adoptado por SMI. Podemos decir que cumple la función de la
capa de presentación del modelo OSI para una gestión SNMP.
173
Autor: Ing. Oscar R. Espeche