Mikrotik RouterOS, настройка динамического DNS на примере сервиса NO-IP

30.11.2013
Поделиться в:

Большинство интернет провайдеров, предоставляют своим клиентам, динамический внешний IP адрес. И если у вас есть необходимость получить доступ к вашей сети или отдельным устройствам за NAT из вне, вам просто необходимо знать его. Но это не всегда возможно, так как этот IP часто меняется, иногда раз в сутки, иногда при каждом подключении или пере-подключении и т.д. Выход из этой ситуации, может быть разный. Например, покупка у провайдера выделенного IP адреса. Но не всегда есть такая возможность и не все провайдеры предоставляют такую услугу. Поэтому еще одним из вариантов - это использование сервиса динамического DNS. Такие сервисы бывают как платные, так и бесплатные. И одним из самых популярных, бесплатных сервисов динамического DNS, является - NOIP.com.

Так, давайте же рассмотрим, как нам воспользоваться этим сервисом, в связке с оборудованием компании Mikrotik.

И так, для начала, нам нужно зарегистрироваться на сервисе NOIP. Для этого, на сайте, нужно заполнить не большую форму, указав свои регистрационные данный, и выбрать один из вариантов субдомена.

 

Регистрация на сервисе NO-IP

 

После стандартной процедуры регистрации, у вас будет логин, пароль и субдомен, типа lanmarket.no-ip.biz. Этих данных, уже вполне достаточно, чтобы приступить к настройке вашего маршрутизатора. Но для этих целей, потребуется специальный сценарий (скрипт), приведенный ниже, который нужно изменить в соответствии с данными полученными при регистрации. А именно, вписать их вместо помеченного красным цветом.

 

# No-IP сценарий автоматического обновления Dynamic DNS

#--------------- Измените некоторые значения в этой секции ------------------

# No-IP информация пользователя
:local noipuser "ваш логин"
:local noippass "ваш пароль"
:local noiphost "ваш субдомен, типа - hostname.no-ip.net"

# Интерфейс к которому подключен провайдер (интернет)
:local inetinterface "например: ether1"

#--------------------- Не делайте никаких изменений ниже!!! ------------------------


: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/update3Fmyip=$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."
}

При этом, если у вас подключение к провайдеру выполняется по одному из тоннельных протоколов, (PPPoE, PPtP и т.д.), то вам необходимо в строке :local inetinterface, указать его имя, например - pppoe-out1.

Далее, мы подключаемся к маршрутизатору, посредством фирменной утилиты Winbox, и переходим в раздел System - Scripts, где добавляем новую запись кнопкой +. И вставляем туда наш сценарий, оставляя права write, test и read. Имя сценарию - Nmae, так же можно присвоить более понятное.

Создание нового скрипта

Сохраняем скрипт кнопкой OK, и теперь нам нужно инициировать его регулярный запуск. Допустим, проверять наш внешний IP и если он изменился, отправлять данный на DNS сервер, мы будем каждые 5 минут.

Делается это в разделе меню System - Sheduler. Где кнопкой +, мы так же, создаем новую запись следующего характера. Name - указываем понятно нам имя записи, Interval - как и договорились указываем 00:05:00, On Event - имя нашего скрипта, и права Policy - как и в сценарии, write, test и read.

 

Настройки в разделе меню

 

После сохранения записи расписания, у нас каждые 5 минут, будет инициироваться проверка внешнего IP адреса.

Теперь, если у вас открыт доступ к маршрутизатору из вне, вы можете проверить работоспособность динамического DNS, набрав в адресной строке браузера, ваш субдомен, типа lanmarket.no-ip.biz.

logo
Mikrotik RouterOS, настройка динамического DNS на примере сервиса NO-IP
Отзывы покупателей
Рейтинг покупателей
NAN / 5
На основе 2 оценок покупателей
0%
0%
0%
0%
0%
Отзыв
Отлично
Заголовок*
Достоинства
Недостатки
Комментарий*
Представьтесь
Комментарий
а как быть если вместо :local inetinterface например: ether1" нужно указать интерфейс лист с ван портами, чтобы скрипт определял активный интерфейс и уже этот интерфейс регистрировался"
Комментарий
Александр, наверное, стандартными средствами - никак. Нужно писать скрипт, который будет определять доступный WAN порт и подставлять его."

Возврат к списку


Популярное оборудование

Авторизуйтесь, чтобы добавить отзыв

x