Взято: http://ru.gentoo-wiki.com/wiki/DNS

DNS сокращение от Domain Name Service, или как вариант Domain Name Server. Как известно, каждый компьютер, подключенный к TCPIP сети имеет свой уникальный IP-адрес. Как же запомнить IP-адреса всех интересующих компьютеров? Так как человеку удобнее работать с мнемониками, чем с цифрами, каждому IP-адресу можно присвоить одно или несколько имен. Чтобы это сделать, надо прописать соответствующие строки в файл:

Файл: /etc/hosts
192.168.0.6     kmeaw
192.168.0.100 ws001 ws001.meaw.net
192.168.0.101 ws002 ws002.meaw.net termkmeaw

А что делать, если сеть очень большая? Например Интернет? Не записывать же в /etc/hosts миллиарды хостов? Поэтому и появились DNS-серверы. Они преобразуют доменные имена в IP-адреса и наоборот.

Code: host
$ host www.ru
www.ru has address 194.87.0.50
www.ru mail is handled by 5 hq.demos.ru.
Code: host
$ host 194.87.0.50
50.0.87.194.in-addr.arpa domain name pointer www.ru.

Но DNS-сервер - это такой же компьютер, имеющий IP-адрес. Откуда вашей системе знать, как обратится к нему? Для этого есть файл

Файл: /etc/resolv.conf
 search meaw
nameserver 192.168.0.1

Директива search указывает домен, а nameserver - IP-адрес DNS-сервера. Таких строк может быть несколько.

Теперь представим себе такую ситуацию: есть небольшая контора с одним Интернет-соединением и парой десятков машин. Как научить все внутренние машины определять IP по имени хоста? Надо установить собственный DNS-сервер. Для начала соберем его с помощью portage:

emerge bind

Теперь настроим основной конфигурационный файл

Файл: /etc/bind/named.conf
 options {
directory "/var/bind";
forwarders {
10.59.8.253;
};
listen-on { 192.168.0.1; 127.0.0.1; };
query-source address * port 53;
pid-file "/var/run/named/named.pid";
};
zone "." IN {
type hint;
file "named.ca";
};
zone "localhost" IN {
type master;
file "pri/localhost.zone";
allow-update { none; };
notify no;
};
zone "127.in-addr.arpa" IN {
type master;
file "pri/127.zone";
allow-update { none; };
notify no;
};

Не забудьте сменить 192.168.0.1 на ваш IP. Осталось лишь запустить сервис и прописать его в rc-update:

# /etc/init.d/named start
* Starting named... [ OK ]
# rc-update add named default
* named added to runlevel default
* Caching service dependencies...
* rc-update complete.

Все работает только в том случае если настроен файл /etc/hosts