artem
25.12.2014
7721

Скрипт на mikrotik для динамической смены доменного имени на сервисе nic.ru

Nic.ru предоставляет сервис аналогичный dyndns — вы можете на зарегистрированное доменное имя указывать необходимый ip-адрес. Но что делать, если у вас динамический внешний IP-адрес? Можно конечно же каждый раз при смене ip заходить на сайт и вручную править, но это не очень удобно и тут на помощь придет mikrotik, так как он поддерживает скрипты.

Ниже будет рассмотрен скрипт, который будет «резолвить» Ваше доменное имя — проверять какой IP на данный момент закреплен за ним, затем проверяет IP на внешнем интерфейсе (на WAN-порту), если данные IP не совпадают, скрипт выполнит https запрос на api.nic.ru на смену IP-адреса в привязке к домену.

# set DDNS variables: UserName; Password; HostName; WAN-interface
:local dDNSdomain «your.domain.ru» — Ваш домен
:local dDNSuser «some_username» — имя пользователя на nic.ru с правом смены ip на ломен
:local dDNSpass «some_password» — пароль пользователя nic.ru
:local dDNSInterfaceName «your_WAN_interface» — внешний (WAN) интерфейс микротика
:local dDNSCurrentIP [:resolve «$dDNSdomain»] — проверка какой IP указан за Вашим доменным именем
:log info («DDNS: Check resolve: $dDNSCurrentIP»)
:local LocalIP [ /ip address get [/ip address find interface=$dDNSInterfaceName ] address ] — получение IP на WAN-порту Микротика
:local LocalIP [:pick $LocalIP 0 [:find $LocalIP «/»]] — приводим IP к необходимому виду 

Далее сравниваем две полученные переменные и при их различие отправляем запрос вида: 

https://api.nic.ru/dyndns/update?hostname=myhost1.test.ru,myhost2.test.ru&myip=192.168.1.1

на nic.ru


:if ($LocalIP != $dDNSCurrentIP) do={
:log info ("DDNS: ddns IP: $dDNSCurrentIP.")
:log info ("DDNS: local IP: $LocalIP.")
:log info ("DDNS: ddns update now!")
/tool fetch url="https://$dDNSuser:$dDNSpass@api.nic.ru/dyndns/update?hostname=$dDNSdomain&myip=$LocalIP"

Далее проводится проверка корректности обновления DNS.

:log info ("DDNS: Check ddns IP...")
/tool fetch url="https://api.nic.ru/dyndns/checkip/" dst-path="/nic.checkip.html"
delay 1
:local dDNSCurrentIP [/file get nic.checkip.html contents]
:local dDNSCurrentIP [:pick $dDNSCurrentIP ([:find $dDNSCurrentIP ": " -1] + 2) [:find $dDNSCurrentIP "</body>" -1]]
:if ($LocalIP = $dDNSCurrentIP) do={
:log info ("DDNS: ddns IP: $dDNSCurrentIP")
:log info ("DDNS: Updated Successfully!.")
}
} else={
:log info ("DDNS: NO ddns update needed!")
}
Подписаться
Уведомление о
guest
0 Комментарий
Inline Feedbacks
View all comments

Остались вопросы?

Я - Кондрашин Игорь, менеджер компании Voxlink. Хотите уточнить детали или готовы оставить заявку? Укажите номер телефона, я перезвоню в течение 3-х секунд.

VoIP оборудование

ближайшие курсы

ближайшие Вебинары

ONLINE

10 доводов в пользу Asterisk

Распространяется бесплатно.

Asterisk – программное обеспечение с открытым исходным кодом, распространяется по лицензии GPL. Следовательно, установив один раз Asterisk вам не придется дополнительно платить за новых абонентов, подключение новых транков, расширение функционала и прочие лицензии. Это приближает стоимость владения станцией к нулю.

Безопасен в использовании.

Любое программное обеспечение может стать объектом интереса злоумышленников, в том числе телефонная станция. Однако, сам Asterisk, а также операционная система, на которой он работает, дают множество инструментов защиты от любых атак. При грамотной настройке безопасности у злоумышленников нет никаких шансов попасть на станцию.

Надежен в эксплуатации.

Время работы серверов некоторых наших клиентов исчисляется годами. Это значит, что Asterisk работает несколько лет, ему не требуются никакие перезагрузки или принудительные отключения. А еще это говорит о том, что в районе отличная ситуация с электроэнергией, но это уже не заслуга Asterisk.

Гибкий в настройке.

Зачастую возможности Asterisk ограничивает только фантазия пользователя. Ни один конструктор шаблонов не сравнится с Asterisk по гибкости настройки. Это позволяет решать с помощью Asterisk любые бизнес задачи, даже те, в которых выбор в его пользу не кажется изначально очевидным.

Имеет огромный функционал.

Во многом именно Asterisk показал какой должна быть современная телефонная станция. За многие годы развития функциональность Asterisk расширилась, а все основные возможности по-прежнему доступны бесплатно сразу после установки.

Интегрируется с любыми системами.

То, что Asterisk не умеет сам, он позволяет реализовать за счет интеграции. Это могут быть интеграции с коммерческими телефонными станциями, CRM, ERP системами, биллингом, сервисами колл-трекинга, колл-бэка и модулями статистики и аналитики.

Позволяет телефонизировать офис за считанные часы.

В нашей практике были проекты, реализованные за один рабочий день. Это значит, что утром к нам обращался клиент, а уже через несколько часов он пользовался новой IP-АТС. Безусловно, такая скорость редкость, ведь АТС – инструмент зарабатывания денег для многих компаний и спешка во внедрении не уместна. Но в случае острой необходимости Asterisk готов к быстрому старту.

Отличная масштабируемость.

Очень утомительно постоянно возвращаться к одному и тому же вопросу. Такое часто бывает в случае некачественного исполнения работ или выбора заведомо неподходящего бизнес-решения. С Asterisk точно не будет такой проблемы! Телефонная станция, построенная на Asterisk может быть масштабируема до немыслимых размеров. Главное – правильно подобрать оборудование.

Повышает управляемость бизнеса.

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

Снижает расходы на связь.

Связь между внутренними абонентами IP-АТС бесплатна всегда, независимо от их географического расположения. Также к Asterisk можно подключить любых операторов телефонии, в том числе GSM сим-карты и настроить маршрутизацию вызовов по наиболее выгодному тарифу. Всё это позволяет экономить с первых минут пользования станцией.