Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия | |||
wiki:settings:howto_resolv_dns_ppp [2016/11/01 15:55] |
wiki:settings:howto_resolv_dns_ppp [2016/11/01 15:55] Alexandr Metelskiy |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
+ | ====== Как использовать DNS-имя сервера вместо IP-адреса в соединениях PPP ====== | ||
+ | |||
+ | <WRAP center round important 80%> | ||
+ | Данная статья актуальна для **RouterOS до версии 6.2 включительно**. Начиная с версии **RouterOS 6.3** - в туннелях можно указывать DNS-имя сервера. | ||
+ | </WRAP> | ||
+ | |||
+ | |||
+ | Одной из особенностей микротик RouterOS является то, что DNS-имена серверов в VPN-соединениях автоматически преобразовываются в IP-адреса. Когда адрес один, это не составляет большой проблемы, а вот что делать если на одно имя приходится несколько айпи-адресов для балансировки нагрузки? | ||
+ | |||
+ | В этом случае нам поможет следующий скрипт (для терминала): | ||
+ | |||
+ | /system script | ||
+ | add name="Resolve_VPN_DNS" policy=\ | ||
+ | ftp,reboot,read,write,policy,test,winbox,password source=":global pptpinte\ | ||
+ | rfacename \"ИМЯ_ВАШЕГО_VPN_СОЕДИНЕНИЯ\"\r\ | ||
+ | \n:global pptpdnsname \"ИМЯ_ВАШЕГО_VPN_СЕРВЕРА\"\r\ | ||
+ | \n:global pptpdnsip [:resolve \$pptpdnsname]\r\ | ||
+ | \n:global currentip [/interface pptp-client get \$pptpinterfacename connec\ | ||
+ | t-to]\r\ | ||
+ | \n:if (\$currentip != \$pptpdnsip) do={ /interface pptp-client set [find n\ | ||
+ | ame=\$pptpinterfacename] connect-to=\$pptpdnsip}\r\ | ||
+ | \n" | ||
+ | |||
+ | Текст скрипта (для winbox'a): | ||
+ | |||
+ | :global pptpinterfacename "ИМЯ_ВАШЕГО_VPN_СОЕДИНЕНИЯ" | ||
+ | :global pptpdnsname "ИМЯ_ВАШЕГО_VPN_СЕРВЕРА" | ||
+ | :global pptpdnsip [:resolve $pptpdnsname] | ||
+ | :global currentip [/interface pptp-client get $pptpinterfacename connect-to] | ||
+ | :if ($currentip != $pptpdnsip) do={ /interface pptp-client set [find name=$pptpinterfacename] connect-to=$pptpdnsip} | ||
+ | |||
+ | Добавим событие в планировщик, чтобы раз в 10 минут отрабатывал наш скрипт: | ||
+ | |||
+ | /system scheduler | ||
+ | add interval=10m name=DNS_resolve_VPN on-event="/system script run \"Resolve_VPN_DNS\"" \ | ||
+ | start-time=startup | ||