[freebsd] Как верно отредактировать конфиг unbound?

641 views
Skip to first unread message

Constantin Stefanov

unread,
Mar 11, 2015, 8:41:22 AM3/11/15
to fre...@uafug.org.ua
Приветствую.

Поставил я тут себе FreeBSD 10.1. Там теперь unbound вместо bind. После
/etc/rc.d/local_unbound setup появились конфиги, почти в каждом написано
сверху:
# Generated by local-unbound-setup
# Do not edit this file.

И как теперь идеологически верно их править? Вот хочется мне в
forward.conf вписать forward-first: yes. То есть понятно, что можно
просто файл отредактировать, плюнув на предупреждение, я так и сделал,
но не затрется ли оно при каких-то обновлениях/прочих манипуляциях типа
dhcp, не зря же там предупреждение написали.

Как все-таки верно править эти конфиги?

--
Константин Стефанов

Качественная точка доступа в любую квартиру - обычная болгарка.

Alexander Sheiko

unread,
Mar 11, 2015, 2:27:44 PM3/11/15
to fre...@uafug.org.ua
Hello Constantin,

Wednesday, March 11, 2015, 2:40:55 PM, you wrote:

CS> Приветствую.

CS> Поставил я тут себе FreeBSD 10.1. Там теперь unbound вместо bind. После
CS> /etc/rc.d/local_unbound setup появились конфиги, почти в каждом написано
CS> сверху:
CS> # Generated by local-unbound-setup
CS> # Do not edit this file.

А unbound у Вас нормально работает? У меня он в режиме локального кеша и
форварда постоянно отваливался. Долго не разбирался - выключил.

CS> И как теперь идеологически верно их править?

Аналогичный вопрос. Как-то оно неявно и сыро сделано.

--
WBR, Alexander Sheiko

Vasiliy P. Melnik

unread,
Mar 11, 2015, 2:31:12 PM3/11/15
to Alexander Sheiko, Рассылка FreeBSD UA
у меня на хостинге работает - даже с ключем setup не запускал, просто поставил в автозагрузку и он работает.

Вот только сегодня узнал что его надо оказывается еще настраивать :)

11 марта 2015 г., 20:27 пользователь Alexander Sheiko <ad...@univ.kiev.ua> написал:

Aleksandr

unread,
Mar 11, 2015, 4:18:48 PM3/11/15
to Constantin Stefanov, fre...@uafug.org.ua
Hello, Constantin Stefanov!

On Wed, Mar 11, 2015 at 03:40:55PM +0300
cs...@mail.ru wrote about "[freebsd] Как верно отредактировать конфиг unbound?":
> Приветствую.
>
> Поставил я тут себе FreeBSD 10.1. Там теперь unbound вместо bind. После
> /etc/rc.d/local_unbound setup появились конфиги, почти в каждом написано
> сверху:
> # Generated by local-unbound-setup
> # Do not edit this file.
>
> И как теперь идеологически верно их править? Вот хочется мне в
> forward.conf вписать forward-first: yes. То есть понятно, что можно
> просто файл отредактировать, плюнув на предупреждение, я так и сделал,
> но не затрется ли оно при каких-то обновлениях/прочих манипуляциях типа
> dhcp, не зря же там предупреждение написали.
>
> Как все-таки верно править эти конфиги?

Верно -- править его под свои задачи.

Если глянуть в /etc/rc.d/local_unbound, то там ясно написано так:

# Create configuration file
if [ ! -f ${local_unbound_config} ] ; then
run_rc_command setup
fi

-f означает "True if file exists and is a regular file."

Другими словами -- файл не будет пересоздаваться, если он существует и
является обычным файлом.

> --
> Константин Стефанов
>
> Качественная точка доступа в любую квартиру - обычная болгарка.

--
Lystopad Aleksandr

Андрей Любимец

unread,
Mar 12, 2015, 12:49:57 AM3/12/15
to fre...@uafug.org.ua
11.03.2015 18:40, Constantin Stefanov пишет:
> Приветствую.
>
> Поставил я тут себе FreeBSD 10.1. Там теперь unbound вместо bind. После
> /etc/rc.d/local_unbound setup появились конфиги, почти в каждом написано
> сверху:
> # Generated by local-unbound-setup
> # Do not edit this file.
>
> И как теперь идеологически верно их править? Вот хочется мне в
> forward.conf вписать forward-first: yes. То есть понятно, что можно
> просто файл отредактировать, плюнув на предупреждение, я так и сделал,
> но не затрется ли оно при каких-то обновлениях/прочих манипуляциях типа
> dhcp, не зря же там предупреждение написали.
>
> Как все-таки верно править эти конфиги?
>
пиши свой конфиг и клади в /etc/unbound/conf.d/

Constantin Stefanov

unread,
Mar 12, 2015, 2:01:59 AM3/12/15
to Alexander Sheiko, fre...@uafug.org.ua
On 11.03.2015 21:27, Alexander Sheiko wrote:
> CS> Поставил я тут себе FreeBSD 10.1. Там теперь unbound вместо bind. После
> CS> /etc/rc.d/local_unbound setup появились конфиги, почти в каждом написано
> CS> сверху:
> CS> # Generated by local-unbound-setup
> CS> # Do not edit this file.
>
> А unbound у Вас нормально работает? У меня он в режиме локального кеша и
> форварда постоянно отваливался. Долго не разбирался - выключил.
Не знаю, я его только включил на свежем пустом сервере, буду смотреть.

> CS> И как теперь идеологически верно их править?
>
> Аналогичный вопрос. Как-то оно неявно и сыро сделано.

--
Константин Стефанов

Вы читатель или писатель? - Я цитатель.

Constantin Stefanov

unread,
Mar 12, 2015, 2:03:43 AM3/12/15
to fre...@uafug.org.ua
On 11.03.2015 23:18, Aleksandr wrote:
>> Поставил я тут себе FreeBSD 10.1. Там теперь unbound вместо bind. После
>> /etc/rc.d/local_unbound setup появились конфиги, почти в каждом написано
>> сверху:
>> # Generated by local-unbound-setup
>> # Do not edit this file.
>>
>> И как теперь идеологически верно их править? Вот хочется мне в
>> forward.conf вписать forward-first: yes. То есть понятно, что можно
>> просто файл отредактировать, плюнув на предупреждение, я так и сделал,
>> но не затрется ли оно при каких-то обновлениях/прочих манипуляциях типа
>> dhcp, не зря же там предупреждение написали.
>>
>> Как все-таки верно править эти конфиги?
>
> Верно -- править его под свои задачи.
>
> Если глянуть в /etc/rc.d/local_unbound, то там ясно написано так:
>
> # Create configuration file
> if [ ! -f ${local_unbound_config} ] ; then
> run_rc_command setup
> fi
>
> -f означает "True if file exists and is a regular file."
>
> Другими словами -- файл не будет пересоздаваться, если он существует и
> является обычным файлом.
Так то оно так, но у меня в какой-то момент его еще и resolvconf затер.
А этого уже много кто позвать может.

--
Константин Стефанов

Нас не понять тинейджерам сопливым, их поколенье выбирает лимонад.

Constantin Stefanov

unread,
Mar 12, 2015, 2:06:50 AM3/12/15
to fre...@uafug.org.ua
Но как? Вот есть forward.conf с содержимым
forward-zone:
name: .
forward-addr: 93.180.9.2
forward-addr: 93.180.9.3

Мне нужно туда последней строчкой дописать
forward-first: yes
, т.е. внутри forward-zone. Как это сделать отдельным файлом? Полностью
переписать forward-zone? Я вот что-то не нашел описания, в каком порядке
включаются файлы и как работают два одинаковых определения.

--
Константин Стефанов

Есть такие решения, после принятия которых тараканы в голове аплодируют
стоя.

George L. Yermulnik

unread,
Mar 12, 2015, 9:19:27 AM3/12/15
to fre...@uafug.org.ua
Hello!

On Thu, 12 Mar 2015 at 09:03:21 (+0300), Constantin Stefanov wrote:

> Так то оно так, но у меня в какой-то момент его еще и resolvconf затер.
> А этого уже много кто позвать может.

resolvconf затёр конфиг unbound'а? %-\

зы: chflags schg /path/to/file и никто ничего больше не затрёт =)

--
George L. Yermulnik
[YZ-RIPE]

Constantin Stefanov

unread,
Mar 12, 2015, 9:30:59 AM3/12/15
to fre...@uafug.org.ua
On 12.03.2015 16:19, George L. Yermulnik wrote:
>> Так то оно так, но у меня в какой-то момент его еще и resolvconf затер.
>> А этого уже много кто позвать может.
>
> resolvconf затёр конфиг unbound'а? %-\
Да вот сам слегка ...эээ...

syshost# local-unbound-setup
syshost# /etc/rc.d/local_unbound setup
Performing initial setup.
Extracting forwarders from /etc/resolv.conf.
original /var/unbound/forward.conf saved as
/var/unbound/forward.conf.20150312.162819
/var/unbound/lan-zones.conf not modified
/var/unbound/unbound.conf not modified
/etc/resolvconf.conf created
original /etc/resolv.conf saved as /etc/resolv.conf.20150312.162819

syshost# ls -l /etc/unbound/forward.conf
-rw-r--r-- 1 root unbound 156 Mar 12 16:28 /etc/unbound/forward.conf
^^^^^^^^^^^^^^^^^
syshost# resolvconf -u

А теперь
syshost# ls -l /etc/unbound/forward.conf
-rw-r--r-- 1 root unbound 26 Mar 12 16:28 /etc/unbound/forward.conf
^^^^^^^^^^^^^^^^

> зы: chflags schg /path/to/file и никто ничего больше не затрёт =)
Тоже способ, но что-то мне кажется, что как-то оно не так было задумано.

--
Константин Стефанов

Веришь ли? Вот миномёт. Не веришь - застрели.

Alexander Sheiko

unread,
Mar 12, 2015, 3:22:43 PM3/12/15
to fre...@uafug.org.ua
Hello Constantin,

Thursday, March 12, 2015, 3:30:35 PM, you wrote:

CS> Extracting forwarders from /etc/resolv.conf.
CS> original /var/unbound/forward.conf saved as
CS> /var/unbound/forward.conf.20150312.162819
CS> /var/unbound/lan-zones.conf not modified
CS> /var/unbound/unbound.conf not modified
CS> /etc/resolvconf.conf created
CS> original /etc/resolv.conf saved as /etc/resolv.conf.20150312.162819

Кроме того, что у меня это нормально не заработало (unbound переставал отвечать
на запросы) мне не понятна логика. Допустим я хочу делать форвард запросов к
unbound не на те NS-ы, которые прописаны в resolv.conf - зачем оно за меня
решает, не ясно. Тогда, когда в систему впилили unbound, я так и не нашёл, что
конкретно задумано и как это штатно переделывать под свои нужды. Просто забил и
заюзал из портов старый добрый named - в нём всё очевидно, предсказуемо и
понятно.

P.S. Возможно сейчас уже есть нормальная документация.
--
WBR, Alexander Sheiko

Mykola Dzham

unread,
Mar 12, 2015, 3:52:19 PM3/12/15
to Constantin Stefanov, fre...@uafug.org.ua
Так, как оно работает, так и задумано: если использовался local-unbound-setup
для генерации конфига unboud, то dns сервера, которые были в /etc/resolv.conf ,
переезжают в forward.conf и используются unbound как форвардеры.
В дальнейшем, если по dhcp приезжает обновление dns серверов, то это обновление
автоматически попадает в forward.conf
За подробностями реализации и как этого избежать в RTFC:
/usr/sbin/local-unbound-setup , /libexec/resolvconf/unbound

Андрей Любимец

unread,
Mar 13, 2015, 5:22:15 AM3/13/15
to fre...@uafug.org.ua
12.03.2015 12:06, Constantin Stefanov пишет:
ага, понял в чём проблема, но конфиги меняются только когда явно вызовешь
local-unbound-setup или /etc/rc.d/local_unbound setup.

Я попутно обнаружил багу - если сделать /etc/rc.d/local_unbound reload (или
kill -HUP `cat /var/run/local_unbound.pid`), то конфиги в conf.d/ не
перечитываются.

gw250:~ #cat conf.d/local-zones.con
stub-zone:
name: nskes.ru.
stub-addr: 10.0.0.1

gw250:~ # /etc/rc.d/local_unbound restart
Stopping local_unbound.
Starting local_unbound.
gw250:~ # host ns.nskes.ru localhost
Using domain server:
Name: localhost
Address: 127.0.0.1#53
Aliases:

ns.nskes.ru has address 10.0.0.1
gw250:~ # /etc/rc.d/local_unbound reload
unbound-checkconf: no errors in /var/unbound/unbound.conf
gw250:~ # host ns.nskes.ru localhost
Using domain server:
Name: localhost
Address: 127.0.0.1#53
Aliases:

ns.nskes.ru has address 212.17.8.242
gw250:~ #

Constantin Stefanov

unread,
Mar 13, 2015, 5:24:57 AM3/13/15
to fre...@uafug.org.ua
On 12.03.2015 22:18, Alexander Sheiko wrote:
> Кроме того, что у меня это нормально не заработало (unbound переставал отвечать
> на запросы) мне не понятна логика. Допустим я хочу делать форвард запросов к
> unbound не на те NS-ы, которые прописаны в resolv.conf - зачем оно за меня
> решает, не ясно. Тогда, когда в систему впилили unbound, я так и не нашёл, что
> конкретно задумано и как это штатно переделывать под свои нужды. Просто забил и
> заюзал из портов старый добрый named - в нём всё очевидно, предсказуемо и
> понятно.
Не, ну тут-то понятно как раз, он берет текущий resolv.conf и из него
делает конфиги для unbound, чтобы все работало "как было". Другой
вопрос, что он в эти конфиги вставляет предупреждения, что руками туда
не лезть, а другого способа не видно. Ну и затирающий из resolvconf тоже
доставляет, хоть он и бэкап при этом делает.

> P.S. Возможно сейчас уже есть нормальная документация.
Где? Я не нашел. То есть на сам unbound документация меня вполне
устраивает, а вот на его интеграцию во FreeBSD что-то ничего нет.

--
Константин Стефанов

A train station is where a train stops.
A bus station is where a bus stops.
On my desk I have a workstation...

Constantin Stefanov

unread,
Mar 13, 2015, 5:29:57 AM3/13/15
to fre...@uafug.org.ua
On 13.03.2015 12:22, Андрей Любимец wrote:
>>>> Как все-таки верно править эти конфиги?
>>>>
>>> пиши свой конфиг и клади в /etc/unbound/conf.d/
>> Но как? Вот есть forward.conf с содержимым
>> forward-zone:
>> name: .
>> forward-addr: 93.180.9.2
>> forward-addr: 93.180.9.3
>>
>> Мне нужно туда последней строчкой дописать
>> forward-first: yes
>> , т.е. внутри forward-zone. Как это сделать отдельным файлом? Полностью
>> переписать forward-zone? Я вот что-то не нашел описания, в каком порядке
>> включаются файлы и как работают два одинаковых определения.
>>
> ага, понял в чём проблема, но конфиги меняются только когда явно вызовешь
> local-unbound-setup или /etc/rc.d/local_unbound setup.
Если бы... Вызов resolvconf -u перезаписывает forward.conf точно. А кто
и когда может позвать resolvconf, я пока не понял.

> Я попутно обнаружил багу - если сделать /etc/rc.d/local_unbound reload (или
> kill -HUP `cat /var/run/local_unbound.pid`), то конфиги в conf.d/ не
> перечитываются.
>
<skip>
А вот это очень странно. На эти конфиги явно сделан include из основного
конфига, причем не на каталог, а на отдельные файлы. Это как так надо
HUP отрабатывать, чтобы сам конфиг обработать, а include из него - нет.
Думаю, это вполне заслуживает багрепорта.

--
Константин Стефанов

Кто открыл что корову можно доить, и что он с ней делал во это время?

George L. Yermulnik

unread,
Mar 13, 2015, 5:33:38 AM3/13/15
to fre...@uafug.org.ua
Hello!

On Fri, 13 Mar 2015 at 12:29:32 (+0300), Constantin Stefanov wrote:

> А кто и когда может позвать resolvconf, я пока не понял.

Как минимум /etc/rc.d/resolv при dhcp

Constantin Stefanov

unread,
Mar 13, 2015, 5:38:51 AM3/13/15
to fre...@uafug.org.ua
Этот я прочитал, он тупой как пробка, парсит resolv.conf и на его основе
делает forward.conf с нуля, затирая все, что было раньше.

> /libexec/resolvconf/unbound
Этот тоже не сильно интеллектуальный. Он тоже пишет forward.conf
(который туда прилетает в переменной unbound_conf) с нуля так, как ему
кажется правильным. Никаких механизмов, чтобы вписать туда что-то от
себя (вот тот же forward-first: yes), я не вижу.

Я что-то упускаю?

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

--
Константин Стефанов

А Мусоргский - бухал!

Constantin Stefanov

unread,
Mar 13, 2015, 5:39:46 AM3/13/15
to fre...@uafug.org.ua
On 13.03.2015 12:33, George L. Yermulnik wrote:
> On Fri, 13 Mar 2015 at 12:29:32 (+0300), Constantin Stefanov wrote:
>
>> А кто и когда может позвать resolvconf, я пока не понял.
>
> Как минимум /etc/rc.d/resolv при dhcp
Ну то есть в текущей обстановке dhcp не совместим с ручным
редактированием forward.conf.

--
Константин Стефанов

Мой знакомый маньяк принимает "Маяк" и мешает принять мне мышьяк.

Slawa Olhovchenkov

unread,
Mar 13, 2015, 5:56:06 AM3/13/15
to fre...@uafug.org.ua
On Fri, Mar 13, 2015 at 12:39:23PM +0300, Constantin Stefanov wrote:

> On 13.03.2015 12:33, George L. Yermulnik wrote:
> > On Fri, 13 Mar 2015 at 12:29:32 (+0300), Constantin Stefanov wrote:
> >
> >> А кто и когда может позвать resolvconf, я пока не понял.
> >
> > Как минимум /etc/rc.d/resolv при dhcp
> Ну то есть в текущей обстановке dhcp не совместим с ручным
> редактированием forward.conf.

ну есть вариант игнорировать DNSы по DHCP

Constantin Stefanov

unread,
Mar 13, 2015, 6:06:54 AM3/13/15
to fre...@uafug.org.ua
Есть вариант schg на forward.conf, как уже выше подсказали, он вообще
все проблемы, эээ, не решает, но не дает им проявиться. А игнорировать
DNS - ну окей, с dhcp разобрались, завтра еще кто-то позовет resolvconf
(не для одного же dhcp его делали), и снова здорово.

Надо, конечно, RFE написать, но я как-то пока не очень понимаю, как
аргументировать, моя аргументация мне кажется слабоватой. Может, в
freebsd-net или как его там кипеш поднять?

--
Константин Стефанов

Бабло побеждает зло.

Alexander Sheiko

unread,
Mar 13, 2015, 6:52:19 AM3/13/15
to Рассылка FreeBSD UA
Hello Constantin,

Friday, March 13, 2015, 11:24:32 AM, you wrote:

>> P.S. Возможно сейчас уже есть нормальная документация.
CS> Где? Я не нашел. То есть на сам unbound документация меня вполне
CS> устраивает, а вот на его интеграцию во FreeBSD что-то ничего нет.

Ну так именно об этом и речь. Влепить - влепили, а нормального описания нет.

--
WBR, Alexander Sheiko

Mykola Dzham

unread,
Mar 14, 2015, 3:09:13 PM3/14/15
to Constantin Stefanov, fre...@uafug.org.ua
Я бы для начала всё же разобрался как именно оно работает.
Что-то мне подсказывает, что для того, чтобы resolvconf не трогал forward.conf ,
нужно просто подредактировать /etc/resolvconf.conf , и что это и есть правильное
решение


Constantin Stefanov

unread,
Mar 15, 2015, 11:13:56 AM3/15/15
to fre...@uafug.org.ua
Да я в общем разобрался. Проблема в том, что ему действительно нужно
править forward.conf, если используется dhcp, это метод прописать DNS
при работающем unbound, но он правит forward.conf методом затирания
старого и написания нового с нуля по собственному разумению. А мне нужно
дописать туда строку, которую он дописывать не умеет. Конечно, я могу
просто выкинуть изменение forward.conf, благо на этой конкретной машине
никакого dhcp у меня не предвидится. Но на мой взгляд это решение того
же типа, как просто schg на forward.conf поставить. Т.е. мою конкретную
задачу оно решит, но что при этом сломает и когда - сходу не скажешь.

--
Константин Стефанов

Ветер в голове попутным не бывает.

Vladislav V. Prodan

unread,
Mar 15, 2015, 1:24:43 PM3/15/15
to Рассылка FreeBSD UA


15 марта 2015 г., 17:13 пользователь Constantin Stefanov <cs...@mail.ru> написал:

On 14.03.2015 22:09, Mykola Dzham wrote:
>
>> On 13 Mar 2015, at 11:06, Constantin Stefanov <cs...@mail.ru> wrote:
>>
>> On 13.03.2015 12:56, Slawa Olhovchenkov wrote:
>>> On Fri, Mar 13, 2015 at 12:39:23PM +0300, Constantin Stefanov wrote:
>>>
>>>> On 13.03.2015 12:33, George L. Yermulnik wrote:
>>>>> On Fri, 13 Mar 2015 at 12:29:32 (+0300), Constantin Stefanov wrote:
>>>>>
>>>>>> А кто и когда может позвать resolvconf, я пока не понял.
>>>>>
>>>>> Как минимум /etc/rc.d/resolv при dhcp
>>>> Ну то есть в текущей обстановке dhcp не совместим с ручным
>>>> редактированием forward.conf.
>>>

 
Да я в общем разобрался. Проблема в том, что ему действительно нужно
править forward.conf, если используется dhcp, это метод прописать DNS
при работающем unbound, но он правит forward.conf методом затирания
старого и написания нового с нуля по собственному разумению. А мне нужно
дописать туда строку, которую он дописывать не умеет. Конечно, я могу
просто выкинуть изменение forward.conf, благо на этой конкретной машине
никакого dhcp  у меня не предвидится. Но на мой взгляд это решение того
же типа, как просто schg на forward.conf поставить. Т.е. мою конкретную
задачу оно решит, но что при этом сломает и когда - сходу не скажешь.

--
Константин Стефанов
 

Я предлагаю задать вопросы в общей рассылке.
Спросить, где документация по unbound?
И что делать, если, например, по dhcp прилетят нестандартные настройки?


--
 Vladislav V. Prodan
 System & Network Administrator
 support.od.ua
Reply all
Reply to author
Forward
0 new messages