Як зробити повну конфігурацію сервера BNSD9 з іменем хоста?


53

Мені потрібно повне покрокове керівництво щодо створення такої конфігурації сервера.

Хтось може мені допомогти?

Відповіді:


119

Повний DNS-сервер на сервері ubuntu 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, потрібно спершу ввести доменне ім’я, а потім продовжити. Спочатку ви перевірите свою команду ім'я хоста на те, чи є це

sudo nano /etc/hostname

 nefitari       

(Це моє ім'я хоста сервера Ubuntu, ваше може бути іншим. Ви можете змінити це відповідно до своїх потреб)

Тепер після імені хоста ви повинні зробити доменне ім’я для свого сервера. Скажіть, ім'я сервера.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

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

  • Названі.conf.options
  • Названо.conf.local
  • /etc/resolv.conf

Тепер налаштуйте файл name.conf.options Цей файл використовується для IP-адрес DNS Це означає, що ваш сервер повинен підключитися до деякої DNS зовні. Коли ви купуєте доменне ім’я у провайдерів, вони зазвичай дають вам власні IP-адреси DNS. Ви можете використовувати відкриті DNS-адреси IP-адрес 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. це електронний лист, який отримає доступ до сервера імен. Ви можете написати будь-яке ім'я замість веб-користувача, як адміністратор, root або хост-майстер тощо.
  • 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 

Якщо вихід вашого іменного checkzone такий же, як вище, він працює нормально, інакше ви помилилися у файлі.

Тепер відредагуйте файл resoluv.conf

sudo nano /etc/resolv.conf

nameserver      192.168.1.5
domain      autun.hom
search      autun.hom

Введіть наступні рядки у свій файл resoluv.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 (мій новий BIND DNS-сервер ip)
  • у цьому ж вікні виберіть Аванс
  • виберіть вкладку 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 (мій новий BIND DNS-сервер ip)

виберіть Аванс (у цьому ж вікні)

виберіть вкладку 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

Тепер перезапустіть Network 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;

джерело


7
Прикро, що ця сторінка має 3726 унікальних переглядів, а відповідь має лише одне підсумок. Якщо вам це було корисно, підкажіть це!
fotanus

12
Ця відповідь правильна, за винятком частини про редагування /etc/resolv.conf. Оскільки Ubuntu 12.04 ви не редагуєте цей файл вручну, але налаштовуєте на нього Resolvconf. Встановіть RESOLVCONF = так в / etc / default / bind9, щоб викликати BIND 9 імені, щоб зареєструвати свою локальну адресу прослуховування 127.0.0.1 з Resolvconf при її запуску. Переконайтеся, що /etc/resolv.conf є символічним посиланням на ../run/resolvconf/resolv.conf.
jdthood

1
Помилки syslog - (network unreachable) resolving './NS/IN': 2001:500:3::42#53це від прив'язки, що намагається вирішити запити рекурсивно за допомогою ipv6. Редагування /etc/default/bind9та використання OPTIONS="-u bind -4"виправлень. Більше інформації: serverfault.com/questions/77325/unreachable-resolving-domain
не патч

Щойно я отримав налаштування з сервером Ubuntu 16.04 і він все ще працює. Підручник з Serverguide для DNS - кошмар порівняно з цим поясненням. Тим НЕ менше, я повинен був виправити одну помилку в списках: в файлі , db.192перш ніж IN NS nefitari.це @відсутня. Крім того, мені довелося додати FQDN, тому моя робоча лінія виглядала так, що @ IN NS nefitari.autun.hom.я проігнорував розділ resoluv.conf і дотримувався порад від jdthood. Посилання вже було там із встановлення сервера за замовчуванням.
CatMan

1
@fotanus Я думаю, що це так довго, що люди забули прокрутити назад до оновлення \
CodyBugstein

1

Відповідь - лише доповнення до чудового опису вище.

Порада щодо усунення несправностей

Будьте дуже обережні з багатьма ". у файлах конфігурації, оскільки кожен важливий. Єдиного відсутнього "." може зупинити роботу сервера DNS. Не слід розраховувати на чіткі повідомлення про помилки.

Я навчився її належній практиці використовувати серійний номер, що говорить більше. Дуже важливо збільшувати серійний номер щоразу, коли налаштування змінюється, наприклад, додаються нові записи. Якщо його не збільшується, вторинна DNS не зможе синхронізувати нові настройки. Запропонований формат - YYYYMMDDssде ss"старий" серійний номер. Тому при збільшенні слід збільшувати значення ss+1 і встановити дату на поточну дату. Я вважаю це дуже корисним у вирішенні проблем із налаштуванням. У syslog ви чітко бачите дату та серію використаного файлу.

В Ubuntu 16.04 зміна резолюції.conf застаріла. Як пише jdthood у своєму коментарі, замініть крок наступною процедурою: - Change / 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"

дивіться коментар від не патчу до питань 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.
    

Решта ж.

Сподіваюсь, комусь це корисно.


Чи працює це, якщо ви хочете використовувати як адреси 172.16, так і 172.20?
kojow7

@ kojow7. Дуже гарне запитання. Я не знаю, але для того, щоб дізнатися, ви могли або перевірити лише включення другої зони та другого зворотного файлу. Його легко перевірити за допомогою команди nslookup. Або, можливо, було краще, просто скористайтеся мережевою маскою, яка включає в себе обидва 172.16. та 172.20. Маска мережі не буде такою простою, як 255.255.0.0, але містить інші цифри поряд із 0 і 255, але в мережі ви можете знайти підручники, як це зрозуміти, якщо ви цього ще не знаєте. У випадку, якщо ви вирішили це, будь ласка, розмістіть його тут на благо інших.
CatMan
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.