Страница 1 из 1

Рекурсивный Bind

Добавлено: 2009-08-27 10:12:35
riqwel
Собственно вопрос заключается в следующем.
В сети находится 2 dns сервера, один на freebsd который смотрит наружу и обслуживает домен второго уровня. другой DNS сервер стоит на винде и обслуживает компьютеры в локальной сети. нужно сделать чтобы виндовый dns сервер обращался к bind с запросами а тот в дальнейшем к вышестоящему днс серверу.форвард на виндовом днсе настроен на бинд, обращения к корневым серверам отключены.на виндовом днс проходит разрешение имени машин находящихся в домене обслуживаемом freebsd/bind. но разрешения внешних имен сети интернет не проходит.при подаче интернета на виндовый днс и при отключенных корневых серверах разрешение внешних имен в интернете проходит.
Дальше мои мысли - получается что bind не сам даёт ответ виндовому днс серверу а лиш перенапрявляет его на днс сервер провайдера.нашел документацию где описывается про рекурсивные и нерекурсивные днс серверы. есть мысль что проблема в том что bind работает как нерекурсивный сервер.
Прошу подсказать в том ли направлении я мыслю если в том то как сделать днс рекурсивным.

Re: Рекурсивный Bind

Добавлено: 2009-08-27 10:18:42
Abigor
А в named.conf что стоит в разделе forward ??

Re: Рекурсивный Bind

Добавлено: 2009-08-27 10:19:49
riqwel
вышестоящий днс сервер, провайдера

Re: Рекурсивный Bind

Добавлено: 2009-08-27 10:26:17
Psychotic
вы бы скопипастили сюда конфиг

Re: Рекурсивный Bind

Добавлено: 2009-08-27 10:34:17
riqwel

Код: Выделить всё

// $FreeBSD: src/etc/namedb/named.conf,v 1.26.4.1 2008/01/13 20:48:23 dougb Exp $
//
// Refer to the named.conf(5) and named(8) man pages, and the documentation
// in /usr/share/doc/bind9 for more details.
//
// If you are going to set up an authoritative server, make sure you
// understand the hairy details of how DNS works.  Even with
// simple mistakes, you can break connectivity for affected parties,
// or cause huge amounts of useless Internet traffic.

options {
	// Relative to the chroot directory, if any
	directory	"/etc/namedb";
	pid-file	"/var/run/named/pid";
	dump-file	"/var/dump/named_dump.db";
	statistics-file	"/var/stats/named.stats";

// If named is being used only as a local resolver, this is a safe default.
// For named to be accessible to the network, comment this option, specify
// the proper IP address, or delete this option.
//	listen-on	{ 127.0.0.1; };
// If you have IPv6 enabled on this system, uncomment this option for
// use as a local resolver.  To give access to the network, specify
// an IPv6 address, or the keyword "any".
//	listen-on-v6	{ ::1; };

// These zones are already covered by the empty zones listed below.
// If you remove the related empty zones below, comment these lines out.
//	disable-empty-zone "255.255.255.255.IN-ADDR.ARPA";
//	disable-empty-zone "0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.ARPA";
//	disable-empty-zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.ARPA";

// In addition to the "forwarders" clause, you can force your name
// server to never initiate queries of its own, but always ask its
// forwarders only, by enabling the following line:
//
//	forward only;

// If you've got a DNS server around at your upstream provider, enter
// its IP address here, and enable the line below.  This will make you
// benefit from its cache, thus reduce overall DNS traffic in the Internet.
//
	forwarders {
		xx.xxx.xxx.xx; xx.xxx.xxx.xx;
	};
//
	/*
	 * If there is a firewall between you and nameservers you want
	 * to talk to, you might need to uncomment the query-source
	 * directive below.  Previous versions of BIND always asked
	 * questions using port 53, but BIND versions 8 and later
	 * use a pseudo-random unprivileged UDP port by default.
	 */
	// query-source address * port 53;
};

// If you enable a local name server, don't forget to enter 127.0.0.1
// first in your /etc/resolv.conf so this server will be queried.
// Also, make sure to enable it in /etc/rc.conf.

// The traditional root hints mechanism. Use this, OR the slave zones below.
zone "." { type hint; file "named.root"; };

/*	Slaving the following zones from the root name servers has some
	significant advantages:
	1. Faster local resolution for your users
	2. No spurious traffic will be sent from your network to the roots
	3. Greater resilience to any potential root server failure/DDoS

	On the other hand, this method requires more monitoring than the
	hints file to be sure that an unexpected failure mode has not
	incapacitated your server.  Name servers that are serving a lot
	of clients will benefit more from this approach than individual
	hosts.  Use with caution.

	To use this mechanism, uncomment the entries below, and comment
	the hint zone above.
*/
/*
zone "." {
	type slave;
	file "slave/root.slave";
	masters {
		192.5.5.241;	// F.ROOT-SERVERS.NET.
	};
	notify no;
};
zone "arpa" {
	type slave;
	file "slave/arpa.slave";
	masters {
		192.5.5.241;	// F.ROOT-SERVERS.NET.
	};
	notify no;
};
zone "in-addr.arpa" {
	type slave;
	file "slave/in-addr.arpa.slave";
	masters {
		192.5.5.241;	// F.ROOT-SERVERS.NET.
	};
	notify no;
};
*/

/*	Serving the following zones locally will prevent any queries
	for these zones leaving your network and going to the root
	name servers.  This has two significant advantages:
	1. Faster local resolution for your users
	2. No spurious traffic will be sent from your network to the roots
*/
// RFC 1912
zone "localhost"	{ type master; file "master/localhost-forward.db"; };
zone "127.in-addr.arpa" { type master; file "master/localhost-reverse.db"; };
zone "255.in-addr.arpa"	{ type master; file "master/empty.db"; };

// RFC 1912-style zone for IPv6 localhost address
zone "0.ip6.arpa"	{ type master; file "master/localhost-reverse.db"; };

// "This" Network (RFCs 1912 and 3330)
zone "0.in-addr.arpa"		{ type master; file "master/empty.db"; };

// Private Use Networks (RFC 1918)
zone "10.in-addr.arpa"		{ type master; file "master/empty.db"; };
zone "16.172.in-addr.arpa"	{ type master; file "master/empty.db"; };
zone "17.172.in-addr.arpa"	{ type master; file "master/empty.db"; };
zone "18.172.in-addr.arpa"	{ type master; file "master/empty.db"; };
zone "19.172.in-addr.arpa"	{ type master; file "master/empty.db"; };
zone "20.172.in-addr.arpa"	{ type master; file "master/empty.db"; };
zone "21.172.in-addr.arpa"	{ type master; file "master/empty.db"; };
zone "22.172.in-addr.arpa"	{ type master; file "master/empty.db"; };
zone "23.172.in-addr.arpa"	{ type master; file "master/empty.db"; };
zone "24.172.in-addr.arpa"	{ type master; file "master/empty.db"; };
zone "25.172.in-addr.arpa"	{ type master; file "master/empty.db"; };
zone "26.172.in-addr.arpa"	{ type master; file "master/empty.db"; };
zone "27.172.in-addr.arpa"	{ type master; file "master/empty.db"; };
zone "28.172.in-addr.arpa"	{ type master; file "master/empty.db"; };
zone "29.172.in-addr.arpa"	{ type master; file "master/empty.db"; };
zone "30.172.in-addr.arpa"	{ type master; file "master/empty.db"; };
zone "31.172.in-addr.arpa"	{ type master; file "master/empty.db"; };
zone "168.192.in-addr.arpa"	{ type master; file "master/empty.db"; };

// Link-local/APIPA (RFCs 3330 and 3927)
zone "254.169.in-addr.arpa"	{ type master; file "master/empty.db"; };

// TEST-NET for Documentation (RFC 3330)
zone "2.0.192.in-addr.arpa"	{ type master; file "master/empty.db"; };

// Router Benchmark Testing (RFC 3330)
zone "18.198.in-addr.arpa"	{ type master; file "master/empty.db"; };
zone "19.198.in-addr.arpa"	{ type master; file "master/empty.db"; };

// IANA Reserved - Old Class E Space
zone "240.in-addr.arpa"		{ type master; file "master/empty.db"; };
zone "241.in-addr.arpa"		{ type master; file "master/empty.db"; };
zone "242.in-addr.arpa"		{ type master; file "master/empty.db"; };
zone "243.in-addr.arpa"		{ type master; file "master/empty.db"; };
zone "244.in-addr.arpa"		{ type master; file "master/empty.db"; };
zone "245.in-addr.arpa"		{ type master; file "master/empty.db"; };
zone "246.in-addr.arpa"		{ type master; file "master/empty.db"; };
zone "247.in-addr.arpa"		{ type master; file "master/empty.db"; };
zone "248.in-addr.arpa"		{ type master; file "master/empty.db"; };
zone "249.in-addr.arpa"		{ type master; file "master/empty.db"; };
zone "250.in-addr.arpa"		{ type master; file "master/empty.db"; };
zone "251.in-addr.arpa"		{ type master; file "master/empty.db"; };
zone "252.in-addr.arpa"		{ type master; file "master/empty.db"; };
zone "253.in-addr.arpa"		{ type master; file "master/empty.db"; };
zone "254.in-addr.arpa"		{ type master; file "master/empty.db"; };

// IPv6 Unassigned Addresses (RFC 4291)
zone "1.ip6.arpa"		{ type master; file "master/empty.db"; };
zone "3.ip6.arpa"		{ type master; file "master/empty.db"; };
zone "4.ip6.arpa"		{ type master; file "master/empty.db"; };
zone "5.ip6.arpa"		{ type master; file "master/empty.db"; };
zone "6.ip6.arpa"		{ type master; file "master/empty.db"; };
zone "7.ip6.arpa"		{ type master; file "master/empty.db"; };
zone "8.ip6.arpa"		{ type master; file "master/empty.db"; };
zone "9.ip6.arpa"		{ type master; file "master/empty.db"; };
zone "a.ip6.arpa"		{ type master; file "master/empty.db"; };
zone "b.ip6.arpa"		{ type master; file "master/empty.db"; };
zone "c.ip6.arpa"		{ type master; file "master/empty.db"; };
zone "d.ip6.arpa"		{ type master; file "master/empty.db"; };
zone "e.ip6.arpa"		{ type master; file "master/empty.db"; };
zone "0.f.ip6.arpa"		{ type master; file "master/empty.db"; };
zone "1.f.ip6.arpa"		{ type master; file "master/empty.db"; };
zone "2.f.ip6.arpa"		{ type master; file "master/empty.db"; };
zone "3.f.ip6.arpa"		{ type master; file "master/empty.db"; };
zone "4.f.ip6.arpa"		{ type master; file "master/empty.db"; };
zone "5.f.ip6.arpa"		{ type master; file "master/empty.db"; };
zone "6.f.ip6.arpa"		{ type master; file "master/empty.db"; };
zone "7.f.ip6.arpa"		{ type master; file "master/empty.db"; };
zone "8.f.ip6.arpa"		{ type master; file "master/empty.db"; };
zone "9.f.ip6.arpa"		{ type master; file "master/empty.db"; };
zone "a.f.ip6.arpa"		{ type master; file "master/empty.db"; };
zone "b.f.ip6.arpa"		{ type master; file "master/empty.db"; };
zone "0.e.f.ip6.arpa"		{ type master; file "master/empty.db"; };
zone "1.e.f.ip6.arpa"		{ type master; file "master/empty.db"; };
zone "2.e.f.ip6.arpa"		{ type master; file "master/empty.db"; };
zone "3.e.f.ip6.arpa"		{ type master; file "master/empty.db"; };
zone "4.e.f.ip6.arpa"		{ type master; file "master/empty.db"; };
zone "5.e.f.ip6.arpa"		{ type master; file "master/empty.db"; };
zone "6.e.f.ip6.arpa"		{ type master; file "master/empty.db"; };
zone "7.e.f.ip6.arpa"		{ type master; file "master/empty.db"; };

// IPv6 ULA (RFC 4193)
zone "c.f.ip6.arpa"		{ type master; file "master/empty.db"; };
zone "d.f.ip6.arpa"		{ type master; file "master/empty.db"; };

// IPv6 Link Local (RFC 4291)
zone "8.e.f.ip6.arpa"		{ type master; file "master/empty.db"; };
zone "9.e.f.ip6.arpa"		{ type master; file "master/empty.db"; };
zone "a.e.f.ip6.arpa"		{ type master; file "master/empty.db"; };
zone "b.e.f.ip6.arpa"		{ type master; file "master/empty.db"; };

// IPv6 Deprecated Site-Local Addresses (RFC 3879)
zone "c.e.f.ip6.arpa"		{ type master; file "master/empty.db"; };
zone "d.e.f.ip6.arpa"		{ type master; file "master/empty.db"; };
zone "e.e.f.ip6.arpa"		{ type master; file "master/empty.db"; };
zone "f.e.f.ip6.arpa"		{ type master; file "master/empty.db"; };

// IP6.INT is Deprecated (RFC 4159)
zone "ip6.int"			{ type master; file "master/empty.db"; };

// NB: Do not use the IP addresses below, they are faked, and only
// serve demonstration/documentation purposes!
//
// Example slave zone config entries.  It can be convenient to become
// a slave at least for the zone your own domain is in.  Ask
// your network administrator for the IP address of the responsible
// master name server.
//
// Do not forget to include the reverse lookup zone!
// This is named after the first bytes of the IP address, in reverse
// order, with ".IN-ADDR.ARPA" appended, or ".IP6.ARPA" for IPv6.
//
// Before starting to set up a master zone, make sure you fully
// understand how DNS and BIND work.  There are sometimes
// non-obvious pitfalls.  Setting up a slave zone is usually simpler.
//
// NB: Don't blindly enable the examples below. :-)  Use actual names
// and addresses instead.

/* An example dynamic zone
key "exampleorgkey" {
	algorithm hmac-md5;
	secret "sf87HJqjkqh8ac87a02lla==";
};
zone "example.org" {
	type master;
	allow-update {
		key "exampleorgkey";
	};
	file "dynamic/example.org";
};
*/

// Example of a slave reverse zone
zone "xxx.local" {
	type slave;
	file "slave/xxx.local";
	masters	{
		192.168.10.250;
	};
};
zone "10.168.192.in-addr.arpa" {
	type slave;
	file "slave/10.168.192.in-addr.arpa";
	masters {
		192.168.10.250;
	};
};

zone "xxx.ru" {
	type master;
 	file "xxx.ru";
};

zone "xxx.xxx.xx.in-addr.arpa"{
	type master;
	file "xxx.xxx.xx.in-addr.arpa";
	};
//view "internal" {
//	match-clients { 192.168.1.0/24; 192.168.2.0/24; 192.168.10.0/24; 192.168.77.0/24; };
//	recursion yes;
//	zone "xxxx.ru" {
//		type master;
//		file "xxx-internal.db";
//	};
//};
//
//view "external" {
//	match-clients {any; };
//	recursion no;
//	zone "xxx.ru" {
//		type master;
//		file "xxx-external.db";
//	};
//};

Re: Рекурсивный Bind

Добавлено: 2009-08-27 11:04:10
Psychotic
нет ли брандмауэра, запрещающего байнду ходить куда-то, кроме днсов провайдера?
что говорит

Код: Выделить всё

dig @<bind_ip> <somedomain> +trace

Re: Рекурсивный Bind

Добавлено: 2009-08-27 11:25:22
riqwel

Код: Выделить всё

%dig @xx.xxx.xxx.xxx ya.ru +trace

; <<>> DiG 9.4.2 <<>> @xx.xxx.xxx.xxx ya.ru +trace
; (1 server found)
;; global options:  printcmd
.                       340458  IN      NS      A.ROOT-SERVERS.NET.
.                       340458  IN      NS      E.ROOT-SERVERS.NET.
.                       340458  IN      NS      G.ROOT-SERVERS.NET.
.                       340458  IN      NS      I.ROOT-SERVERS.NET.
.                       340458  IN      NS      F.ROOT-SERVERS.NET.
.                       340458  IN      NS      H.ROOT-SERVERS.NET.
.                       340458  IN      NS      M.ROOT-SERVERS.NET.
.                       340458  IN      NS      K.ROOT-SERVERS.NET.
.                       340458  IN      NS      C.ROOT-SERVERS.NET.
.                       340458  IN      NS      B.ROOT-SERVERS.NET.
.                       340458  IN      NS      L.ROOT-SERVERS.NET.
.                       340458  IN      NS      D.ROOT-SERVERS.NET.
.                       340458  IN      NS      J.ROOT-SERVERS.NET.
;; Received 316 bytes from xx.xxx.xxx.xxx#53(xx.xxx.xxx.xxx) in 2 ms

ru.                     172800  IN      NS      NS2.NIC.FR.
ru.                     172800  IN      NS      NS2.RIPN.NET.
ru.                     172800  IN      NS      NS5.MSK-IX.NET.
ru.                     172800  IN      NS      NS9.RIPN.NET.
ru.                     172800  IN      NS      E.DNS.RIPN.NET.
ru.                     172800  IN      NS      NS.RIPN.NET.
;; Received 249 bytes from 192.36.148.17#53(I.ROOT-SERVERS.NET) in 148 ms

ya.ru.                  345600  IN      NS      ns5.yandex.ru.
ya.ru.                  345600  IN      NS      ns1.yandex.ru.
;; Received 98 bytes from 193.232.128.6#53(NS5.MSK-IX.NET) in 169 ms

ya.ru.                  7200    IN      A       77.88.21.8
ya.ru.                  7200    IN      A       93.158.134.8
ya.ru.                  7200    IN      A       213.180.204.8
ya.ru.                  7200    IN      NS      ns1.yandex.ru.
ya.ru.                  7200    IN      NS      ns5.yandex.ru.
;; Received 114 bytes from 213.180.204.1#53(ns5.yandex.ru) in 137 ms

Re: Рекурсивный Bind

Добавлено: 2009-08-27 11:39:30
Psychotic
если это с хоста внутри сети, а не с байнда, то с байндом все в порядке. нужно отлавливать что отправляет и получает виндовый днс.

Re: Рекурсивный Bind

Добавлено: 2009-08-27 12:09:49
riqwel
это с бинда, в внутренней сети разрешение не проходит если на машине из внутренней сети нет инета.

Re: Рекурсивный Bind

Добавлено: 2009-08-27 12:12:40
riqwel
в чем разница работы бинда как рекурсивного и не рекурсивного сервера днс?и как узнать в каком режиме он работает?

Re: Рекурсивный Bind

Добавлено: 2009-08-27 12:51:55
Psychotic
как и у любого другого днса - если у нерекурсивного в кэше или в памяти нет данных, он пошлет, рекурсивный займется поиском.

у байнда только внешний адрес?

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