BIND 9 Patch
Overview
The BIND 9 patch file included in the mDNkit provides the ability to support both conventional ASCII character domain names and non-ASCII character-derived multilingual domain names.
Specifically, this patch adds the following functions to BIND 9.
- Uses dig, host, and nslookup commands to accept domain names in the local encoding and displays domain names included in the inquiry result using local encoding.
Instructions for how to apply the patch file to BIND 9 is explained at the beginning of the patch file. Before using the patch file, be sure to check the version of BIND being used.
Architecture
BIND 9 included in mDNkit version 1 provides the following functgions in addition to the functions explained in the Overview.
- lightweight resolver API (lwres_gethostbyname, etc.) is used to resolve host names denoted in local encoding.
- Returns host names denoted in the local encoding as the name resolution result.
- Deals in UTF-8 characters as domain names in DNS server (named).
This method, which implements multilingual domain name processing such as normilization or encoding conversion in the resolver layer, and which enables to deal UTF-8 characters on DNS protocol, is becoming a prominent architecture for multilingual domain name processing. IDNA prescribes to perform all processing in the application, and to use ACE encoding on DNS protocol. mDNkit version 2 complies with IDNA. For that reason, the above functions are removed from BIND 9 patch.
The following diagram shows the function implemented in each component and the encoding used by the interface between the components.
Fixes in dig/host/nslookup
The DNS inquiry commands called dig, host, and nslookup are included in BIND 9. Because of the BIND 9 patch in mDNkit, these commands can handle multilingual domain names. Specifically, the following functions are added.
- Encoding conversion
Converts domain names expressed in local encoding entered using command arguments or through standard input to the encoding used by the DNS protocol and issues a DNS inquiry.Also converts multilingual domain names included in the DNS response to local encoding and displays the result.
- Normalization
When converting domain names expressed in local encoding to the encoding used in DNS protocol as a result of a DNS inquiry, the domain names are normalized.
The res module of the MDN library is used for processing. The mDNkit configuration file is used to make the setting.