plugins
plugins copied to clipboard
os-ddclient: Add support again to Azure DNS
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:
New version:
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
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.
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!
I would like to point out you are not a business user...
I would like to point out you are not a business user...
Really @fichtner ?
I've purchased the business version for my business site, and I'm also using it at home.
@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.
@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?
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
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
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 :)
Bad News!!!
They will not implement Azure DNS support in ddclient
.
👎🏼 https://github.com/ddclient/ddclient/issues/107#issuecomment-1189003343
@jortfal can you please be more specific in that neither you nor anybody else will apparently work on this? Thanks.
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.
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
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.
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 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
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.....
Super, thank you very much!
I successfully installed it, started to test.
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
@hauserkristof can you share some feedback? 23.1 is almost on its way.
@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 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.