twisted / twisted/twisted

twisted.names.server.DNSServerFactory should query child zones before parent zones

Open
#6,580 8 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

assigned bug names priority-normal
Dominant language
Python
Stars
6k
Forks
1.2k
Avg merge
2d 10h
Merged PRs (30d)
10

Description

wallrj's avatar @wallrj reported
Trac ID trac#6580
Type defect
Created 2013-06-18 19:55:50Z
Branch https://github.com/twisted/twisted/tree/zone-order-6580-2

twisted.names.server.DNSServerFactory (via ResolverChain), queries authorities in the order they appear in the supplied list.

If a parent zone (FileAuthority) precedes its child zones in the list, it may answer queries with NXDOMAIN or referral for names which should actually be answered by a child zone that contains the authoritative records.

DNSServerFactory should reorder its list of authorities so that child zones appear before their parent zones.

The order should be determined by the labels of the SOA names for each FileAuthority / SecondaryAuthority.

This applies to the whole sequence of BindAuthority, PySourceAuthority
and SecondaryAuthorityService that get loaded in t.n.tap.py. and
passed t.n.server.DNSServerFactory.

See ticket:6475#comment:2

Attachments:

  • by_name.py (420 bytes) - added by lukmdo on 2013-07-06 13:42:13Z - sorting using key only
  • test_names.py.patch (703 bytes) - added by lukmdo on 2013-07-06 13:44:38Z - minor, removing unrelated args
Searchable metadata
trac-id__6580 6580
type__defect defect
reporter__rwall rwall
priority__normal normal
milestone__ 
branch__branches_zone_order_6580_2 branches/zone-order-6580-2
branch_author__rwall rwall
status__assigned assigned
resolution__None None
component__names names
keywords__ 
time__1371585350000000 1371585350000000
changetime__1373359061000000 1373359061000000
version__None None
owner__rwall rwall
cc__lukmdo

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with twisted.names.server.DNSServerFactory and the authority sequence loaded in t.n.tap.py. Review the attached test_names.py.patch and by_name.py for prior attempts, then examine the listed BindAuthority, PySourceAuthority, FileAuthority, and SecondaryAuthority types. Done means child zones are queried before parent zones based on SOA-name labels, with coverage for the parent-before-child case.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
networking
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.