LINUX.ORG.RU
ФорумAdmin

Перезапуск Openvpn при появлении интерфейса

 ,


0

2

Есть openvpn-клиент, в нём стоит local X.X.X.X, потому что работать он должен только через одного провайдера из двух. При опускании этого интерейса биндинг к адресу отваливается и openvpn умирает, соответственно при поднятии обратно не запускается.

Можно ли как-то сделать, чтобы он не умирал, а продолжал пытаться прибиндиться до победного конца?

Обходные способы знаю - post-up в interfaces или перезапуск в cron, но хочется чтобы работало именно так.

★★★

Последнее исправление: selivan (всего исправлений: 1)

У тебя два провайдера в одной сетевой попеременно? Зачем интерфейс опускать?

arson ★★★★★
()
Ответ на: комментарий от arson

В разных.

Защита от дурака, я тут не один работаю, да и сам бываю невыспавшийся и неадекватный. Чем меньше есть способов сломать систему, тем лучше.

Да и некрасиво как-то, что сервис молча помирает, а не пытается выжить до последнего.

selivan ★★★
() автор топика
Последнее исправление: selivan (всего исправлений: 1)
Ответ на: комментарий от selivan

А если создать bridge с одним этим интерфейсом и local к нему? Сам не пробовал, но по идее должно работать.

arson ★★★★★
()
Ответ на: комментарий от arson

Тогда будет умирать при опускании бриджа. Хочется именно средствами openvpn, ничего не добавляя в interfaces.

selivan ★★★
() автор топика
Ответ на: комментарий от arson

Это защита от дурака. Опускать вообще не надо, пусть работает.

Мало ли в каком уставшем/неадекватном состоянии я залезу на сервер. Чем меньше возможностей что-то сломать, тем лучше.

selivan ★★★
() автор топика
Последнее исправление: selivan (всего исправлений: 2)
Ответ на: комментарий от selivan

При опускании этого интерейса биндинг к адресу отваливается...
Опускать вообще не надо, пусть работает.

Ну тогда я вообще ничего не понял.

arson ★★★★★
()
Ответ на: комментарий от arson

Хочется настройки, при которых резервный канал не умирает при неаккуратных действиях на сервере: ifup/ifdown соответствующего интерфейса. Хочется, чтобы всё было в конфиге openvpn, не трогая interfaces. В теме стоит тэг «хочется странного», потому что решение есть, но я хочу более другое.

selivan ★★★
() автор топика
Ответ на: комментарий от selivan

при неаккуратных действиях на сервере: ifup/ifdown соответствующего интерфейса

brctl addbr ЭТО_VPN

Трудно будет перепутать :)

arson ★★★★★
()

Можно ли как-то сделать, чтобы он не умирал, а продолжал пытаться прибиндиться до победного конца?

Нет, есть простая логика — если в конфиге ошибка, значит нужно прекращать работу. Раз ip-адреса нет в системе, значит в конфиге ошибка. То, что вы хотите, делается только костылями и подпорками.

Есть dummy интерфейс, только на него нужно вешать тот же адрес, что и на интерфейс (X.X.X.X), если он у вас по dhcp, то не получится.

Можно запускать openvpn без опции daemon из скрипта в цикле. Можно эту задачу — постоянно запускать openvpn поручить initd или его заместителям (upstatd и т.д.)

Защита от дурака

Не существует

я тут не один работаю

Лучше, чтобы только один знал пароль root'а, а остальные админили запукая команды/скрипты через sudo.

да и сам бываю невыспавшийся и неадекватный.

Дак это вам скорее систему мониторинга надо, чтобы прямо в мозг приходило sms-уведомление, что более минуты openvpn не слушает порт 1194. Какая разница, будет или нет живой openvpn, если вы сделали ifdown и ушли в нирвану.

mky ★★★★★
()
Ответ на: комментарий от arson

Я способный :)

Вводить дополнительный бридж с белым адресом - большее усложнение, чем строчка post-up /etc/init.d/openvpn restart vpn1 в interfaces. Плюс всякие тонкости с фаерволом возникают, трафик из бриджа тоже через FORWARDING проходит(с удивлением в своё время об этом узнал, думал iptables - это L3), надо правила дополнительные делать... ну нафиг.

Просто хотелось, чтобы оно вообще само собой переподключалось, без внешних пинков.

selivan ★★★
() автор топика
Ответ на: комментарий от mky

Если в конфиге ошибка, значит нужно прекращать работу. Раз ip-адреса нет в системе, значит в конфиге ошибка.

Спасибо за подробное объяснение, теперь точно понятно, что оно так не может.

Лучше, чтобы только один знал пароль root'а, а остальные админили запукая команды/скрипты через sudo.

Пароли зло, только ssh-ключи. Суппорты через несколько команд в sudo работают, полноценного рута не я один имею, это нормально: мы по сменам работаем + начальство.

Какая разница, будет или нет живой openvpn, если вы сделали ifdown и ушли в нирвану.

Use case такой: кто-то зачем-то сделал ifdown и потом ifup интерфейса второго провайдера. Второй VPN-туннель молча сдох. Потом в тыкву превратился первый провайдер, его туннель тоже сдох. А резервного-то уже нету, автоматически переключиться на него не получится. Матюки, ручное переключение, недовольные пользователи.

selivan ★★★
() автор топика
Ответ на: комментарий от handbrake

Нет, тогда оно будет запускаться, даже если его вручную остановить. Сторчка в interfaces post-up всё решает, просто хотелось без неё.

selivan ★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.