DNS
Материал из Gentoo Linux Wiki
- Вернуться к разделу Частых Вопросов и Ответов
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-адреса и наоборот.
$ hostx microsoft.com microsoft.com A 207.46.130.108 microsoft.com A 207.46.250.119 $ hostx 195.34.32.10 Name: ns.mtu.ru Address: 195.34.32.10
Но 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
