Opened 9 years ago

Last modified 8 years ago

#5670 enhancement assigned

Support issuing EDNS0 queries

Reported by: Jean-Paul Calderone Owned by: Richard Wall
Priority: normal Milestone: EDNS0
Component: names Keywords: edns
Cc: Branch: branches/edns-resolver-5670
branch-diff, diff-cov, branch-cov, buildbot
Author: rwall


EDNS0 addresses some limitations of the DNS protocol. The Twisted Names client should issue queries using EDNS0 instead of plain DNS.

Change History (3)

comment:1 Changed 8 years ago by Richard Wall

Milestone: EDNS0

comment:2 Changed 8 years ago by Richard Wall

Author: rwall
Branch: branches/edns-resolver-5670

(In [40840]) Branching to 'edns-resolver-5670'

comment:3 Changed 8 years ago by Richard Wall

Owner: set to Richard Wall
Status: newassigned

See wiki:EDNS0#a5670client.EDNSResolverFixedUDPPayloadSize

Start with a basic EDNSResolver with a fixed UDP payload size and which only does TCP fallback.


  1. An implementation of t.i.interfaces.IResolver which sends EDNS(0) queries by default.
    • Wraps client.Resolver
    • Supplies an EDNSMessage factory to allow setting EDNS specific fields for all queries.
  2. Get / set AD, CD
  3. Get / set DO field. Default to "unset"
  4. Get / set VERSION. Default to 0.
  5. Get / set maximum UDP payload size.
  6. Detect servers which do not support EDNS(0) and fall back.
    1. ONLY fallback if DO is "unset"
    2. non-EDNS UDP query
    3. TCP query


  1. We will not implement an API for manipulating OPT variable fields at this stage. See "Variable EDNS0 Option Codes" below.
Note: See TracTickets for help on using tickets.