Содержание:
- Регистрация и создание домена на сервисе No-IP
- Настройка скрипта MikroTik для использования сервиса No-IP
- Проверка работы скрипта с сервисом No-IP
Некоторые провайдеры (например Укртелеком) предоставляют своим пользователям динамический IP адрес, который постоянно изменяется при переподключении. Если вам необходимо подключиться к роутеру MikroTik удаленно из интернета, вы не сможете этого сделать, поскольку не будете знать, какой новый динамический адрес присвоил провайдер.
В этой ситуации нам придет на помощь сервис no-ip.com. Сервис позволяет бесплатно создать доменное имя третьего уровня (например: mikrotik.no-ip.org) и быстро обновлять информацию о том, какой IP адрес соответствует вашему доменному имени. Благодаря сервису No-IP вы сможете подключаться к роутеру MikroTik из интернета не по IP адресу, а по доменному имени.
Для удаленного подключения к роутеру MikroTik с динамическим IP адресом необходимо выполнить следующее:
- Зарегистрироваться на сайте no-ip.com и создать свое доменное имя;
- Настроить в роутере MikroTik скрипт, который будет обновлять информацию о текущем IP адресе роутера.
Регистрация и создание домена на сервисе No-IP
Заходим на сайт no-ip.com и нажимаем ссылку Create Account.
В поле Free DNS нажимаем кнопку Sign Up.
Вводим информацию для регистрации:
- First Name: — ваше имя;
- Last Name: — ваша фамилия;
- Email: — адрес электронной почты;
- Username: — имя пользователя;
- Password: — пароль;
- Confirm Password: — подтверждаем пароль;
- Security Question: — выбираем секретный вопрос, ответив на который, вы сможете восстановить пароль, если его забудете.
- Your Answer: — секретный ответ на секретный вопрос;
- Birthday: — день рождения.
Потом ставим галочку напротив «I agree that I will only create one free No-IP account» и для создания аккаунта нажимаем кнопку Accept, Create My Account.
Далее появится сообщение о том, что вам необходимо зайти на свой электронный почтовый ящик и подтвердить регистрацию.
Заходим на свой email и подтверждаем регистрацию нажатием на ссылку.
После этого вас перебросит на страницу, которая сообщает об успешной регистрации.
Теперь нажимаем на ссылку Login, вводим свой email, пароль и нажимаем кнопку Login.
Выбираем Add a Host (добавить доменное имя).
В поле Hostname указываем имя и выбираем, в каком домене оно будет. Мы выбрали имя technotrade в домене no-ip.org. Для создания доменного имени нажимаем кнопку Create Host.
Следующее окно говорит о том, что мы успешно создали доменное имя technotrade.no-ip.org
Настройка скрипта MikroTik для использования сервиса No-IP
Добавим в роутер MikroTik скрипт, который будет обновлять IP адрес для нашего доменного имени на сервисе No-IP.
Подключаемся к MikroTik с помощью утилиты WinBox.
Открываем меню System — Scripts и нажимаем кнопку Add (красный крестик), чтобы создать новый скрипт.
В поле Name: указываем имя скрипта, например noip.
Оставляем права для скрипта : write, test, read.
В поле Source: вставляем следующий скрипт:
:local ddnsuser «логин на NO-IP.com«
:local ddnspass «пароль на NO-IP.com«
:local ddnshostname «ИМЯ.no-ip.org»
:local ddnsinterface «ИМЯ ИНТЕРФЕЙСА на Mikrotik»
# Описание глобальных переменных
:global ddnslastip
:local str
:local ddnsip
:local ip
:if ([ :typeof $ddnslastip ] = nil ) do={ :global ddnslastip «0» }
:local ddnsip [ /ip address get [/ip address find interface=$ddnsinterface ] address ]
:if ([ :typeof $ddnsip ] = nil ) do={
:log info («ServiceDNS: No ip address on $ddnsinterface .»)
} else={
# Из полученного на интерфейсе IP адреса исключаем маску
:for i from=( [:len $ddnsip] — 1) to=0 do={
:if ( [:pick $ddnsip $i] = «/») do={
:set ddnsip [:pick $ddnsip 0 $i];
}
}
:if ($ddnsip != $ddnslastip) do={
:log info («ServiceDNS: $ddnshostname -> $ddnsip»)
# Отправляем новый IP адрес на сервис No-IP с помощью HTTP запроса
:local str «/nic/update?hostname=$ddnshostname&myip=$ddnsip»
/tool fetch url=»http://dynupdate.no-ip.com/$str» mode=http user=$ddnsuser password=$ddnspass dst-path=(«/ServiceDNS.».$ddnshostname)
:delay 1
# Сохраняем результаты в лог файлах
:local str [/file find name=»ServiceDNS.$ddnshostname»];
:log info [/file get $str contents];
/file remove $str
:global ddnslastip $ddnsip
}
}