From 4de47397c4dbc4814cb07c9ec7c19137b7dae0ec Mon Sep 17 00:00:00 2001 From: cn Date: Sat, 27 Apr 2013 22:56:25 +0200 Subject: [PATCH] Update README --- README.md | 37 ++++++++++++++++++++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 36123df..e2dfdf2 100644 --- a/README.md +++ b/README.md @@ -39,11 +39,14 @@ updater: email_addr: "admin.example.org." # user database with hostnames a user is allowed to update users: + # 'foo' is username, 'secret' the password foo: password: "secret" hosts: - foo.example.org - bar.example.org + test: + password: "ihavenohosts" ``` Run dyndnsd.rb by: @@ -52,7 +55,7 @@ Run dyndnsd.rb by: ## Using dyndnsd.rb with [NSD](https://www.nlnetlabs.nl/nsd/) -NSD is a nice opensource, authoritative-only DNS server that reads BIND-style zone files (and converts them into it's own database) and has a simple config file. +NSD is a nice opensource, authoritative-only, low-memory DNS server that reads BIND-style zone files (and converts them into it's own database) and has a simple config file. A feature NSD is lacking is the [Dynamic DNS update](https://tools.ietf.org/html/rfc2136) functionality BIND offers but one can fake it using the following dyndnsd.rb config: @@ -72,6 +75,7 @@ updater: dns: "dns.example.org." email_addr: "admin.example.org." # specify additional raw BIND-style zone content + # here: an A record for dyn.example.org itself additional_zone_content: "@ IN A 1.2.3.4" users: foo: @@ -80,6 +84,37 @@ users: - foo.example.org ``` +Start dyndnsd.rb before NSD to make sure the zone file exists else NSD complains. + +## Using dyndnsd.rb with X + +Please provide ideas if you are using dyndnsd.rb with other DNS servers :) + +## Advanced topics + +### Update URL + +The update URL you want to tell your clients (humans or scripts ^^) consists of the following + + http[s]://[USER]:[PASSWORD]@[DOMAIN]:[PORT]/nic/update?hostname=[HOSTNAMES]&myip=[MYIP] + +where: + +* the protocol depends on your (webserver/proxy) settings +* USER and PASSWORD are needed for HTTP Basic Auth and valid combinations are defined in your config.yaml +* DOMAIN should match what you defined in your config.yaml as domain but may be anything else when using a webserver as proxy +* PORT depends on your (webserver/proxy) settings +* HOSTNAMES is a required list of comma separated FQDNs (they all have to end with your config.yaml domain) the user wants to update +* MYIP is optional and the HTTP client's address will be used if missing + +### SSL, multiple listen ports + +Use a webserver as a proxy to handle SSL and/or multiple listen addresses and ports. DynDNS.com provides HTTP on port 80 and 8245 and HTTPS on port 443. + +### Init scripts + +Coming soon for Debian 6. + ## License dyndnsd.rb is licensed under the Apache License, Version 2.0. See LICENSE for more information.