upd: 08.07.2021
Запись устарела, нашел, что в микротиках есть встроенный инструмент для динамических адресов: https://wiki.mikrotik.com/wiki/Manual:IP/Cloud
DDNS
DDNS or Dynamic DNS is a service that updates the IPv4 address for A records and the IPv6 address for AAAA records periodically. Such a service is very useful when your ISP has provided a dynamic IP address that changes periodically, but you always need an address that you can use to connect to your device remotely. Below you can find operation details that are relevant to the IP/Cloud’s DDNS service:
- Checks for outgoing IP address change: every 60 seconds
- Waits for the MikroTik’s Cloud server’s response: 15 seconds
- DDNS record TTL: 60 seconds
- Sends encrypted packets to cloud.mikrotik.com or cloud2.mikrotik.com using UDP/15252 port
Since RouterOS v6.43 if your device is able to reach cloud2.mikrotik.com using IPv6, then a DNS AAAA record is going to be created for your public IPv6 address. If your device is only able to reach cloud2.mikrotik.com using IPv4, then only a DNS A record is going to be created for your public IPv4 address.
To enable the DDNS service:
[admin@MikroTik] /ip cloud set ddns-enabled=yes [admin@MikroTik] /ip cloud print ddns-enabled: yes ddns-update-interval: none update-time: yes public-address: 159.148.147.196 public-address-ipv6: 2a02:610:7501:1000::2 dns-name: 529c0491d41c.sn.mynetname.net status: updated
Noip.com на Mikrotik
Если у вас динамический белый IP-адрес, можно создать доменное имя, которому будет назначаться этот IP.
Динамический IP-адрес — адрес, который назначается автоматически маршрутизатором, непостоянный адрес сетевого интерфейса.
Белый IP-адрес — адрес, который напрямую виден из сети Интернет, не находится за NAT-маршрутизатором и доступен напрямую.
Регистрация на noip
Заходим на http://www.noip.com/, регистрируемся, подтверждаем регистрацию через почту и авторизовываемся
В результате попадаем в личный кабинет
Слева в меню переходим в раздел Dynamic DNS
Нажимаем Add Hostname
В открывшемся окне заполняем hostname и выбираем подходящий домен
Нажимаем Add Hostname
Настройка маршрутизатора
Авторизовываемся через winbox на маршрутизаторе
Заходим в меню System — Scripts
В открывшемся окне нажимаем на «плюсик»
Вводим имя скрипта, например «noip»
Права выставляем read, write и test
Копируем ниже приведенный код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
:local noipuser «LOGIN»
:local noippass «PASSWORD»
:local noiphost «DOMAIN»
:local inetinterface «Intercon»
:global previousIP
:if ([/interface get $inetinterface value—name=running]) do={
# Get the current IP on the interface
:local currentIP [/ip address get [find interface=«$inetinterface» disabled=no] address]
# Strip the net mask off the IP address
:for i from=( [:len $currentIP] — 1) to=0 do={
:if ( [:pick $currentIP $i] = «/») do={
:set currentIP [:pick $currentIP 0 $i]
}
}
:if ($currentIP != $previousIP) do={
:log info «No-IP: Current IP $currentIP is not equal to previous IP, update needed»
:set previousIP $currentIP
# The update URL. Note the «\3F» is hex for question mark (?). Required since ? is a special character in commands.
:local url «http://dynupdate.no-ip.com/nic/update\3Fmyip=$currentIP»
:local noiphostarray
:set noiphostarray [:toarray $noiphost]
:foreach host in=$noiphostarray do={
:log info «No-IP: Sending update for $host»
/tool fetch url=($url . «&hostname=$host») user=$noipuser password=$noippass mode=http dst—path=(«no-ip_ddns_update-« . $host . «.txt»)
:log info «No-IP: Host $host updated on No-IP with IP $currentIP»
}
} else={
:log info «No-IP: Previous IP $previousIP is equal to current IP, no update needed»
}
} else={
:log info «No-IP: $inetinterface is not currently running, so therefore will not update.»
}
|
В поля
:local noipuser «LOGIN»
:local noippass «PASSWORD»
Подставляем свои учетные данные, которые использовали при регистрации на noip
:local noiphost «DOMAIN» — сюда полное доменное имя, которое создали
:local inetinterface «Intercon» — имя интерфейса. В моем случае подключение к провайдеру осуществляется через pppoe и я обозвал этот интерфейс «Intercon». Посмотреть это можно в меню Interfaces. Например, когда подключение выделенное, настройки сети получаются по протоколу DHCP и кабель от провайдера вставлен в 1-ый порт, название скорей всего будет «ether1».
Нажимаем ОК для сохранения скрипта
Заходим в меню System — Sheduler
В открывшемся окне нажимаем на «плюсик»
В следующем окне вводим название задания — например, noip; выставляем интервал запуска — например, 00:01:00 — раз в минуту; в поле «On Event:» вводим название нашего скрипта — noip. Права оставляем такие же, как у скрипта. И нажимаем ОК для сохранения.
Для проверки можно зайти в личный кабинет и исправить адрес на какой-нибудь 7.7.7.7, подождать около минуты, проконтролировав запуск скрипта, и посмотреть снова в личном кабинете, изменился ли IP на текущий.
Источник: https://blog.skillvrn.ru/noip-%D0%BD%D0%B0-mikrotik-rb951/