Provided by:
libmdnkit9_2.4-4_i386 
NAME
mdn.conf - configuration file for internationalized domain name
handling
SYNOPSIS
/etc/mdn.conf
DESCRIPTION
mdn.conf is a configuration file for mDNkit, which is a toolkit for
handling internationalized/multilingualized domain names.
To use internationalized domain names in DNS or other protocols, they
must be converted to an appropriate format before further processing.
In mDNkit, this conversion process is comprised of the following tasks.
1. Convert the given domain name in application’s local codeset to
Unicode, and vice versa.
2. Map certain characters in the name to period character so that they
are treated as the domain name delimiter (delimiter mapping).
3. Map certain characters in the name to other characters or chracter
sequences, according to a mapping rule determined by its top level
domain (TLD).
4. Perform NAMEPREP, which is a starndard name preparation process for
internationalized domain names. This process is composed of the
tree steps called mapping, normalization and prohibited character
checking.
5. Convert the nameprepped name to IDN encoding, which is the standard
encoding for internationalized domain names (also known as ASCII-
compatible encoding, ACE), and vice versa.
mdn.conf specifies the parameters for these tasks, such as:
- the encoding of internationalized domain names (IDN encoding).
- NAMEPREP schemes.
SYNTAX
mdn.conf is a simple text file, and each line in the file (other than
comment lines, which begin with ‘‘#’’, and empty lines) forms an entry
of the following format:
keyword value..
IDN-ENCODING ENTRY
IDN encoding entry specifies the encoding name (codeset name) which is
used as the encoding of multilingualized domain names by resolvers and
DNS servers.
The syntax of this entry is:
idn-encoding encoding
encoding is the encoding name to be used, and any of the following
names can be specified.
· ‘‘Punycode’’
· ‘‘AMC-ACE-Z’’ (old name of ‘‘Punycode’’)
· ‘‘RACE’’
· ‘‘DUDE’’
· ‘‘UTF-8’’
· Codeset names which iconv_open() library function accepts. Please
consult iconv() documentation for the available codesets.
· Any alias names for the above, defined by the alias file. (See
section ‘‘ENCODING-ALIAS-FILE ENTRY’’)
The standard encoding is being discussed by IETF IDN working group.
NAMEPREP ENTRY
Nameprep entry specifies the version of NAMEPREP, which is a
specification of ‘‘canonicalization’’ process of multilingual domain
name before it is converted to the IDN encoding. It is also being
discussed by IETF IDN working group.
The syntax of this entry is:
nameprep version
version is the version name of NAMEPREP specification, and currently
the following versions can be specified.
· ‘‘nameprep-03’’
This version refers to Internet Draft ‘‘draft-ietf-idn-
nameprep-03.txt’’.
· ‘‘nameprep-05’’
This version refers to Internet Draft ‘‘draft-ietf-idn-
nameprep-05.txt’’.
· ‘‘nameprep-06’’
This version refers to Internet Draft ‘‘draft-ietf-idn-
nameprep-06.txt’’.
· ‘‘nameprep-07’’
This version refers to Internet Draft ‘‘draft-ietf-idn-
nameprep-07.txt’’.
The NAMEPREP process consists of the following 3 subprocesses.
1. mapping, which maps certain characters in a name to other
characters, possibly none.
2. normalization, which replaces character variants in a name to a
unique one.
3. prohibited/unassigned character checking, which detects invalid
characters in a name.
This entry is a shorthand for specifying all of them at once.
Actually,
nameprep version
has the same effect of specifying following 4 entries.
nameprep-map version
nameprep-normalize version
nameprep-prohibit version
nameprep-unassigned version
If both this entry and more-specific entries above are specified, more-
specific ones take precedence.
NAMEPREP-MAP ENTRY
Mapping entry specifies the mapping scheme of NAMEPREP process. The
syntax of this entry is:
nameprep-map scheme [scheme..]
scheme specifies the mapping scheme, and currently available schemes
are:
nameprep-03
Specify mapping defined by NAMEPREP-03 draft.
nameprep-05
Specify mapping defined by NAMEPREP-05 draft.
nameprep-06
Specify mapping defined by NAMEPREP-06 draft.
nameprep-07
Specify mapping defined by NAMEPREP-07 draft.
filemap:pathname
Specify mapping defined by the file pathname. See ‘‘MAPFILE
FORMAT’’ for the format of this file.
More than one scheme can be specified. If multiple schemes are
specified, they are applied in turn.
NAMEPREP-NORMALIZE ENTRY
Normalization entry specifies the normalization schemes which should be
applied to the domain names before sending them to name servers. The
syntax of this entry is:
nameprep-normalize scheme [scheme..]
scheme is the normalization scheme, and following shows the currently
available schemes:
nameprep-03
Synonim for unicode-form-kc/3.0.1.
nameprep-05
Synonim for unicode-form-kc/3.1.0.
nameprep-06
Synonim for unicode-form-kc/3.1.0.
nameprep-07
Synonim for unicode-form-kc/3.1.0.
unicode-form-kc
Perform Unicode normalization called ‘‘Unicode Normalization Form
KC’’, defined by the latest standard.
unicode-form-kc/3.0.1
Perform Unicode Normalization Form KC defined by Unicode 3.0.1.
unicode-form-kc/3.1.0
Perform Unicode Normalization Form KC defined by Unicode 3.1.0.
More than one schemes can be specified. If multiple schemes are
specified, they are applied in turn.
NAMEPREP-PROHIBIT ENTRY
Prohibit entry specifies the prohibited characters in the NAMEPREP
process. The syntax of this entry is:
nameprep-prohibit set [set..]
set specifies the set of prohibited characters. Currently following
sets can be specified.
nameprep-03
Specify set of prohibited characters defined by NAMEPREP-03
draft.
nameprep-05
Specify set of prohibited characters defined by NAMEPREP-05
draft.
nameprep-06
Specify set of prohibited characters defined by NAMEPREP-06
draft.
nameprep-07
Specify set of prohibited characters defined by NAMEPREP-07
draft.
fileset:pathname
Specify set of prohibited characters defined by the file
pathname. See ‘‘SETFILE FORMAT ’’ for the format of this file.
When more than one sets are specified, a character is considered
prohibited if it belongs to any of those sets.
NAMEPREP-UNASSIGNED ENTRY
Unassigned entry specifies the unassigned codepoints in the NAMEPREP
process. The syntax of this entry is:
nameprep-unassigned set [set..]
set specifies the set of unassigned characters. Currently following
sets can be specified.
nameprep-03
Specify set of unassigned characters defined by NAMEPREP-03
draft.
nameprep-05
Specify set of unassigned characters defined by NAMEPREP-05
draft.
nameprep-06
Specify set of unassigned characters defined by NAMEPREP-06
draft.
nameprep-07
Specify set of unassigned characters defined by NAMEPREP-07
draft.
fileset:pathname
Specify set of unassigned characters defined by the file
pathname. See ‘‘SETFILE FORMAT ’’ for the format of this file.
When more than one sets are specified, a character is considered
unassigned if it belongs to any one of those sets.
ENCODING-ALIAS-FILE ENTRY
Encoding alias entry specifies the file containing codeset name
aliases. The aliases can be used just as the real names.
The syntax of this entry is:
encoding-alias-file pathname
pathname specifies the path name of the alias file. The alias file is
a simple text file, consisting of lines of the form:
alias-name name
alias-name is the alias name to be defined, and name is the real name
or another alias name.
LOCAL-MAP ENTRY
This entry specifies localized mapping phase before NAMEPREP takes
place. Different mapping rules can be specified for each TLD (top-
level domain). For example, you can have one mapping for ‘‘.tw’’
domain, and another for ‘‘.jp’’ domain.
The syntax of this entry is:
local-map tld scheme [scheme..]
tld specifies the TLD to which the mapping rule is to be applied, and
scheme specifies the mapping scheme. Available schemes are same as
nameprep-map entry. See ‘‘NAMEPREP-MAP ENTRY’’ for details.
There are two special tlds for specifying the mapping rule for local
domain names (domain names without any dots in them), and the default
mapping rule. If tld is ‘‘-’’, it matches domain names which do not
contain any dots. If tld is ‘‘.’’, it matches any domain names which
don’t match to any other mapping rules specified by ‘‘local-map’’
entries.
DELIMITER-MAP ENTRY
This entry specifies characters to be regarded as the domain name
delimiter, which is period (‘‘.’’).
The syntax of this entry is:
delimiter-map codepoint [codepoint..]
codepoint specifies the Unicode codepoint value (in hexadecimal format)
for the character to be regarded as a delimiter.
MAPFILE FORMAT
A mapfile defines a set of character mapping rules. It can define
unconditional one-character to N-character-sequence (N can be 0, 1 or
more) mappings.
A mapfile is a simple text file, and each line specifies a single
mapping. Each line is of the form:
src-codepoint; mapped-codepoint-seq;
src-codepoint indicates source character of the mapping, and must be a
Unicode codepoint value in hexadecimal string. mapped-codepoint-seq is
a sequence of characters which is the outcome of the mapping, and must
be a (possibly empty) list of Unicode codepoint values in hexadecimal
string, separated by spaces.
Lines which begin with ‘‘#’’ are treated as comments and ignored.
A sample mapfile is shown below.
# map "A" to "a"
0041; 0061;
# map "#" to nothing
0023; ;
# map "@" to "at"
0040; 0061 0074;
SETFILE FORMAT
A setfile defines a set of characters, and is used for specifying
prohibited/unasssigned characters. The set is specified by enumerating
either individual character codepoints or ranges of character
codepoints.
A setfile is also a simple text file, and each line specifies a single
character codepoint, or a range of codepoints as follows:
codepoint
codepoint-start-codepoint-end
codepoint, codepoint-start and codepoint-end are Unicode codepoint
values in hexadecimal format.
Lines which begin with ‘‘#’’ are treated as comments and ignored.
A sample setfile is shown below.
# Prohibit tilde
007E
# Prohibit control characters
0000-001F
007F-000F
# Prohibit all the Unicode characters beyond BMP
10000-10FFFF
LOCAL CODESET
mdn.conf does not have an entry to specify the local codeset, since it
is determined from the application’s current locale information. So
each application can use different local codeset.
Although mDNkit tries hard to find out the local codeset, sometimes it
fails. For example, there are applications which use non-ASCII codeset
but work in C locale. In this case, you can specify the application’s
local codeset by an environment variable ‘‘MDN_LOCAL_CODESET’’. Just
set the codeset name (or its alias name) to the variable, and mDNkit
will use the codeset as the local one, regardless of the locale
setting.
SAMPLE CONFIGURATION
The following shows a sample configuration file.
#
# a sample configuration.
#
# Use RACE as the IDN encoding.
idn-encoding RACE
# Use draft-ietf-idn-nameprep-06.txt as NAMEPREP.
nameprep nameprep-06
# Regard U+3002 (IDEOGRAPHIC FULL STOP) and U+FF0E
# (FULLWIDTH FULL STOP) as the domain component delimiter
# as well as ‘‘.’’.
delimiter-map U+3002 U+FF0E
# Perform Japanese-specific mapping for .jp domain.
# assuming /usr/local/lib/mdnkit/jp-map contains the mapping.
local-map .jp filemap:/usr/local/lib/mdnkit/jp-map
FILES
/etc/mdn.conf
/etc/mdn.conf.sample - sample configuration with comments
SEE ALSO
iconv(3), mdnsproxy(8)
Mar 1, 2001 mdn.conf(5)