(4klasyc - forwarders, viz níže)
Zbyla mi chvilka takže rychlý test, funkční kostra, DNS server zprovozním na počítači s IP 192.168.9.54:
Nainstalovat
mkiklhorn@jaunty1:~$ sudo apt-get install bind9
Upravit pár konfiguráků, dávám okomentované výpisy, anglické jsou původní po instalaci bindu, české jsem doplnil.
[edit]Pokud tam někde uvidíte restart služby pomocí service tak je to platné pro Jaunty a myslím že i pro Intrepid.
v Hardym bez doinstalování raději takto: /etc/init.d/bind9 restart [/edit]
mkiklhorn@jaunty1:~$ cat /etc/bind/named.conf
// This is the primary configuration file for the BIND DNS server named.
//
// Please read /usr/share/doc/bind9/README.Debian.gz for information on the
// structure of BIND configuration files in Debian, *BEFORE* you customize
// this configuration file.
//
// If you are just adding zones, please do that in /etc/bind/named.conf.local
include "/etc/bind/named.conf.options";
// prime the server with knowledge of the root servers
zone "." {
type hint;
file "/etc/bind/db.root";
};
// be authoritative for the localhost forward and reverse zones, and for
// broadcast zones as per RFC 1912
zone "localhost" {
type master;
file "/etc/bind/db.local";
};
zone "127.in-addr.arpa" {
type master;
file "/etc/bind/db.127";
};
// ale jo, klidne bez nul - ty ale pak musim mit v db.127 aby to hodilo pozpatku celou adresu
// tedy pro tento pripad musim mit pro localhost zaznam 1.0.0.
// pokud bych tady uvadel 0.0.127 tak v db.127 musim mit localhost nazavany jen 1.
// a splitnout se to da na jakemkoliv miste, jen to vzdy DOHROMADY musi dat spravne celo reverzni adresu
zone "0.in-addr.arpa" {
type master;
file "/etc/bind/db.0";
};
zone "255.in-addr.arpa" {
type master;
file "/etc/bind/db.255";
};
include "/etc/bind/named.conf.local";
//na predchozi nepotrebuji sahat, dopisu si svoji zonu
zone "xtornado.xcx" {
type master;
file "/etc/bind/db.xtornado.xcx";
};
// a take reverzni pro rozsah me site
zone "168.192.in-addr.arpa" {
type master;
file "/etc/bind/db.168.192";
};
mkiklhorn@jaunty1:~$ cat /etc/bind//db.127
;
; BIND reverse data file for local loopback interface
;
$TTL 604800
@ IN SOA localhost. root.localhost. (
1 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS localhost.
1.0.0 IN PTR localhost.
mkiklhorn@jaunty1:~$ cat /etc/bind/named.conf.options
options {
directory "/var/cache/bind";
// If there is a firewall between you and nameservers you want
// to talk to, you may need to fix the firewall to allow multiple
// ports to talk. See http://www.kb.cert.org/vuls/id/800113
// If your ISP provided one or more IP addresses for stable
// nameservers, you probably want to use them as forwarders.
// Uncomment the following block, and insert the addresses replacing
// the all-0's placeholder.
forwarders {
192.168.9.130;
192.168.9.101;
};
auth-nxdomain no; # conform to RFC1035
listen-on-v6 { any; };
};
// doplnil jsem forwarders, tedy moje stavajici DNS servery v siti. Co nezna sam na to se zepta tam.
mkiklhorn@jaunty1:~$ cat /etc/bind/db.xtornado.xcx
xtornado.xcx. IN SOA ns1.xtornado.xcx. admin.xtornado.xcx. (
2009011501
28800
3600
604800
38400
)
xtornado.xcx. IN NS ns1.xtornado.xcx.
xtornado.xcx. IN MX 10 posta.xtornado.xcx.
www IN A 192.168.9.130
posta IN A 192.168.9.130
// tady davam vlastni IP tohoto pocitace ktery dela ns
ns1 IN A 192.168.9.54
nastavíme i reverzi
mkiklhorn@jaunty1:~$ cat /etc/bind/db.168.192
@ IN SOA ns1.xtornado.xcx. admin.xtornado.xcx. (
2006081401;
28800;
604800;
604800;
86400
)
IN NS ns1.xtornado.xcx.
54.9 IN PTR xtornado.xcx
; tady mam 54.1 protoze po doplneni se zaznamem v named.conf mi to da
; jmeno 54.9.168.192.in-addr.arpa coz je kompletni reverzni zaznam pro tento nameserver
sudo service bind9 restart
to je vše, (jen funkční kostra, chybí tam TTL údaje apod) teď už jen testy:
mkiklhorn@jaunty1:~$ dig localhost
; <<>> DiG 9.5.0-P2 <<>> localhost
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 53420
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1
;; QUESTION SECTION:
;localhost. IN A
;; ANSWER SECTION:
localhost. 604800 IN A 127.0.0.1
;; AUTHORITY SECTION:
localhost. 604800 IN NS localhost.
;; ADDITIONAL SECTION:
localhost. 604800 IN AAAA ::1
;; Query time: 1 msec
;; SERVER: 192.168.9.54#53(192.168.9.54)
;; WHEN: Thu Jan 15 02:01:53 2009
;; MSG SIZE rcvd: 85
mkiklhorn@jaunty1:~$ dig xtornado.xcx
; <<>> DiG 9.5.0-P2 <<>> xtornado.xcx
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 1796
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0
;; QUESTION SECTION:
;xtornado.xcx. IN A
;; AUTHORITY SECTION:
xtornado.xcx. 38400 IN SOA ns1.xtornado.xcx. admin.xtornado.xcx. 2009011501 28800 3600 604800 38400
;; Query time: 0 msec
;; SERVER: 192.168.9.54#53(192.168.9.54)
;; WHEN: Thu Jan 15 02:02:44 2009
;; MSG SIZE rcvd: 76
mkiklhorn@jaunty1:~$ dig posta.xtornado.xcx
; <<>> DiG 9.5.0-P2 <<>> posta.xtornado.xcx
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 46494
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1
;; QUESTION SECTION:
;posta.xtornado.xcx. IN A
;; ANSWER SECTION:
posta.xtornado.xcx. 38400 IN A 192.168.9.130
;; AUTHORITY SECTION:
xtornado.xcx. 38400 IN NS ns1.xtornado.xcx.
;; ADDITIONAL SECTION:
ns1.xtornado.xcx. 38400 IN A 192.168.9.54
;; Query time: 0 msec
;; SERVER: 192.168.9.54#53(192.168.9.54)
;; WHEN: Thu Jan 15 02:03:02 2009
;; MSG SIZE rcvd: 86
mkiklhorn@jaunty1:~$ dig kiklhorn.eu
; <<>> DiG 9.5.0-P2 <<>> kiklhorn.eu
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 33329
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 5, ADDITIONAL: 4
;; QUESTION SECTION:
;kiklhorn.eu. IN A
;; ANSWER SECTION:
kiklhorn.eu. 3600 IN A 193.86.128.216
;; AUTHORITY SECTION:
kiklhorn.eu. 3600 IN NS ns5.gratisdns.dk.
kiklhorn.eu. 3600 IN NS ns1.gratisdns.dk.
kiklhorn.eu. 3600 IN NS ns4.gratisdns.dk.
kiklhorn.eu. 3600 IN NS ns2.gratisdns.dk.
kiklhorn.eu. 3600 IN NS ns3.gratisdns.dk.
;; ADDITIONAL SECTION:
ns1.gratisdns.dk. 1267 IN A 213.173.243.8
ns2.gratisdns.dk. 1267 IN A 87.72.47.122
ns3.gratisdns.dk. 1267 IN A 82.195.156.187
ns3.gratisdns.dk. 1267 IN AAAA 2001:770:189::1
;; Query time: 78 msec
;; SERVER: 192.168.9.54#53(192.168.9.54)
;; WHEN: Thu Jan 15 02:04:45 2009
;; MSG SIZE rcvd: 223
teď z druhého počítače, nastavím mu nameserver ručně.
Zapomeňte na to dávat jej tam jako třetí, nebo jich tam nastavovat jich tam více když vracejí jiné výsledky.
Další nameserver se použije když je ten první nedosažitelný a NE když první vrátí že doména neexistuje, jak si spousta lidí myslí.
root@intrepidtest:~# cat /etc/resolv.conf
nameserver 192.168.9.54
a spouštím tedy testy z nějakého jiného počítače
root@intrepidtest:~# dig xtornado.xcx
; <<>> DiG 9.5.0-P2 <<>> xtornado.xcx
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 22798
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0
;; QUESTION SECTION:
;xtornado.xcx. IN A
;; AUTHORITY SECTION:
xtornado.xcx. 38400 IN SOA ns1.xtornado.xcx. admin.xtornado.xcx. 2009011501 28800 3600 604800 38400
;; Query time: 0 msec
;; SERVER: 192.168.9.54#53(192.168.9.54)
;; WHEN: Thu Jan 15 02:06:51 2009
;; MSG SIZE rcvd: 76
root@intrepidtest:~# dig posta.xtornado.xcx
; <<>> DiG 9.5.0-P2 <<>> posta.xtornado.xcx
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 45043
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1
;; QUESTION SECTION:
;posta.xtornado.xcx. IN A
;; ANSWER SECTION:
posta.xtornado.xcx. 38400 IN A 192.168.9.130
;; AUTHORITY SECTION:
xtornado.xcx. 38400 IN NS ns1.xtornado.xcx.
;; ADDITIONAL SECTION:
ns1.xtornado.xcx. 38400 IN A 192.168.9.54
;; Query time: 1 msec
;; SERVER: 192.168.9.54#53(192.168.9.54)
;; WHEN: Thu Jan 15 02:07:35 2009
;; MSG SIZE rcvd: 86
Jo, samozřejmě nezapomenout na kontrolu reverzního překladu
root@intrepidtest:~# dig -x 192.168.9.54
; <<>> DiG 9.5.0-P2 <<>> -x 192.168.9.54
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 24562
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1
;; QUESTION SECTION:
;54.9.168.192.in-addr.arpa. IN PTR
;; ANSWER SECTION:
54.9.168.192.in-addr.arpa. 86400 IN PTR xtornado.xcx.168.192.in-addr.arpa.
;; AUTHORITY SECTION:
168.192.in-addr.arpa. 86400 IN NS ns1.xtornado.xcx.
;; ADDITIONAL SECTION:
ns1.xtornado.xcx. 38400 IN A 192.168.9.54
;; Query time: 1 msec
;; SERVER: 192.168.9.54#53(192.168.9.54)
;; WHEN: Thu Jan 15 02:22:56 2009
;; MSG SIZE rcvd: 116
Teď zpět na počítač kde běží DNS server.
kontrola chyb v konfiguraci:
named-checkconf -z /etc/bind/named.conf
a doplnit $TTL a další nekritické chyby viz minule odkazovaný tutoriál
překlad
www.xtornado.xcx mi funguje, protože www mám definované viz výše
dig wwww.xtornado.xcx mi vrací správně autoritativní NXDOMAIN (neexistující doména)
pokud bych chtěl udělat aby všechny nedefinované domény třetího řádu končily na nějakém počítači (doménový koš) tak si to definuji pomocí cokoliv (*) záznamu.
Tedy do /etc/bind/db.xtornado.xcx doplním řádek
* IN CNAME www
zvýším serial o 1
a nechce se mi čekat tak restartnu bind
Teď už všechny nedefinované domény třetího řádu končí tam kde jsem chtěl.
mkiklhorn@jaunty1:~$ dig Xxxx.xtornado.xcx
; <<>> DiG 9.5.0-P2 <<>> Xxxx.xtornado.xcx
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 57875
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 1, ADDITIONAL: 1
;; QUESTION SECTION:
;Xxxx.xtornado.xcx. IN A
;; ANSWER SECTION:
Xxxx.xtornado.xcx. 38400 IN CNAME www.xtornado.xcx.
www.xtornado.xcx. 38400 IN A 192.168.9.130
;; AUTHORITY SECTION:
xtornado.xcx. 38400 IN NS ns1.xtornado.xcx.
;; ADDITIONAL SECTION:
ns1.xtornado.xcx. 38400 IN A 192.168.9.54
;; Query time: 1 msec
;; SERVER: 192.168.9.54#53(192.168.9.54)
;; WHEN: Thu Jan 15 02:37:04 2009
;; MSG SIZE rcvd: 103
A opět jen dodám že používat divné TLD může v budoucnu dělat binec v DNS stromu protože se třeba začnou používat:
http://www.icann.org/en/announcements/announcement-4-26jun08-en.htmNajděte si rfc2606 a použijte raději něco z toho
Minule jsem trochu mystifikoval. Ani zaužívaná .local která byla navrhována někdy před rfc2606 v nevím jaké vezri draft-ietf-dnsind-test-tlds do rfc2606 už neprošla.