Document

Anuncio
Redes de Computadores
Jorge Baier A. y Álvaro Soto
Departamento de Ciencia de la Computación
Escuela de Ingenierı́a
Pontificia Universidad Católica de Chile
[jabaier,asoto]@ing.puc.cl
Sistema de Nombres de Dominios
Hasta el momento hemos visto que la única forma de transferir información
a un host en Internet es a través de su número IP.
Sin embargo, rara vez uno se refiere a las máquinas mediante su número IP.
En vez de números binarios se usan string en ASCII como por ejemplo
www.google.com para nombrar un host.
Para poder obtener el número IP de un host dado su nombre, se utiliza el
sistema de nombres de dominios, DNS4(Domain Name System).
Este servicio es prestado por ciertos servidores de Internet llamados servidores de nombres (DNS servers).
4
DNS está descrito en los RFCs 1034 y 1035.
 2003 Jorge Baier Aranda, PUC
45
En términos simples, cuando una máquina quiere saber el número IP de
una máquina dado su nombre, entrega el nombre a un subsistema llamado
resolvedor (resolver ).
Mediante una conexión TCP/IP, el resolver consulta al servidor de nombres
y éste retorna el número correspondiente.
 2003 Jorge Baier Aranda, PUC
46
El espacio de nombres del DNS
El espacio de nombres de DNS está compuesto por todos los nombres
asignados a máquinas en Internet.
El espacio de nombres del DNS es un espacio jerárquico, en el cual se definien cientos de dominios.
La siguiente figura muestra algunos de ellos.
Genéricos
com
edu
net
asignados a países
mil
org
cl
biz
us
jp
puc
baier
info
nl
ac
aero
ing
co
mat
Top level domains (TLDs)
 2003 Jorge Baier Aranda, PUC
47
Los hijos del primer nivel son los dominios del nivel superior o TLDs (Top
Level Domains).
Estos dominios son asignados por la ICANN (Internet Corporation for Assigned Names and Numbers)
El dominio es la parte del nombre del host que va después del punto, ası́, el
dominio de charlie.puc.cl, es puc.cl, que es, a su vez un subdominio de
cl.
Sin embargo, se acostumbra a decir para este caso que el dominio es
puc.cl.
Existen dos tipos de dominios TLDs: los genéricos y los asignados a paı́ses.
Algunos de éstos son restringidos y otros no.
 2003 Jorge Baier Aranda, PUC
48
Entre los genéricos destacan 5:
Dominio
.com
.edu
.net
.org
.info
.biz
.aero
Destino
Organizaciones comerciales
Organizaciones educacionales
Proveedores de servicios de red
Organizaciones sin fines de lucro
Organizaciones comerciales
Organizaciones comerciales
Organizaciones aeronáuticas
¿Restringido?
×
√
×
×
×
√
√
El espacio de nombres se almacena en una base de datos distribuida.
Un servidor de nombres no conoce todos los nombres que se usan en Internet, sino que sólo un subconjunto de éstos.
Veremos más adelante cómo es posible consultar esta base de datos.
5
El dominio biz fue aprobado en mayo de 2001
 2003 Jorge Baier Aranda, PUC
49
Registros de Recursos
Cada dominio en Internet representa a un nodo en el árbol del espacio de
nombres.
Cada uno de estos nodos, a su vez, debe ser asignado a un servidor denombres primario, que almacena un conjunto de registros de recursos.
También se almacenan réplicas de estos registros en servidores de nombres secundarios.
Un registro de recursos contiene información que describe a un dominio.
Ésta se representa a través de una tupla:
[Nombre Dominio] [Clase] [Tipo] [Valor]
Donde:
Nombre de Dominio es el nombre del dominio.
Clase: Indica la clase de información. En la práctica vale siempre IN, que
corresponde a “información de Internet”.
 2003 Jorge Baier Aranda, PUC
50
Tipo: Indica qué tipo de registro es. En la siguiente tabla se muestran los
tipos más importantes:
Tipo
Descripción
Valores
SOA
Start of Authority
A
MX
Número IP del host
Manejador de email (mail exchanger)
NS
Servidor de Nombres
Parámetros de esta zona
Número de 32 bits
Prioridad y dominio que aceptará el email para
el host/dominio
Nombre del servidor de nombres
para este dominio.
Valor: Valor que corresponde al registro. Generalmente es un nombre o una
dirección IP.
 2003 Jorge Baier Aranda, PUC
51
Dentro de los parámetros SOA se encuentran:
Refresh : Tiempo sugerido al servidor de nombres secundarios para que
actualice sus registros.
TTL : Si el registro es almacenado por un servidor DNS (cached) entonces este es el tiempo máximo permitido para almacenar un registro debe
hacer.
Otro de los registros importantes es el MX, el cual indica el número IP del
servidor de nombres que maneja los correos de ese dominio.
 2003 Jorge Baier Aranda, PUC
52
A modo de ejemplo, a continuación se muestra la configuración del servidor
de nombres para el dominio baier.cl.
; Database file netred.cl.dns for houston.netred.cl zone.
;
Zone version: 5
;
$TTL 3600 ;
@
;
;
@
@
;
;
@
IN
SOA
houston.netred.cl.
2001051301 ; serial
1201 ; refresh
600 ; retry
604800 ; expire
3600 ; default_ttl
)
Zone NS records
IN
IN
NS
NS
dns.netred.cl.
dns2.netred.cl.
Zone MX records
IN
MX
10
A
A
A
A
A
127.0.0.1
200.27.104.35
200.27.104.36
200.27.104.35
200.27.104.36
;
;
; Zone records
;
localhost
dns
dns2
ns
ns2
IN
IN
IN
IN
IN
 2003 Jorge Baier Aranda, PUC
(
mail.netred.cl.
53
@
www
mail
ftp
pop
IN
IN
IN
IN
IN
A
A
A
A
A
200.27.104.35
200.27.104.35
200.27.104.35
200.27.104.35
200.27.104.35
En U NIX es posible usar el comando host para preguntar por la configuración
de un dominio. El siguiente es un ejemplo de ejecución:
$ host -t any puc.cl
puc.cl. SOA ns.puc.cl. hostmaster.ns.puc.cl. 2002081301 360 60 1209600 43200
puc.cl. name server ns.puc.cl.
puc.cl. name server ns2.puc.cl.
puc.cl. name server ns3.puc.cl.
puc.cl. mail is handled by 10 mx1.puc.cl.
puc.cl. mail is handled by 10 mx2.puc.cl.
 2003 Jorge Baier Aranda, PUC
54
Un ejemplo
Cuando un resolver tiene una consulta por un nombre, entrega la consulta a
su servidor de nombres.
Por ejemplo si el servidor de nombres configurado en su máquina
es polux.entelchile.net (200.72.1.254) y se consulta por el nombre
www.entelchile.net, el servidor dará una respuesta autorizada (authoritative answer ) con 206.137.97.120 del servidor.
Una respuesta autorizada sólo puede ser entregada por el servidor que maneja el registro y, por lo tanto, es siempre correcta.
Supongamos ahora que ud. desea conectarse con el servidor www.baier.cl
desde la máquina as5300-s07-037.cnt.entelchile.net que tiene configurado a polux.entelchile.net como su servidor de nombre.
En este caso, la máquina que origina la consulta, pregunta a su servidor de
nombres el número IP de www.baier.cl.
 2003 Jorge Baier Aranda, PUC
55
Aquı́ existirán dos posibilidades: que el servidor de nombres tenga en su
cache el IP correspondiente, o que no lo tenga.
Si lo tiene en su caché responderá inmediatamente.
Si no lo tiene deberá preguntar al dueño de la zona .cl, nic.cl.
A su vez, nic.cl revisará sus tablas y consultará al dueño de la zona
baier.cl (en este caso real es dns.netred.cl).
De hecho, en las tablas de nic.cl aparece lo siguiente:
; Dominio baier.cl
baier
IN
NS
IN
 2003 Jorge Baier Aranda, PUC
dns.netred.cl.
NS
dns2.netred.cl.
56
Finalmente dns.netred.cl responderá con el número IP de la máquina consultada.
El proceso de consulta se muestra en la siguiente figura:
as5300−s07−037.cnt.entelchile.net
consulta por www.baier.cl
Respuesta: 200.27.104.35
polux.entelchile.net
consulta por www.baier.cl
Respuesta: 200.27.104.35
nic.cl
consulta por www.baier.cl
Respuesta: 200.27.104.35
dns.netred.cl
 2003 Jorge Baier Aranda, PUC
57
Contratación de Dominios
Para contratar un dominio uno se debe dirigir al dominio autorizado de la
zona que interesa contratar.
Por ejemplo, si se desea contratar un dominio .com se puede hacer en Network Solutions (nsi.com):
 2003 Jorge Baier Aranda, PUC
58
Al contratar el dominio, no se especifica directamente la dirección IP a
del dominio contratado, sino que la direccion del servidor de nombres que
será dueño del dominio.
En el servidor de nombres se especifican los registros de recursos.
En el caso de Chile, los dominios se inscriben en nic.cl y tienen un valor
de $20.000 por una suscripción bianual.
En otros paı́ses como Tuvalu (dominio .tv), los nombres pueden fluctuar
entre US$ 50 hasta US$ 1000 anuales.
 2003 Jorge Baier Aranda, PUC
59
Correo Electrónico
El correo electrónico, se ha transformado hoy en dı́a en una de las formas
más usadas para comunicarse a través de Internet.
En esta sección revisaremos cómo es posible que se produzca este tipo de
comunicación a través de la red.
Para ello, revisaremos el protocolo de aplicación para transmisión de mensajes de correo electrónico, SMTP, y otros conceptos básicos.
 2003 Jorge Baier Aranda, PUC
60
Algo de Historia
El uso del correo electrónico (email) se remonta hasta hace más de dos
décadas, cuando en A RPANET surgieron los primeros correos electrónicos.
Inicialmente, un email era simplemente un archivo de texto, en el cual la
primera lı́nea correspondı́a a la dirección del receptor, y que se transmitı́a
como un archivo más.
En 1977, fue elaborado el primer protocolo de correo electrónico y publicado
en el RFC6 733, posteriormente reemplazado por los RFCs 821 y 822, de
1982.
Dos años más tarde el CCITT (Comité Consultatif International Téléphonique
et Télégraphique) inventa el estándar X.400, sin embargo este estándar es
muy complicado y finalmente pocos lo implementan.
De esta manera los sistemas basados en el RFC 822, son los que se utilizan
hasta ahora.
6
Los RFC (Request for comments) son documentos en los cuales se describen o sugieren protocolos o
estándares.
 2003 Jorge Baier Aranda, PUC
61
Clientes y Servidores de Correo
Los clientes de correo son los programas que se utilizan para la composición,
envı́o y lectura de e-mail.
Este es el tipo de programas con el cual interactúa la mayor parte de los
usuarios del email.
Tanto en el proceso de envı́o como en el de lectura, el cliente de usuario
se conecta con servidores de correo, que son las máquinas que realmente
hacen el trabajo de transferir los mensajes entre máquinas.
Los servicios que prestan los servidores son esencialmente de dos tipos:
Envı́o de Correo: Este servicio tiene por objetivo recibir el mensaje de correo desde el cliente y transmitirlo hacia el destino.
En este caso, la comunicación entre el cliente y el servidor se realiza a
través del protocolo S MTP (Simple Mail Transfer Protocol)
Lectura de Correo: Este servicio sirve para transmitir el correo almacenado
en la casilla (mailbox), desde el servidor de correo hacia el cliente.
Actualmente existen dos estándares para implementar este servicio,
POP3 (Post Office Protocol) e I MAP (Interactive Mail Access Protocol)
 2003 Jorge Baier Aranda, PUC
62
Direcciones Electrónicas
Una dirección electrónica sirve para nombrar una casilla de correo electrónico. Se usa para dirigir los mensajes de envı́o, pero también para especificar
quién es el autor del correo.
El RFC 822 especifica formalmente qué es una dirección electrónica.
La siguiente es una simplificación de la gramática BNF que especifica cómo
es una dirección electrónica.
direccion ::= usuario"@"dominio |
Nombre "<"usuario"@"dominio">"
Un correo electrónico dirigido a usuario@dominio se debe entender como
dirigido a la casilla de nombre usuario en la máquina especificada por
dominio.
A modo de comparación, la siguiente es una dirección electrónica usada por
el complicado sistema X.400:
/C=US/SP=MASSACHUSSETS/L=CAMBRIDGE/PA=360 MEMORIAL DR./CN=KEN SMITH
 2003 Jorge Baier Aranda, PUC
63
Formato de Mensajes
Cuando un usuario crea un mensaje de correo, éste es introducido dentro de
un sobre electrónico que es entregado al servidor de correo.
El sobre electrónico contiene el texto del mensaje y los archivos adjuntos,
junto con ciertos encabezados (headers)
La lista de headers más usados por los servidores de correo son los que
aparecen a continuación:
Encabezado
Significado
To:
Cc:
Bcc:
From:
Received:
Return-Path:
Dirección de correo de los receptores primarios
Dirección de correo de los receptores secundarios
Dirección de correo de los copias ocultas
Dirección de correo del remitente del mensaje
Lı́nea agregada por los servidores de correo
Puede ser usada para especificar la dirección de retorno (rebote)
 2003 Jorge Baier Aranda, PUC
64
Además de los headers usados por los servidores, el RFC 822 especifica
una serie de encabezados que pueden ser usados por los clientes de correo
o por los mismos usuarios.
Los más comunes se listan en la siguiente tabla:
Encabezado
Significado
Date:
Reply-To:
Message-id:
In-Reply-To:
References:
Keywords:
Subject:
Fecha y hora de envı́o
Dirección electrónica de respuesta
Número de identificación del mensaje
Número de referencia del mensaje que se responde
Otros números de referencia relevantes.
Palabras definidas por el usuario
Texto de referencia
 2003 Jorge Baier Aranda, PUC
65
Además de estos encabezados, los usuarios o clientes de correo, pueden
inventar sus propios encabezados. Ésto es legal siempre que el header comience con X-.
Algunos clientes de correo utilizan estos headers para enviar información
adicional.
Por ejemplo, Microsot Outlook Express 6.0, usa los headers
X-Priority: 1 (Highest)
X-MSMail-Priority: High
X-Mailer: Microsoft Outlook, Build 10.0.2627
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000
al enviar un mensaje con alta prioridad.
 2003 Jorge Baier Aranda, PUC
66
Cómo se ve un mensaje
El siguiente es un ejemplo de un mensaje de correo real:
Return-Path: <[email protected]>
Received: from gus.ing.puc.cl (gus.ing.puc.cl [146.155.4.5])
by ing.puc.cl (8.9.3/8.9.3) with ESMTP id MAA05867
for <[email protected]>; Fri, 16 Aug 2002 12:05:43 -0400 (CST)
Received: from puc.cl (natri.puc.cl [146.155.99.33])
by gus.ing.puc.cl (Postfix) with SMTP id F02CB7B0A
for <[email protected]>; Fri, 16 Aug 2002 12:05:42 -0400 (CLT)
Received: (qmail 49402 invoked from network); 16 Aug 2002 16:13:08 -0000
Received: from test5.ing.puc.cl (HELO gladys2) ([146.155.5.251]) (envelope-sender <[email protected]>)
by natri-smtp.puc.cl (qmail-ldap-1.03) with SMTP
for <[email protected]>; 16 Aug 2002 16:13:08 -0000
Message-ID: <[email protected]>
From: "=?iso-8859-1?Q?=C1lvaro_Lay_M.?=" <[email protected]>
To: "Jorge Baier Aranda" <[email protected]>
Subject: RV: hoy
Date: Fri, 16 Aug 2002 12:11:57 -0400
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 5.00.2615.200
X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2615.200
Status: R
X-Status: N
Jorge, te envio esta info....
 2003 Jorge Baier Aranda, PUC
67
MIME
Una de las desventajas de la especificación del RFC 822 es que los mensajes deben ser enteramente en formato ASCII.
Hoy en dı́a:
• Es necesario comunicarse en otros alfabetos latinos (castellano, por ejemplo).
• También en alfabetos no latinos, como Ruso o Japonés.
• Es necesario transmitir adjuntar archivos binarios.
Una solución a esto viene dada por MIME (Multipurpose Internet Mail Extensions)
En términos sencillos, un mensaje MIME mantiene la estructura de los mensajes anteriores, pero agrega información adicional en los encabezados y
cuerpo del mensaje que permite transmitir estos contenidos especiales.
 2003 Jorge Baier Aranda, PUC
68
Encabezados MIME
A los encabezados ya definidos, MIME agregó 5 adicionales, que se describen en la siguiente tabla:
Encabezado
Significado
MIME-version:
Content-Description:
Content-Id:
Content-Transfer-Encoding:
Content-Type:
Versión MIME (se usa 1.0)
String arbitrario que describe qué hay en el mensaje
Identificador único
Indica cómo se codifica el mensaje
Naturaleza del mensaje
El valor de Content-Transfer-Encoding indica cómo se codifica el mensaje, los valores más comunes son base64, usado para mensajes binarios y
quoted-printable, usado para mensajes de texto con caracteres especiales.
La codificación base64 divide a un grupo de 3 bytes (24 bits) en cuatro grupos de 6 bytes, que son transmitidos como 6 caracteres ASCII legales.
 2003 Jorge Baier Aranda, PUC
69
El valor de Content-Type indica el tipo de archivo binario que se está codificando. Algunos de los más importantes aparecen en la siguiente tabla:
Tipo
Subtipo
Descripción
text
text
image
image
application
multipart
multipart
plain
richtext
gif
jpeg
octet-stream
alternative
digest
texto sin formato
texto con formato
imagen formato GIF
imagen formato JPEG
secuencia de bytes no interpretada
mismo mensaje en 2 formatos distintos
cada parte es un mensaje RFC 822 (usado al adjuntar mensajes)
 2003 Jorge Baier Aranda, PUC
70
¿Cómo se ve un mensaje MIME?
A continuación se muestra un mensaje MIME real, que contiene texto y dos
archivos adjuntos:
Return-Path: <[email protected]>
Received: from gus.ing.puc.cl (gus.ing.puc.cl [146.155.4.5])
by ing.puc.cl (8.9.3/8.9.3) with ESMTP id OAA25426
for <[email protected]>; Fri, 16 Aug 2002 14:55:11 -0400 (CST)
Received: from web21402.mail.yahoo.com (web21402.mail.yahoo.com [216.136.232.72])
by gus.ing.puc.cl (Postfix) with SMTP id E10F77B03
for <[email protected]>; Fri, 16 Aug 2002 14:47:43 -0400 (CLT)
Message-ID: <[email protected]>
Received: from [146.155.13.37] by web21402.mail.yahoo.com via HTTP; Fri, 16 Aug 2002 11:55:08 PDT
Date: Fri, 16 Aug 2002 11:55:08 -0700 (PDT)
From: Jorge Baier <[email protected]>
Subject: Hola
To: [email protected]
MIME-Version: 1.0
Content-Type: multipart/mixed;
boundary="0-1979263679-1029524108=:36516"
Status: R
X-Status: N
--0-1979263679-1029524108=:36516
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Hola Jorge:
 2003 Jorge Baier Aranda, PUC
71
Te adjunto los archivos de los que hablamos.
Saludos,
Jorge.
__________________________________________________
Do You Yahoo!?
HotJobs - Search Thousands of New Jobs
http://www.hotjobs.com
--0-1979263679-1029524108=:36516
Content-Type: application/octet-stream; name="om.pl"
Content-Transfer-Encoding: base64
Content-Description: om.pl
Content-Disposition: attachment; filename="om.pl"
Oi1jb25zdWx0KHBnb2xvZykuCgolUHJpbWl0aXZlIGFjdGlvbnM6CgolICB0
[resto de codificación borrada]
YzEpXSkpLgoKCgoKCgoKCgoKCgo=
--0-1979263679-1029524108=:36516
Content-Type: image/jpeg; name="recorte.jpg"
Content-Transfer-Encoding: base64
Content-Description: recorte.jpg
Content-Disposition: inline; filename="recorte.jpg"
/9j/4AAQSkZJRgABAQEASgBLAAD//gAXQ3JlYXRlZCB3aXRoIFRoZSBHSU1Q
[resto de codificación borrada]
KUpSlKUpSlf/2Q==
--0-1979263679-1029524108=:36516--
 2003 Jorge Baier Aranda, PUC
72
Transmisión de Mensajes
Hasta el momento hemos visto cómo se arman los mensajes, pero no hemos
dicho nada de cómo se transmiten a través de Internet.
Para transmitir un mensaje de correo, la máquina de origen (fuente) se comunica con el servidor de correo estableciendo una conexión TCP a la puerta
25 de la máquina de destino.
El protocolo que utilizan durante la conexión es SMTP (Simple Mail Transfer
Protocol). Este servicio recibe el mensaje y lo copia en las casillas de texto
apropiadas.
SMTP está definido en el RFC 821 y es un protocolo de texto, es decir, todo
los que se transmite son caracteres ASCII.
Posteriormente, un nuevo protocolo, ESMTP soluciona algunos problemas
de SMTP (por ejemplo, infinitos hops) e incorpora nuevas funcionalidades.
En cuanto se establece una conexión la máquina de origen envı́a el mensaje
HELO, seguido de su dominio.
 2003 Jorge Baier Aranda, PUC
73
A continuación, se envian los comandos MAIL FROM:, seguido de la dirección
electrónica de origen.
Luego RCPT TO: seguido de la dirección de destino, luego,
DATA, seguido del sobre electrónico (headers y mensaje)
Finalmente, el mensaje se termina con un punto . y se envı́a QUIT.
 2003 Jorge Baier Aranda, PUC
74
A continuación se muestra el resultado de una interacción entre un cliente y
un servidor SMTP 7.
$ telnet smtp.ing.puc.cl 25
C: HELO domeyko.ing.puc.cl
S: 250 gus.ing.puc.cl
C: MAIL FROM: <[email protected]>
S: 250 Ok
C: RCPT TO: <[email protected]>
S: 250 Ok
C: DATA
S: 354 End data with <CR><LF>.<CR><LF>
C: From: Alvaro Campos <[email protected]>
C: To: [email protected]
C: Subject: Hola
C:
C: Hola!
C:
C: Este es un mensaje falso...
C:
C: Jorge.
7
Las lı́neas que comienzan con C: son enviadas por el cliente y las que comienzan con S: por el servidor.
 2003 Jorge Baier Aranda, PUC
75
C:
C:
S:
C:
S:
.
250 Ok: queued as 933137B0D
QUIT
221 Bye
Cuando el mensaje es recibido por el servidor SMTP, existen dos posibilidades:
• Que la casilla de destino sea manejada por el servidor. En este caso el
mensaje es copiado en la casilla.
• Que la casilla de destino no sea manejada por el servidor. En este caso, el
servidor lo introduce en una cola y establece una conexión con el servidor
de destino para enviar el correo.
Este proceso se conoce como Relaying.
Los servidores que interactúan en la transmisión de un mensaje desde la
máquina cliente algarrobo.ing.puc.cl a [email protected], se muestran en la siguiente figura:
 2003 Jorge Baier Aranda, PUC
76
Cliente
algarrobo.ing.puc.cl
SMTP
Server
smtp.ing.puc.cl
SMTP
Server
smtp.netred.cl
Sistema de
Archivos
Normalmente, un servidor SMTP sólo funciona como Relay para un conjunto
reducido de computadores.
Por ejemplo, la máquina smtp.ing.puc.cl sólo hace relay para las máquinas que están en el dominio ing.puc.cl.
 2003 Jorge Baier Aranda, PUC
77
El siguiente es un ejemplo, de la respuesta que da el servidor cuando se
intenta usar a mail.entelchile.net desde un dominio que está fuera de
entelchile.net:
> telnet mail.entelchile.net 25
Trying 164.77.62.8...
Connected to mail.entelchile.net.
Escape character is ’^]’.
220 mta1.entelchile.net ESMTP server ready Fri, 16 Aug 2002 19:00:26 -0400
HELO fake.entelchile.net
250 mta1.entelchile.net
MAIL FROM: <[email protected]>
250 Sender <[email protected]> Ok
RCPT TO: <[email protected]>
550 relaying mail to ing.puc.cl is not allowed
DATA
503 No recipients specified
 2003 Jorge Baier Aranda, PUC
78
Descargar