plugins icon indicating copy to clipboard operation
plugins copied to clipboard

os-ddclient: Add support again to Azure DNS

Open hauserkristof opened this issue 2 years ago • 13 comments

Important notices Before you add a new report, we ask you kindly to acknowledge the following:

  • [x] I have read the contributing guide lines at https://github.com/opnsense/plugins/blob/master/CONTRIBUTING.md
  • [x] I have searched the existing issues, open and closed, and I'm convinced that mine is new.
  • [x] When the request is meant for an existing plugin, I've added its name to the title.

Is your feature request related to a problem? Please describe. In version OPNsense 22.1.10-amd64 with plugin version: 1.8

Also tested on:

Key  Val
Type opnsense-business
Version 22.4.2
Architecture amd64
Flavour OpenSSL
Commit f350d31bc

GUI link: /ui/dyndns/

We do not have to same functionality for ddclient as the ddclient legacy, to be exact, we can not set up Azure DNS in the new version.

Legacy version: Képernyőfotó 2022-07-13 - 20 39 38

New version: Képernyőfotó 2022-07-13 - 20 39 57

Describe the solution you'd like The same functionality as the legacy ddclient would be perfect.

Describe alternatives you've considered I did not find any easy solution yet.

Additional context There is another open issue , but due to bad formatting the bot tagged this as low priority and absolutely no answer was given by the team since February 17. #2844

hauserkristof avatar Jul 13 '22 18:07 hauserkristof

It doesn't appear to be supported by ddclient (https://github.com/ddclient/ddclient/issues/107), so someone interested in this should probably open a pull-request there first.

AdSchellevis avatar Jul 13 '22 20:07 AdSchellevis

Why did opnsense change for this module if it is a step back from the legacy one?

In business use cases the legacy ddns was really useful!

hauserkristof avatar Jul 14 '22 07:07 hauserkristof

I would like to point out you are not a business user...

fichtner avatar Jul 14 '22 07:07 fichtner

I would like to point out you are not a business user...

Really @fichtner ? Képernyőfotó 2022-07-19 - 9 21 19

I've purchased the business version for my business site, and I'm also using it at home.

hauserkristof avatar Jul 19 '22 07:07 hauserkristof

@hauserkristof if you want to complain to me about you not giving more context than "OPNsense 22.1.10-amd64" in the original report feel free to do so.

fichtner avatar Jul 19 '22 07:07 fichtner

@hauserkristof if you want to complain to me about you not giving more context than "OPNsense 22.1.10-amd64" in the original report feel free to do so.

true that @fichtner , sorry, I've modified the description. Could you modify the label on the issue?

Also, can you please tell why the team decided to move from the previous extension?

hauserkristof avatar Jul 19 '22 07:07 hauserkristof

Changed the labels accordingly. The old dyndns plugin was deprecated over code quality issues and near-impossible maintenance for no visible business case (this is not against you in particular, it just is what we have seen and it matches with the reality of dyndns software being overly bad as a whole because it is mostly for home users written by other home users).

We've had a lot of work done to the old plugin code base over the years but it keeps breaking for integrated services as the original project is already dead since 2005 and there is no stringent structure to embed new services as all gets to be glued into one single file...

https://github.com/opnsense/plugins/blob/abf01bff99e019b31792cf3489372f07e0c33653/dns/dyndns/src/etc/inc/plugins.inc.d/dyndns/phpDynDNS.inc#L67-L70

That being said we went looking for a maintained upstream project and to our knowledge only ddclient and inadyn exist. ddclient had the benefit of it being in our packages provided for a long time without a plugin so the decision was made to build a plugin for it seeing that they do have recent activity in their GitHub home nowadays and are almost ready for a new release (there are two prereleases available of the latest version but we want to hold off that to not deliver underperforming updates).

The new plugin supports MVC/API access and is easier to extend within the scope of provided functionality of ddclient of course. For possible support / how to's on ddclient integration the readme/docs of ddclient should at least be skimmed to see if it can work with any particular service now or in the future (new code added but not released). If not, a feature request on their end would be the most sensible way to see if support for a particular hoster can be added or not.

https://github.com/ddclient/ddclient#supported-services

Cheers, Franco

fichtner avatar Jul 19 '22 08:07 fichtner

Hetzner Support might also find it's way in the new relase. Enclosed a PR (also by an OPN user) to see how add support to upstream: https://github.com/ddclient/ddclient/pull/406/files

mimugmail avatar Jul 19 '22 08:07 mimugmail

Changed the labels accordingly. The old dyndns plugin was deprecated over code quality issues and near-impossible maintenance for no visible business case (this is not against you in particular, it just is what we have seen and it matches with the reality of dyndns software being overly bad as a whole because it is mostly for home users written by other home users).

We've had a lot of work done to the old plugin code base over the years but it keeps breaking for integrated services as the original project is already dead since 2005 and there is no stringent structure to embed new services as all gets to be glued into one single file...

https://github.com/opnsense/plugins/blob/abf01bff99e019b31792cf3489372f07e0c33653/dns/dyndns/src/etc/inc/plugins.inc.d/dyndns/phpDynDNS.inc#L67-L70

That being said we went looking for a maintained upstream project and to our knowledge only ddclient and inadyn exist. ddclient had the benefit of it being in our packages provided for a long time without a plugin so the decision was made to build a plugin for it seeing that they do have recent activity in their GitHub home nowadays and are almost ready for a new release (there are two prereleases available of the latest version but we want to hold off that to not deliver underperforming updates).

The new plugin supports MVC/API access and is easier to extend within the scope of provided functionality of ddclient of course. For possible support / how to's on ddclient integration the readme/docs of ddclient should at least be skimmed to see if it can work with any particular service now or in the future (new code added but not released). If not, a feature request on their end would be the most sensible way to see if support for a particular hoster can be added or not.

https://github.com/ddclient/ddclient#supported-services

Cheers, Franco

Thank you for the explanation @fichtner ! It makes complete sense, I wrote a comment to a preexisting issue on their side, I hope they are going to implement Azure dyndns.

I have also commented on another issue in opnsense ddclient plugin #2899

I hope when the final release comes out of this plugin and the legacy would be removed from 22.7 these features would be available. I really like working with opnsense, so keep the good work up please :)

hauserkristof avatar Jul 19 '22 08:07 hauserkristof

Bad News!!!

They will not implement Azure DNS support in ddclient.

👎🏼 https://github.com/ddclient/ddclient/issues/107#issuecomment-1189003343

jortfal avatar Jul 25 '22 11:07 jortfal

@jortfal can you please be more specific in that neither you nor anybody else will apparently work on this? Thanks.

fichtner avatar Jul 25 '22 11:07 fichtner

Yes, of course. What I wanted to share is that by ddclient developers are not going to implement Azure DNS support. So if someone else doesn't do it we are going to be left without this option in the new release of OPNSense.

jortfal avatar Jul 25 '22 17:07 jortfal

Not exactly. First of all the dyndns plugin will not be deleted and secondly the dyndns plugin will still available for a while on on 22.7 for multiple reasons.

Cheers, Franco

fichtner avatar Jul 25 '22 18:07 fichtner

I've wrote an alternative for ddclient and added it as an additional "backend" selection (general settings) in https://github.com/opnsense/plugins/commit/ef91a6b4f9feef7b412ab4a98f14f452d0c187ac. Although I'm not planning to build implementations for all different vendors it seemed like a good idea to add dyndns as a simple example and azure as a complexe one.

AdSchellevis avatar Jan 05 '23 17:01 AdSchellevis

Thank you @AdSchellevis !

Is there any method to test it? Can I somehow add the main repo as an alpha test to an OPN system?

I assume this change would not be included in the 23.1 version, because of too short notice. When can it be released to production?

hauserkristof avatar Jan 06 '23 12:01 hauserkristof

@hauserkristof you're welcome

Is there any method to test it? Can I somehow add the main repo as an alpha test to an OPN system?

The easiest option is to build a package, but I've just done that for you and published it to our pkg server. To forcefully install the package use the following command:

pkg add -f https://pkg.opnsense.org/distfiles/os-ddclient-devel-1.11.pkg

Then go to general settings and choose OPNsense as backend image

I assume this change would not be included in the 23.1 version, because of too short notice. When can it be released to production?

No clue yet to be honest, the way it's implemented now shouldn't influence ddclient based setups, but it certainly helps if people test what's in there now. Dynamic DNS as concept isn't very complicated, there's just little to no interest from enterprise users which likely explains the state of most software available. Last year I really hoped to get rid of this by using ddclient as everyone seems to be using it.....

AdSchellevis avatar Jan 06 '23 13:01 AdSchellevis

Super, thank you very much!

I successfully installed it, started to test.

hauserkristof avatar Jan 06 '23 13:01 hauserkristof

I assume this change would not be included in the 23.1 version, because of too short notice. When can it be released to production?

Personally I don't mind pushing this latest release in 23.1 along with ddclient-devel package (3.10.0) otherwise we will have no movement whatsoever and some like to complain about it more that it would be helpful. Plus we'd have two separate branches we would have to maintain separately for a longer period of time.

Cheers, Franco

fichtner avatar Jan 09 '23 11:01 fichtner

@hauserkristof can you share some feedback? 23.1 is almost on its way.

AdSchellevis avatar Jan 17 '23 12:01 AdSchellevis

@AdSchellevis Thank you for writing the alternative backend. Using the external check IP method sometimes failed. Using the interface method was not an option with the ddclient backend as I'm behind a CGNAT (issue #2872). So far this new backend seems to work for me because there is the check IP method that allows me to choose for IPv6 only. Would be nice if there would be the "custom" option as with the ddclient backend where one can just enter the dyndns2 compatible DynDNS provider. Alternatively the interface chek IP method with the v4/v6 option for the ddclient backend would also solve this as there is already the "custom provider" option.

ei-ke avatar Mar 11 '23 21:03 ei-ke

@ei-ke maybe best open a ticket (using our template) to request the feature, it might not be an enormous amount of work to allow a custom dyndns2 endpoint, but I can't promise when I can find time for it.

AdSchellevis avatar Mar 12 '23 09:03 AdSchellevis