Entendendo TCP/IP (Parte 3) - Resolução de nomes
Neste terceiro artigo sobre TCP/IP, vou descrever o processo de resolução de nomes. Mostrarei como configurar
o cliente DNS, bem como a diferença entre nomes Netbios e DNS. Após entendidos os conceitos, passarei a falar
sobre o DNS Server, desde o registro um domínio na Fapesp até a configurações do Bind9, passando pelas
zonas de transferência e questões de segurança.
o cliente DNS, bem como a diferença entre nomes Netbios e DNS. Após entendidos os conceitos, passarei a falar
sobre o DNS Server, desde o registro um domínio na Fapesp até a configurações do Bind9, passando pelas
zonas de transferência e questões de segurança.
Introdução ao conceito de resolução de nomes
Como vimos em meu segundo artigo, a comunicação
através de uma rede TCP/IP, como a Internet, é feita através dos endereços IP.
No começo da Internet, no início dos anos 70, era relativamente fácil decorar a dúzia de endereços IP usados na rede. Mas a medida que esta foi crescendo, isso se tornou impraticável. Foi necessário criar uma forma de associar os IP a algo mais fácil de decorar. A idéia inicial foi criar um arquivo que tivesse todos os ips usados na rede associados a um nome. Este arquivo era então replicado entre as máquinas da Internet. É mais fácil decorar um nome, como por exemplo www.vivaolinux.com.br, do que o seu IP, 174.123.53.162. Este arquivo é o /etc/hosts.
O arquivo /etc/hosts contém uma estrutura bem simples. Do lado esquerdo estão os IPs, e do lado direito os nomes, como no exemplo abaixo.
# cat /etc/hosts
Você pode editar esse arquivo como quiser. Por exemplo, adicionando-se no arquivo /etc/hosts a linha abaixo:
Fará com que o IP do site www.vivaolinux.com.br responda pelo nomes vivaolinux e www.olinuxeomaximo.com.br.
# ping -c 1 vivaolinux
Resposta:
PING vivaolinux (174.123.53.162) 56(84) bytes of data.
64 bytes from vivaolinux (174.123.53.162): icmp_req=1 ttl=49 time=151 ms
--- vivaolinux ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 151.889/151.889/151.889/0.000 ms
# ping -c 1 www.olinuxeomaximo.com.br
Resposta:
PING www.olinuxeomaximo.com.br (174.123.53.162) 56(84) bytes of data.
64 bytes from vivaolinux (174.123.53.162): icmp_req=1 ttl=49 time=151 ms
--- www.olinuxeomaximo.com.br ping statistics ---
rtt min/avg/max/mdev = 151.976/151.976/151.976/0.000 ms
Com o passar o tempo, o arquivo hosts ficou grande demais. Ficou inviável replicá-lo para todas as máquinas a todo instante. Se esse esquema tivesse permanecido, em 2008 o arquivo hosts teria mais de 150.000.00 de linhas, segundo o Netcrafft.
Foi necessário criar um novo mecanismo de resolução de nomes e em novembro de 1987 foram criadas as especificações do Domain Name System (DNS) através da RFC 1035.
Vamos ver como o DNS funciona.
No começo da Internet, no início dos anos 70, era relativamente fácil decorar a dúzia de endereços IP usados na rede. Mas a medida que esta foi crescendo, isso se tornou impraticável. Foi necessário criar uma forma de associar os IP a algo mais fácil de decorar. A idéia inicial foi criar um arquivo que tivesse todos os ips usados na rede associados a um nome. Este arquivo era então replicado entre as máquinas da Internet. É mais fácil decorar um nome, como por exemplo www.vivaolinux.com.br, do que o seu IP, 174.123.53.162. Este arquivo é o /etc/hosts.
O arquivo /etc/hosts contém uma estrutura bem simples. Do lado esquerdo estão os IPs, e do lado direito os nomes, como no exemplo abaixo.
# cat /etc/hosts
172.20.16.60 olonca
127.0.0.1 localhost.localdomain localhost
127.0.1.1 olonca
172.20.1.14 intranet.minhaempresa.com.br
127.0.0.1 localhost.localdomain localhost
127.0.1.1 olonca
172.20.1.14 intranet.minhaempresa.com.br
Você pode editar esse arquivo como quiser. Por exemplo, adicionando-se no arquivo /etc/hosts a linha abaixo:
174.123.53.162 vivaolinux www.olinuxeomaximo.com.br
Fará com que o IP do site www.vivaolinux.com.br responda pelo nomes vivaolinux e www.olinuxeomaximo.com.br.
# ping -c 1 vivaolinux
Resposta:
PING vivaolinux (174.123.53.162) 56(84) bytes of data.
64 bytes from vivaolinux (174.123.53.162): icmp_req=1 ttl=49 time=151 ms
--- vivaolinux ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 151.889/151.889/151.889/0.000 ms
# ping -c 1 www.olinuxeomaximo.com.br
Resposta:
PING www.olinuxeomaximo.com.br (174.123.53.162) 56(84) bytes of data.
64 bytes from vivaolinux (174.123.53.162): icmp_req=1 ttl=49 time=151 ms
--- www.olinuxeomaximo.com.br ping statistics ---
rtt min/avg/max/mdev = 151.976/151.976/151.976/0.000 ms
Com o passar o tempo, o arquivo hosts ficou grande demais. Ficou inviável replicá-lo para todas as máquinas a todo instante. Se esse esquema tivesse permanecido, em 2008 o arquivo hosts teria mais de 150.000.00 de linhas, segundo o Netcrafft.
Foi necessário criar um novo mecanismo de resolução de nomes e em novembro de 1987 foram criadas as especificações do Domain Name System (DNS) através da RFC 1035.
Vamos ver como o DNS funciona.
É muita informação! Obrigado por explicar de maneira didática todos esses conceitos. A série como um todo já está nos meus favoritos. ;-)
Abraço!