DNSPROXY(8)

NAME
mdnsproxy - DNS proxy server for multi-lingual DNS

SYNOPSIS
mdnsproxy [ -daemon ] [ -config <config-file> ] [ -logfile <log-file> ]
mdnsproxy -version

DESCRIPTION
mdnsproxy 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 mdnsproxy as daemon. Otherwise, mdnsproxy will run as normal console program.

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

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

-version
    Prints version information to standard error and quits.

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, mdnsproxy 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, mdnsproxy uses above listen port as forwading UDP's source address. If not given, mdnsproxy uses port > 1024 as forwading UDP's source.

client-encoding <Encoding>
    Defines client side character encoding scheme.

    example:
        client-encoding  EUC-JP

mdn-conf-file <path>
    Specifies configuration file for libmdn, the library responsible for most of the MDN processing for mdnsproxy. If the entry is ommitted, mdnsproxy reads "@sysconfdir@/mdn.conf".

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

    If <path> is set to ``syslog'', mdnsproxy outputs log messages with syslog. If <path> is set to ``stderr'', mdnsproxy outputs messages to standard error.

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.

    If mdnsproxy is configured to output log messages with syslog (see the description of the ``log-file'' entry), ``fatal'' messages are output with ``err'' priority, ``warning'' messages with ``warning'' and ``trace'' messages with ``debug''.

mdn-log-level <Number>
    Specifies the logging level for libmdn. Unless you are debugging mDNkit, you should keep this entry unspecified.

syslog-facility <Facility>
    Specifies the syslog facility to be assigned to log messages output by mdnsproxy. The entry is ignored unless the `log-file' entry is set to ``syslog''. If the entry is not specified, ``daemon'' will be used.

user-id <Name-or-ID>
    Defines a user ID in which mdnsproxy 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 mdnsproxy 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 mdnsproxy process. Dnsproxy performs chroot() to set the specified directory as the root directory for the process after initialization.

    example:
        root-directory /var/mdnsproxy

allow-access <Address> ...
    Specifies which hosts are allowed to access to the server. <Address> is an IP address (in dotted numeric form) or IP prefix (IP address followed by a slash and netmask).

    example:
        allow-access 192.168.100.1
        allow-access 192.168.10.0/24

    You can specify one or more <Address>. The server rejects accesses from clients not matched to any <Address>. You can also define allow-access several times.

        allow-access 192.168.100.1
        allow-access 192.168.100.2

    This is equivarent to:

        allow-access 192.168.100.1 192.168.100.2

    If no entry is specified, the server allows to access from all hosts.

log-on-denied <Flag>
    is used to tell mdnsproxy whether or not to log denied access. <Flag> is either "yes" or "no". If "yes" is specified, the server records denied access. The default value is "no".

NOTES
Some applications locally mangles domain names. In those cases, mdnsproxy 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 mdnsproxy. 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 mdnsproxy.

FILES
@sysconfdir@/mdnsproxy.conf
    Default configuration file for mdnsproxy.
@sysconfdir@/mdn.conf
    Default configuration file for libmdn.
@logdir@/mdnsproxy.log
    Default logging file.

SLL ALSO
named(8), syslogd(8), syslog.conf(5), libmdn(3), iconv(3)