Скрипт обновления IP на сервисе DDNS NoIP.

Тема в разделе "Вопросы начинающих", создана пользователем nik_o, 1 ноя 2019.

  1. nik_o

    nik_o Новый участник

    Всем привет.
    Нужен совет, так как я впервые сталкиваюсь с маршрутизаторами Mikrotik.
    Есть железка: RBD52G-5HacD2HnD, версия прошивки: 6.45.7 К провайдеру подключается через PPPoE. Подключение к провайдеру и раздача интернета настроена, всё работает.
    Пытаюсь настроить обновление IP на сервисе DDNS No-IP. Вот скрипт:
    Код:
    ##############Script Settings##################
    :local NOIPUser "login"
    :local NOIPPass "password"
    :local WANInter "pppoe-out1"
    :local NOIPDomain "dns"
    ###############################################
    :local IpCurrent [/ip address get [find interface=$WANInter] address];
    
    :for i from=( [:len $IpCurrent] - 1) to=0 do={
      :if ( [:pick $IpCurrent $i] = "/") do={
        :local NewIP [:pick $IpCurrent 0 $i];
        :if ([:resolve $NOIPDomain] != $NewIP) do={
          /tool fetch mode=http user=$NOIPUser password=$NOIPPass url="http://dynupdate.no-ip.com/nic/update\3Fhostname=$NOIPDomain&myip=$NewIP" keep-result=no
          :log info "NO-IP Update: $NOIPDomain - $NewIP"
         }
       }
    }
    Параметры в разделе скрипта Script Settings заполняю реальными значениями. Интерфейс pppoe-out1 существует и IP адрес на нём получен. Об этом говорит вывод команды /ip address print:

    Код:
    Flags: X - disabled, I - invalid, D - dynamic 
     #   ADDRESS            NETWORK         INTERFACE     
     0   192.168.0.1/24     192.168.0.0     LAN
     1 D xx.xx.xx.xx/32     xx.xx.xx.xx     pppoe-out1 
    Пытаюсь выполнить скрипт, ни каких ошибок, но адрес на сервисе DDNS не обновляется.

    Команда
    Код:
    /ip address get [find interface=pppoe-out1] address
    выполненная в консоли нечего не возвращает.

    Как можно отлаживать скрипт для микротика? Можно ли как-то выводить в логи или ещё куда-то отладочную информацию из скрипта, например значение переменной IpCurrent? Может что-то в скрипте не верно? Есть ли где-то информация о скриптовом языке микротика?
    Или может с руками что-то не то? :)

    Скрипт и инструкцию по настройке этого скрипта брал здесь.

    Буду очень благодарен за любой совет.
    Спасибо.
     
  2. nik_o

    nik_o Новый участник

    Задача была решена.
    Решение здесь.
    Буду рад если кому-то это пригодится.

    Для вывода отладочной инфы в консоль надо использовать:
    Код:
    :log debug "Some information"
    # or
    :log debug $SomeVariableName
    Всем спасибо.
     
  3. Илья Князев

    Илья Князев Администратор Команда форума

    Дополню.
    У mikrotik есть собсвенный DDNS. Активируется в /ip cloud
    Дает.имя вида серийный_номер_Устройства.sn.mynetname.net
    Далее можете уже в своем домене через CNAME сделать его более удобным для вас.
     
  4. nik_o

    nik_o Новый участник

    Спасибо за ответ.
    Я знаю об этом, но...
    Но у меня уже есть аккаунт на No-IP с человекочитаемым DNS именем.
    И мне хотелось бы использовать именно его.
     
  5. Kato

    Kato Участник

    так используйте
     
  6. nik_o

    nik_o Новый участник

    Это как?
    Можете более подробно, по шагам, рассказать как это сделать?
     
  7. Илья Князев

    Илья Князев Администратор Команда форума

    Если у вас есть свой домен - создайте в нем запись типа CNAME которая смотрит на "некрасивое имя".
    Что-то типа
    my-lovely-router.mydomain.ru. IN CNAME 1234567890.sn.mynetname.net.
     
  8. nik_o

    nik_o Новый участник

    Ага.
    Я понял. Спасибо за разъяснение.