File: spec.html

package info (click to toggle)
mdnkit-doc 2.4-2
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 3,012 kB
  • ctags: 885
  • sloc: sh: 112; makefile: 45
file content (172 lines) | stat: -rw-r--r-- 6,830 bytes parent folder | download
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>