Fritz!Box DynDNS – some gory details


Fritz!Box DynDNS

Usually a Fritz!Box can use existing Dynamic DNS services like DynDNS or No-IP without problems. It supports a bunch of predefined services but you can also specify a custom URL with some placeholders. The “fun” started when/if I wanted to implement a custom DynDNS service for my own domain and had to find out some non-obvious things.

The goal was to setup a simple DynDNS service for two different Fritz!Boxes on two locations.

Hardware / Firmware / Documentation

The following two Fritz!Boxes should be configured:

The “DynDNS” settings page of both boxes have a Help-Button pointing to these pages:

Another “source of truth” is the knowledge base section about Dynamic DNS (German only).

Documented features

Both pages describe that both boxes support the following features for custom URLs:

The placeholders <username>, <pass> and <domain> are replaced with the values of the corresponding input fields in the dialog. The Fritz!Box provides the other values.

Let’s look into some promised gory details.

Placeholders – Details

Some things I’ve noticed playing around with the placeholders:

Support for HTTPS

According to some warning the Fritz!Box supports only plain HTTP:

Unfortunately the Fritz!Box can send DDNS updates only unencrypted via HTTP, while AWS API Gateway provides only HTTPS. :( If you intend to use this solution with a Fritz!Box, you need an additional proxy in between which does HTTP->HTTPS translation. https://github.com/bbock/aws-lambda-dyndns/blob/master/Readme.md#fritzbox-users

My findings are a bit different but not without some salt:

Authentication

The Fritz!Boxes use Basic Authentication for the DynDNS service. Of course this means that the password is transmitted unencrypted by default (see “Support for HTTPS”). The surprising things are:

Responses

It is unclear how the Fritz!Boxes handle the status codes. But it seems that the boxes do not rely on the status code (and perhaps the response content) alone. The “Overview” section in the UI indicates that they also perform a DNS lookup to check the result. I wonder how this works with DNS caches.

The Fritz!Boxes will retry the requests if the response indicates an error. The 3270v3 seems to retry after 29 minutes, the 7490 after 1 hour. Update: The TTL for the DNS records was set to 3600 seconds (1 hour) – this might or might not matter.

Summary

This article is not a rant about AVM and their Fritz!Boxes. Most day-to-day usecases regarding DynDNS seems to be covered sufficiently. The HTTPS problems of the 3270v3 are annoying (especially that the reason is hard to come by) but not a deal breaker for implementing my own DynDNS service.


  1. This one is really hard to notice! ↩︎

  2. : That was my Plan B during debugging :-) ↩︎