descriptionupdate and synchronize delegations
last changeThu, 21 Nov 2019 19:17:02 +0000 (19:17 +0000)

Superglue: automatically synchronize DNS delegations

Superglue ensures your domain's delegation is correct.

Using a registry or registrar API, it updates the delegation in your parent zone so that it is consistent with the contents of your child zone.

The name comes from superordinate + glue, though of course superglue updates NS and DS records as well.

Superglue has a separate program for talking to each API. All the programs work in a consistent manner. Currently superglue includes clients for:

JANET (forward and reverse DNS)
RIPE (reverse DNS)

Superglue just deals with DNS delegations. It does not handle other aspects of domain registration, such as renewals or updating contact details.


You can run superglue from a git checkout. (There is not yet a way to install superglue in a standard location.)

Run make to do the build and setup tasks. This downloads a few Perl modules and a copy of CasperJS.

For superglue-janet you will also need PhantomJS 1.9. The version that comes with Ubuntu 14.04 is suitable.

Input format

Every superglue program reads delegation records in a subset of standard RFC 1035 master file format. TTLs are ignored; $ directives, \ escapes, "strings", and () continuations are not supported.

The input can contain NS records, DNSKEY records, or both. The owner name of these records must match the zone. The default owner and $ORIGIN are set to the zone name so you can abbreviate the input using omitted or unqualified domain names in the standard way.

If the NS RRset or DNSKEY RRset are missing, that part of the delegation is left alone, so it isn't possible to use superglue to delete a delegation or make a zone insecure.

If the NS record targets include hostnames at or below the zone name then glue A and/or AAAA records are required.

Login credentials

Every superglue program gets its login credentials from a file in a standard format.

Blank lines or comment lines starting with a # are ignored. Other lines have the form <keyword><space><value>.

Different superglue programs use different keywords depending on the requirements of the API they use. Most of them need user and pass credentials.


The deleget utility queries a child zone to produce delegation records that can be passed to superglue to update the delegation in the parent zone. This is useful if your DNS provisioning system can't emit the delegation records itself.


The umbrella superglue program works out how a domain was registered and therefore which sub-program should be used to update its delegation. (Not yet written.)


Gandi has an XML-RPC API for controlling all their services.


JANET do not provide an API for updating domain delegations, only a JavaScript-heavy web site The superglue-janet program uses PhantomJS and CasperJS to drive the web site using mainly its HTML id=... attributes. We hope these will be reasonably stable!


You can update the RIPE database by sending whois objects via email, by "syncupdates" https POST, or using their REST API in XML or JSON style. This uses the RIPE REST JSON API.

The syncupdates interface is nice and simple, but there isn't a corresponding authenticated query API - RIPE whois only offers insecure connections. The REST APIs both have an ugly way of representing object attributes, like name=nserver instead of But apart from that they are OK.

2019-11-21 Tony Finchsuperglue-mythic-beasts: update nameservers master
2019-11-21 Tony Finchsuperglue-mythic-beasts: eliminate code duplication
2019-11-21 Tony Finchsuperglue-mythic-beasts: contact updates are getting...
2019-11-20 Tony Finchsuperglue-janet: generally working OK again
2019-11-20 Tony Finchsuperglue-ripe: preen AUTHORS section
2019-11-20 Tony FinchSuperglue::Contact: correct name for export list
2019-11-20 Tony FinchSuperglue::WebDriver: minor fixes
2019-11-20 Tony FinchSuperglue::Restful: better fix for the DELETE problem
2019-11-20 Tony FinchSuperglue/*: preen documentation
2019-11-20 Tony FinchSuperglue::WebDriver: overhaul mostly now done
2019-11-20 Tony FinchSuperglue::Restul: utility method for pretty-printing...
2019-11-20 Tony FinchSuperglue::Restful: un-break destructor
2019-11-20 Tony FinchSuperglue: neater access to login fields
2019-11-15 Tony FinchSuperglue::WebDriver: starting to Moo::Roleify
2019-11-15 Tony Finchsuperglue-ripe: document login credentials
2019-11-15 Tony Finchsuperglue: fix webdriver command line option synopsis
2 weeks ago master