Ran into an issue whereby a lot of the python based applications on my NAS were having name resolution issues. Python usually returns this as an Errno -5. In any case, it turns out that on the latest version of fritz (06.03 - maybe earlier too) - if you have custom DNS addresses in use (For me, unotelly) - then dependant on your version of Python (2.7.6-7) you might have the same issues. This may effect other software too - I'm not sure.
In the end it was easy to reproduce. Simply SSH into the NAS, ping an address. It worked. Log into a python shell and fire off a getURL, errno -5. Uncool.
I found out that if I used the SNAPS DNS - it worked fine. Any other predefined DNS with Fritz - failure. But only in python.
In the past I've found the built-in implementation of fritz's DNS and DHCP to be a little lacking, I don't believe it uses dnsmasq and configuration of it is pretty poor.
So after a day of researching and reconfiguring my network - I've created a custom Freetz firmware and installed that. The only packages I really went for were dnsmasq and dropbear for SSH access. Everything else was left stock. Freetz under default configuration will make a bunch of other changes under the hood, generally all for the better. Most you won't notice.
After doing this - everything works again with no issues. I can now forward domains internal to my network and have all the configurability one might require with dnsmasq. :)
VDSL sync speeds are all the same, no effect from what I can tell there.
Note: doing this voids warranty, and don't expect support from SNAP if you do it. However, you can always restore the original firmware back again. I'm only posting this really to help out anyone that might fall into the same category as me. Don't fool around with this if you don't know what you're doing. :)
Gotcha: Be sure to disable the fritz DHCP server and enable freetz's one. Freetz can be accessed at fritz.box:81
For those keen hit me up and I can pass on the firmware.