[dnssd] My implementation of DNS service registration spec

Toke Høiland-Jørgensen <toke@toke.dk> Wed, 19 July 2017 14:48 UTC

Return-Path: <toke@toke.dk>
X-Original-To: dnssd@ietfa.amsl.com
Delivered-To: dnssd@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 95FF412FEE2 for <dnssd@ietfa.amsl.com>; Wed, 19 Jul 2017 07:48:33 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.001
X-Spam-Level:
X-Spam-Status: No, score=-2.001 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=toke.dk
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id XbbPmDnCEeed for <dnssd@ietfa.amsl.com>; Wed, 19 Jul 2017 07:48:31 -0700 (PDT)
Received: from mail.toke.dk (mail.toke.dk [52.28.52.200]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 1B0B712F268 for <dnssd@ietf.org>; Wed, 19 Jul 2017 07:48:31 -0700 (PDT)
From: Toke =?utf-8?Q?H=C3=B8iland-J=C3=B8rgensen?= <toke@toke.dk>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=toke.dk; s=20161023; t=1500475707; bh=8Ycx1hStfhZsMgJrqkeO/+bWfeQuLvffobtfCirvbAQ=; h=From:To:Subject:Date:From; b=n/I+9RgAV5ecQm9zfHxWxIJl9x3Vl1R/8ayp6zJcYbBy3Ej+Wmbv8CmO3dDfcBFyS 8VnCqTR7zL6gw1EiyQkGsnwql/EVa3vJSJSrXxPyz6CmXoFrAZdh1K8OxBaz8S5qDt m2C5koALnOcJUE1v3LTK1Z7UkoGKU2bb6k7or0pLRbXg+n5MUMxO1WbipEzue2quJJ 23zxzzyrNizxTeb9HmHQs4q0BrhY+IqV52KRwO5Ospz0JR22P/ZROsQep0DltlciSv o4VlTz7wmPluhQ4pORu9PvQnacZYmlDv8Rprusap9h5GVK4OCT8qzGXbjX07sRe14G nsut12omEXTow==
To: dnssd@ietf.org
Date: Wed, 19 Jul 2017 16:48:23 +0200
X-Clacks-Overhead: GNU Terry Pratchett
Message-ID: <87bmogo53c.fsf@toke.dk>
MIME-Version: 1.0
Content-Type: text/plain
Archived-At: <https://mailarchive.ietf.org/arch/msg/dnssd/zFsaYeTJALHcXa1b6SexasAY4DQ>
Subject: [dnssd] My implementation of DNS service registration spec
X-BeenThere: dnssd@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: "Discussion of extensions to DNS-based service discovery for routed networks." <dnssd.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/dnssd>, <mailto:dnssd-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/dnssd/>
List-Post: <mailto:dnssd@ietf.org>
List-Help: <mailto:dnssd-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/dnssd>, <mailto:dnssd-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 19 Jul 2017 14:48:34 -0000

Hi everyone

This is the (partial) implementation of draft-sctl-service-registration
I was talking about:

https://github.com/tohojo/nsregd

The README file has a few more details on how it's supposed to work. I
also wrote a blog post about how I'm using it in my network:
https://blog.tohojo.dk/2017/06/naming-and-service-discovery-on-a-routed-ipv6-network.html

These are the current differences between the implementation and the
draft:

- My implementation overloads the TTL value (in the message from the
  client to the registration server) instead of using the "Update
  Leases" specified in the draft

- The client uses a different SRV lookup to find the registration server
  ( _nsreg._tcp.<zone> instead of _dns-update._udp.<zone>)

- The registration server only speaks TCP (to avoid spoofing)

- I don't implement the sleep proxy (Section 4 of the draft)

- Server only allows A and AAAA records (and will optionally generate
  reverse PTRs).

I'm planning to update the implementation to conform to the draft (now
that I'm aware that it exists). I'll post a separate email with a review
of the draft and some discussion points.

-Toke