Bind 9 konfigurálás

Sziasztok.

Egy elég kezdő kérdéssel fordulok hozzátok. Be kellene üzemelnem egy gépet, amit az adatparkba vinnénk be. Levelezés, web, ftp. Ez eddig oké. Viszont szeretnék beüzemelni rajta egy DNS szervert is. Jó, tudom, sokan mondják egyszerűbb, ha a szolgáltató megcsinálja, de én szeretnék sajátot. Elolvastam, 1-2 howto-t ezzel kapcsolatban, de egy gondom még mindig lenne.

Ami az én helyzetemben a következő: 1 gép, 1 külső IP cím, viszont 4-5 domain lenne amit ki kellene szolgálnom. Tudtok esetleg olyan leírást, ami megmutatja ilyen helyzetben mi a teendő? vagy le tudja irni nekem vki, miben különbözik attól a helyzettől ,mikor 1 ipcim és 1 domain van?

Tudom elég kezdő kérdés, de vhol neki kell kezdeni :)

Üdv mindenkinek

Hozzászólások

Feltelepíted a bind9-et jailbe

$ apt-get install bind9

Ezután leállítod:

$ /etc/init.d/bind9 stop

szerkeszted a /etc/default/bind9 fájlt:


OPTIONS="-u bind -t /var/lib/named"
# Set RESOLVCONF=no to not run resolvconf
RESOLVCONF=yes

Akkor most a könyvtár szerkezetet készítsd el:


$ mkdir -p /var/lib/named/etc
$ mkdir /var/lib/named/dev
$ mkdir -p /var/lib/named/var/cache/bind
$ mkdir -p /var/lib/named/var/run/bind/run
$ mv /etc/bind /var/lib/named/etc
$ ln -s /var/lib/named/etc/bind /etc/bind
$ mknod /var/lib/named/dev/null c 1 3
$ mknod /var/lib/named/dev/random c 1 8
$ chmod 666 /var/lib/named/dev/null /var/lib/named/dev/random
$ chown -R bind:bind /var/lib/named/var/*
$ chown -R bind:bind /var/lib/named/etc/bind

ezután szerkeszted a /etc/default/syslogd fájlt


SYSLOGD="-a /var/lib/named/dev/log"

$ /etc/init.d/sysklogd restart
$ /etc/init.d/bind9 start

Eldöntöd hogy elsődleges "master" vagy másodlagos "slave" szervert akarsz -e csinálni? És konfugárljunk elsődleges NS-t:


$ /etc/init.d/bind9 stop
$ cd /etc/bind

generálj egy titkos kulcsot:

$ dnssec-keygen -a hmac-md5 -b 128 -n HOST titkos_kulcs

Két fájlod van:
- Ktitkos_kulcs.+157+34456.key
- Ktitkos_kulcs.+157+34456.private

Innen csak a kulcs kell majd a named.conf.options -ba.

Szerkeszd a /etc/default fájlt, aminek eredményeként a bind nem nem rootként fog futni:
"OPTIONS="-u bind"
RESOLVCONF=yes"

Szerkeszd az /etc/bind/named.conf.options állományt:

acl belso_halo { 192.168.10.0/24; };
acl masodlagos_dns { 192.168.10.252; };

server 192.168.10.252 {
keys { titkos_kulcs; };
};

key titkos_kulcs {
algorithm hmac-md5;
secret "islfIxRey4p2Uedv9+Rhfw==";
};

options {
directory "/var/cache/bind";
query-source address * port 53;
forward only;
forwarders {
192.168.10.254;
};
check-names master fail;
check-names response warn;

allow-transfer { key titkos_kulcs; };
allow-query { localhost; belso_halo; };
allow-recursion { localhost; belso_halo; };

auth-nxdomain no;
listen-on-v6 { none; };
};

ezután szerkeszd meg a /etc/bind/named.conf.local állományt

zone "akarmi.hu" {
type master;
file "zones/akarmi.hu";
allow-transfer {
;
};
allow-query {
127.0.0.1;
192.168.10.0/24;
};
also-notify {
192.168.10.252;
};
notify yes;
};

Ezután csináld meg a zones/akarmi.hu zónafájlt:

$TTL 86400
akarmi.hu IN SOA dns.akarmi.hu. postmaster.akarmi.hu. (
2007022001 ; Serial
86400 ; Refresh
900 ; Retry
604800 ; Expire
86400 ) ; Negativ cache TTL

NS masterdns.akarmi.hu.
NS slavedns.akarmi.hu.
A 192.168.10.10
MX 10 mail.valami.hu

$origin akarmi.hu.

kliens1 IN A 192.168.10.10

Adminisztrációs eszközök:

$ apt-get install dnsutils

- named-checkconf
- named-checkzone
- rndc

Teszetlésre:
- dig
- host
- nslookup

Nagyon részletes leírást kaphatsz Kósa Attila írásából: Egy elképzelt hálózat összeállítása a Debian GNU/Linux Etch verziójának segítségével

A másodlagos "slave" NS konfigolását már találd ki magad :)

Ha saját domain DNS kiszolgálását akarod megoldani, akkor gondolkoznod kell azon is, hogy a másodlagos kiszolgáló hogy lesz megoldva.

Üdv,
Dw.
"Jegyezze fel a vádhoz - utasította Metcalf őrnagy a tizedest, aki tudott gyorsírni. - Tiszteletlenül beszélt a feljebbvalójával, amikor nem pofázott közbe."

Üdv.

Nem akartam új topicot.

Olyan gondom lenne hogy fut 2 namserver ns1.stageline.hu és ns2.stageline.hu és hiába állítom be nekik a stageline.hu A recordját nem akarja feloldani a kintről érkező kéréseknek.

Az ellenőrző procedúra outputja:
...............................................................................
M-GREET -I- [stageline.hu] Domi version 20080425
M-NADD -I- [stageline.hu] NS addr: 78.159.107.94
M-PNAM -I- [stageline.hu] primary NS name: ns1.stageline.hu
M-NMAS -E- [stageline.hu] Cannot get A for NS host ns1.stageline.hu
...............................................................................

pof:/var/log/named# dig stageline.hu

; <<>> DiG 9.4.2 <<>> stageline.hu
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 5739
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 0

;; QUESTION SECTION:
;stageline.hu. IN A

;; ANSWER SECTION:
stageline.hu. 1800 IN A 87.229.104.252

;; AUTHORITY SECTION:
stageline.hu. 1800 IN NS ns1.stageline.hu.
stageline.hu. 1800 IN NS ns2.stageline.hu.

;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Fri May 9 10:25:15 2008
;; MSG SIZE rcvd: 82

Ha belülről pingelem jön a válasz a 87.229.104.252-ről

Van valami ötlet? Egyátalán lehet a valami.hu namservere ns.valami.hu ?

# host -t a ns1.stageline.hu. 78.159.107.94
Using domain server:
Name: 78.159.107.94
Address: 78.159.107.94#53
Aliases:

Host ns1.stageline.hu not found: 3(NXDOMAIN)

# host -v -t ns stageline.hu. ns.nic.hu
;; AUTHORITY SECTION:
stageline.hu. 86400 IN NS lena.cfm.hu.
stageline.hu. 86400 IN NS stigmata.cfm.hu.

;; ADDITIONAL SECTION:
lena.cfm.hu. 86400 IN A 193.202.63.1
stigmata.cfm.hu. 86400 IN A 193.202.83.162

"Egyátalán lehet a valami.hu namservere ns.valami.hu ?"
Igen, lehet. De az NS-ben meghatározott névhez tartozó A rekordoknak léteznie kell, és valós információt kell tartalmaznia. Ez hiányzik a te esetedben (egyáltalán nincs ilyen A rekord), ahogy erről a regcheck "M-NMAS -E- [stageline.hu] Cannot get A for NS host ns1.stageline.hu" üzenete is árulkodik. És mivel jelenleg a ColdFusion-nél van a name server, a regisztrátornál (Domain Registrar Kft.) intézni kell az NS-változtatást, hogy a delegáló .hu zónában is a helyükre kerüljenek a dolgok. Kintről ennek a végrehajtásáig nem fognak eltalálni a kérések az új szerverre.

Köszi. Ez világos de amíg a regchecken nem megy át, addig nem is tudják nekem átrakni az én gépeimre a name címeket. Ráadásul a regchecknél magam adom meg namserverenek ns1.stageline.hu és hiretelen lefut az ellenőrzés a többihez képest és néz ki az arcából. Az én name szerveremen mint mondtam be van állítva A rekord. Mutatom:


zone "stageline.hu" {
type master;
file "stageline.hu.dns";
allow-transfer{
87.229.104.252;
193.239.149.113;
};
};


; DO NOT EDIT
; stageline.hu.dns
@ 5M IN SOA ns1.stageline.hu. hostmaster.stageline.hu. (
2008050916 ; Serial
5M ; Refresh
5M ; Retry
6W ; Expire
5M ) ; Minimum TTL

;
; NS's implied by server records in the database
;
stageline.hu. 5M IN NS ns1.stageline.hu.
stageline.hu. 5M IN NS ns2.stageline.hu.
; records from data base
@ 5M IN A 87.229.104.252
@ 5M IN MX 0 mail
mail 5M IN A 87.229.104.252
ns1.stageline.hu 5M IN A 78.159.107.94
ns2.stageline.hu 5M IN A 87.229.104.252
www 5M IN A 87.229.104.252

;;EOF

Ő lenne az @ 5M IN A 87.229.104.252

Valakinek van ötelete még mit cseszhetek el?

Továbra sem megy.

Itt a log amit a regcheck csinál, nem +-nak kéne lennie ott ahol most - van?

ns1:/var/named# cat /var/log/named/queries.log
09-May-2008 17:07:52.304 client 193.239.149.113#51047: query: stageline.hu IN SOA -
09-May-2008 17:07:52.339 client 193.239.149.113#51048: query: ns1.stageline.hu IN CNAME -
09-May-2008 17:07:52.369 client 193.239.149.113#51048: query: ns1.stageline.hu IN A -

hostmaster.stageline.hu helyett postmaster.stageline.hu
Ezen is ki fog akadni a Regcheck
Azon kívűl kéne egy A rekordot is adni neki.

Én így csinálnám:

$ORIGIN .
$TTL 1800     ; 30 minute(s)
stageline.hu              IN SOA ns1.stageline.hu. postmaster.stageline.hu. (
                                 2008050916 ; serial
                                 86400      ; refresh
                                 7200       ; retry
                                 3628800    ; expire
                                 3600       ; minimum
                                 )
                        NS      ns1.stageline.hu.
                        NS      ns2.stageline.hu.
                        A       87.229.104.252
                        MX      10 mail.stageline.hu.

                        TXT     "stageline.hu DNS etc."
$ORIGIN stageline.hu.
ns1                  A          78.159.107.94
ns2                  A          87.229.104.252
www                  A          87.229.104.252

SOA paraméterek beállítására a refresh, retry, expire és ttl értékek helyes beállítására a RIPE 203-as sorszámú dokumentum (ld. ftp://ftp.ripe.net/ripe/docs/ripe-203.txt) tartalmaz ajánlásokat. A mű szerzője - Peter Koch - 2005-ben a következő értékeket tartja ajánlatosnak:

· refresh = 86400, # 24 hours
· retry = 7200, # 2 hours
· expire = 3600000, # 1000 hours
· ttl = 3600 # 1 hour

Sikerült köszi.

Az volt a gond hogy ns1.stageline.hu-t írtam A rekordhoz nem csak ns1-et.

Tehát a motyó így néz ki:

ns1:/var/named# cat stageline.hu.dns
;
; DO NOT EDIT
; stageline.hu.dns, generated by ProBIND
@ 5M IN SOA ns1.stageline.hu. postmaster.stageline.hu. (
2008050922 ; Serial
5M ; Refresh
5M ; Retry
6W ; Expire
5M ) ; Minimum TTL

;
; NS's implied by server records in the database
;
stageline.hu. 5M IN NS ns1.stageline.hu.
stageline.hu. 5M IN NS ns2.stageline.hu.
; records from data base
@ 5M IN A 87.229.104.252
@ 5M IN MX 0 mail
mail 5M IN A 87.229.104.252
ns1 5M IN A 78.159.107.94
ns2 5M IN A 87.229.104.252

;;EOF

M-OK -S- [stageline.hu] All's well............ that ends well.................

Még annyit, hogy nem tudja valaki esetleg ez hogyan javítható?

M-RERR -W- [stageline.hu] SOA parameters don't comply with RIPE

Igen az.

"SOA paraméterek beállítására a refresh, retry, expire és ttl értékek helyes beállítására a RIPE 203-as sorszámú dokumentum (ld. ftp://ftp.ripe.net/ripe/docs/ripe-203.txt) tartalmaz ajánlásokat. A mű szerzője - Peter Koch - 2005-ben a következő értékeket tartja ajánlatosnak:..."

Üdv. Van egy webcímem: http://linecode.pof.co.cc/ megy is szépen, felvettem egy linecode A recordot, de www-vel nem működik. Ilyen esetben mit javasolt tenni?

Így néz ki a fájlom..

root@ns2:/var/named/SEC# cat pof.co.cc.dns
$ORIGIN .
$TTL 3600	; 1 hour
pof.co.cc		IN SOA	ns1.stageline.hu. postmaster.stageline.hu. (
				2008051105 ; serial
				86400      ; refresh (1 day)
				7200       ; retry (2 hours)
				3600000    ; expire (5 weeks 6 days 16 hours)
				3600       ; minimum (1 hour)
				)
			NS	ns1.stageline.hu.
			NS	ns2.stageline.hu.
			A	78.159.107.94
			MX	0 mail.pof.co.cc.
$ORIGIN pof.co.cc.
linecode		A	87.229.104.252
mail			A	87.229.104.252
www			A	78.159.107.94

Köszi.

"... de www-vel nem működik."
Mi nem működik?


$ host www.pof.co.cc. ns1.stageline.hu.
Using domain server:
Name: ns1.stageline.hu.
Address: 78.159.107.94#53
Aliases:

www.pof.co.cc has address 78.159.107.94

$ host -t soa pof.co.cc.
pof.co.cc has SOA record ns1.stageline.hu. postmaster.stageline.hu. 2008051105 86400 7200 3600000 3600

"Ilyen esetben mit javasolt tenni?"
Módosítás esetén az előző TTL idő leteltét megvárni, hogy a többi name server cache-éből kikerüljön.

Üdv.

Nem a pof.co.cc nem működik hanem az alá berendelt linecode aldomain nem megy www-sen.

root@ns2:/var/named/SEC# host www.linecode.pof.co.cc. ns1.stageline.hu.
Using domain server:
Name: ns1.stageline.hu.
Address: 78.159.107.94#53
Aliases: 

Host www.linecode.pof.co.cc. not found: 3(NXDOMAIN)

Talán mert nincs a zónafileban www.linecode nevű A-rekord. Van www (www.pof.co.cc.) és linecode (linecode.pof.co.cc.), de www.linecode (www.linecode.pof.co.cc.) nincs. Legalábbis a fenti hozzászólásodban mutatott zónafileban. Vagy ez a lehetőség van, vagy a létrehozol és delegálsz egy linecode.pof.co.cc zónát, és abba veszed fel az A-rekodot az originhez és a www hosthoz. Az első változat az egyszerűbb.

Naccerű köszi..

ns1:~# ping www.linecode.pof.co.cc
ping: unknown host www.linecode.pof.co.cc
ns1:~# ping www.linecode.pof.co.cc
PING www.linecode.pof.co.cc (87.229.104.252) 56(84) bytes of data.
64 bytes from pof.hu (87.229.104.252): icmp_seq=1 ttl=56 time=18.2 ms
64 bytes from pof.hu (87.229.104.252): icmp_seq=2 ttl=56 time=18.8 ms
64 bytes from pof.hu (87.229.104.252): icmp_seq=3 ttl=56 time=18.6 ms
64 bytes from pof.hu (87.229.104.252): icmp_seq=4 ttl=56 time=19.2 ms

De és akkor most minden aldomainnel ezt el kell játszanom hogy legyen www-je is, vagy van valami alternatív megoldás? Mondjuk www.* vagy ilyesmi ami működhet.

RFC 1034 4.3.3:
"In the previous algorithm, special treatment was given to RRs with owner names starting with the label "*". Such RRs are called wildcards.

The wildcards in the zone have an owner name that controls the query names they will match. The owner name of the wildcard RRs is of the form "*.", where is any domain name.

Another way to look at this is that the "*" label always matches at least one whole label and sometimes more, but always whole labels.

Wildcard RRs do not apply:
- When the query name or a name between the wildcard domain and
the query name is know to exist. For example, if a wildcard
RR has an owner name of "*.X", and the zone also contains RRs
attached to B.X, the wildcards would apply to queries for name
Z.X (presuming there is no explicit information for Z.X), but
not to B.X, A.B.X, or X."

Erről ezt mondja a Bind 9.4[/i]Administrator Reference Manual:
"check-wildcard
This option is used to check for non-terminal wildcards. The use of non-terminal wildcards is almost always as a result of a failure to understand the wildcard matching algorithm (RFC 1034). This option affects master zones. The default (yes) is to check for non-terminal wildcards and issue a warning."

"De és akkor most minden aldomainnel ezt el kell játszanom hogy legyen www-je is, vagy van valami alternatív megoldás? Mondjuk www.* vagy ilyesmi ami működhet."
Használhatod mindenhol a *-ot, de az ugyanannyi munka, mintha www-t írnál. Ha sok van, akkor egy egy-két soros script megoldja a kérdést.

Köszönöm!

Más baj nincs vele? Ha nincs, akkor mégegy megerősítést kérnék :)

Ha azt szeretném, hogy a 10.0.0.0/8-ban lévő gépek kilássanak a netre, és a külső névfeloldás is működjön, valamint a többi, korábban meglévő zónát is lássa, akkor elegendő NAT-olni, valamint a DNS szervert beállítani forwardernek?

Petya

"... a 10.0.0.0/8-ban lévő gépek kilássanak a netre, ... akkor elegendő NAT-olni...?"
Igen, ez kötelező.

"a külső névfeloldás is működjön, valamint a többi, korábban meglévő zónát is lássa, akkor elegendő ... a DNS szervert beállítani forwardernek?"
Ha a gépek ezt a 10.0.0.254 DNS szervert használják közvetlenül, akkor nem kell (de lehet) a DNS szerveren forwardert állítani, ami célszerűen a szolgáltató szervere. Ilyenkor ha nem állítasz be forwardert, úgy is működni fog a normál feloldási rendszer szerint. Ha viszont a gépek saját magukon futó DNS szervert használnak a névfeloldáshoz, akkor azok mindegyikén forwarderként be kell állítani azt a szervert, amelyen ezeket a zónákat létrehoztad (10.0.0.254).

"Más baj nincs vele?"
Nem látok más problémát.

Köszönöm, megcsináltam, de valamiért a 10.0.0.0/8-ban a reverse DNS nem megy:

http://molnarp.pastebin.com/m49c7bc96

Mi lehet a probléma? (a fent linkelt konfigot használtam)

(akkor is csak SOA-t ad vissza, ha a dig -x @10.0.0.254 10.0.0.3-al kérem, csak a router.valami.priv helyett az "A" root szervert adja meg)

Petya

Hello!

A fenti beállítást szeretném még annyival kiegészíteni, hogy olyan gépek esetén, amelyeknek mindkét VLAN-ban van egy-egy lába, a privát VLAN-ból érkező, de publikus DNS-re vonatkozó kérések (gepneve.ceg.hu) esetén ne a publikus, hanem a privát IP-t adja vissza a Bind?

Tehát van egy gép, két interface:

- 1.2.3.4/24 gepneve.ceg.hu
- 10.2.3.4/8 gepneve.ceg.priv

Azt szeretném, hogy pl. a 10.2.3.5 gép a "gepneve.ceg.hu" kérésre ne az 1.2.3.4-et kapja vissza, hanem a 10.2.3.4-et. Persze a reverse zónát ez nem érintené...

Megvalósítható ez?

Petya

Split DNS esetén meg lehet valahogy oldani, hogy az "internal" zónába csak a releváns host-okat venném fel és amit ott nem talál, azt keresse az "external" zónában?
Ha lehet, ne file alapon, hanem DNS query-vel, mivel nálam az osztott zónát két külön Bind szolgálja ki.

Vajon az "internal" zónafile-ban a "* NS {external ns ip}" bejegyzés működhet?

Sziasztok!

Bind9 alatt hogyan lehet SRV rekordként megadni a WINS szervert? Egy Samba domain-ről van szó, a klienseken egyesével van beállítva a WINS szerver IP-je, így találják meg a PDC-t. Szeretném ezt szebben csinálni, DNS-ből.

Petya

Sziasztok,

A következő a problémám:
Adott egy vas, amin 3 virtuális gép fut (192.168.122.0/24-ben).
Kértek egy bind-ot a főgépre. Az a problémám, h ha a főgépen fut a bind, a virtuálisokon nem tudok dns lekérdezést végrehajtani (Csak amit a főgép kiszolgál). Virtuálisok MASQ-olva vannak.
A főgépen ezek a beállításaim
named.conf.options:
forwarders {88.151.96.15;8.8.8.8;};
auth-nxdomain no; # conform to RFC1035
listen-on-v6 { any; };
recursion no;

allow-recursion { 127.0.0.1; 88.151.x.x; 88.151.x.x; 192.168.122.0/24;};
allow-query { "any"; };
allow-transfer { 88.151.x.x;192.168.122.0/24;};
allow-query-cache { 127.0.0.1; 88.151.x.x; 88.151.x.x; 192.168.122.0/24;};

Mit keffenthetek el, h nem működik a belső query forward? Kifogytam az 5letekből...

A 192.168.122.1 van beallitva. Kozben meglett a megoldas. Ide is masolom, h masok is tudjak:
A named.conf.local -ban:
view "internal" { match-clients { 127.0.0.1; 192.168.122.0/24;}; recursion yes; };

view "external" {
match-clients { any; };
allow-query { "any"; };
recursion no;
zone "domain.hu" {
type master;
file "/etc/bind/zones/domian.hu";
also-notify {88.151.x.x;};
notify yes;
};

Es ugyan igy a slave-nek is, persze kicserelve a mastert-slave-re.