retele de calculatoare - profs.info.uaic.rodorin.huzum/rc/curs07/curs7.pdf · domain name system...

46
Domain Name System (DNS) Retele de calculatoare Nivelul Aplicatie Gabriel Ciobanu Facultatea de Informatic˘ a Universitatea A.I. Cuza, Ia¸ si [email protected] Sistemul numelor de domenii Dorin Huzum ([email protected]) Sinic˘ a Alboaie ([email protected]) Cristian Pˆ aslaru ([email protected] http://www.infoiasi.ro/dorin.huzum/rc Retele de Calculatoare Nivelul Aplicatie octombrie 2007 1 / 46

Upload: vankhue

Post on 06-Feb-2018

248 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Retele de calculatoare - profs.info.uaic.rodorin.huzum/rc/curs07/curs7.pdf · Domain Name System (DNS) Retele de calculatoare Nivelul Aplicatie Gabriel Ciobanu Facultatea de Informatic

Domain Name System (DNS)

Retele de calculatoareNivelul Aplicatie

Gabriel Ciobanu

Facultatea de InformaticaUniversitatea A.I. Cuza, Iasi

[email protected]

Sistemul numelor de domenii

Dorin Huzum ([email protected])Sinica Alboaie ([email protected])

Cristian Paslaru ([email protected]

http://www.infoiasi.ro/∼dorin.huzum/rc

Retele de Calculatoare Nivelul Aplicatie octombrie 2007 1 / 46

Page 2: Retele de calculatoare - profs.info.uaic.rodorin.huzum/rc/curs07/curs7.pdf · Domain Name System (DNS) Retele de calculatoare Nivelul Aplicatie Gabriel Ciobanu Facultatea de Informatic

Domain Name System (DNS)Organizare, descriereComenzi, primitive

Cuprins

1 Domain Name System (DNS)Organizare, descriereComenzi, primitive

Retele de Calculatoare Nivelul Aplicatie octombrie 2007 2 / 46

Page 3: Retele de calculatoare - profs.info.uaic.rodorin.huzum/rc/curs07/curs7.pdf · Domain Name System (DNS) Retele de calculatoare Nivelul Aplicatie Gabriel Ciobanu Facultatea de Informatic

Domain Name System (DNS)Organizare, descriereComenzi, primitive

DNS

Adresele IP sint dificil de memorat si de “ghicit”

Se utilizeaza un sistem al numelor de domenii pentru atranslata adresele IP in nume de domenii si invers

Numele de domenii se organizeaza in ierarhii

RFC 1034, 1035

Retele de Calculatoare Nivelul Aplicatie octombrie 2007 3 / 46

Page 4: Retele de calculatoare - profs.info.uaic.rodorin.huzum/rc/curs07/curs7.pdf · Domain Name System (DNS) Retele de calculatoare Nivelul Aplicatie Gabriel Ciobanu Facultatea de Informatic

Domain Name System (DNS)Organizare, descriereComenzi, primitive

DNS

Retele de Calculatoare Nivelul Aplicatie octombrie 2007 4 / 46

Page 5: Retele de calculatoare - profs.info.uaic.rodorin.huzum/rc/curs07/curs7.pdf · Domain Name System (DNS) Retele de calculatoare Nivelul Aplicatie Gabriel Ciobanu Facultatea de Informatic

Domain Name System (DNS)Organizare, descriereComenzi, primitive

DNS

Nume de domenii

De lungime maxima de 255 caracterePrimare:

Generice: .org, .net, .mil, .gov, .int, .edu, .com, .ws,.biz, .infoState: .uk, .us, .fr, .ro, .jp, .am, .to, .fm, .tv, . . .

Sub-domenii:Maxim 63 de caractere

Nume de calculatoare (gazde)Domeniu de nume

Subarbore al arborelui de domeniiNu trebuie sa respecte topologia retelei fizice

Retele de Calculatoare Nivelul Aplicatie octombrie 2007 5 / 46

Page 6: Retele de calculatoare - profs.info.uaic.rodorin.huzum/rc/curs07/curs7.pdf · Domain Name System (DNS) Retele de calculatoare Nivelul Aplicatie Gabriel Ciobanu Facultatea de Informatic

Domain Name System (DNS)Organizare, descriereComenzi, primitive

DNS

Exemplu:

Retele de Calculatoare Nivelul Aplicatie octombrie 2007 6 / 46

Page 7: Retele de calculatoare - profs.info.uaic.rodorin.huzum/rc/curs07/curs7.pdf · Domain Name System (DNS) Retele de calculatoare Nivelul Aplicatie Gabriel Ciobanu Facultatea de Informatic

Domain Name System (DNS)Organizare, descriereComenzi, primitive

DNS | organizare

Initial: /etc/hosts - perechi (nume, IP)

Actual: sistem de baze de date distribuite⇒ ierarhii de domenii

Reguli de alocare a numelor de domenii:

Fiecare domeniu controleaza cum sint alocatesubdomeniile salePentru a crea un nou subdomeniu, se cere permisiuneadomeniului in care va fi inclus(un domeniu la un anumit nivel va avea o autoritate)Atribuirea de nume de domenii respecta graniteleorganizationale, nu pe cele ale retelelorUn anumit nivel din ierarhia de niveluri poate fi controlatde mai multe servere

Probleme: toleranta la defecte, supra-incarcarea radacinii

Retele de Calculatoare Nivelul Aplicatie octombrie 2007 7 / 46

Page 8: Retele de calculatoare - profs.info.uaic.rodorin.huzum/rc/curs07/curs7.pdf · Domain Name System (DNS) Retele de calculatoare Nivelul Aplicatie Gabriel Ciobanu Facultatea de Informatic

Domain Name System (DNS)Organizare, descriereComenzi, primitive

Nume si Etichete (FQDN, PQDN)

Retele de Calculatoare Nivelul Aplicatie octombrie 2007 8 / 46

Page 9: Retele de calculatoare - profs.info.uaic.rodorin.huzum/rc/curs07/curs7.pdf · Domain Name System (DNS) Retele de calculatoare Nivelul Aplicatie Gabriel Ciobanu Facultatea de Informatic

Domain Name System (DNS)Organizare, descriereComenzi, primitive

DNS | organizare

Servere de nume (name servers)

Spatiul de nume DNS se divide in zone care nu sesuprapunFiecare zona contine o parte din domenii si numeleserverelor care stocheaza informatiile din acea zonaExista un server primar (primary/authoritative nameserver) care deserveste un anumit domeniu si, eventual,mai multe servere secundare continind bazele de datereplicateUn server poate fi responsabil al mai multor domenii

Retele de Calculatoare Nivelul Aplicatie octombrie 2007 9 / 46

Page 10: Retele de calculatoare - profs.info.uaic.rodorin.huzum/rc/curs07/curs7.pdf · Domain Name System (DNS) Retele de calculatoare Nivelul Aplicatie Gabriel Ciobanu Facultatea de Informatic

Domain Name System (DNS)Organizare, descriereComenzi, primitive

Sectiunile DNS

Retele de Calculatoare Nivelul Aplicatie octombrie 2007 10 / 46

Page 11: Retele de calculatoare - profs.info.uaic.rodorin.huzum/rc/curs07/curs7.pdf · Domain Name System (DNS) Retele de calculatoare Nivelul Aplicatie Gabriel Ciobanu Facultatea de Informatic

Domain Name System (DNS)Organizare, descriereComenzi, primitive

Inverse domain

utilizat pentru a mapa o adresa unui nume

acest lucru se intampla cand un server primeste osolicitare (request) de la un client;

serverul are un fisier continand lista clientilor autorizati siextrage adresa IP din pachetul IP primit;

pentru a determina daca clientul este autorizat, el solicitaresolver-ul sa trimita o cerere la un server DNS;

acest tip de cerere se numeste ”inverse” sau ”pointer”(PTR) query;

inverse domain este adaugat pentru astfel de cereri.

Retele de Calculatoare Nivelul Aplicatie octombrie 2007 11 / 46

Page 12: Retele de calculatoare - profs.info.uaic.rodorin.huzum/rc/curs07/curs7.pdf · Domain Name System (DNS) Retele de calculatoare Nivelul Aplicatie Gabriel Ciobanu Facultatea de Informatic

Domain Name System (DNS)Organizare, descriereComenzi, primitive

Inverse Domain

Retele de Calculatoare Nivelul Aplicatie octombrie 2007 12 / 46

Page 13: Retele de calculatoare - profs.info.uaic.rodorin.huzum/rc/curs07/curs7.pdf · Domain Name System (DNS) Retele de calculatoare Nivelul Aplicatie Gabriel Ciobanu Facultatea de Informatic

Domain Name System (DNS)Organizare, descriereComenzi, primitive

DNS Resolver

DNS este proiectat ca o aplicatie client-server:

un proces apeleaza un client DNS numit resolver, caretrimite un pachet (UDP) celui mai apropiat server DNScare cauta numele si returneaza adresa IP; daca nugaseste apeleaza la alt server; dupa ce gasesteinterpreteaza si verifica daca este vreo eroare.

Retele de Calculatoare Nivelul Aplicatie octombrie 2007 13 / 46

Page 14: Retele de calculatoare - profs.info.uaic.rodorin.huzum/rc/curs07/curs7.pdf · Domain Name System (DNS) Retele de calculatoare Nivelul Aplicatie Gabriel Ciobanu Facultatea de Informatic

Domain Name System (DNS)Organizare, descriereComenzi, primitive

DNS | interogari

Interogari:

Recursiva - daca un server DNS nu cunoaste adresapentru numele solicitat, atunci va interoga alt serverDNS.Iterativa - daca serverul DNS nu stie sa raspunda,returneaza eroare si adresa altui server DNS (numit sireferral) care ar putea cunoaste raspunsul la interogare.

Retele de Calculatoare Nivelul Aplicatie octombrie 2007 14 / 46

Page 15: Retele de calculatoare - profs.info.uaic.rodorin.huzum/rc/curs07/curs7.pdf · Domain Name System (DNS) Retele de calculatoare Nivelul Aplicatie Gabriel Ciobanu Facultatea de Informatic

Domain Name System (DNS)Organizare, descriereComenzi, primitive

Rezolvare recursiva

Retele de Calculatoare Nivelul Aplicatie octombrie 2007 15 / 46

Page 16: Retele de calculatoare - profs.info.uaic.rodorin.huzum/rc/curs07/curs7.pdf · Domain Name System (DNS) Retele de calculatoare Nivelul Aplicatie Gabriel Ciobanu Facultatea de Informatic

Domain Name System (DNS)Organizare, descriereComenzi, primitive

DNS | interogare recursiva

Retele de Calculatoare Nivelul Aplicatie octombrie 2007 16 / 46

Page 17: Retele de calculatoare - profs.info.uaic.rodorin.huzum/rc/curs07/curs7.pdf · Domain Name System (DNS) Retele de calculatoare Nivelul Aplicatie Gabriel Ciobanu Facultatea de Informatic

Domain Name System (DNS)Organizare, descriereComenzi, primitive

Rezolvare iterativa

Retele de Calculatoare Nivelul Aplicatie octombrie 2007 17 / 46

Page 18: Retele de calculatoare - profs.info.uaic.rodorin.huzum/rc/curs07/curs7.pdf · Domain Name System (DNS) Retele de calculatoare Nivelul Aplicatie Gabriel Ciobanu Facultatea de Informatic

Domain Name System (DNS)Organizare, descriereComenzi, primitive

DNS | interogare iterativa

Retele de Calculatoare Nivelul Aplicatie octombrie 2007 18 / 46

Page 19: Retele de calculatoare - profs.info.uaic.rodorin.huzum/rc/curs07/curs7.pdf · Domain Name System (DNS) Retele de calculatoare Nivelul Aplicatie Gabriel Ciobanu Facultatea de Informatic

Domain Name System (DNS)Organizare, descriereComenzi, primitive

Mesaje DNS (query + response)

Retele de Calculatoare Nivelul Aplicatie octombrie 2007 19 / 46

Page 20: Retele de calculatoare - profs.info.uaic.rodorin.huzum/rc/curs07/curs7.pdf · Domain Name System (DNS) Retele de calculatoare Nivelul Aplicatie Gabriel Ciobanu Facultatea de Informatic

Domain Name System (DNS)Organizare, descriereComenzi, primitive

Header mesaje DNS (query + response)

Retele de Calculatoare Nivelul Aplicatie octombrie 2007 20 / 46

Page 21: Retele de calculatoare - profs.info.uaic.rodorin.huzum/rc/curs07/curs7.pdf · Domain Name System (DNS) Retele de calculatoare Nivelul Aplicatie Gabriel Ciobanu Facultatea de Informatic

Domain Name System (DNS)Organizare, descriereComenzi, primitive

Header Flags

QR: Query/Response

OpCode: 0 standard, 1 inverse, 2 server status

AA: Authoritative

TC: Truncated

RD: Recursion Desired

RA: Recursion Available

rCode: Status of the error

Retele de Calculatoare Nivelul Aplicatie octombrie 2007 21 / 46

Page 22: Retele de calculatoare - profs.info.uaic.rodorin.huzum/rc/curs07/curs7.pdf · Domain Name System (DNS) Retele de calculatoare Nivelul Aplicatie Gabriel Ciobanu Facultatea de Informatic

Domain Name System (DNS)Organizare, descriereComenzi, primitive

Tipuri de inregistrari (question + resource)

Retele de Calculatoare Nivelul Aplicatie octombrie 2007 22 / 46

Page 23: Retele de calculatoare - profs.info.uaic.rodorin.huzum/rc/curs07/curs7.pdf · Domain Name System (DNS) Retele de calculatoare Nivelul Aplicatie Gabriel Ciobanu Facultatea de Informatic

Domain Name System (DNS)Organizare, descriereComenzi, primitive

Query types

Adresa IP a gazdei: A

Servere de nume: NS (Name Server)

Alias-uri pentru nume: CNAME (Canonical Name)

Domeniul curent, vers. fisier: SOA (Start Of Authority)

WKS: well-known services

PTR: pointer pentru convertirea unei adrese IP in nume

Descrierea gazdei (CPU, OS): HINFO

Mail exchangers: MX directeaza mail catre un mail server

Text neinterpretat (comentarii): AAAA, AXFR, ANY

Interogarile externe (cu alte servere DNS) se stocheaza inmemorii cache - DNS caching

Retele de Calculatoare Nivelul Aplicatie octombrie 2007 23 / 46

Page 24: Retele de calculatoare - profs.info.uaic.rodorin.huzum/rc/curs07/curs7.pdf · Domain Name System (DNS) Retele de calculatoare Nivelul Aplicatie Gabriel Ciobanu Facultatea de Informatic

Domain Name System (DNS)Organizare, descriereComenzi, primitive

Format inregistrare tip resursa

Retele de Calculatoare Nivelul Aplicatie octombrie 2007 24 / 46

Page 25: Retele de calculatoare - profs.info.uaic.rodorin.huzum/rc/curs07/curs7.pdf · Domain Name System (DNS) Retele de calculatoare Nivelul Aplicatie Gabriel Ciobanu Facultatea de Informatic

Domain Name System (DNS)Organizare, descriereComenzi, primitive

Exemplu 1

Un client DNS (a resolver) trimite o solicitare (a querymessage) catre un server DNS local pentru a afla adresa IPpentru hostul chal.fhda.edu. Prezentam separat mesajelecerere (query) si raspuns (response).

Retele de Calculatoare Nivelul Aplicatie octombrie 2007 25 / 46

Page 26: Retele de calculatoare - profs.info.uaic.rodorin.huzum/rc/curs07/curs7.pdf · Domain Name System (DNS) Retele de calculatoare Nivelul Aplicatie Gabriel Ciobanu Facultatea de Informatic

Domain Name System (DNS)Organizare, descriereComenzi, primitive

Exemplu de mesaj cerere (query message)

Retele de Calculatoare Nivelul Aplicatie octombrie 2007 26 / 46

Page 27: Retele de calculatoare - profs.info.uaic.rodorin.huzum/rc/curs07/curs7.pdf · Domain Name System (DNS) Retele de calculatoare Nivelul Aplicatie Gabriel Ciobanu Facultatea de Informatic

Domain Name System (DNS)Organizare, descriereComenzi, primitive

Exemplu de mesaj raspuns (response message)

Retele de Calculatoare Nivelul Aplicatie octombrie 2007 27 / 46

Page 28: Retele de calculatoare - profs.info.uaic.rodorin.huzum/rc/curs07/curs7.pdf · Domain Name System (DNS) Retele de calculatoare Nivelul Aplicatie Gabriel Ciobanu Facultatea de Informatic

Domain Name System (DNS)Organizare, descriereComenzi, primitive

Exemplu 2

Un server FTP primeste un pachet de la un client FTP avandadresa IP 153.2.7.9. Serverul FTP vrea sa verifice ca acestclient FTP este un client autorizat.

Retele de Calculatoare Nivelul Aplicatie octombrie 2007 28 / 46

Page 29: Retele de calculatoare - profs.info.uaic.rodorin.huzum/rc/curs07/curs7.pdf · Domain Name System (DNS) Retele de calculatoare Nivelul Aplicatie Gabriel Ciobanu Facultatea de Informatic

Domain Name System (DNS)Organizare, descriereComenzi, primitive

Exemplu de ”inverse query message”

Retele de Calculatoare Nivelul Aplicatie octombrie 2007 29 / 46

Page 30: Retele de calculatoare - profs.info.uaic.rodorin.huzum/rc/curs07/curs7.pdf · Domain Name System (DNS) Retele de calculatoare Nivelul Aplicatie Gabriel Ciobanu Facultatea de Informatic

Domain Name System (DNS)Organizare, descriereComenzi, primitive

Exemplu de ”inverse response message”

Retele de Calculatoare Nivelul Aplicatie octombrie 2007 30 / 46

Page 31: Retele de calculatoare - profs.info.uaic.rodorin.huzum/rc/curs07/curs7.pdf · Domain Name System (DNS) Retele de calculatoare Nivelul Aplicatie Gabriel Ciobanu Facultatea de Informatic

Domain Name System (DNS)Organizare, descriereComenzi, primitive

DNS | interogari

Exista un server de nume principal (root) pentru areturna adresele serverelor DNS pentru domeniile primaresau de nivel secund

Interogarile: nume de domeniu, tip (A, NS, MX,. . .),clasa (1=IP)

Raspunsurile: nume de domeniu, tip raspuns, clasa (IP),time to live (in sec.), informatii

TCP se utilizeaza pentru replicarea DNS

UDP pentru interogari (lookups)

Retele de Calculatoare Nivelul Aplicatie octombrie 2007 31 / 46

Page 32: Retele de calculatoare - profs.info.uaic.rodorin.huzum/rc/curs07/curs7.pdf · Domain Name System (DNS) Retele de calculatoare Nivelul Aplicatie Gabriel Ciobanu Facultatea de Informatic

Domain Name System (DNS)Organizare, descriereComenzi, primitive

DNS | organizare

Implementarea serverului de nume: BIND (BerkeleyInternet Name Domain)

Daemonul named, configurat prin /etc/named.confDomeniul local si lista serverelor DNS pentru aceldomeniu se gasesc in /etc/resolv.conf

Ca resolver iterativ, se pot folosi comenzile nslookup,host sau dig

DDNS (Dynamic DNS) interactioneaza cu DHCP(client) si un server DNS primar.

Retele de Calculatoare Nivelul Aplicatie octombrie 2007 32 / 46

Page 33: Retele de calculatoare - profs.info.uaic.rodorin.huzum/rc/curs07/curs7.pdf · Domain Name System (DNS) Retele de calculatoare Nivelul Aplicatie Gabriel Ciobanu Facultatea de Informatic

Domain Name System (DNS)Organizare, descriereComenzi, primitive

DNS | optimizari

Proximitatea spatiala: serverele locale vor fi interogatemai des decit cele la distanta

Proximitatea temporala: daca un set de domenii sintreferentiate repetat, atunci se apeleaza la caching DNS

Fiecare intrare DNS va avea stabilita o valoare TTL (timeto live)

Se va utiliza si replicarea (servere multiple, servere rootmultiple); se va interoga cel mai apropiat (geografic)server

Retele de Calculatoare Nivelul Aplicatie octombrie 2007 33 / 46

Page 34: Retele de calculatoare - profs.info.uaic.rodorin.huzum/rc/curs07/curs7.pdf · Domain Name System (DNS) Retele de calculatoare Nivelul Aplicatie Gabriel Ciobanu Facultatea de Informatic

Domain Name System (DNS)Organizare, descriereComenzi, primitive

DNS | abrevieri

Serverele vor raspunde numai daca primesc numecomplete de domenii (e.g., fenrir.info.uaic.ro)

Utilizatorii pot da doar nume partiale (de exemplu, fenrir)

Resolver-ul va putea completa sufixurile(e.g., fenrir ⇒ fenrir.info.uaic.ro)

Fiecare resolver va avea definita o lista de sufixuri deincercare

Retele de Calculatoare Nivelul Aplicatie octombrie 2007 34 / 46

Page 35: Retele de calculatoare - profs.info.uaic.rodorin.huzum/rc/curs07/curs7.pdf · Domain Name System (DNS) Retele de calculatoare Nivelul Aplicatie Gabriel Ciobanu Facultatea de Informatic

Domain Name System (DNS)Organizare, descriereComenzi, primitive

DNS | interogari inverse

Problema:data o adresa, care va fi numele ei simbolic?

Raspuns:se va returna o adresa de formax.x.x.x.in-addr.arpa

Retele de Calculatoare Nivelul Aplicatie octombrie 2007 35 / 46

Page 36: Retele de calculatoare - profs.info.uaic.rodorin.huzum/rc/curs07/curs7.pdf · Domain Name System (DNS) Retele de calculatoare Nivelul Aplicatie Gabriel Ciobanu Facultatea de Informatic

Domain Name System (DNS)Organizare, descriereComenzi, primitive

DNS | comenzi

uname

host

nslookup

whois

. . .

Retele de Calculatoare Nivelul Aplicatie octombrie 2007 36 / 46

Page 37: Retele de calculatoare - profs.info.uaic.rodorin.huzum/rc/curs07/curs7.pdf · Domain Name System (DNS) Retele de calculatoare Nivelul Aplicatie Gabriel Ciobanu Facultatea de Informatic

Domain Name System (DNS)Organizare, descriereComenzi, primitive

DNS | comenzi

(infoiasi)$ nslookup> thor.info.uaic.ro

Server: 127.0.0.1Address: 127.0.0.1#53

Name: thor.info.uaic.roAddress: 193.231.30.225Name: thor.info.uaic.roAddress: 193.231.30.131thor.info.uaic.ro

mail exchanger = 30 orion.uaic.ro.thor.info.uaic.ro

mail exchanger = 40 relay-1.dntis.ro.thor.info.uaic.ro

mail exchanger = 10 thor.info.uaic.ro.thor.info.uaic.ro

mail exchanger = 20 fenrir.info.uaic.ro.

Retele de Calculatoare Nivelul Aplicatie octombrie 2007 37 / 46

Page 38: Retele de calculatoare - profs.info.uaic.rodorin.huzum/rc/curs07/curs7.pdf · Domain Name System (DNS) Retele de calculatoare Nivelul Aplicatie Gabriel Ciobanu Facultatea de Informatic

Domain Name System (DNS)Organizare, descriereComenzi, primitive

DNS | whois

(infoiasi)$ whois dom ibm.com[whois.crsnic.net]

Whois Server Version 1.3

Domain Name: IBM.COMRegistrar: NETWORK SOLUTIONS, INC.Whois Server: whois.networksolutions.comReferral URL: http:\\ www.networksolutions.comName Server: INTERNET-SERVER.ZURICH.IBM.COMName Server: NS.WATSON.IBM.COMName Server: NS.ERS.IBM.COMName Server: NS.ALMADEN.IBM.COMName Server: NS.AUSTIN.IBM.COMStatus: REGISTRAR-LOCKUpdated Date: 07-jan-2003Creation Date: 19-mar-1986Expiration Date: 20-mar-2005

Retele de Calculatoare Nivelul Aplicatie octombrie 2007 38 / 46

Page 39: Retele de calculatoare - profs.info.uaic.rodorin.huzum/rc/curs07/curs7.pdf · Domain Name System (DNS) Retele de calculatoare Nivelul Aplicatie Gabriel Ciobanu Facultatea de Informatic

Domain Name System (DNS)Organizare, descriereComenzi, primitive

DNS | clienti, rezolveri, servere

Retele de Calculatoare Nivelul Aplicatie octombrie 2007 39 / 46

Page 40: Retele de calculatoare - profs.info.uaic.rodorin.huzum/rc/curs07/curs7.pdf · Domain Name System (DNS) Retele de calculatoare Nivelul Aplicatie Gabriel Ciobanu Facultatea de Informatic

Domain Name System (DNS)Organizare, descriereComenzi, primitive

DNS | primitive

Nu trebuie scris un resolver pentru a afla adresa IP a uneigazde

Adresele IP returnate sint network byte order

Pentru a putea folosi functiile de conversie DNS, la unelesisteme de operare (e.g., Sun) va trebui la compilare safolosim biblioteca nsl (Name Server Library): gcc . . . -lnsl

Functii principale:

gethostbyname()gethostbyaddr()

Retele de Calculatoare Nivelul Aplicatie octombrie 2007 40 / 46

Page 41: Retele de calculatoare - profs.info.uaic.rodorin.huzum/rc/curs07/curs7.pdf · Domain Name System (DNS) Retele de calculatoare Nivelul Aplicatie Gabriel Ciobanu Facultatea de Informatic

Domain Name System (DNS)Organizare, descriereComenzi, primitive

DNS | primitive

Se foloseste structura hostent:

#include <netdb.h>struct hostent {

char *h name; /* nume oficial */char**h aliases; /* alias-uri */int h addrtype; /* AF INET/AF INET6 */int h length; /* lungime: 4 ori 16 */char **h addr list; /* pointeri la adresele IP */

};

Retele de Calculatoare Nivelul Aplicatie octombrie 2007 41 / 46

Page 42: Retele de calculatoare - profs.info.uaic.rodorin.huzum/rc/curs07/curs7.pdf · Domain Name System (DNS) Retele de calculatoare Nivelul Aplicatie Gabriel Ciobanu Facultatea de Informatic

Domain Name System (DNS)Organizare, descriereComenzi, primitive

DNS | primitive

Retele de Calculatoare Nivelul Aplicatie octombrie 2007 42 / 46

Page 43: Retele de calculatoare - profs.info.uaic.rodorin.huzum/rc/curs07/curs7.pdf · Domain Name System (DNS) Retele de calculatoare Nivelul Aplicatie Gabriel Ciobanu Facultatea de Informatic

Domain Name System (DNS)Organizare, descriereComenzi, primitive

DNS | primitive

struct hostent *gethostbyname ( const char*hostname );

Returneaza:

Succes - adresa structurii hostent create; se foloseste deobicei prima: #define h addr h addr list[0]Eroare - constanta NULL, iar variabila h errno indicaeroarea aparuta:

HOST NOT FOUNDTRY AGAINNO RECOVERYNO DATANO ADDRESS

Retele de Calculatoare Nivelul Aplicatie octombrie 2007 43 / 46

Page 44: Retele de calculatoare - profs.info.uaic.rodorin.huzum/rc/curs07/curs7.pdf · Domain Name System (DNS) Retele de calculatoare Nivelul Aplicatie Gabriel Ciobanu Facultatea de Informatic

Domain Name System (DNS)Organizare, descriereComenzi, primitive

DNS | exemplu

Completarea structurii sockaddr in avind in loc de adresaIP un nume simbolic:

struct sockaddr in server;struct hostent *ip addr;

/* incercam sa gasim adresa IP */if (!(ip addr = gethostbyname (“www.w3.org”))){ /* eroare la rezolvarea adresei */ }

server.sin family = AF INET;server.sin port = htons (80);

/* adresa IP o luam din structura ip addr */memcpy (δserver.sin addr.s addr,

ip addr− >h addr, sizeof (ip addr− >h addr));

Retele de Calculatoare Nivelul Aplicatie octombrie 2007 44 / 46

Page 45: Retele de calculatoare - profs.info.uaic.rodorin.huzum/rc/curs07/curs7.pdf · Domain Name System (DNS) Retele de calculatoare Nivelul Aplicatie Gabriel Ciobanu Facultatea de Informatic

Domain Name System (DNS)Organizare, descriereComenzi, primitive

DNS | primitive

Se poate utiliza si gethostbyaddr()Alte functii utile:

uname()- informatii privind gazda curentagethostname()- asemanatoare cu uname()getservbyname()- ofera portul unui serviciugetservbyaddr()- ofera numele unui serviciuasociat la un portgethostbyname2()- pentru adrese IPv6getaddrinfo(), getnameinfo()- folosite nu doar pentruTCP/IP, ci pentru orice domeniu de adrese (standardPOSIX)

Retele de Calculatoare Nivelul Aplicatie octombrie 2007 45 / 46

Page 46: Retele de calculatoare - profs.info.uaic.rodorin.huzum/rc/curs07/curs7.pdf · Domain Name System (DNS) Retele de calculatoare Nivelul Aplicatie Gabriel Ciobanu Facultatea de Informatic

Domain Name System (DNS)Organizare, descriereComenzi, primitive

Rezumat

Domain Name System (DNS) este o aplicatie client-server

Organizare ca o structura ierarhica (arbore)DNS servere primare si secundareDNS client = resolver (recursiv, iterativ)mesaje DNS (cereri, raspunsuri)inregistrari DNS (intrebari si resurse)DNS utilizeaza UDP pentru mesaje pana in 512 octeti;altminteri TCP.in ambele cazuri serverul DNS utilizeaza portul 53.

Retele de Calculatoare Nivelul Aplicatie octombrie 2007 46 / 46