dns konfig hiba átjárón

Fórumok

sziasztok!

szükségen van egy olyan "hálózatra", amin egy linux az átjáró (két hálókártya a külső és belső hálózatára rendesen felcímezve). kell rá egy dns, hogy a belső szolgáltatások megtalálják a dolgaikat. a kliensek nem kell, hogy kilássanak (még) a saját hálójukon kívül, de az átjáró lássa a kinti és benti "világot" hibátlanul.

a probléma az, hogy a zónafileok, konfigok megírása, resolv és társai után nem jó eredményt ad ki hostnévre keresve. ha viszont a resolv.conf valótlant tartalmaz, akkor jót (!). külön fűszer, hogy az átjáró nevét feloldva a külső ipcímet adja vissza, mintha csak a host fileban nézelődne, vagy nem is tudom. a könfigállományok részletei a következők:

resolv.conf:

search domain
nameserver 127.0.0.1

host.conf

order bind, hosts
multi on

nsswitch.conf

...
hosts: dns files
...

zonafile:

$TTL 86400
@ IN SOA dns.domain. (
2008121003 ; Serial
28800 ; Refresh
7200 ; Retry
604800 ; Expire
86400 ) ; Negative Cache TTL
;
@ IN NS dns.domain.
;-------------------------------------------------------;
proba IN A 10.0.0.1 ;
dns IN CNAME proba ;
www IN CNAME proba ;
;-------------------------------------------------------;
munka IN A 10.0.0.2
;-------------------------------------------------------;

a reverse file-t nem teszem ide, egyelőre nekem elég lenne, ha érteném miért nem jó :)

egy-két nslookup:

> server
Default server: 127.0.0.1
Address: 127.0.0.1#53
> dns
Server: 127.0.0.1
Address: 127.0.0.1#53

** server can't find dns: NXDOMAIN
> dns.domain
Server: 127.0.0.1
Address: 127.0.0.1#53

** server can't find dns.domain: NXDOMAIN
> dns.domain.
Server: 127.0.0.1
Address: 127.0.0.1#53

** server can't find dns.domain: SERVFAIL
>

nem tudom elégséges infót adtam-e, ha valami még segíthet megérteni a konfigot, akkor szóljatok. átnyálaztam sok bénáknak (pl. nekem) szólok forrást, könyvet, stb. de a példaállatok max annyiban tértek el, hogy más nevek szerepeltek, esetleg más idők...

a rendszer egy debianon (sarge, ha jól emlékszem) és egy ubuntu (8.10) bind9-én lett próbálva, azonos eredménnyel. gondolom szarvashibát vétek, segítsetek meglelni, mert nem látom a fától az erdőt :(

Hozzászólások

Megjegyzem, ha tényleg így néz ki a zónafájlod, akkor nem csoda, hogy nem megy, ugyanis a soa rekordban egyel kevesebb paraméter van:
> @ IN SOA dns.domain. (
> 2008121003 ; Serial

Ott a primary-dns és a serial között kéne még egy emilcím is. Hibás soa esetén rendes dns szerver nem tekinti autentkusnak az adatokat, így aztán azt nem is szolgáltatja.

Továbbmegyek, *tudtommal* a host.conf és az nsswitch.conf ugyanarra vannak, és az utóbbi a preferált, tehát már csak a biztonság kedvéért sem csinálnám meg mind a kettőt. De ez csak így első ránézésre, mélyebben nem bonyolódtam a konfigodba. Ki a franc nem látja jól a dolgokat? Honnan történik (és mivel?) a tesztelés? Honnan tudja tesztelő progi, hogy neki mostan mi a domain neve? hostname FQDN-t ad vissza vagy nem? A lekérdezésnél FQDN-t kérdezel, vagy sima hostnevet?

Ja bocs, most jobban megnéztem, és szerintem a fenti a baj, tehát:

@ IN SOA dns.domain. hostmaster.dns.domain. (
2008121003 ; Serial

formában javítsad a soa-t.

bind ujrainditas is megvolt?
es az egyeb feltett kerdeseimre a valasz?
valamint syslog-ban megnezni, hogy bind inditasakor milyen domain-ekrol beszel, milyen fajlokat vizsgal, stb. hogyan inditottad? (Lehet pl. hogy chroot-ban, es nem jo helyen vannak a zonafajlok, stb. Kicsit tobb infot a kornyezetrol.)

sorban próbáltam haladni, hogy a kérdéseidre válaszoljak, ezért nem volt még meg mindre. a binddal volt a gond, mert a restart csak reloadot csinált (fogalmam sincs miért). a stop start viszont már jó eredményt ad! valószínű, hogy a sorszámot így azonosnak hitte (úgy tudtam, hogy a reload nem olvassa újra a sorszámot, de a restart már igen).

egyelőre tehát működőképesnek tűnik. a megoldás tehát a soa rekordban volt és a restartban (ezek szerint ezért is adott egyszer félig jó eredményt, amikor volt restart a gépnek is más miatt és akkor teljesen újraolvasta a sorokat).

ja igen, a kérdéseidet most újra átfutottam, mert valóban jobb, ha pontosabban teszem fel a kérdést. ahogy nézem egy kérdésed nem volt eddig megválaszolva (a témanyitásban a többi megvolt), hogy a hostname nem fqdn-et ad vissza. de mivel a majdani dns kliensnek kell csak a feloldás, és az nem *nix, ezért nekem elég volt a dns. a tesztben szereplő próbaeszköz az nslookup volt, mint ahogy írtam és az nem kérdezgette a hostnevet, csak azt kérdezte le, amit kértem tőle.

azt hiszem így már pontos az utókornak is :)

--
xterm