Documente Academic
Documente Profesional
Documente Cultură
Nume de Domenii
Nume de Domenii
Sistemulnumelordedomenii
SabinCorneliu Buraga
http://www.infoiasi.ro/~busaco
Forgiveyourenemies,
butneverforgettheirnames.
JohnF.Kennedy
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
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.
DNS|Tipuri dedomenii
Subdomenii:
Lungime maxima:63decaractere
DNS
Exemplu:
DNS|organizare
Initial:/etc/hosts perechi (nume,IP)
Actual:sistem debaze dedatedistribuite
ierarhii dedomenii
Probleme:toleranta ladefecte,
supraincarcarea radacinii
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)
DNS|organizare
ClientDNS
Denumit resolver,trimite unpachet UDP
serverului DNScarecauta numele si
returneaza adresa IP
Aplicatie
resolver
uaic.ro
DNS DB
uaic.ro
rpi.edu
rpi.edu
DNS
DB
DNS
DNSDB
DB
Authoritative
Replici
DNS|organizare
Implementari aleserverului denume (exemplificari):
BIND (BerkeleyInternetNameDomain),
MSDNS,Nominum,PowerDNS,MaraDNS
Caresolver(client)interactiv,
sepoate folosi una dintre comenzile
nslookup,host sau dig
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:
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
DNS|interogari
Exemplu interogarerecursiva
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
DNS|configurare
Exempludefisier/etc/resolv.conf
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
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
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
DNS|primitive
Nutrebuie scris unresolverpentru aafla
adresa IPaunei gazde
Adresele IPreturnate sint networkbyteorder
Functii principale:
gethostbyname()
gethostbyaddr()
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
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)
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
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?