Простой домашний сервер DNS
Эта статья будет дополняться описанием параметров
dnsmasq.
Для домашнего сервера DNS мне отлично подходит dnsmasq, т.к. он простой и включает в себя не только DNS, но также некоторые другие сервисы, которыми также можно будет воспользоваться в будущем.
Аппаратная часть
Так как хотелось, чтобы сервер не шумел, мало потреблял энергии и при этом работал на Linux, то я выбрал PB_SBC01_H3.
Все необходимые инструкции, образы операционных систем и SDK можно скачать с сайта по ссылке выше. Установка операционной системы выполняется в соответствии с инструкцией.
У меня возникала небольшая проблема - система отказывалась загружаться, всякий раз останавливаясь в разных местах, что натолкнуло меня на решение: дело было в недостаточно мощном блоке питания. Для работы этого одноплатника следует использовать блок питания, способный гарантированно отдавать не меньше 2А. Кстати, об этом заявлено и в инструкции пользователя.
Установка и настройка
Как я уже говорил, установка операционной системы выполняется по инструкции с сайта: вы просто записываете образ на TF-карту и все. Кстати, я использовал карту не точно такую, как указано в инструкции, но никаких проблем не возникло. Правда карта таки была класса 10.
Все образы операционных систем, предлагаемых поставщиком (Ubuntu и Debian) - это предустановленые системы с графическим окружением и некоторыми проприетарными компонентами (с которыми я пока не разбирался).
Несмотря на то, что графический "рабочий стол" работает на этом одноплатнике довольно сносно (можно серфить в Интернет, работать с документами и т.п.), для сервера это ни к чему и я просто деинсталлировал из системы некоторые пакеты:
apt purge xfdesktop4 xfdesktop4-data xfce4-terminal xfce4-session xfce4-panel \
xfce4-screenshooter xfce4-appfinder xfce4-notifyd xfce4-settings libxfce4panel-2.0-4 \
libxfce4ui-1-0:armhf libxfce4ui-2-0:armhf libxfce4ui-common xfce4util-common \
xfce4util7:armhf libxfce4util-common chromium-browser gnome-icon-theme gnome-keyring \
language-selector-gnome libgnome-keyring0:armhf libgnome2-common libgnomevfs2-common \
libpam-gnome-keyring:armhf libsoup-gnome2.4-1:armhf network-manager-gnome \
network-manager-openvpn-gnome pinentry-gnome3 policykit-1-gnome adwaita-icon-theme gconf2 \
gconf2-common libxml2:armhf dbus-x11 libfontenc1:armhf libx11-6:armhf libx11-data \
libxau6:armhf libxcomposite1:armhf libxdamage1:armhf libxdmcp6:armhf libxext6:armhf \
libxfixes3:armhf libxi6:armhf libxinerama1:armhf libxmuu1:armhf libxrandr2:armhf \
libxxf86dga1:armhf libxxf86vm1:armhf lightdm geany geany-commo thunar-data \
desktop-file-utils pbsbc01h3-bionic-desktop hicolor-icon-theme
До удаления графического пользовательского окружения было занято около 270МБ оперативной памяти. После удаления, память была занята только на 70МБ.
Так как я записал на карту Ubuntu, то перед установкой dnsmasq нужно остановить и отключить системный DNS-резолвер:
Теперь можно установить dnsmasq:
В этом одноплатнике есть Ethernet и Wifi, и оба интерфейса могут быть подключены к сети. В любом случае имеет смысл ограничить прослушивание DNS-сервером только одного интерфейса. Для этого в файле /etc/dnsmasq.conf разблокируйте и отредактируйте строку:
Чтобы dnsmasq перенаправлял любые DNS-запросы (кроме локальных) вышестоящему DNS-серверу, укажите его адрес в файле /etc/dnsmasq.d/forwards (в моем случае - это адрес домашнего роутера):
Теперь, чтобы добавлять локальные A-записи, их достаточно вносить в файл /etc/dnsmasq.d/addresses в следующем формате:
После редактирования файлов конфигурации нужно перезапустить сервис: