Molim te, pročitaj ovo poglavlje prije nego mi e-mailaš.
named
traži datoteku named.boot.
Čitaš krivi KAKO (HOWTO). Molim pogledati staru verziju ovog HOWTO-a, koja pokriva bind 4, na http://www.math.uio.no/~janl/DNS/.
Prijedlog: forward only;
. Možda ćeš isto trebati
query-source port 53;
unutar ``options'' dijela named.conf datoteke, kao što se preporučuje u primjeru caching poglavlja.
www.busy.site
da dobije `load balancing' efekt, ili nešto slično?
Napravi više A zapisa za www.busy.site
i koristi BIND 4.9.3
ili noviji. Tada će bind izokretati (eng. round-robin) odgovore. Ovo
neće raditi s ranijim verzijama BIND-a.
Izbaci root.hints datoteku i samo podesi datoteke zone. To također znači da ne moraš nabavljati novu `hint' datoteku cijelo vrijeme.
Ako primarni/glavni server ima adresu 127.0.0.1, stavi liniju kao ovu u named.conf datoteku svog sekundarnog servera:
zone "linux.bogus" { type slave; file "sz/linux.bogus"; masters { 127.0.0.1; }; };
Možeš navesti više alternativnih master servera s kojih se zona može
kopirati, unesi ih u masters
listu, odvojene znakom `;' (točka-zarez).
Postoje dvije stvari vezane za ovo:
Otkrio sam da s novim verzijama BIND-a ovo [<em/micanje datoteka, op.a./]
više nije potrebno. Postoji "forward" naredba uz "forwarders" naredbu koja
kontrolira kako se one koriste. Pretpostavljena vrijednost je "forward
first", što znači da će <tt/named/ prvo pitati servere iz `forwarders'
retka, i tek ako to ne uspije, pokušati normalni pristup. Ovo uzrokuje
ponašanje slično gethostbyname()-u, samo što predugo traje ako nema veze na
mrežu. Ali, ako je podešen "forward only", onda će BIND odustati kada ne
dobije odgovor od imenskih servera, a gethostbyname() odustaje odmah. Zato
nema potrebe žonglirati <!-- hmm, sleight of hand --> datotekama u /etc i
ponovo pokretati server.
U mom slučaju, samo sam dodao retke
forward only;
forwarders { 193.133.58.5; };
u options { } dio moje named.conf datoteke. Radi vrlo lijepo. Jedini
nedostatak ovoga je to što smanjuje nevjerojatno sofisticirani komad DNS
softvera na stanje priglupog cachea. Ja bih donekle bio zadovoljan samo s
priglupimg cacheom za DNS umjesto ovoga, ali izgleda da ne postoji takav
program za Linux.
Ja pokrećem named na svom 'masquerading' stroju. Imam dvije
root.hints datoteke, jedna se zove root.hints.real i sadrži
prava imena korijenskih servera, i druga koja se zove
root.hints.fake koja sadrži:
----
; root.hints.fake
; this file contains no information
----
Kada odlazim s mreže (off line), kopiram root.hints.fake u
root.hints i restartam named.
Kada idem na mrežu (on line), kopiram root.hints.real u
root.hints i restartam named.
Ovo se radi automatski iz ip-down odn. ip-up skripte.
Prvi put kada radim upit off line na imenu domene named nema
detalje za nju i stavlja ovo u (/var/log/)messages:
Jan 28 20:10:11 hazchem named[10147]: No root nameserver for class IN
i s tim mogu živjeti.
To svakako radi za mene. Mogu koristiti imenski server za
lokalne strojeve dok sam van mreže bez timeout zastoja za
vanjska imena domena, a dok sam na mreži, upiti za vanjske
domene rade normalno.
Peter Denison je pak mislio da Ian ne ide dovoljno daleko. On piše:
Kada sam spojen) serviraj sve cacheirane unose (i one s lokalne mreže) odmah
za ne-cacheirane unose, i proslijedi imenskom serveru mog
ISPa
Kada nisam spojen) serviraj sve upite za lokalnu mrežu odmah
odustani od svih ostalih upita **odmah**
Kombinacija mijenjanja root cache datoteke i prosljeđivanja upita ne radi.
Zato sam podesio (nakon nešto rasprave o ovome u obližnjem LUG-u) dva nameda
ovako:
named-online: proslijeđuje ISP-ovom imenskom serveru
master za localnet zonu
master za localnet obrnutu zonu (1.168.192.in-addr.arpa)
master za 0.0.127.in-addr.arpa
sluša na portu 60053
named-offline: ne proslijeđuje
"lažna" root cache datoteka
slave za 3 lokalne zone (master je 127.0.0.1:60053)
sluša na portu 61053
I kombinirao ih s proslijeđivanjem portova, da se port 53 šalje na 61053
kada nisam na vezi, i na port 60053 kada sam na vezi. (Koristim novi
netfilter paket pod 2.3.18, ali i stari (ipchains) mehanizam bi trebao
raditi.)
Primijeti da ovo neće baš odmah raditi, jer postoji sitan bug u BIND 8.2,
kojeg sam prijavio razvijateljima, a koji sprečava slave da ima mastera na
istoj IP adresi (pa i ako je port drugi). Zakrpa je trivijalna, i brzo bi se
trebala uključiti, nadam se.
Ja obično pokrećem svoj named na svim svojim strojevima koji se tek
povremeno vezuju na Internet modemom. Imenski server služi samo kao cache,
nema svoju domenu i sve provjerava kod imenskih servera u root.cache
datoteci. Kao što je to uobičajeno kod Slackwarea, starta se prije nfsd-a i
mountd-a.
Na jednom mom stroju (Libretto 30 prijenosnik) imao sam problem takav da sam
ga nekad mogao mapirati s drugog stroja na lokalnom LAN-u, ali većinu
vremena to nije radilo. Isto se događalo neovisno da li sam koristio PLIP,
PCMCIA ethernet karticu ili PPP preko serijske veze.
Nakon nekog vremena nagađanja i eksperimentiranja shvatio sam izgleda da je
named brljao s procesom registracije nfsd-a i mountd-a koji oni moraju proći
s portmapperom na dizanju sustava (startam te demone pri dizanju kao i
obično). Startanje named-a nakon nfsd-a i mountd-a potpuno je uklonilo ovaj
problem.
Kako ne treba očekivati bilo kakve probleme pri takvoj izmijenjenoj sekvenci
dizanja sustava, preporučio bih svima da to naprave na taj način i spriječe
mogući problem.
Kompletan se cache drži u memoriji, i nikad se ne zapisuje na disk.
Svaki put kad ubiješ named, cache se gubi. Cache se nikako ne može
kontrolirati. named
ga nadgleda prema nekim jednostavnim pravilima i
to je to. Ne možeš kontrolirati cache niti njegovu veličinu ni iz kojeg
razloga. Ako to želiš, možeš to ``popraviti'' hackirajući named. Ipak, ovo
nije preporučeno.
Ne, named
ne sačuva cache kada umre. To znači da se cache
mora ponovo graditi svaki put kada ubiješ i restartaš named
.
Nema načina da natjeraš named da sačuva cache u datoteku. Ako želiš,
možeš to ``popraviti'' hackirajući named. Ipak, ovo nije preporučeno.
linux-rules.net
. Kako da se domena koju želim
dodijeli meni?
Molim te kontaktiraj svog pružatelja mrežnih usluga. Oni će ti moći pomoći s ovim. Molim primijetiti da u većini svijeta moraš platiti kako bi dobio domenu.
Oba ova pitanja su napredne teme. Obje su pokrivene u http://www.etherboy.com/dns/chrootdns.html. Neću ih dalje objašnjavati ovdje.