5.2.6. Névszolgáltatás
Az internet szolgáltatások alapja a névszolgáltatás, amely neveket fordít IP címmé és viszont, mindenképpen szükségünk van rá, ezért a DNS adatbázis lesz az LDAP első igazi feladata. Nos, hozzuk létre a dns jail-t (a megszokott módon), és telepítsünk egy powerdns és a powerdns-recursor csomagot (az OPENLDAP opciót válasszuk majd ki, hiszen LDAP alapon akarunk DNS-t szolgáltatni):
[root@dns:~]$ portinstall -i powerdns powerdns-recursor ---> Session started at: Sun, 18 Jan 2009 11:07:07 +0100 [Updating the pkgdb <format:bdb_btree> in /var/db/pkg ... - 71 packages found (-1 +1) (...). done] Install 'dns/powerdns'? [yes] [Gathering depends for dns/powerdns .......... done] Install 'dns/powerdns-recursor'? [yes] [Gathering depends for dns/powerdns-recursor .. done] ---> Fresh installation of devel/boost started at: Sun, 18 Jan 2009 11:07:14 +0100 [...] + devel/boost + dns/powerdns-recursor + dns/powerdns ---> Packages processed: 3 done, 0 ignored, 0 skipped and 0 failed ---> Session ended at: Sun, 18 Jan 2009 11:30:53 +0100 (consumed 00:23:45)
| A FreeBSD alaprendszernek is része egy BINDv9, azonban jobb ezt a szolgáltatást csomagból feltenni, mivel hiba esetén könnyebb és gyorsabb frissíteni, másrészt az alaprendszeri BIND nem támogatja az LDAP-ot, tehát mindenképpen csomagból kellene telepítenünk... |
5.2.6.1. Az LDAP beállítása
Az LDAP alapból nem támogatja a DNS adatok tárolását, ezért a slapd.conf állományba (természetesen a ldap jail-ben) fel kell venni a cosine sémát, és a dnsdomain2 sémát:
include /usr/local/etc/openldap/schema/cosine.schema include /usr/local/etc/openldap/schema/dnsdomain2.schema
Ezek után indítsuk újra az ldap jail-ben futó slapd szolgáltatást:
[root@ldap:~]$ /usr/local/etc/rc.d/slapd restart
Stopping slapd.
Waiting for PIDS: 19837.
Starting slapd.
[root@ldap:~]$ /usr/local/etc/rc.d/slapd status
slapd is running as pid 20045.
5.2.6.2. A PowerDNS beállítása
Lépjünk be a dns _jail_be, s kezdjük azzal, hogy adunk egy esélyt a PowerDNS számára az elindulásra:
pdns_recursor_enable="YES" pdns_enable="YES"
Kissé szerkesszük meg a pdns.conf állományt:
master=yes webserver=yes webserver-address=192.168.2.3 webserver-password=rootpass webserver-port=8080 launch=ldap ldap-host=ldap.jails.javaforum.hu ldap-starttls=no ldap-basedn=ou=PowerDNS,dc=javaforum,dc=hu ldap-method=tree local-address=192.168.2.3 daemon=yes recursor=192.168.2.3:5353 lazy-recursion=yes allow-recursion=127.0.0.1/32,192.168.1.0/24,192.168.2.0/24,0.0.0.0/32
Az üres sor utáni rész egy kis magyarázatra szolgál: a DNS szolgáltatásunkba nem fér bele az internet össze neve és IP címe, ezért a DNS feladata az is, hogy ha ő maga nem tudja feloldani a kérést, akkor továbbkérdez. A PowerDNS a recursor után megadott IP címen lévő DNS szervert fogja megkérdezni az általa nem ismert címekről. Ez az IP többnyire a szolgáltatónk DNS szervere szokott lenni, mivel ez van "legközelebb", de beállíthatunk egy OpenDNS szervert is, illetve megtehetjük, hogy a saját recursor címét adjuk meg, és beállítjuk a PowerDNS Recursor-t:
allow-from=192.168.1.0/24,192.168.2.0/24 daemon=yes local-address=192.168.2.3 local-port=5353
Egyelőre ne indítsuk el a PowerDNS kiszolgálót.
5.2.6.3. Az LDAP adatok
Kezdjük el beállítani a DNS adatokat az LDAP adatbázisban, hozzuk létre a PowerDNS bejegyzését és a reverz domén két közös bejegyzését, illetve a hu TLD-t:
dn: ou=PowerDNS,dc=javaforum,dc=hu objectClass: organizationalUnit ou: PowerDNS dn: dc=arpa,ou=PowerDNS,dc=javaforum,dc=hu objectclass: top objectclass: dnsdomain2 objectclass: domainrelatedobject dc: arpa associateddomain: arpa dn: dc=in-addr,dc=arpa,ou=PowerDNS,dc=javaforum,dc=hu objectclass: top objectclass: dnsdomain2 objectclass: domainrelatedobject dc: in-addr associateddomain: in-addr.arpa dn: dc=hu,ou=PowerDNS,dc=javaforum,dc=hu objectClass: top objectClass: dcObject objectClass: domainRelatedObject objectClass: domain objectClass: dNSDomain dc: hu associatedDomain: hu nSRecord: localhost sOARecord: localhost root@localhost 1 604800 86400 2419200 86400
Majd a localhost domént és a hozzá tartozó reverz bejegyzést:
dn: dc=localhost,ou=PowerDNS,dc=javaforum,dc=hu objectClass: top objectClass: dcObject objectClass: domainRelatedObject objectClass: domain objectClass: dNSDomain dc: localhost associatedDomain: localhost nSRecord: localhost sOARecord: localhost root@localhost 1 604800 86400 2419200 86400 aRecord: 127.0.0.1 dn: dc=127,dc=in-addr,dc=arpa,ou=PowerDNS,dc=javaforum,dc=hu objectclass: top objectclass: dnsdomain2 objectclass: domainrelatedobject dc: 127 associateddomain: 127.in-addr.arpa dn: dc=0,dc=127,dc=in-addr,dc=arpa,ou=PowerDNS,dc=javaforum,dc=hu objectclass: top objectclass: dnsdomain2 objectclass: domainrelatedobject dc: 0 associateddomain: 0.127.in-addr.arpa dn: dc=0,dc=0,dc=127,dc=in-addr,dc=arpa,ou=PowerDNS,dc=javaforum,dc=hu objectclass: top objectclass: dnsdomain2 objectclass: domainrelatedobject dc: 0 associateddomain: 0.0.127.in-addr.arpa dn: dc=1,dc=0,dc=0,dc=127,dc=in-addr,dc=arpa,ou=PowerDNS,dc=javaforum,dc=hu objectclass: top objectclass: dnsdomain2 objectclass: domainrelatedobject dc: 1 ptrrecord: localhost associateddomain: 1.0.0.127.in-addr.arpa
A két LDIF fájlt az LDAP részben látható módon adhatjuk hozzá az LDAP adatbázishoz.
5.2.6.4. A PowerDNS tesztelése
A jail-t újraindítva le tudjuk tesztelni a működését:
[root@freebsd:/]$ /etc/rc.d/jail restart dns Stopping jails: dns.jails.javaforum.hu. Configuring jails:. Starting jails: dns.jails.javaforum.hu. [root@freebsd:/]$ nslookup localhost 192.168.2.3 Server: 192.168.2.3 Address: 192.168.2.3#53 Name: localhost Address: 127.0.0.1 [root@freebsd:/]$ nslookup 127.0.0.1 192.168.2.3 Server: 192.168.2.3 Address: 192.168.2.3#53 1.0.0.127.in-addr.arpa name = localhost.
Tökéletes... az LDAP alapú névszolgáltatás elkészült... ![]()
5.2.6.5. A jails névtér
Most, hogy működik egy LDAP alapú DNS szolgáltatás, célszerű az egész gépet átállítani a belső DNS szolgáltatásra is. Ehhez fel kell vennünk a jails.javaforum.hu domén alá azokat az aldoméneket, amelyeket már az egyes jail-ek host-neveként is használtunk.
Adjuk hozzá a javaforum.hu domént:
dn: dc=javaforum,dc=hu,ou=PowerDNS,dc=javaforum,dc=hu objectClass: top objectClass: dcObject objectClass: domainRelatedObject objectClass: domain objectClass: dNSDomain dc: javaforum associatedDomain: javaforum.hu nSRecord: ns.javaforum.hu mxrecord: 10 mail.javaforum.hu mxrecord: 20 mail-backup.javaforum.hu sOARecord: javaforum.hu root@javaforum.hu 1 604800 86400 2419200 86400 aRecord: 91.83.48.130 dn: dc=ns,dc=javaforum,dc=hu,ou=PowerDNS,dc=javaforum,dc=hu objectClass: top objectClass: dcObject objectClass: domainRelatedObject objectClass: domain objectClass: dNSDomain dc: ns associatedDomain: ns.javaforum.hu nSRecord: ns.javaforum.hu sOARecord: javaforum.hu root@javaforum.hu 1 604800 86400 2419200 86400 aRecord: 192.168.195.128 dn: dc=*,dc=javaforum,dc=hu,ou=PowerDNS,dc=javaforum,dc=hu objectClass: top objectClass: dcObject objectClass: domainRelatedObject objectClass: domain objectClass: dNSDomain dc: * associatedDomain: *.javaforum.hu nSRecord: ns.javaforum.hu sOARecord: javaforum.hu root@javaforum.hu 1 604800 86400 2419200 86400 aRecord: 91.83.48.130
A három bejegyzés közül az első a javaforum.hu domén lesz, a második az ns.javaforum.hu aldomén, a harmadik pedig a wildcard aldomén, amely szerint a {}.javaforum.hu{*} feloldható lesz a megadott IP címre.
Ezek után vegyük fel a jails.javaforum.hu domént, a használt aldoméneket, illetve azok reverz címeit:
dn: dc=jails,dc=javaforum,dc=hu,ou=PowerDNS,dc=javaforum,dc=hu objectClass: top objectClass: dcObject objectClass: domainRelatedObject objectClass: domain objectClass: dNSDomain dc: jails associatedDomain: jails.javaforum.hu nSRecord: ns.javaforum.hu sOARecord: javaforum.hu root@javaforum.hu 1 604800 86400 2419200 86400 aRecord: 192.168.2.254 dn: dc=logserver,dc=jails,dc=javaforum,dc=hu,ou=PowerDNS,dc=javaforum,dc=hu objectClass: top objectClass: dcObject objectClass: domainRelatedObject objectClass: domain objectClass: dNSDomain dc: logserver associatedDomain: logserver.jails.javaforum.hu nSRecord: ns.javaforum.hu sOARecord: javaforum.hu root@javaforum.hu 1 604800 86400 2419200 86400 aRecord: 192.168.2.1 dn: dc=ldap,dc=jails,dc=javaforum,dc=hu,ou=PowerDNS,dc=javaforum,dc=hu objectClass: top objectClass: dcObject objectClass: domainRelatedObject objectClass: domain objectClass: dNSDomain dc: ldap associatedDomain: ldap.jails.javaforum.hu nSRecord: ns.javaforum.hu sOARecord: javaforum.hu root@javaforum.hu 1 604800 86400 2419200 86400 aRecord: 192.168.2.2 dn: dc=dns,dc=jails,dc=javaforum,dc=hu,ou=PowerDNS,dc=javaforum,dc=hu objectClass: top objectClass: dcObject objectClass: domainRelatedObject objectClass: domain objectClass: dNSDomain dc: dns associatedDomain: dns.jails.javaforum.hu nSRecord: ns.javaforum.hu sOARecord: javaforum.hu root@javaforum.hu 1 604800 86400 2419200 86400 aRecord: 192.168.2.3 dn: dc=192,dc=in-addr,dc=arpa,ou=PowerDNS,dc=javaforum,dc=hu objectclass: top objectclass: dnsdomain2 objectclass: domainrelatedobject dc: 192 associateddomain: 192.in-addr.arpa dn: dc=168,dc=192,dc=in-addr,dc=arpa,ou=PowerDNS,dc=javaforum,dc=hu objectclass: top objectclass: dnsdomain2 objectclass: domainrelatedobject dc: 168 associateddomain: 168.192.in-addr.arpa dn: dc=2,dc=168,dc=192,dc=in-addr,dc=arpa,ou=PowerDNS,dc=javaforum,dc=hu objectclass: top objectclass: dnsdomain2 objectclass: domainrelatedobject dc: 2 associateddomain: 2.168.192.in-addr.arpa dn: dc=1,dc=2,dc=168,dc=192,dc=in-addr,dc=arpa,ou=PowerDNS,dc=javaforum,dc=hu objectclass: top objectclass: dnsdomain2 objectclass: domainrelatedobject dc: 1 ptrrecord: logserver.jails.javaforum.hu associateddomain: 1.2.168.192.in-addr.arpa dn: dc=2,dc=2,dc=168,dc=192,dc=in-addr,dc=arpa,ou=PowerDNS,dc=javaforum,dc=hu objectclass: top objectclass: dnsdomain2 objectclass: domainrelatedobject dc: 2 ptrrecord: ldap.jails.javaforum.hu associateddomain: 2.2.168.192.in-addr.arpa dn: dc=3,dc=2,dc=168,dc=192,dc=in-addr,dc=arpa,ou=PowerDNS,dc=javaforum,dc=hu objectclass: top objectclass: dnsdomain2 objectclass: domainrelatedobject dc: 3 ptrrecord: dns.jails.javaforum.hu associateddomain: 3.2.168.192.in-addr.arpa
Az LDIF felvitele után ellenőrizzük le a működést, természetesen többé nem kell újraindítani a dns jail-t, hiszen az LDAP-ból azonnal ki tudja olvasni az újabb adatokat:
[root@dns:~]$ nslookup dns.jails.javaforum.hu 192.168.2.3 Server: 192.168.2.3 Address: 192.168.2.3#53 Name: dns.jails.javaforum.hu Address: 192.168.2.3 [root@dns:~]$ [root@dns:~]$ nslookup 192.168.2.3 192.168.2.3 Server: 192.168.2.3 Address: 192.168.2.3#53 3.2.168.192.in-addr.arpa name = dns.jails.javaforum.hu.
Tökéletes... haladjunk tovább.
5.2.6.6. Meglévő jail-ek beállítása
Mivel most már van egy jól működő névszolgáltatásunk, vegyük fel az összes jail-ben a /etc/resolv.conf fáljba a helyi DNS szerverünket (ne felejtsük ezt beállítani az újonnan létrehozott jail-ek fájlrendszerében, illetve a template fájlrendszerében se):
search . nameserver 192.168.2.3
Próbaképpen újraindíthatjuk a szervert, hogy mindent rendben megtalál-e, s elindulnak-e rendesen az eddig beállított jail-ek. Ezek után – ha szeretnénk publikus névszolgáltatást, akkor hozzá kell adnunk a /etc/ipnat.rules állományhoz az 53-as portot és a jail IP címét:
rdr bge0 91.83.48.130/32 port 53 -> 192.168.2.3 port 53 tcp/udp
Majd ezt a változást az ipnat tudomására kell hoznunk:
[root@freebsd:~]$ /etc/rc.d/ipnat reload 4 entries flushed from NAT table 6 entries flushed from NAT list
Előző fejezet Tartalomjegyzék Következő fejezet
Auth Gábor auth.gabor@javaforum.hu
