[ddns-garogyle]support he.net dyn-compliant endpoint updates

Suggest improvements and new features for Gargoyle.

Moderator: Moderators

User avatar
braveheartleo
Posts: 47
Joined: Sun Dec 13, 2009 9:50 am

[ddns-garogyle]support he.net dyn-compliant endpoint updates

Post by braveheartleo »

I'm using 6in4 IPv6 Tunneling via Hurricane Electric. I have added a /etc/ddns_providers.conf section for he.net in ddns-gargoyle, so that the service can be used to periodically check for IP address changes, and update the endpoint accordingly, to maintain the IPv6 tunnel connection.

Code: Select all

service he.net
	url_template			https://ipv4.tunnelbroker.net/nic/update?username=[[USERNAME]]&password=[[PASSWORD]]&hostname=[[DOMAIN]]&myip=[[IP]]
	required_variables              domain username password
	required_variable_names         DyDNS.DoNm,DyDNS.UsrN,DyDNS.Pssw
	success_regexp                  /^(good|nochg)/
* domain refers to the Tunnel ID value inside /etc/config/network for 6in4 he.net network.
* username is the same username value found in the config file above
* password can either be the actual password for the username, or the update key if this is available.

Lantis
Moderator
Posts: 6753
Joined: Mon Jan 05, 2015 5:33 am
Location: Australia

Re: [ddns-garogyle]support he.net dyn-compliant endpoint upd

Post by Lantis »

please show a logread after a force update so i can see that it works. cheers
http://lantisproject.com/downloads/gargoyle_ispyisail.php for the latest releases
Please be respectful when posting. I do this in my free time on a volunteer basis.

User avatar
braveheartleo
Posts: 47
Joined: Sun Dec 13, 2009 9:50 am

Re: [ddns-garogyle]support he.net dyn-compliant endpoint upd

Post by braveheartleo »

Sure, here it is, after invoking /etc/init.d/ddns_gargoyle restart

Code: Select all

ed Aug 19 11:52:46 2015 daemon.info ddns_gargoyle[8636]: Forcing update:
Wed Aug 19 11:52:46 2015 daemon.info ddns_gargoyle[8636]: 	service provider=he.net
Wed Aug 19 11:52:46 2015 daemon.info ddns_gargoyle[8636]: 	domain=<TUNNELID>
Wed Aug 19 11:52:46 2015 daemon.info ddns_gargoyle[8636]: 	local IP  = <IP>
Wed Aug 19 11:52:46 2015 daemon.info ddns_gargoyle[8636]: 	remote IP cannot be determined
Wed Aug 19 11:52:48 2015 daemon.info ddns_gargoyle[8636]: 	Update successful
And this the he.net config section for /etc/config/ddns_gargoyle:

Code: Select all

config service henet
        option enabled 1
        option service_provider he.net
        option domain <TUNNELID>
        option username <USERNAME>
        option password <UPDATEKEY>
        option ip_source network
        option ip_network wan
        option force_interval 4
        option force_unit days
        option check_interval 6
        option check_unit hours

Lantis
Moderator
Posts: 6753
Joined: Mon Jan 05, 2015 5:33 am
Location: Australia

Re: [ddns-garogyle]support he.net dyn-compliant endpoint upd

Post by Lantis »

i'll let Eric decide if this is a good idea or not. I think it's kind of a niche case because of the 6in4 thing.
He's actively developing at the moment so i'll make sure it is at least looked at before the next major release.

Cheers mate.
http://lantisproject.com/downloads/gargoyle_ispyisail.php for the latest releases
Please be respectful when posting. I do this in my free time on a volunteer basis.

Lantis
Moderator
Posts: 6753
Joined: Mon Jan 05, 2015 5:33 am
Location: Australia

Re: [ddns-garogyle]support he.net dyn-compliant endpoint upd

Post by Lantis »

I'm concerned that it can't find the remote ip.
See this post for the output I expected to see:
viewtopic.php?f=13&t=3623&p=30878#p30877
http://lantisproject.com/downloads/gargoyle_ispyisail.php for the latest releases
Please be respectful when posting. I do this in my free time on a volunteer basis.

User avatar
braveheartleo
Posts: 47
Joined: Sun Dec 13, 2009 9:50 am

Re: [ddns-garogyle]support he.net dyn-compliant endpoint upd

Post by braveheartleo »

Lantis wrote:I'm concerned that it can't find the remote ip.
See this post for the output I expected to see:
viewtopic.php?f=13&t=3623&p=30878#p30877
Don't be concerned about it. ;) It simply means that ddns_gargoyle has not yet cached the IP. If you've been using ddns_gargoyle, then you will know that this is also the same thing that happens when you have an opendns.com service config section for it, for example.

This is because ddns_gargoyle has NO WAY of knowing what the current remote IP for an opendns.com account is, or for ANY account for that matter, when the service is (RE)STARTED (the cached IP does not exist), like what you saw in my log.

After a successful update, then ddns_gargoyle caches the IP that was just updated for the account. And succeeding logs will now show the cached remote IP, and no more "remote IP cannot be determined". If you will study the source code for ddns_garogyle, then you will see what I'm talking about.

For your peace of mind, I will show an updated logread whereby I have issued an unscheduled CHECK to the daemon, and the "remote IP cannot be determined" is gone. ;)

This is the NORMAL ddns_gargoyle output when it is (re)started:

Code: Select all

Fri Aug 28 03:52:11 2015 daemon.info ddns_gargoyle[7873]: Forcing update:
Fri Aug 28 03:52:11 2015 daemon.info ddns_gargoyle[7873]: 	service provider=he.net
Fri Aug 28 03:52:11 2015 daemon.info ddns_gargoyle[7873]: 	domain=<TUNNELID>
Fri Aug 28 03:52:11 2015 daemon.info ddns_gargoyle[7873]: 	local IP  = 49.149.x.y
Fri Aug 28 03:52:11 2015 daemon.info ddns_gargoyle[7873]: 	remote IP cannot be determined
Fri Aug 28 03:52:18 2015 daemon.info ddns_gargoyle[7873]: 	Update successful

Fri Aug 28 03:52:18 2015 daemon.info ddns_gargoyle[7873]: Checking whether update needed:
Fri Aug 28 03:52:18 2015 daemon.info ddns_gargoyle[7873]: 	service provider=opendns.com
Fri Aug 28 03:52:18 2015 daemon.info ddns_gargoyle[7873]: 	local IP  = 49.149.x.y
Fri Aug 28 03:52:18 2015 daemon.info ddns_gargoyle[7873]: 	remote IP cannot be determined
Fri Aug 28 03:52:23 2015 daemon.info ddns_gargoyle[7873]: 	Update successful

Fri Aug 28 03:52:23 2015 daemon.info ddns_gargoyle[7873]: Checking whether update needed:
Fri Aug 28 03:52:23 2015 daemon.info ddns_gargoyle[7873]: 	service provider=duckdns.org
Fri Aug 28 03:52:23 2015 daemon.info ddns_gargoyle[7873]: 	domain=<DOMAIN>
Fri Aug 28 03:52:23 2015 daemon.info ddns_gargoyle[7873]: 	local IP  = 49.149.x.y
Fri Aug 28 03:52:23 2015 daemon.info ddns_gargoyle[7873]: 	remote IP cannot be determined
Fri Aug 28 03:52:27 2015 daemon.info ddns_gargoyle[7873]: 	Update successful
Notice how ALL of my accounts show "remote IP cannot be determined". ddns_gargoyle has no way of determining that, so it relies upon the IP it caches AFTER a successful update for that IP.

And this is the output AFTER a check by ddns_gargoyle. Notice that by this time the remote IP has been already cached:

Code: Select all

Fri Aug 28 03:55:34 2015 daemon.info ddns_gargoyle[7873]: Checking whether update needed:
Fri Aug 28 03:55:34 2015 daemon.info ddns_gargoyle[7873]: 	service provider=he.net
Fri Aug 28 03:55:34 2015 daemon.info ddns_gargoyle[7873]: 	domain=<TUNNELID>
Fri Aug 28 03:55:34 2015 daemon.info ddns_gargoyle[7873]: 	local IP  = 49.149.x.y
Fri Aug 28 03:55:34 2015 daemon.info ddns_gargoyle[7873]: 	remote IP = 49.149.x.y
Fri Aug 28 03:55:34 2015 daemon.info ddns_gargoyle[7873]: 	Update not needed, IPs match

Fri Aug 28 03:55:34 2015 daemon.info ddns_gargoyle[7873]: Checking whether update needed:
Fri Aug 28 03:55:34 2015 daemon.info ddns_gargoyle[7873]: 	service provider=opendns.com
Fri Aug 28 03:55:34 2015 daemon.info ddns_gargoyle[7873]: 	local IP  = 49.149.x.y
Fri Aug 28 03:55:34 2015 daemon.info ddns_gargoyle[7873]: 	remote IP = 49.149.x.y
Fri Aug 28 03:55:34 2015 daemon.info ddns_gargoyle[7873]: 	Update not needed, IPs match

Fri Aug 28 03:55:34 2015 daemon.info ddns_gargoyle[7873]: Checking whether update needed:
Fri Aug 28 03:55:34 2015 daemon.info ddns_gargoyle[7873]: 	service provider=duckdns.org
Fri Aug 28 03:55:34 2015 daemon.info ddns_gargoyle[7873]: 	domain=<DOMAIN>
Fri Aug 28 03:55:34 2015 daemon.info ddns_gargoyle[7873]: 	local IP  = 49.149.x.y
Fri Aug 28 03:55:34 2015 daemon.info ddns_gargoyle[7873]: 	remote IP = 49.149.x.y
Fri Aug 28 03:55:34 2015 daemon.info ddns_gargoyle[7873]: 	Update not needed, IPs match

User avatar
braveheartleo
Posts: 47
Joined: Sun Dec 13, 2009 9:50 am

Re: [ddns-garogyle]support he.net dyn-compliant endpoint upd

Post by braveheartleo »

Lantis wrote:i'll let Eric decide if this is a good idea or not. I think it's kind of a niche case because of the 6in4 thing.
He's actively developing at the moment so i'll make sure it is at least looked at before the next major release.

Cheers mate.
Does this mean that Gargoyle has no IPv6 support, even though its base platform OpenWRT is IPv6-compliant? The last time I used Gargoyle was on a device that can't really support IPv6 due to limited device resources (DIR-300).

If that's the case then I can understand why this proposal may not be considered for now.

Lantis
Moderator
Posts: 6753
Joined: Mon Jan 05, 2015 5:33 am
Location: Australia

Re: [ddns-garogyle]support he.net dyn-compliant endpoint upd

Post by Lantis »

Thank you for your additional testing.
I have read the source code. I did not read it as closely as you apparently.

Gargoyle doesn't support IPv6 no. When building a lot of modules for IPv6 actually get disabled.
So even if this doesn't make it in for that reason, it's still interesting to other users :)

Cheers
http://lantisproject.com/downloads/gargoyle_ispyisail.php for the latest releases
Please be respectful when posting. I do this in my free time on a volunteer basis.

ispyisail
Moderator
Posts: 5185
Joined: Mon Apr 06, 2009 3:15 am
Location: New Zealand

Re: [ddns-garogyle]support he.net dyn-compliant endpoint upd

Post by ispyisail »

+1

Thanks braveheartleo

User avatar
braveheartleo
Posts: 47
Joined: Sun Dec 13, 2009 9:50 am

Re: [ddns-garogyle]support he.net dyn-compliant endpoint upd

Post by braveheartleo »

Lantis wrote:Thank you for your additional testing.
I have read the source code. I did not read it as closely as you apparently.

Gargoyle doesn't support IPv6 no. When building a lot of modules for IPv6 actually get disabled.
So even if this doesn't make it in for that reason, it's still interesting to other users :)

Cheers
Yes, anything for the benefit of the community is good enough for me.

I found that ddns-gargoyle is THE BEST dyn-compliant client updater there is, after going through ddns-scripts from OpenWRT, and inadyn from DD-WRT.

The flexibility it offers via provider templates, which can be augmented for additional service provider support, is what sets it apart from the rest of the pack, not to mention the knobs it offers via config options to control the daemon.

Thanks to Garogyle for ddns-gargoyle, and thank you for looking into this. :-D
Last edited by braveheartleo on Thu Aug 27, 2015 9:47 pm, edited 1 time in total.

Post Reply