(закрыто) правильный рестарт net.eth при рестарте net.ppp
Получаю дома инет от жёлтополосатого оператора. Работает нормально и боле-менее стабильно.
Получаем адрес по dhcp на net.eth1 поверх чего поднимаем net.ppp1 (pppoe). Всё работает и рестартует когда надо. Однако возникают проблемы при наличии проблем с электричеством в районе.
Свитч, который у меня в доме работает боле-менее стабильно (видимо ups новый), а вот вышестоящий иногда перезагружается.
Т.о. на нём теряется информация о моём интерфейсе net.eth1 и, насколько я понимаю, срабатывает что-то вроде anti-spoofing и он отказывается принимать от меня данные и поднимать pppoe т.к. этому маку этот ip не давали. Рестарт net.eth1 восстанавливает работу.
С точки зрения моей машины, net.eth1 рестартовать не надо, т.к. линк не падал.
Посоветуйте, как "правильно" детектировать подобную ситуацию и рестартовать не только net.ppp1, но и net.eth1.
PS: Собственно тесты ставить сложно, не взламывать же подстанцию (ломом) для организации пропажи электроэнергии в районе.
UPD: Наверное можно с эмитировать путём ручного выставления ip на net.eth1, но не пробовал.
- Для комментирования войдите или зарегистрируйтесь
Использую такой конфиг
И? Не вижу в этом конфиге
И?
Не вижу в этом конфиге решения. Он позволяет рестартовать net.ppp1 при рестарте net.eth1. Мне нужно немного другое.
ЗЫЖ приблизительно такое уже написано.
Если в /etc/conf.d/net к
Если в /etc/conf.d/net к опциям pppd_ppp1 добавить persist для автоматической переустановки соединения и к этому добавить функцию preup()
то получится именно то что вам надо
Можно попробовать, но тут
Можно попробовать, но тут есть опасность ухода в рекурсию. Т.к. на рестарт net.eth1 будет инициирован рестарт net.ppp1.
Проверю.
Не должно быть, так как к
Не должно быть, так как к моменту перезапуска eth1 интерфейс ppp1 будет отключен. Но лучше вам все же проверить
Конечно можно еще попробовать postdown(). То есть перезапускать интерфейс eth1 после того как ppp1 отключится
В рекурсию не уходит, но
В рекурсию не уходит, но летят правила роутинга и iptable :-(
postdown не правильно, он же не будет срабатывать, если интерфейс не смог подняться. К тому же боюсь там будут аналогичные проблемы.
Так используйте postup() для
Так используйте postup() для перезапуска iptables
Угу, только не перезапуска, а
Угу, только не перезапуска, а формирования заново. И аналогичный скрипт для роутинга.
Может тогда проще свои init скрипты написать будет.
кроме как скормить cron
кроме как скормить cron аля
Ничего не приходит в голову.
net-dialup/diald
net-dialup/diald
Посмотрел его конфигурацию.
Посмотрел его конфигурацию. Не понял как он мне может помочь.
На сколько я понял, он будет управлять ppp, а мне eth рестортавать надо и то не всегда по хорошему.
Вы сами можете настроить что
Вы сами можете настроить что он будет контролировать и перезапускать!.. ;)
Не надо же понимать буквально, я все время думал, что сюда приходят люди, которые думают или хотя бы очень хотят этому научиться...
Идея этого тулса очень проста - контролировать связь с удаленной точкой (любой по вашему выбору) и, если связь пропадает - инициировать поднятие запасного канала.
И все.
Разумеется, это все можно реализовать через доморощенные скрипты, как и большинство (под)систем в *НИКС-мире... :)
Не осознал этого. Ещё раз
Не осознал этого. Ещё раз посмотрю его конфиги.