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

Обсуждение ПО и его настройки
wolf_ktl
Сообщения: 417
Зарегистрирован: 25 июн 2013, 18:12

вот мой результат viewtopic.php?f=14&t=5443&p=25842#p25842


wolf_ktl
Сообщения: 417
Зарегистрирован: 25 июн 2013, 18:12

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


achekalin
Сообщения: 40
Зарегистрирован: 12 сен 2012, 09:25

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, и радоваться.


wolf_ktl
Сообщения: 417
Зарегистрирован: 25 июн 2013, 18:12

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, и радоваться.



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


achekalin
Сообщения: 40
Зарегистрирован: 12 сен 2012, 09:25

Не, не соображу, да как-то кеш на маршрутизаторе не самое важное, проще весь сбросить )


Аватара пользователя
Dragon_Knight
Сообщения: 1724
Зарегистрирован: 26 мар 2012, 18:21
Откуда: МО, Мытищи
Контактная информация:

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


Небольшой свод правил логики и ссылок:
  1. Если устройство имеет Ethernet порт, то оно обязано быть подключено через него. Компьютер, Ноутбук, Телевизор, Принтер, Камера видеонаблюдения, и т.д.
  2. Если нет возможности протянуть кабель, то найдите её, или страдайте со своими проблемами Wi-Fi дальше.
  3. Wi-Fi это сеть для мобильных устройств. Если Вы подключили свой шикарный 50" телевизор не кабелем, то без фотоотчёта, когда он лежит у Вас в кармане дальнейшего разговора не получиться. Это относится и ко всем остальным устройствам.
  4. Если Ваше устройство вызывает вопросы в работе, первое что необходимо делать: NetInstall + дальнейшая настройка вручную.
  5. Не используйте WebFig или QuickSet - это пути к глюкам и ошибкам. Только SSH или WinBox, и да, - WinBox есть под Android.
  6. name.rsc - это текстовый файл, и Вы можете его открыть блокнотом.
  7. Если Вы хотите связаться со мной для ремонта или настройки, то: Telegram ( Не благотворительность ).
  8. Мой сайт по Mikrotik: Global Zone >> MikroTik.
achekalin
Сообщения: 40
Зарегистрирован: 12 сен 2012, 09:25

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


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

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


Ответить