Как выполнить полную настройку DNS-сервера BIND9 с именем хоста?

53

Мне нужно полное пошаговое руководство о том, как создать такую ​​конфигурацию сервера.

Может кто-нибудь помочь мне?

Артемида
источник

Ответы:

119

Полный DNS-сервер в Ubuntu Server 12.

Прежде всего, измените IP-адрес вашего сервера с DHCP на STATIC, для этого используйте следующую команду

sudo nano /etc/network/interfaces

и добавить:

auto eth0
iface eth0 inet static
address 192.168.1.5
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
# dns-nameservers

Перезапустите сетевые демоны

sudo /etc/init.d/networking restart

Перед настройкой DNS-сервера в Linux Ubuntu вы должны сначала указать доменное имя, а затем продолжить. Сначала вы проверите вашу команду hostname для этого

sudo nano /etc/hostname

 nefitari       

(Это имя моего сервера Ubuntu, ваше имя может отличаться. Вы можете изменить его в соответствии с вашими потребностями)

Теперь после имени хоста, вы должны сделать доменное имя для вашего сервера. Скажем, servername.domain.com рекомендуется, чтобы при настройке сервера для домашнего использования не использовались .com, а .hom или .net, или что угодно. Дайте команду ниже

  sudo nano /etc/hosts

добавить, если его нет:

  127.0.0.1   localhost

  192.168.1.5     nefitari.autun.hom    nefitari

В моем файле 127.0.0.1 для localhost, и я изменил второй IP-адрес 127.0.1.1 с IP-адресом моего сервера, который является 192.168.1.5, теперь я ввожу свое доменное имя с моим именем хоста nefitari, затем мое доменное имя autun.hom и затем псевдоним нефитари . Вы можете выбрать свой собственный, hostname.abc.net или hostname.home.lan и т. Д., Но помните, что для изменения этого файла необходимо перезагрузить сервер, а затем войти в систему. Перезагрузка обязательна

Теперь установите BIND9

 sudo apt-get install bind9

После установки просто настройте файлы ниже, шаг за шагом

  • Named.conf.options
  • Named.conf.local
  • /etc/resolv.conf

Теперь настройте файл named.conf.options. Этот файл используется для IP-адресов DNS. Это означает, что ваш сервер должен подключаться к внешнему DNS-серверу. Когда вы покупаете доменное имя у интернет-провайдера, он обычно дает вам свои собственные IP-адреса DNS. Вы можете использовать открытые DNS-адреса Google или около того. В моем случае я использую свой собственный IP-адрес DNS-провайдера.

 sudo nano /etc/bind/named.conf.options
 forwarders {
 # Give here your ISP DNS IP’s
192.168.1.1;    # gateway or router   
182.176.39.23;
182.176.18.13;
68.87.76.178;
  };

*** Сохраните файл и выйдите из *** с помощью элемента управления x, нажмите y и перезапишите файл.

Теперь отредактируйте файл с именем .conf.local. Это файл, в котором мы определяем прямые зоны и обратные зоны. Это означает, что когда мы вводим доменное имя, оно переводит его в IP-адрес, а когда мы вводим IP-адрес, оно просто конвертирует его в имя.

sudo nano /etc/bind/named.conf.local

покажет:

# Our forward zone
zone "autun.hom" {
 type master;
 file "/etc/bind/zones/db.autun.hom";
 };

# Our reverse Zone 
# Server IP 192.168.1.5 
zone "1.168.192.in-addr.arpa" {
  type master;
  file "/etc/bind/zones/db.192";
 };

*** Сохраните файл и выйдите из *** с помощью элемента управления x, нажмите y и перезапишите файл.

Теперь мы сделаем эти два файла базы данных db.autun.hom и db.192 в папке зон

Сначала создайте зоны каталогов в / etc / bind /

  sudo mkdir /etc/bind/zones

Прежде чем делать файлы, позвольте мне проинформировать вас, что у меня разные устройства

IP-адреса устройств

  • Сам сервер 192.168.1.5
  • Шлюз 192.168.1.1
  • Win7pc 192.168.1.50

Теперь в каталоге зон мы создадим два файла сначала db.autun.hom . Я просто копирую db.local, уже присутствующий в папке / etc / bind, в папку зон, меняя его имя на db.autun.hom . Я помещу эти IP в мой файл db.autun.hom. Давайте начнем

sudo cp /etc/bind/db.local  /etc/bind/zones/db.autun.hom

Теперь используйте команду ниже для редактирования файла

sudo nano /etc/bind/zones/db.autun.hom

 ;
 ; BIND data file for local loopback interface
 ;
 $TTL    604800
 @       IN      SOA     nefitari.autun.hom. webuser.autun.hom. (
                          2         ; Serial
                     604800         ; Refresh
                      86400         ; Retry
                    2419200         ; Expire
                     604800 )       ; Negative Cache TTL
  ;
autun.hom.      IN  NS  nefitari.autun.hom.
autun.hom.      IN  A   192.168.1.5
   ;@               IN  A   127.0.0.1
   ;@               IN  AAAA    ::1
nefitari            IN  A   192.168.1.5
gateway         IN  A   192.168.1.1
win7pc          IN  A   192.168.1.50
www     IN  CNAME   autun.hom.

Сохраните его и выйдите

  • Webuser.autun.hom. адрес электронной почты, который будет обращаться к серверу имен. Вместо веб-пользователя вы можете написать любое имя, например, admin, root или host master и т. Д.
  • Autun.hom. мой NS означает сервер имен
  • Autun.hom. Переход на IP 192.168.1.5
  • @ IN в 127.0.0.1 и AAAA :: 1 можно комментировать, вам это не нужно, потому что db.local уже присутствует в / etc / bind, это просто копия этого файла. Так что нет необходимости, вы можете удалить его
  • Изменение Nefitari на IP 192.168.1.5
  • Шлюз к IP 192.168.1.1
  • Win7pc вы можете назвать ваши компьютеры с Windows или Linux-клиенты с любым именем, но помните, IP-адрес этого клиента должен быть правильно вставлен в файл. В моем случае я дал IP Windows PC 192.168.1.50
  • Наконец, я использую CNAME означает каноническое имя, это просто псевдоним nefitari. Означает, что вы можете получить доступ к вашему серверу, введя www.autun.hom вместо nefitari.autun.hom. Вы можете опустить это или прокомментировать. Это зависит только от вас.

Теперь создайте файл зоны обратного просмотра

sudo cp /etc/bind/db.127    /etc/bind/zones/db.192

Теперь используйте команду ниже для редактирования файла

sudo nano /etc/bind/zones/db.192

   ;
   ; BIND reverse data file for local loopback interface
   ;
   $TTL    604800
   @       IN      SOA     nefitari.autun.hom. webuser.autun.hom. (
                          2         ; Serial
                     604800         ; Refresh
                      86400         ; Retry
                    2419200         ; Expire
                     604800 )       ; Negative Cache TTL
   ;
        IN  NS  nefitari.
1   IN  PTR gateway.autun.hom.
5   IN  PTR nefitari.autun.hom.
50  IN  PTR win7pc.autun.hom.

Сохраните его и выйдите

Теперь, когда вы закончили с вашим файлом зоны, вы должны проверить его, правильно ли он работает, введя команду ниже для прямого файла зоны

named-checkzone autun.hom /etc/bind/zones/db.autun.hom
zone autun.hom /IN: loaded serial   2
Ok

Теперь проверьте файл обратной зоны

named-checkzone autun.hom /etc/bind/zones/db.192
zone autun.hom /IN: loaded serial   2
Ok 

Если вывод вашей именованной контрольной зоны такой же, как указано выше, то он работает нормально, в противном случае вы допустили ошибку в файле.

Теперь отредактируйте файл resolv.conf

sudo nano /etc/resolv.conf

nameserver      192.168.1.5
domain      autun.hom
search      autun.hom

Введите следующие строки в ваш файл resolv.conf и сохраните его

Перезапустите связь

sudo /etc/init.d/bind9 restart

После начала привязки проверьте настройки в файле журнала

tail -f /var/log/syslog

в журнале не должно быть ошибок

Проверка форвардных зон

host –l autun.hom

Вывод должен понравиться

 autun.hom name server nefitari.autun.hom.
 autun.hom has address 192.168.1.5
 gateway.autun.hom has address 192.168.1.1
 nefitari.autun.hom has address 192.168.1.5
 win7pc.autun.hom has address 192.168.1.50

Теперь используйте NSLOOKUP

nslookup autun.hom

ВЫХОД

Server: 192.168.1.5
Address: 192.168.1.5#53

Name: autun.hom
Address: 192.168.1.5

Используйте DIG

 dig gateway.autun.hom

 ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 35612
 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1

 ;; QUESTION SECTION:
 ;gateway.autun.hom         IN  A

 ;; ANSWER SECTION:
 gateway.autun.hom      604800  IN  A   192.168.1.1

 ;; AUTHORITY SECTION:
 Autun.hom.     604800  IN      NS  nefitari.autun.hom. 

 ;; ADDITIONAL SECTION:
 Nefitari.autun.hom.    604800  IN      A   192.168.1.5

 ;; Query time: 12 msec
 ;; SERVER: 192.168.1.5#53(192.168.1.5)
 ;; WHEN: Thu Aug 8 01:56:25 2013
 ;; MSG SIZE  rcvd: 90

Вывод должен соответствовать описанному выше, проверить статус: NOERROR означает, что он разрешает проверку. РАЗДЕЛ ОТВЕТА: gateway.autun.hom разрешен в 192.168.1.1

Проверка обратной зоны

 host 192.168.1.1

Выход

 1.1.168.192.in-addr.arpa domain name pointer gateway.autun.hom

Если это дает вам ошибку, как показано ниже

 host 1.1.168.192.in-addr.arpa. not found: 3(NXDOMAIN)

Это означает, что вы допустили некоторую ошибку в файле /etc/bind/named.conf.local в обратной зоне. Если ваш сервер IP 192.168.1.5, то ваша обратная зона выглядит следующим образом

zone "**1.168.192**.in-addr.arpa" {
 correct ip reversing
};

Иногда люди совершали ошибку, переворачивая IP как (только пример)

zone "**0.168.192**.in-addr.arpa" {
incorrect ip reversing
};

Используйте NSLOOKUP

nslookup 192.168.1.1

Server: 192.168.1.5
Address: 192.168.1.5#53

1.1.168.192.in-addr.arpa    name=gateway.autun.hom

Если вы получаете ошибки типа NXDOMAIN или SERVFAIL, это означает, что один из ваших файлов зоны работает неправильно

Теперь вы можете пропинговать ubuntu.com или копать ubuntu.com в первый раз, чтобы решить имя ubuntu.com, потребуется несколько миллисекунд, но когда вы запустите его во второй раз, это займет 1, 2 или 3 секунды, обычно от 1 до 10 миль. секунды нормальные и это означает, что ваш DNS работает нормально

Настройка клиентов

сторона окон

  • открытые сетевые подключения
  • выберите изменить настройки адаптера
  • выберите свойства
  • выберите версию интернет-протокола IPv4

и здесь укажите IP-адрес (в моем случае это 192.168.1.50, вы помните win7pc)

  • IP-адрес 192.168.1.50
  • Маска подсети 255.255.255.0
  • Шлюз по умолчанию 192.168.1.1
  • основной DNS 192.168.1.5 (мой новый DNS-сервер BIND ip)
  • в том же окне выберите Advance
  • выберите вкладку DNS
  • Введите текстовое поле ниже здесь В DNS-суффиксе для этого подключения: autun.hom
  • нажмите ОК
  • нажмите на подтвердить настройки при выходе
  • нажмите ОК

и вы сделали с этим открыть CMD

ping gateway

это должно дать вам несколько ответов

по аналогии

ping 192.168.1.1 or 5

это должно дать вам несколько ответов

Протестируйте свой сервер для внешнего мира

Теперь вы можете пропинговать ubuntu.com или откопать ubuntu.com в первый раз, чтобы определить имя ubuntu.com в течение нескольких миллисекунд, но когда вы запустите его во второй раз, это займет от 1 до 10 мили секунд, его обычное время и это означает, что ваш DNS работает правильно. Настройка клиентов

сторона окон

открыть сетевые подключения выбрать изменить настройки адаптера выбрать свойства выбрать версию интернет-протокола IPv4

и здесь укажите IP-адрес (в моем случае это 192.168.1.50, вы помните win7pc)

IP-адрес 192.168.1.50

Маска подсети 255.255.255.0

Шлюз по умолчанию 192.168.1.1

основной DNS 192.168.1.5 (мой новый DNS-сервер BIND ip)

выберите Advance (в том же окне)

выберите вкладку DNS

Введите текстовое поле ниже здесь В DNS-суффиксе для этого подключения: autun.hom

нажмите ОК

нажмите на подтвердить настройки при выходе

нажмите ОК

и вы сделали с этим открыть CMD

Код:

 ping gateway

это должно дать вам несколько ответов

по аналогии

Код:

 ping 192.168.1.1 or 5

он должен дать вам несколько ответов, которые вы можете использовать NSLOOKUP Code:

 nslookup gateway

LINUX КЛИЕНТЫ

Код:

 sudo nano /etc/network/interfaces

введите следующие строки

Код:

 auto eth0
 iface eth0 inet dhcp

Теперь перезапустите Сеть Deamons

Код:

 sudo /etc/init.d/networking restart

заставить клиента обновить команду IP

Код:

 sudo dhclient -r

Теперь получите свежий IP:

Код:

 sudo dhclient

Если вы используете DHCP-сервер в своей сети, введите доменное имя и сервер имен в файле dhcpd.conf; Например, у меня есть DNS-сервер с именем nefitari.autun.hom, а IP-адрес 192.168.1.5, как показано ниже

Код:

 option domain-name "nefitari.autun.hom";
 option domain-name-server  192.168.1.5;

источник

fossfreedom
источник
7
Жаль, что на этой странице 3726 уникальных просмотров, а в ответе только один ответ. Если это было полезно для вас, проголосуйте!
Фотанус
12
Этот ответ правильный, за исключением части о редактировании /etc/resolv.conf. Начиная с Ubuntu 12.04, вы не редактируете этот файл вручную, а настраивает resolvconf для этого. Установите RESOLVCONF = yes в / etc / default / bind9, чтобы BIND 9 по имени регистрировал свой локальный адрес прослушивания 127.0.0.1 с resolvconf при запуске. Убедитесь, что /etc/resolv.conf является символической ссылкой на ../run/resolvconf/resolv.conf.
Jdthood
1
Ошибки системного журнала - (network unreachable) resolving './NS/IN': 2001:500:3::42#53от bind пытаются рекурсивно разрешать запросы с использованием ipv6. Редактирование /etc/default/bind9и использование OPTIONS="-u bind -4"исправляет это. Дополнительная информация: serverfault.com/questions/77325/unreachable-resolving-domain
не исправление
Я только что установил Ubuntu Server 16.04, и он все еще работает. Обучающее руководство по DNS-серверам - это кошмар по сравнению с этим объяснением. Тем не менее, я должен был правильным одной ошибки в списках: в файле , db.192прежде чем IN NS nefitari.это @отсутствует. Также мне пришлось добавить полное доменное имя, поэтому моя рабочая строка выглядела так: @ IN NS nefitari.autun.hom.я проигнорировал раздел resolv.conf и последовал совету jdthood. Ссылка была уже там с установки сервера по умолчанию.
CatMan
1
@fotanus Я думаю, это потому, что это так долго, что люди забыли прокрутить обратно до upvote \
CodyBugstein
1

Ответ - только дополнение к большому описанию выше.

Совет по устранению неполадок

Будь очень осторожен со многими ». в конфигурационных файлах, так как каждый из них важен. Один пропущенный "." может остановить работу DNS-сервера. Вы не должны рассчитывать на четкие сообщения об ошибках.

Я узнал, как правильно использовать более понятный серийный номер. Очень важно увеличивать серийный номер каждый раз при изменении настройки, например, при добавлении новых записей. Если его не увеличить, вторичный DNS не сможет синхронизировать новые настройки. Предлагаемый формат: YYYYMMDDssгде ssнаходится «старый» серийный номер. Таким образом, при увеличении вы должны увеличить ssна +1 и установить дату на текущую дату. Я нашел это очень полезным при устранении неполадок при настройке. В системном журнале вы четко видите дату и серийный номер используемого файла.

В Ubuntu 16.04 изменение resolv.conf не рекомендуется. Как пишет jdthood в своем комментарии, замените шаг следующей процедурой: - Измените / etc / default / bind9: новая воля должна выглядеть так:

   # run resolvconf?
   RESOLVCONF=yes

   # startup options for the server
   OPTIONS="-u bind"

   # use this when you have trouble with IPV6
   #OPTIONS="-u bind -4"

см. комментарий от not-a-patch для проблем IPV6.

  • поместите символическую ссылку /etc/resolv.conf в /run/resolvconf/resolv.conf

     cd /etc
     sudo ln -s /etc/resolv.conf /run/resolvconf/resolv.conf
    

Автономная настройка

Настройка точно такая же, и даже немного проще, так как вы можете просто пропустить разделы пересылки. Они не должны присутствовать, поэтому нет необходимости редактировать /etc/bind/names.con.options.

Сети класса B

Есть несколько незначительных изменений, необходимых для того, чтобы это работало для сетей класса B (прежде чем появятся комментарии, нет причины, по которой локальная сеть, даже дома, не может быть классом B вместо сети класса C) , В этом примере я использую номер сети 172.20.xx (я думаю, что формальная запись 172.20.0.0. Для получения дополнительной информации google rfc1918).

Используйте описание из первого ответа, замените все IP-адреса 192.168.xx на 172.20.xx, используйте для сервера IP 172.20.0.100 и измените файлы следующим образом:

  • имя файла db.192становится db.172.
  • файл named.conf.localполучает другой раздел обратной зоны:

    zone "20.172.in-addr.arpe" {
    type master;
    file "/etc/bind/zones/db.172";
    }
    
  • Файл обратных зон изменяется на:

    ;
    ; BIND reverse data file for 172.20.x.x
    ;
    $TTL    604800
    @       IN      SOA     nefitari.autun.hom. webuser.autun.hom. (
                 2017022102         ; more intuitive serial YYYYMMDDss, here ss=02
                     604800         ; Refresh
                      86400         ; Retry
                    2419200         ; Expire
                     604800 )       ; Negative Cache TTL
    
    ; note: the '@'was missing from in the initial description
    @       IN  NS  nefitari.autun.hom.    
    
    100.0   IN  PTR nefitari.autun.hom. 
    121.0   IN  PTR client1.autun.hom.
    130.0   IN  PTR client2.autun.hom.
    33.0    IN  PTR client3.autun.hom.
    

В остальном то же самое.

Надеюсь, что это полезно для кого-то.

CATMAN
источник
Работает ли это, если вы хотите использовать адреса 172.16 и 172.20?
kojow7
@ kojow7. Очень хороший вопрос Я не знаю, но, чтобы узнать, вы могли бы либо просто включить вторую зону и второй обратный файл. Его легко проверить с помощью команды nslookup. Или, может быть, лучше, просто используйте маску сети, которая включает в себя оба 172.16. и 172,20. Маска сети не будет такой простой, как 255.255.0.0, но будет содержать другие числа, кроме 0 и 255, но в сети вы можете найти учебные пособия, как это выяснить, если вы еще не знаете. В случае, если вы решили это, пожалуйста, рассмотрите возможность размещения его здесь в интересах других.
CatMan