dil: (Default)
dil ([personal profile] dil) wrote2010-11-20 04:14 pm

Дополнение зоны

Недавно в [info]ru_root интересную задачку подкинули:

на локальном DNS-сервере поднять “расширение” зоны. То есть, добавить несколько записей про хосты, которые на авторитетных серверах отсутствуют. И чтобы локальный сервер про эти явно добавленные записи отвечал сам, а про все остальные рекурсивно ходил к авторитетным серверам.

Вытянуть из авторитетных серверов всю зону и поднять её у себя по условию задачи не представляется возможным (её либо не отдают, либо она часто меняется).

Сервер для определённости пусть будет bind.

Ответ есть там.

Оригинал этой записи. Комментировать можно тут или там.

Любые материалы из этого блога запрещается использовать на сайте livejournal.ru в любой форме и любом объёме

[identity profile] pzrk.livejournal.com 2010-11-20 04:13 pm (UTC)(link)
[с пьяных глаз, не разобравшись]
* IN NS ...

[identity profile] pzrk.livejournal.com 2010-11-20 04:15 pm (UTC)(link)
Или оформить каждый хост как поддомен, для которого наш сервер будет authoritative и нарисовать там @ IN A ...
А за всем остальным ходить к внешнему.

[identity profile] dil.livejournal.com 2010-11-20 06:01 pm (UTC)(link)
Да, где-то так.

[identity profile] ufm.livejournal.com 2010-11-20 04:19 pm (UTC)(link)
повторю свой вопрос - dnsmasq использовать недостаточно сложно?

[identity profile] dil.livejournal.com 2010-11-20 06:00 pm (UTC)(link)
Он умеет сам что-то отдавать, а не только проксировать запросы?

[identity profile] ufm.livejournal.com 2010-11-21 12:46 am (UTC)(link)
# Add other name servers here, with domain specs if they are for
# non-public domains.
#server=/localnet/192.168.0.1

# Example of routing PTR queries to nameservers: this will send all
# address->name queries for 192.168.3/24 to nameserver 10.1.2.3
#server=/3.168.192.in-addr.arpa/10.1.2.3

# Add local-only domains here, queries in these domains are answered
# from /etc/hosts or DHCP only.
#local=/localnet/

# Add domains which you want to force to an IP address here.
# The example below send any host in doubleclick.net to a local
# webserver.
#address=/doubleclick.net/127.0.0.1

# --address (and --server) work with IPv6 addresses too.
#address=/www.thekelleys.org.uk/fe80::20d:60ff:fe36:f83

# You can control how dnsmasq talks to a server: this forces
# queries to 10.1.2.3 to be routed via eth1
# --server=10.1.2.3@eth1

# and this sets the source (ie local) address used to talk to
# 10.1.2.3 to 192.168.1.1 port 55 (there must be a interface with that
# IP on the machine, obviously).
# --server=10.1.2.3@192.168.1.1#55

[identity profile] dil.livejournal.com 2010-11-21 12:59 pm (UTC)(link)
Ага, address= должен помочь.
Правда, при этом есть другая засада - если имеющийся bind ещё авторитетно обслуживает какие-то зоны, то придётся их с dnsmasq как-то подружить в пределах одной машины, чтоб не подрались из-за 53 порта.

[identity profile] ufm.livejournal.com 2010-11-21 03:48 pm (UTC)(link)
bind - повесить на 127.0.0.1
dnsmasq - на внешний интерфейс.
К внутреннему bind ходить через прокси.

[identity profile] sfy-y.livejournal.com 2010-11-20 05:42 pm (UTC)(link)
Я не понял. /etc/hosts - не?

[identity profile] dil.livejournal.com 2010-11-20 05:58 pm (UTC)(link)
Не. /etc/hosts работает только на одной машине, а надо, чтобы для всех, которые к этотму DNS-серверу обращаются.

[identity profile] sfy-y.livejournal.com 2010-11-20 06:18 pm (UTC)(link)
А, понял. А просто зону поднять?

Мож я изначальную задачу не понял?

[identity profile] dil.livejournal.com 2010-11-20 06:55 pm (UTC)(link)
А просто ее поднять нельзя, она живёт на другом сервере и ее оттуда целиком не отдают.

[identity profile] sfy-y.livejournal.com 2010-11-20 07:04 pm (UTC)(link)
Не, я зопух позорный ваще. Поднять и "in ns" дать ссылку на основной?

[identity profile] dil.livejournal.com 2010-11-20 08:57 pm (UTC)(link)
Если ее просто поднять у себя, то она будет либо типа master/slave, и тогда сервер будет обслуживать её сам, а он этого сделать не сможет, потому что у него нет полных данных,
либо forward, и тогда он все запросы будет слать куда скажут, а от себя ничего добавить не сможет.
IN NS ничем не поможет.