✦ IP assure service sans connexion
✦ ICMP envoi de messages entre couches IP de ≠ nœuds
✦ IGMP gestion appartenance à un groupe Xcast
✦ TCP assure service fiable avec connexion
✦ FTP transfert fichiers
✦ SMTP messagerie électronique
✦ TELNET présentation d’écran
Domain Name System
Relation nom-@IP-type-TTL
✦ avant: fichier /etc/hosts diffusé vers autres machines
✦ depuis 1984: utilisation DNS qui évite:
✦ congestion serveur unique
✦ maintenance centralisée
3
Schéma hiérarchique
✦ par noms de domaines
✦ domaine: unité pour construction et gestion de noms (comme rép. dans SGF)
✦ hiérarchie de noms a une racine multiple : domaines de 1° niveau (TLD)
4
com org edu fr mc
microsoft.com sun.com java.sun.com icann.org mit.edu
cs.mit.edu
unice.fr
deptinfo.unice.fr
gouv.mc
domaines génériques domaines géographiques
TLD
✦ domaines géographiques: fr, mc, it, jp...
✦ domaines d’activité génériques: com, org, edu, net
5
com org edu fr mc
microsoft.com sun.com
java.sun.com icann.org mit.edu
cs.mit.edu
unice.fr
deptinfo.unice.fr
gouv.mc
domaines génériques domaines géographiques
Attribution des noms
✦ dans chaque domaine, noms attribués par autorité responsable
✦ TLD par ISOC via groupe technique
✦ domaines “publics” (com, org, net...) une seule autorité centrale: ICANN
✦ domaines “géographiques”: autorité nationale:
AFNIC en France, Namebay à Monaco
✦ pour les domaines inclus: autorités locales (entreprise, administration,...)
6
Domaines et zones
✦ Domaine: unité de désignation (espace de noms)
✦ Zone: unité de gestion administrative (serveur de noms propre à la zone)
✦ souvent, un domaine est une zone mais une zone peut regrouper plusieurs domaines administrés en commun
7
Problème et principe
✦ Donnée: nom symbolique d’une machine
✦ Sortie: @IP de la machine
✦ Principe:
✦ fonctionnement décentralisé
✦ hiérarchie de serveurs calquée sur hiérarchie de zone
✦ fonctionnement par
✦ caches (infos dupliquées)
✦ indicateurs (informations valides pdt tps donné)
✦ info accessible par ≠ voies et confirmée si nécessaire
✦ favorise tolérance aux fautes
8
Fonctionnement
✦ ≥ 2 serveurs de nom par zone
✦ performances et tolérance aux pannes
✦ maintien table Resource Records (nom domaine-@IP) : (nom, valeur, type, durée de vie)
✦ recherche: soit serveur dns connaît l’@IP, soit il a l’adresse d’un autre serveur qui peut la connaître.
✦ mode récursif
✦ mode itératif
9
Fonctionnement
(1) le client envoie sa requête DNS à un serveur récursif choisi dans le fichier /etc/resolv.conf. Le client essaye au besoin plusieurs serveurs.
(2) si le serveur a autorité sur la zone du domaine de la requête (authoritative),il répond directement avec les informations (gérées) localement
(3) sinon il va rechercher le serveur cible du domaine de la requête, il relaye la requête vers ce serveur et relaye ensuite la réponse vers le client. Pour la recherche du serveur cible, on va :
(a) choisir un parent (connu localement) du domaine recherché : c’est ici soit la racine, soit le domaine que l’on gère pour une requête concernant un descendant de ce domaine local.
(b) interroger successivement les serveurs (informations NS) pour parcourir la branche entre le serveur parent et le serveur cible.
Cet algorithme simplifié possède deux modes de résolution : récursif et itératif. Le premier consiste à demander à un serveur de résoudre complètement la requête et de renvoyer uniquement la réponse finale. Le mode itératif consiste à demander à un serveur la meilleure information dont il dispose par rapport à la question, c’est-à-dire soit la réponse soit la référence à un serveur « plus proche » de la réponse. On itère ensuite de serveur en serveur.
10
Fonctionnement
11
✦ Accélération: serveurs mettent en cache
(nom,@IP) récemment résolus; rare de contacter
≥1 serveur
✦ Autorités: tous les serveurs ne sont pas mis à jour en permanence. Seuls certains le sont et font autorité:
✦ authoritative answer
✦ non authoritative answer
Fonctionnement
12
client domaine
D
serveur local à D
serveur racine
serveur unice.fr
1
2
3 5 4 6
smtp.unice.fr? smtp.unice.fr?
smtp.unice.fr?
134.59.1.112 134.59.1.112
*.unice.fr.
taloa.unice.fr.
taloa.unice.fr .
cache
smtp.unice.fr, 134.59.1.112
le + proche
récursif ou Itératif ?
Serveur racine
✦ contient noms de domaine du second niveau et
@IP correspondantes
unice.fr. 86400 IN NS taloa.unice.fr.
unice.fr. 86400 IN NS dns.inria.fr.
unice.fr. 86400 IN NS samoa.unice.fr.
✦ serveur racine largement dupliqué.
✦ plus serveur est haut, + il a de copies et + TTL est grand
13
Serveur de zone
✦ contient
✦ (noms,adresse) d’hôtes des domaines de zone
✦ [(noms,adresse) de serveurs de sous-domaines]
i3s.unice.fr. 86400 IN SOA taloa.unice.fr.
✦ SOA: start of authority (serveur racine)
14
Contenu fichiers
// file db.admrx.test
$TTL 3600
@ IN SOA ns1.admrx.test. root.admrx.test.
(
1 ; Serial 3600 ; Refresh 900 ; Retry 3600000 ; Expire 3600 ) ; Minimum
@ IN NS ns1.admrx.test.
; Machine Names
// nom et adresses des hotes selon l'exemple ci-dessous:
ns1 IN A 192.168.1.1
15
// file db.1.168.192
$TTL 3600
@ IN SOA ns1.admrx.test. root.admrx.test. ( 20021111 ; Serial 3600 ; Refresh 900 ; Retry 3600000 ; Expire 3600 ) ; Minimum IN NS ns1.admrx.test.
; Machine Names
11 IN PTR host1.admrx.test.
12 IN PTR host2.admrx.test.
1 IN PTR ns1.admrx.test.
et modifier le fichier resolv.conf:
search admrx.test unice.fr nameserver 192.168.1.1 nameserver 134.59.130.1
PTR: pointeur vers une autre partie de l’espace des noms de domaine
Contenu tables et RR
✦ type: indique comment interpréter le champ valeur
✦ A(AAAA): valeur @IPv4 (@IPv6)
✦ NS: valeur nom de domaine d’un serveur de nom
✦ CNAME: nom canonique (si alias)
✦ MX: mail...
✦ classe:
✦ IN (internet)
✦ CH (pour chaosnet LAN du MIT ‘70)
✦ durée de vie: TTL (pour rafraîchir)
16
Format des messages
✦ Les messages de requête et de réponse ont le même format.
✦ soit au-dessus d’UDP
✦ soit au-dessus de TCP
✦ sur le port 53 dans les 2 cas, TCP si la taille du message dépasse 512 octets
17
✦ id: nb de 16 bits pour requête, réponse utilise le même nb
✦ flags:
✦ query or reply
✦ récursion demandée
✦ récursion disponible
✦ réponse authoritative
18
identification flags nombre questions nombre de réponses nombre de authority nombre de additional
questions (# variable) réponses (# variable)
authority additional
12 octets
✦ les 4 champs «nombre de» donnent le nombre d’objets des 4 section suivantes
✦ questions: RR incomplets {nom-dns,type,classe}
✦ réponses, auth, add: RR complets:
{nom-dns,type,classe,(RDATA_LENGTH),RDATA}
19
0000 00 50 56 a7 4e d0 00 22 41 36 00 40 08 00 45 00 .PV.N.." A6.@..E.
0010 00 3b 65 dc 00 00 40 11 f5 fe 86 3b 09 60 86 3b .;e...@. ...;.`.;
0020 09 01 cf e1 00 35 00 27 1f 10 54 3a 01 00 00 01 ...5.' ..T:....
0030 00 00 00 00 00 00 04 73 6d 74 70 05 75 6e 69 63 ...s mtp.unic 0040 65 02 66 72 00 00 01 00 01 e.fr.... .
ethernet IPv4
UDP id flags (query)
nb quest nb rép
nb aut
nb add
class IN type A
04 73 6d 74 70 05 75 6e 69 63 65 02 66 72 00
s m t p u n i c e f r
4 5 2 0
Résolution de nom
✦ tout hôte connaît @IP de serveurs de noms
✦ adresses fournies aux utilisateurs par FAI
✦ inscrites à la main dans les tables de configuration pour l’accès à internet
20
Utilitaires unix
✦ Plusieurs utilitaires pour faire une requête dns:
✦ host
✦ nslookup
✦ dig
21
Commande host
✦effectue requête (@IP à partir du nom ou inverse)
✦host example.com [ns.alternatif.ex]
✦host -t type example.com
✦l’option -t à valeurs dans
✦a : adresse
✦mx : champ mail
✦ns: serveur de noms
✦cname: nom cannique
✦soa: start of authority
✦l’option -a affiche tous les champs
✦l’option -6 effectue une requête IPv6
22
Commande dig
✦effectue requête (@IP à partir du nom; requête inverse avec option -x)
✦dig example.com
✦options
✦+trace : effectue requêtes itératives
✦+short : réponse courte
✦+ nssearch : cherche soa: start of authority
✦+all : affiche tous les champs
✦+nocomment : retire les champs commentaires
✦mx : champ mail
✦AAAA effectue une requête IPv6
✦serveur alternatif par dig @ns.alternatif.ex example.com
23
Fichiers unix correspondants
✦ fichiers consultés lors de requêtes, pour trouver l’adresse d’une machine ou d’un serveur dns
✦ /etc/hosts: donne la correspondance entre noms canoniques et adresses IP (locales)
✦ /etc/resolv.conf: fournit les adresses de serveurs dns (jusqu’à 6):
✦ nameserver 134.59.1.7 # IP du serveur dns
✦ domain unice.fr # nom du domaine local
✦ Toute réponse dhcp écrase /etc/resolv.conf
24
Le mail en 1980
✦ protocole de transfert de fichier;
première ligne = adresse destinataire
✦ limitations
✦ pas diffusion à un groupe
✦ pas de structuration interne
✦ peu d’intégration Interface/transmission
✦ envoi autre chose que du texte impossible
Arpanet 1982
✦ conception système + élaboré (par étudiants)
✦ devenus des normes
✦ transmission dans RFC 821
✦ format message RFC 822 (puis 2821 et 2822)
✦ vainqueur du X.400 CCITT (trop complexe)
Architecture
✦ Mail composé des sous-systèmes:
✦ agent utilisateur (MUA): lecture et envoi;
programmes locaux interagissant avec le système de messagerie par CLI ou GUI
✦ agent de transfert (MTA): acheminement;
processus démons assurant le transport
✦ agent de dépôt (MDA): lien avec BAL utilisateur
Schéma général
Fonctions de base
✦ composition
✦ transfert: processus d’acheminement
automatique de l’émetteur vers le destinataire
✦ notification: mail remis, rejeté ou perdu?
✦ affichage: lecture des messages
✦ disposition: traitement mail (lire, détruire, enregistrer...)
Enveloppe vs contenu
à: Bruno Martin Adresse Priorité Chiffrement
de:
Adresse Objet Texte
Enveloppe
Message
Encapsulation
En-têteCorps
Format de message RFC 822
En-tête Description
To: @DNS
Cc:
Bcc:
From: auteur
Sender: @messagerie expéditeur Received: info sur chaque MTA Return-path: identifie chemin retour
Format de message RFC 822
En-tête Description
Date:
Reply-To:
Message-Id: n° réf. unique mail In-Reply-To: id mail précédent References: autres ids pertinents Keywords:
Subject:
X-... pour usage privé
MIME ( RFC 1341 2045..2049 )
✦ Multipurpose Internet Mail Extension
✦ prend en charge
✦ caractères accentués ou non latins
✦ messages non textuels
✦ par ajout d’une structure au corps du message et de règles de codage tout en utilisant le format RFC822
En-têtes
En-tête Description
Mime-version N° version
Content-Description descr. contenu
Content-Id id. unique
Content-Transfert-Encoding méthode encapsulation (5+1)
Content-type type et format contenu
base64
✦ chaque paquet de 6 bits= 1 caractère ASCII
✦ A=0..Z=25 a=26..z=51 0..9 +=52 /=63
✦ == dernier groupe ne contient que 8 bits
✦ = dernier groupe ne contient que 16 bits
6 bits 6 bits 6 bits 6 bits
b64(ex=101,120)= ‘ZXg=‘ =25,23,32,63 01100101,01111000 = ‘ex’
011001,010111,1000.00,- - - = ‘ZXg=‘
Quoted-printable
✦ format de codage de données sur 8 bits, qui utilise exclusivement les caractères alphanumériques ASCII (7 bits).
✦ QP remédie à ce problème, en procédant par:
✦ Un octet correspondant à un caractère imprimable de l'ASCII est représenté tel quel
✦ Un octet qui ne correspond pas à un caractère imprimable de l'ASCII est représenté par un signe égal, suivi de son numéro en hexadécimal.
Exemple: "é" en latin-9 par 233 en QP "E9"
Schéma général
Transfert de messages
✦ MTA se charge de l’acheminement des mails
✦ MUA construit message et le transmet au MTA qui utilise certains des champs d’en-tête pour construire l’enveloppe effective
✦ MTA = smtpd, serveur de mails, IP identifiée dans DNS par MX-record
Réception MTA
✦ en provenance de:
✦ MUA: FAI propose un service de MTA permettant au MUA d’envoyer tous ses mails par son MTA
✦ MTA: la plupart des MTA servent à
retransmettre dans un réseau les messages reçus en ajoutant un champ “Received”
Rejet message par MTA
✦ serveur non concerné: config MTA n’accepte que les mails expédiés depuis le réseau du FAI
✦ non-respect des normes: si le mail est non conforme ou en cas de non respect du smtp
✦ expéditeur black-listé: serveur réputés utilisés par spammers sont black-listés et certains MTA
rejettent les mails provenant de ces serveurs
✦ notification rejet n’est plus systématique
Transfert
✦ mails non rejetés sont transférés au MTA du destinataire par smtp
✦ si le MTA est le MTA traitant le mail, il est transféré à un MDA (ou traité directement) par protocole LMTP (local mail transfer proto)
✦ dépend du serveur; pour certains, MTA=MDA
✦ Mise à jour du “Return-Path”
smtp
Conversation (simplifiée)
Session SMTP
Codes de retour
2xx commande exécutée sans erreur 3xx demande en cours d’exécution 4xx erreur temporaire; ré-essayer + tard 5xx demande invalide et non traitée
http://www.greenend.org.uk/rjk/tech/smtpreplies.html
Rôle du MX-record
✦ MTA expéditeur fait requête sur le champ MX du DNS de chaque destinataire
✦ En réponse, il obtient une liste ordonnée de serveurs de mails dans chaque domaine
✦ MTA établit session smtp avec un des serveurs
✦ Si pas de MX, MTA fait une requête sur le A- record (@IPv4)
Requête MX
Serveur secondaire
✦ ≥2 MTA par réseau (primaire et secondaire)
✦ secondaire = store and forward
✦ prend le relai en cas de pb
✦ ne fournit pas tjs le service
✦ mise en attente message jusqu’au redémarrage du primaire
Indisponibilité
✦ MTA1 transfère vers MTA2 indisponible
✦ MTA1 met mail en file attente
✦ re-tente la transmission plusieurs fois
✦ Après un nb d’essais infructueux (ou d’un time out), le message est rejeté
MTA classiques
✦ 85% des mails sont gérés par:
✦ sendmail
✦ postfix
✦ exim
✦ Microsoft exchange server
✦ tous implémentent un démon smtp
Spammers’ technique
✦ utilisent les “relais ouverts”
✦ utilisent le MX-serveur secondaire
✦ pas les mêmes techniques anti spam
Open relay
✦ raisons historiques: pas authentification expéditeur (falsification possible)
✦ FAI limitent usage MTA aux machines de son seul domaine
✦ sinon= open relay qui accepte n’importe qui
Remède
✦ SMTP normal= pas d’authentification de l’utilisateur
✦ ajout d’une extension SMTP-AUTH
✦ ne réussit pas à s’imposer; utilisation limitée
✦ recherches en cours, par groupe de travail Anti- Spam Research Group de l’IRTF.
Schéma général
MDA
MDA
✦ Rôle:
✦ distribution courrier dans les BAL utilisateurs
✦ filtres différents
✦ anti-spam, anti-virus, personnalisés
Les plus classiques
✦ Post Office Protocol (tcp 110)
✦ Internet Message Access Protocol (tcp 143)
✦ [webmail]
✦ les utiliser dans leur version sécurisée (pop3s 995 et imaps 993)
POP IMAP
single access multiple access transfert sur client conservé sur serveur
actions sur client actions sur serveur folders sur client folders sur serveur