LINUX.ORG.RU
решено ФорумAdmin

Реконструкция сети, переезд с MS DNS на BIND9

 , , ,


3

2

Был ранее в сети сервак на win2k3, держал роль AD, DNS, DHCP, а также был еще один такой же подобный сервачок, был прокси-сервером с Traffic Inspector на борту. В результате изменения сети на нем осталась роль AD, все остальное уехало на Debian7, в том числе и проксирование интернетов для локалки, соответсвенно,второй прокси-сервер был убран заненадобностью. До текущего момента на Debian использовал Squid+dnsmasq+isc-dhcp-server, пока не обнаружились проблемы в локалке с работой контроллера АД. Постоянно терялись пути, отваливались принтеры, в мессаджах попытки найти днс-сервер. В результате было принято решение сменить ( Аллилуя! ) dnsmasq на более функциональный BIND9. В текущий момент, бинд настроен, интернеты раздаются всем пользователям, пинг ходит во все стороны, как по IP-адресу, так ип о доменному имени. Но при nslookup не все машины отвечают на запрос. Корректно nslookup выполняется только на самом Debian, ну и с любой машины для любого интернет-адреса.

Вода закончилась, теперь сабж:

named[2278]: client 192.168.100.19#56871: update 'domain.org/IN' denied 
В связи с чем как я понимаю, обновление зон просмотра не проходит. В задаче стоит динамическое обновление зон для локалки с использованием DHCP. На бинде созданы зоны, прямой и обратный просмотр зоны domain.org, а так же по результатам мануала созданы зоны непосредственно для самого АД - в том числе и _msdcs _tcp, _udp, _sites, ForestDnsZones, DomainDnsZones. В логах они отрабатывают корректно. Записи в зону обратного просмотря проходят корректно, записывается все, что обращалось к нему. А в зону прямого просмотра не пишется ничего абсолютно. Dhcpd.conf
ddns-update-style interim;
update-static-leases	on;
include "/etc/bind/rndc.key";

zone domain.org. {
	primary 192.168.100.1;
	key "rndc-key";
	}
zone 100.168.192.in-addr.arpa. {
	primary 192.168.100.1;
	key "rndc-key";
	}

option domain-name "domain.org";
option domain-name-servers 192.168.100.1;
option routers 192.168.100.1;
option broadcast-address 192.168.100.255;
option netbios-name-servers 192.168.100.2;
option netbios-dd-server 192.168.100.2;
option netbios-node-type 8;

default-lease-time 345600;
max-lease-time 604800;

authrotitative;

log-facility local7;
subnet 192.168.100.0 netmask 255.255.255.0 {
	option routers 192.168.100.1;
	range 192.168.100.1 192.168.100.255;
}

host pdc {
	hardware ethernet 00:30:48:66:A9:88;
	fixed-address 192.168.100.2;
}

host pfs {
	hardware ethernet 00:30:48:66:A9:C6;
	fixed-address 192.168.100.3;
}

named.conf.options:
options {
	directory "/var/lib/bind";
	notify yes;
	forwarders {
	83.167.65.2;
	83.167.66.166;
	};
	version "REFUSED";
	dnssec-validation auto;
	auth-nxdomain no;    # conform to RFC1035
	listen-on {	127.0.0.1;
			192.168.100.1;	};
};

named.conf.local:

//include "/etc/bind/zones.rfc1918";
include "/etc/bind/rndc.key";

zone "domain.org" {
	type master;
	check-names ignore;
	allow-update { key "rndc-key"; };
	file "/var/lib/bind/forward.db";
};

zone "100.168.192.in-addr.arpa" {
	type master;
	check-names ignore;
	allow-update { key "rndc-key"; };
	file "/var/lib/bind/reverse.db";
};

acl AD-server {
	192.168.100.2;
};

//Active Directory - _msdcs

zone "_msdcs.domain.org" {
	type master;
	allow-update {AD-server;};
	check-names ignore;
	file "/var/lib/bind/_msdcs.domain.org";
};

//AD _sites

zone "_sites.domain.org" {
	type master;
	allow-update {AD-server;};
	check-names ignore;
	file "/var/lib/bind/_sites.domain.org";
};

//AD _tcp
zone "_tcp.domain.org" {
	type master;
	allow-update {AD-server;};
	check-names ignore;
	file "/var/lib/bind/_tcp.domain.org";
};

//AD _udp
zone "_udp.domain.org" {
	type master;
	allow-update {AD-server;};
	check-names ignore;
	file "/var/lib/bind/_udp.domain.org";
};

//AD DomainDnsZone
zone "DomainDnsZones.domain.org" {
	type master;
	allow-update {AD-server;};
	check-names ignore;
	file "/var/lib/bind/DomainDnsZones.domain.org";
};

//AD ForestDnsZones
zone "ForestDnsZones.domain.org" {
	type master;
	allow-update {AD-server;};
	check-names ignore;
	file "/var/lib/bind/ForestDnsZones.domain.org";
};


Forward.db При таком заполнении pdc находится как пингом,так и нслукапом, автоматического заполнения нет
$ORIGIN .
$TTL 86400	;
domain.org.	IN	SOA	proxy-squid.domain.org.	admin.domain.org. (
				20140306	; Serial
				10800	; Refresh
				3600	; Retry
				604800	; Expire
				86400	; Minimum
					)
$ORIGIN domain.org.
		IN	NS	proxy-squid.domain.org.
		IN	A	192.168.100.1
localhost	IN	A	127.0.0.1
proxy-squid	IN	A	192.168.100.1
pdc		IN	A	192.168.100.2
Reverse.db: Здесь записи создаются автоматически
$ORIGIN .
$TTL 86400	; 1 day
100.168.192.in-addr.arpa IN SOA	proxy-squid.domain.org. admin.domain.org. (
				20140359   ; serial
				10800      ; refresh (3 hours)
				3600       ; retry (1 hour)
				604800     ; expire (1 week)
				3600       ; minimum (1 hour)
				)
			NS	proxy-squid.domain.org.
$ORIGIN 100.168.192.in-addr.arpa.
1			PTR	domain.org.
			PTR	proxy-squid.domain.org.
$TTL 3600	; 1 hour

/etc/resolv.conf:

domain domain.org
search domain.org
nameserver 192.168.100.1

Кто сталкивался с подобным? Где можно попробовать поискать ошибку? Заранее спасибо всем откликнувшимся

Ответ на: комментарий от Dron

Спасибо за ответ на данный топик. Почитал данный материал, строка

update-policy local;
конфликтует с
allow-update { key "rndc-key"; };
О чем явно говорит вывод команды named-checkconf -z Но вот строка из вышеуказанного материала
allow-transfer { locahost; };
кажется явно помогла. Начали автоматически добавляться записи в forward.db, появилс файл forward.db.jnl. Некоторые клиенты уже успешно проходят нслукап по доменному имени, полная картина будет завтра с утра, ибо еще не все клиенты прописались в днс. Спасибо большое.

При всех этих делах,в частности,при переезде на BIND отвалилось локальное подключение по ssh. Про это,кажется, будет уже отдельная тема...

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

отвалилось локальное подключение по ssh

o_O в смысле вообще ssh не пашет? скастуй как тему создашь про ssh или прям тут пиши, мне самому интересно стало.

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

нет, вчера никаких сообщений об ошибках не было. Как создалась одна запись в forward.db, так и осталась, новые машины не прописались. А в syslog появилось вот это:

zone 'domain.org/IN': NS 'proxy-squid' has no address records (A or AAAA)
и так же появилась какая-то новая зона:
_default.domain.org/IN: bad zone

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

Ну я не компетентен, странно что больше никто на тему не ответил ,кроме меня, незнайки.

zone 'domain.org/IN': NS 'proxy-squid' has no address records (A or AAAA)
NS

Он я так понял сам себя не может найти, тогда надо так, кажись.

IN   NS     proxy-squid.domain.org.
proxy-squid  IN  A   192.168.100.1
ns        IN   CNAME   proxy-squid
Dron ★★★★★ ()
Последнее исправление: Dron (всего исправлений: 1)
Ответ на: комментарий от Dron

после исправления и приведения к данному виду

		IN	NS	proxy-squid.domain.org.
		IN	A	192.168.100.1
ns		IN	CNAME	proxy-squid
после named-checkconf -z выдает:
/var/lib/bind/forward.db:12: ignoring out-of-zone data (ns)
zone domain.org/IN: NS 'proxy-squid.domain.org' has no address records (A or AAAA)
кажется, ничего не изменилось..

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

Ну правильно всё

добавил

IN	A	192.168.100.1

а надо

proxy-squid  IN  A   192.168.100.1

О чём тебе и говорят что запись proxy-squid.domain.org ,то есть домен третьего уровня proxy-squid, не имеет разрешонного ip , то есть не определены --> has no address records (A или AAAA) записи.

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

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

без изменений, ругается все также на

/var/lib/bind/forward.db:12: ignoring out-of-zone data (proxy-squid)
Чую, дело в конфигах, а не в зоне прямого просмотра, хотя все может быть..

Aborigen1020 ()
Ответ на: комментарий от Dron

чекнул еще named-checkzone domain.org forward.db

zone 'domain.org/IN' loading from master file forward.db failed: file not found.

Ну смысл написанного мне ясен, но как это может быть? файл то создан, вчера работал. Многие также советуют таки указать правильный путь к данному файлу, и ошибка устранится, но путь и так правильный, и файл создан, и главное, заполнен, и вчера даже работал.

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

ну и по пути всего нашел причину отвалившегося ssh на удаленной машине - ее айпи адрес был занесен в hosts.deny утилитой denyhosts.

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

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

Меня одно веселит, ТРОЕ ЗАНЕСЛИ ПОСТ В ИЗБРАННОЕ и чтоб их никто не удосужился хоть чуток помочь. Куда катится ЛОР. Хаскели лиспы они готовы обсуждать до крови, а тут.

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

в реузльтате ожесточенных боев загрузка прямой зоны из файла forward.db прошла. пришлось удалить созданный журнал, т.к. в процессе он ругался даже на него, и поправить файл зоны. Сейчас ситуация как и в первом посте - при добавлении записей руками в forward.db все находится прямым и обратным запросом, динамически не обновляется. в логах все молчаливо грузится, ошибок нет..

Aborigen1020 ()
Ответ на: комментарий от Dron

мануал моей мечты. Огромное вам спасибо.

Хоть в файл forward.db записи не идут, там так и остались статичные записи, но в логах видно, как при включении клиентского компа добавляются записи. Нслукап бегает сразу же в обе стороны для добавленного компа. наверное, это где-то в кэше isc-dhcp-server и bind9. Думаю, будет неплохо показать конечные конфиги, как считаете? :)

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

Думаю, будет неплохо показать конечные конфиги, как считаете? :)

Согласен ::)

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

dhcpd.conf:

include "/etc/bind/rndc.key";

server-identifier       proxy-squid;
ddns-domainname "domain.org.";
ddns-rev-domainname     "in-addr.arpa.";
ddns-updates on;
ddns-update-style interim;
ignore                  client-updates;

zone domain.org { primary 127.0.0.1; key "rndc-key";}
zone 100.168.192.in-addr.arpa { primary 127.0.0.1; key "rndc-key"; }

option domain-name "domain.org";
option domain-name-servers 192.168.100.1;
option routers 192.168.100.1;
option broadcast-address 192.168.100.255;
option netbios-name-servers 192.168.100.2;
option netbios-dd-server 192.168.100.2;
option netbios-node-type 8;
option ntp-servers 192.168.100.1;

default-lease-time 345600;
max-lease-time 604800;

authrotitative;

log-facility local7;

subnet 192.168.100.0 netmask 255.255.255.0 {
        option routers                  192.168.100.1;
        option subnet-mask              255.255.255.0;
        option broadcast-address        192.168.100.255;
        option domain-name-servers      192.168.100.1;
        range 192.168.100.2 192.168.100.255;

        zone 100.168.192.in-addr-arpa. { primary 192.168.100.1; key "rndc-key"; }
        zone domain.org. { primary 192.168.100.1; key "rndc-key"; }
}

host pdc {
        hardware ethernet 00:30:48:66:A9:88;
        fixed-address 192.168.100.2;
}

host pfs {
        hardware ethernet 00:30:48:66:A9:C6;
        fixed-address 192.168.100.3;
}
cat /etc/bind/named.conf.local
include "/etc/bind/rndc.key";

zone "vfrsteu.org" IN {
        type master;
        allow-transfer { localhost; };
        check-names ignore;
        allow-update { key "rndc-key"; };
        file "/var/lib/bind/forward.db";
        notify yes;
};

zone "100.168.192.in-addr.arpa" IN {
        type master;
        check-names ignore;
        allow-transfer { localhost; };
        allow-update { key "rndc-key"; };
        file "/var/lib/bind/reverse.db";
        notify yes;

};

acl AD-server {
        192.168.100.2;
};

//Active Directory - _msdcs

zone "_msdcs..org" {
        type master;
        allow-update {AD-server;};
        check-names ignore;
        file "/var/lib/bind/_msdcs..org";
};

//AD _sites

zone "_sites..org" {
        type master;
        allow-update {AD-server;};
        check-names ignore;
        file "/var/lib/bind/_sites..org";
};

//AD _tcp
zone "_tcp..org" {
        type master;
        allow-update {AD-server;};
        check-names ignore;
        file "/var/lib/bind/_tcp..org";
};

//AD _udp
zone "_udp..org" {
        type master;
        allow-update {AD-server;};
        check-names ignore;
        file "/var/lib/bind/_udp..org";
};

//AD DomainDnsZone
zone "DomainDnsZones..org" {
        type master;
        allow-update {AD-server;};
        check-names ignore;
        file "/var/lib/bind/DomainDnsZones..org";
};

//AD ForestDnsZones
zone "ForestDnsZones..org" {
        type master;
        allow-update {AD-server;};
        check-names ignore;
        file "/var/lib/bind/ForestDnsZones..org";
};

cat /etc/bind/named.conf.options

options {
        directory "/var/lib/bind";
        forwarders {
        83.167.65.2;
        83.167.66.166;
        8.8.8.8;
        };
        version "REFUSED";
        dnssec-validation auto;
        allow-transfer { none; };
        auth-nxdomain no;    # conform to RFC1035
        listen-on {     127.0.0.1;
                        192.168.100.1;  };
};

cat /var/lib/bind/forward.db

$ORIGIN .
$TTL 86400      ; 1 day
domain.org             IN SOA  proxy-squid.domain.org. admin..org. (
                                20140414   ; serial
                                10800      ; refresh (3 hours)
                                3600       ; retry (1 hour)
                                604800     ; expire (1 week)
                                86400      ; minimum (1 day)
                                )
                        NS      proxy-squid.domain.org.
$ORIGIN domain.org.
$TTL 3600       ; 1 hour

cat /var/lib/bind/reverse.db

$ORIGIN .
$TTL 86400      ; 1 day
100.168.192.in-addr.arpa IN SOA proxy-squid.domain.org. admin..org. (
                                20140380   ; serial
                                10800      ; refresh (3 hours)
                                3600       ; retry (1 hour)
                                604800     ; expire (1 week)
                                3600       ; minimum (1 hour)
                                )
                        NS      proxy-squid.domain.org.
$ORIGIN 100.168.192.in-addr.arpa.
1                       PTR     proxy-squid.domain.org.
Где стоит .. там имя домена, лениво было вписывать. Вообще удалось почти все, сейчас уже идут обновления в forward.db, сам AD делает обновления в своей зоне на proxy-squid в соответствующих зонах.

Теперь домен живет полноценно, спасибо, передает вам :)

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

Спасибо, думаю многим пригодится, мне в том числе, самое главное опыт получен и самостоятельно получен ::).

P.S. Раз уж вопрос решен, то отметь его как «Решено». В начале (шапке) поста есть «[Отметить как решенную]». Удачи. ::)

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