LINUX.ORG.RU
ФорумAdmin

bind9 view clause

 


1

1

Доброго времени суток.
Продолжаются мои мучения на стезе изучения bind.


Раза 3 прочитал http://www.zytrax.com/books/dns/ch7/view.html, но так и не осознал полностью принцип работы и синтаксис использования. Задам несколько вопросов, ответы на которые, надеюсь, помогут мне лучше понять принцип работы view:


1. Как я понял, условия для view могут задаваться 3-мя операторами: match-clients, match-destinations и match-recursion-only (которые и использоваться могут только совместно с view), верно?
Смущает строка: «A view clause matches when either or both of its match-clients and match-destinations statements match and when the match-recursive-only condition is met». Т.е. view работает если выполнилось одно из условий match-clients или match-destinations И если выполнено условие match-recursive-only (если match-clients и/или match-destinations не заданы явно, то они принимают значение any, т.е. любой адрес). Таким образом view сработает если: ((match-clients_IP-list) ИЛИ (match-destinations_IP-list)) И (match-recursive-only). Зачем тогда указано «when either or both»? Если и match-clients, и match-destinations явно заданы, разве не должно между ними стоять логическое И, а не ИЛИ?
2. match-clients - определяет список откуда пришел запрос?
3. match-destinations - определяет IP-адреса DNS-сервера на которые пришел запрос?
4. По поводу match-recursive-only (http://www.zytrax.com/books/dns/ch7/view.html#match-recursive-only) вообще не понял, что делает оператор. Что означают его yes и no? Можно, конечно, предположить что, например, задано match-recursive-only no;, т.е. гипотетически view сработает если запрос был не рекурсивным (итеративным), но разве это не прерогатива DNS-сервера решать как ответить на запрос - как на рекурсивный или как на итеративный, клиент же не говорит: «привет, вот у меня к тебе итеративный запрос»? Если так, то какой вообще смысл в операторе match-recursive-only?
5. Нужно ли задавать зоны отдельно за пределами view (т.е. обычными пунктами «zone») или нет? Судя по этой строке «If none of the matching conditions in view clauses matches (and there are no zone clauses outside of view clauses) then BIND will return a server error.» это МОЖНО делать, но не обязательно, если я уверен, что любой запрос удовлетворит условию хотя бы из одного какого-то view, так?
6. View со split horizon. В примере используются разные файлы для одной зоны (что вроде бы логично, для разделения ответов, в зависимости от того, откуда пришел запрос), но я совершенно не понял, как такое может быть, там в каждом файле своя SOA и т.д. что ли? Как выглядят разные файлы в таком случае и как это вообще может работать о_О. Я в курсе что можно с помощью $INCLUDE включать один файл зоны в другой, но в дочернем файле же нет специальных записей вроде SOA?

Думаю, вам проще поднять тестовый bind в локальной или виртуальной сети на сервере с несколькими адресами и поотправлять ему запросы, чем здесь задавать вопросы про тонкости английской (американской) грамматики.

″match-recursive-only no″ — это по умолчанию. И это означает, что view соответсвует и рекурсивным и итеративным запросам. Если ″уes″, значит только рекурсивным. Зачем это может быть нужно не знаю.

Зоны за пределами view задавать не обязательно...

если я уверен, что любой запрос удовлетворит условию хотя бы из одного какого-то view, так?

Нет, вобще не обязательно. Если зона будет задана только в одном view, то она будет доступна только в нём, а всем клиентам, не попавшим в этот view сервер DNS ответит ошибкой. То есть можно создать зону vv.internal-net. и дать её только для пары тестовый машин (ip-адресов).

там в каждом файле своя SOA и т.д. что ли?

Да, там полная зона должна быть, начиная с SOA-записи. То есть машинам из разных view-ов можно отвечать совершенно по разному.

и как это вообще может работать

Так и работает. Каждый view отдельно от соседних и одинаковые DNS-имена (A-записи) для разных view-ов могут преобразовываться в разные ip-адреса.

mky ★★★★★
()
Ответ на: комментарий от mky

Здравствуйте. Спасибо за ответ, извиняюсь что долго не отвечал. У меня есть тестовые машины, просто я даже с трудом мог представить как подступиться, у меня все еще с трудом укладывается в голове, как для одной зоны может быть несколько файлов с разными SOA и т.д.

Буду пробовать.

nokogerra
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.