Настраиваем DNS-кеширование и динамическую настройку узлов(что-бы не надо было ручками прописывать IP узла, маску подсети и прочее на каждом узле сети) . Для этого мы должны установить(если он ещё не установлен) пакет dnsmasq:


apt-get install dnsmasq

Настройка dnsmasq сводится к прописыванию настроек в конфигурационном файле /etc/dnsmasq.conf нужных нам настроек. Открываем его командой:


sudo gedit /etc/dnsmasq.conf

И прописываем следующие настройки:


# Интерфейсы, которые будет слушать dnsmasq
# интерфейс localhost
interface=lo

# Не предоставлять DHCP(другие сервисы, кроме DNS) на указанном
# интерфейсе
no-dhcp-interface=lo

# интерфейс, смотрящий в нашу локальную сеть 
interface=eth1

# Адрес, который будет слушать dnsmasq для отслеживания запросов DNS
listen-address=127.0.0.1,192.168.0.1

# Диапазон адресов, которые будет раздавать узлам наш DHCP
dhcp-range=192.168.0.2,192.168.0.250

# Домен нашей локальной сети, у меня это dev
domain=dev,192.168.0.2,192.168.0.254

#Локальный домен
local=/dev/

# DHCP будет работать в режиме 3(роутер), адрес шлюза нашей сети 192.168.0.1
dhcp-option=3,192.168.0.1

# Некоторые программы запускают свой экземпляр dnsmasq
# Для того, что-бы исключить конфликты за интерфейсы, 
# мы делаем из доступными для всех интерфейсов
bind-interfaces

# Обычно dnsmasq пересылает DNS-запросы на адрес DNS-сервера, выбранного из  файла /etc/resolv.conf в случайном порядке. Данная опция говорит dnsmaq слать запросы на адреса в строгом порядке с, начиная с первого адреса, и в глубь списка.
strict-order

# Описание узлов сети, где мы указываем:  
#    MAC-адрес
#    имя узла(hostname)
#    IP 
#   время аренды
dhcp-host=52:54:00:12:03:85,vserv,192.168.0.3,infinite
dhcp-host=52:54:00:03:02:85,devserv,192.168.0.8,infinite

# Записи вида CNAME(псевдонимы для доменного имени узла)
cname=lordofgale.dev,devserv
cname=www.lordofgale.dev,devserv

Редактируем файл “/etc/dhcp/dhclient.conf”:


sudo gedit /etc/dhcp/dhclient.conf

Ищем строку “prepend domain-name-servers 127.0.0.1;”, если перед ней был символ комментария, убираем его. Что-бы всё там выглядело примерно так:


#supersede domain-name "fugue.com home.vix.com";
prepend domain-name-servers 127.0.0.1;
request subnet-mask, broadcast-address, time-offset, routers,
domain-name, domain-name-servers, host-name,
netbios-name-servers, netbios-scope;

Редактируем файл /etc/resolv.conf, если у вас не установлен пакет resolver. Убеждаемся, что у нас прописан локальный nameserver с адресом 127.0.0.1:


nameserver 127.0.0.1
search lan

Перезагружаем сервис dnsmasq:


sudo /etc/init.d/dnsmasq restart

Проверяем работу dnsmasq, используя для этого команду:


dig ubuntu.com

Повторяем её, и получаем во второй раз результат "Query time: 0 msec", что не может не радовать. Если сетевые настройки вашей сети были прописаны вручную, на всех узлах сети нужно настроить автоматическую настройку сети при помощи DHCP. Поздравляю, теперь ваша сеть настроена как надо, и узлы сети видны не только по IP, но и по именам узлов(hostname). Проверить это можно командой ping < имя узла>

Как всегда, после хорошо проделанной работы вы заслужили отдых, а значит - время пить чай. Можете уже ставить чайник и доставать печеньки. Удачи!