1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<!-- $Id: spec.html,v 1.2 2001/10/02 07:48:33 miyayama Exp $ -->
<html lang="en-US">
<head>
<title>mDNkit specification</title>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<link rev="made" href="mailto:idn-cmt@nic.ad.jp">
<link rel="stylesheet" type="text/css" href="spec.css">
</head>
<body>
<h1>mDNkit Specifications</h1>
<ul>
<li><a href="#overview">Overall Structure</a>
<li><a href="mdnsproxy.html">mdnsproxy</a>
<li><a href="mdnconv.html">mdnconv</a>
<li><a href="bind9.html">BIND 9 patch</a>
<li><a href="runmdn.html">runmdn</a>
<li><a href="wrapper.html">mDN Wrapper</a>
<li><a href="library.html">MDN library</a>
<li><a href="clientconfig.html">mDNkit Configuration File</a>
</ul>
<!-- =========================================================== -->
<hr>
<h2><a name="overview">Overall Structure</a></h2>
<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
<h3><a name="components">Kit Components </a></h3>
<p>
The mDNkit is comprised of the following components.
</p>
<!-- = = = = = = = = = = = = = = = -->
<h4><a href="library.html">MDN library</a></h4>
<p>
This libary implements basic processing related to multilingual domain name conversion. The following features are provided.
</p>
<ul>
<li>Encoding conversion
<li>NAMEPREP
<li>Local mapping
<li>Analysis and assembly of DNS message
</ul>
<p>
All of the following components are created using this library.
</p>
<p>
Also, an API is provided to allow applications that use these functions to convert multilingual domain names. This follows <a href="../../reference/draft/draft-ietf-idn-idna-06.txt">IDNA</a>, which a proposal for the multilingual domain name processing architecture. In this architecture, the client application itself executes <a href="../../reference/draft/draft-ietf-idn-nameprep-07.txt">NAMEPREP</a> and converts encoding to the IDN encoding, then calls the resolver.
</p>
<!-- = = = = = = = = = = = = = = = -->
<h4><a href="mdnsproxy.html">mdnsproxy</a></h4>
<p>
Operating as a proxy server for the DNS server, this command relays DNS messages from the client to the DNS server and relays DNS messages returned from the DNS server to the client.
</p>
<p>
When DNS messages sent from the client are relayed, the domain name in the message is converted from the local encoding used by the client to the DNS protocol encoding (IDN encoding) used by the multilingualized DNS server and NAMEPREP is also performed.
</p>
<p>
In addition, when a DNS message returned from the DNS server is relayed, the domain name in the message is converted from the IDN encoding to the local encoding.
</p>
<!-- = = = = = = = = = = = = = = = -->
<h4><a href="mdnconv.html">mdnconv</a></h4>
<p>
This is an encoding conversion tool for zone master files and <code>named.conf</code> file. These locally-encoded files are converted to the IDN encoding used by the multilingualized DNS server, and NAMEPREP is performed at the same time.
</p>
<!-- = = = = = = = = = = = = = = = -->
<h4><a href="bind9.html">BIND 9 patch</a></h4>
<p>
This patch adds to BIND 9 the ability to support multilingual domain names. This patch adds encoding conversion of multilingual domain names and NAMEPREP functions to tools such as dig and nslookup. Because of this, multilingual domain names are supported.
</p>
<!-- = = = = = = = = = = = = = = = -->
<h4><a href="runmdn.html">runmdn</a></h4>
<p>
This command allows UNIX applications to support of multilingual domain names without re-compiling. By dynamically linking the MDN library when the application is executed, encoding conversion of multilingual domain names and normalization functions (NAMEPREP) are added to the resolver linked to the application. Because of this, multilingual domain names can be handled without using mdnsproxy.
</p>
<!-- = = = = = = = = = = = = = = = -->
<h4><a href="wrapper.html">mDN Wrapper</a></h4>
<p>
This is a Wrapper DLL for WINSOCK that allows Windows-based applications to support multilingual domain names. Usually, Windows applications resolve domain names with WINSOCK. mDN Wrapper intercepts the WINSOCK call and performs encoding conversion and NAMEPREP of multilingual domain names. The same thing can be done with dnsproxy; however, when mDN Wrapper is used different local encoding used by applications can be accepted.
</p>
<!-- = = = = = = = = = = = = = = = -->
<h4><a name="eightbitthru-patch">8-bit through patch</a></h4>
<p>
When dnsproxy is used to convert multilingual domain name encoding or perform normalization, these functions are not required in the DNS server or resolver library. However, when 8-bit code such as UTF-8 is used for DNS protocol encoding, the conventional DNS server cannot be used and modification must be performed so that 8-bit code can be passed without error.
</p>
<p>
When the local encoding uses 8-bit code such as SJIS, the resolver library also must be modified so that 8-bit code can be passed without error.
Furthermore, some applications check domain names themselves and do not pass 8-bit code.
</p>
<p>
Furthermore, some applications check domain names themselves and do not pass 8-bit code.
</p>
<p>
For these reasons, this kit provides the following patches:
</p>
<ul>
<li>Patch that makes the BIND 8 name server and resolver 8-bit through
<li>Patch that makes the URL analysis part of Squid8-bit through (Squid is a Web cache server)
</ul>
<p>
The specifications of these 8-bit through patches are not discussed here.
</p>
<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
<h3><a name="comp-relation">Component Diagram</a></h3>
<p>
The following two diagrams illustrate how and where each component is used.
</p>
<p>
The first diagram depicts multilingual domain name processing by the client application using the API for name resolution or the client side resolver without using mdnsproxy.
</p>
<p class="center-image">
<img src="../../img/spec/components2.jpg" alt="mDNkit components #2">
</p>
<p>
The second diagram depicts multilingual domain name processing using mdnsproxy.
</p>
<p class="center-image">
<img src="../../img/spec/components.jpg" alt="mDNkit components #1">
</p>
<p>
In the diagrams, the italicized parts are compoments included in the kit.
</p>
<p>
Local encoding such as SJIS is used in the upper half of the diagram, and IDN encoding used by multilingualized DNS such as Punycode is used in the lower half of the diagram. The components provided by this kit serve as a bridge between these two worlds.
</p>
</body>
</html>
|