summaryrefslogtreecommitdiff
path: root/README.md
blob: 1541c8eca4781e575436498ec7b2007ca85a7e52 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# he-dyndns
This code is a shell-based dynamic DNS client for Hurricane Electric's
dns.he.net service. This code is designed to be maximally portable
using common Linux/BSD commands and avoid Perl, Python, etc. In its
default mode, it updates one or more FQDNs with the IP address that
dns.he.net detects as the source request.

# Installation
There is really nothing to install. Copy he-dyndns somewhere useful
such as /usr/local/bin.

# Configuration
The only configuration file/item is if you want to use the file
/etc/he-dns-secret to contain the key for authenticating to
dns.he.net. Otherwise, you can provide it on the command line with the
**-s** option.

The **/etc/he-dns-secret** file is sourced into the Bash environment by the
script. It can contain any shell code that can execute when being called with
a "source" function. The only key thing that matters is that the variable
CODE is defined by the script. Since this file will be sourced into the
program, ensure proper security is applied to this file.

# Runtime Options
**he-dyndns** takes the following options:

## Requied Options
- **-4**: Update the IPv4 "A" record for the FQDN(s)
- **-6**: Update the IPv6 "AAAA" record for the FQDN(s).
- **-d**: One or more fully-qualified host entries for the domain separated by commas

Note that one or both of -4 and -6 must be specified for the script to
actually do anything. 

## Optional Options
- **-s**: The secret key for updating the entries

Any other unsupported option or no options will print a usage message

# Return Values
Returns 0 on success or 1 on failure. Failure message returns the exact error
from dyn.dns.he.net, no more and no less.

# Usage
This script is designed to be called from a Cron entry or another script. An
example usage:

```
# /usr/local/bin/he-dyndns -46 -s SECRETKEY -d foo.example.com,bar.example.com
```