Ядро 2.6.32-ovz-el-alt6 При попытке остановить сервис iptables, последний пытается выгрузить модуль который вкомпилен в ядро. # grep -i NF_FILTER /boot/config-2.6.32-ovz-el-alt6 CONFIG_IP_NF_FILTER=y CONFIG_IP6_NF_FILTER=m # service iptables stop Setting chains policy to ACCEPT: mangle nat filter [ DONE ] Flushing firewall rules: mangle nat filter [ DONE ] Removing user defined chains: mangle nat filter [ DONE ] Zeroing packet and byte counters: mangle nat filter [ DONE ] Unloading module iptable_mangle: [ DONE ] Unloading module iptable_nat: [ DONE ] Unloading module iptable_filter: FATAL: Module iptable_filter not found.
Когда был написан service iptables, все эти модули существовали. Интересно, зачем их теперь засунули в ядро?
(В ответ на комментарий №1) > Когда был написан service iptables, все эти модули существовали. > Интересно, зачем их теперь засунули в ядро? Когда собиралось ovz-el у меня была (неправильная) идея сделать конфиг, основанный на el-smp. На следующей неделе я этим займусь.
(В ответ на комментарий №2) > (В ответ на комментарий №1) > > Когда был написан service iptables, все эти модули существовали. > > Интересно, зачем их теперь засунули в ядро? > > Когда собиралось ovz-el у меня была (неправильная) идея сделать конфиг, > основанный на el-smp. На следующей неделе я этим займусь. Мне кажется это сделано вполне обосновано и правильно, т.к. если модули не загружены перед стартом VPS то внутри они не видны. И поэтому приходится прибегать к "грязному хаку" - обязательно ставить iptables на HN и ставить в автостарт с указанием нужных модулей в /etc/sysconfig/iptables_modules, чтобы iptables работало в VPS. В связи с этим, если сделать все это не модулем то и нет проблем. Или вот еще теперь нет модуля button - оно в ядре. Тоже очень правильно. А то сделали модулем, потом сделали installer-feature-powerbutton-stage2 - Arrange for power button to work as expected installer-feature-powerbutton-stage3 - Arrange for power button to work as expected
(In reply to comment #3) > (В ответ на комментарий №2) > > (В ответ на комментарий №1) > > > Когда был написан service iptables, все эти модули существовали. > > > Интересно, зачем их теперь засунули в ядро? > > > > Когда собиралось ovz-el у меня была (неправильная) идея сделать конфиг, > > основанный на el-smp. На следующей неделе я этим займусь. > Мне кажется это сделано вполне обосновано и правильно, Нет, это не обосновано, и это неправильно. Функционал помещают в модули для того, чтобы не загружать в ядро то, что не нужно там, где оно не нужно. > т.к. если модули не > загружены перед стартом VPS то внутри они не видны. И поэтому приходится > прибегать к "грязному хаку" Зачем??? Прочитайте, пожалуйста, в документации vzctl(8) на тему --iptables.
(В ответ на комментарий №4) > > т.к. если модули не загружены перед стартом VPS то внутри они не видны. И поэтому приходится прибегать к "грязному хаку" > Зачем??? Да об этом везде написано! Например: http://wiki.openvz.org/Setting_up_an_iptables_firewall#Setting_up_a_firewall_that_allows_per-container_configuration : - "If you want to use a firewall inside a container, please load these modules BEFORE starting the container" > Прочитайте, пожалуйста, в документации vzctl(8) на тему --iptables. Что читать? Читано - перечитано и проверено на собственном опыте. --iptables name Allow to use the functionality of name iptables module inside the container. И ни слова про то что vzctl самостоятельно их грузит. И не должен. Это задача iptables. Просто сервис iptables должен еще смотреть в переменную IPTABLES в /etc/vz/vz.conf и загружать указанные там модули. Чтобы модули подхватились в VPS, т.к. если модули загрузить ПОСЛЕ старта сервиса vz, то VPS их не увидит. Поэтому я и говорю, что включение их в ядро самый легкий вариант решения проблемы. А при остановке iptables проверять не используются ли модули в VPS (запущен ли сервис vz) и если да, то не выгружать то что указано в IPTABLES. Аналогично и для IP6TABLES ЗЫ: Кстати в переводе man vzctl совсем противоположное описывается: --iptables имя Запретить доступ к модулям iptables из виртуальной среды
(In reply to comment #5) > (В ответ на комментарий №4) > > > т.к. если модули не загружены перед стартом VPS то внутри они не видны. И поэтому приходится прибегать к "грязному хаку" > > Зачем??? > Да об этом везде написано! Например: > http://wiki.openvz.org/Setting_up_an_iptables_firewall#Setting_up_a_firewall_that_allows_per-container_configuration > : - "If you want to use a firewall inside a container, please load these > modules BEFORE starting the container" Мало ли где что написано. Главное -- это что написано в коде, см. $ fgrep MODULES /etc/init.d/vz > И ни слова про то что vzctl самостоятельно их грузит. И не должен. service vz start их загружает. > Кстати в переводе man vzctl совсем противоположное описывается: > --iptables имя > Запретить доступ к модулям iptables из виртуальной среды О неточностях перевода лучше сообщать мейнтейнеру соответствующего пакета.
(В ответ на комментарий №6) http://wiki.openvz.org/Setting_up_an_iptables_firewall#Setting_up_a_firewall_that_allows_per-container_configuration > > : - "If you want to use a firewall inside a container, please load these > > modules BEFORE starting the container" > > Мало ли где что написано. Главное -- это что написано в коде, см. > $ fgrep MODULES /etc/init.d/vz > > > И ни слова про то что vzctl самостоятельно их грузит. И не должен. > service vz start их загружает. Ага, спасибо. Уже значит сделали. Раньше точно не грузило. И приходилось извращаться. Мне кажется тут проблема, что эти 2 сервиса пытаются управлять одними и теми же модулями. Ведь если делать service iptables restart, то при остановке будет попытка выгрузить те модули которые могут быть использованы в vz. Плохо когда 2 хозяина на один модуль...
(In reply to comment #7) > Мне кажется тут проблема, что эти 2 сервиса пытаются управлять одними и теми же > модулями. Я бы не сказал, что service vzctl управляет модулями iptables. Да, он умеет их загружать и выгружать при необходимости, но не более того. > Ведь если делать service iptables restart, то при остановке будет > попытка выгрузить те модули которые могут быть использованы в vz. Нет, service iptables restart не выгружает модули.
(В ответ на комментарий №8) > > Ведь если делать service iptables restart, то при остановке будет > > попытка выгрузить те модули которые могут быть использованы в vz. > Нет, service iptables restart не выгружает модули. Но service iptables stop выгружает. Повторю суть обсуждения: - Eсли делать service iptables stop, то при остановке будут выгружены модули которые использованы в vz. Что делать при этом?
(In reply to comment #9) > (В ответ на комментарий №8) > > > Ведь если делать service iptables restart, то при остановке будет > > > попытка выгрузить те модули которые могут быть использованы в vz. > > Нет, service iptables restart не выгружает модули. > Но service iptables stop выгружает. Да, stop пытается выгрузить модули. > Повторю суть обсуждения: - Eсли делать service iptables stop, то при остановке > будут выгружены модули которые использованы в vz. Что делать при этом? Модули, которые используются, выгрузить невозможно. А в чем, собственно говоря, проблема?
> Модули, которые используются, выгрузить невозможно. > А в чем, собственно говоря, проблема? Да, что-то занесло. Проблема в том, о чем изначально завел баг.
(В ответ на комментарий №11) > > Модули, которые используются, выгрузить невозможно. > > А в чем, собственно говоря, проблема? > Да, что-то занесло. > Проблема в том, о чем изначально завел баг. Ну тогда может быть стоит перевесить этот баг на ovz-el?
(In reply to comment #12) > (В ответ на комментарий №11) > > > Модули, которые используются, выгрузить невозможно. > > > А в чем, собственно говоря, проблема? > > Да, что-то занесло. > > Проблема в том, о чем изначально завел баг. > > Ну тогда может быть стоит перевесить этот баг на ovz-el? OK
Fixed in ovz-el-2.6.32-alt10