DNS For Multibyte Charset
이 문서는 안녕에서 다국어 도메인을 사용하기 위한 문서 이다. 이 문서대로 사용
을 하기 위해서는 안녕에서 제공하는 bind 9.2.3-4,8 버전 부터이니, 버전을 확인
하고 버전이 낮으면, 업데이트를 하기 바란다. 안녕 2부터는 기본 지원을 한다.
안녕 1.x의 경우 간단하게 autoupdates 또는 pkgadd 명령으로 할 수가 있으며, 직
접 rpm 명령으로 업데이트를 하기 위해서는 --nodeps 옵션을 주고하기 바란다. 이
는 9.2.2 까지는 bind-utils 에 라이브러리들이 포함이 되어 있었으나, 9.2.3 부
터는 bind-utils 에 있는 유틸리티들을 정적으로 컴파일 하였기 때문에 bind 패키
지에 포함이 되었기 때문이다.
작성: 김정균
안녕의 bind 9.2.3-4,8 부터는 multibyte 도메인을 지원하도록 패치가 되어 있다.
기존의 패치들이 domain 관련 utility 들만 패치를 하는 것과는 달리, 안녕에서는
named.conf 와 zone 파일에서도 다국어 도메인을 지원하도록 패치가 되어 있다.
이 패치가 적용이 되므로서, nslookup, dig, host 등에서 punycode 로의 변환 없
이 바로 질의를 할 수가 있다. 또한, 설정파일 역시, punycode 로 변환하는 과정
이 필요없이 named.conf 와 zone file 에 다국어를 직접 입력을 할 수 있다.
이 패치는 현재 한국어와 일본어를 제공하며, 기본값은 EUC-KR 이다.
또한, (char) str & 0x80 으로 체크되는 언어는 모두 지원이 되며, 로컬 도메인의
경우 server.c 패치의 set_idn_charset 함수에 적절히 등록을 해 주면 된다.
일본어의 경우 EUC-JP 는 지원이 되나, SJIS 는 지원되지 않는다. 이는 체크 방식
이 EUC-JP 와는 틀리고 (EUC-JP 는 str & 0x80 로 체크가 가능하나, SJIS 는 안된
다.) 본인이 테스트를 할 만한 환경이 되지를 못해서 이다.
* named.conf 설정
named.conf 에서 도메인 설정 시에, origin 은 변환이 되며, 파일 이름은 변환
이 되지 않는다.
zone "한글.com" IN {
type master;
file "한글.com.zone";
allow-update { none; };
};
의 예에서, origin 한글.com 은 변환이 되며, file 에 지정된 한글.com.zone 은
변환이 되지 않는다.
기본 charset 을 사용하지 않고 다른 charset 을 사용하고 싶다면, 다음과 같이
설정한다.
zone "CH+EUC-KR.한글.com" IN {
type master;
file "한글.com.zone";
allow-update { none; };
};
CH+EUC-KR 은 실제 도메인에 반영이 되지 않으며, 단순히 강제로 문자셋을 지정
하기 위함이다. 일본어의 경우
zone "CH+EUC-JP.일본어.com" IN {
type master;
file "일본어.com.zone";
allow-update { none; };
};
와 같이 할 수 있다. 만약, DEFAULT_IDN_CHARSET 을 EUC-JP 로 맞추어 놓는다면
문자셋 설정 없이 사용할 수 있게 되는 것이다.
* zone file 설정
zone file 설정은 조금 주의 해야 한다. 일단 zone file 설정은 LHS 와 RHS 의
표현식으로 이루어진다. 예를 들어
ns IN A 1.1.1.1
의 경우 LHS 는 ns, RHS 는 1.1.1.1 로 생각을 하기바란다.
LHS 의 경우에는 기본적으로 DEFAULT_IDN_CHARSET 에 의하여 변환이 된다. 만약
이를 변경하고 싶을 경우에는 파일 최상단에
$CHARSET EUC-JP
와 같이 설정을 할 수 있다.
RHS 의 경우에는 CNAME 에 $CHARSET 과 다른 idn 을 사용해야 하는 경우도 있기
때문에 zone file 에서 처럼 CH+CHARSTE.이름 의 형식으로 지정을 한다.
* client program 에서의 사용
이 부분은 dig/nslookup/host 등의 사용에 주의할 점이다.
idn patch 는 시스템의 iconv 를 이용하기 때문에 시스템의 언어관련 환경 변수
에 의하여 변환이 이루어진다. 그러므로 한글 도메인을 검색하기 위해서는 환경
변수 들이 한글 환경에 있어야 한다.
만약 환경 변수에 상관없이 강제로 변환을 하고 싶다면
$ CHARSET=EUC-JP nslookup 일본어.com
과 같이 하면 될지도 모르겠다 ^^;
* 아쉬움 ..
일본어는 지원을 하려 했으나, 아마도 일본어는 SHIFT-JIS 를 주로 사용하는 듯
싶다. 하지만 SHIFT-JIS 의 경우 본인이 테스트할 환경이 안되고, 또한, EUC-JP
와는 다른 체크를 해야 하는 관계로, 마무리를 하지 못했다는 점이 아쉽기는 하
다. 어느 정도 어느 부분을 하면 되는지 정도는 이 패치를 통하여 알 수 있을테
니, 수정을 할 수 있는 환경에 있는 사람이 해 주면 될 것 같다. ^^;
|