Вышло очередное обновление iptables, набора userspace-утилит для управления встроенным в ядро Linux фреймворком фильтрации и преобразования пакетов netfilter.

В новом релизе обеспечена полная совместимость с недавно вышедшим ядром 2.6.36, включая поддержку таких возможностей, как:

  • Критерий cpu, позволяющий выделять пакеты по привязке к процессорному ядру, на котором они в данный момент обрабатываются. В частности, этот критерий можно использовать для максимизации использования кэша CPU, обеспечив полную обработку каждого пакета в пределах одного процессорного ядра. Привязав серверный обработчик к конкретному ядру и заданному порту, можно отправлять на этот порт все пакеты, обрабатываемые данным ядром. Так, например, будет выглядеть набор правил при наличии четырех процессорных ядер, по одному серверному процессу на каждое ядро:
    
    
     iptables -t nat -A PREROUTING -p tcp --dport 80 -m cpu --cpu 0 -j REDIRECT --to-port 8080
    
     iptables -t nat -A PREROUTING -p tcp --dport 80 -m cpu --cpu 1 -j REDIRECT --to-port 8081
    
     iptables -t nat -A PREROUTING -p tcp --dport 80 -m cpu --cpu 2 -j REDIRECT --to-port 8082
    
     iptables -t nat -A PREROUTING -p tcp --dport 80 -m cpu --cpu 3 -j REDIRECT --to-port 8083
    
  • Критерий ipvs, предоставляющий возможность классифицировать пакеты по параметрам IPVS (развивающегося в рамках проекта Linux Virtual Server инструмента для балансировки соединений между несколькими серверами). В частности, к таким параметрам относятся привязанные к текущему соединению виртуальный адрес и/или виртуальный порт (виртуальные адрес-порт представляют кластеризованный средствами IPVS сервис «снаружи», так, что поступающие на них соединения автоматически балансируются между нодами кластера), что позволяет разделять пакеты на основании принадлежности к тому или иному кластерному сервису.
  • Действие IDLETIMER, предоставляющее механизм для отслеживания моментов простоя сетевого интерфейса. Оно обеспечивает отправку уведомления в userspace, если в течение заданного периода времени через выбранный интерфейс не прошло ни одного пакета. Таким образом можно, например, автоматически отключать бездействующие сетевые карты для уменьшения энергопотребления.
  • Действие CHECKSUM, предоставляющее workaround для приложений, некорректно работающих в сочетании с аппаратными реализациями сверки контрольных сумм пакетов. С помощью данного действия можно обеспечить принудительный пересчет контрольных сумм для конкретного класса пакетов, что позволяет избежать необходимости полного отключения checksum offload.

Кроме того, добавлена возможность удаления правил с заданным значением счетчика квоты (критерий quota), а также улучшена документация.

Источник: http://www.opennet.ru/opennews/art.shtml?num=28463