Видео ролики бесплатно онлайн

Смотреть красивый видео

Официальный сайт circ-a 24/7/365

Смотреть видео бесплатно

wat_che 04.11.2010 13:37

Tips & tricksУстановка кеширующего DNS сервер для локальной сети BIND 9 на Mandriva Linux

Предисловие

Долго я искал себе для локального шлюза кеширующий dns сервер. Перепробовал и dnsmasq и pdnsd и nscd и powerdns. Всё не то. Так не хотел, наслышав о тяжелости, дырявости и неповоротливости bind c ним связываться. НО вроде дыры в нём находят не от того что он сильно дырявый, а потому что популярный, культовый и в нём хорошо ищут. И на этот подвиг меня мотивировала вот этот пост и комментарий atommixz за что ребятам большое спасибо. Производил манипуляции в том разумении в котором я это понимаю, так что не взыщите.


Итак начнём.

1. Установка в Mandriva, впрочем как и во всех linux проста: urpmi bind.
(Дабы избежать сарказмы высказанного в комментариях в Ubuntu это будет sudo apt-get install bind9).

После установки получаем такое сообщение

Дополнительная информация о пакете bind-9.7.0-5mdv2010.1.i586

The most significant changes starting from the bind-9.3.2-5mdk package:

o Installs in a chroot environment per default (/var/lib/named) for

security measures.

o Acts as a caching only resolver per default, ip addresses that should be

allowed to use recursive lookups must be defined in the

/var/lib/named/etc/trusted_networks_acl.conf file.

Сие означает, что все файлы конфигурации и результаты работы (логи, пид файл и.т.д.) находятся в chroot окружении в папке /var/lib/named. Значит конфигурить bind мы будем именно там.


2. Итак, сначала отредактируем самый главный файл - файл конфигурации.

Возьмите свой любимый текстовый редактор и откройте файл с именем /var/lib/named/etc/named.conf.

Увидем примерно следующее (жирным выделено, то что нужно изменить):


# cat named.conf

// (oe) Loosely based on the document below and from production server configurations.

// http://www.cymru.com/Documents/secure-bind-template.html

//

// $Id: named.conf 418249 2009-08-19 18:33:42Z oden $

// $HeadURL: svn+ssh://svn.mandriva.com/svn/packages/cooker/bind/current/SOURCES/named.conf $

// secret must be the same as in /etc/rndc.conf

include "/etc/rndc.key";

controls {

inet 127.0.0.1 port 953

allow { 127.0.0.1; } keys { mykey; };

};

// Access lists (ACL's) should be defined here

// NOTE: the static bogon_acl.conf file has been deactivated per default but

// kept to serve as an example only. You should instead look at:

// http://www.team-cymru.org/Services/Bogons/

// include "/etc/bogon_acl.conf";

include "/etc/trusted_networks_acl.conf";

// Define logging channels

include "/etc/logging.conf";


// Enable statistics at http://127.0.0.1:5380/

statistics-channels {

inet 127.0.0.1 port 5380 allow { 127.0.0.1; };

};


options {

version "FigVam";

directory "/var/named";

dump-file "/var/tmp/named_dump.db";

pid-file "/var/run/named.pid";

statistics-file "/var/tmp/named.stats";

zone-statistics yes;

// datasize 256M;

coresize 100M;

// fetch-glue no;

// recursion no;

// recursive-clients 10000;

auth-nxdomain yes;

query-source address * port *;

listen-on port 53 { any; };

cleaning-interval 120;

transfers-in 20;

transfers-per-ns 2;

lame-ttl 0;

max-ncache-ttl 10800;

forwarders { 192.168.1.254; 8.8.8.8; 74.82.42.42; }; ### перенаправлять запросы на DNS-сервер провайдера (првайдер для нас локальная cisco, Google и ещё чей0то халявный)


// allow-update { none; };

// allow-transfer { any; };


// Prevent DoS attacks by generating bogus zone transfer

// requests. This will result in slower updates to the

// slave servers (e.g. they will await the poll interval

// before checking for updates).

notify no;

// notify explicit;

// also-notify { secondary_name_server };


// Generate more efficient zone transfers. This will place

// multiple DNS records in a DNS message, instead of one per

// DNS message.

transfer-format many-answers;


// Set the maximum zone transfer time to something more

// reasonable. In this case, we state that any zone transfer

// that takes longer than 60 minutes is unlikely to ever

// complete. WARNING: If you have very large zone files,

// adjust this to fit your requirements.

max-transfer-time-in 60;


// We have no dynamic interfaces, so BIND shouldn't need to

// poll for interface state {UP|DOWN}.

interface-interval 0;


// Uncoment these to enable IPv6 connections support

// IPv4 will still work

// listen-on { 127.0.0.1; 10.10.7.1 };

// listen-on-v6 { any; };


allow-query { 127.0.0.1; 10.10.7.0/27; }; ## от кого принимать запросы

allow-recursion { 127.0.0.1;10.10.7.0/27; }; ## кому отвечать на запросы


// Deny anything from the bogon networks as

// detailed in the "bogon" ACL.

// blackhole { bogon; };

};


// workaround stupid stuff... (OE: Wed 17 Sep 2003)

zone "ac" { type delegation-only; };

zone "cc" { type delegation-only; };

zone "com" { type delegation-only; };

zone "cx" { type delegation-only; };

zone "lv" { type delegation-only; };

zone "museum" { type delegation-only; };

zone "net" { type delegation-only; };

zone "nu" { type delegation-only; };

zone "ph" { type delegation-only; };

zone "sh" { type delegation-only; };

zone "tm" { type delegation-only; };

zone "ws" { type delegation-only; };


zone "." IN {

type hint;

file "named.ca";

};


zone "localdomain" IN {

type master;

file "master/localdomain.zone";

allow-update { none; };

};


zone "localhost" IN {

type master;

file "master/localhost.zone";

allow-update { none; };

};


zone "0.0.127.in-addr.arpa" IN {

type master;

file "reverse/named.local";

allow-update { none; };

};


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.ip6.arpa" IN {

type master;

file "reverse/named.ip6.local";

allow-update { none; };

};


zone "255.in-addr.arpa" IN {

type master;

file "reverse/named.broadcast";

allow-update { none; };

};


zone "0.in-addr.arpa" IN {

type master;

file "reverse/named.zero";

allow-update { none; };

};



3. Затем открываем файл /var/lib/named/etc/trusted_networks_acl.conf и конфигурим наши доверенные зоны. И получаем примерно следующее.


# cat /var/lib/named/etc/trusted_networks_acl.conf

// NOTE: You have to maintain this list yourself. In Mandriva Linux we allow

// the 192.168.0.0/16 network to do recursive lookups per default. If you

// don't like this you need to change this now.

//

// You may need to add specific ip addresses here as well.

//

// $Id: trusted_networks_acl.conf 80849 2007-09-06 11:56:48Z oden $

// $HeadURL: svn+ssh://svn.mandriva.com/svn/packages/cooker/bind/current/SOURCES/trusted_networks_acl.conf $

acl "trusted_networks" {

// If you are using RFC1918 netblocks please remember to

// comment these in the bogon_acl.conf file.

127.0.0.1;

10.10.7.0/27; ## тут наша локалка

// 192.168.0.0/16;

};


4. Далее необходимо указать нашему шлюзу, что первый днс сервер который он будет использовать это он сам (127.0.0.1). Замена первой строки в файле /etc/resolv.conf на nameserver 127.0.0.1 в Mandriva ничего не даёт, т. к. после рестарта сети он затирается настройками из файла /etc/sysconfig/network-scripts/ifcfg-eth0 поэтому пойдём другим путём. Открываем файл /etc/sysconfig/network-scripts/ifcfg-eth0 и в строку DNS1 пишем 127.0.0.1.

Получается примерно так:

# cat /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0

BOOTPROTO=static

IPADDR=192.168.1.7

NETMASK=255.255.255.0

GATEWAY=192.168.1.254

ONBOOT=yes

METRIC=10

MII_NOT_SUPPORTED=no

USERCTL=yes

DNS1=127.0.0.1

DNS2=192.168.1.254

RESOLV_MODS=no

IPV6INIT=no

IPV6TO4INIT=no

ACCOUNTING=no


5. Следующий этап дать знать нашим клиентам для которых наш сервер является шлюзом, чтоб они использовали в качестве dns сервера его. Т. е. dhcpd должен отправлять клиентам адресс dns 10.10.7.1. Открываем файл предварительно настроенного dhcpd сервера и пишем наш шлюз первым dns скрвером. Получаем примерно следующее.

cat /etc/dhcpd.conf


#ddns-update-style none;

subnet 10.10.7.0 netmask 255.255.255.224 {

# default gateway

option routers 10.10.7.1;

option subnet-mask 255.255.255.224;


# option domain-name "domain.org";

######razdaem adress ntp server ua.pool.ntp.org

option ntp-servers 82.207.71.5;


# Seting up an ip address is better here

option domain-name-servers 10.10.7.1; ####

# option nis-domain "domain.org";


range dynamic-bootp 10.10.7.2 10.10.7.25;

default-lease-time 21600;

max-lease-time 43200;

}


# we want the nameserver to appear at a fixed address

host mustang {

hardware ethernet 00:1B:FC:84:D3:AF;

fixed-address 10.10.7.12;

}

и.т.д.


6. Далее перезапускаем, для надёжности, и сеть и dhcpd и bind.

#/etc/init.d/network restart

#/etc/init.d/dhcpd restart

#/etc/init.d/named restart

и затем пробуем результаты труда:

Первый запрос

# dig zoom.skynet.net.ua

; DiG 9.7.0-P2 zoom.skynet.net.ua

;; global options: +cmd

;; Got answer:

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 46366

;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 8, ADDITIONAL: 0


;; QUESTION SECTION:

;zoom.skynet.net.ua. IN A


;; ANSWER SECTION:

zoom.skynet.net.ua. 3600 IN A 193.160.224.18


;; AUTHORITY SECTION:

ua. 172799 IN NS ns-ua.ripe.net.

ua. 172799 IN NS cd1.ns.ua.

ua. 172799 IN NS he1.ns.ua.

ua. 172799 IN NS ya1.ns.ua.

ua. 172799 IN NS pch.ns.ua.

ua. 172799 IN NS sns-pb.isc.org.

ua. 172799 IN NS sunic.sunet.se.

ua. 172799 IN NS ho1.ns.ua.


;; Query time: 2489 msec

;; SERVER: 127.0.0.1#53(127.0.0.1)


;; WHEN: Thu Nov 4 11:52:07 2010

;; MSG SIZE rcvd: 229


Второй запрос

# dig zoom.skynet.net.ua

; DiG 9.7.0-P2 zoom.skynet.net.ua

;; global options: +cmd

;; Got answer:

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 63862

;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 8, ADDITIONAL: 0


;; QUESTION SECTION:

;zoom.skynet.net.ua. IN A


;; ANSWER SECTION:

zoom.skynet.net.ua. 3599 IN A 193.160.224.18


;; AUTHORITY SECTION:

ua. 172798 IN NS cd1.ns.ua.

ua. 172798 IN NS ns-ua.ripe.net.

ua. 172798 IN NS pch.ns.ua.

ua. 172798 IN NS sns-pb.isc.org.

ua. 172798 IN NS ho1.ns.ua.

ua. 172798 IN NS sunic.sunet.se.

ua. 172798 IN NS ya1.ns.ua.

ua. 172798 IN NS he1.ns.ua.


;; Query time: 2 msec

;; SERVER: 127.0.0.1#53(127.0.0.1)


;; WHEN: Thu Nov 4 11:52:08 2010

;; MSG SIZE rcvd: 229

Вроде ничего не забыл. Кто может, хочет и знает буду рад любому добавлению или исправлению.


Тэги: bind dns кеширующий dns
+ 2 -
Похожие Поделиться

or10n 04.11.2010 13:40 #
+ 0 -
посвятите меня пожалуйста в необходимости ДНС-а в домашней локальной сети.
P.S. это не сарказм, мне просто интересно, и я не представляю зачем он тут нужен.
wat_che 04.11.2010 13:52 #
+ 0 -
кодовое слово кэширующий
Zend 04.11.2010 14:04 #
+ 1 -
Доменные имена будут быстее резолвиться в IP адреса за счет кэширования, а значит страници интернета будут открываться быстрее. Автор и приводит вывод утилиты DIG:

;; Query time: 2489 msec

;; SERVER: 127.0.0.1#53(127.0.0.1)


;; Query time: 2 msec

;; SERVER: 127.0.0.1#53(127.0.0.1)


Как видите во втором случае запрос занял всего 2 милисекунды.
or10n 04.11.2010 18:24 #
+ 0 -
спасибо за разъяснения, но не убедили.
для меня 2 сек - это мелочь.
особенно с учетом того что я открываю все новые страницы в фоновой вкладке
wat_che 04.11.2010 18:37 #
+ 0 -
а если рабочих станций от 10-и и больше и все ходят в инет через один шлюз ?
or10n 04.11.2010 20:36 #
+ 0 -
ну а теперь убедили, благодарю.
Volant 05.11.2010 10:04 #
+ 0 -
Дома 10 станций? Вы сдаете квартиру в аренду гастарбайтерам? ;-)
wat_che 05.11.2010 12:36 #
+ 0 -
А я что, где-то упоминал что это у меня дома?
DobrijZmej 05.11.2010 18:21 #
+ 0 -
в начале ветки комментов спрашивалось о домашней станции.
K900 04.11.2010 13:51 #
+ 1 -
Конфиги в тег < code>, лучше под спойлер.
как и во всех linux

urpmi

Я что-то пропустил?
wat_che 04.11.2010 13:53 #
+ 0 -
как и во всех linux проста
K900 04.11.2010 14:04 #
+ 0 -
Не надо бросаться обобщениями, xPUD - тоже Linux, но там никакого bind нет и не было никогда
K900 04.11.2010 14:06 #
+ 0 -
Да, можно команды в < code>?
Zend 04.11.2010 14:08 #
+ 1 -
Это пишите в личку пожалуйста.
Zend 04.11.2010 14:19 #
+ 0 -
Скажите, а после перезапуска сервера BIND 9 кэш сбрасывается, как напимер в dnsmasq?
wat_che 04.11.2010 14:23 #
+ 0 -
нажаль да -сбрасывается.
K900 04.11.2010 14:42 #
+ 0 -
Отвечайте, пожалуйста, кнопкой "Ответить"
time2die 04.11.2010 16:26 #
+ 2 -
интереса ради, а не холивара для
1) 2 msec это самоё лучшее время при условии что клиент и сервер на одной машине ?
2) сколько есть памяти ? pdnsd съел 210 килобайт на 1053 записи
Zend 04.11.2010 16:36 #
+ 0 -
1) 2 msec это самоё лучшее время при условии что клиент и сервер на одной машине ?

Нет. Может быть и 0 msec даже если сервер стоит на отдельной машине. Был бы я на работе показал бы вывод dig welinux.ru, например, и там был бы 0 msec
wat_che 04.11.2010 16:48 #
+ 0 -
1) 1,5-2 msec где-то так. на машинах локальной сети потестить не могу. Я дома сетка на работе доступ только к серверу через dyndns+vpn+ssh.
2)Памяти ест много. На сколько записей не скажу, но после загрузки занимает метров 5- тяжёлый....как из пушки по воробьям :)
3) Всё это затевалось ради любопытства и опыта. Да и сервак (шлюз) ничем не загружен.
time2die 04.11.2010 16:59 #
+ 0 -
>как из пушки по воробьям :)<
вот-вот, а у меня после известного рассказа о одном байте на всю жизнь появилась бережливость к ресурсам =)

P.S.
лично я считаю, что bind хорош...для энтерпрайза, мне дома и pdnsd хватит с лихвой( опять, же , не холивара ради)
wat_che 04.11.2010 17:01 #
+ 0 -
мне дома и pdnsd хватит с лихвой
полностью согласен.
после известного рассказа о одном байте
? просветите, если можно ссылкой
dr_magnus 04.11.2010 19:12 #
+ 0 -
? просветите, если можно ссылкой

присоединяюсь
K900 04.11.2010 19:52 #
+ 1 -
thebeetlebum 04.11.2010 21:11 #
+ 0 -
thebeetlebum 04.11.2010 21:12 #
+ 1 -
http://habrahabr.ru/blogs/i_am_clever/27055/
atommixz 07.11.2010 15:26 #
+ 1 -
а вы сначала заставьте это корректно работать в режиме кеширующего рекурсора, а потом выложите свой конфиг, тогда нам будет о чем толковать.
atommixz 07.11.2010 14:48 #
+ 1 -
если вы делаете кеширующий рекурсор, (а так оно и есть), то глупо писать
forwarders { 192.168.1.254; 8.8.8.8; 74.82.42.42; };
в нем должны быть прописаны адреса вашего провайдера, сначала он спрашивает адрес у них, потом у корневых dns-серверов. вот тут:
zone "." IN {
type hint;
file "named.ca";
};
а писать в форвардерс левак вроде днс гугла и прочих левых днс, как то глупо. это тормозит запросы, что мы и видим. Другими словами, смените в форвардерс адреса, на адреса вашего провайдера.

Смотреть онлайн бесплатно

Онлайн видео бесплатно


Смотреть русское с разговорами видео

Online video HD

Видео скачать на телефон

Русские фильмы бесплатно

Full HD video online

Смотреть видео онлайн

Смотреть HD видео бесплатно

School смотреть онлайн