Megvalósítás
| Eleje |
proba# apt-get install bind dnsutilA bind maga a névszerver a dnsutil az pedig egy két segédprogram amire szükségünk lehet.
| Eleje |
Konfigurálás
Egy intranet rendszer példája alapján:
Konfiguráljunk egy olyan rendszert amikor van egy intranet rendszerünk
ami az Internetre kapcsolódik
Tehát adva van 2 gép, rendre 192.168.1.1 és 192.168.1.2. Az 1-es gép
lesz a központi gép, ezen a gépen telepítettük a bind programot.
Ha jól csináltuk akkor lehet
megírni a zone file-okat, illetve először a
/etc/bind/named.conffile-t editáljuk így:
// This is the primary configuration file for the BIND DNS server named.Leegyszerűsítve, ha megfigyeljük, tulajdonképpen csak a végére írtam be két bejegyzést. Két master típusú zónát definiáltam amit majd ismerni fog a bind-unk.
//
// Please read /usr/share/doc/bind/README.Debian for information on the
// structure of BIND configuration files in Debian for BIND versions 8.2.1
// and later, *BEFORE* you customize this configuration file.
options {
directory "/var/cache/bind";
};
// reduce log verbosity on issues outside our control
logging {
category lame-servers { null; };
category cname { null; };
};
// 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";
};
zone "0.in-addr.arpa" {
type master;
file "/etc/bind/db.0";
};
zone "255.in-addr.arpa" {
type master;
file "/etc/bind/db.255";
};
// add entries for other zones below here
zone "sajatnet.hu" {
type master;
file "/etc/bind/db.sajatnet";
};
zone "168.192.in-addr.arpa" {
type master;
file "/etc/bind/db.168.192";
};
proba# touch /etc/bind/db.sajatnetAzután editáljuk:
proba# mcedit /etc/bind/db.sajatnet(persze ki-ki a szívének legkedvesebb editorát használhatja;)
;Na ugye nem is sok? Azért kell egy kis magyarazat. Mint például minden domain-nek kell legyen SOA rekordja. Ez nekünk @-tel kezdődik, mert lusták vagyunk kiírni, hogy sjatnet.hu. , hiszen ezt tudni fogja a bind, mert a zónát ezen a néven definiáltuk. A SOA rekordban definiáljuk a serial értékét. Ez nagyon fontos, hiszen ha szerkesztjük ezt a file-t és a name server-t nem indítjuk újra hanem csak újratöltjük (reload) akkor nem fogja beolvasni a megválltozott file-t.
; BIND data file for sajatnet.hu domain
;
$TTL 86400
@ IN SOA proba.sajatnet.hu. root.proba.sajatnet.hu. (
2000092101 ; Serial
28800 ; Refresh
7200 ; Retry
604800 ; Expire
86400 ) ; Negative Cache TTL
;
@ IN NS proba.sajatnet.hu.
;-------------------------------------------------------;
proba IN A 192.168.1.1 ;
@ IN MX 10 proba.sajatnet.hu. ;
ns IN CNAME proba ;
www IN CNAME proba ;
ftp IN CNAME proba ;
mail IN CNAME proba ;
proxy IN CNAME proba ;
proba IN HINFO iDX4-100 Linux/Debian2.2 ;
;-------------------------------------------------------;
; addolagos serveri ip cimek
;-------------------------------------------------------;
munka IN A 192.168.1.2 ; munkaállomás
;-------------------------------------------------------;
; vege.
NE FELEDJÜK!
Szokjuk meg, hogy a zone file szerkesztését mindig a serial növelésével
kezdjük!
Ez a beidegződött stereotípia, később sok bosszúságtól óvhat meg minket.
A többi érték nem érdekes jelenleg számunkra, én ezeket az értékeket az
általánosan elfogadott értékek közül választottam ki, azaz kipuskáztam
a "nagyok" name szervereiből!;-) Tehát elfogadjuk ezeket a lejárati, frissítési
és ismétlési értékeket. A következő rekord szintén @-os, hiszen az egész
domain name serverét definiáljuk. Itt nem illik megadni CNAME bejegyzésű
hostnevet. Ah, mi is az a CNAME? Mindjárt visszatérünk rá.
FIGYELJÜK MEG!
Figyeljük meg, hogy a
@ IN
NS proba.sajatnet.hu.
sorban a proba.sajatnet.hu után is áll egy pont! Ez lényeges, ugyanis
ha nem teszünk pontot, akkor a bind kiegészíti azt a @ értékével azaz akkor
a host név így alakulna:
proba.sajatnet.hu.sajatnet.hu
Én azt a gyakorlatot követem, hogy inkább kiírom a teljes domain
nevet és nem felejtrem el az utolsó pontot. Ha te is így teszel talán kevesebbet
bosszankodsz majd;-)
Végre! Definiáljuk az első hostot a domain-ünkben. Ez nem más mint a proba nevű gép a címe 192.168.1.1 .
proba IN A 192.168.1.1
Tehát, [gépnév,IN,A,IPcím]! Ugyanígy definiáljuk a zóna többi hostját is. Rögtön ezután definiáljuk az MX rekordot is:
@ IN MX 10 proba.sajatnet.hu.
azaz,a @ domainnek (sajatnet.hu) a 10-es prioritású levelező gépe
a proba.sajatnet.hu! (ponttal a végén:)
Megadhatunk több levelezőgépet is, a kisebb prioritás értékű a
nagyobb prioritású a sorban.
Ezekután még definiálunk néhány nevet, hogy úgy is elérhessük a
proba nevű gépet, mint például ftp, www, proxy, etc...
A HINFO rekord manapság nem szokásos, lévén mindenki bizalmatlan, ezért
esetleges kíváncsiskodók miatt nem szokták megadni. Mi azért megadhatjuk.
(Intel DX-4/100MHz-es gép és Debian GNU/Linux OS fut a gépen.)
Ezekután definiálhatjuk a tobbi hostot, mi most csak egyet adunk meg
ez a munka nevű gép lesz, aminek az IP-je 192.168.1.2.
Mentés és máris nézzük a reverse
DNS file tartalmát. Miénk az egész 192.168.x.x IP tartomány ezért így járunk
el:
proba# touch /etc/bind/db.168.192
A file tartalma az alábbi:
; BIND data file for 192.168.x.x reverse DNSMentés és ezzel kész is vagyunk. A reverse DNS visszafelé működik, azaz ha valaki megkérdi mi a neve a 192.168.1.1 gépnek akkor a db.168.192 zone file alapján kiegészíti azt az 1.1-gyel és ennek a PTR rekordnak az értékét adja vissza, azaz proba.sajatnet.hu. Már csak újraindítjuk, illetve betöltetjük a serverrel a változásokat.
;
$TTL 86400
@ IN SOA proba.sajatnet.hu. root.proba.sajatnet.hu. (
2000092101 ; Serial
28800 ; Refresh
7200 ; Retry
604800 ; Expire
86400 ) ; Negative Cache TTL
;
@ IN NS proba.sajatnet.hu.
;
1.1 IN PTR proba.sajatnet.hu.
2.1 IN PTR munka.sajatnet.hu.
;vege
proba# /etc/init.d/bind reloadHa minden jol megy akkor az alábbiakat látjuk a /var/log/syslog -ban amit pl. a
proba# tail -f /var/log/syslogparanccsal nézegethetünk folyamatosan. kb. ezt látjuk:
Sep 25 13:29:49 proba named[153]: reloading nameserverEllenőrzés
Sep 25 13:29:49 proba named[153]: master zone "sajatnet.hu" (IN) loaded (serial 2000092201)
Sep 25 13:29:49 proba named[153]: master zone "168.192.in-addr.arpa" (IN) loaded (serial 2000092201)
Sep 25 13:29:49 proba named[153]: Forwarding source address is [0.0.0.0].1237
Sep 25 13:29:49 proba named[153]: Ready to answer queries.
Nincs más hátra mint hogy ellenőrizzük a jól beállított name server-ünket:
proba# nslookupHa nem ezt látjuk akkor rossz default nameserver beállítás a /etc/resolv.conf file-ban, korrigáljuk:
Default Server: localhost
Address: 127.0.0.1>
proba# cat /etc/resolv.confTehát látható, hogy a hostunk a 127.0.0.1-es "gépen" lévő name server-t kérdezgeti és a sajatnet.hu domainba tartozik.
nameserver 127.0.0.1
search sajatnet.hu
Default Server: localhostezután lekérdezhetjük, hogy ismeri-e a domain-ünket a name server:
Address: 127.0.0.1> set type=any
>
> sajatnet.huSzuper! Ezekután különbözőképp faggatózhatunk:
Server: localhost
Address: 127.0.0.1sajatnet.hu nameserver = proba.sajatnet.hu
sajatnet.hu
origin = proba.sajatnet.hu
mail addr = root.proba.sajatnet.hu
serial = 2000092201
refresh = 28800 (8H)
retry = 7200 (2H)
expire = 604800 (1W)
minimum ttl = 86400 (1D)
sajatnet.hu preference = 10, mail exchanger = proba.sajatnet.hu
sajatnet.hu nameserver = proba.sajatnet.hu
proba.sajatnet.hu internet address = 192.168.1.1
>
> set type=PTR
> 192.168.1.1
Server: localhost
Address: 127.0.0.11.1.168.192.in-addr.arpa name = proba.sajatnet.hu
168.192.in-addr.arpa nameserver = proba.sajatnet.hu
proba.sajatnet.hu internet address = 192.168.1.1
> set type=MX
> sajatnet.hu
Server: localhost
Address: 127.0.0.1sajatnet.hu preference = 10, mail exchanger = proba.sajatnet.hu
sajatnet.hu nameserver = proba.sajatnet.hu
proba.sajatnet.hu internet address = 192.168.1.1
> set type=HINFO
> proba
Server: localhost
Address: 127.0.0.1proba.sajatnet.hu CPU = iDX4-100 OS = Linux/Debian2.2
sajatnet.hu nameserver = proba.sajatnet.hu
proba.sajatnet.hu internet address = 192.168.1.1
> www
Server: localhost
Address: 127.0.0.1www.sajatnet.hu canonical name = proba.sajatnet.hu
proba.sajatnet.hu CPU = iDX4-100 OS = Linux/Debian2.2
sajatnet.hu nameserver = proba.sajatnet.hu
proba.sajatnet.hu internet address = 192.168.1.1
>
.
.
.
stb.
Tehát működik.
Jelen esetben a name server-ünk saját maga kérdezgeti a root servereket.
Ha szeretnénk kihasználni, hogy a szolgáltatónk name server-ét kérdezgesse,
hiszen az közelebb van és cache-el egy csomó kérést, tehát nagy valószínűséggel
hamarabb kapunk onnan választ, akkor a /etc/bind/named.conf file-t
ki kell egészítenünk egy forwarders-szel:
options {Ahha, és mi az a listen-on ? Ezzel azokat az interface IP-ket adhatjuk meg, ahol figyel a bind. Jó ezt megadni, mert így biztosítható, hogy ha esetleg be is talál egy kérés az Internetre csatlakozó interface-re, akkorsem valaszol a name server-ünk.
directory "/var/cache/bind";
forwarders {
idejon.az.isp.nameservere.elsodleges.ipcime;
idejon.az.isp.nameservere.masodlagos.ipcime;
# 195.70.32.131; ezek interware-es name serverek ha valaki éppen interware-es
# 193.225.12.33; ezek interware-es name serverek ha valaki éppen interware-es
};
listen-on port 53 {
127.0.0.1;
192.168.1.1;
};
};
Egy intranet rendszer példája alapján, de az intranet
masquerade mögött van:
Ez akkor jelent problémát ha az Internetre nem közvetlenül az intranetes
name server-ünkről jutunk ki:
+--------+ +---------+Tehát kibővítettük hálózatunkat egy gate nevű géppel ami az internetre csatlakozik és ez a gép az egész hálót masquerade-eli.
| |192.168.1.2 192.168.1.254| | ppp->
| munka +--------------HUB----------------+ gate +------
| | | | |
+--------+ |192.168.1.1 +---------+
+----+----+
| |
| proba |
| |
+---------+
gate# ipchains -A forward -j m -s 192.168.1.0/24 -d 0/0Nincs is ebben semmi rossz, csakhogy a bind ilyenkor nem kapja meg a valaszt. Ezt legkönnyebben úgy tudjuk áthidalni, hogy a gate gepre telepítünk egy bind-ot ami csak forwardol.
options {Ennyi. Természetesen mindenki a saját ISP-je name szervereit írja a forwarders részbe!
directory "/var/cache/bind";
forward only;
forwarders {
193.226.220.1;
193.225.12.62;
};
listen-on port 53 {
127.0.0.1;
192.168.1.254;
};
};// reduce log verbosity on issues outside our control
logging {
category lame-servers { null; };
category cname { null; };
};
// 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";
};
zone "0.in-addr.arpa" {
type master;
file "/etc/bind/db.0";
};
zone "255.in-addr.arpa" {
type master;
file "/etc/bind/db.255";
};
// add entries for other zones below here
forwarders {Ne felejtsük újraindítani, vagy reload-olni a name servereket!
192.168.1.254;
};
Körülbelül ennyi a történet. Nekem működik ;-) remélem ezekután már Te is megtudod csinálni.
| Eleje |