[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[idn] mDNkit/JPNIC 1.0 public beta released



This is Yasuhiro Morishita, a member of IDN-TF (IDN Task Force) at
JPNIC.

We are announcing the release of Multilingual Domain Name kit
(mDNkit/JPNIC) public Beta version (mdnkit-1.0beta).

Objectives of mDNkit/JPNIC are: 

  - Evaluation of the technology for Multilingual Domain Name 
  - Promoting standardization of Multilingual Domain Name 
  - Technical contribution for popularization of Multilingual Domain Name 

Current version of mDNkit/JPNIC supports RACE (draft-ietf-idn-race-00.txt),
UTF-8, UTF-5, and many local encodings, including euc-jp, shiftJIS,
euc-kr, gb2312, big5, and so on (supported codes are iconv(3) dependent).

mDNkit/JPNIC is now available from:

	http://www.nic.ad.jp/en/research/idn/index.html (in English)
	http://www.nic.ad.jp/jp/research/idn/index.html (in Japanese)

Enclosed is the README file included with the distribution kit.

And we will demonstrate this kit on our booth of INET2000/Yokohama.
Regards,

--
Yasuhiro 'Orange' Morishita, Technology Research Section
Japan Network Information Center (JPNIC)
E-Mail: yasuhiro@nic.ad.jp

--- cut ------ cut ------ cut ------ cut ------ cut ------ cut ---

				mDNkit
	  -- multilingual domain name evaluation kit --
			     beta release
	       Japan Network Information Center (JPNIC)


* Overview

mDNkit is a kit for evaluating various proposed methods regarding
multilingualized/internationalized DNS.

This kit consists of following components.

    + DNS proxy server (dnsproxy)
	This works as a fake DNS server for the clients.  It receives
	DNS request containing domain names in the client's local
	encoding (e.g. Shift_JIS), translates them into the encoding
	on DNS protocol (e.g. UTF-8 or RACE), and forwards to the real
	DNS server.  Also the response from the server is converted
	back to the client's local encoding and returned.  See the
	figure below.

    + a codeset converter for named.conf/zone master files (mdnconv)
	This is a codeset (encoding) converter specially designed for
	converting named.conf and zone master files from your local
	encoding (e.g. EUC-JP) to the encoding which internationalized
	DNS servers employ (e.g. UTF-8).

    + a library for handling multilingual domain names (libmdn)
	This is the library dnsproxy and mdnconv are built upon.  It
	provides various functions regarding multilingual domain
	names, such as encoding conversion, normalization and ZLD
	(zero-level domain) handling.

    + a patch that makes BIND 8-bit through
	This is needed in order for named and resolver to handle
	non-ascii domain names encoded in local encoding or UTF-8.
	The patch is rudimentary; it makes almost any byte sequence
	legal as a domain name (which is what 8-bit through is for).

    + a patch for making Squid cache server 8-bit through
	This is a simple patch that disables Squid's validity check
	for host name part in URLs.  Without this patch, Squid rejects
	URLs containing multilingual domain name (correctly).


		 domain name      encoding      domain name
		  in local     conversion and   in encoding
		  encoding     normalization      on DNS
   +-----------+             +----------------+  protocol   +----------+
   |   client  |------------>|    dnsproxy    |------------>|DNS server|
   |application|<------------|                |<------------|          |
   +-----------+             +----------------+             +----------+


* Directory structure of this distribution

Below is a directory structure of this distribution with some 
important files and their brief description.

    +README		this file
    +README.ja		.. in Japanese
    +DISTFILES		list of files in this distribution
    +configure		a `configure' script
    +Makefile.in	toplevel makefile template
    +include/
    |	+config.h.in	template header file for configuration
    |	+mdn/		header files for mdn library
    +dnsproxy/		source directory for DNS proxy server.
    +lib/		source directory for mdn library
    +tools/		source directory for tools.
    |	+mdnconv/	source directory for codeset converter
    +patch/		various patch files
    |	+bind8/		bind-8 patch directory
    |	+squid/		squid patch directory
    +util/		utilities


* Compilation and installation

0. Prerequisite

If your system's library does not have iconv() function, which is a
general codeset conversion utility, install it as an external library.
You also need external library if the system's implementation cannot
handle UTF-8 encoding, or it doesn't support some encodings which your
client applications uses.

You can get a free version of iconv() implementation (under LGPL
license), from:

	http://clisp.cons.org/~haible/packages-libiconv.html

1. Running configure script

Run `configure' script in the top directory.  This checks various
characteristics of your system and it will create Makefiles and
config.h appropriate for your system.

	% ./configure

`configure' accepts many options.  Here is a list of some important
options.

    --with-iconv=LIB
	If your libc doesn't contain iconv(), specify the library
	that contains iconv().  For example, if iconv() is libiconv
	in /usr/local/lib, you should specify:

	    --with-iconv="-L/usr/local/lib -liconv"

	Note that if the library is a shared one, you might also want to
	specify -R option, like:

	    --with-iconv="-L/usr/local/lib -R/usr/local/lib -liconv"

	If the header file "iconv.h" has installed in a non-standard
	directory like /usr/local/include, you should specify CFLAGS
	environment variable.  See below.

    --with-utf8=NAME
	If your iconv() (precisely, iconv_open()) does not accept
	"UTF-8" as the name of UTF-8 encoding, specify the name
	for it.  For example if your iconv() uses "utf8" instead,
	you should specify:

	    --with-utf8=utf8

    --sbindir=DIR
	Specifies the install directory for dnsproxy.  Default is
	/usr/local/sbin.

    --bindir=DIR
	Specifies the install directory for mdnconv.  Default is
	/usr/local/bin.

    --sysconfdir=DIR
	Specifies the install directory for dnsproxy's sample
	configuration file.  Default is /usr/local/etc.

    --mandir=DIR
	Specifies the base install directory for online manuals.
	Default is /usr/local/man.

`configure' has many more options.  To see the list of available
options, you should run it with --help option.

	% ./configure --help

If you want to specify extra compiler options, like adding non-standard
directory to include file search path, use environment variable CFLAGS.

	% CFLAGS="-I/usr/local/include -O2" ./configure	... 	    (for sh)
	% setenv CFLAGS "-I/usr/local/include -g"; ./configure ...  (for csh)

2. Compiling

Run `make' for compilation.

	% make

3. Installation

Run `make install' to install binaries and manuals.  Don't forget to
become a super-user before the installation.

	% su
	# make install

4. Configuration and usage

Please consult online manuals for configuration and usage of `dnsproxy'
and `mdnconv'.

	% man dnsproxy
	% man mdnconv


* Applying patches

This distribution also contains patches for BIND 8.2.2-P5 and Squid
2.3.STABLE3.  The top of these patch files describe how to apply the
patch and (re)install.


* Contact information

Please see http//www.nic.ad.jp/en/research/idn/ (in English)
http//www.nic.ad.jp/jp/research/idn/ (in Japanese) for the latest news
about this kit.

Bug reports and comments on this kit should be sent to idn-cmt@nic.ad.jp.