интерфейс настроен в etcnet. В случае, если он запускается через ifup, то правило iptables, прописанное в /etc/net/ifaces/eth0/fw/iptables/nat, благополучно запускается. Если интерфейс поднимается NM, то правила нет.
Я не уверен, что это стоит делать. Подумаю.
Я уже не помню, какие у меня были по этому поводу сомнения. Думаю, сделаю вместе с ручкой для отключения в /etc/sysconfig/NetworkManager.
Created attachment 4887 [details] 90-etcnet-hooks Возможно добавит вдохновения такой хук. Класть его нужно, конечно, в /etc/NetworkManager/dispatcher.d/ Думаю, неплохая идея доложить этот хук в пакет.
Спасибо, я добавлю, но тоже с ручкой и выключенным по умолчанию. Проблема в том, что в NM нет возможности использовать скрипты pre, включать же по умолчанию выполнение скриптов post без pre вряд ли стоит, мало ли что там может быть написано, и вполне возможна ситуация, когда скрипт post рассчитывает, что ранее был выполнен pre, чего в случае NM не будет. Кстати, efw stop при опускании интерфейса тоже будет выполняться по сути в post, но в этом случае это не так страшно, думаю. Кажется в NM-0.9 что-то сделано для возможности запускать pre скрипты, но я еще это в нем не смотрел.
A, и я кажется вспомнил, почему не сделал этого раньше. Все это, с запуском efw и post-скриптов имеет смысл только в случае, если соединение прочитано из /etc/net. Иначе использовать что-то etcnet-специфичное будет странно. Определить же в dispatcher скрипте из etcnet ли это соединение довольно сложно. Так что скрипты добавить можно, но оба будут по умолчанию выключены.
Со всем согласен, кроме этого: (В ответ на комментарий №4) > Кстати, efw stop при опускании интерфейса тоже будет выполняться по сути в > post, но в этом случае это не так страшно, думаю. Это не то, что нестрашно: так и должно быть. Тот же iptables опускается после сервиса network. Наоборот, плохо, если файрвол стартует после интерфейса. iptables стартует _до_ сервиса network.
NetworkManager-0.8.3.999-alt1.git20110415 -> sisyphus: * Fri Apr 15 2011 Mikhail Efremov <sem@altlinux> 0.8.3.999-alt1.git20110415 - etcnet-alt: + Added more tests. + Handle MAC from iplink file. + Handle route metric. + Honor current etcnet network profile (closes: #18435). + Various fixes. + Allow tab as tokens delimiter. - Add 80-etcnet-post dispatcher script. - Add 30-efw dispatcher script (closes: #21834). - Suppress annoying messages. - init script: Use the new Sleep() method. - init script: Disconnect all ifaces on stop. - ntpd hook: Don't create garbage in /tmp. - Set cp1251 as prefered encoding for Cyrillic langs (closes: #25404). - upstream git snapshot (NM_0_8 branch).
работа хука поломалась на 0.9-beta. Теперь оно пускается так: /etc/NetworkManager/dispatcher.d/80-etcnet-post down DEVICE_IP_IFACE=usb0
Похоже сломалась передача имени интерфейса скриптам параметром.
NetworkManager09-0.8.9997-alt1.git20110607 -> sisyphus: * Tue Jun 07 2011 Mikhail Efremov <sem@altlinux> 0.8.9997-alt1.git20110607 - etcnet-alt: Fix adding/removal devices handling. - Drop fix for env path in python scripts (fixed in upstream). - upstream git snapshot (master branch) (closes: #21834).
Скрипт надо исправить, т.к. в новых версиях кроме действия up/down появилось ещё vpn-up/down
И что по этому поводу предлагается делать?
Created attachment 5944 [details] VPN fix for 80-etcnet-post Поскольку etcnet не видит различия между VPN и не-VPN интерфейсами, то предлагаю такой патч.
ping
Я не очень понял почему эти скрипты должен запускаться при vpn-up/vpn-down. В etcnet нет таких понятий, там только up/down интерфейса. Смысл dispatcher-скриптов etcnet-post и efw в том, чтобы попытаться максимально приблизиться к поведению etcnet, если соединение прочитано оттуда. Читать же какие-либо vpn-соединения из etcnet плагин не умеет. Поясните, пожалуйста, какому именно поведению etcnet должна соответствовать реакция на vpn-up/vpn-down в этих dispatcher-скриптах.
(In reply to comment #15) > Я не очень понял почему эти скрипты должен запускаться при vpn-up/vpn-down. В > etcnet нет таких понятий, там только up/down интерфейса. Рассмотрим vpn-интерфейсы в etcnet, например, ppp0. Для etcnet это такой же интерфейс, как и все остальные. И для него есть возможность использовать такие же if{up,down}-post. В NM эти понятия разделены, но для интерфейса ppp0 всё так же хочется запускать if{up,down}-post. Чтобы добиться этого, нужно поправить скрипт согласно предложенному патчу.
> Рассмотрим vpn-интерфейсы в etcnet, например, ppp0. > Для etcnet это такой же интерфейс, как и все остальные. И для него есть > возможность использовать такие же if{up,down}-post. Плагин не умеет читать такие соединения из etcnet (можно научить, но возни много, а я не вижу чтобы это кому-то было реально нужно). Он умеет читать только обычные ethernet и wifi соединения. Нельзя запускать скрипты из etcnet для соединений, созданных в самом NM, а не прочитанных из etcnet.
Теперь до меня дошло! прошу прощения, что так не сразу!