Portál AbcLinuxu, 26. dubna 2024 05:52


Dotaz: Nefunguje notify v bindu pro externí zóny

26.1.2012 21:53 abc.cba
Nefunguje notify v bindu pro externí zóny
Přečteno: 174×
Odpovědět | Admin
Dobrý večer. Mám strašné problémy s notifikacemi u named serverů. Používám 2 pohledy: internal pro definici vnitřních zón a external pro definici vnějších zón. Pokud tu samou zónu přesunu z external do internal, pak notifikace fungují bez problému. Zónový soubor pro doménu pokus.cz, který má jménné servery ns1.pokus.cz a ns2.pokus.cz (jejichž IPčka jsou uvedeny jako A záznamy v tom daném souboru) funguje bez problému a notify posílá. Problém je se zónovým souborem, kde mám NS servery "externí" (např. ns2.svete.cz, kde A záznam ns2.svete.cz je někde venku). Pokud do konfigurace zóny na primáru přidám also-notify s ip adresou daného ns serveru, tak to začne fungovat. Vůbec tohle chování nechápu, chápal bych to jako problém resolvování NS serveru (který teda resolvovatelný normálně je), ale nesedí mi tam, že po přesunutí do internal zón to začne fungovat. Naopak kdyby to byl problém špatných klíčů, tak nefungují v externalu zóny s IPčkama ns serverů viz. ns2.pokus.cz). Podstatné části konfigurace obou serverů:
view "internal" {
	match-clients { key "transfer-internal"; !key "transfer-external"; 192.168.0.0/16; 127.0.0.1; };
	recursion yes;

	zone "." IN {
		type hint;
		file "named.ca";
	};

	include "/etc/named.rfc1912.zones";
	include "/etc/named.internal.zones";
};

view "external" {
	match-clients { !key "transfer-internal"; key "transfer-external"; any; };
	recursion no;

	zone "." IN {
		type hint;
		file "named.ca";
	};

        include "/etc/named.external.zones";
};
Podstatné části konfigurace masteru:
server ip.adresa.sekundaru {
        keys { "transfer-external"; };
};

zone "domena.cz" IN {
        type master;
        file "external/domena.cz";
        notify yes;
        allow-transfer {
                key "transfer-external";
        };
        allow-update { none; };
};
Podstatné části konfigurace masteru:
server ip.adresa.primaru {
        keys { "transfer-external"; };
};


zone "domena.cz" IN {
        type slave;
        file "external/domena.cz";
        notify no;
        masters { ip.adresa.primaru; };
};
V čem mám chybu?
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

27.1.2012 04:22 abc.cba
Rozbalit Rozbalit vše Re: Nefunguje notify v bindu pro externí zóny
Odpovědět | | Sbalit | Link | Blokovat | Admin
Tak jsem oddebugoval co se dalo a nic zajímavého v logu stejně není. Jen u internal zón za "sending notifies" následuje "sending notify to", kdežto u external zón je jen "sending notifies". Proč tomu tak je v logu není.
27.1.2012 04:51 abc.cba
Rozbalit Rozbalit vše Re: Nefunguje notify v bindu pro externí zóny
Asi jsem objevil příčinu problému. Pro externí svět dns neresolvuje jiné než svoje domény: "view external: query failed (SERVFAIL) for ns1.domena.cz/IN/A at query.c:4648". Problém je že vůbec netuším proč. Pro internal to funguje a má to stejné nastavení jako view external (dokonce jsem tam povolil i rekurzi aby to bylo stejné a stejně nefunguje).
27.1.2012 09:07 abc.cba
Rozbalit Rozbalit vše Re: Nefunguje notify v bindu pro externí zóny
Tak konečně s pomocí wiresharku jsem se dostal k jádru pudla. Na 1. sekundárním dns serveru totiž ještě není nastavený klíč a 1. sekundární server je rovněž primárním pro dns A záznam primárního a 2. sekundárního. Proto když se primár dotazuje na dns jméno 2. sekundáru, tak zjistí, že ta zóna leží na 1. sekundáru, ale pro ten má podle konfiguráku použít klíč. Jenže ten 1. sekundár nezná a dotaz tak selže, proto pak nefunguje ani 2. sekundár. Je to docela zamotané, ale prosil bych o konkrétní radu: jak nastavit bind server, aby pro notifikace a transfery používat TSIG klíč, ale pro normální dotazy nikoliv? Direktiva "server" platí jak pro notifikace, transfery, tak bohužel pro normální query.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.