Changes between and of Initial VersionVersion 4Ticket #6475


Ignore:
Timestamp:
06/18/13 11:37:10 (8 years ago)
Author:
Richard Wall
Comment:

Updated summary and description so that this ticket is specifically about the suffix problem.

I'll raise new tickets for the other issues and link them to this ticket.

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #6475

    • Property Summary changed from twistd dns returns NXDomain for valid records when multiple zone names share a common suffix or parent domain to FileAuthority._lookup incorrectly returns AuthoritativeDomainError for non-subdomain names which happen to share the same suffix as the zone (eg the-example.com and example.com)
    • Property Owner set to Richard Wall
    • Property Branch changed from to branches/stricter-nxdomain-check-6475
    • Property Author changed from to rwall
  • Ticket #6475 – Description

    initial v4  
    1 twistd dns loads pyzones and bindzones in the order they are provided
    2 on the command line.
    3 
    4 If you load these three zones (each containing a www IN A record) in
    5 this order:
    6  1. example-domain.com
    7  2. long-example-domain.com
    8  3. subdomain.example-domain.com
    9 
    10 And query for www.long-example-domain.com you get NXDomain.
    11 
    12 If you instead load long-example-domain.com first, the query will
    13 succeed.
    14 
    15 The same problem occurs for subdomains.
    16 
    17 Part of the problem is that t.n.authority.FileAuthority._lookup does
     1t.n.authority.FileAuthority._lookup does
    182the following check in source:trunk/twisted/names/authority.py#L132
    193{{{
     
    237Instead it should test for a common tail in a sequence of domain name
    248labels.
    25 
    26 Additionally, in the current ResolverChain system - where all zones
    27 are queried in sequence, until a result is found - I think subdomain
    28 zones need to be queried before their parent zones.
    29 
    30 This applies to the whole sequence of BindAuthority, PySourceAuthority
    31 and SecondaryAuthorityService that get loaded in t.n.tap.py. and
    32 passed t.n.server.DNSServerFactory.