DNS é o Domain Name Server, ele simplesmente converte nome de maquinas para numeros IP, no qual cada maquina conectada a internet possui um.
Para conhecedores, DNS é o Sistema de Nome de Domínio. As regras que nomeiam máquinas e software que transformam estes nomes para números de IP. Este documento HOWTO defini tais cartografias que se usam num sistema de Linux. Uma cartografia é simplesmente uma associação entre duas coisas, neste caso uma máquina nomeada, como ftp.linux.org, e as máquinas que IP numeram, 199.249.150.4.
DNS é, para o 'uninitiated' (você ;-), um das áreas mais opacas da administração de rede. Este HOWTO tenta fazer algumas coisas leve. Descreve como montar um simples servidor de nome DNS. Começando com um caching só de servidor e indo montar um servidor de DNS primário para um domínio. Para ligações mais complexas você pode confirir a seção de ``FAQ'' deste documento. Se não for descrito lá você deve ler a Documentação Real. Eu voltarei no qual esta Documentação Real consiste ``no último capítulo''.
Antes de começar você deve configurar sua máquina de forma que possa acessar o telnet por fora, e possa fazer com sucesso qualquer tipo de conexões com a rede, devendo ser capaz especialmente de fazer um telnet para 127.0.0.1 e acessar a sua própria máquina (teste isto agora!). Você também precisa de um bom /etc/host.conf (ou /etc/nsswitch.conf), /etc/resolv.conf e /etc/hosts estes arquivos dão o ponto de partida, desde que eu não explique como eles funcionam aqui.
Se você não tem tudo isso montado e funcionando o HOWTO networking/NET-2 explica como montar. Leia-o.
Se você está usando SLIP ou PPP você precisará por em funcionamento. Se não leia o HOWTO PPP.
Quando eu digo "sua máquina" eu quero dizer a máquina que você está tentando montar o DNS.
Qualque outra máquina que você poderia usar não é envolvido em seu esforço de networking.
Eu irei assumir que você não está atrás de qualquer tipo de firewall que bloqueia pedidos de nome.
Se você precisa de uma configuração especial, veja a seção de``FAQ''.
No Unix um servidor de nomes é um programa chamado named. É uma parte do pacote do bind o qual é coordenado por Paul Vixie para o Consórcio de Software para a Internet.
O Named é incluído na maioria das distribuições do Linux e normalmente é instalado como /usr/sbin/named. Se você tem um named provavelmente poderá usa-lo; se você não o tem adquira o binário para Linux no Site de ftp do Linux, ou adquire um mais recente e com uma maior fonte em ftp.vix.com:/pub/bind no sub-diretório de release ou testing (lançamento ou em teste), qualquer tipo de ajuste é do seu melhor estilo de vida.
DNS é um banco de dados net-wide. Tome cuidado sobre o que você puser nele. Se você pôs algo jogue fora, você, e outros adquirirão isto. Mantenha o seu DNS limpo e consistente e você obterá um bom serviço.
Aprenda a usa-lo, admin, e depura-lo pois você será outro bom admin impedindo que a rede caia de joelhos sobrecarregados por 'mismanagement'.
Neste documento eu declaro um par de coisas que não são completamente verdadeira (elas são pelo menos meia verdades). Tudo no interesse de simplificação. Coisas que vão (provavelmente ;-) trabalhar se você acredita no que eu digo.
Tip: Faça copias auxiliares de todos os arquivos que eu ensinar e que você, assim se depois de passar por isto nada funcionar você pode voltar para o seu velho, Estado da Arte de trabalho.
Um caching somente para o Servidor de nomes.
A primeira punhalada na configuração do DNS, é muito útil para usuários de dialup. Um caching somente para o Servidor de nomes ele achará a resposta para nomear as questões e se lembrará da resposta da próxima vez que precisar.
Primeiro precisamos de um arquivo chamado /etc/named.boot. Ele é lido quando o named começa. No momento ele deve conter simplesmente isto:
_______________________________________________________________ ; Arquivo de Boot somente para o servidor de nomes ; directory /var/named ; ; type domain source file or host ; tipo dominio fonte do arquivo ou do host cache . root.cache primary 0.0.127.in-addr.arpa pz/127.0.0 _______________________________________________________________
MUITO IMPORTANTE: Em algumas versões deste documento os conteúdos de arquivo listado aqui terá um par de espaços ou um Tab antes do primeiro nome. Não é suposto que estão no arquivo. Apague qualquer espaço principalmente nos arquivos que você cortou e colou deste HOWTO.
A linha `Directory ' indica ao named onde procurar os arquivos. Todos os arquivos do named subseqüentemente será relativo a ele. /var/named é o diretório correto de acordo com o Padrão de Sistemas de Arquivo do Linux. Assim pz é um diretório debaixo de /var/named, i.e., /var/named/pz.
O arquivo named /var/named/root.cache é named nsito. O arquivo /var/named/root.cache deve conter:
_______________________________________________________ . 518400 NS D.ROOT-SERVERS.NET. . 518400 NS E.ROOT-SERVERS.NET. . 518400 NS I.ROOT-SERVERS.NET. . 518400 NS F.ROOT-SERVERS.NET. . 518400 NS G.ROOT-SERVERS.NET. . 518400 NS A.ROOT-SERVERS.NET. . 518400 NS H.ROOT-SERVERS.NET. . 518400 NS B.ROOT-SERVERS.NET. . 518400 NS C.ROOT-SERVERS.NET. ; D.ROOT-SERVERS.NET. 3600000 A 128.8.10.90 E.ROOT-SERVERS.NET. 3600000 A 192.203.230.10 I.ROOT-SERVERS.NET. 3600000 A 192.36.148.17 F.ROOT-SERVERS.NET. 3600000 A 192.5.5.241 G.ROOT-SERVERS.NET. 3600000 A 192.112.36.4 A.ROOT-SERVERS.NET. 3600000 A 198.41.0.4 H.ROOT-SERVERS.NET. 3600000 A 128.63.2.53 B.ROOT-SERVERS.NET. 3600000 A 128.9.0.107 C.ROOT-SERVERS.NET. 3600000 A 192.33.4.12 _______________________________________________________
Lembre-se do que eu disse sobre espaços principalmente! Este arquivo descreve os servidores de nome de raiz no mundo. Ele é mudado com o passar do tempo e deve ser mantido. Veja a seção de ``manutenção'' para manter este arquivo atualizado. Este arquivo é descrito na página man named, mas é, IMHO, melhor compreendido por pessoas que já entendem de named.
A próxima linha em named.boot é a linha primária. Eu explicarei seu uso num capítulo mais recente, no momento coloque somete isto no arquivo 127.0.0.0 no subdiretório pz:
__________________________________________________________________ @ IN SOA ns.linux.bogus. hostmaster.linux.bogus. ( 1 ; Serial 28800 ; Refresh 7200 ; Retry 604800 ; Expire 86400) ; Minimum TTL NS ns.linux.bogus. 1 PTR localhost. __________________________________________________________________
Logo, você precisa de um /etc/resolv.conf que se parece com algo assim:
__________________________________________________________________ search sub_dominio.seu-domínio.edu seu-domínio.edu nameserver 127.0.0.1 __________________________________________________________________
A linha `Search' especifica que os domínios deve ser procurados para qualquer nome de host que queremos conectar. A linha `Nameserver' especifica o endereço do seu nameserver, neste caso sua própria máquina desde que o seu named rode. Se você quer listar alguns servidores de nomes coloque uma linha de `Nameserver' para cada um. (Nota: Nunca o named lê este arquivo, o resolver é que usa o named.)
Para ilustrar o que este arquivo faz: Se um cliente tenta observar foo, foo.sub_dominio.seu-dominio.edu é primeiro experimentado, então foo.seu-domínio.edu, finalmente foo. Se um cliente tenta observar sunsite.unc.edu, sunsite.unc.edu.sub_dominio.seu-dominio.edu é experimentado primeiramente (sim, é tolo, mas isto é o modo e que seja), então sunsite.unc.edu.seu-domínio.edu, e finalmente sunsite.unc.edu. Você pode não querer pôr muitos domínios na linha de procura, pois leva muito tempo para procurar por eles.
O exemplo assume que você pertence ao domínio sub_domínio.seu-domínio.edu, sua máquina então, provavelmente é chamado sua-maquina.sub_domínio.seu-domínio.edu. A linha de procura não deveria conter o seu TLD (Nivel do Topo de Domínio, `Edu' neste caso). Se você freqüentemente precisa conectar aos hosts em outro domínio podemos somar aquele domínio para a linha de procura:
________________________________________________________________________ search subdominio.seu-domínio.edu seu-domínio.edu.edu outro-domínio.com ________________________________________________________________________
e assim por diante. Obviamente você precisa pôr o domínio real de nomes. Por favor note a falta de períodos ao término dos nomes de domínio.
Logo, ou dependendo de sua versão de libc você precisa configurar o /etc/nsswitch.conf ou /etc/host.conf. Se você já tem nsswitch.conf que é o qual configuraremos, se não, nós configuraremos o host.conf.
/etc/nsswitch.conf
Este é um arquivo longo que especifica onde adquirir tipos diferentes de dados, de arquivos ou banco de dados. Normalmente contém comentários úteis ao topo que você deve considerar, agora. Depois de achar a linha que começa com `Hosts:', deverá conter:
______________________________________________________________________ hosts: files dns ______________________________________________________________________
Se não há nenhuma linha que começa com `Hosts: ' então ponha uma acima. Este arquivo diz que os programas devem olhar primeiro no arquivo de /etc/hosts, e então, confir o DNS de acordo com o resolv.conf.
/etc/host.conf
Contém várias linhas provavelmente, e deve começar com ORDER e deve aparecer com:
______________________________________________________________________ order hosts,bind ______________________________________________________________________
Se não houver nenhum linha de `order' você deve colocar. Ela conta ao host de nomes quem soluciona as rotas para usar primeiro em /etc/hosts, então pergunta ao servidor de nomes (o qual você disse no resolv.conf que está em 127.0.0.1). Estes dois arquivos são documentados mais recentemente na páginas do man resolv(8) (faça `Man 8 resolv') na maioria das distribuições de Linux. Aquela página de man é IMHO legível, e todo mundo, especialmente admins de DNS, deveria ler. Faça agora, se você diz a si "eu farei isto depois" você nunca ira adquirir conhecimento sobre isto.
Inicializando o named
Afinal de contas esta na hora de começar o named. Se você está usando uma conexão dialup conecte primeiro. Digite 'ndc start', e pressione return, não há opções. Se for back-fires tente `/usr/sbin/ndc start' ao invés. Se isso parte do back-fire veja a seção ``FAQ''. Agora você pode testar a sua configuração.
Se você ver o seu arquivo de mensagem de syslog (normalmente chamado de /var/adm/messages, mas pode estar em outro diretório olhe em /var/log e o outro arquivo é o syslog) enquanto começa o named (tail -f /var/adm/messages) você deve ver algo como:
Jun 30 21:50:55 roke named[2258]: starting. named 4.9.4-REL Sun Jun 30 21:29:03 MET DST 1996 janl@roke.slip.ifi.uio.no:/var/tmp/bind/named Jun 30 21:50:55 roke named[2258]: cache zone "" loaded (serial 0) Jun 30 21:50:55 roke named[2258]: primary zone "0.0.127.in-addr.arpa" loaded (serial 1)
Se há qualquer mensagem sobre erros então há um engano. Nomei o arquivo de named é em (um de named.boot e root.cache eu espero :-) Mate o named e volte a conferir o arquivo.
Agora é a hora para começar o nslookup para examinar seu handywork.
$ nslookup Default Server: localhost Address: 127.0.0.1 >
Se isto ocorrer entao o named esta rodando. É o que esperamos. Qualquer outra coisa, volte e confira tudo. Toda vez que mudar o named.boot o arquivo precisa ser reiniciado o named usando o comando ndc restart.
Agora podemos entrar numa questão. Provar que observa alguma máquina perto de você. pat.uio.no está perto de mim, na Universidade de Oslo,:
> pat.uio.no Server: localhost Address: 127.0.0.1 Name: pat.uio.no Address: 129.240.2.50
O nslookup perguntou agora ao seu named para procurar a máquina pat.uio.no. Ele então contacta um das máquinas do servidor de nomes do named no seu arquivo root.cache, e perguntou ao seu modo. Poderia levar minutos enquanto adquirimos o resultado como procurar todos os domínios que usamos no named em /etc/resolv.conf.
Se tentarmos novamente iremos receber:
> pat.uio.no Server: localhost Address: 127.0.0.1 Non-authoritative answer: Name: pat.uio.no Address: 129.240.2.50
Note a resposta na linha `Non-authoritative answer:' que adquirimos. Isto significa que o named não saiu da rede para perguntar, ao invés disto olhou no cache e achou lá. Mas o cache informou que poderia ser obsoleto (ultrapassado). Assim você está sendo informado de um perigo (muito leve) por isto é dito `Non-authoritative answer:'. Quando o nslookup respondeu levou segundos que você pediu ao host é um sinal seguro que o cache do named está trabalhando. Você pode sair do nslookup dando o comando `exit'.
Se você usa dialup (ppp, slip) como usuário por favor leia a seção de ``conexões de, há um pouco de conselho lá para você.
Agora que sabemos um caching de named. Beba uma cerveja, leite, ou qualque coisa ao qual você prefere celebrar.
4. Um domínio simples.
Como montar o seu próprio domínio.
4.1. Mas primeiro alguma teoria básica
Antes de começarmos esta seção vou apresentar alguma teoria de como o DNS trabalha. E você vai ler isto porque é importante. Se você for um `Wanna' você deve ler isto rapidamente. Pare quando encontrar o arquivo named.boot.
DNS é um sistema hierárquico. O topo é escrito `.' e pronunciado `Root'. Debaixo de . há vários Nivéis de Topo de Domínios(TLDs), os conhecidos são ORG, COM, EDU e NET, mas há muitos.
Quando procura-se uma máquina a questão procede recursivamente na hierarquia que começa no topo. Se você quer achar o endereço de prep.ai.mit.edu seu servidor de nome tem que achar um servidor de nomes que serve ao edu. Pergunta por um . servidor (já sabe que os servidores . estão no seu arquivo de root.cache), o servidor . dá uma lista de servidores edu:
$ nslookup Default Server: localhost Address: 127.0.0.1
Começa a perguntar há um servidor na raiz.
> server c.root-servers.net. Default Server: c.root-servers.net Address: 192.33.4.12
Define o tipo de questão para NS (servidor de registro nomes). > set q=ns
Pergunta sobre edu. > edu.
O . aqui é significante, conta ao servidor que estamos perguntando há aquele edu sobre o que esta abaixo dele (assim estreita a nossa procura um pouco).
edu nameserver = A.ROOT-SERVERS.NET edu nameserver = H.ROOT-SERVERS.NET edu nameserver = B.ROOT-SERVERS.NET edu nameserver = C.ROOT-SERVERS.NET edu nameserver = D.ROOT-SERVERS.NET edu nameserver = E.ROOT-SERVERS.NET edu nameserver = I.ROOT-SERVERS.NET edu nameserver = F.ROOT-SERVERS.NET edu nameserver = G.ROOT-SERVERS.NET A.ROOT-SERVERS.NET internet address = 198.41.0.4 H.ROOT-SERVERS.NET internet address = 128.63.2.53 B.ROOT-SERVERS.NET internet address = 128.9.0.107 C.ROOT-SERVERS.NET internet address = 192.33.4.12 D.ROOT-SERVERS.NET internet address = 128.8.10.90 E.ROOT-SERVERS.NET internet address = 192.203.230.10 I.ROOT-SERVERS.NET internet address = 192.36.148.17 F.ROOT-SERVERS.NET internet address = 192.5.5.241 G.ROOT-SERVERS.NET internet address = 192.112.36.4
Isto nos diza que * .root-servers.net serve ao edu., assim nós podemos ir em c é perguntar. Agora nós queremos saber quem serve ao próximo nível do domínio nomes: mit.edu.:
> mit.edu. Server: c.root-servers.net Address: 192.33.4.12
Non-authoritative answer: mit.edu nameserver = STRAWB.mit.edu mit.edu nameserver = W20NS.mit.edu mit.edu nameserver = BITSY.mit.edu
Authoritative answers can be found from: STRAWB.mit.edu internet address = 18.71.0.151 W20NS.mit.edu internet address = 18.70.0.160 BITSY.mit.edu internet address = 18.72.0.3
steawb, w20ns e bitsy são servidores do mit, selecionaremos um e buscaremos sobre ai.mit.edu:
> server W20NS.mit.edu.
Nomes de anfitrião não são nenhum caso sensível, mas eu uso o meu mouse para cortar e colar assim é copiado como o da tela.
Server: W20NS.mit.edu Address: 18.70.0.160
> ai.mit.edu. Server: W20NS.mit.edu Address: 18.70.0.160
Non-authoritative answer: ai.mit.edu nameserver = WHEATIES.AI.MIT.EDU ai.mit.edu nameserver = ALPHA-BITS.AI.MIT.EDU ai.mit.edu nameserver = GRAPE-NUTS.AI.MIT.EDU ai.mit.edu nameserver = TRIX.AI.MIT.EDU ai.mit.edu nameserver = MUESLI.AI.MIT.EDU
Authoritative answers can be found from: AI.MIT.EDU nameserver = WHEATIES.AI.MIT.EDU AI.MIT.EDU nameserver = ALPHA-BITS.AI.MIT.EDU AI.MIT.EDU nameserver = GRAPE-NUTS.AI.MIT.EDU AI.MIT.EDU nameserver = TRIX.AI.MIT.EDU AI.MIT.EDU nameserver = MUESLI.AI.MIT.EDU WHEATIES.AI.MIT.EDU internet address = 128.52.32.13 WHEATIES.AI.MIT.EDU internet address = 128.52.35.13 ALPHA-BITS.AI.MIT.EDU internet address = 128.52.32.5 ALPHA-BITS.AI.MIT.EDU internet address = 128.52.37.5 GRAPE-NUTS.AI.MIT.EDU internet address = 128.52.32.4 GRAPE-NUTS.AI.MIT.EDU internet address = 128.52.36.4 TRIX.AI.MIT.EDU internet address = 128.52.32.6 TRIX.AI.MIT.EDU internet address = 128.52.38.6 MUESLI.AI.MIT.EDU internet address = 128.52.32.7 MUESLI.AI.MIT.EDU internet address = 128.52.39.7
Assim weaties.ai.mit.edu é um nameserver para ai.mit.edu:
> server WHEATIES.AI.MIT.EDU. Default Server: WHEATIES.AI.MIT.EDU Addresses: 128.52.32.13, 128.52.35.13
Agora irei mudar o tipo de questão, nós achamos o servidor de nome que nós somos indo perguntar por tudo wheaties sobre prep.ai.mit.edu.
> set q=any > prep.ai.mit.edu. Server: WHEATIES.AI.MIT.EDU Addresses: 128.52.32.13, 128.52.35.13
prep.ai.mit.edu CPU = dec/decstation-5000.25 OS = unix prep.ai.mit.edu inet address = 18.159.0.42, protocol = tcp #21 #23 #25 #79 prep.ai.mit.edu preference = 1, mail exchanger = life.ai.mit.edu prep.ai.mit.edu internet address = 18.159.0.42 ai.mit.edu nameserver = alpha-bits.ai.mit.edu ai.mit.edu nameserver = wheaties.ai.mit.edu ai.mit.edu nameserver = grape-nuts.ai.mit.edu ai.mit.edu nameserver = mini-wheats.ai.mit.edu ai.mit.edu nameserver = trix.ai.mit.edu ai.mit.edu nameserver = muesli.ai.mit.edu ai.mit.edu nameserver = count-chocula.ai.mit.edu ai.mit.edu nameserver = life.ai.mit.edu ai.mit.edu nameserver = mintaka.lcs.mit.edu life.ai.mit.edu internet address = 128.52.32.80 alpha-bits.ai.mit.edu internet address = 128.52.32.5 wheaties.ai.mit.edu internet address = 128.52.35.13 wheaties.ai.mit.edu internet address = 128.52.32.13 grape-nuts.ai.mit.edu internet address = 128.52.36.4 grape-nuts.ai.mit.edu internet address = 128.52.32.4 mini-wheats.ai.mit.edu internet address = 128.52.32.11 mini-wheats.ai.mit.edu internet address = 128.52.54.11 mintaka.lcs.mit.edu internet address = 18.26.0.36
Começando assim em . nós achamos os servidores de nome sucessivos para o próximo nivel de domínio de nomes. Se você tivesse usado seu próprio servidor de DNS ao invés de usar tudos estes servidores, seu named iria no cache para todas as informações que perguntarmos novamente durante algum tempo.
Um muito menos falado, mas da mesma maneira que domínio importante é in-addr.arpa.
Também é aninhado como os domínios `normais'. in-addr.arpa nos permite adquirir os nomes dos hosts quando temos um endereço. Um coisa importante aqui é notar aquele ip#s é escrito em ordem inversa in-addr.arpa domínio. Se você tem o endereço de uma máquina: 192.128.52.43 o named processa igualmente para prep.ai.mit.edu
exemplo: ache os servidores arpa ''.''. find servidores in-addr.arpa., find servidores 192.in-addr.arpa. , find servidores 128.192.in-addr.arpa. , find servidores 52.128.192.in-addr.arpa. . O find precisou de registros para 43.52.128.192.in-addr.arpa. Huh inteligente? (Diga `Sim'.) A reversão dos números podem estar confundindo nos primeiros 2 anos.
Eu contei há pouco uma mentira. DNS não trabalha no modo literal pouco há pouco lhe falei. Mas é o bastante e fim.
4.2. Nosso próprio domínio
Agora iremos definir o nosso próprio domínio. Iremos criar o domínio linux.bogus e definir as máquinas. Eu uso um domínio falso no named para ter certeza que não iremos perturbar ninguem lá fora.
Nós já começamos esta parte com esta linha no named.boot:
______________________________________________________________________ primary 0.0.127.in-addr.arpa pz/127.0.0 ______________________________________________________________________
Por favor note a falta de `.' ao término dos nomes de domínio neste arquivo. Os primeiros nomes de linha no arquivo pz/127.0.0 como definindo 0.0.127.in-addr.arpa. Nós já montamos este arquivo, veja:
______________________________________________________________________ @ IN SOA ns.linux.bogus. hostmaster.linux.bogus. ( 1 ; Serial 28800 ; Refresh 7200 ; Retry 604800 ; Expire 86400) ; Minimum TTL NS ns.linux.bogus. 1 PTR localhost. ______________________________________________________________________
Por favor note o `.' ao término de todo o domínio de nomes neste arquivo, em contraste com o arquivo de named.boot. Algumas pessoas gostam começar cada arquivo de zona com um $ORIGIN diretiva, mas isto é supérfluo. O origin(onde na hierarquia de DNS pertence) de um arquivo de zona é especificado no `Domain ' coluna do arquivo de named.boot, neste caso é 0.0.127.in-addr.arpa.
Esta 'zona de arquivo' contém 3 `Registro de Resolução' (RRs): A SOA RR. A NS RR e A PTR RR. SOA é um pequeno começo de autoridade. O `@' é um anotação especial que significa a origem, e desde o `Domain ' coluna para este arquivo realmente diz 0.0.127.in-addr.arpa a primeira linha significa
0.0.127.IN-ADDR.ARPA. EM SOA...
NS é o Servidor de Nome RR, conta para o DNS que máquina é a servidora de nomes do domínio. E finalmente o registro de PTR diz que 1 (iguala 1.0.0.127.IN-ADDR.ARPA, i.e. 127.0.0.1) é named do localhost.
O registro de SOA é o preâmbulo a toda zona de arquivo, e deveria haver exatamente um em cada arquivo de zona, o primeiro registro. Descreve a zona de onde vem (uma máquina chamada linux.bogus), que é responsável para seus conteúdos (hostmaster@linux.bogus), que versão de o arquivo de zona isto é (consecutivo: 1), e outras coisas que têm que fazer com o cache e servidores de DNS secundários. Para o resto dos campos ,refresh, tente novamente, expiraçãoe e uso mínimo (refresh, retry, expire e minimum) que os números usaram neste HOWTO e você deve estar seguro.
O registro de NS nos fala quem faz o DNS que serve para 0.0.127.in-addr.arpa, é ns.linux.bogus. O registro de PTR nos fala que 1.0.0.127.in-addr.arpa (aquie 127.0.0.1) é conhecido como localhost.
Agora reinicie o seu named (o comando é ndc restart) e usa o nslookup para examinar o que você fez:
$ nslookup
Default Server: localhost Address: 127.0.0.1
> 127.0.0.1 Server: localhost Address: 127.0.0.1
Name: localhost Address: 127.0.0.1
assim consegue obter localhost de 127.0.0.1, bom. Agora para nosso principal tarefa, o domínio de linux.bogus, insira uma linha primária nova no named.boot:
______________________________________________________________________ primary linux.bogus pz/linux.bogus ______________________________________________________________________
Note a falta continua do fim `.' no nome de domínio no arquivo named.boot.
No arquivo de zona linux.bogus poremos alguns dados falsos:
___________________________________________________________________ ; ; Zone file for linux.bogus ; Arquivo de zona para linux.bogus ; Mandatory minimum for a working domain ; Mínimo obrigatório para um domínio de funcionamento @ IN SOA ns.linux.bogus. hostmaster.linux.bogus. ( 199511301 ; serial, todays date + todays serial # 28800 ; refresh, seconds 7200 ; retry, seconds 3600000 ; expire, seconds 86400 ) ; minimum, seconds NS ns.linux.bogus. NS ns.friend.bogus. MX 10 mail.linux.bogus ; Primary Mail Exchanger (Correio Primário Exchanger) MX 20 mail.friend.bogus. ; Secondary Mail Exchanger (Correio Secundário) localhost A 127.0.0.1 ns A 127.0.0.2 mail A 127.0.0.4 ______________________________________________________________________
Devem ser notadas duas coisas sobre o registro de SOA. ns.linux.bogus deve ser uma máquina atual com um UM registro. Não é legal ter um registro CNAME porque ele é uma máquina mencionada no registro de SOA. Não é necessario que o nome seja `Ns', poderia ser qualquer nome de anfitrião legal. Logo, hostmaster.linux.bogus deveria ser lido como hostmaster@linux.bogus, este deveria ser pseudônimo de um correio, ou uma caixa postal onde o mantedor do DNS deveriam ler o correio freqüentemente. Qualquer correio relativo ao domínio será enviado ao endereço listado aqui. A necessidade de nome não ser `Hostmaster', pode ser qualquer um endereço de e-mail, mas o endereço de e-mail `Hostmaster ' é esperado.
Há um RR novo digitado neste arquivo, o MX, ou eXchanger de Correio RR. Conta para sistemas de correio onde enviar correio para quem é enviado someone@linux.bogus, isto é também mail.linux.bogus ou mail.friend.bogus.
O número antes de cada nome de máquina é a priorida do RRs do MX. O RR com o mais baixo número (10) é o um correio deve ser enviado principalmente. Se eleo falhar pode ser enviado a um com um número mais alto, um manipulador de correio secundário, i.e. mail.friend.bogus que tem prioridade 20 aqui.
Reinicie o named execute ndc restart. Examine os resultados com o nslookup:
$ nslookup > set q=any > linux.bogus Server: localhost Address: 127.0.0.1 linux.bogus origin = linux.bogus mail addr = hostmaster.linux.bogus serial = 199511301 refresh = 28800 (8 hours) retry = 7200 (2 hours) expire = 604800 (7 days) minimum ttl = 86400 (1 day) linux.bogus nameserver = ns.linux.bogus linux.bogus nameserver = ns.friend.bogus linux.bogus preference = 10, mail exchanger = mail.linux.bogus.linux.bogus linux.bogus preference = 20, mail exchanger = mail.friend.bogus linux.bogus nameserver = ns.linux.bogus linux.bogus nameserver = ns.friend.bogus ns.linux.bogus internet address = 127.0.0.2 mail.linux.bogus internet address = 127.0.0.4
Num exame cuidadoso você descobrirá um bug. A linha
linux.bogus preference = 10, mail exchanger = mail.linux.bogus.linux.bogus
é todo o mal. Deveria ser:
linux.bogus preference = 10, mail exchanger = mail.linux.bogus
Eu cometi um engano deliberadamente para que você pudesse aprender :-) Olhando no arquivo de zona achamos que a linha
@ MX 10 mail.linux.bogus; Correio Primário Exchanger está perdendo um período. Ou tem muitos 'linux.bogus'. Se um nome de máquina não terminar em um período num arquivo de zona a origem é somada ao fim. Então:
______________________________________________________________________ @ MX 10 mail.linux.bogus. ; Correio primário Exchanger ______________________________________________________________________
ou
______________________________________________________________________ @ MX 10 mail ; Primary Mail Exchanger ______________________________________________________________________
está correto. Eu prefiro a forma posterior, é menos para digitar. Em uma zona ou arquivo de domínio deveria ser escrito e deveria ser terminado com um `.' ou não deveria ser incluído nada em qual caso deixa de comparecer o origem. Eu tenho que grifar isto no arquivo de named.boot não deveria haver `.'s depois dos nomes de domínio. Você não tem nenhuma idéia quantas vezes um `.' ou muitos estragaram coisas.
Assim o novo arquivo de zona no meu ponto de vista, com alguma informação extra tambem, como:
______________________________________________________________________ ; ; Zone file for linux.bogus ; Arquivo de zona para o linux.bogus ; ; Mandatory minimum for a working domain ; @ IN SOA ns.linux.bogus. hostmaster.linux.bogus. ( 199511301 ; serial, todays date + todays serial # 28800 ; refresh, seconds 7200 ; retry, seconds 604800 ; expire, seconds 86400 ) ; minimum, seconds NS ns ; Inet Address of name server NS ns.friend.bogus. MX 10 mail ; Primary Mail Exchanger MX 20 mail.friend.bogus. ; Secondary Mail Exchanger localhost A 127.0.0.1 ns A 127.0.0.2 mail A 127.0.0.4 ; ; Extras ; @ TXT "Linux.Bogus, Seu consultor de DNS" ns MX 10 mail MX 20 mail.friend.bogus. HINFO "Pentium" "Linux 1.2" TXT "RMS" richard CNAME ns www CNAME ns donald A 127.0.0.3 MX 10 mail MX 20 mail.friend.bogus. HINFO "i486" "Linux 1.2" TXT "DEK" mail MX 10 mail MX 20 mail.friend.bogus. HINFO "386sx" "Linux 1.0.9" ftp A 127.0.0.5 MX 10 mail MX 20 mail.friend.bogus. HINFO "P6" "Linux 1.3.59" __________________________________________________________________
Você poderia querer mover o primeiro três registros A de forma que eles sejam colocados próximo aos outros registros respectivos deles/delas, ao invés do de cima. Há vários RRs novos aqui: HINFO (Informação sobre o HOST) tem duas partes, é hábito citar casa um. A Primeira parte é o hardware ou CPU da máquina, e a segunda parte do software ou OS da máquina. ns tem um Pentium CPU e roda o Linux 1.2. O registro TXT é um registro de texto de divulgação que você pode usar para qualquer coisa que você queira. CNAME (Nome Canônico) é um modo para dar há cada máquina vários nomes.
Assim richard e www é um pseudônimo para ns. É importante a nota que A MX, CNAME e registro de SOA nunca deveriam se referir a um registro de CNAME, eles, só devem se referir a algo com um registro A, assim prejudicaria.
______________________________________________________________________ foobar CNAME richard ; NÃO! ______________________________________________________________________
mas o correto era ter
______________________________________________________________________ foobar CNAME ns ; Sim! ______________________________________________________________________
Também é importante a nota que um CNAME não é um nome de host legal para um endereço de e-mail: webmaster@www.linux.bogus é um e-mail ilegal de endereçamento acima. Você pode esperar que vários admins de correio lá fora obrigar esta regra até mesmo trabalhar para você. O modo para evitar é usar registros A (e talvez alguns outros também, como um registro MX) ao invés:
______________________________________________________________________ www A 127.0.0.2 ______________________________________________________________________
Paul Vixie, o mago do named primário, recomenda não usar CNAME. Assim considere não usar isto muito seriamente.
Carregue o banco de dados novo executando ondc reload, isto faz com que o named leia os seus arquivos novamente.
> ls -d linux.bogus
Significa que todos os registros devem ser listados.
[localhost] linux.bogus. SOA ns.linux.bogus hostmaster.linux.bogus. (199511301 28800 7200 604800 86400) linux.bogus. NS ns.linux.bogus linux.bogus. NS ns.friend.bogus linux.bogus. MX 10 mail.linux.bogus linux.bogus. MX 20 mail.friend.bogus linux.bogus. TXT "Linux.Bogus, seu consultro de DNS" localhos A 127.0.0.1 mail A 127.0.0.4 mail MX 10 mail.linux.bogus mail MX 20 mail.friend.bogus mail HINFO 386sx Linux 1.0.9 donald A 127.0.0.3 donald MX 10 mail.linux.bogus donald MX 20 mail.friend.bogus donald HINFO i486 Linux 1.2 donald TXT "DEK" www CNAME ns.linux.bogus richard CNAME ns.linux.bogus ftp A 127.0.0.5 ftp MX 10 mail.linux.bogus ftp MX 20 mail.friend.bogus ftp HINFO P6 Linux 1.3.59 ns A 127.0.0.2 ns MX 10 mail.linux.bogus ns MX 20 mail.friend.bogus ns HINFO Pentium Linux 1.2 ns TXT "RMS" linux.bogus. SOA ns.linux.bogus hostmaster.linux.bogus. (199511301 28800 7200 604800 86400)
Isto é bom. Confiramos o que diz só para www:
> set q=any > www.linux.bogus. Server: localhost Address: 127.0.0.1
www.linux.bogus canonical name = ns.linux.bogus
ns.linux.bogus
linux.bogus nameserver = ns.linux.bogus linux.bogus nameserver = ns.friend.bogus ns.linux.bogus internet address = 127.0.0.2
e ns.linux.bogus tem o endereço 127.0.0.2. Isto é bom também.
4.3. Arejando abaixo
Claro que, este domínio é altamente falso, e assim é todos os endereços nisto, e infelizmente talvez confunda-o um pouco. Para um exemplo real de domínio veja na próxima seção.
5. Exemplo de um domínio real
Onde iremos listar alguns arquivos reais de zona
Os usuários sugeriram que eu inclu-sei um exemplo real de domínio em funcionamento como minha explicação das diferenças entre um domínio que esteja funcionando e o exemplo falso que era um pouco obscuro.
Uma coisa sobre este exemplo: Não entre em em seus servidores de nome! Só use para ler para referência. Se você quer experimentar faça isto com o falso exemplo. Eu uso este exemplo com a permissão de David Bullock de LAND-5. Estes arquivos eram atuais 24 de setembro de 1996, e podem diferenciar do que você achar se examinar os servidores de nomes do LAND-5's.
Também, lembre-se de: apaguar os espaços principais ;-)
5.1. /etc/named.boot (ou /var/named/named.boot)
Aqui nós temos as linhas primárias para as duas zonas do contrário que precisamos: a rede 127.0.0, como também LAND-5's 206.6.177 subnet. E uma linha primária para land-5's zona land-5.com. Também note isso em vez de encher os arquivos em um diretório chamados pz, como eu faço neste HOWTO, ele, os põe em um diretório chamado zone.
_______________________________________________________________ ; Boot file for LAND-5 name server ; Arquivo de boot para o servidor de nomes LAND-5
directory /var/named ; ; type domain source file or host cache . root.cache primary 0.0.127.in-addr.arpa zone/127.0.0 primary 177.6.206.in-addr.arpa zone/206.6.177 primary land-5.com zone/land-5.com ______________________________________________________________________
5.2. /var/named/root.cache
Se lembre de que este arquivo é dinâmico, e o que esta listado aqui é velho. Você pode conseguir um melhor produzindo agora.
______________________________________________________________________ ; <<>> DiG 2.1 <<>> ;; res options: init recurs defnam dnsrch ;; got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 6 ;; flags: qr rd ra; Ques: 1, Ans: 9, Auth: 0, Addit: 9 ;; QUESTIONS: ;; ., type = NS, class = IN ;; ANSWERS: . 518357 NS H.ROOT-SERVERS.NET. . 518357 NS B.ROOT-SERVERS.NET. . 518357 NS C.ROOT-SERVERS.NET. . 518357 NS D.ROOT-SERVERS.NET. . 518357 NS E.ROOT-SERVERS.NET. . 518357 NS I.ROOT-SERVERS.NET. . 518357 NS F.ROOT-SERVERS.NET. . 518357 NS G.ROOT-SERVERS.NET. . 518357 NS A.ROOT-SERVERS.NET. ;; ADDITIONAL RECORDS: H.ROOT-SERVERS.NET. 165593 A 128.63.2.53 B.ROOT-SERVERS.NET. 165593 A 128.9.0.107 C.ROOT-SERVERS.NET. 222766 A 192.33.4.12 D.ROOT-SERVERS.NET. 165593 A 128.8.10.90 E.ROOT-SERVERS.NET. 165593 A 192.203.230.10 I.ROOT-SERVERS.NET. 165593 A 192.36.148.17 F.ROOT-SERVERS.NET. 299616 A 192.5.5.241 G.ROOT-SERVERS.NET. 165593 A 192.112.36.4 A.ROOT-SERVERS.NET. 165593 A 198.41.0.4 ;; Total query time: 250 msec ;; FROM: land-5 to SERVER: default -- 127.0.0.1 ;; WHEN: Fri Sep 20 10:11:22 1996 ;; MSG SIZE sent: 17 rcvd: 312 ______________________________________________________________________ 5.3. /var/named/zone/127.0.0
Há pouco nos fundamentos, o registro SOA é obrigatório, e um registro que define o 127.0.0.1 para localhost. São requeridos ambos. Nenhum mais deveria estar neste arquivo. Provavelmente nunca sera preciso atualizar, a menos que seu nameserver ou hostmaster enviem mudanças.
______________________________________________________________________ @ IN SOA land-5.com. root.land-5.com. ( 199609203 ; Serial 28800 ; Refresh 7200 ; Retry 604800 ; Expire 86400) ; Minimum TTL NS land-5.com. 1 PTR localhost. ______________________________________________________________________
5.4. /var/named/zone/land-5.com
Aqui nós vemos que o registro SOA é obrigatório, e os registros de NS. Nós podemos ver que ele tem um servidor de nome secundário que é ns2.psi.net. Como deve ser, sempre tenha um servidor secundário fora do local. Nós podemos também vêr que ele como um host mestre chamou land-5 que leva o cuidado de todos os serviços diferentes, e que ele é usa isto no CNAMEs (uma alternativa está usando registros A).
Como você vê o registro de SOA, o arquivo de zona origin do land-5.com, e a pessoa de contato é root@land-5.com. hostmaster é outro e usaram endereço para a pessoa de contato. O número de série é no formato de yyyymmdd habitual com número de série de dias juntos; esta é provavelmente a sexta versão de arquivo de zona no 20º dia de setembro de 1996. Lembre-se que o número de série tem que aumentar automaticamente, aqui há só um digito para todays consecuitivo #, assim depois da 9 edição ele tem que esperar até amanhã antes que possa editar o arquivo novamente. Considere usar dois digitos.
______________________________________________________________________ @ IN SOA land-5.com. root.land-5.com. ( 199609206 ; serial, todays date + todays serial # 10800 ; refresh, seconds 7200 ; retry, seconds 10800 ; expire, seconds 86400 ) ; minimum, seconds NS land-5.com. NS ns2.psi.net. MX 10 land-5.com. ; Primary Mail Exchanger localhost A 127.0.0.1 router A 206.6.177.1 land-5.com. A 206.6.177.2 ns CNAME land-5.com. ftp CNAME land-5.com. www CNAME land-5.com. mail CNAME land-5.com. news CNAME land-5.com. funn A 206.6.177.3 illusions CNAME funn.land-5.com. @ TXT "LAND-5 Corporation" ; ; Workstations ; ws_177200 A 206.6.177.200 MX 10 land-5.com. ; Primary Mail Host ws_177201 A 206.6.177.201 MX 10 land-5.com. ; Primary Mail Host ws_177202 A 206.6.177.202 MX 10 land-5.com. ; Primary Mail Host ws_177203 A 206.6.177.203 MX 10 land-5.com. ; Primary Mail Host ws_177204 A 206.6.177.204 MX 10 land-5.com. ; Primary Mail Host ws_177205 A 206.6.177.205 MX 10 land-5.com. ; Primary Mail Host ; {Many repetitive definitions deleted - SNIP} ws_177250 A 206.6.177.250 MX 10 land-5.com. ; Primary Mail Host ws_177251 A 206.6.177.251 MX 10 land-5.com. ; Primary Mail Host ws_177252 A 206.6.177.252 MX 10 land-5.com. ; Primary Mail Host ws_177253 A 206.6.177.253 MX 10 land-5.com. ; Primary Mail Host ws_177254 A 206.6.177.254 MX 10 land-5.com. ; Primary Mail Host ______________________________________________________________________
Outra coisa é notar que as estações de trabalho não têm o nome dos indivíduo, mas basta um prefixo seguido pelas duas últimas partes do números de IP.
Usando uma convenção que pode simplificar a manutenção significativamente, mas podendo ser um pouco impessoal.
5.5. /var/named/zone/206.6.177
Eu farei um comentário sobre este arquivo depois.
______________________________________________________________________ @ IN SOA land-5.com. root.land-5.com. ( 199609206 ; Serial 28800 ; Refresh 7200 ; Retry 604800 ; Expire 86400) ; Minimum TTL NS land-5.com. NS ns2.psi.net. ; ; Servers ; 1 PTR router.land-5.com. 2 PTR land-5.com. 3 PTR funn.land-5.com. ; ; Workstations ; 200 PTR ws_177200.land-5.com. 201 PTR ws_177201.land-5.com. 202 PTR ws_177202.land-5.com. 203 PTR ws_177203.land-5.com. 204 PTR ws_177204.land-5.com. 205 PTR ws_177205.land-5.com. ; {Many repetitive definitions deleted - SNIP} 250 PTR ws_177250.land-5.com. 251 PTR ws_177251.land-5.com. 252 PTR ws_177252.land-5.com. 253 PTR ws_177253.land-5.com. 254 PTR ws_177254.land-5.com. ______________________________________________________________________
A zona inversa é o pedaço do setup que parece causar o maior peso. É usado para achar o nome do host se você tem que numerar um IP de máquina. Exemplo: você é um servidor de irc e aceita conexões de clientes de irc. Porém você é um servidor de irc norueguês e assim você só quer aceitar conexões de clientes na Noruega e de outros Países escandinavos. Quando você obtém uma conexão de um cliente a biblioteca C pode lhe falar o numero do IP da máquina conectando porque o IP nimerado do cliente é contido em todos os pacots e asim é passado na rede. Agora você pode chamar uma função chamada gethostbyaddr que observa o nome de um host dando o número de IP.
Gethostbyaddr perguntará um servidor de DNS que atravessará o DNS então irá procurar a máquina. Supondo a conexão de cliente é de ws_177200.land-5.com. O numero do IP que a biblioteca de C provê ao servidor de irc é 206.6.177.200. Para descobrir o nome daquela máquina nós precisamos achar 200.177.6.206.in-addr.arpa. O servidor de DNS achará primeiro o servidor de arpa., então achará o servidor de in-addr.arpa., seguindo o rastro inverso por 206, então 6 e achado o servidor afinal para 177.6.206.in-addr.arpa zona é land-5. De qual vai finalmente adquir a resposta que para 200.177.6.206.in-addr.arpa temos um registro A 'PTR ws_177200.land-5.com ', significando que o nome com 206.6.177.200 são ws_177200.land-5.com. Como com a explicação de como prep.ai.mit.edu observaram, isto é ligeiramente fictício.
Voltando ao exemplo de servidor de irc. O servidor de irc só aceita conexões dos países escandinavos, i.e., * .no, * .se, * .dk, o nome ws_177200.land-5.com não emparelha nenhum desses claramente, o servidor negará a conexão. Se não havia nenhuma cartografia inversa de 206.2.177.200 pelo em-addr.arpa zona que o servidor teria sido impossibilitado achar o nome nada e teria que povoar comparando 206.2.177.200 com * .no, * .se e * .dk nenhum de que vem a inicialização.
Algumas pessoas irão lhe falar que as cartografias de lookup contrário são só importante para servidores, ou não são importante para nada. Não é assim: Muitos ftp, news, irc e até mesmo algum http (WWW) servidores não aceitarão conexões de máquinas que eles não podem achar o nome deles. Tão contrário a cartografias para máquinas são de fato obrigatórias.
6. Manutenção
Mantendo isto trabalhando.
Há uma tarefa de manutenção você tem que fazer no nameds, diferente de os mantendo executando. Isto é mantero arquivo de root.cache atualizado. O modo mais fácil é usar o dig, primeiro execute o dig sem argumentos, você, irá adquirir um root.cache de acordo com seu próprio servidor. Então pergunte há um dos servidores de raiz listados com o dig @rootserver . ns. Você notará a produção olhando terrivelmente para o arquivo de root.cache com exceção de um par de números extras. Esses números são inocentes. Salve para um arquivo (dig @e.root-servers.net. ns >root.cache.new) e substitui o velho root.cache.
Lembre-se de reiniciar o named depois de substituir o arquivo de cache.
Al Longyearenviou enviou-me este script para pode ser executado automaticamente a atualização do root.cache, instale uma linha no seu contrab para executar uma vez por mês e esqueça. O script assume que você tem correio e que trabalha com o pseudôminio-correio 'Hostmaster' que é definido. Você tem que colocar isto no seu setup.
______________________________________________________________________ #!/bin/sh # # Update the nameserver cache information file once per month. # This is run automatically by a cron entry. # Atualiza o cache do nameserver este arquivo é criado uma vez por mês. # É executado automaticamente por uma entrada no cron. # ( echo "To: hostmaster " echo "From: system " echo "Subject: Atualização automatica do arquivo de named.boot" echo export PATH=/sbin:/usr/sbin:/bin:/usr/bin: cd /var/named dig @rs.internic.net . ns >root.cache.new echo "O arquivo de named.boot foi atualizado para conte a seguinte informação:" echo cat root.cache.new chown root.root root.cache.new chmod 444 root.cache.new rm -f root.cache.old mv root.cache root.cache.old mv root.cache.new root.cache ndc restart echo echo "O nameserver foi reiniciao para assegurar que a atualização está completa." echo "O arquivo de root.cache antigo é chamado agora de /var/named/root.cache.old." ) 2>&1 | /usr/lib/sendmail -t exit 0 ______________________________________________________________________
Alguns de você podem apanhar o arquivo de root.cache também no ftp da Internic. Por favor não use ftp para atualizar o root.cache, o método acima é muito mais amigável à rede.
7. Configuração automática para conexões de dialup.
Esta seção explica como eu montei coisas automatizando tudo. Meu modo pode não servir para nada, mas você pode adquirir uma idéia de algo que eu fiz. Também, eu uso ppp para dialup, enquanto muitos usam o slip ou cslip, quase tuda a sua ligação pode ser diferente da minha. Mas o programa dip de slip deveria poder fazer muitas das coisas sim.
Normalmente, quando eu não sou conectado à rede eu tenho um arquivo de resolv.conf contendo uma linha simplesmente
domain uio.no
Isto assegura que eu não estou esperando pelo nome de hosts para solucionar a biblioteca que voute tentar conecta a um nameserver que não pode me ajudar. Mas quando eu conecto eu quero começar o named e tem um resolv.conf que olha como descrevi acima. Eu resolvi isto mantendo dois resolv.conf 'arquivos temporários' nomeados como resolv.conf.local e resolv.conf.connected. Olhe posteriormente como o resolv.conf descrito antes neste documento.
Conectar automaticamente à rede eu executo um script chamado 'ppp-in':
_____________________________________________________________ #!/bin/sh echo chamando... pppd _____________________________________________________________
pppd tem um arquivo com opções que contam com os particulares como é conectado. Uma vez que minha conexão de ppp começa o pppd um script chamado ip-up (isto é descrito na página do man pppd). Esta é o script:
_____________________________________________________________ #!/bin/sh interface="$1" device="$2" speed="$3" myip="$4" upip="$5" ... cp -v /etc/resolv.conf.connected /etc/resolv.conf ... /usr/sbin/named _____________________________________________________________
I.e. Eu começo o meu named lá. Quando ppp é pppd está desconectado rodo um script chamado ip-down:
_____________________________________________________________ #!/bin/sh cp /etc/resolv.conf.local /etc/resolv.conf read namedpid kill $namedpid _____________________________________________________________
Assim adquiro há configuração quando conectado (up) e desconfigurado quando desconectado (down).
Alguns programas, irc e talk vêm à mente, faça para alguns muitas suposições, e para irc caracteriza o dcc e talk para trabalhar direito você tem que fixar o seu arquivo de hosts. Eu insiro isto no meu script de ip-up:
_____________________________________________________________ cp /etc/hosts.ppp /etc/hosts echo $myip roke >>/etc/hosts ______________________________________________________________
hosts.ppp contém simplesmente
______________________________________________________________ 127.0.0.1 localhost ______________________________________________________________
e o echo insere o ip# i recebido pelo meu nome de host(roke). Você deve usar o nome do seu host se conhecer ao invés de por.
Isto pode ser achado com o comando de hostname.
Provavelmente não é inteligente executar o named quando você não está conectado a rede, isto é porque named tentará enviar questões à rede e tem um intervalo longo, e você tem que esperar por todo este intervalo de tempo para que algum programa tente solucinar um nome. Se você está usando dialup você deve começar o named quando conectando e mata-lo quando desconectando. Mas por favor veja a seção de ``FAQ'' para um tips.
Algumas pessoas gostam de usar uma diretiva forwarders em conexões lentas. Se seu provedor de internet tem servidores de DNS em 1.2.3.4 e 1.2.3.5 você possa inserir a linha
______________________________________________________________________ forwarders 1.2.3.4 1.2.3.5 ______________________________________________________________________
no arquivo de named.boot. E também deixar o arquivo root.cache vazio. Isto diminui a quantidade de tráfico de IP que seu host origina, qualquer, possivelmente coisas de velocidade acima. Isto é importante especialmente se você está pagando por byte que envia. Isto tem o valor somado se deixar você fora de um dever de manutenção você tem como um cache de named maintainer; você não tem que atualizar o arquivo de root.cache vazio.
8. FAQ
Nesta seção eu listo algumas das perguntas mais freqüentementes relacionado a DNS e este HOWTO. E as respostas :-) Por favor leia esta seção antes de remeter-me.
1. Como usar DNS de dentro de um firewall? Várias sugestões: `Forwarders ', `Slave ', e tem um olhar no lista de literatura ao término deste HOWTO.
2. Como eu faço para DNS rotacionar pelos endereços disponíveis para um conserto, digo www.busy.site para obter uma efeito de leitura balanceada, ou semelhante? Faça vários registros A para www.busy.site e use o bind 4.9.3 ou superior. Então o bind vai usar o round-robin para as respostas. Não trabalhe com versões mais recente do bind.
3. Eu quero fixar DNS em um intranet (fechada). O que faço eu? Remova o arquivo de cache e divida o arquivo de zona. Que também tem meios de adquirir um arquivo novo cache todo o tempo.
4. Meu sistema não tem o programa de ndc. O que faço eu? Seu sistema tem então um velho, um pouco obsoleto, bind instalado. Se segurança é importante a você: melhore o bind imediatamente. Se não, se pode viver com este. E em vez de ndc start execute named.
O ndc reload torna-se named.reload e o ndc start torna-se named.restart Todos estes programas devem estar provável em /usr/sbin.
5. Como eu monto um servidor de nome secundário? Se o servidor primário tem endereço 127.0.0.1 que você pôs numa linha no arquivo de named.boot de seu secundario:
_____________________________________________________________________ secondary linux.bogus 127.0.0.1 sz/linux.bogus _____________________________________________________________________
6. Eu quero executar o bind quando estou desconectado da rede. Eu recebi este correio de Ian Clark onde ele explica o modo dele de fazer isto:
Eu executo o named na minha maquina 'Masquerading' aqui. Eu tenho dois arquivos de root.cache, a pessoa chamado root.cache.real que contém o servidor real da raiz do named e o outro root.cache.fake chamado que contém...
-------------- ; root.cache.fake ; this file contains no information --------------
Quando eu estou fora da rede copio o root.cache.fake arquivo para o root.cache e reinicio o named.
Quando estou acessando online eu copio root.cache.real para root.cache e reinicio o named. Isto é feito em ip-down e ip-up respectivamente. A primeira vez em que eu faço uma pergunta fora da rede em um nome de domínio o named não faz porque põe uma entrada assim em mensagens...
Jan 28 20:10:11 hazchem named[10147]: No root nameserver for class IN
com o qual eu posso viver. Parece trabalhar certo Eu posso usar o nameserver para máquinas locais enquanto fora da rede sem a demora de intervalo para domínio externo do named e enquanto na questões para domínios externo trabalham normalmente.
7. Onde o servidor de caching do named armazena o cache? Como eu posso contral o tamanho? O cached é completamente armazenado em memória, não é escrito em disco em qualquer momento. Toda vez que mata o named o cache é perdido. O cache não tem qualquer forma de controle. O named administra e o controla com algumas regras simples. Voc6e não pode controlar o cache ou a classificação do cache segundo o tamanho e qualquer outra forma de razão. Se você pensa em ``fixar'' o cache estaria prejudicando o named. E isto não é recomendado.
8. O named salva o cache quando reiniciado? Eu posso salva-lo? Não, o named não salva o cache quando é morto. Isto define que o cache é construído toda vez que você o mata e reinicia o named. Não há nenhum modo para fazer um arquivo de cache do named. Se você quer ``fixar'' o cache estaria prejudicando o named. E isto não é recomendado.
9. Como se tornar um bom admin de DNS. Documentação e Ferramentas.
Existe a Documentação Real. Online e impresso. A leitura de alguns destes são exigidos para fazer uma pequeno DNS e em tempo e em tempo uma grande admin. Impresso Standard book is DNS and BIND por C. Liu and P. Albitz from O'Reilly & Associates, Sebastopol, CA, ISBN 0-937175-82-X. Eu li, é excelente. Também há um seção em DNS in TCP/IP Network Administration DNS, por Craig Hunt de O'Reilly..., ISBN 0-937175-82-X. Outro bom para administração de DNS (ou bem qualquer coisa no que diz respeito ao assunto) é Zen e a Arte de Manutenção de Motocicleta por Robert M. Prisig: -) Disponível como ISBN 0688052304 e outros.
Online você achará material em, ; A FAQ, uma referência do manual (BOG; Bind Operation Guide) com documentos e definições de protocols e DNS curto (estes, e a maioria, se não tudo, do rfcs mencionado abaixo, são também contido na distribuição do bind). Eu não li a maioria deles, entretanto eu não sou um grande admin de DNS. Arnt Gulbrandsen por outro lado leu GOD e ele é execelente sobre isto :-). O newsgroup que comp.protocols.tcp-ip.domains fala sobre DNS. Além de vários RFCs sobre DNS, os mais importantes provavelmente são estes:
RFC 2052 A. Gulbrandsen, P. Vixie, A DNS RR for specifying the location of services (DNS SRV), October 1996 RFC 1918 Y. Rekhter, R. Moskowitz, D. Karrenberg, G. de Groot, E. Lear, Address Allocation for Private Internets, 02/29/1996. RFC 1912 D. Barr, Common DNS Operational and Configuration Errors, 02/28/1996. RFC 1713 A. Romao, Tools for DNS debugging, 11/03/1994. RFC 1712 C. Farrell, M. Schulze, S. Pleitner, D. Baldoni, DNS Encoding of Geographical Location, 11/01/1994. RFC 1183 R. Ullmann, P. Mockapetris, L. Mamakos, C. Everhart, New DNS RR Definitions, 10/08/1990. RFC 1035 P. Mockapetris, Domain names - implementation and specification, 11/01/1987. RFC 1034 P. Mockapetris, Domain names - concepts and facilities, 11/01/1987. RFC 1033 M. Lottor, Domain administrators operations guide, 11/01/1987. RFC 1032 M. Stahl, Domain administrators guide, 11/01/1987. RFC 974 C. Partridge, Mail routing and the domain system, 01/01/1986.