artem
30.10.2013
9244

Настройка кэширующего DNS-сервера для решения проблемы зависания chan_sip.so.

Настройка DNS-сервера BIND

1. Устанавливаем BIND, копируем шаблоны настроек и файлы стандартных зон

yum install bind bind-chroot
cp /etc/localtime /var/named/chroot/etc

cp /usr/share/doc/bind-*/sample/etc/named.root.hints /var/named/chroot/etc
cp /usr/share/doc/bind-*/sample/etc/named.rfc1912.zones /var/named/chroot/etc
cp /usr/share/doc/bind-*/sample/etc/named.conf /var/named/chroot/etc

cp /usr/share/bind-*/sample/var/named/localdomain.zone /var/named/chroot/var/named
cp /usr/share/bind-*/sample/var/named/localhost.zone /var/named/chroot/var/named
cp /usr/share/bind-*/sample/var/named/named.broadcast /var/named/chroot/var/named
cp /usr/share/bind-*/sample/var/named/named.ip6.local /var/named/chroot/var/named
cp /usr/share/bind-*/sample/var/named/named.local /var/named/chroot/var/named
cp /usr/share/bind-*/sample/var/named/named.root /var/named/chroot/var/named
cp /usr/share/bind-*/sample/var/named/named.zero /var/named/chroot/var/named

2. Правим конфиг BIND /var/named/chroot/etc/named.conf

В конфиг нужно внести следующие правки:

> Добавить в раздел options строчку:

forwarders { 8.8.8.8; 8.8.4.4; };

Можно указать свои DNS-серверы. Если не указывать эту строчку, то BIND будет опрашивать корневые DNS-серверы, что медленнее

> Разрешить рекурсивные запросы для view-зоны ‘localhost_resolver’ (заменить ‘recursion no’ на ‘recursion yes’, если этого не сделать, то сам хост не сможет делать рекурсивные запросы через DNS-сервер). Рекурсивные запросы и запросы кэша для остальных зон можно отключить

> Закомментировать или удалить разделы, отвечающие за настройку внутренних зон и DDNS, т.к. их просто не будет

Листинг полученного конфига:

//
// Sample named.conf BIND DNS server ‘named’ configuration file
// for the Red Hat BIND distribution.
//
// See the BIND Administrator’s Reference Manual (ARM) for details, in:
// file:///usr/share/doc/bind-*/arm/Bv9ARM.html
// Also see the BIND Configuration GUI : /usr/bin/system-config-bind and
// its manual.
//
options
{
  // Those options should be used carefully because they disable port
  // randomization
  // query-source port 53;  
  // query-source-v6 port 53;
  
  // Put files that named is allowed to write in the data/ directory:
  directory “/var/named”; // the default
  dump-file     “data/cache_dump.db”;
  statistics-file   “data/named_stats.txt”;
  memstatistics-file   “data/named_mem_stats.txt”;
  max-cache-size    2097152;

  forwarders { 8.8.8.8; 8.8.4.4; };
};
//logging
//{
/* If you want to enable debugging, eg. using the ‘rndc trace’ command,
 * named will try to write the ‘named.run’ file in the $directory (/var/named).
 * By default, SELinux policy does not allow named to modify the /var/named directory,
 * so put the default debug log file in data/ :
 */
// channel default_debug {
// file “data/named.run”;
// severity dynamic;
// };  
//};
//
// All BIND 9 zones are in a “view”, which allow different zones to be served
// to different types of client addresses, and for options to be set for groups
// of zones.
//
// By default, if named.conf contains no “view” clauses, all zones are in the
// “default” view, which matches all clients.
//
// If named.conf contains any “view” clause, then all zones MUST be in a view;
// so it is recommended to start off using views to avoid having to restructure
// your configuration files in the future.
//
view “localhost_resolver”
{
/* This view sets up named to be a localhost resolver ( caching only nameserver ).
 * If all you want is a caching-only nameserver, then you need only define this view:
 */
  match-clients     { localhost; };
  match-destinations  { localhost; };
  recursion yes;
  // all views must contain the root hints zone:
  include “/etc/named.root.hints”;

  /* these are zones that contain definitions for all the localhost
   * names and addresses, as recommended in RFC1912 – these names should
   * ONLY be served to localhost clients:
   */
  include “/etc/named.rfc1912.zones”;
};
view “internal”
{
/* This view will contain zones you want to serve only to “internal” clients
that connect via your directly attached LAN interfaces – “localnets” .
*/
  match-clients    { localnets; };
  match-destinations  { localnets; };
  recursion no;
  
  allow-query-cache { none; };
  // Disable lookups for any cached data and root hints
  
  // all views must contain the root hints zone:
  include “/etc/named.root.hints”;

  // include “named.rfc1912.zones”;
  // you should not serve your rfc1912 names to non-localhost clients.

  // These are your “authoritative” internal zones, and would probably
  // also be included in the “localhost_resolver” view above :

  //zone “my.internal.zone” {
  //  type master;
  //  file “my.internal.zone.db”;
  //};
  //zone “my.slave.internal.zone” {
  //  type slave;
  //  file “slaves/my.slave.internal.zone.db”;
  //  masters { /* put master nameserver IPs here */ 127.0.0.1; } ;
  //  // put slave zones in the slaves/ directory so named can update them
  //};  
  //zone “my.ddns.internal.zone” {
  //  type master;
  //  allow-update { key ddns_key; };
  //  file “slaves/my.ddns.internal.zone.db”;
  //  // put dynamically updateable zones in the slaves/ directory so named can update them
  //};
};
//key ddns_key
//{
//  algorithm hmac-md5;
//  secret “use /usr/sbin/dns-keygen to generate TSIG keys”;
//};
view “external”
{
/* This view will contain zones you want to serve only to “external” clients
 * that have addresses that are not on your directly attached LAN interface subnets:
 */
  match-clients    { any; };
  match-destinations  { any; };

  recursion no;
  // you’d probably want to deny recursion to external clients, so you don’t
  // end up providing free DNS service to all takers

  allow-query-cache { none; };
  // Disable lookups for any cached data and root hints

  // all views must contain the root hints zone:
  include “/etc/named.root.hints”;

  // These are your “authoritative” external zones, and would probably
  // contain entries for just your web and mail servers:

  //zone “my.external.zone” {
  //  type master;
  //  file “my.external.zone.db”;
  //};
};

3. Запускаем BIND, включаем запуск при старте системы

service named start

Если в синтаксисе конфига допущены ошибки или каких-либо файлов не хватает, сообщение об ошибке будет выведено в консоль и записано в лог /var/log/messages

chkconfig named on

4. Работоспособность DNS-сервера можно проверить командой ‘dig’

dig yandex.ru @127.0.0.1

Если DNS-сервер работает нормально, то в файле /etc/resolv.conf нужно оставить только строчку

nameserver 127.0.0.1

 
avatar
  Подписаться  
Уведомление о

Остались вопросы?

Я - Першин Артём, менеджер компании Voxlink. Хотите уточнить детали или готовы оставить заявку? Укажите номер телефона, я перезвоню в течение 3-х секунд.

VoIP оборудование

ближайшие курсы

ближайшие Вебинары

ONLINE

Why Choose HUGE?

Unlimited pre-designed elements

Each and every design element is designed for retina ready display on all kind of devices

User friendly interface and design

Each and every design element is designed for retina ready display on all kind of devices

100% editable layered PSD files

Each and every design element is designed for retina ready display on all kind of devices

Created using shape layers

Each and every design element is designed for retina ready display on all kind of devices