>[оверквотинг удален]
>Пытаюсь настроить DNS сервер для экономии трафика (FreeBSD 7.0) и в
>связи с этим появился вопрос, ответ на который пока найти не
>удалось. Можно ли сделать кеширующий сервер, который будет брать информацию с
>DNS сервера провайдера, хранить у себя и отдавать пользователям, когда они
>попросят? Из манов я понял, что можно сделать кеширующий, который будет
>обращаться к авторизованным серверам (хотелось бы чтобы обращался не к ним,
>а к провайдерскому, т.к. трафик дешевле) или можно сделать перенаправляющий, который
>будет перенаправлять пользователей на DNS провайдера. А вот можно ли объединить
>как-нибудь эти реализации?
>Прошу не пинать, т.к. для новичков bind сложноватая штука. При поиске www.opennet.ru программы обращаются к ДНС-серверу на локалхосте или тому, что указан в resolv.conf. ДНС-сервер пытается найти адрес запрошенного хоста или в своем кэше (он про него узнал раньше) или дает ссылку на сервер, который знает ответ или знает у кого спросить (что-то типа .ru). И так пока не доберутся до нужного.
Иерархия ДНС серверов зашита в самом доменном имени, так что ничего специально настраивать не нужно.
Вот как это выглядит на практике:
$dig +norecurse www.slitaz.org
; <<>> DiG 9.4.1 <<>> +norecurse www.slitaz.org
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 49031
;; flags: qr ra; QUERY: 1, ANSWER: 0, AUTHORITY: 6, ADDITIONAL: 11
;; QUESTION SECTION:
;www.slitaz.org. IN A
;; AUTHORITY SECTION:
org. 148735 IN NS A0.ORG.AFILIAS-NST.INFO.
org. 148735 IN NS B0.ORG.AFILIAS-NST.org.
org. 148735 IN NS C0.ORG.AFILIAS-NST.INFO.
org. 148735 IN NS D0.ORG.AFILIAS-NST.org.
org. 148735 IN NS TLD1.ULTRADNS.NET.
org. 148735 IN NS TLD2.ULTRADNS.NET.
;; ADDITIONAL SECTION:
A0.ORG.AFILIAS-NST.INFO. 53562 IN A 199.19.56.1
A0.ORG.AFILIAS-NST.INFO. 53564 IN AAAA 2001:500:e::1
B0.ORG.AFILIAS-NST.org. 53562 IN A 199.19.54.1
B0.ORG.AFILIAS-NST.org. 53562 IN AAAA 2001:500:c::1
C0.ORG.AFILIAS-NST.INFO. 53564 IN A 199.19.53.1
C0.ORG.AFILIAS-NST.INFO. 53562 IN AAAA 2001:500:b::1
D0.ORG.AFILIAS-NST.org. 62105 IN A 199.19.57.1
D0.ORG.AFILIAS-NST.org. 62105 IN AAAA 2001:500:f::1
TLD1.ULTRADNS.NET. 53562 IN A 204.74.112.1
TLD1.ULTRADNS.NET. 53562 IN AAAA 2001:502:d399::1
TLD2.ULTRADNS.NET. 53562 IN A 204.74.113.1
;; Query time: 19 msec
;; SERVER: ***************
;; WHEN: Tue Oct 14 23:59:56 2008
;; MSG SIZE rcvd: 422
(Берем первый из авторитетных серверов)
$dig +norecurse www.slitaz.org @A0.ORG.AFILIAS-NST.INFO
; <<>> DiG 9.4.1 <<>> +norecurse www.slitaz.org @A0.ORG.AFILIAS-NST.INFO
; (1 server found)
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 45008
;; flags: qr; QUERY: 1, ANSWER: 0, AUTHORITY: 3, ADDITIONAL: 0
;; QUESTION SECTION:
;www.slitaz.org. IN A
;; AUTHORITY SECTION:
slitaz.org. 86400 IN NS c.dns.gandi.net.
slitaz.org. 86400 IN NS b.dns.gandi.net.
slitaz.org. 86400 IN NS a.dns.gandi.net.
;; Query time: 303 msec
;; SERVER: 199.19.56.1#53(199.19.56.1)
;; WHEN: Wed Oct 15 00:00:32 2008
;; MSG SIZE rcvd: 93
(то же самое)
$dig +norecurse www.slitaz.org @c.dns.gandi.net
; <<>> DiG 9.4.1 <<>> +norecurse www.slitaz.org @c.dns.gandi.net
; (1 server found)
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 48024
;; flags: qr aa; QUERY: 1, ANSWER: 1, AUTHORITY: 3, ADDITIONAL: 0
;; QUESTION SECTION:
;www.slitaz.org. IN A
;; ANSWER SECTION:
www.slitaz.org. 10800 IN A 213.3.10.214
;; AUTHORITY SECTION:
slitaz.org. 10800 IN NS c.dns.gandi.net.
slitaz.org. 10800 IN NS a.dns.gandi.net.
slitaz.org. 10800 IN NS b.dns.gandi.net.
;; Query time: 77 msec
;; SERVER: 217.70.182.20#53(217.70.182.20)
;; WHEN: Wed Oct 15 00:00:56 2008
;; MSG SIZE rcvd: 109
Вот так в три прыжка нашли нужный адрес.