700 likes | 852 Views
résolution des noms. cours réseaux SSI-4, février 2003 mars et octobre 2004, et ctobre 2005. documentation. RFC-2535 Donald Eastlake (2000) sécurisation du dns DNS-HOWTO Nicolai Langfeld (1999) mise en route de named
E N D
résolution des noms cours réseaux SSI-4, février 2003 mars et octobre 2004,et ctobre 2005.
documentation • RFC-2535 Donald Eastlake (2000)sécurisation du dns • DNS-HOWTO Nicolai Langfeld (1999)mise en route de named • RFC 1034 Paul Mockapetris (1985)principe des espaces de noms • RFC 1035 Paul Mockapetris (1985)spécification techniques du DNS
plan • Généralités • Résolution : utilisateur • Les espaces de noms • Principe de résolution • Résolution : serveur. • Configuration de named • attaques des serveurs de noms
Généralités • importance des noms • gestion sur arpanet • problèmes • service de noms de domaine
ftp.univ-tln.fr mail.univ-tln.fr www.univ-tln.fr importance des noms 193.49.96.1 rhodes.univ-tln.fr
L’ARPANET des années 80 est constitué d’une centaines d'ordinateurs reliés en réseaux. Un unique fichier hosts.txt rassemble les correspondances entre nom d'hôte et adresse IP. Le fichier est stocké sur le SRI-NIC . Après chaque modification, des copies sont transférées par ftp vers les ordinateurs du réseau. gestion des noms sur arpanet (1) Advanced Research Program Agency Network (2) Stanford Research Institutes Network Information Center
hosts.txt file (extrait) HOSTS.TXT Examples of Host Table Format NET : 10.0.0.0 : ARPANET : NET : 128.10.0.0 : PURDUE-CS-NET : GATEWAY : 10.0.0.77, 18.10.04 : MIT-GW.ARPA, MIT-GATEWAY : PDP-11 : MOS : IP/GW, EGP : HOST : 26.0.0.73, 10.0.0.51 SRI-NIC.ARPA, SRI-NIC, NIC : DEC-2060 : TOPS-20 : TCP/TELNET, TCP/SMTP TCP/TIME, TCP/FTP TCP/ECHO, ICMP : HOST : 10.2.0.11 : SU-TAC.ARPA, SU-TAC : C/30 : TAC : TCP :m
Les inconvénients • La taille du fichier hosts.txt augmente avec le nombre d’hôtes • En 1983, le réseau amorce son expansion exponentielle. • La fréquence des mises-à-jours des tables devient proportionnelle au nombre de machines • La consommation de bande passante est proportionnelle au carré du nombre d’hôtes
P. Mockapetris J. Postel 1983-84 Paul Mockapetris et Jon Postel proposent et développent une solution à base de BD distribuée Domain Name System
standardisation En 1985, l’IETF standardise le DNS au travers des RFC1034 et RFC1035. RR : Record Ressource Protocoles : udp + tcp. (1) Internet Entreprise Task Force
chronologie • Décembre 1973 HOSTS.TXT (RFC 606) • Novembre 1983 invention du DNS (RFC 882) • Octobre 1984 .com,.org, .mil, .gov, .edu, .net • Janvier 1985 SRI démarre le DNS service • Novembre 1987 spécification DNS (RFCs 1034, 1035) • Novembre 1988 .int domain • Avril 1993 NSI/InterNIC • Juin 1994 utilisations commerciales
2 • Généralités • Résolution : utilisateur. • objectifs • fichiers • résolveurs • trame dns : ping, ftp. • Espace des noms
objectif • Le but de la résolution des noms sur un réseau est d’assurer la conversion entre les noms d’hôtes et les adresses ip. machine.domaine.xz inverse résolution 192.127.10.2
correspondance non bijective • Un nom d’hôte peut désigner plusieurs adresses ip pour des interfaces différentes • Une adresse ip peut être associée à plusieurs noms alias par exemple : • ftp.domaine.xz • www.domaine.xz • mail.domaine.xz
résolveurs Les fonctions : • gethostbyname() • gethostbyaddr() réalisent respectivement résolution et résolution inverse : résolveurs. ex. programme lookup.c travaux-pratiques sur les sockets
lookup.c /* * exemple de programme * équivalent à nslookup */ #include <stdio.h> #include <netdb.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> void erreur( void ) { switch ( h_errno ) { case HOST_NOT_FOUND : puts("L'hôte indiqué est inconnu."); break; case NO_ADDRESS : puts("Le nom est valide mais ne possède pas d'adresse IP."); break; case NO_RECOVERY : puts("Une erreur fatale du serveur de noms est apparue."); break; case TRY_AGAIN : puts("Try again"); } exit(1); int main(int argc, char *argv[]) { struct hostent *infos; struct in_addr addr; unsigned long *tempo; if (inet_aton(argv[1], &addr) != 0 ) { infos = gethostbyaddr( (char *)( &(addr.s_addr)),sizeof(addr.s_addr),AF_INET); if ( ! infos ) erreur(); printf("\nnom:%s",infos -> h_name); } else { infos = gethostbyname(argv[1]); if ( ! infos ) erreur(); tempo = (unsigned long int *)(infos -> h_addr); addr.s_addr = *tempo; printf("\nip:%s",inet_ntoa(addr)); } printf("\nbye...\n"); }
fichiers réseau résolveur serveur de noms application
une règle simple /etc/hosts recherche descorrespondance Ex.de résolveurs : nslookup, host, dig résolveur /etc/resolv.conf domaines et serveurs de noms • placer les correspondancescourantes dans le fichier /etc/hosts
/etc/hosts 127.0.0.1 localhost 194.214.66.29 routeur-ft-utv 194.214.246.33 routeur-ft-coeur-toulon 194.214.68.17 routeur-ft-coeur-marseille1 194.214.68.2 routeur-ft-coeur-marseille2 195.220.98.157 routeur-rrthd-renater 10.1.65.1 mail.univ-tln.fr mail 10.1.66.15 mail1.univ-tln.fr mail1 10.1.66.16 mail2.univ-tln.fr mail2 192.168.168.1 mail1-ics0 192.168.169.1 member1-icstcp0 #10.1.65.53 iut.univ-tln.fr iut 10.1.65.106 www2.univ-tln.fr www2 10.1.65.119 listes.univ-tln.fr listes 10.1.65.125 comweb.univ-tln.fr comweb 10.1.66.127 mail3 192.168.168.2 mail2-ics0 192.168.169.2 member2-icstcp0
/etc/resolv.conf # /etc/resolv.conf search domaine.xz nameserver 10.1.65.1 autre.fr www.univ www.univ.domaine.xz www.univ. www.univ.autre.fr
système des noms de domaine Le Système des Noms de Domaine est un ensemble de règles utilisées par les logiciels pour établir (entre autres choses) la correspondance entre des noms et des adresses. Il utilise un protocole de communication client/serveur udp/tcp sur le port domain 53.
exp. ftp epsilon.ut.fr.1038 > port-aci.ut.fr.ftp: port-aci.ut.fr.ftp> epsilon.ut.fr.1038: epsilon.ut.fr.1038> port-aci.ut.fr.ftp: port-aci.ut.fr.32779 > epsilon.ut.fr.auth: epsilon.ut.fr.auth > port-aci.ut.fr.32779: port-aci.ut.fr.32770 > pcs.ut.fr.domain:15225+ PTR? 2.65.1.10.in-addr.arpa. pcs.ut.fr.domain > port-aci.ut.fr.32770:15225* 1/1/1 PTR epsilon.ut.fr. port-aci.ut.fr.32770 > pcs.ut.fr.domain:15226+ A? epsilon.ut.fr. pcs.ut.fr.domain > port-aci.ut.fr.32770:15226* 1/1/1 A epsilon.ut.fr port-aci.ut.fr.32770 > pcs.ut.fr.domain:15227+ PTR? 2.65.1.10.in-addr.arpa. pcs.ut.fr.domain > port-aci.ut.fr.32770:15227* 1/1/1 PTR epsilon.ut.fr. port-aci.ut.fr.ftp > epsilon.ut.fr.1038: epsilon.ut.fr.1038 > port-aci.ut.fr.ftp: arp who-has pcs.ut.fr tell port-aci.ut.fr arp reply pcs.ut.fr is-at 0:60:8:28:99:d8 epsilon.ut.fr.1038 > port-aci.ut.fr.ftp: port-aci.ut.fr.ftp > epsilon.ut.fr.1038:
3 • Résolution : utilisateur. • espaces de noms • organisation hierarchique • top level domain • sémantique des noms • zone – zone fr. • ressources • Principe de résolution.
hierarchie top level domaine
.ac–Ascension Island .ad–Andorra .ae–United Arab Emirates .af–Afghanistan .ag–Antigua and Barbuda .ai–Anguilla .al–Albania .am–Armenia .an–Netherlands Antilles .ao–Angola .aq–Antarctica .ar–Argentina .as–American Samoa .at–Austria .au–Australia .aw–Aruba .az–Azerbaijan .ba–Bosnia and Herzegovina .bb–Barbados .bd–Bangladesh .be–Belgium .bf–Burkina Faso .bg–Bulgaria .bh–Bahrain .bi–Burundi .bj–Benin .bm–Bermuda .bn–Brunei Darussalam .bo–Bolivia .br–Brazil .bs–Bahamas .bt–Bhutan .bv–Bouvet Island .bw–Botswana .by–Belarus .bz–Belize .ca–Canada .cc–Cocos Islands .cd–Congo, .cf–Central African Rep .cg–Congo, Republic of .ch–Switzerland .ci–Cote d'Ivoire .ck–Cook Islands .cl–Chile .cm–Cameroon .cn–China .co–Colombia .cr–Costa Rica .cu–Cuba .cv–Cap Verde .cx–Christmas Island .cy–Cyprus .cz–Czech Republic .de–Germany .dj–Djibouti .dk–Denmark .dm–Dominica .do–Dominican Rep .dz–Algeria .ec–Ecuador .ee–Estonia .eg–Egypt .eh–Western Sahara .er–Eritrea .es–Spain .et–Ethiopia .fi–Finland .fj–Fiji .fk–Falkland Islands .fm–Micronesia, .fo–Faroe Islands .fr–France domaines géographiques .je–Jersey .jm–Jamaica .jo–Jordan .jp–Japan .ke–Kenya .kg–Kyrgyzstan .kh–Cambodia .ki–Kiribati .km–Comoros .kn–Saint Kitts and Nevis .kp–Korea, Democratic People's Republic .kr–Korea, Republic of .kw–Kuwait .ky–Cayman Islands .kz–Kazakhstan .la–Lao People's Democratic Republic .lb–Lebanon .lc–Saint Lucia .li–Liechtenstein .lk–Sri Lanka .lr–Liberia .ls–Lesotho .lt–Lithuania .lu–Luxembourg .lv–Latvia .ly–Libyan Arab Jamahiriya .ma–Morocco .mc–Monaco .md–Moldova, Republic of .mg–Madagascar .mh–Marshall Islands .mk–Macedonia, Former Yugoslav Republic .ml–Mali .mm–Myanmar .mn–Mongolia .mo–Macau .ga–Gabon .gd–Grenada .ge–Georgia .gf–French Guiana .gg–Guernsey .gh–Ghana .gi–Gibraltar .gl–Greenland .gm–Gambia .gn–Guinea .gp–Guadeloupe .gq–Equatorial Guinea .gr–Greece .gs–South Georgia Islands .gt–Guatemala .gu–Guam .gw–Guinea-Bissau .gy–Guyana .hk–Hong Kong .hm–Heard and .hn–Honduras .hr–Croatia/Hrvatska .ht–Haiti .hu–Hungary .id–Indonesia .ie–Ireland .il–Israel .im–Isle of Man .in–India .io–British IndiaOce. .iq–Iraq .ir–Iran .is–Iceland .it–Italy
.mp–Nth Mariana Isls .mq–Martinique .mr–Mauritania .ms–Montserrat .mt–Malta .mu–Mauritius .mv–Maldives .mw–Malawi .mx–Mexico .my–Malaysia .mz–Mozambique .na–Namibia .nc–New Caledonia .ne–Niger .nf–Norfolk Island .ng–Nigeria .ni–Nicaragua .nl–Netherlands .no–Norway .np–Nepal .nr–Nauru .nu–Niue .nz–New Zealand .om–Oman .pa–Panama .pe–Peru .pf–French Polynesia .pg–Papua New Guinea .ph–Philippines .pk–Pakistan .pl–Poland .pm–St. Pierre and Miquelon .pn–Pitcairn Island .pr–Puerto Rico .ps–Palestinian Territories .re–Reunion Island .ro–Romania .ru–Russian Federation .rw–Rwanda .sa–Saudi Arabia .sb–Solomon Islands .sc–Seychelles .sd–Sudan .se–Sweden .sg–Singapore .sh–St. Helena .si–Slovenia .sj–Svalbard and Jan Mayen Islands .sk–Slovak Republic .sl–Sierra Leone .sm–San Marino .sn–Senegal .so–Somalia .sr–Suriname .st–Sao Tome and Principe .sv–El Salvador .sy–Syrian Arab Republic .sz–Swaziland .tc–Turks and Caicos Islands .td–Chad .tf–French Southern Territories .tg–Togo .th–Thailand .tj–Tajikistan .tk–Tokelau .tm–Turkmenistan .tn–Tunisia .to–Tonga .tp–East Timor .tr–Turkey .tt–Trinidad and Tobago .tv–Tuvalu .tw–Taiwan .tz–Tanzania .ua–Ukraine .ug–Uganda .uk–United Kingdom .um–US Minor Outlying Islands .us–United States .uy–Uruguay .uz–Uzbekistan .va–Holy See .vc–Saint Vincent and the Grenadines .ve–Venezuela .vg–Virgin Islands .vi–Virgin Islands .vn–Vietnam .vu–Vanuatu .wf–Wallis and Futuna Islands .ws–Western Samoa .ye–Yemen .yt–Mayotte .yu–Yugoslavia .za–South Africa .zm–Zambia .zw–Zimbabwe
zone • Les niveaux supérieurs TLDsont organisés au niveau géographique et/ou thématiques. .fr .uz .uk .com .mil top level domain • Chaque nœud définit un domaine : suite de noms séparés par des points • Certains nœuds définissent une zone sous l’autorité d’un serveur de noms : SOA. start of a zone of authority (sphere of authority).
zone • Une zone est un sous arbre de l’arbre des noms de domaines sur lesquels un NS possède une information complète. • Une zone est géré par une entité administrative particulière. L’autorité sur ce sous-arbre est déléguée. • La délégation est totale : libre organisation, changements sans préavis et délégation de sous-zones.
zone fr. AFNIC (NIC France) 164059 domaines délégués serveurs de la zone: dns.cs.wisc.edu 128.105.2.10 dns.inria.fr 193.51.208.13 dns.princeton.edu 128.112.129.15 ns1.nic.fr 192.93.0.1 ns2.nic.fr 192.93.0.4 ns3.domain-registry.nl 193.176.144.6 ns3.nic.fr 192.134.0.49 ns-ext.vix.com 204.152.184.64
ressources • Les nœuds de l’espace sont décrits par des RR (record ressource) maintenus à jour sur des serveurs autorisés : opération manuelle. • Le rôle des serveurs de noms est de propager ces informations en répondant aux questions des résolveurs.
RR Un enregistrement de ressource est composé de cinq champs : OWNER TYPE CLASS TTL RDATA domaine du RR A CNAME HINFO MX NS PTR SOA. A CNAME MX PTR SOA IN, CH durée de vie en cache Sur 32-bits
Principes de résolution • Espaces de noms • Principes de résolution • format des questions • parcours de l’arborescence • commandes : nslookup, host et dig • exemple • format trame dns
Principes de résolution • La communication entre clients et serveurs des services des noms utilise le protocole dns à partir des protocoles udp et tcp, usuellement le port 53. • Le format des trames dns est identique dans le sens client/serveur (question) et serveur/client (réponse).
Parcours de l’arborescence Pour déterminer l’adresse ip correspondant au nom : www.security.com.fr. Il faut trouver : • un NS (serveur de noms) de la racine . • interroger pour un obtenir NS de fr. • Interroger pour un NS de com.fr. • Le NS de security.com.fr. identifie www.
commande host • Elle permet d’interroger les ressources d’un serveur arbitraire, voir aussi nslookup (obsolète) et dig (plus efficace). • Les principales options : • host –a host serveur • host –t ns domaine serveur • host –t soa domaine serveur • host -l domaine serveur
Exemple www.security.com.fr Partons d’un des serveurs de la racine : a.root-servers.net.
# host -t ns fr. a.root-servers.net. Using domain server: a.root-servers.net. Address: 198.41.0.4#53 fr. name server DNS.INRIA.fr. fr. name server NS2.NIC.fr. fr. name server DNS.PRINCETON.EDU. fr. name server NS-EXT.VIX.COM. fr. name server NS3.DOMAIN-REGISTRY.NL. fr. name server DNS.CS.WISC.EDU. fr. name server NS1.NIC.fr. fr. name server NS3.NIC.fr. # host -t ns com.fr. a.root-servers.net. Using domain server : a.root-servers.net. Address: 198.41.0.4#53 # host -t ns com.fr. DNS.INRIA.fr. Using domain server: DNS.INRIA.fr. Address: 193.51.208.13#53
# host -t ns com.fr. NS2.NIC.fr. Using domain server: NS2.NIC.fr. Address: 192.93.0.4#53 com.fr. name server ns2.nic.fr. com.fr. name server ns3.nic.fr. com.fr. name server ns1.nic.fr. # host -t ns infosecurity.com.fr. NS2.NIC.fr. Using domain server: Name: NS2.NIC.fr. Address:192.93.0.4#53 infosecurity.com.fr. name server ns1.imaginet.net. infosecurity.com.fr. name server ns0.imaginet.net.
#host -a www.infosecurity.com.fr ;; opcode: QUERY, status: NOERROR, id: 56938 ;; flags: qr rd ra; QUERY:1, ANSWER:1, AUTHORITY: 2, ADDITIONAL: 2 ;; QUESTION SECTION: ;www.infosecurity.com.fr. IN ANY ;; ANSWER SECTION: www.infosecurity.com.fr. 403 IN A 62.4.73.140 ;; AUTHORITY SECTION: infosecurity.com.fr. 403 IN NS ns0.imaginet.net. infosecurity.com.fr. 403 IN NS ns1.imaginet.net. ;; ADDITIONAL SECTION: ns0.imaginet.net. 328 IN A 195.68.0.11 ns1.imaginet.net. 328 IN A 195.68.0.12
format QR dns en-tete question réponse autorité Information
en-tete aa : réponse d’autorité tc : message tronqué rd : récursion désiré ra : récursion acceptée:
une réponse type opcode: QUERY, status: NOERROR, id: 44073 ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 3 ;; QUESTION SECTION: ;rhodes.univ-tln.fr. IN ANY ;; ANSWER SECTION: ;rhodes.univ-tln.fr. 171663 IN MX 10 mail.univ-tln.fr. ;rhodes.univ-tln.fr. 171663 IN A 193.49.96.1 ;; AUTHORITY SECTION: univ-tln.fr. 171538 IN NS rhodes.univ-tln.fr. univ-tln.fr. 171538 IN NS dns.inria.fr. ;; ADDITIONAL SECTION: mail.univ-tln.fr. 171645 IN A 193.49.96.2 rhodes.univ-tln.fr. 171663 IN A 193.49.96.1 dns.inria.fr. 171330 IN A 193.51.208.13
tcpdump -a host -a microbe.utv.fr 10.1.74.93.32769 > pcs.utv.fr.domain: 13405+ A? microbe.utv.fr. (37) pcs.utv.fr.domain > 10.1.74.93.32769: 13405* 1/1/1 A 10.1.65.3 (87) tcpdump –a -s128 était nécessaire…
4 • principes de résolution • Résolution : serveur. • schéma • exemple de mise en cache • zone • fichier maître • vers la racine • opération de maintenance