Страница 2 из 2

Re: Как заставить ping и туннели отслеживать изменение адрес

Добавлено: 30 май 2014, 12:11
wolf_ktl
вот мой результат viewtopic.php?f=14&t=5443&p=25842#p25842

Re: Как заставить ping и туннели отслеживать изменение адрес

Добавлено: 30 май 2014, 12:16
wolf_ktl
achekalin писал(а):Я так обошелся:

Код: Выделить всё

:local oldip
:local newip
:local tunnelname
:local tunname
:local address

:foreach i in=[/interface ovpn-client find] do={
  :set tunnelname [/interface ovpn-client get $i name]
  :set tunname [:pick [/interface ovpn-client get $i name] 0 5]
  :if ($tunname = "ovpn-") do={
    :set address [/interface ovpn-client get $i connect-to]
    :set oldip [/interface ovpn-client get $i comment]
    :set newip [:resolve $address]
    :if ($newip != $oldip) do={
      /interface ovpn-client disable $i
      /interface ovpn-client set $i comment=$newip
      :log warning "Tunnel $tunnelname endpoint $address changed from $oldip to $newip";
      /interface ovpn-client enable $i
    }
  }
}


Просто OVPN-туннелей хватает, и проще в комментарии к туннелю хранить тот IP-адрес, в который ресолвился хост, указанный в свойствах туннеля, при прошлой проверке. Туннели, в названии которые в начале нет символов "ovpn-", не трогаем, так можно что-то защитить от обработки этим скриптом (мало ли понадобится). Кстати, disable/enable туннелю делать не обязательно, даже замена комментария заставляет его переподключиться (что было крайне удивительно), но я вставил строки про disable/enable, вдруг при обновлении прошивки изменение комментария перестанет передергивать туннель.



Есть один косяк обновление DNS имен происходит очень долго.. пока сервер отправит команду на обновление DNS проходит 5 минут + микротиик пока подтянет DNS еще 3 мин ...

лечиться командой /ip dns cache flush

Если я правильно понял, что у тебя доменное имя no-ip

Re: Как заставить ping и туннели отслеживать изменение адрес

Добавлено: 30 май 2014, 12:23
achekalin
wolf_ktl писал(а):Есть один косяк обновление DNS имен происходит очень долго.. пока сервер отправит команду на обновление DNS проходит 5 минут + микротиик пока подтянет DNS еще 3 мин ...

лечиться командой /ip dns cache flush

Если я правильно понял, что у тебя доменное имя no-ip


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

ДНС отрабатывает примерно от интервала TTL в свойствах записи в ДНС (а его ставить менее 5 минут страшновато) до двух-трех таких интервалов (грубо - от числа ДНС серверов по пути от твоего маршрутизатора до сервера, где зона домена лежит - если твой микротик ходит за ДНС-ресолвингом на ДНС провайдера, то записи будут отдельно протухать у тебя и у провайдера), но обычно даже быстрее. При моей схеме это время - терпимо, все же ДНС не сервис мгновенной реакции.

Кеш ДНС в микротике можно покрутить командой /ip dns set cache-max-ttl=<максимальное число секунд жизни записи в кеше>, если ДНС на маршрутизаторе используется только для задач самого маршрутизаторв, можно задать cache-max-ttl=1, и радоваться.

Re: Как заставить ping и туннели отслеживать изменение адрес

Добавлено: 30 май 2014, 12:51
wolf_ktl
achekalin писал(а):
wolf_ktl писал(а):Есть один косяк обновление DNS имен происходит очень долго.. пока сервер отправит команду на обновление DNS проходит 5 минут + микротиик пока подтянет DNS еще 3 мин ...

лечиться командой /ip dns cache flush

Если я правильно понял, что у тебя доменное имя no-ip


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

ДНС отрабатывает примерно от интервала TTL в свойствах записи в ДНС (а его ставить менее 5 минут страшновато) до двух-трех таких интервалов (грубо - от числа ДНС серверов по пути от твоего маршрутизатора до сервера, где зона домена лежит - если твой микротик ходит за ДНС-ресолвингом на ДНС провайдера, то записи будут отдельно протухать у тебя и у провайдера), но обычно даже быстрее. При моей схеме это время - терпимо, все же ДНС не сервис мгновенной реакции.

Кеш ДНС в микротике можно покрутить командой /ip dns set cache-max-ttl=<максимальное число секунд жизни записи в кеше>, если ДНС на маршрутизаторе используется только для задач самого маршрутизаторв, можно задать cache-max-ttl=1, и радоваться.



а не знаешь как из кеша микротика удалить конкретную запись?

Re: Как заставить ping и туннели отслеживать изменение адрес

Добавлено: 30 май 2014, 13:15
achekalin
Не, не соображу, да как-то кеш на маршрутизаторе не самое важное, проще весь сбросить )

Re: Как заставить ping и туннели отслеживать изменение адрес

Добавлено: 30 май 2014, 15:32
Dragon_Knight
achekalin, я не считаю что протокол интернета за последние лет 30 поменялся так сильно, что пришлось переписывать поведение программ ping, traceroute и вообще алгоритм работы с именами, а всё выше написанное было взято из личного опыта. Сами откройте исходники вышеописанный команд и посмотрите их алгоритм работы.
Именно в какой момент редолвит домен OVPN знают только разработчики ROS, но именно Вы в пример 'неправильного' поведения привили команду ping, поэтому и получили ответ касательно неё....

Re: Как заставить ping и туннели отслеживать изменение адрес

Добавлено: 30 май 2014, 16:34
achekalin
Dragon_Knight писал(а):achekalin, я не считаю что протокол интернета за последние лет 30 поменялся так сильно, что пришлось переписывать поведение программ ping, traceroute и вообще алгоритм работы с именами, а всё выше написанное было взято из личного опыта. Сами откройте исходники вышеописанный команд и посмотрите их алгоритм работы.
Именно в какой момент редолвит домен OVPN знают только разработчики ROS, но именно Вы в пример 'неправильного' поведения привили команду ping, поэтому и получили ответ касательно неё....


Вы, наверное, правы, я потому и писал сюда, а не на serverfault, что надеялся на сайте mikrotik.ru узнать что-то про "внутрянку" микротиков. Ну, созвучие бренда и названия сайта, сами понимаете :)

Пожалуйста, не называйте имя хоста - доменом. Протокол интернета (Вы про IP?) - куда он денется, но тут-то мы про алгоритм железки, его кто знает, кроме разработчика? А исходники ROS, увы, мне недоступны, да и логика работы ovpn могла меняться от версии к версии (вроде как дотачивали его)...