22
Ноя

Cloudflare как динамический DNS на Mikrotik

Есть чудесный бесплатный сервис Cloudflare, который позволяет прятать свой реальный ip при использовании доменных имен. Быстро изменяет записи на всех доменных именах и за деньги может даже отфильтровать трафик от флуда и прочей грязи (но это уже другая история, скажем дорогая и не удобная история)


Сразу привожу полный скрипт, а нижу будет разбор полётов.

######## Set and collect general variables #########
:global hostname "soft.hd.zp.ua"
:global resolvedIP ""
:global externalIP ""
:global WANInterface "ISP1"
 
######## Set CloudFlare variables #################
:local CFemail "[email protected]"
:local CFtkn "3c8b585915544145becded4f2b58068177a33"
:local CFzone "hd.zp.ua"
:local CFid "178055949"
:local CFtype "A"
:local CFttl "1"
:local CFservicemode "0"
:local CFDomain "soft"
:local CFDebug "true"
 
######## Resolve and set IP-variables ##########
/ip dns cache flush
:local currentIP [/ip address get [/ip address find interface="ISP1" ] address];
:set externalIP [:pick $currentIP 0 [:find $currentIP "/"]];
:set resolvedIP [:resolve $hostname];
 
######## Build CF API Url #########################
:local CFurl "https://www.cloudflare.com/api_json.html\3F"
:set CFurl ($CFurl . "a=rec_edit&tkn=$CFtkn&id=$CFid");
:set CFurl ($CFurl . "&email=$CFemail&z=$CFzone&type=$CFtype");
:set CFurl ($CFurl . "&name=$CFDomain&service_mode=$CFservicemode&ttl=$CFttl");
 
######## Write debug info to log #################
:if ($CFDebug = "true") do={
:log info ("CF: hostname = $hostname")
:log info ("CF: resolvedIP = $resolvedIP")
:log info ("CF: currentIP = $currentIP")
:log info ("CF: externalIP = $externalIP")
:log info ("CF: CFurl = $CFurl&content=$externalIP")
};
 
######## Compare and update CF if necessary #####
:if ($resolvedIP != $externalIP) do={
:log info ("CF: Updating CF, setting $CFDomain = $externalIP")
/tool fetch mode=https url="$CFurl&content=$externalIP" keep-result=no
/ip dns cache flush
} else={
:log info "CF: No Update Needed!"
}

:global hostname «soft.hd.zp.ua» — это полный адрес поддомена
:global WANInterface «ISP1» — интерфейс Mikrotik с динамическим IP который смотрит в интернет
:local CFemail «[email protected]» — почта Вашей учётной записи на Cloudflare
:local CFtkn «3c8b585915544145becded4f2b58068177a33» — это секретный ключик Вашей учётки на Cloudflare, взять можно тут Account — My account — Your API key is: 3c8b585915544145becded4f2b58068177a33
:local CFzone «hd.zp.ua» — Ваш домен
:local CFid «178455949» — это ключ домена, как получить чуть ниже
:local CFtype «A» — тип записи
:local CFttl «1»
:local CFservicemode «0» — скрывать или нет ip адрес, если скрывать, поставить «1»
:local CFDomain «soft» — имя субдомена
:local CFDebug «true» — дебажим или нет

И так, как получить :local CFid для определенного субдомена
Для этого нужен любой сервер под Linux
Заходим через ssh или telnet на сервер и даём команду
curl https://www.cloudflare.com/api_json.html -d ‘a=rec_load_all’ -d ‘tkn=3c8b585915544145becded4f2b58068177a33′ -d ’[email protected]’ -d ‘z=hd.zp.ua’
Опять же:
tkn=3c8b585915544145becded4f2b58068177a33 — наш ключик от учётки
[email protected] — email учётной записи
z=hd.zp.ua — наш домен

Получим в ответ многабукаф по всем записям домена hd.zp.ua
Нам необходимо найти rec_id»:»178455949″ принадлежащий субдомену soft.hd.zp.ua

Добавляем скрипт в System – Scripts , например с именем cloudflare soft.hd.zp.ua
После чего добавляем в System – Scheduler задание с именем cloudflare soft.hd.zp.ua и выбираем желаемый интервал выполнения.

Обратная связь

    The average number of adverse effects was 3. T max is 23 minutes in females and 32 minutes in males. What other drugs will affect doxercalciferol Viagra natural sin receta. Archived from the original on 2009-08-14.

    Talk to your doctor before using this form of cefadroxil if you have diabetes. What should I tell my healthcare team before starting CABLIVI? There is no FDA guidance on the use of Tetracycline (oral) with respect to specific gender populations https://www.apotheke-rezeptfreie.com/. Opper K, Uder S, Song K Development of Heterogeneous and Homogeneous Platforms for Rapid Analysis of DNA-Protein Interactions.