Создание первичного и вторичного DNS для домена

Приветствую. Возникла необходимость создать днс-сервера для поддержки доменов. В наличии два сервера (debian), 2 ip в разных подсетях(1.1.1.1 и 2.2.2.2).
Пока что домен один (example.com) и ns-серверы для него должны быть такие: ns1.example.com и, соответственно на втором сервере, ns2.example.com
итак, что я делал:
1) прописал у регистратора dns серверы: ns1.example.com 1.1.1.1 и ns2.example.com 2.2.2.2
2) на первом сервере был устновлен BIND, открыт порт 53/tcp привожу содержимое конфигураации:

$ cat /etc/bind/named.conf
// This is the primary configuration file for the BIND DNS server named.
//
// Please read /usr/share/doc/bind9/README.Debian.gz for information on the
// structure of BIND configuration files in Debian, *BEFORE* you customize
// this configuration file.
//
// If you are just adding zones, please do that in /etc/bind/named.conf.local

include "/etc/bind/named.conf.options";

// prime the server with knowledge of the root servers
zone "." {
type hint;
file "/etc/bind/db.root";
};

// be authoritative for the localhost forward and reverse zones, and for
// broadcast zones as per RFC 1912

zone "localhost" {
type master;
file "/etc/bind/db.local";
};

zone "127.in-addr.arpa" {
type master;
file "/etc/bind/db.127";
};

zone "0.in-addr.arpa" {
type master;
file "/etc/bind/db.0";
};

zone "255.in-addr.arpa" {
type master;
file "/etc/bind/db.255";
};

include "/etc/bind/named.conf.local";


$ cat /etc/bind/named.conf.options
options {
directory "/var/cache/bind";

// If there is a firewall between you and nameservers you want
// to talk to, you may need to fix the firewall to allow multiple
// ports to talk. See www.kb.cert.org/vuls/id/800113

// If your ISP provided one or more IP addresses for stable
// nameservers, you probably want to use them as forwarders.
// Uncomment the following block, and insert the addresses replacing
// the all-0's placeholder.

// forwarders {
// 0.0.0.0;
// };

auth-nxdomain no; # conform to RFC1035
listen-on-v6 { any; };
};



$ cat /etc/bind/named.conf.local
zone "example.com" {
type master;
file "/etc/bind/example.com";
};



$ cat /etc/bind/example.com
$TTL 3600
@ IN SOA ns1.example.com. support.example.com. (
2010122202 ; serial, todays date + todays serial #
10800 ; refresh, seconds
3600 ; retry, seconds
604800 ; expire, seconds
86400 ) ; minimum, seconds
@ IN NS ns1.example.com.
@ IN NS ns2.example.com.
mail IN A 1.1.1.1
ns1 IN A 1.1.1.1
www IN A 1.1.1.1
ftp IN A 1.1.1.1
example.com. IN A 1.1.1.1
example.com. IN MX 10 mail


Если сделать nslookup с использованием этого сервера (1.1.1.1), то видим:
$ nslookup example.com localhost
Server: localhost
Address: 127.0.0.1#53

Name: example.com
Address: 1.1.1.1


Все же остальные сервера отвечают: (прошло уже больше суток)
$ nslookup example.com
;; connection timed out; no servers could be reached


Быть может кто-то подскажет мне, в чём проблема?
и хотелось бы рекомендаций, как настраивать вторичный днс на втором сервере (2.2.2.2)
  • Вопрос задан
  • 6987 просмотров
Решения вопроса 1
@bondbig
открыт порт 53/tcp
По умолчанию ДНС-запросы выполняются по UDP. Fallback на TCP идет только если запрос(ответ) превышает 500 байт, как правило при AXFR-запросах (трансфер зоны). Откройте 53/UDP
(прошло уже больше суток)
Какой TTL у SOA-записи? Дайте вывод
dig example.com SOA

Как его заставить писать логи? 
Директива 'logging' в конфиге. Вот пример, можете от него плясать:
logging {
#	# Log queries to a file limited to a size of 100 MB.
	channel query_logging {
		file "/var/log/named_querylog"
			versions 20 size 200M;
		print-time yes;			// timestamp log entries
		severity dynamic;	
	};
	channel security {
		file "/var/log/named_security"
			versions 10 size 50M;
		print-time yes;
		severity dynamic;	
	};
	channel resolver {
		file "/var/log/named_resolver"
			versions 2 size 50M;
		print-time yes;
		severity dynamic;	 
	};
	channel network {
		file "/var/log/named_network"
			versions 2 size 50M;
		print-time yes;
		severity dynamic;	 
	};
	channel xfer {
		file "/var/log/named_xfer"
			versions 2 size 50M;
		print-time yes;
		severity dynamic;	 
	};
	channel client {
		file "/var/log/named_client"
			versions 2 size 50M;
		print-time yes;
		severity dynamic;	 
	};
	category queries { query_logging; };
	category security { security; };
	category resolver { resolver; };
	category network { network; };
	category xfer-in { xfer; };
	category xfer-out { xfer; };
	category client { client; };
#
#	# Log general name server errors to syslog.
	channel syslog_errors {
		syslog user;
		severity error;
	};
	category default { syslog_errors;  };
#
#	# Don't log lame server messages.
	category lame-servers { null; };
	category security { null; };
};
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 5
@inkvizitor68sl
Linux-сисадмин с 8 летним стажем.
debian.pro/125
debian.pro/156

Может так приятнее будет)
Ответ написан
Комментировать
@holivar
>$ nslookup example.com
>;; connection timed out; no servers could be reached

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

Можете «спалить» конкретные айпи и домен, я или кто другой скажут что не так настроено. А вообще на первичном сервере должна быть строка в конфиге
options {
        directory "/var/named";
        notify explicit;
        also-notify { АЙПИ ВТОРИЧНОГО СЕРВЕРА; };
        allow-transfer { АЙПИ ВТОРИЧНОГО СЕРВЕРА; };
  
};

А на вторичном
zone "example.com" { type slave; file "/var/named/slaves/example.com.db"; masters { АЙПИ первичного сервера; }; };
Ответ написан
@lhav
Оно вам надо? Держать собственные DNS, обеспечивать их стабильность работы и корректность конфигурации?

Купите себе за 0.90 евро год DNS хостинга у fastvps.ru, и не парьтесь =)
Ответ написан
@skl1f
зачем покупать есть dns от Яндекса
причём почтой необязательно там пользоватся можно указать свои mx
Ответ написан
eternals
@eternals
Навскидку:
1. Для обоих серверов у вас одинаковый конфиг быть должен.
2. «ns1 IN A 1.1.1.1» и для ns2 на обоих «ns2 IN A 2.2.2.2»
3. Сутки мало вообще-то.
4. Проверять нужно не на localhost, а nslookup example.com 174.129.16.254
5. Учитывая, что «nslookup localhost 174.129.16.254» даёт «DNS request timed out.», я бы предположил, что у вас порт DNS закрыт (это, кстати, ваш IP?).
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы