Re: [DNSOP] SVCB without A/AAAA records at the service name

Martin Thomson <> Wed, 20 January 2021 00:40 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id BA0EB3A0AC4 for <>; Tue, 19 Jan 2021 16:40:54 -0800 (PST)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -2.1
X-Spam-Status: No, score=-2.1 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_BLOCKED=0.001, RCVD_IN_MSPIKE_H2=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: (amavisd-new); dkim=pass (2048-bit key) header.b=j/aSX8OF; dkim=pass (2048-bit key) header.b=IHdL0+0X
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id hEETQn4Z9LBC for <>; Tue, 19 Jan 2021 16:40:52 -0800 (PST)
Received: from ( []) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id E863C3A0A63 for <>; Tue, 19 Jan 2021 16:40:52 -0800 (PST)
Received: from compute1.internal (compute1.nyi.internal []) by mailout.west.internal (Postfix) with ESMTP id B7781161A; Tue, 19 Jan 2021 19:40:51 -0500 (EST)
Received: from imap10 ([]) by compute1.internal (MEProxy); Tue, 19 Jan 2021 19:40:51 -0500
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; h=mime-version:message-id:in-reply-to:references:date:from:to :cc:subject:content-type; s=fm1; bh=AE4Is2nnmRj/lwouqvaA333IYEKb foZ7w49/IKWVNFU=; b=j/aSX8OFNdEr3mZanjsfKVjefFS6voTwZ44phcr/HHFc 26OwHHJiZa+ACGBJnYanZRsXNKJHSKJeUmdwpPmTAGKTSzx6jl+s1XH5DIWH5SPW wWYb7dJP8rxuAG7PaV9dKiM8P4G2IftTksCClyA4LFx7LWJXD7g8T0As5/mdRk2s aRgBYU0mUUwJc6nG1jvSUCWjhS9JUcUB6oBQDS3MBDpMnjmwNUOhhtQxAjFWBZ2A ybe3rzulslmixBNzVBLzbE3vLEvnc7+YuFTrGd+WSa487ZBvFN4+WUNR8IUrpB2P zgAsBEyONOy520z13lKkkNvehT4Mk71R9PuB326hFg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=; h=cc:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-me-proxy :x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm1; bh=AE4Is2 nnmRj/lwouqvaA333IYEKbfoZ7w49/IKWVNFU=; b=IHdL0+0XWCjCD8GHu3eLbx Bmg2JKHAcwUP0rml7qdv8wauzhVAu8xfi0ol+jVD2vOsn/R58P0YmMvkVWVbP3r4 rYsRMLT4Fmtu4D5C1twGYs6ERFAnwqYq04ZBCBa4FuqpbFjDvdvtURxZidk6Zoym 1uisTp+ZQ5miV0L0yi1KFiIIg12/SV62BMu5mUtuGOi9TkktWMm/6vbApmmf+h3t 5W5zHnIIYbPwt97RNHOIjly/7jzJM/+FYlOAxEitivfJb7U6dr9hoqNkbjtUygCc wPw9fDDv7+0qNkCXPoYqYSl8PUkJwbujjHOyTwrHaw1fYB21vDl51ST36cc4g6eA ==
X-ME-Sender: <xms:EnwHYL4JlBcmWLF5x14JB6zcV7JUW2PKX-NHKCIPMVRDGif7I5PEFw> <xme:EnwHYA725hET-TSkkd1KeUrtV6S3hp47uUZ9C6sF2aW6ex0YRPIMNATbZ89JHM1_j qBWCXi6-n-Of30yggs>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduledruddugddviecutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecunecujfgurhepofgfggfkjghffffhvffutgesthdtre dtreertdenucfhrhhomhepfdforghrthhinhcuvfhhohhmshhonhdfuceomhhtsehlohif vghnthhrohhphidrnhgvtheqnecuggftrfgrthhtvghrnhepkeetueeikedtkeelfeekve fhkeffvedvvefgkefgleeugfdvjeejgeffieegtdejnecuvehluhhsthgvrhfuihiivgep tdenucfrrghrrghmpehmrghilhhfrhhomhepmhhtsehlohifvghnthhrohhphidrnhgvth
X-ME-Proxy: <xmx:E3wHYCewrxALRFGd3yX-Wg38Iq7E-t5tZsWkPA-e_vyYDdzdQjbB9A> <xmx:E3wHYMJ26G3wYlm2g2CEU7UOPKahwBym1MxYIy1EsLDMos5YxgHkmQ> <xmx:E3wHYPKgyJlcEh-RK3fz5TUzFcH6rthpgCYTFtxj8NpdNMCirimsRg> <xmx:E3wHYKmcYnOpWytUIRMPK9rX2Omc3tFARtJUO33raQpNc-9H9WQgVw>
Received: by mailuser.nyi.internal (Postfix, from userid 501) id EAC094E005D; Tue, 19 Jan 2021 19:40:50 -0500 (EST)
X-Mailer: Webmail Interface
User-Agent: Cyrus-JMAP/3.5.0-alpha0-45-g48392560e8-fm-20210104.001-g48392560
Mime-Version: 1.0
Message-Id: <>
In-Reply-To: <>
References: <> <> <> <> <> <>
Date: Wed, 20 Jan 2021 11:40:31 +1100
From: Martin Thomson <>
To: Ben Schwartz <>
Cc: dnsop <>
Content-Type: text/plain
Archived-At: <>
Subject: Re: [DNSOP] SVCB without A/AAAA records at the service name
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: IETF DNSOP WG mailing list <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Wed, 20 Jan 2021 00:40:55 -0000

On Wed, Jan 20, 2021, at 09:17, Ben Schwartz wrote:
> As I noted in that discussion, the client generally doesn't know in 
> advance that they aren't needed.  

I am asserting that the client very much knows.  Indeed, it has to know.  If we define a new protocol that relies on SVCB and that protocol is able to use SVCB exclusively (which would be a good thing in my view, all this parallel DNS querying is unnecessary, even if the DNS protocol is pretty good at it), then a client can very much know.

> Another thing I like about the arrangement in #288 is that it 
> simplifies a protocol-independent app/library boundary.  The app can 
> say "SVCBQuery(hostname, prefixes)" and get back a fully resolved 
> object like {svcbEntries: [{...}, ...], hostIPs: [...]}.  

I'm suggesting that the interface might be a little wider.  If the interface is provided with a scheme, them the library might be able to lookup the scheme and know whether A/AAAA is needed, but it might be better to have a very different interface for those protocols that might need fallback as opposed to those that don't.

A protocol might genuinely need SVCB.  If additional SVCB information is critical to the operation of the protocol (think ECH here, but there might be other reasons for this), then the API might look like (eliding the attr-leaf and prefixing stuff):

svcb.query(name) -> svcbEntry[] // where the API fills in an address (or addresses) for each svcbEntry

This is far more ergonomic for something that doesn't care about A/AAAA.  And less wasteful.  If a fallback is possible, then you get something very different, which requires additional logic to handle:

svcb.query_with_fallback(name) -> Either<svcbEntry[], address[]>