За да работи правилно един DNS сървър трябва да се пренасочи порт 53 от рутера към хоста(сървъра), като протокола да е UDP. Следващото нещо е да се инсталира и самата услуга.
# apt-get install bind9 bind9utils dnsutils
Конфигурационните файлове на BIND се намират в /etc/bind. След като сме инсталирали услугата ще трябва да я конфигурираме. И ще започнем с конфигурационните файлове които дойдоха с инсталацията. Първия е /etc/bind/named.conf.options
# vi /etc/bind/named.conf.options options { directory "/var/cache/bind"; # dnssec-validation auto; auth-nxdomain no; # conform to RFC1035 # listen-on-v6 { any; }; };
Следва да редактираме и основния конфигурационен файл.
# vi /etc/bind/named.conf ### Търсим реда: include "/etc/bind/named.conf.default-zones"; ### И под него добавяме следното: include "/etc/bind/my-files/named.conf.my-zones";
Така дефинирахме, че в директория /etc/bind/my-files/ ще се помещава конфигурационен файл named.conf.my-zones. Първо създаваме директорията за конфигурационните файлове.
# mkdir /etc/bind/my-files
Време е за зоновия файл.
# vi /etc/bind/my-files/named.conf.my-zones zone "tachko.com" { type master; file "/etc/bind/my-files/tachko.com.db"; }; zone "tlan.net" { type master; file "/etc/bind/my-files/tlan.net.db"; }; zone "10.in-addr.arpa" { type master; file "/etc/bind/my-files/10.db"; }; zone "78.160.109.in-addr.arpa" { type master; file "/etc/bind/my-files/78.160.109.db"; };
От файла се вижда, че трябва да се създадат 4 зонови файла tachko.com.db, tlan.net.db, 10.db и 78.160.109.db . Има опция да се опише всичко в един файл но ще го оставим за накрая като вариант. Сега малко теория. Зоните се състоят от:
Start of Authority (SOA) записи във вид
<domain.name.> IN SOA <hostname.domain.name.>
Вместо domain.name може просто да се сложи @
На практика знака @ получава значение от зоновия файл. Примерно в зоновия файл имаше zone "tachko.com" и така @ ще получи значение tachko.com Следващата част от зоната се нарича:
Nameserver (NS) записи
<domain.name.> IN NS <hostname.domain.name.>
Пример:
owner-name | ttl | class | rr | pref | name |
---|---|---|---|---|---|
example.com. | 3w | IN | MX | 10 | mail.example.com. |
Прекъсваме теорията за малко практика. Като за начало мъгляво може да се струва но по-надолу ще стане ясно. Продължаваме с нашите конфигурационни файлове.
# vi /etc/bind/my-files/tachko.com.db $TTL 3600 tachko.com. IN SOA home.tachko.com. root.tachko.com. ( 2016042401 ; Serial 10800 ; Refresh 3600 ; Retry 604800 ; Expire 86400 ) ; Minimum ; Define Name Server IN NS home.tachko.com. IN NS post.tachko.com. IN NS 1234567890.sn.mynetname.net. ; Define Mail Exchanger IN MX 10 post.tachko.com. IN MX 20 home.tachko.com. ; Define name server's IP address IN A 109.160.78.116 ; Define IP address of a hostname post IN A 109.160.78.116 home IN A 109.160.78.103 ceno IN A 82.137.80.140 ; Aliases www IN CNAME post mail IN CNAME post cloud IN CNAME post test IN CNAME 1234567890.sn.mynetname.net. ; Дефиниране на под-домейн example.tachko.com $ORIGIN example.tachko.com. @ IN NS ns1.example.tachko.com. ns1 IN A 109.160.78.103
По същия начин създаваме и файл за зоната tlan.net
# vi /etc/bind/my-files/tlan.net.db $TTL 3600 tlan.net. IN SOA home.tlan.net. root.tlan.net. ( 2016042401 ; Serial 10800 ; Refresh 3600 ; Retry 604800 ; Expire 86400 ) ; Minimum ; Define Name Server IN NS home.tlan.net. IN NS post.tlan.net. IN NS 1234567890.sn.mynetname.net. ; Define Mail Exchanger IN MX 10 post.tlan.net. IN MX 20 home.tlan.net. ; Define name server's IP address IN A 109.160.78.116 ; Define IP address of a hostname post IN A 109.160.78.116 home IN A 109.160.78.103 ceno IN A 82.137.80.140 ; Aliases www IN CNAME post mail IN CNAME post cloud IN CNAME post test IN CNAME 1234567890.sn.mynetname.net. ; Дефиниране на под-домейн example.tlan.net $ORIGIN example.tlan.net. @ IN NS ns1.example.tlan.net. ns1 IN A 109.160.78.103
ВНИМАНИЕ, ако в зоновия файл съществува ред от рода: "test.tlan.net IN A 10.0.0.1", то този запис ще се предаде нагоре по веригата и за целия свят test.tlan.net ще притежава IP:10.0.0.1. Това не е публично IP и такива записи не трябва да има. Всичко това се оправя с рестрикции но за сега няма да задълбаваме.
Сега да дефинираме и реверсните зони:
# vi /etc/bind/my-files/10.db $TTL 3600 @ IN SOA home.tachko.com. root.tachko.com. ( 2016042401 ; Serial 10800 ; Refresh 3600 ; Retry 604800 ; Expire 86400 ) ; Minimum ; Define Name Server - tachko.com @ IN NS tachko.com. 5.0.25 IN PTR tachko.com. ; Define Name Server - tlan.net @ IN NS tlan.net. 5.0.25 IN PTR tlan.net.
Както забелязвате на виртуалната машина с IP от локалната мрежа 10.25.0.5 имаме дефинирани два домейна - tachko.com и tlan.net Сега да дефинираме реверсните зони на двата домейна за реалното IP
# vi /etc/bind/my-files/78.160.109.db $TTL 3600 @ IN SOA home.tachko.com. root.tachko.com. ( 2016042401 ; Serial 10800 ; Refresh 3600 ; Retry 604800 ; Expire 86400 ) ; Minimum ; Define Name Server - tachko.com @ IN NS tachko.com. 116 IN PTR tachko.com. ; Define Name Server - tlan.net @ IN NS tlan.net. 116 IN PTR tlan.net.
За да проверим как работи DNS сървъра ще трябва да накараме да се ресолва от само себе си
# vi /etc/resolv.conf domain tlan.net search tlan.net nameserver 127.0.0.1
Рестартираме услугата
# /etc/init.d/bind9 restart [ ok ] Restarting bind9 (via systemctl): bind9.service.
И сега тестове за правилната работа на DNS-a
# nslookup > server 10.25.0.5 Default server: 10.25.0.5 Address: 10.25.0.5#53 > set q=soa > tachko.com Server: 10.25.0.5 Address: 10.25.0.5#53 tachko.com origin = home.tachko.com mail addr = root.tachko.com serial = 2008013002 refresh = 10800 retry = 3600 expire = 604800 minimum = 86400 > tlan.net Server: 10.25.0.5 Address: 10.25.0.5#53 tlan.net origin = home.tlan.net mail addr = root.tlan.net serial = 2008013002 refresh = 10800 retry = 3600 expire = 604800 minimum = 86400 > exit
До тук добре, сега да тестваме по друг начин
# dig tachko.com
Да проверим и MX записисте
# dig tachko.com mx
Проверка и на реверсните зони
# dig -x 10.25.0.5
И другата реверсна
# dig -x 109.160.78.103
Може и по сложна комбинация да се ползва
# dig tachko.com +short 109.160.78.116
По същия начин и за MX записите
# dig tachko.com mx +short 20 home.tachko.com. 10 home.tachko.com.
и в този дух може да се направят най-различни тестове за работоспособността на DNS-a За сега толкова, с уговорката, че информацията която е дадена е само базисна. За да се научите ще трябва да прочетете малко повече или да се поровите в GOOGLE