<?xml version="1.0" encoding="UTF-8" ?>

<bugzilla version="5.2"
          urlbase="https://bugzilla.altlinux.org/"
          
          maintainer="jenya@basealt.ru"
>

    <bug>
          <bug_id>24897</bug_id>
          
          <creation_ts>2011-01-11 20:05:24 +0300</creation_ts>
          <short_desc>service iptables stop пытается выгрузить не существующие модули</short_desc>
          <delta_ts>2011-02-07 16:49:52 +0300</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>4</classification_id>
          <classification>Development</classification>
          <product>Sisyphus</product>
          <component>kernel-image-ovz-el</component>
          <version>unstable</version>
          <rep_platform>all</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P3</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Slava Dubrovskiy">dubrsl</reporter>
          <assigned_to name="Gleb F-Malinovskiy">glebfm</assigned_to>
          <cc>boyarsh</cc>
    
    <cc>glebfm</cc>
    
    <cc>kernelbot</cc>
    
    <cc>ldv</cc>
    
    <cc>mike</cc>
    
    <cc>mithraen</cc>
    
    <cc>real.altlinux.org</cc>
    
    <cc>rider</cc>
    
    <cc>sbolshakov</cc>
    
    <cc>shrek</cc>
    
    <cc>sin</cc>
    
    <cc>vitty</cc>
    
    <cc>vsu</cc>
    
    <cc>vt</cc>
    
    <cc>zerg</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>117057</commentid>
    <comment_count>0</comment_count>
    <who name="Slava Dubrovskiy">dubrsl</who>
    <bug_when>2011-01-11 20:05:24 +0300</bug_when>
    <thetext>Ядро 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.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>117397</commentid>
    <comment_count>1</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2011-01-22 01:15:22 +0300</bug_when>
    <thetext>Когда был написан service iptables, все эти модули существовали.
Интересно, зачем их теперь засунули в ядро?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>117406</commentid>
    <comment_count>2</comment_count>
    <who name="aspsk">aspsk</who>
    <bug_when>2011-01-22 10:50:50 +0300</bug_when>
    <thetext>(В ответ на комментарий №1)
&gt; Когда был написан service iptables, все эти модули существовали.
&gt; Интересно, зачем их теперь засунули в ядро?

Когда собиралось ovz-el у меня была (неправильная) идея сделать конфиг,
основанный на el-smp. На следующей неделе я этим займусь.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>117409</commentid>
    <comment_count>3</comment_count>
    <who name="Slava Dubrovskiy">dubrsl</who>
    <bug_when>2011-01-22 11:22:56 +0300</bug_when>
    <thetext>(В ответ на комментарий №2)
&gt; (В ответ на комментарий №1)
&gt; &gt; Когда был написан service iptables, все эти модули существовали.
&gt; &gt; Интересно, зачем их теперь засунули в ядро?
&gt; 
&gt; Когда собиралось ovz-el у меня была (неправильная) идея сделать конфиг,
&gt; основанный на el-smp. На следующей неделе я этим займусь.
Мне кажется это сделано вполне обосновано и правильно, т.к. если модули не загружены перед стартом VPS то внутри они не видны. И поэтому приходится прибегать к &quot;грязному хаку&quot; - обязательно ставить 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</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>117548</commentid>
    <comment_count>4</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2011-01-23 00:08:33 +0300</bug_when>
    <thetext>(In reply to comment #3)
&gt; (В ответ на комментарий №2)
&gt; &gt; (В ответ на комментарий №1)
&gt; &gt; &gt; Когда был написан service iptables, все эти модули существовали.
&gt; &gt; &gt; Интересно, зачем их теперь засунули в ядро?
&gt; &gt; 
&gt; &gt; Когда собиралось ovz-el у меня была (неправильная) идея сделать конфиг,
&gt; &gt; основанный на el-smp. На следующей неделе я этим займусь.
&gt; Мне кажется это сделано вполне обосновано и правильно,

Нет, это не обосновано, и это неправильно.
Функционал помещают в модули для того, чтобы не загружать в ядро то, что не нужно там, где оно не нужно.

&gt; т.к. если модули не
&gt; загружены перед стартом VPS то внутри они не видны. И поэтому приходится
&gt; прибегать к &quot;грязному хаку&quot;

Зачем???

Прочитайте, пожалуйста, в документации vzctl(8) на тему --iptables.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>117567</commentid>
    <comment_count>5</comment_count>
    <who name="Slava Dubrovskiy">dubrsl</who>
    <bug_when>2011-01-24 02:29:45 +0300</bug_when>
    <thetext>(В ответ на комментарий №4)
&gt; &gt; т.к. если модули не загружены перед стартом VPS то внутри они не видны. И поэтому приходится прибегать к &quot;грязному хаку&quot;
&gt; Зачем???
Да об этом везде написано! Например:
http://wiki.openvz.org/Setting_up_an_iptables_firewall#Setting_up_a_firewall_that_allows_per-container_configuration : - &quot;If you want to use a firewall inside a container, please load these modules BEFORE starting the container&quot;

&gt; Прочитайте, пожалуйста, в документации 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 из виртуальной среды</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>117570</commentid>
    <comment_count>6</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2011-01-24 03:01:03 +0300</bug_when>
    <thetext>(In reply to comment #5)
&gt; (В ответ на комментарий №4)
&gt; &gt; &gt; т.к. если модули не загружены перед стартом VPS то внутри они не видны. И поэтому приходится прибегать к &quot;грязному хаку&quot;
&gt; &gt; Зачем???
&gt; Да об этом везде написано! Например:
&gt; http://wiki.openvz.org/Setting_up_an_iptables_firewall#Setting_up_a_firewall_that_allows_per-container_configuration
&gt; : - &quot;If you want to use a firewall inside a container, please load these
&gt; modules BEFORE starting the container&quot;

Мало ли где что написано.  Главное -- это что написано в коде, см.
$ fgrep MODULES /etc/init.d/vz

&gt; И ни слова про то что vzctl самостоятельно их грузит. И не должен.

service vz start их загружает.

&gt; Кстати в переводе man vzctl совсем противоположное описывается:
&gt; --iptables имя
&gt;     Запретить  доступ  к  модулям iptables из виртуальной среды

О неточностях перевода лучше сообщать мейнтейнеру соответствующего пакета.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>117571</commentid>
    <comment_count>7</comment_count>
    <who name="Slava Dubrovskiy">dubrsl</who>
    <bug_when>2011-01-24 03:34:09 +0300</bug_when>
    <thetext>(В ответ на комментарий №6)
http://wiki.openvz.org/Setting_up_an_iptables_firewall#Setting_up_a_firewall_that_allows_per-container_configuration
&gt; &gt; : - &quot;If you want to use a firewall inside a container, please load these
&gt; &gt; modules BEFORE starting the container&quot;
&gt; 
&gt; Мало ли где что написано.  Главное -- это что написано в коде, см.
&gt; $ fgrep MODULES /etc/init.d/vz
&gt; 
&gt; &gt; И ни слова про то что vzctl самостоятельно их грузит. И не должен.
&gt; service vz start их загружает.
Ага, спасибо. Уже значит сделали. Раньше точно не грузило. И приходилось извращаться.

Мне кажется тут проблема, что эти 2 сервиса пытаются управлять одними и теми же модулями. Ведь если делать service iptables restart, то при остановке будет попытка выгрузить те модули которые могут быть использованы в vz.
Плохо когда 2 хозяина на один модуль...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>117600</commentid>
    <comment_count>8</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2011-01-24 20:21:34 +0300</bug_when>
    <thetext>(In reply to comment #7)
&gt; Мне кажется тут проблема, что эти 2 сервиса пытаются управлять одними и теми же
&gt; модулями.

Я бы не сказал, что service vzctl управляет модулями iptables.
Да, он умеет их загружать и выгружать при необходимости, но не более того.

&gt; Ведь если делать service iptables restart, то при остановке будет
&gt; попытка выгрузить те модули которые могут быть использованы в vz.

Нет, service iptables restart не выгружает модули.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>117602</commentid>
    <comment_count>9</comment_count>
    <who name="Slava Dubrovskiy">dubrsl</who>
    <bug_when>2011-01-24 20:49:00 +0300</bug_when>
    <thetext>(В ответ на комментарий №8)
&gt; &gt; Ведь если делать service iptables restart, то при остановке будет
&gt; &gt; попытка выгрузить те модули которые могут быть использованы в vz.
&gt; Нет, service iptables restart не выгружает модули.
Но service iptables stop выгружает.
Повторю суть обсуждения: - Eсли делать service iptables stop, то при остановке будут выгружены модули которые использованы в vz. Что делать при этом?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>117603</commentid>
    <comment_count>10</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2011-01-24 20:52:56 +0300</bug_when>
    <thetext>(In reply to comment #9)
&gt; (В ответ на комментарий №8)
&gt; &gt; &gt; Ведь если делать service iptables restart, то при остановке будет
&gt; &gt; &gt; попытка выгрузить те модули которые могут быть использованы в vz.
&gt; &gt; Нет, service iptables restart не выгружает модули.
&gt; Но service iptables stop выгружает.

Да, stop пытается выгрузить модули.

&gt; Повторю суть обсуждения: - Eсли делать service iptables stop, то при остановке
&gt; будут выгружены модули которые использованы в vz. Что делать при этом?

Модули, которые используются, выгрузить невозможно.
А в чем, собственно говоря, проблема?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>117604</commentid>
    <comment_count>11</comment_count>
    <who name="Slava Dubrovskiy">dubrsl</who>
    <bug_when>2011-01-24 21:03:16 +0300</bug_when>
    <thetext>&gt; Модули, которые используются, выгрузить невозможно.
&gt; А в чем, собственно говоря, проблема?
Да, что-то занесло.
Проблема в том, о чем изначально завел баг.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>117618</commentid>
    <comment_count>12</comment_count>
    <who name="aspsk">aspsk</who>
    <bug_when>2011-01-25 09:11:42 +0300</bug_when>
    <thetext>(В ответ на комментарий №11)
&gt; &gt; Модули, которые используются, выгрузить невозможно.
&gt; &gt; А в чем, собственно говоря, проблема?
&gt; Да, что-то занесло.
&gt; Проблема в том, о чем изначально завел баг.

Ну тогда может быть стоит перевесить этот баг на ovz-el?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>117994</commentid>
    <comment_count>13</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2011-02-05 01:11:32 +0300</bug_when>
    <thetext>(In reply to comment #12)
&gt; (В ответ на комментарий №11)
&gt; &gt; &gt; Модули, которые используются, выгрузить невозможно.
&gt; &gt; &gt; А в чем, собственно говоря, проблема?
&gt; &gt; Да, что-то занесло.
&gt; &gt; Проблема в том, о чем изначально завел баг.
&gt; 
&gt; Ну тогда может быть стоит перевесить этот баг на ovz-el?

OK</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>118043</commentid>
    <comment_count>14</comment_count>
    <who name="aspsk">aspsk</who>
    <bug_when>2011-02-07 16:49:52 +0300</bug_when>
    <thetext>Fixed in ovz-el-2.6.32-alt10</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>