Поиск по этому блогу

понедельник, 23 августа 2010 г.

Про DNS

Начало

Эту хрень я написал очень кратко, так, помусорить в ингтренете про bind & many views.
А вообще моя задача была - создать скрипт, который бы выдергивал из таблицы биллинга данный IP-NAME-DOMAIN и формировал бы данные для bind, причем для разных сегментов сети отдавал бы различные данные. Скрипт писал на perl, он получился довольно большим, могу прислать кому надо). Выкладывать сюда не стал, т.к. лень было потирать в нем настройки.



Единый ДНС сервер для служебных зон


Наладить единую структуры упраовления зонами, отдельно от абонентских зон. Это необходимо чтобы выделить ресурсами для автоматического управления зонами и более гибкого разделения доступом.

Термины
Сектор - часть сети, чьи адреса имеют определенные привилегии доступа.
Вьюшка (view)- позволяет использовать различные настройки DNS сервера в зависимости от адреса источника запроса.
Доменное имя - служит для адресации узлов сети Интернет и расположенных на них сетевых ресурсов в удобной для человека форме.
Зона - совокупность доменных имён определённого уровня, входящих в конкретный домен. Например, зона example.ru включает все доменные имена третьего уровня в этом домене.

Логическая схема



Иерархия папок и связи файлов





keys.conf & acl.conf вынес в отдельный файл, для того, чтобы в одном месте редактировать, а потом копировать на slave сервера.

Сектора

Сектор - часть сети с чьи адреса имеют определенные привилегии доступа, для каждого сектора делается свой view.
  • srv - Служебный сектор включает админов и службы поддержки, видят прямы и обратные имена служебных доменов.
  • fttb - Приватные адреса
  • clnt - все адреса наших клиентов
  • all - все адреса
  • block - запрещенные чуваки.

Зоны

  1. fttb
  2. people.fttb
  3. mgmt.xxx.ru
  4. srv.xxx.ru
  5. xxx.ru
  6. retracker.local


Описание зон и критериев доступа к ним


zonename filename Autogenerate Откуда видится
fttb fttb NO fttb,srv
mgmt.xxx.ru mgmt.zone YES srv
people.fttb people.fttb.zone YES fttb,srv
srv.xxx.ru srv.zone YES srv
xxx.ru sci-nnov.ru.zone YES all,clnt
retracker.localretracker.localNOfttb,srv

FTTB

В этой зоне размещаются хосты с основными сервисами. Зона не динамическая, т.е. не генерируется автоматически, для обновления нужно править ее руками. Чтобы кажый раз не менялся SERIAL NUMBER, ее можно назвать просто fttb

retracker.local

Зона, нужная для организации локального ретрекера.

MGMT.FTTB

В этой зоне размещается управляемое оборудование. Генерируется автоматически

PEOPLE.FTTB

Зона генерится автоматически, в ней находятся записи, с именами хостов клиентов из серой сети.

SRV.xxx.RU

Сеть для серверов. Зона генерится автоматически

xxx.RU

Зона генерится автоматически - наша зона

Формирование источников для прямых и обратных зон

Источник - таблица ETC_hosts (сложилось исторически так)

$namedroot/scripts/genzone.पल

Кому нужен скрипт пишите мне, я вам пришлю।))



Алгоритм работы

  1. Скрипт берет селект и начинает его обрабатывать следующим образом:
  2. если в таблице ETC_HOSTS был задан domain, то скрипт его не будет обрабатывать и выгрузит его только в обратную зону, если конечно эта зона определена в конфиге, сформируя запись вида $ip IN PTR $host.$domain.
  3. Все записи, которые не попали под разметку, попадут в домен sci-nnov।ru по умолчанию, т।е. если в etc_hosts есть хост x.y.ru, и domain = null, то он попадет в домен sci-nnov.ru(в обратной зоне), нужно переделать x = hostname, y.ru = domain. ( хотя можно это изменить, если поправить ключ «znotgenerate1», в данный момент, все хосты, у которых domain = null & ( hostname = '*.nnov.ru' or hostname = '*.ru') выгрузятся в обратную зону без добавления к хосту xxx.ru.

Пример организации конфигурации bind с разлицными view на slave и master серверах


примеры view на Master:

view "iskra" {
match-clients { key iskra; iskra; };
recursion yes;
zone "fttb" {
type master;
file "master/fttb.iskra.zone";
};
};


view "berez" {
match-clients { key berez; berez; };
recursion yes;
zone "fttb" {
type master;
file "master/fttb.berez.zone";
};
};


view "mdol" {
match-clients { key mdol; mdol; };
recursion yes;
zone "fttb" {
type master;
file "master/fttb.mdol.zone";
};
};


примеры view Slave:

view "iskra" {
match-clients { key iskra; iskra; };
server 172.22.2.1 { keys iskra; };
recursion yes;
zone "fttb" {
type slave;
file "slave/fttb.iskra.zone";
masters { 172.22.2.1;};
};
};


view "berez" {
match-clients { key berez; berez; };
server 172.22.2.1 { keys berez; };
recursion yes;
zone "fttb" {
type slave;
file "slave/fttb.berez.zone";
masters { 172.22.2.1;};
};
};


view "mdol" {
match-clients { key mdol; mdol; };
server 172.22.2.1 { keys mdol; };
recursion yes;
zone "fttb" {
type slave;
file "slave/fttb.mdol.zone";
masters { 172.22.2.1;};
};
};




...

acl berez {
10.128.64.0/19;
};

acl iskra {
10.136.0.0/18;
};


acl mdol {
10.8.128.0/21;
};



key "berez" {
algorithm hmac-md5;
secret "aaaaaaaaaaaaaaaaaaaaaaaaa==";
};

key "mdol" {
algorithm hmac-md5;
secret "xxxxxxxxxxxxxxxxxx==";

};


key "iskra" {
algorithm hmac-md5;
secret "zzzzzzzzzzzzzzzzzzzzz==";


Комментариев нет:

Отправить комментарий