BIND: Internationalized Domain Names IDN

Linux System Administrators working in Europe have probably encountered these Internationalized Domain Names aka IDN before. IDN’s can be a bit of a hassle, and generally I wouldn’t recommend using too many fancy Umlaute or other non-ASCII characters that contain diacritics such as å, ä, ö etc. when staking out your domains.

IDN for Local SEO?

Even though the notion that IDN domains should not be used for SEO is kinda outdated - it’d be perfectly fine to e.g use Umlaute in a domain name that is targeting the German market - it’s still be a rather tricky thing, also depends on the specific language that is being used, different search engine spiders and so on.

While your local SEO might benefit from an IDN, in many cases it’s more than likely to affect your international presence and market reach.

It’d be safe to assume e.g that if your domain includes the letter å that’d make it a lot more difficult for people with non-nordic keyboards to enter the URL. More importantly, you’ll probably run into technical issues sooner or later, or at least it’s gonna require significantly more efforts to configure your server software and have it run smoothly.

Forward Your IDN to a non-IDN

In Germany, it seems common to register the IDN, then forward this to the non-IDN version:

äseite.de (IDN) ➡️ aeseite.de (non-IDN)

This seems like a sensible approach for brand owners.

Unless you plan to go all out on local SEO with a strong local brand name and possibly also a brick & mortar market presence AND are prepared for some extra hassles when setting up your Email, DB, Web Servers, Backup Tools etc. etc. only then should you run an IDN as your brand’s main domain. In other words and for most cases: Just don’t do it.

How to Manage a BIND DNS Zone with an IDN

All your lookups are belong to us - BIND9 is a heavy piece of software, and the most used domain name server software on the planet. And think about it:

Almost every Internet connection starts with a DNS lookup.

So in order to add IDN’s to our BIND Domain Name Service aka DNS Zone, we’ll need to use something called Punycode:

Punycode is a representation of Unicode with the limited ASCII character subset used for Internet hostnames. Using Punycode, host names containing Unicode characters are transcoded to a subset of ASCII consisting of letters, digits, and hyphens, which is called the Letter-Digit-Hyphen (LDH) subset. For example, München (German name for Munich) is encoded as Mnchen-3ya.

So let’s go install the one and only IDN application you’ll ever need for this:

$ apt install idn

Usage is pretty straight forward. To convert an IDN to a Punycode notation so that we can use that for our BIND9 DNS Zone we’d simply do something like this:

$ echo www.tenningås.no | idn -a --quiet

This outputs the following Punycode conversion:


You’d now take this Punycode string and use this in your BIND configuration files. Now, using this string you could also configure your Postfix Email server, your MariaDB etc.

Just think through it carefully before going down that rabbit hole and make sure that you have a solid domain strategy in place before you do.