DNS и VPN провайдера в микротике. Почему VPN не подключается вторично после обрыва линии?
Здравствуйте.
Подскажите почему после обрыва связи VPN провайдера, через который идет доступ в интернет, вторично не подключается?
Структура - локальная сеть города у провайдера. В ней запускаю VPN-соединение с провайдером. После чего осуществляется через это VPN соединение доступ в интернет. VPN имеет статический адрес.
В DNS микротика указан DNS локальной провайдера сети (172.22.0.1). В VPN указан доменный адрес для соединения (vpn.local), а не IP. IP этого адреса может принимать значения 172.22.0.230 - 254. Любой из этого диапазона.
Сложилось впечатление, что после обрыва VPN не видит IP домена vpn.local через DNS. VPN лупит не понятно куда в цикле.
В чем причина? Пинг на vpn.local из микротика отсутствует. Из компьютеров моей сети его так же не видно. В Route прописал где конкретно находится сеть с vpn.local и DNS (172.22.0.0/24), за каким шлюзом (172.30.94.1). Толку ноль. Прописал там же Pref. Source -мой IP в локальной сети провайдера (172.30.94.38). Бестолку.
После длительных экспериментов пришел к следующему выводу:
В общем попробовал с отключение VPN.
С начало отключается VPN. Затем переключается маршрут на резервную линию. Это работает.
Появилась основная линия. Переключается маршрут. Затем включается VPN.
Эффект ноль. VPN в цикле бьет не известно куда.
Есть следующее подозрение - в VPN провайдера указано доменное имя для соединения vpn.local.
По этому имени DNS провайдера выдает IP для соединения в диапазоне 172.22.230 - 172.22.0.254. Любой из них может быть.
VPN-провайдера в микротике получает этот IP и производит соединение и похоже запоминает его наглухо.
Т.е. после разрыва линии пропадает DNS провайдера, а когда он появляется, то предлагает использовать другой IP для соединения и похоже у провайдера как то резервируется, что я могу подключиться только на этот IP, а в микротике VPN запомнил IP на которое он подключался последний раз и лупит в него, а оно запрещено для соединения вторично. Вот и получается цикл VPN.
При перезагрузке IP в VPN похоже сбрасывается и заново его запрашивает у DNS, по этому соединение происходит сразу. Запоминает VPN IP скорее всего для того, чтоб в случае разрыва связь восстановилась быстрее. Но работает это нормально только в случае если IP для подключения постоянно один и тот же.
Такие мысли пришли после того, как я понаблюдал за восстановлением основной линии. Иногда (но редко) переключение нормально срабатывает. Это ситуация когда IP выдаваемое DNS совпадает с IP к которому VPN был подключен ранее.
Вопрос стоит в том как заставить VPN при разрыве каждый раз запрашивать IP у DNS провайдера перед подключением?
Такое может быть, если в настройках впн старая сессия после обрыва ещё числится живой, и повторный такой же логин она не принимает. После обрыва попробуйте сделать disable на впн-интерфейсе, подождать 5-10 минут и сделать enable. Если подключится- значит так оно и есть
Сегодня именно так и сделал. Попробовать сейчас возможности нет.
Но могу сразу сказать, что после восстановления линии и цикличности ВПН делаю перезагрузку микротика.
Всё сразу встает на место. ВПН, после перезагрузки сразу начинает работать.
А то, что вы написали - это постоянный ответ провайдера - "выключите и включите через 15 минут".
Такой срок - это ОЧЕНЬ долго.
Объясню все таки зачем мне это нужно. В микротике две линии от двух провайдеров.
Основной провайдер предоставляет доступ к интернету через городскую сеть по ВПН со статическим IP.
Резервный провайдер предоставляет сразу интернет в линию на микротик.
Не получается сделать балансировку каналов или резервную линию по причине ВПН основного провайдера.
После восстановления линии восстановление ВПН 15 минут - это ОЧЕНЬ долго.
Но пока ВПН не восстановится микротик не переключится (или не включит) основную линию.
Как результат - нет возможности сделать переключение линий на резервную и обратно с использованием NETWATCH. При пинговке IP за ВПН шлюзом переключение на резервную происходит, но так как сам ВПН после разрыва линии не имеет ни IP ни шлюза, то в Routes игнорируется маршрут описывающий пинг для IP указанного в netwatch и как следствие пинг начинает идти через резервную линию. Соответственно netwatch понимает это как восстановление основной линии. В netwatch стоит время для пинговки 15 секунд. Вон он и начинает игратся - каждые 15 секунд то резервную линию включает, то основную (не работающую с данный момент).
Как после disable VPN сбросить все сессии связанные с ней?
Владимир Айнов, я чёт сначала подумал, что это время настраивается на стороне vpn-сервера, но раз вы говорите что ребут впн-клиента решает проблему...возможно я ляпну не в тему (не настолько я силен в микротах и сетях), но возможно вам помогут рекурсивные маршруты, погуглите
В общем попробовал с отключение VPN.
С начало отключается VPN. Затем переключается маршрут на резервную линию. Это работает.
Появилась основная линия. Переключается маршрут. Затем включается VPN.
Эффект ноль. VPN в цикле бьет не известно куда.
Есть следующее подозрение - в VPN провайдера указано доменное имя для соединения vpn.local.
По этому имени DNS провайдера выдает IP для соединения в диапазоне 172.22.230 - 172.22.0.254. Любой из них может быть.
VPN-провайдера в микротике получает этот IP и производит соединение и похоже запоминает его наглухо.
Т.е. после разрыва линии пропадает DNS провайдера, а когда он появляется, то предлагает использовать другой IP для соединения и похоже у провайдера как то резервируется, что я могу подключиться только на этот IP, а в микротике VPN запомнил IP на которое он подключался последний раз и лупит в него, а оно запрещено для соединения вторично. Вот и получается цикл VPN.
При перезагрузке IP в VPN похоже сбрасывается и заново его запрашивает у DNS, по этому соединение происходит сразу. Запоминает VPN IP скорее всего для того, чтоб в случае разрыва связь восстановилась быстрее. Но работает это нормально только в случае если IP для подключения постоянно один и тот же.
Такие мысли пришли после того, как я понаблюдал за восстановлением основной линии. Иногда (но редко) переключение нормально срабатывает. Это ситуация когда IP выдаваемое DNS совпадает с IP к которому VPN был подключен ранее.
Вопрос стоит в том как заставить VPN при разрыве каждый раз запрашивать IP у DNS провайдера перед подключением?
Его чистить командой можно?
Т.е. после переключений линий на резервную и отключения VPN задать команду почистить кэш.
Повторюсь - ждать 5-15 минут после отключения VPN - это не выход из ситуации. Тем более я это уже пробовал - не работает. Нужно обязательно сделать перезагрузку микротика - тогда все ОК.
Сейчас посмотрю, но у /ip dns cache есть только команды:
all
find
flush - удалить все днс записи из кеш
get
print
Как то не хочется полностью его чистить.
Сбрасывать точно DNS, а не в VPN IP?
В Layer7 Protocol сделал запись для наблюдения"vpn.local".
Перед отключением основной линии проверил какой там IP - 172.22.0.235
Отключил линию, все сработало включая отключение VPN.
Воткнул назад линию. Переключилось на нее. Включился VPN в цикле (нет соединения).
Захожу в Layer7 Protocol и вижу у vlp.local IP стал 172.22.0.254.
VPN циклит. Взял то Layer7 IP, наверно, из кэша ДНС?
Попробовал. Действительно заработало. Поставил перед включением VPN-провайдера команду очистить кэш DNS. Всё запахало как должно быть.
Не нашел только команды удалить определенную запись, но это наверно нужно писать скрипт.
Сейчас делаю проверку на DNS провайдера. Т.е. проверяю целостность связи до него.
Теперь нужно думать как пинговать 8.8.4.4 - проверка наличия интернета.
А я ни разу не писал скрипты. Тут без них наверно ни как не обойтись.
Должно выполняться условие: если соединение пинг на провайдера есть (например его DNS), то очистить кэш DNS. Только после этого выполнить еще проверку, но уже на адрес 8.8.4.4 и только после этого включить канал.
Очень хочется в итоге получить не резервный канал, а балансировку каналов, но как при этом чистить кэш, если при этом работает второй канал? Да и как поступить с самим VPN не понятно. Он же после очистки кэш будет циклить не понятно куда, постоянно делая запросы в ДНС пока не оживет первый канал.
После восстановления линии ДНС доступен. Пингуется. А вот VPN как циклил connect-disconnect, так и продолжил это делать. Минут 10 ждал непонятно чего.
Может лучше описать все соединение?
Поскольку я работаю в Китае, я использовал Nordvpn раньше. Я обнаружил, что Nordvpn был запрещен в Китае в 2021 году. Я хочу поговорить с женой и ребенком с помощью FB или Line, поэтому мне нужно найти хороший VPN для подключения Я проверил несколько веб-сайтов и проверил своего друга в Китае.
Мне дали вот это: expressvpn
Функция Kill Switch сохраняет ваши данные в безопасности, даже если ваше VPN-соединение обрывается, блокируя весь интернет-трафик до тех пор, пока защита не будет восстановлена free vpn.