Sunteți pe pagina 1din 39

Reteledecalculatoare

Sistemulnumelordedomenii
SabinCorneliu Buraga
http://www.infoiasi.ro/~busaco

Dr. Sabin-Corneliu Buraga www.infoiasi.ro/~busaco/

Forgiveyourenemies,
butneverforgettheirnames.
JohnF.Kennedy

Dr. Sabin-Corneliu Buraga www.infoiasi.ro/~busaco/

Cuprins
DomainNameSystem (DNS)
Caracterizare
Organizare
Configurare
Comenzi
Primitive
InternationalDomainNames(IDN)
Dr. Sabin-Corneliu Buraga www.infoiasi.ro/~busaco/

DNS
Adresele IPsint dificil dememorat si deghicit
Seutilizeaza unsistem alnumelor dedomenii
pentru atranslata adresele IP
innume dedomenii si invers
Numele dedomenii seorganizeaza inierarhii
RFC1034,1035

Dr. Sabin-Corneliu Buraga www.infoiasi.ro/~busaco/

Dr. Sabin-Corneliu Buraga www.infoiasi.ro/~busaco/

DNS|Tipuri dedomenii
Primare (TopLevelDomains TLD)
Infrastructura:
ARPA (AddressandRoutingParameterArea)
State(ccTLD) coduri destate:.fr,.jp,.ro,.tv,
Generice:.biz,.com,.info,.name,.net,.org,.pro
Sponsorizate:.aero,.edu,.gov,.int,.jobs,.mil, .tel
Rezervate:.example,.invalid,.localhost,.test
Pseudodomenii:.bitnet,.local,.root,.uucp etc.

Dr. Sabin-Corneliu Buraga www.infoiasi.ro/~busaco/

DNS|Tipuri dedomenii
Subdomenii:
Lungime maxima:63decaractere

Nume decalculatoare (gazde)


Domeniu denume
Subarbore alarborelui dedomenii
Nutrebuie sa respecte topologia retelei fizice

Dr. Sabin-Corneliu Buraga www.infoiasi.ro/~busaco/

DNS
Exemplu:

Dr. Sabin-Corneliu Buraga www.infoiasi.ro/~busaco/

DNS|organizare
Initial:/etc/hosts perechi (nume,IP)
Actual:sistem debaze dedatedistribuite
ierarhii dedomenii
Probleme:toleranta ladefecte,
supraincarcarea radacinii

Dr. Sabin-Corneliu Buraga www.infoiasi.ro/~busaco/

DNS|organizare
Reguli dealocare anumelor dedomenii:
Fiecare domeniu controleaza
cumsint alocate subdomeniile sale
Pentru acrea unnou subdomeniu,secere permi
siunea domeniului incareva fi inclus (undomeniu de
launanumit nivel va avea oautoritate)
Atribuirea denume dedomenii respecta
granitele organizationale,nupe cele aleretelelor
Unanumit nivel dinierarhia deniveluri poate fi
controlat demai multe servere
Dr. Sabin-Corneliu Buraga www.infoiasi.ro/~busaco/

DNS|organizare
Servere denume (nameservers)

Spatiul denume DNSsedivideinzonenesuprapuse


Fiecare zona contine opartedindomenii si numele
serverelor carestocheaza informatiile dinacea zona
Exista unserverprimar (primary/authoritativename
server)caredeserveste unanumit domeniu si,
eventual,mai multe servere secundare continind
bazele dedatereplicate
Unserverpoate fi responsabil almai multor domenii

Dr. Sabin-Corneliu Buraga www.infoiasi.ro/~busaco/

DNS|organizare
ClientDNS
Denumit resolver,trimite unpachet UDP
serverului DNScarecauta numele si
returneaza adresa IP
Aplicatie

resolver

Server DNS uaic.ro

uaic.ro
DNS DB

uaic.ro
rpi.edu
rpi.edu
DNS
DB
DNS
DNSDB
DB

Authoritative

Replici

Dr. Sabin-Corneliu Buraga www.infoiasi.ro/~busaco/

DNS|organizare
Implementari aleserverului denume (exemplificari):
BIND (BerkeleyInternetNameDomain),
MSDNS,Nominum,PowerDNS,MaraDNS
Caresolver(client)interactiv,
sepoate folosi una dintre comenzile
nslookup,host sau dig

Dr. Sabin-Corneliu Buraga www.infoiasi.ro/~busaco/

DNS|interogari
Interogari:
Recursiva daca unserverDNS
nucunoaste adresa pentru numele solicitat,
atunci va interoga altserverDNS
Incrementala daca serverul DNSnustie sa
raspunda,returneaza eroare si adresa altui
serverDNS(numit si referral)care
ar putea cunoaste raspunsul lainterogare
Dr. Sabin-Corneliu Buraga www.infoiasi.ro/~busaco/

DNS|interogari
Gasirea unui serverDNSpentru afurniza:

Numele unui domeniu


Adresa IPcorespunzatoare unui domeniu simbolic

Bazele dedateDNS resourcerecord (RR):

Domeniul curent,vers.fisier:SOA (StartOfAuthority)


Adresa IPagazdei:A
Servere denume:NS(NameServer)
Aliasuri pentru nume:CNAME (CanonicalName)
Mailexchangers:MX vezi cursul viitor
Descrierea gazdei (CPU,OS):HINFO
Textneinterpretat (comentarii): TXT

Interogarile externe (cualte servere DNS)


sestocheaza inmemorii cache DNScaching
Dr. Sabin-Corneliu Buraga www.infoiasi.ro/~busaco/

DNS|interogari
Existaunserverdenumeprincipal(root)
pentruareturnaadreseleserverelorDNS
pentrudomeniileprimaresaudenivelsecund
Interogarile:numededomeniu,
tip(A,NS,MX,),clasa(1=IP)
Raspunsurile:numededomeniu,tipraspuns,
clasa(IP),timetolive (insec.),informatii
TCPseutilizeazapentrureplicareaDNS
UDPpentruinterogari(lookups)
Dr. Sabin-Corneliu Buraga www.infoiasi.ro/~busaco/

DNS|interogari
Exemplu interogareiterativa

Dr. Sabin-Corneliu Buraga www.infoiasi.ro/~busaco/

DNS|interogari
Exemplu interogarerecursiva

Dr. Sabin-Corneliu Buraga www.infoiasi.ro/~busaco/

DNS|optimizari
Proximitatea spatiala:serverele localevor fi interogate
mai desdecit cele ladistanta
Proximitatea temporala:daca unsetdedomenii sint
referentiate repetat,atunci seapeleaza lacachingDNS
Fiecare intrare DNSva avea stabilita ovaloare TTL
(timetolive)
Seva utiliza si replicarea (servere multiple,
servere root multiple) seva interoga cel mai apropiat
(geografic)server
Cind nuexista unserverDNScunoscut ce poate fi
interogat,sepoate recurge laOpenDNS
Dr. Sabin-Corneliu Buraga www.infoiasi.ro/~busaco/

DNS|abrevieri
Serverelevorraspundenumaidacaprimesc
numecompletededomenii
(e.g.,fenrir.info.uaic.ro)
Utilizatoriipotdadoarnumepartiale
(deexemplu,fenrir)
Resolverulvaputeacompletasufixurile
(e.g.,fenrir fenrir.info.uaic.ro)
Fiecareresolvervaaveadefinitaolistade
sufixurideincercare
Dr. Sabin-Corneliu Buraga www.infoiasi.ro/~busaco/

DNS|interogariinverse
Problema:
dataoadresa,carevafinumeleeisimbolic?
Raspuns:
sevareturnaoadresadeforma
x.x.x.x.in-addr.arpa

Dr. Sabin-Corneliu Buraga www.infoiasi.ro/~busaco/

DNS|configurare
Exempludefisier/etc/resolv.conf

search net.infoiasi.ro infoiasi.ro info.uaic.ro


domain info.uaic.ro
nameserver 127.0.0.1
nameserver 193.226.23.1
nameserver 193.226.30.2

Dr. Sabin-Corneliu Buraga www.infoiasi.ro/~busaco/

DNS|configurare
ExempludefisierpentruspecificareauneizoneDNS
tgv.com. in soa vaxa.tgv.com. wing.tgv.com. (
199501091
; serial number
10800
; refresh 3 hr
3600
; retry 1 hr
604800
; expire 1 wk
86400
; min. TTL 1 day
)
tgv.com.
in ns ns1.tgv.com.
ns1.tgv.com.
in a 161.44.128.70
hq.tgv.com.
in a 161.44.128.70
in hinfo VAXSTATION-4000-90 VMS
tgv.com.
in mx 10 hq.tgv.com.
fang.tgv.com. in a 161.44.128.87
in mx 10 hq.tgv.com.
Dr. Sabin-Corneliu Buraga www.infoiasi.ro/~busaco/

DNS|comenzi

uname
host
nslookup
whois

Dr. Sabin-Corneliu Buraga www.infoiasi.ro/~busaco/

DNS|nslookup
(infoiasi)$ nslookup www.info.uaic.ro
Server:
85.122.16.1
Address:
85.122.16.1#53
www.info.uaic.ro
canonical name = vidar.info.uaic.ro.
Name:
vidar.info.uaic.ro
Address: 85.122.23.146

Dr. Sabin-Corneliu Buraga www.infoiasi.ro/~busaco/

DNS|whois
(infoiasi)$ whois dom ibm.com
[whois.crsnic.net]
Domain Name: IBM.COM
Registrar: NETWORK SOLUTIONS, INC.
Whois Server: whois.networksolutions.com
Referral URL: http://www.networksolutions.com
Name Server: INTERNET-SERVER.ZURICH.IBM.COM
Name Server: NS.WATSON.IBM.COM
Name Server: NS.ERS.IBM.COM
Name Server: NS.ALMADEN.IBM.COM
Name Server: NS.AUSTIN.IBM.COM
Status: REGISTRAR-LOCK
Updated Date: 07-jan-2003
Creation Date: 19-mar-1986
Dr. Sabin-Corneliu Buraga www.infoiasi.ro/~busaco/

DNS|dig
; <<>> DiG 9.2.3 <<>> www.uaic.ro
;; QUESTION SECTION:
;www.uaic.ro. IN A
;; ANSWER SECTION:
www.uaic.ro. 86400 IN CNAME jad.uaic.ro.
jad.uaic.ro. 86400 IN A 85.122.16.7
;; AUTHORITY SECTION:
uaic.ro. 86399 IN NS orion.uaic.ro.
uaic.ro. 86399 IN NS ns2.roedu.net.
uaic.ro. 86399 IN NS ns.iasi.roedu.net.
;; ADDITIONAL SECTION:
ns.iasi.roedu.net. 86376 IN A 192.129.4.100
ns2.roedu.net. 86376 IN A 192.129.4.10
orion.uaic.ro. 86400 IN A 85.122.16.1
Dr. Sabin-Corneliu Buraga www.infoiasi.ro/~busaco/

DNS|clienti,rezolveri,servere
Cod aplicatie
Cod rezolver

cerere
raspuns Server DNS
local
UDP

Alte servere
DNS

aplicatie
Fisier de
config.

resolver

Cafisier deconfigurare
alresolverului:/etc/resolv.conf

Dr. Sabin-Corneliu Buraga www.infoiasi.ro/~busaco/

DNS|primitive
Nutrebuie scris unresolverpentru aafla
adresa IPaunei gazde
Adresele IPreturnate sint networkbyteorder
Functii principale:
gethostbyname()
gethostbyaddr()

Launele sisteme deoperare (e.g.,Solaris)


va trebui lacompilare sa folosim biblioteca nsl
(NameServerLibrary):gcc -lnsl
Dr. Sabin-Corneliu Buraga www.infoiasi.ro/~busaco/

DNS|primitive
Sefoloseste structura hostent:
#include <netdb.h>
struct hostent {
char *h_name;
char **h_aliases;
int h_addrtype;
int h_length;
char **h_addr_list;

/*
/*
/*
/*
/*

nume oficial
alias-uri
AF_INET/AF_INET6
lungime: 4 sau 16
pointeri
la adresele IP

};
Dr. Sabin-Corneliu Buraga www.infoiasi.ro/~busaco/

*/
*/
*/
*/
*/

hostent
h_name
h_aliases
h_addrtype
h_length
h_addr_list

DNS|primitive
Nume oficial
alias 1
alias 2
null

Adresa IP 1
Adresa IP 2
null
Dr. Sabin-Corneliu Buraga www.infoiasi.ro/~busaco/

DNS|primitive
struct hostent *gethostbyname
( const char *hostname );
Returneaza:
Succes adresastructuriihostent create;sefolosestede
obiceiprima:#define h_addr h_addr_list[0]
Eroare constantaNULL,
iarvariabilah_errno indicaeroareaaparuta:

HOST_NOT_FOUND
TRY_AGAIN
NO_RECOVERY
NO_DATA
NO_ADDRESS

Constante definitein
netdb.h

Dr. Sabin-Corneliu Buraga www.infoiasi.ro/~busaco/

DNS|exemplu
Completarea structurii sockaddr_in
avind inlocdeadresa IPunnume 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));
Dr. Sabin-Corneliu Buraga www.infoiasi.ro/~busaco/

DNS|primitive
Sepoateutilizasigethostbyaddr()
Altefunctiiutile:

uname() informatiiprivindgazdacurenta
gethostname() asemanatoarecuuname()
getservbyname() oferaportulunuiserviciu
getservbyaddr() oferanumeleunuiserviciu
asociatlaunport
gethostbyname2() pentruadreseIPv6
getaddrinfo(),getnameinfo() folositenu
doarpentruTCP/IP,cipentruoricedomeniude
adrese(standardPOSIX)

Dr. Sabin-Corneliu Buraga www.infoiasi.ro/~busaco/

DNS|IDN
InternationalDomainNames(IDN)
Extensie carepermite folosirea
caracterelor Unicodeinnumele dedomenii,
nudoar acelor ASCII
Suport pentru internationalizarea numelor
dedomenii
Potfi exploatate pentru atacuri detip
phishing (vezi unul dincursurile viitoare)
Dr. Sabin-Corneliu Buraga www.infoiasi.ro/~busaco/

DNS|administrare
Radacina DNSeste oficial administrata de
InternetCorporationforAssignedNames
andNumbers(ICANN)
Exista si alte organizatii careofera
radacini alternative(altDNSroots),
precum OpenNIC sau New.Net

Dr. Sabin-Corneliu Buraga www.infoiasi.ro/~busaco/

DNS|administrare
Rezolvarea adreselor inconditiile incarenuexista
nici oconfiguratie implicitstabilita,sepoate facevia
otehnica numita ZEROCONF:
Adresare (selfassignedaddressing):
alocare deadrese IPgazdelor
Numire (naming):asocierea denume simbolice
mDNS multicastDNS
Descoperirea deservicii:gasirea deservicii deretea
inmodautomat vezi si www.dnssd.org
Dr. Sabin-Corneliu Buraga www.infoiasi.ro/~busaco/

Rezumat
DomainNameSystem (DNS)
Caracterizare
Organizare
Configurare
Comenzi
Primitive
InternationalDomainNames(IDN)
Dr. Sabin-Corneliu Buraga www.infoiasi.ro/~busaco/

Intrebari?

Dr. Sabin-Corneliu Buraga www.infoiasi.ro/~busaco/

S-ar putea să vă placă și