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

Смотреть 365 видео

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

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

04.11.10 13:37 wat_che

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

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

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

[root@localhost log]# 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


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

[root@localhost log]# 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

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



or10n 04.11.10 13:40 # +0
посвятите меня пожалуйста в необходимости ДНС-а в домашней локальной сети.
P.S. это не сарказм, мне просто интересно, и я не представляю зачем он тут нужен.
wat_che 04.11.10 13:52 # +0
кодовое слово кэширующий
Zend 04.11.10 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.10 18:24 # +0
спасибо за разъяснения, но не убедили.
для меня 2 сек - это мелочь.
особенно с учетом того что я открываю все новые страницы в фоновой вкладке
wat_che 04.11.10 18:37 # +0
а если рабочих станций от 10-и и больше и все ходят в инет через один шлюз ?
or10n 04.11.10 20:36 # +0
ну а теперь убедили, благодарю.
Volant 05.11.10 10:04 # +0
Дома 10 станций? Вы сдаете квартиру в аренду гастарбайтерам? ;-)
wat_che 05.11.10 12:36 # +0
А я что, где-то упоминал что это у меня дома?
DobrijZmej 05.11.10 18:21 # +0
в начале ветки комментов спрашивалось о домашней станции.
K-9 04.11.10 13:51 # +1
Конфиги в тег < code>, лучше под спойлер.
как и во всех linux

urpmi

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

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

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

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

Лучшие блоги (все 146)
Топ пользователей Топ блогов
Топ пользователей Топ блогов
Элита (все 2930 из 219 городов)
Топ пользователей Топ блогов
welinux.ru

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

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


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

Online video HD

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

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

Full HD video online

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

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

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