Конфиг для Mikrotik с помощью make config: відмінності між версіями

Матеріал з NoDeny
Перейти до навігації Перейти до пошуку
Немає опису редагування
Немає опису редагування
Рядок 1: Рядок 1:
DHCP-сервер на Mikrotik без использования Radius
Шаблон /usr/local/nodeny/kernel/make_config/mikrotik.tmpl:
Шаблон /usr/local/nodeny/kernel/make_config/mikrotik.tmpl:
<pre>
<pre>

Версія за 12:46, 25 листопада 2019

DHCP-сервер на Mikrotik без использования Radius

Шаблон /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