Відповіді:
Перш за все, змініть 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 і т. Д., Але пам’ятайте, що змінити цей файл потрібно перезавантажити ваш сервер, а потім увійти. Перезапуск необхідний
sudo apt-get install bind9
Після установки просто налаштуйте файли нижче за кроком
Тепер налаштуйте файл 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 пристроїв
Тепер у каталозі зон створимо спочатку два файли 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.
Збережіть його та вийдіть
Тепер створіть файл із зоною зворотного пошуку
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 працює належним чином
сторона вікон
і тут дайте IP-адресу (у моєму випадку це 192.168.1.50, ви пам'ятаєте win7pc)
і ви зробили з ним відкритий 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;
../run/resolvconf/resolv.conf
.
(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
db.192
перш ніж IN NS nefitari.
це @
відсутня. Крім того, мені довелося додати FQDN, тому моя робоча лінія виглядала так, що @ IN NS nefitari.autun.hom.
я проігнорував розділ resoluv.conf і дотримувався порад від jdthood. Посилання вже було там із встановлення сервера за замовчуванням.
Відповідь - лише доповнення до чудового опису вище.
Порада щодо усунення несправностей
Будьте дуже обережні з багатьма ". у файлах конфігурації, оскільки кожен важливий. Єдиного відсутнього "." може зупинити роботу сервера 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.
Решта ж.
Сподіваюсь, комусь це корисно.