Active Directory - DNS Bind alapokon

Ez megint egy erdekes allatfajta lesz, elore szolok.

A pelda rendszer ketto gepet fog tartalmazni, dc es dns, a tartomany pedig a szeretett mittudomain.com lesz.

Nos, most lassuk a hozzavalokat, ket szerverre:

  1. DC
    1. Windows 2000 vagy 2003 Server
    2. Support Tools
  2. DNS
    1. Bind 9
    2. Valamilyen szovegszerkeszto

Eloszor is, lassuk a DNS szervert, mert ez az egyszerubb a bonyolultabb:

Telepitsuk fel a bind-et, ha szukseges, tegyuk elerhetove a DNS portjait a belso halo szamara.

Nagyon fontos, hogy ezt a DNS szervert semmikeppen se probaljuk meg valamilyen grafikus/webes eszkozzel menedzselni, mert eleg kenyes dolgok vannak benne, amiket nem jo, ha egy magat okosnak erzo eszkoz szemetnek erzekelve kihajit.

A konfigfajlban keressuk meg eloszor az options reszt, majd pakoljunk ilyeneket bele:

1
auth-nxdomain no;

Ezutan az options mezon kivul hozzunk letre ketto zonat, egyet a fo zonanak, egyet pedig a _msdcs zonanak. Ez utobbit mindenkeppen letre kell hozni, mert az Active Directory fokepp erre tamaszkodik. Lassuk a kodokat elobb, majd utana duma:

Zona…

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
zone "mittudomain.com" IN {
type master;
file "zones/mittudomain.com.db";
allow-update {
10.0.20.0/24;
};
};

zone "_msdcs.mittudomain.com" {
type master;
file "zones/_msdcs.mittudomain.com.db";
allow-update {
10.0.20.5;
};
check-names ignore;
};
mittudomain.com zonafajl…
1
2
3
4
5
6
7
8
9
10
11
12
@       IN      SOA     mittudomain.com.    hostmaster.mittudomain.com. (
2008120901  ; serial
28800       ; refresh
7200        ; retry
3600000     ; expires
86400 )     ; minimum

IN      NS      dns

@       IN      A       10.0.20.3
dns             A       10.0.20.3
dc              A       10.0.20.5
_msdcs.mittudomain.com` zonafajl…
1
2
3
4
5
6
7
8
_msdcs.mittudomain.com      IN SOA  mittudomain.com. hostmaster.mittudomain.com. (
2008120901 ; serial
28800      ; refresh (8 hours)
7200       ; retry (2 hours)
3600000    ; expire (5 weeks 6 days 16 hours)
86400      ; minimum (1 day)
)
_msdcs.mittudomain.com.     IN      NS      dns.mittudomain.com.

Es akkor most duma:

Amint lathato a mittudomain.com zonafajl a leheto legegyszerubb lett, harom A rekord, egy NS, egy SOA, es roviditett formatum. Amit lenyeges megjegyezni belole, hogy a @ rekordnak mindig, kivetel nelkul a DNS szerverre onmagara kell mutatni, meghozza A rekordkent. Ez azert nagyon-nagyon fontos, mert az AD csak igy ertekeli a DNS szervert authoritativnak, es csak igy lesz hajlando beleirni magat.

Lassuk a nagyobbik remet, a _msdcs-t. Itt mar a konfig is modosult, latszik, hogy a bekerulo nevek ellenorzeset kikapcsoltam. Ez is nagyon fontos dolog, ugyanis a szabvany szerint a DNS nevekben nem lehetne alahuzas (underscore) karakter, marpedig itt maga a domain kezdodik igy. Ez sajnos MS sajatossag, nincs mit ellene tenni.

A zonafajlban precizen ki kell irni mindent, ugyanis a bind tud eleg sokat anyazni dolgokon, illetve neha nem kepes a @ feloldasara. Ilyenkor sajnos nincs mas hatra, mint potyogni. Ettol eltekintve ez meg egyszerubb: csak egy NS bejegyzes kerult ide, ami a DNS szerverunkre mutat.

Ezzel a bind kesz is, inditsuk el. Ha a syslog-ba valamire panaszkodna, akkor eloszor is ellenorizzuk a check-names megletet a zona konfigjaban, majd nezzuk at tuzetesen a zonafajlt.

Lassuk a DC-t.

Jelentkezzunk be, es ha eddig nem tettuk volna meg, akkor adjunk egy jo eros jelszot az Administrator/Rendszergazda felhasznalonak, mert a kovetkezo lepes ezt a jelszot importalja.

Allitsuk be a dns gepet a Windows elsodleges DNS szerverekent, ne legyen masodlagos DNS. Halozati helyek -> jobb klikk, Tulajdonsagok. Valasszuk ki a halozati kapcsolatunkat, majd a TCP/IP protokoll tulajdonsagainal irjuk be a dns gep IP cimet.

A Support Tools a Windows telepitolemez SUPPORT mappajaban talalhato, van itt egy SUPTOOLS.MSI, na azon kell duplakatt, es Next,Next,Finish. Nyissunk parancssort:

Command Line
1
2
3
4
5
6
7
8
9
10
11
> cd "C:\Program Files\Support Tools"
> netdiag /test:dns

... snip ...

DNS test . . . . . . . . . . . . . : Passed

PASS - All the DNS entries for DC are registered on DNS server '10.0.20.3'
and other DCs also have some of the names registered.

The command completed successfully.

Ennek igy kell kineznie. Ha valami RCODE hibara panaszkodik, vagy arra, hogy a DNS szerver szerinte nem authoritativ, akkor ellenorizzuk nslookup -pal, hogy a domain nevere megkapjuk-e A rekordkent a dns.mittudomain.com ip cimet. Ha nem, akkor ellenorizzuk a DNS szervert, hogy a kukacos A rekord bekerult-e a zonafajlba. Esetleg inditsuk ujra a bind-et.

Barmi egyeb hiba tovabbi keresest kell hogy maga utan vonjon, barmilyen szosz keresztbe fog akadni a kovetkezo lepes torkan.

Most adjuk ki a dcpromo parancsot. Ezt nem reszleteznem kulon, hogyan kell kitolteni, egyvalamire hivom csak fel a figyelmet: a tartomany DNS neve feltetlen egyezzen azzal a nevvel, amire a bind authoritativ, kulonben nem fogunk tudni tovabblepni.

A dcpromo lefutasa soran meg nem tortenik semmi a DNS szerverunkkel, viszont amikor a Windows szerver ujraindul, kezdjuk argus szemekkel figyelni a dns.mittudomain.com syslog-jat, mert a domain bejegyzesek ekkor tortennek meg. Ha lefutott, akkor csinaljunk egy teljes restartot a bind-en. Barmily hihetetlen ugyanis, a bind kepes a teljesen hibas bejegyzesek eltarolasara is, es ilyenkor ujraninditaskor akadnak a torkan dolgok. Hogy ez ne tudjon varatlanul elofordulni, celszeru tehat szandekosan kezdemenyezni. Ilyenkor altalaban a check-names szokott kiabalni. Ha nagyon kiabal, az options reszben tegyunk egy ilyen bejegyzest:

check-names master warn;

Es a zonafajlbol vegyuk ki a check-names bejegyzest. Ezzel ugyan globalisan kikapcsoltuk a nevek ellenorzeset, de hat ez egy ilyen vilag.

Ha szerencsenk volt, akkor jelenleg van egy teljesen mukodokepes Active Directory rendszerunk Bind DNS szerverrel.

Comments