Opened 3 years ago

Last modified 12 months ago

#5670 enhancement assigned

Support issuing EDNS0 queries

Reported by: exarkun Owned by: rwall
Priority: normal Milestone: EDNS0
Component: names Keywords: edns
Cc: Branch: branches/edns-resolver-5670
(diff, github, buildbot, log)
Author: rwall Launchpad Bug:

Description

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 12 months ago by rwall

  • Milestone set to EDNS0

comment:2 Changed 12 months ago by rwall

  • Author set to rwall
  • Branch set to branches/edns-resolver-5670

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

comment:3 Changed 12 months ago by rwall

  • Owner set to rwall
  • Status changed from new to assigned

See wiki:EDNS0#a5670client.EDNSResolverFixedUDPPayloadSize

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

Requirements:

  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

Exclusions:

  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.