DNS Server

DNS Server is a simple DNS server that forwards all DNS queries to the master DNS server(-s) and sends responses back to clients. It can read DNS zones from the Zone Files ( http://en.wikipedia.org/wiki/Zone_file ) listed in domains configuration file (see DNSDomainsFile option below). DNS Server uses a list of allowed domains. All DNS requests for other domains are rejected. You can block specific IP addresses (or ranges of IP addresses) from accessing DNS Server. This program usually used to protect the real DNS server from attacks. It is very fast and can handle large number of simultaneous connections.

Supported OS: Windows XP, Windows Vista, Windows 7, Windows 8.

Installation

To install DNS Server just unzip dnsserver.zip somewhere on your hard drive.

Usage

DNSServer.exe [-logfile filename] [-cfgfile dnscfg.ini]

Optional command-line parameters:

-logfile filename

It allows to specify log’s filename. Default output: to screen.

-cfgfile dnscfg.ini

The path to the configuration file (see Configuration section below). Default configuration file name: dnscfg.ini.

Configuration

The format for an entry in the configuration file is Option=Value. Entries in the configuration file can appear in any order.

All of the possible entries in the configuration file are listed below.

Log

Would you like to save the log to file. Possible values: Yes, No, Overwrite. Default: No.

DNSTimeout

DNS query timeout (in seconds). Example:

DNSTimeout=5

DNSHost

The host (IP) of the primary DNS server. Example:

DNSHost=8.8.8.8

DNSHost2

The host (IP) of the secondary DNS server. Example:

DNSHost2=8.8.4.4

DNSPort

The port number of the primary DNS server. Default: 53. Example:

DNSPort=53

DNSPort2

The port number of the secondary DNS server. Default: 53. Example:

DNSPort2=53

SrvPort

Listen incoming connections on this port. Example:

SrvPort=53

SrvIP

Listen incoming connections on this IP. Default: Any. Example:

SrvIP=127.0.0.1

SrvPort2

Listen incoming connections on this port. Example:

SrvPort2=54

SrvIP2

Listen incoming connections on this IP. Default: No. Example:

SrvIP2=192.168.0.100

SrvIPv6

Force using IPv6 protocol for incoming connections. Default: No. Example:

SrvIPv6=Yes

FromIP

Send requests to the master DNS server from this IP. Default: Any. Example:

FromIP=192.168.0.1

AllowedDomains

The list of allowed domains. Example:

AllowedDomains=domain1.com,domain2.com

AllowedFile

Load the list of allowed domains from file. Example:

AllowedFile=c:\allowed.txt

AllowedUrl

Load the list of allowed domains from URL. Example:

AllowedUrl=http://127.0.0.1/allowed.php

AllowedUrlX

X is a number between 1 and 9. You can specify up to 9 allowed domains URLs. Example:

AllowedUrl1=http://127.0.0.1/allowed1.php
AllowedUrl2=http://127.0.0.1/allowed2.php
AllowedUrl3=http://127.0.0.1/allowed3.php

AllowExternalDomains

Allow DNS requests for the domains that are not present in allowed domains list. Possible values: Yes, No. Default: No. Example:

AllowExternalDomains=no

ReloadSeconds

Reload the allowed domains every X seconds. Default: 0 - don’t reload. Example:

ReloadSeconds=60

AllowFrom

The list of IP addresses that are allowed access. Example:

AllowFrom=127.0.0.1,192.168.0.1

You can specify the range of allowed IP addresses using CIDR, for example: 127.0.0.0/24

AllowFromFile

Read the list of allowed IP addresses/ranges from file. Example:

AllowFromFile=allowfrom.txt

DenyFrom

The list of IP addresses that are denied access. Example:

DenyFrom=10.10.8.8,10.10.8.9

You can specify the range of denied IP addresses using CIDR, for example: 10.0.0.0/8

DenyFromFile

Read the list of denied IP addresses/ranges from file. Example:

DenyFromFile=denyfrom.txt

AllowDenyOrder

Tells DNS Server the order of processing AllowFrom and DenyFrom rules.

Possible values are:

  • Deny,Allow - if the client does not match DenyFrom rule or it does match AllowFrom rule, then it will be granted access. This is the default order.
  • Allow,Deny - if the client does not match AllowFrom rule or it does match DenyFrom rule, then the client will be denied access.

Example:

AllowDenyOrder=Deny,Allow

AccessLogFile

The path to the access log file. Example:

AccessLogFile=c:\dnsaccess.log

DNSCacheTTL

“Time to live” (in seconds) of the internal DNS records cache. Default: 0 (don’t use cache). Example:

DNSCacheTTL=10

DNSDomainsFile

The path to the list of domain zones (Domains File). Each line in the Domains File contains zone name and the path to the Zone File ( http://en.wikipedia.org/wiki/Zone_file ), delimited by comma, semicolon or equal sign. Path to the Zone File can be enclosed in quotes. It can be absolute path or the path relative to the directory where Domains File resides.

Example:

DNSDomainsFile=c:\temp\dns\domains.txt