Образовалась следующая проблема. Интернет дома от Yota. В связи с переходом Yota на LTE, выдали новый роутер, который, в отличии от предыдущего ASUSa, не имеет DNS.
В домашней сетке имеется сервачок, на котором, в частности, балуюсь Web. В общем, нужен DNS для "человеческого" общения с сервером и сайтами :)
Как я понял, есть 2 варианта:
1. Воткнуть старый ASUS в дополнение к новому в качестве DNS (лишняя железка, провода).
2. Организовать DNS на самом сервере (тру Linux-way :D).
Посоветуйте, как будет правильнее.
Если поднимать на сервере, я так понял BIND для меня будет излишен, да и не справлюсь, наверное, я с ним. Нашёл вот это - dnsmasq .
DNS для домашней сетки
Для общения с сайтами на веб сервочке? Для этого сойдет даже /etc/hosts
upd: bind(named) поднимается за 30 минут, зато полноценный локальный dns
проще всего действительно прописать в hosts (кстати в он есть не только в linux), но и поднять собственную зону довольно просто. Только не нужно пытаться сразу понять как все устроено в DNS, а взять пошаговую инструкцию для простейшего случая.
Я так понял, править /etc/hosts нужно на каждом компе ?
Так точно.
Ладно, пусть это будет простейший вариант для отступления ;)
Значит, говорите DNS стоит покурить :)
можешь и dnsmasq попробовать. для тебя в самый раз
Да, хочу чуть по-позже попробовать разобраться. Пока же обошёлся правкой /etc/hosts .
Dnsmasq, минимально в нём только прослушываемый интерфейс нужно указать, а имена он из /etc/hosts сам берёт.
Мда. Оказалось, делов в моём случае - на 3 минуты :)
1. установил dnsmasq
2. Раскомментировал строчку в /etc/dnsmasq.conf
# If you want dnsmasq to provide only DNS service on an interface,
# configure it as shown above, and then use the following line to
# disable DHCP on it.
no-dhcp-interface=eth0т. к. IP у меня раздаёт роутер.
3. Подправил /etc/hosts на сервере
4.
sudo /etc/init.d/dnsmasq restart5. На локальных компах указал, что DHCP выдаёт только адреса, и адрес DNS сервера
6. Перезапустил сетевые подключения
Обновил на файлопомойке Ubuntu Server с 11.10 до 12.04, обновился и dnsmasq. На вопрос о сохранении старого конфига ответил утвердительно (там, собственно, одна строчка: no-dhcp-interface=eth0). Однако теперь по имени могу попасть только на странички на моём сервере (прописанные на нём в /etc/hosts), наружу по именам не пускает... WTF?
наружу по именам не пускает...
Те не резолвит интернет адреса? что в resolv.conf?
Те не резолвит интернет адреса?
Получается так...
что в resolv.conf?
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 127.0.0.1
domain home
search home
nameserver 192.168.1.1
192.168.1.1 - это роутер, DNS на нем нет...
192.168.1.1 - это роутер, DNS на нем нет...
Ну так впиши dns провайдера или гугло dns - 8.8.8.8 и 8.8.4.4
zenon, да, это видал, спасибо. У меня dnsmasq работает только как DNS.
Изменения в ручную resolv.conf ничего не дали, гуглю про resolvconf...
Пока узнал про какие-то изменения, связанные с DNS в Ubuntu 12.04, кажись dnsmasq теперь установлен по умолчанию, даже на десктопе...
https://blueprints.launchpad.net/ubuntu/+spec/foundations-p-dns-resolving
http://www.stgraber.org/2012/02/24/dns-in-ubuntu-12-04/
Не знаю, насколько правильно, но пока решил вопрос так. Правим dnsmasq.conf :
1. Отключаем всякое общение dnsmasq с resolv.conf :
# If you don't want dnsmasq to read /etc/resolv.conf or any other
# file, getting its servers from this file instead (see below), then
# uncomment this.
no-resolv
# If you don't want dnsmasq to poll /etc/resolv.conf or other resolv
# files for changes and re-read them then uncomment this.
no-poll
2. Указываем свой name-server:
# Add other name servers here, with domain specs if they are for
# non-public domains.
#server=/localnet/192.168.0.1
server=8.8.8.8
Зачем по-умолчанию dnsmasq нужен вообще непонятно.
В ubuntu можно в dhclient'е (/etc/dhcp3/dhclient.conf) настроить получать/не получать ip dns-сервера.
Костыль:
/etc/network/interfaces
iface eth0 inet dhcp
up echo "nameserver 8.8.8.8" > /etc/resolv.conf
:)
Зачем по-умолчанию dnsmasq нужен вообще непонятно.
Я так понял - для самокэшированногоускорения :)