In message <20100316234500.ga99...@rwpc12.mby.riverwillow.net.au>, John Marshal
l writes:
> On Wed, 17 Mar 2010, 09:03 +1100, Mark Andrews wrote:
> > In message <slrnhpummo.2ter.j...@rwpc12.mby.riverwillow.net.au>, John Marsh
> all 
> > writes:
> > > I don't understand this.  If the client needs an answer from
> > > 25.168.192.in-addr.arpa. and we are hosting that zone and its parent
> > > zone (both unsigned, both in our internal view), why are we looking
> > > higher for DS records?
> > 
> > Because you have a trust anchor configured at or above the query name and
> > the validator need to see a DS or non existance proof (NSEC/NSEC3) for the
> > DS which indicates a secure to insecure transition.
> > 
> > Are your trust anchors up to date?
> 
> I haven't changed my dlv.isc.org anchor since I configured DNSSEC on the
> server about 18 months ago: it matches the one published on the ISC web
> site (2008/09/21) and everything works fine for my internal view.
> 
> > > If I grant the guest clients access to the internal view, all is well.
> > > Things seem to go wobbly, unless checking is disabled, when we forward
> > > the guest view queries to the internal view.
> 
> So, this seems to be where it's breaking.  Perhaps my design is just
> wrong and it "just happened to work" until either 9.7.0 or...?  It still
> works if the guest view client queries with checking disabled.  It works
> properly for internal view clients.  Does a second level of indirection
> mean that the resolver loses sight of the trust anchor?
> 
> options {
>         ...
>         dnssec-enable yes;
>         dnssec-validation yes;
>         dnssec-lookaside . trust-anchor dlv.isc.org.;
> };
> 
> trusted-keys {
>         dlv.isc.org. 257 3 5
>         ...
> };
> 
> view "internal" IN {
>         match-clients {
>                 IntNET;
>                 ! ExtStealth;
>                 ! ExtDNS;
>                 ExtNET;
>                 localhost;
>         };
>         allow-query {
>                 localhost;
                IntNET;
>                 ExtNET;
>         };
>         recursion yes;
>         ...
>         zone "168.192.in-addr.arpa" {
>                 type master;
>                 file "db/master/192.168";
>         };
> 
>         zone "25.168.192.in-addr.arpa" {
>                 type master;
>                 file "db/master/192.168.25";
>                 allow-update {
>                         key dhcp-rw.;
>                 };
>         };
> };
> 
> view "guest" IN {
>         match-clients {
>                 GstNET;
>         };
>         allow-query {
>                 GstNET;
>         };
>         recursion yes;
>         ...
>         forward only;
>         forwarders {
>                         172.25.24.16;           # self (internal)
>         };
> 
>         zone <some.others> {
>                 type forward;
>                 forward only;
>                 forwarders {
>                         203.58.93.34;           # self (external)
>                 };
>         };
> };
> 
> view "external" IN {
>         match-clients {
>                 any;
>         };
>         recursion no;
>         additional-from-cache no;
>         ...
>         zone <some.others> {
>                 type master;
>                 ...
>         };
> };
> 
> -- 
> John Marshall

It should work.  You don't have any other trusted-keys configured?

My next step would be to ask from a internal, not a guest address,
for DS 168.192.in-addr.arpa.  This eliminates one step in the chain.

You should get something like this.  Note "ad" is set in flags so this
has passed validation using dlv.isc.org as the trust anchor.

; <<>> DiG 9.7.0 <<>> +dnssec ds 168.192.in-addr.arpa
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12909
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 0, AUTHORITY: 4, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags: do; udp: 4096
;; QUESTION SECTION:
;168.192.in-addr.arpa.          IN      DS

;; AUTHORITY SECTION:
168.192.in-addr.arpa.   7434    IN      RRSIG   NSEC 5 4 10800 20100326192205 
20100316192205 44093 192.in-addr.arpa. 
MhwZmez+ZUdVRFKyhzlKjiyj08rbs2gjxpCV/yacJDjXthZoDtYtq6Ml 
MUsr/Ac4qbnjIOjGcfr3QHndDblco/GFGDXgscypspyoJ2yRl+i8n+p4 
Vp4nnpVkwaQObtQRZQWSOB2sqAzmGdiYqEnAK3rUj6nufzsBJOrzYjvX bzQ=
168.192.in-addr.arpa.   7434    IN      NSEC    0.169.192.in-addr.arpa. NS 
RRSIG NSEC
192.in-addr.arpa.       7434    IN      SOA     chia.arin.net. 
dns-ops.arin.net. 2010031617 1800 900 691200 10800
192.in-addr.arpa.       7434    IN      RRSIG   SOA 5 3 86400 20100326192205 
20100316192205 44093 192.in-addr.arpa. 
PsLYw1RyLT2xUm41c78zq89219xxrm1WI0QSIrtnakHsWkqBsXn9DXG4 
v2KbrjdCJglIVHEcJhrZ/GBNsq0ZIXT/GeskMRy/EfHFi8yVwGx/FCs5 
H1FUtYs+1DOjeGQnv2UOiQfYMxp1yyxEHah9zzV6QqYpoCUVL7J3E025 eZc=

;; Query time: 2 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Wed Mar 17 10:56:12 2010
;; MSG SIZE  rcvd: 502

If it doesn't work I would ask for NS 192.in-addr.arpa, then DNSKEY
192.in-addr.arpa, then DLV 192.in-addr.arpa.dlv.isc.org, then DNSKEY
dlv.isc.org until you find the break point.

Also ask the same queries from a guest address.  

Can you turn on query logging also while testing.  The queries from the guest
view to the external view should have DO set which will be logged as "D".

Something like this

17-Mar-2010 10:56:12.263 client 127.0.0.1#61281: view default: query: 
168.192.in-addr.arpa IN DS +ED (127.0.0.1)

Mark
-- 
Mark Andrews, ISC
1 Seymour St., Dundas Valley, NSW 2117, Australia
PHONE: +61 2 9871 4742                 INTERNET: ma...@isc.org
_______________________________________________
bind-users mailing list
bind-users@lists.isc.org
https://lists.isc.org/mailman/listinfo/bind-users

Reply via email to