IMPORTANT: Per accedir als fitxer de subversion: http://acacha.org/svn (sense password). Poc a poc s'aniran migrant els enllaços. Encara però funciona el subversion de la farga però no se sap fins quan... (usuari: prova i la paraula de pas 123456)

Client DNS

De SergiTurWiki
Share/Save/Bookmark
Revisió de 11:29, 29 maig 2012; Sergi (Discussió | contribucions)

Dreceres ràpides: navegació, cerca
Alert.png Aquesta wiki forma part dels materials d'un curs
Curs: DissenyXarxesLinux, LinuxAdministracioAvancada
Fitxers: Protocols_de_xarxes_UNIX.pdf
Repositori SVN: https://svn.projectes.lafarga.cat/svn/iceupc/LinuxAdministracioAvan%c3%a7ada/moodle/sessio2/transparencies/
Usuari: anonymous
Paraula de pas: sense paraula de pas
Autors: Sergi Tur Badenas


Vegeu també Servidor DNS

Contingut

Client DNS

Configuració estàtica

Els servidors de DNS s'indiquen al fitxer:

$ cat /etc/resolv.conf 
nameserver 192.168.1.3
nameserver 192.168.1.1

Cal tenir en compte que excepte que instal·leu alguna eina com nscd a Linux no hi ha cache de peticions DNS. Per tant cada cop que s'inicia una connexió amb una màquina remota és fa la res·lució de DNS. O podeu veure si executeu l'ordre ping conjuntament amb un analitzador de xarxa com tcpdump o Ethereal.

Per determinar el nom de la màquina de forma local (per que el canvi sigui en xarxa caldria configurar un servidor de DNS) cal modificar el fitxer /etc/hosts:

$ cat /etc/hosts
127.0.0.1	localhost
127.0.1.1	BSFHPCasa.BSF	BSFHPCasa

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
NOTA: Fixeu-vos que la majoria de distribucions Linux modernes ja suporten IPv6 a nivell local (un altre cosa és que ho suporti la vostra xarxa o el vostre proveïdor d'Internet.)

I també:

$ cat /etc/hostname 
BSFHPCasa

En quin ordre és resol·len els noms depèn de la configuració de NSSwitch:

$ cat /etc/nsswitch.conf
...
hosts:          files mdns4_minimal [NOTFOUND=return] dns mdns4
networks:       files

protocols:      db files
services:       db files
ethers:         db files
rpc:            db files 

...
NOTA: Cal tenir en compte que la resol·lució de noms pot anar més enllà que DNS si utilitzen per exemple protocols de zeroconf o xarxa de Windows amb WINS

Abans s'utilitzava:

$ cat /etc/host.conf
# The "order" line is only used by old versions of the C library.
order hosts,bind
multi on

Configuració dinàmica amb DHCP

Si teniu un servidor de DHCP a la xarxa aleshores la configuració de DNS per al client serà automàtica. Això és així gràcies als DHCP hooks i a al guió d'interpret d'ordres dhclient-script que configura mitjançant la funció make_resolv_conf el fitxer /etc/resolv.conf.

Altres paràmetres com per exemple el servidor WINS també poden ser establerts de forma automàtica mitjançant el mecanisme de DHCP hooks.

Vegeu també DHCP.

Resolver (Resolver Library)

El terme resolver no fa referència a cap aplicació especial sinó a una biblioteca de C. La biblioteca resolver és una col·lecció de funcions que poden ser trobades a la llibreria estàndard de C. Les rutines principals són:

Aquestes llibreries es poden configurar en temps d'execució (és a dir sense haver de recompilar res) amb els fitxers de configuració de resolver (que sovint també anomenem DNS). Els fitxers més importants són:

Recursos:

Configuració de xarxa

Els clients que volen utilitzar un servidor de xarxa han d'afegir al fitxer /etc/resolv.conf la següent línia:

nameserver {ip-del-servidor-dns}

Algunes utilitats de gestió de xarxa amb GUI com network-admin també poden configurar els servidors DNS. Podeu consultar el Tutorial pas a pas configuració xarxa en Ubuntu.

NOTA: Pot no haver-hi fitxer /etc/resolv.conf. En aquest cas el servidor de DNS que buscarà el client de DNS és localhost. Per tant en un servidor de DNS no cal especificar el fitxer /etc/resolv.conf

Segons el manual:

$ man resolver

o

$ man resolv.conf

Es poden especificar múltiples servidors de DNS fins a un màxim establer per la variable MAXNS (establerta a nivell de compilació). El valor habitual és 3 i el podeu trobar:

/usr/include/resolv.h
cat /usr/include/resolv.h | grep MAXNS
# define MAXNS			3	/* max # name servers we'll track */

La forma en que s'utilitzen els servidors de DNS es força simple:

  • Primer es prova amb el primer servidor especificat i s'espera un cert temps a rebre una resposta (timeout)
  • Si no es rep resposta del primer s'utilitza el segon i així successivament fins a MAXNS.
  • Si no es troba cap resultat es torna a intentar fins a un màxim nombre d'intents

El timeout per defecte és de 5:

$ cat /usr/include/resolv.h | grep TIMEOUT
# define RES_TIMEOUT		5	/* min. seconds between retries */+

I el nombre d'intents:

$ cat /usr/include/resolv.h | grep RETRY
# define RES_MAXRETRY		5	/* only for resolv.conf/RES_OPTIONS */
# define RES_DFLRETRY		2	/* Default #/tries. *

Disminuir el timeout del primer servidor de DNS

Per defecte espara 5 segons, si no volem esperar tant:

domain movie.edu
nameserver 0.0.0.0
nameserver 192.249.249.3
nameserver 192.249.249.
options timeout:2


Sortlist

Permet especificat quines IP són les preferides en el cas que es rebri una màquina amb diferents IP:

sortlist 128.32.42.0/255.255.255.0 15.0.0.0

Fitxers de configuració

/etc/hosts

NOTA: Cal que tingueu en compte la història d'aquest fitxer. Abans d'existir DNS, sistema jeràrquic i distribüit, el sistema utilitzar per a fer la resolució de noms era un sistema pla on totes les màquines d'un domini havien de tenir un fitxer /etc/hosts actualitzar

Guarda la taula local de resolució de noms. Normalment aquesta taula és prioritària respecte a DNS (vegeu el fitxer /etc/host.conf i també el fitxer /etc/nsswitch.conf).

$ cat /etc/hosts
127.0.0.1       localhost
127.0.0.1       casa-linux

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

Es pot utilitzar per resoldre problemes amb la resolució de noms DNS o fins i tot per prohibir l'accés a certes pàgines web. Per exemple podem "redireccionar webs prohibides" amb una entrada com la següent:

192.168.0.10          sex.com

Si la IP 192.168.0.10 és la màquina que té el servidor web d'una escola, i els fitxers /etc/hosts dels alumnes tenen aquesta entrada. Cada cop que un alumne intenti entrar a la web sex.com es trobarà amb la pàgina de l'escola.

Vegeu també:

Servidor_DNS#Antecedents_de_DNS._Fitxer_.2Fetc.2Fhosts

Manual:

/etc/hosts.conf

NOTA: Aquest fitxers només s'utilitza per a programes que utilitzin les versions antigues de libc (libc4 o libc5), per a programes glibc actuals, s'utilitza /etc/nsswitch.conf

Aquest fitxer configura el funcionament de la resolució de noms. La seva funció més important és identificar en quin ordre s'aplica la resolució de noms. Per exemple el següent fitxer /etc/host.conf:

$ cat /etc/host.conf 
order hosts,bind
multi on

Determina que primer és llegirà el fitxer de hosts (/etc/hosts) per tal de determinar noms de màquina. Si en aquest fitxer no és troba el nom de màquina, aleshores es buscarà per DNS (bind).

Consulteu la taula de:

http://www.cez.com.pe/Linux/manual%20suse%20linux%209.1/suselinux-adminguide_es/html/ch13s03.html

Per conèixer les opcions.

Manual:

  • man host.conf

Recursos:

/etc/nsswitch.conf

Amb la versió 2.0 (també coneguda com libc6) de la biblioteca GNU de C es va començar a utilitza Name Service Switch (NSS)

Pode obtenir més informació al manual:

$ man 5 nsswitch.conf

Vegeu també l'article NSSwitch

NOTA: Aquest servei i aquest fitxer s'utilitzen a les estacions de treball d'Skolelinux per fer el cache de l'autenticació via Ldap. Podeu veure l'exemple d'integració d'Ubuntu com a estació de treball a SkoleLinux a la web d'Skolelinux d'aquesta wiki.

Recursos:

/etc/resolv.conf

És el fitxer de configuració del client de DNS (llibreria resolver). Aquí s'especifica el domini al qual pertany la màquina, les ips del servidors de noms, etc.

$ cat /etc/resolv.conf 
search politecnic.org
nameserver 192.168.0.5
nameserver 195.235.113.3
nameserver 195.235.96.90

Manual:

/etc/hostname

Conté el nom de màquina:

$ cat /etc/hostname 
BSFHPCasa

Consulteu l'ordre hostname.

IMPORTANT: El fitxer no pot contindre res més, p. ex. no es poden posar comentaris. El nom de la màquina s'ha de posar sense nom de domini (no FQDN)

Fitxers /etc/hosts.allow i /etc/hosts.deny

Vegeu Xarxes_Linux#.2Fetc.2Fhosts.allow_i_.2Fetc.2Fhosts.deny

Comandes

Comanda hostname

La comanda hostname ens proporciona el nom de màquina

$ hostname
moodle

També permet establir el nom d'una màquina. Consulteu l'apartat Establir el nom de màquina

Vegeu també: Noms de màquina vàlids.

Establir el nom de màquina

Es pot canviar el nom d'una màquina amb l'ordre hostname:

$ sudo hostname nommaquina.domini

En aquest cas estem utilitzant un FQDN.

IMPORTANT: Cal tenir en compte que com és típic en Linux, les ordres no acostumen a generar canvis permanents al sistema. Per fer el canvi permanent cal modificar el fitxer /etc/hostname:
$ cat /etc/hostname
nommaquina.domini

A Ubuntu/Debian l'script d'inici:

/etc/init.d/hostname.sh
NOTA: Els sistemes que utilitzen Upstart el fitxer és: /etc/init/hostname.conf

És l'encarregat d'establir el nom de màquina.

NOTA: A Ubuntu s'està utilitzant (--acacha 05:33, 2 gen 2011 (UTC)) upstart i el fitxer és /etc/init.d/hostname
$ cat /etc/init/hostname.conf
# hostname - set system hostname
#
# This task is run on startup to set the system hostname from /etc/hostname,
# falling back to "localhost" if that file is not readable or is empty and
# no hostname has yet been set.

description     "set system hostname"

start on startup
 
task
exec hostname -b -F /etc/hostname

Fixeu-vos l'ordre que s'executa:

hostname -b -F /etc/hostname

És a dir el nom de màquina s'estableix llegint el fitxer /etc/hostname.

Podeu forçar el canvi de nom de màquina sense reiniciar:

$ sudo service hostname start
NOTA: Utilitzeu $ sudo /etc/init.d/hostname restart si no utilitzeu upstart

Finalment però no menys important és posar el nom de màquina a /etc/hosts

$ cat /etc/hosts
192.168.0.221	nommaquina.domini 

Això és així ja que realment no tindrem el nom de màquina FQDN fins que ens el proporcioni el DNS, i pot ser que no tinguem un DNS proporcionant aquest nom!

Consulteu també el manual:

$ man hostname
...
   SET NAME
      When called with one argument or with the --file option, the commands set the host name or the NIS/YP domain name.   hostname  uses  the sethost‐
      name(2) function, while all of the three domainname, ypdomainname and nisdomainname use setdomainname(2).  Note, that this is effective only  
      until the next reboot.  Edit /etc/hostname for permanent change.

      Note, that only the super-user can change the names.

      It is not possible to set the FQDN or the DNS domain name with the dnsdomainname command (see THE FQDN below).

      The host name is usually set once at system startup in /etc/init.d/hostname.sh (normally by reading the contents of a file which contains the 
      host name, e.g.  /etc/hostname).
NOTA: També es pot utilitzar sysctl per canviar el nom de màquina:
$ sudo sysctl kernel.hostname=NEW_HOSTNAME}} 

O:

$ sudo sysctl kernel.hostname

Per llegir-lo.

També es pot establir el nom de màquina amb DHCP. Consulteu:

DHCP#Noms_de_m.C3.A0quina


Comanda host

Obtenir tots els hosts d'un domini (cal estar dins del domini o que estigui permès)

$ host -l iescopernic.com
iescopernic.com name server domain.iescopernic.com.
dhcp.iescopernic.com has address 192.168.0.10
domain.iescopernic.com has address 192.168.0.7
gateway.iescopernic.com has address 192.168.0.1
moodle.iescopernic.com has address 192.168.0.7
router.iescopernic.com has address 192.168.0.10
smtp.iescopernic.com has address 192.168.0.7
www.iescopernic.com has address 192.168.0.7
$ host -lv -t any upc.es

Trying "upc.es"
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 64194
;; flags: qr aa ra; QUERY: 1, ANSWER: 2086, AUTHORITY: 0, ADDITIONAL: 0  
 

;; QUESTION SECTION:
;upc.es.                                IN      AXFR 

;; ANSWER SECTION:
upc.es.                 172800  IN      SOA     backus.upc.es. hostmaster.upcnet.es. 2008012303 7200 7200 1209600 172800
upc.es.                 172800  IN      NS      euler.upc.es.
upc.es.                 172800  IN      NS      backus.upc.es.
upc.es.                 172800  IN      A       147.83.194.21
upc.es.                 172800  IN      MX      10 mx1.upc.es.
upc.es.                 172800  IN      MX      10 mx2.upc.es.
170arl.upc.es.          172800  IN      A       147.83.18.36
170dop.upc.es.          172800  IN      A       147.83.18.37
170igg.upc.es.          172800  IN      A       147.83.18.35
147.83.78.174.upc.es.   172800  IN      A       147.83.78.174
9.194.upc.es.           172800  IN      PTR     terrance.upc.es.
38.198.upc.es.          172800  IN      PTR     voyeur.upc.es.
210aga01.upc.es.        172800  IN      A       147.83.164.16
210aga02.upc.es.        172800  IN      A       147.83.164.48
...

Per obtenir la llista de resolució inversa:

$ host -l 201.168.192.in-addr.arpa
201.168.192.in-addr.arpa name server iescopernic.com.
1.201.168.192.in-addr.arpa domain name pointer gatewayaula1.iescopernic.com.
10.201.168.192.in-addr.arpa domain name pointer pc7aula1.iescopernic.com.
11.201.168.192.in-addr.arpa domain name pointer pc8aula1.iescopernic.com.
12.201.168.192.in-addr.arpa domain name pointer pc9aula1.iescopernic.com.
14.201.168.192.in-addr.arpa domain name pointer pc11aula1.iescopernic.com.
15.201.168.192.in-addr.arpa domain name pointer pc12aula1.iescopernic.com.
16.201.168.192.in-addr.arpa domain name pointer pc13aula1.iescopernic.com.
17.201.168.192.in-addr.arpa domain name pointer pc14aula1.iescopernic.com.
18.201.168.192.in-addr.arpa domain name pointer pc15aula1.iescopernic.com.
19.201.168.192.in-addr.arpa domain name pointer pc16aula1.iescopernic.com.
2.201.168.192.in-addr.arpa domain name pointer profe.aula1.iescopernic.com.
20.201.168.192.in-addr.arpa domain name pointer switchaula1.iescopernic.com.
21.201.168.192.in-addr.arpa domain name pointer puntaccesaula1.iescopernic.com.
3.201.168.192.in-addr.arpa domain name pointer pc1aula1.iescopernic.com.
4.201.168.192.in-addr.arpa domain name pointer pc2aula1.iescopernic.com.
6.201.168.192.in-addr.arpa domain name pointer pc3aula1.iescopernic.com.
7.201.168.192.in-addr.arpa domain name pointer pc4aula1.iescopernic.com.
8.201.168.192.in-addr.arpa domain name pointer pc5aula1.iescopernic.com.
9.201.168.192.in-addr.arpa domain name pointer pc6aula1.iescopernic.com.

Comanda mtr

$ sudo apt-get install mtr

Combina les ordres ping i traceroute.

Comanda hostname

La comanda host ens proporciona el nom de la màquina.

$ hostname
moodle

Podem obtenir el FQDN (Fully Qualified Domain Name) amb la comanda

$hostname --fqdn
moodle.politecnic.org

Comanda dnsdomainname

La comanda

$ dnsdomainname
politecnic.org

Ens proporciona el nom de domini. És equivalent a executar:

$ hostname -d

Comanda nslookup

IMPORTANT: A windows hi ha un ordre equivalent del mateix nom que gairebé funciona 100% de la mateixa forma

Aquesta comanda té dos modes de funcionament:

Mode interactiu:

$ nslookup
> upc.edu
Server:         192.168.1.3
Address:        192.168.1.3#53 

Non-authoritative answer:
Name:   upc.edu
Address: 147.83.194.21

El mode interactiu també es pot iniciar apuntant a un servidor de DNS:

$ nslookup - 87.216.1.66
> upc.edu
Server:         87.216.1.66
Address:        87.216.1.66#53 

Non-authoritative answer:
Name:   upc.edu
Address: 147.83.194.21

Obtenir la informació d'un registre de zona SOA:

Primer consulteu quin DNS utilitzar:

$ cat /etc/resolv.conf 
# Generated by NetworkManager
domain BSF
search BSF
nameserver 80.58.61.250
nameserver 80.58.61.254

Obrim el mode interactiu:

$ nslookup - 80.58.61.250
> set type=soa
> upc.edu
Server:		80.58.61.250
Address:	80.58.61.250#53

Non-authoritative answer:
upc.edu
	origin = backus.upc.es
	mail addr = hostmaster.upcnet.es
	serial = 2010010802
	refresh = 14400
	retry = 1800
	expire = 1857600
	minimum = 8400

Authoritative answers can be found from:
> exit
NOTA: El correu electrònic s'obté substituïnt el primer punt per una @

Mode no interactiu:

Amb els DNS del sistema:

$ nslookup upc.es
Server:         192.168.1.3
Address:        192.168.1.3#53

Non-authoritative answer:
Name:   upc.es
Address: 147.83.194.21

Fer una consulta amb un DNS concret:

$ nslookup www.google.com 87.216.1.66

Depurar:

nslookup -swdebug 
$ cat /etc/nsswitch.conf
hosts: dns [notfound=continue] nis [notfound=continue files

# nslookup -swdebug
# nslookup
> policy
# Lookups = 3
dns [RRCR]     nis [RRCR]     files [RRRR]


$ cat /etc/nsswitch.conf
hosts:  dns [NOTFOUND=continue]  files
# Lookups = 2
dns [RCCR]     files [RRRR]

Per sortir de nslookup escriviu exit.

Consulta no recursiva:

$ nslookup -type=ns -norecurse hp.com. b.gtld-servers.net.


Recursos

Comanda nsupdate

whois

Pot proporcionar informació sobre un domini d'Internet:

$ whois iesebre.com
...
Domain servers in listed order:
  dns3.servidoresdns.net  217.76.128.129
  dns4.servidoresdns.net  217.76.129.129

Comanda dig

Segons el manual:

$ man dig

Es tracta d'una eina per fer cerques de resolució de noms de DNS.

La sintaxi és:

NOTA: $ dig [@server] [-b address] [-c class] [-f filename] [-k filename] [-m] [-p port#] [-q name] [-t type] [-x addr] [-y [hmac:]name:key] [-4] [-6] [name] [type] [class] [queryopt...]

On:

  • server: el nom o la IP del servidor de DNS (en format IPV4 o IPV6). Es pot donar un nom de màquina i aleshores dig fa la resolució abans d'executar la consulta DNS. És un paràmetre opcional, si no l'especifiquem s'utilitzen els servidors DNS del fitxer /etc/resolv.conf.
  • name: el nom del recurs de registre (resource record) que estem intentant aconseguir
  • type: Indica quin tipus de petició és desitja (ANY, A, MX, SIG...) Si no s'¡especifica res aleshores és demana el registre A.


Tota la informació d'un domini (si esta permès):

$ dig @ns.ubuntu.com ubuntu.com axfr

Múltiples consultes:

$ dig example.com any another.com any

Obtenir els servidors de correu d'un domini:

$ dig upc.es MX

; <<>> DiG 9.3.4 <<>> upc.es MX
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 20062
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 4 

;; QUESTION SECTION:
;upc.es.                                IN      MX

;; ANSWER SECTION:
upc.es.                 172800  IN      MX      10 mx2.upc.es.
upc.es.                 172800  IN      MX      10 mx1.upc.es. 

;; AUTHORITY SECTION:
upc.es.                 172800  IN      NS      euler.upc.es.
upc.es.                 172800  IN      NS      backus.upc.es. 

;; ADDITIONAL SECTION:
mx1.upc.es.             172800  IN      A       147.83.194.63
mx2.upc.es.             172800  IN      A       147.83.194.64
euler.upc.es.           172800  IN      A       147.83.2.10
backus.upc.es.          172800  IN      A       147.83.2.3 
Query time
2 msec
SERVER
147.83.21.41#53(147.83.21.41)
WHEN
Thu Jan 24 21:09:04 2008
MSG SIZE rcvd
169


Obtenir els servidors de root de DNS:

$ dig +norec +noques +nostats +nocmd @A.ROOT-SERVERS.NET

Obtenir els servidors de DNS d'un domini:

Per exemple guifi.net:

$ dig ns +norec +noques +nostats +nocmd @8.8.8.8 guifi.net.
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 24048
;; flags: qr ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0

;; ANSWER SECTION:
guifi.net.		2504	IN	NS	ns1.guifi.net.
guifi.net.		2504	IN	NS	ns3.guifi.net.
guifi.net.		2504	IN	NS	ns2.guifi.net.

Per exemple edu. :

$ dig ns +norec +noques +nostats +nocmd @A.ROOT-SERVERS.NET edu.

Recursos:

Comprovar la delegació d'una zona

Amb dig:

Per exemple per comprovar la delegació del domini tortosa.guifi.net des del domini guifi.net:

$ dig ns +norec +noques +nostats +nocmd @ns1.guifi.net tortosa.guifi.net.
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12104
;; flags: qr; QUERY: 1, ANSWER: 0, AUTHORITY: 2, ADDITIONAL: 2

;; AUTHORITY SECTION:
tortosa.guifi.net.	3600	IN	NS	ns1.tortosa.guifi.net.
tortosa.guifi.net.	3600	IN	NS	ns2.tortosa.guifi.net.

;; ADDITIONAL SECTION:
ns1.tortosa.guifi.net.	3600	IN	A	109.69.15.4
ns2.tortosa.guifi.net.	3600	IN	A	109.69.15.5


També es pot fer amb:

$ dig trace cnn.com

; <<>> DiG 9.6.1-P2 <<>> trace cnn.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 8272
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;trace.				IN	A

;; AUTHORITY SECTION:
.			494	IN	SOA	A.ROOT-SERVERS.NET. NSTLD.VERISIGN-GRS.COM. 2010012700 1800 900  604800 86400 

;; Query time: 0 msec
;; SERVER: 192.168.7.1#53(192.168.7.1)
;; WHEN: Wed Jan 27 20:52:16 2010
;; MSG SIZE  rcvd: 98
  
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 38795
;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 13, ADDITIONAL: 0

;; QUESTION SECTION:
;cnn.com.			IN	A

;; ANSWER SECTION:
cnn.com.		194	IN	A	157.166.226.25
cnn.com.		194	IN	A	157.166.226.26
cnn.com.		194	IN	A	157.166.255.18
cnn.com.		194	IN	A	157.166.255.19
cnn.com.		194	IN	A	157.166.224.25
cnn.com.		194	IN	A	157.166.224.26

;; AUTHORITY SECTION:
com.			71491	IN	NS	I.GTLD-SERVERS.NET.
com.			71491	IN	NS	J.GTLD-SERVERS.NET.
com.			71491	IN	NS	E.GTLD-SERVERS.NET.
com.			71491	IN	NS	D.GTLD-SERVERS.NET.
com.			71491	IN	NS	G.GTLD-SERVERS.NET.
com.			71491	IN	NS	K.GTLD-SERVERS.NET.
com.			71491	IN	NS	L.GTLD-SERVERS.NET.
com.			71491	IN	NS	H.GTLD-SERVERS.NET.
com.			71491	IN	NS	M.GTLD-SERVERS.NET.
com.			71491	IN	NS	B.GTLD-SERVERS.NET.
com.			71491	IN	NS	F.GTLD-SERVERS.NET.
com.			71491	IN	NS	A.GTLD-SERVERS.NET.
com.			71491	IN	NS	C.GTLD-SERVERS.NET.

;; Query time: 0 msec
;; SERVER: 192.168.7.1#53(192.168.7.1)
; ; WHEN: Wed Jan 27 20:52:16 2010
;; MSG SIZE  rcvd: 345

Obtenir la llista d'adreces IP d'un nom de màquina utilitzant un servidor de DNs concret

ARCHIVE_UBUNTU_COM_IP=$(/usr/bin/dig +nocmd @$DNS_SERVER1 $ARCHIVE_DOMAIN_NAME A +noquestion +nostats +short | head -n 1)

Consulteu: RsyncMirror#Script

dnsutils

Consulteu la secció Paquet dnsutils de l'article XarxesLinux.

Windows XP Resolver

El client DNS de XP té un protocol/algoritme força agressiu, que va ser introduït per primer cop a Windows NT 4.0 SP4.

  • El client envia la petició al primer servidor de DNS segons l'ordre especificat.
  • El client només espera 1 segon per a rebre la resposta. Si no la rep torna a envia una segona petició a tots els primers servidors de totes les interficies de xarxa.
  • Després de 2 segons més (al tercer segon) aleshores torna a enviar una petició a tots els servidors de DNS de totes les interfícies de xarxa.
  • Al cap de 4 segons torna a enviar una petició a tots els servidors de noms
  • Continua duplicant el temps de retransmissió fins a un total de 4


Cache:

Windows XP emmagatzema cada registre DNS que rep en una cache disponible per a totes les aplicacions del sistema. Aquesta cache durà el temps indicat pel camp TTL de la zona fins a un màxim de 24 hores.

NOTA: No importa quan gran sigui el TTL assignat al servidor, els clients Windows utilitzaran un TTL màxim de 24 hores

Aquest valor màxim es pot modificar al registre amb:

MaxCacheTtl
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DNSCache\Parameters
Data type: REG_DWORD


Default value: 86,400 seconds (= 24 hours)


També suporta negative caching. Per defecte té 15 minuts. Es pot modificar al registre:

MaxNegativeCacheTtl
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DNSCache\Parameters
Data type: REG_DWORD


Default value: 900 seconds (= 15 minutes)


Es pot desactivar indicant un 0.

Es pot consultar el cache de DNS amb:

ipconfig /displaydns

Es pot netejar el cache amb:

ipconfig /flushdns

Es pot desactivar el cache amb:

net stop dnscache


Només serà un canvi temporal fins al pròxim reboot. Per fer-ho permanent cal anar a Services (Administrative Tools program group) i establir el servei DNS Client service's Startup a Disabled.

Priorització de subxarxes

Windows prioritza les resolucions de noms que formin part de la subxarxa del client. Per exemple un servidor multihomed:


www.prova.eu.   IN  A  192.168.1.101
www.prova.eu.   IN  A  192.168.2.101


Si el client està a la xarxa 192.168.1.0/24, aleshores es quedarà la primera IP, si està a la xarxa 192.168.1.0/24 es quedarà amb la segona.

Això es carrega, si ho esteu utilitzant, el Round Robin que permet balancejar la carrega. Es pot desactivar al registre:

PrioritizeRecordData
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DNSCache\Parameters
Data type: REG_DWORD
Range: 0 - 1

resolvconf

NOTA: No confondre el programa resolvconf amb el fitxer /etc/resolv.conf. El programa resolvconf és opcionals en sistemes de la família Debian com és el cas d'Ubuntu

Es tracta d'un programa que permet gestionar dinàmicament la configuració de DNS

$ sudo apt-get install resolvconf

Un cop instal·lat veureu que modifica el fitxer /etc/resolv.conf:

$ ls -la /etc/resolv.conf
lrwxrwxrwx 1 root root 31 2011-01-16 09:16 /etc/resolv.conf -> /etc/resolvconf/run/resolv.conf

Com vegeu ara és un link a /etc/resolvconf/run/resolv.conf.

El programa resolvconf només és necessari quan hi ha múltiples programes que necessiten modificar dinàmicament la informació del client DNS.

IMPORTANT: Si teniu instal·lat resolvconf és important que no canvieu el fitxer resolv.conf a mà, ja que serà modificat dinàmicament

Aleshores per definir els servidors de DNS no podeu modificar directament el fitxer /etc/resolv.conf però podeu modificar el fitxer /etc/network/interfaces posant la línia:

dns-nameservers 12.34.56.78 12.34.56.79

Ara si apliqueu els canvis (o reinicieu la màquina)

$ sudo /etc/init.d/networking restart

El fitxer /etc/resolv.conf serà modificat a:

$ cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 8.8.8.8
nameserver 172.16.135.21
IMPORTANT: Posar la línia dns-nameserver al fitxer interfaces només funciona si teniu instal·lat resolvconf

Cal tenir en compte que resolvconf és una aplicació bastant nova (--acacha 08:32, 16 gen 2011 (UTC)) i alguns programes poden no funcionar. Llegiu:

/usr/share/doc/resolvconf/README

Cache de client

Consulteu:

nscd
dnsmasq
dnscache

Vegeu també

OpenFPnet
IES Nicolau Copèrnic