Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
DNS
(Domain Name System)
Resoluo de Nomes
Os humanos so melhores com nomes do que com nmeros
Memorizar e usar nomes de maquinas em vez de endereos IP mais fcil www.lip.pt 193.136.91.234
Resoluo de nomes:
Atravs de ficheiros locais /etc/hosts Atravs de bases de dados locais (NIS / YP, NIS+) Atravs do DNS
/etc/hosts
Simples de usar:
Cada linha corresponde a um host Formato:
# Endereo-IP nome-canonico aliases
193.136.91.234 127.0.0.1
www.lip.pt localhost.localdomain
www localhost
No possui escalabilidade:
No podemos introduzir todos os sistemas da Internet manualmente No eficiente copiar manualmente o ficheiro para todos os sistemas aps cada actualizao
NIS
O NIS uma forma de distribuir informao de configurao como o /etc/hosts
usado em redes locais
Escolha
Existindo diversas fontes para a informao:
NIS, NIS+, /etc/hosts, DNS
/etc/nsswitch.conf
passwd: shadow: group: #hosts: hosts: files nisplus nis files files nisplus nis db files nisplus nis dns files dns
#services: nisplus [NOTFOUND=return] files #networks: nisplus [NOTFOUND=return] files #protocols: nisplus [NOTFOUND=return] files #rpc: nisplus [NOTFOUND=return] files #ethers: nisplus [NOTFOUND=return] files #netmasks: nisplus [NOTFOUND=return] files # rpcbootparamd or local file bootparams: nisplus [NOTFOUND=return] files ethers: netmasks: networks: protocols: rpc: services: netgroup: publickey: automount: aliases: files files files files files files nisplus nisplus files nisplus files nisplus
DNS
O DNS uma base de dados distribuda que usada pelas aplicaes TCP/IP para efectuar:
O mapeamento de nomes em endereos IP. O mapeamento inverso de endereos IP em nomes. Encaminhamento de Email, etc
O DNS distribudo porque no existe nenhum sistema na Internet que possua toda a informao.
Os servidores de DNS so responsveis por fornecer a informao.
DNS
Os servidores de DNS so implementados como processos (bind / named). Os clientes de DNS so implementados como funes de biblioteca (resolver):
Com as quais a aplicao compilada
DNS
root arpa com edu gov mil int net org pt uk
...
tw
in-addr sun
fnal
ripe
linux
uc
co
com
193
www
www
www www
dei
ibm
asus
ftp
www
www
DNS
Cada n da arvore possui uma etiqueta com at 63 caracteres.
O n de topo no possui nome. No existe distino entre nomes em maisculas e minsculas.
Cada nome completo l-se de baixo para cima separando cada nvel por um ponto e terminando em ponto.
Os nomes que no terminam em ponto tem de ser completados, o modo como so completados dependo do software usado. Um nome que termina em ponto designa-se por Fully Qualified Domain Name (FQDN)
Os domnios de topo mil e gov so para uso dos militares e governo dos Estados Unidos. A informao de topo da arvore de DNS mantida num conjunto de servidores conhecido por root name servers.
Estes servidores mantm informao sobre as delegaes dos domnios de topo
DNS
O DNS de topo gerido pelo ICANN:
Existem 13 servidores da root zone do DNS de A a M Mantm uma copia de http://www.internic.net/zones/root.zone
IPv4 address
A B C D 198.41.0.4 192.228.79.201 192.33.4.12 128.8.10.90
IPv6 address
Operator
Location
distributed using anycast Marina Del Rey, California, U.S. distributed using anycast College Park, Maryland, U.S.
Soft
BIND BIND BIND BIND
2001:503:BA3E::2:30 VeriSign 2001:478:65::53 (not in USC-ISI root zone yet) Cogent Communications University of Maryland
E
F G H I J K L M
192.203.230.10
192.5.5.241 192.112.36.4 128.63.2.53 192.36.148.17 192.58.128.30 193.0.14.129 199.7.83.4 202.12.27.33 2001:500:1::803f:235 2001:7fe::53 (testing, not in root zone yet) 2001:503:C27::2:30 2001:7fd::1 2001:500:3::42 2001:dc3::35 2001:500:2f::f
NASA
Internet Systems Consortium Defense Information Systems Agency U.S. Army Research Lab Autonomica VeriSign RIPE NCC ICANN WIDE Project
BIND
BIND BIND NSD BIND BIND NSD NSD BIND
DNS
Os servidores de topo:
Existe mais de um servidor por detrs de cada endereo IP associado s letras A a M Algumas letras usam anycast
Anycast e DNS:
Permite replicao geogrfica dos servidores Funciona anunciando o mesmo endereo IP via BGP a partir de mltiplas localizaes Na prtica permite que em cada local seja escolhido o servidor mais prximo Permite redundncia Quando um servidor falha a sua rota automaticamente removida Outra rota mais distante passa a ser escolhida
DNS
O ICANN controla tambm diversos domnios TLD genricos:
O registo nestes domnios delegado em registrars
O registo em .edu:
operado pelo net.educase.edu Organizao sem fins lucrativos criada pela Internet Society
DNS
Muitos domnios de segundo nvel subdividem o seu domnio em mais sub-domnios de acordo:
com a sua estrutura administrativa ou distribuio geogrfica.
Uma vez que a delegao de uma zona (domnio) tenha sido efectuada da responsabilidade da organizao qual a delegao foi efectuada:
Disponibilizar a informao sobre essa zona atravs da implementao de servidores de DNS. Cada vez que um novo sistema adicionado a uma zona o administrador da rede deve introduzir no servidor DNS correspondente o nome e endereo IP do novo sistema.
Cada zona tem de possuir um servidor de DNS primrio e um ou mais servidores de DNS secundrios:
Servidor de DNS primrio: obtm a sua informao a partir de ficheiros em disco. Servidor de DNS secundrio: obtm a sua informao a partir de informao copiada do servidor de DNS primrio.
DNS
Os servidores secundrios existem para garantir a disponibilidade da informao sobre uma zona em caso de falha do servidor primrio.
A transferncia de informao sobre uma zona entre um servidor primrio e um servidor secundrio chama-se transferncia de zona.
DNS
Quando um servidor que suporta recurso recebe um pedido de informao para uma zona sobre a qual no possui informao
desencadeado um processo iterativo de traduo.
Cada servidor conhece os endereos IP de um ou vrios servidores de DNS responsveis pela root:
Informao sobre os root servers no muda frequentemente Desta forma possvel obter informao sobre os endereos IP dos servidores responsveis pelos domnios de topo. Contactando o servidor de topo pode-se obter informao sobre os servidores responsveis pelos domnios de segundo nvel O processo continua iterativamente at encontrar o servidor responsvel pela zona que contm a informao que se pretende obter, que ento questionado directamente.
Para melhorar o desempenho do DNS cada servidor mantm uma cache com a informao que obteve durante o seu funcionamento.
Cada informao em cache possui um tempo de vida ao fim do qual expira
O Campo Flags
O campo de flags divide-se em:
QR (1) opcode (4) AA (1) TC (1) RD (1) RA (1) zero (3) rcode (4)
QR: 0 a mensagem uma questo, 1 a mensagem uma resposta. AA: 1 o servidor que est a responder autoritria para a zona. TC: 1 mensagem truncada a 512 bytes (s usado com UDP). RD: 1 quando usado numa query indica que se pretende que o servidor use recursividade para responder query. 0 numa query indica que se o servidor no for autoritrio para a zona deve apenas retornar uma lista de servidores que o sejam.
Um servidor root nunca aceita queries recursivas Cada vez mais servidores tambm possuem esta politica. Devem ser os servidores locais a efectuar a recursividade
RA: usado nas respostas para indicar que o servidor suporta recursividade. RCODE: 0 OK, 3 erro.
O Campo Questes
O campo de questes divide-se em:
Nome a traduzir Tipo de questo (16) Classe da questo ( 1 = IP) (16)
Nome a traduzir: sequncia de etiquetas que so precedidas por um byte com o numero de caracteres de cada etiqueta e terminando com um byte com valor zero.
ns.dns.pt.
2 n s 3 d n s 2 p t 0
Tipo de questo: o tipo de questo indica o tipo informao (RR) que se pretende obter:
Nome A NS CNAME PTR HINFO MX AXFR ANY Valor 1 2 5 12 13 15 252 255 Descrio da informao a obter Endereo IP Name server responsvel por um domnio Nome cannico, um nome virtual que aponta para o nome real Nome a partir de endereo (Pointer) Informao sobre o host, duas strings com CPU e sist. operativo Nome e prioridade do servidor de email para um host / domnio Pedido de transferncia de zona Obteno de todos os registos
Dados
Nome do domnio: nome ao qual os dados (RR) corresponde. Tipo: especifica um dos tipos de RR tal como nas questes. Tempo de vida: nmero de segundos que um cliente DNS pode manter esta informao em cache (2 dias um valor usual). Tamanho dos dados: Nmero de bytes do campo de dados. Dados: resposta depende do tipo de RR. Para um endereo IP so quatro bytes. Para nomes usado o formato mencionado anteriormente.
Envia uma query para o servidor de DNS usando UDP. A query usa:
O bit RD a 1 (deseja-se recursividade) O bit QR a 0 ( uma questo) Classe 1 (questo sobre IP) Tipo 1 (pretende-se obter um RR do tipo A endereo IP)
O servidor verifica se possui informao sobre a zona correspondente ao nome que se pretende traduzir:
Pode existir em cache ou numa zona localmente suportada Caso afirmativo responde imediatamente ao cliente usando UDP. Se for primrio para a zona a resposta ter o bit de autoritrio a 1. Caso contrario contactar outros servidores para obter a informao.
Mapeamento Reverso
possvel obter o nome correspondente a um endereo IP atravs da funo gethostbyaddr() Para este efeito existe o domnio in-addr.arpa. As varias classes de endereos IP atribudas podem ser registadas como sub-domnios debaixo deste domnio. Para efectuar o mapeamento inverso da rede 193.139.77.0 / 24 necessria a delegao do domnio 77.139.193.in-addr.arpa a um servidor de DNS. O servidor deve usar registos PTR para efectuar o mapeamento entre os endereos IP e o nome correspondente. O mapeamento reverso frequentemente usado pelos servidores (por ex. o SSH) para verificar que os clientes tm origem em domnios de confiana Um cliente que no tenha um mapeamento reverso frequentemente considerado suspeito
Resoluo:
O servidor local usa a sua lista de root name servers para seleccionar um servidor que ser interrogado para determinar os endereos IP dos servidores de DNS responsveis por ch. O servidor root responde com registos autoritrios para os nomes dos servidores de DNS de ch e informao adicional com os endereos IP destes servidores. O servidor local questiona um dos servidores de DNS de ch para obter os endereos IP dos servidores responsveis pelo domnio cern.ch. O servidor ch responde com registos autoritrios para os nomes dos servidores de DNS de cern.ch e informao adicional com os seus endereos IP. Finalmente um servidor de DNS de cern.ch interrogado para obter o endereo IP de www.cern.ch. O servidor de cern.ch responde com o endereo IP ou com a indicao de que o RR no existe.
DNS
Em sistemas *NIX a configurao do cliente de DNS efectuada no ficheiro /etc/resolv.conf
search lip.pt nameserver 10.226.1.1 nameserver 10.226.1.2
Ateno alguns utilitrios de configurao podem reescrever o /etc/resolv.conf Em RH se o NetworkManager estiver activo a configurao do DNS poder ser reescrita A configurao faz-se tambm atravs dos scripts /etc/sysconfig/network-scripts/ifcfg-ethX
DOMAIN=lip.pt DNS1=10.226.1.1
DNS2=10.226.1.2
DNS
Em sistemas *NIX o ficheiro de configurao do servidor de DNS chama-se /etc/named.conf
acl ns { 192.178.4.3; }; acl my-net { 192.137.86.0/24; }; options { directory /etc/namedb; query-source address * port 5678; recursion yes; allow-transfer { ns; my-net; }; allow-recursion { my-net; }; }; zone . { type hint; file named.root; }; zone blabla.net { type master; file master/blabla.net; }; zone 86.137.192.in-addr.arpa { type master; file master/192.137.86; };
$TTL 86400 @
dns1.blabla.net. sysadm.blabla.net. ( ; Serial number yymmddss, xx zone change ; Refresh 4 hours ; Retry 2 hours ; Expire 7 days ; minimum time-to-live 1 day dns1.blabla.net. dns2.blabla.net. 10 20 mail1.blabla.net. mail2.blabla.net.
frog frog dns1.frog dns2.frog alfa beta delta mail1 mail2 dns1 dns2
IN IN IN IN IN IN IN IN IN IN IN
dns1.frog.blabla.net. dns2.frog.blabla.net. 192.178.231.2 192.178.234.7 192.137.86.56 192.137.86.92 193.116.2.82 192.137.86.12 alfa.blabla.net. 192.137.86.14 123.81.11.5
$TTL 86400 @
IN SOA 2010030901 28800 7200 604800 86400 ) IN IN NS NS PTR PTR PTR PTR
dns1.blabla.net. sysadm.blabla.net. ( ; Serial number yymmddss, xx zone change ; Refresh 4 hours ; Retry 2 hours ; Expire 7 days ; minimum time-to-live 1 day dns1.blabla.net. dns2.blabla.net. mail1.blabla.net. dns1.blabla.net. alfa.blabla.net. beta.blabla.net.
12 14 56 92
IN IN IN IN
UDP e TCP
O DNS suporta UDP e TCP:
Ambos os protocolos usam o mesmo numero de porta (53).
As transferncias de zona entre servidores primrios e secundrios so sempre efectuadas usando TCP:
Para garantir maior fiabilidade. Por existir probabilidade elevada da transferncia precisar mais de 512 bytes.
Exemplos
Traduzir via DNS o nome de um host
$ host lnlip01.lip.pt lnlip01.lip.pt has address 10.1.1.101
$ host www.cern.ch www.cern.ch is an alias for webr4.cern.ch. webr4.cern.ch has address 137.138.137.177
Exemplos
Obter via DNS o nome dos servidores de mail para um domnio:
$ host -t MX cern.ch cern.ch mail is handled by 10 cernmxgwlb.cern.ch.
Exemplos
$ host vT www.cern.ch
Trying "www.cern.ch" ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 5145 ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 3, ADDITIONAL: 6
NS NS NS
;; ADDITIONAL SECTION: scsnms.switch.ch. 53873 IN A 130.59.1.30 scsnms.switch.ch. 53873 IN A 130.59.10.30 scsnms.switch.ch. 53873 IN AAAA 2001:620::1 ext-dns-1.cern.ch. 3146 IN A 192.65.187.5 ext-dns-2.cern.ch. 10101 IN A 192.91.245.85 ext-dns-2.cern.ch. 10101 IN AAAA 2001:1458:e008:1::2 Received 261 bytes from 10.226.1.1#53 in 0 ms
Exemplos
$ dig +trace +tcp www.lip.pt
; <<>> DiG 9.2.4 <<>> +trace +tcp www.lip.pt ;; global options: printcmd . 234746 IN NS C.ROOT-SERVERS.NET. . 234746 IN NS D.ROOT-SERVERS.NET. . 234746 IN NS E.ROOT-SERVERS.NET. . 234746 IN NS F.ROOT-SERVERS.NET. . 234746 IN NS G.ROOT-SERVERS.NET. . 234746 IN NS H.ROOT-SERVERS.NET. . 234746 IN NS I.ROOT-SERVERS.NET. . 234746 IN NS J.ROOT-SERVERS.NET. . 234746 IN NS K.ROOT-SERVERS.NET. . 234746 IN NS L.ROOT-SERVERS.NET. . 234746 IN NS M.ROOT-SERVERS.NET. . 234746 IN NS A.ROOT-SERVERS.NET. . 234746 IN NS B.ROOT-SERVERS.NET. ;; Received 508 bytes from 10.226.1.1#53(10.226.1.1) in 1 ms pt. 172800 IN NS NS.DNS.BR. pt. 172800 IN NS NS.DNS.pt. pt. 172800 IN NS AUTH200.NS.UU.NET. pt. 172800 IN NS NS2.NIC.FR. pt. 172800 IN NS NS-EXT.ISC.ORG. pt. 172800 IN NS AUTH210.NS.UU.NET. pt. 172800 IN NS NS2.DNS.pt. ;; Received 363 bytes from 192.33.4.12#53(C.ROOTSERVERS.NET) in 24 ms lip.pt. 28800 IN NS ns02.fccn.pt. lip.pt. 28800 IN NS lnnet02.lip.pt. lip.pt. 28800 IN NS afnet01.lip.pt. ;; Received 215 bytes from 200.160.0.5#53(NS.DNS.BR) in 235 ms www.lip.pt. 86400 IN CNAME lnnet08.lip.pt. lnnet08.lip.pt. 86400 IN A 193.136.91.234 lip.pt. 86400 IN NS afnet01.lip.pt. lip.pt. 86400 IN NS ns02.fccn.pt. lip.pt. 86400 IN NS lnnet02.lip.pt. ;; Received 210 bytes from 193.136.2.228#53(ns02.fccn.pt) in 5 ms