Назад | Перейти на главную страницу

как отключить модуль ядра nf_conntrack в CentOS 5.3 без перекомпиляции ядра

Я использую CentOS 5.3 и хочу отключить модуль nf_conntrack, чтобы повысить производительность сети для haproxy. Я запускаю iptables с некоторыми простыми правилами. Мне действительно не нужно отслеживание соединения.

Я работаю на облачных серверах Rackspace, поэтому я не могу запустить собственное ядро. Я пробовал запустить modprobe, но это не сработало.

[mmarano@w1 w1]$ sudo modprobe -n -r nf_conntrack
FATAL: Module nf_conntrack is in use.

[mmarano@w1 w1]$ uname -a
Linux w1.somewhere.com 2.6.24-23-xen #1 SMP Mon Jan 26 03:09:12 UTC 2009 x86_64 x86_64 x86_64 GNU/Linux
[mmarano@w1 w1]$ cat /etc/redhat-release 
CentOS release 5.3 (Final)

Я хочу продолжить запуск iptables после извлечения этого файла, поэтому я не могу полностью отказаться от всех сетевых фильтров. У кого-нибудь есть мысли?

  1. удалите любую ссылку на модуль состояния в iptables. Итак, никаких правил вроде

    -A INPUT -m state --state СВЯЗАН, УСТАНОВЛЕН -j ПРИНЯТЬ

    модулю состояния требуется модуль nf_conntrack (ip_conntrack)

  2. удалите следующую строку (если она существует) в / etc / sysconfig / iptables-config

    IPTABLES_MODULES = "ip_conntrack_netbios_ns"

    Этот модуль требует ip_conntrack, от которого мы пытаемся отказаться.

  3. перезагрузите iptables без правил вашего штата.

    sudo iptables -F

    # добавьте свои настоящие правила

  4. сбросить модули. Пришлось использовать:

    sudo modprobe -r xt_NOTRACK nf_conntrack_netbios_ns nf_conntrack_ipv4 xt_state

    sudo modprobe -r nf_conntrack

  5. подтвердите, что у вас нет ссылки на / proc / net / nf_conntrack

  • А как насчет добавления модуля в /etc/modprobe.d/blacklist.conf?

  • Ты пробовала:

    rmmod -f modulename
    

    Хотя:

           -f --force
              This  option can be extremely dangerous: it has no effect unless
              CONFIG_MODULE_FORCE_UNLOAD was set when the kernel was compiled.
              With  this  option, you can remove modules which are being used,
              or which are not designed to be removed, or have been marked  as
              unsafe (see lsmod(8)).
    

Если вы используете Haproxy, вам понадобятся два типа правил в iptables для отключения conntrack в порту 80: правила для соединений от клиентов к вашему балансировщику и другие от вашего балансировщика к бэкэндам.

Вот верный пример:

iptables -t raw -I PREROUTING -p tcp --dport 80 -j NOTRACK
iptables -t raw -I PREROUTING -p tcp  --sport 80 -j NOTRACK
iptables -t raw -I OUTPUT -p tcp --dport 80 -j NOTRACK
iptables -t raw -I OUTPUT -p tcp --sport 80 -j NOTRACK

Когда я выполняю «modprobe -rf xt_state» и «modprobe -rf nf_conntrack_ipv6», он говорит: «FATAL: Module xt_state is in use.» (На centos).

"modused" может быть полезным, он может уменьшить количество использований любого модуля: http://www2.informatik.uni-freiburg.de/~danlee/fun/modused/

Ключ: остановка службы ip6tables

и добавьте nf_conntrack, xt_state, iptable_nat, nf_nat, nf_conntrack_ipv4, nf_conntrack_ipv6 в /etc/modprobe.d/blacklist.conf