DNSPROXY(8)

NAME
dnsproxy - DNS proxy server for multi-lingual DNS

SYNOPSIS
dnsproxy [ -daemon ] [ -config <config-file> ] [ -logfile <log-file> ]

DESCRIPTION
dnsproxy resides between application (resolver) and DNS server.

It accepts DNS requests from application (resolver) and converting domain names in those requests into DNS server's acceptable encoding, and forward those converted requests. It also accepts responses from DNS server and converting domain names in those resopnses into application's acceptable encoding and forward those responses to applications.

OPTIONS

-daemon
    Run dnsproxy as daemon. Otherwise, dnsproxy will run as normal console program.

-config <config-file>
    Specifies configuration file (see later). If not specified, dnsproxy uses default configuration file. See FILES section for default configuration file.

-logfile <log-file>
    Specifies logging file. If not specified. dnsproxy uses default logging file. See FILES section for default configuration file.

CONFIGURATION
Configuration file is simple text file which defines several configuration data.

listen <address>
    Defines listening port (both TCP and UDP). <address> is one of

        <IP address>:<port number>
        :<port number>
        <IP address>

    If omitted, dnsproxy uses default value shown below.

        IP Address INADDR_ANY (0.0.0.0)
        port number 53

forward <address> [ bind4compat ]
    Defines forwarding server's address. Format is same as 'listen'.

    example:
        forward 10.1.2.3

    If "bind4compat" was given, dnsproxy uses above listen port as forwading UDP's source address. If not given, dnsproxy uses port > 1024 as forwading UDP's source.

log-file <path>
    Defines log file name. It may be overridden with command line option '-logfile <path>'. If no log file given, dnsproxy writes log data into "/tmp/dnsproxy.log". Sending SIGHUP causes dnsproxy to close the log file and then reopen it.

client-translation <ZLD> <Encoding>
    Defines client side character encoding scheme. Some clients locally encode domain name and add <ZLD> (Zero Level Domain) to it. In those cases, use <ZLD> and specify corresponding encoding. Usually, no mDNS'nized client passes domain name in client's local encoding. For those case, use '.' as ZLD. You may specify several 'client-translation's if client uses several encoding with different ZLD.

    example:
        client-translation .i-dns.net UTF-5     # accept ZLDs
        client-translation .          Shift_JIS

    Acceptable ZLD will depend on client programs. Also acceptable encodings depend on client and the implementation of `iconv()' function, which dnsproxy uses internally for encoding conversion. Check the document on `iconv()' for acceptable encoding names.

alternate-encoding <Encoding>
    Defines client side alternative encoding scheme. The alternative encoding will be used when the conversion from server-side encoding to the default local encoding is failed due to the lack of mapping some certain characters to the local character set.

    example:
        alternate-encoding RACE

    The alternative encoding must be an ASCII compatible encoding, such as RACE.

normalize <Normalization Scheme> ...
    Defines domain name normalization schemes. You can specify several normalizations and they are applied left to right.

    example:
        normalize ja-fullwidth unicode-form-c

    Acceptable normalizations depend on 'libmdn' library. Check documents for 'libmdn' for more detail.

server-translation <Encoding>
    Defines server side character encoding scheme. Finally, domain names in DNS request from clients are converted to this encoding and forwarded to mDNS'nized DNS server.

    example:
        server-translation . UTF-8

user-id <Name-or-ID>
    Defines a user ID in which dnsproxy operates. Dnsproxy tries to change the user ID of its process to the specified one, soon after initialization.

    example:
        user-id  nobody
        user-id  9999

    It is strongly recommended to use this option for security reasons.

group-id <Name-or-ID>
    Defines a group ID in which dnsproxy operates. Dnsproxy tries to change the group ID of its process to the specified one, soon after initialization.

    example:
        group-id  nobody
        group-id  9999

root-directory <Directory>
    Defines the pathname of the root directory for the dnsproxy process. Dnsproxy performs chroot() to set the specified directory as the root directory for the process after initialization.

    example:
        root-directory /var/dnsproxy

log-level <Level>
    Sets the log level. Available levels are ``none'' (no logging at all), ``fatal'' (only logs fatal errors), ``warn'' (also logs warning messages) and ``trace'' (also includes trace level messages). The default level is ``warn''. Please note that if you set the level to ``trace'', the size of the log file grows quickly.

NOTES
Some applications locally mangles domain names. In those cases, dnsproxy cannot works correctly.

For 'nslookup', it generally reject non-ascii domain names. You need 8bit through patched version of nslookup.

For UNIX resolver generally rejects domain names using non-ascii characters. You need 8bit through patched version of resolver.

For Windows, NS works well with dnsproxy. For IE, turn off "use UTF-8" setting, and generally works. But for IE, embedded URL's in page will converted by IE (to page's original encoding), and they conflict with dnsproxy.

FILES
@ETCDIR@/dnsproxy.conf
    Default configuration file.
/tmp/dnsproxy.log
    Default logging file.

SLL ALSO
named(8), libmdn(3), iconv(3)