Как заставить ping и туннели отслеживать изменение адреса?
-
- Сообщения: 417
- Зарегистрирован: 25 июн 2013, 18:12
вот мой результат viewtopic.php?f=14&t=5443&p=25842#p25842
-
- Сообщения: 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
-
- Сообщения: 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, и радоваться.
-
- Сообщения: 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, и радоваться.
а не знаешь как из кеша микротика удалить конкретную запись?
-
- Сообщения: 40
- Зарегистрирован: 12 сен 2012, 09:25
Не, не соображу, да как-то кеш на маршрутизаторе не самое важное, проще весь сбросить )
- Dragon_Knight
- Сообщения: 1724
- Зарегистрирован: 26 мар 2012, 18:21
- Откуда: МО, Мытищи
- Контактная информация:
achekalin, я не считаю что протокол интернета за последние лет 30 поменялся так сильно, что пришлось переписывать поведение программ ping, traceroute и вообще алгоритм работы с именами, а всё выше написанное было взято из личного опыта. Сами откройте исходники вышеописанный команд и посмотрите их алгоритм работы.
Именно в какой момент редолвит домен OVPN знают только разработчики ROS, но именно Вы в пример 'неправильного' поведения привили команду ping, поэтому и получили ответ касательно неё....
Именно в какой момент редолвит домен OVPN знают только разработчики ROS, но именно Вы в пример 'неправильного' поведения привили команду ping, поэтому и получили ответ касательно неё....
Небольшой свод правил логики и ссылок:
- Если устройство имеет Ethernet порт, то оно обязано быть подключено через него. Компьютер, Ноутбук, Телевизор, Принтер, Камера видеонаблюдения, и т.д.
- Если нет возможности протянуть кабель, то найдите её, или страдайте со своими проблемами Wi-Fi дальше.
- Wi-Fi это сеть для мобильных устройств. Если Вы подключили свой шикарный 50" телевизор не кабелем, то без фотоотчёта, когда он лежит у Вас в кармане дальнейшего разговора не получиться. Это относится и ко всем остальным устройствам.
- Если Ваше устройство вызывает вопросы в работе, первое что необходимо делать: NetInstall + дальнейшая настройка вручную.
- Не используйте WebFig или QuickSet - это пути к глюкам и ошибкам. Только SSH или WinBox, и да, - WinBox есть под Android.
- name.rsc - это текстовый файл, и Вы можете его открыть блокнотом.
- Если Вы хотите связаться со мной для ремонта или настройки, то: Telegram ( Не благотворительность ).
- Мой сайт по Mikrotik: Global Zone >> MikroTik.
-
- Сообщения: 40
- Зарегистрирован: 12 сен 2012, 09:25
Dragon_Knight писал(а):achekalin, я не считаю что протокол интернета за последние лет 30 поменялся так сильно, что пришлось переписывать поведение программ ping, traceroute и вообще алгоритм работы с именами, а всё выше написанное было взято из личного опыта. Сами откройте исходники вышеописанный команд и посмотрите их алгоритм работы.
Именно в какой момент редолвит домен OVPN знают только разработчики ROS, но именно Вы в пример 'неправильного' поведения привили команду ping, поэтому и получили ответ касательно неё....
Вы, наверное, правы, я потому и писал сюда, а не на serverfault, что надеялся на сайте mikrotik.ru узнать что-то про "внутрянку" микротиков. Ну, созвучие бренда и названия сайта, сами понимаете :)
Пожалуйста, не называйте имя хоста - доменом. Протокол интернета (Вы про IP?) - куда он денется, но тут-то мы про алгоритм железки, его кто знает, кроме разработчика? А исходники ROS, увы, мне недоступны, да и логика работы ovpn могла меняться от версии к версии (вроде как дотачивали его)...