Конфиг для Mikrotik с помощью make config: відмінності між версіями
Перейти до навігації
Перейти до пошуку
Sv (обговорення | внесок) Немає опису редагування |
Sv (обговорення | внесок) Немає опису редагування |
||
Рядок 1: | Рядок 1: | ||
DHCP-сервер на Mikrotik без использования Radius | ==DHCP-сервер на Mikrotik без использования Radius == | ||
Модуль make_config периодически формирует конфиг и загружает его на Mikrotik с помощью ssh. Авторизация по сертификату. | |||
Шаблон /usr/local/nodeny/kernel/make_config/mikrotik.tmpl: | Шаблон /usr/local/nodeny/kernel/make_config/mikrotik.tmpl: | ||
<pre> | <pre> | ||
ssh -i /usr/local/nodeny/mikdhcp/id_dsa -p29 admin@1.2.3.4 << EOF | ssh -i /usr/local/nodeny/mikdhcp/id_dsa -p29 admin@1.2.3.4 << EOF |
Версія за 14:07, 25 листопада 2019
DHCP-сервер на Mikrotik без использования Radius
Модуль make_config периодически формирует конфиг и загружает его на Mikrotik с помощью ssh. Авторизация по сертификату.
Шаблон /usr/local/nodeny/kernel/make_config/mikrotik.tmpl:
ssh -i /usr/local/nodeny/mikdhcp/id_dsa -p29 admin@1.2.3.4 << EOF /ip dhcp-server lease remove [find comment=nodeny] {% for user in users %} {% eval i = 0 %} {% for ip in user.ips %} {% if user.mac.[i] %} /ip dhcp-server lease add address={{ip.ipa}} mac-address={{user.mac.[i]|pretty_mac}} address-list=goodboys comment=nodeny {% eval i = i + 1 %} {% endif %} {% endfor %} {% endfor %} EOF
/usr/local/nodeny/kernel/make_config_mikrotik.cfg:
run => 0, period => 60, template => { 'mikrotik.tmpl' => { # куда будет записан сформированный конфиг file => '/tmp/mikdhcp.sh', # системная команда, которая будет выполнена перед записью конфига, можно '' cmd_before => 'sh /tmp/mikdhcp.sh >/dev/null 2>/dev/null', # системная команда, которая будет выполнена после записи конфига, можно '' cmd_after => '', # удалять пустые строки pretty => 1, }, }, subs => { pretty_mac => sub { my $mac = shift; $mac =~ s/(..)/$1:/g; chop $mac; return $mac; }, },
Тестовый запуск:
perl nokernel.pl -v -m=make_config -g=make_config_mikrotik
Результат
ssh -i /usr/local/nodeny/mikdhcp/id_dsa -p29 admin@1.2.3.4 << EOF /ip dhcp-server lease remove [find comment=nodeny] /ip dhcp-server lease add address=10.0.0.26 mac-address=00:00:00:00:00:11 address-list=goodboys comment=nodeny /ip dhcp-server lease add address=10.0.0.20 mac-address=00:00:00:00:00:22 address-list=goodboys comment=nodeny EOF