README.cisco
1Method 1 ------------------------------------------------------
2
3The following config will allow the Linux machine (10.1.1.2) to read
4the IP address from the DHCP interface on the Cisco router (eth0) as
5user ddclient. Since ddclient is configured with a priv level of 1 it
6cannot do anything except look at the routers stats, ip addresses,
7etc. This should be pretty harmless even if ddclient's password were
8to be discovered.
9
10This has been tested with Cisco IOS 12.1(5)T5 running on a Cisco 2621
11router.
12
13Cisco Router Config (Assuming eth0 is DHCP interface)
14-----------------------------------------------------
15user ddclient password password
16user ddclient priv 1
17ip http auth local
18ip http access-class 99
19ip http port 1021
20ip http server
21access-list 99 permit host 10.1.1.2
22
23DDClient Config
24---------------------------------------------------
25use=cisco, fw=10.1.1.1, if=eth0, fw-login=ddclient, fw-password=password
26
27
28Method 2 ------------------------------------------------------
29
30use=fw
31fw=192.168.1.1/exec/show/interfaces/CR
32fw-skip=FastEthernet0/0
33fw-login=ddclient
34fw-password=xxxxxxxx
35
README.md
1===============================================================================
2# DDCLIENT v3.9.1
3
4ddclient is a Perl client used to update dynamic DNS entries for accounts
5on many dynamic DNS services.
6
7===============================================================================
8
9Dynamic DNS services currently supported include:
10
11 DynDNS.com - See http://www.dyndns.com for details on obtaining a free account.
12 Hammernode - See http://www.hn.org for details on obtaining a free account.
13 Zoneedit - See http://www.zoneedit.com for details.
14 EasyDNS - See http://www.easydns.com for details.
15 NameCheap - See http://www.namecheap.com for details
16 ConCont - See http://www.dydns.za.net for details
17 DnsPark - See http://www.dnspark.com for details
18 DslReports - See http://www.dslreports.com for details
19 Sitelutions - See http://www.sitelutions.com for details
20 Loopia - See http://www.loopia.se for details
21 Noip - See http://www.noip.com/ for details
22 Freedns - See http://freedns.afraid.org/ for details
23 ChangeIP - See http://www.changeip.com/ for details
24 dtdns - See http://www.dtdns.com/ for details
25 nsupdate - See nsupdate(1) and ddns-confgen(8) for details
26 CloudFlare - See https://www.cloudflare.com/ for details
27 Google - See http://www.google.com/domains for details
28 Duckdns - See https://duckdns.org/ for details
29 Freemyip - See https://freemyip.com for details
30 woima.fi - See https://woima.fi/ for details
31 Yandex - See https://domain.yandex.com/ for details
32 DNS Made Easy - See https://dnsmadeeasy.com/ for details
33 DonDominio - See https://www.dondominio.com for details
34 NearlyFreeSpeech.net - See https://www.nearlyfreespeech.net/services/dns for details
35
36DDclient now supports many of cable/dsl broadband routers.
37
38Comments, suggestions and requests: use the issues on
39 https://github.com/ddclient/ddclient/issues/new
40
41The code was originally written by Paul Burry and is now hosted and maintained
42through github.com. Please check out http://ddclient.net
43
44-------------------------------------------------------------------------------
45## REQUIREMENTS:
46
47- one or more accounts from one of the dynamic DNS services
48
49- Perl 5.014 or later
50 - `Data::Validate::IP` perl library
51 - `IO::Socket::SSL` perl library for ssl-support
52 - `JSON::PP` perl library for JSON support
53 - `IO::Socket:INET6` perl library for ipv6-support
54
55- Linux or probably any common Unix system
56
57-------------------------------------------------------------------------------
58## INSTALLATION:
59
60 cp ddclient /usr/local/sbin/
61 mkdir /etc/ddclient
62 mkdir /var/cache/ddclient
63 cp sample-etc_ddclient.conf /etc/ddclient/ddclient.conf
64 vi /etc/ddclient/ddclient.conf
65 -- and change hostnames, logins, and passwords appropriately
66
67 ## For those using systemd:
68 cp sample-etc_systemd.service /etc/systemd/system/ddclient.service
69 ## enable automatic startup when booting
70 systemctl enable ddclient.service
71 ## start the first time by hand
72 systemctl start ddclient.service
73
74 ## For those using Redhat style rc files and using daemon-mode:
75 cp sample-etc_rc.d_init.d_ddclient /etc/rc.d/init.d/ddclient
76 ## enable automatic startup when booting
77 ## check your distribution
78 /sbin/chkconfig --add ddclient
79 ## start the first time by hand
80 /etc/rc.d/init.d/ddclient start
81
82 ## For those using Alpine style rc files and using daemon-mode:
83 cp sample-etc_rc.d_init.d_ddclient.alpine /etc/init.d/ddclient
84 ## enable automatic startup when booting
85 rc-update add ddclient
86 ## make sure you have perl installed
87 apk add perl
88 ## start the first time by hand
89 rc-service ddclient start
90
91 ## For those using Ubuntu style rc files and using daemon-mode:
92 cp sample-etc_rc.d_init.d_ddclient.ubuntu /etc/init.d/ddclient
93 ## enable automatic startup when booting
94 update-rc.d ddclient defaults
95 ## make sure you have perl and the required modules installed
96 apt-get install perl libdata-validate-ip-perl
97 ## if you plan to use cloudflare or feedns you need the perl json module
98 apt-get install libjson-any-perl
99 ## start the first time by hand
100 service ddclient start
101
102 ## If you are not using daemon-mode, configure cron and dhcp or ppp
103 ## as described below.
104
105-------------------------------------------------------------------------------
106## TROUBLESHOOTING:
107
108 1. enable debugging and verbose messages.
109 ``$ ddclient -daemon=0 -debug -verbose -noquiet``
110
111 2. Do you need to specify a proxy?
112 If so, just add a
113 ``proxy=your.isp.proxy``
114 to the ddclient.conf file.
115
116 3. Define the IP address of your router with ``fw=xxx.xxx.xxx.xxx`` in
117 ``/etc/ddclient/ddclient.conf`` and then try
118 ``$ ddclient -daemon=0 -query``
119 to see if the router status web page can be understood.
120
121 4. Need support for another router/firewall?
122 Define the router status page yourself with:
123 ``fw=url-to-your-router``'s-status-page
124 ``fw-skip=any-string-preceding-your-IP-address``
125
126 ddclient does something like this to provide builtin support for
127 common routers.
128 For example, the Linksys routers could have been added with:
129
130 fw=192.168.1.1/Status.htm
131 fw-skip=WAN.*?IP Address
132
133 OR
134 Send me the output from:
135 $ ddclient -geturl {fw-ip-status-url} [-login login [-password password]]
136 and I'll add it to the next release!
137
138 ie. for my fw/router I used:
139 $ ddclient -geturl 192.168.1.254/status.htm
140
141 5. Some broadband routers require the use of a password when ddclient
142 accesses its status page to determine the router's WAN IP address.
143 If this is the case for your router, add
144 fw-login=your-router-login
145 fw-password=your-router-password
146 to the beginning of your ddclient.conf file.
147 Note that some routers use either 'root' or 'admin' as their login
148 while some others accept anything.
149
150-------------------------------------------------------------------------------
151## USING DDCLIENT WITH ppp
152
153If you are using a ppp connection, you can easily update your DynDNS
154entry with each connection, with:
155
156 ## configure pppd to update DynDNS with each connection
157 cp sample-etc_ppp_ip-up.local /etc/ppp/ip-up.local
158
159Alternatively, you may just configure ddclient to operate as a daemon
160and monitor your ppp interface.
161
162-------------------------------------------------------------------------------
163## USING DDCLIENT WITH cron
164
165If you have not configured ddclient to use daemon-mode, you'll need to
166configure cron to force an update once a month so that the dns entry will
167not become stale.
168
169 ## configure cron to force an update twice a month
170 cp sample-etc_cron.d_ddclient /etc/cron.d/ddclient
171 vi /etc/cron.d/ddclient
172
173-------------------------------------------------------------------------------
174## USING DDCLIENT WITH dhcpcd-1.3.17
175
176If you are using dhcpcd-1.3.17 or thereabouts, you can easily update
177your DynDNS entry automatically every time your lease is obtained
178or renewed by creating an executable file named:
179 /etc/dhcpc/dhcpcd-{your-interface}.exe
180ie.:
181 cp sample-etc_dhcpc_dhcpcd-eth0.exe /etc/dhcpc/dhcpcd-{your-interface}.exe
182
183In my case, it is named dhcpcd-eth0.exe and contains the lines:
184
185 #!/bin/sh
186 PATH=/usr/local/sbin:/root/bin:${PATH}
187 logger -t dhcpcd IP address changed to $1
188 ddclient -proxy fasthttp.sympatico.ca -wildcard -ip $1 | logger -t ddclient
189 exit 0
190
191Other DHCP clients may have another method of calling out to programs
192for updating DNS entries.
193
194Alternatively, you may just configure ddclient to operate as a daemon
195and monitor your ethernet interface.
196
197-------------------------------------------------------------------------------
198## USING DDCLIENT WITH dhclient
199
200If you are using the ISC DHCP client (dhclient), you can update
201your DynDNS entry automatically every time your lease is obtained
202or renewed by creating an executable file named:
203 /etc/dhclient-exit-hooks
204ie.:
205 cp sample-etc_dhclient-exit-hooks /etc/dhclient-exit-hooks
206
207Edit /etc/dhclient-exit-hooks to change any options required.
208
209Alternatively, you may just configure ddclient to operate as a daemon
210and monitor your ethernet interface.
211
212-------------------------------------------------------------------------------
213
README.ssl
1Since 3.7.0, ddclient support ssl-updates
2To use ssl, put "ssl=yes" in your configuration and make sure
3you have IO::Socket::SSL.
4
5On debian, you need libio-socket-ssl-perl to have IO::Socket::SSL
6
7On alpine, you need perl-io-socket-ssl to have IO::Socket::SSL
8
9ssl support is tested on folowing dynamic dns providers:
10- dyndns.com
11- freemyip.com
12- DNS Made Easy
13- dondominio.com
14