Службы, использующие несколько портов и LVS кластеры

LVS маршрутизаторы в любой схеме требуют дополнительной настройки для использования многопортовых LVS служб. Многопортовые службы могут быть созданы искусственно, с помощью меток межсетевых экранов, связывающих вместе различные, но связанные протоколы, такие как HTTP (порт 80) и HTTPS (порт 443) или разные порты многопортовых протоколов, таких как FTP. В любом случае LVS маршрутизатор использует метки межсетевых экранов для распознавания пакетов, направленных на разные порты, но несущих одну метку, которые должны обрабатываться по одинаковым правилам. Также, вместе с сохранением соединения, метки межсетевых экранов обеспечивают установление соединений клиента с одним реальным серверов, в течении определенного времени сохранения. За дополнительной информацией о сохранении соединения, обратитесь к разделу ВИРТУАЛЬНЫЙ СЕРВЕР в Главе 9.

К сожалению, механизм используемый для балансировки нагрузки на реальных серверах - IPVS - может распознавать в пакетах метки межсетевого экрана, но сам не может назначать такие метки. Задача назначения меток межсетевого экрана должна выполняться сетевым пакетным фильтром, например iptables или ipchains, настраиваемым вне Piranha Configuration Tool.

Назначение меток межсетевого экрана

Для назначения меток межсетевого экрана пакету, направленному в определенный порт, администратор должен использовать iptables или ipchains.

ВажноВажно
 

В приведенных ниже примерах маркировки используются команды iptables и ipchains. Однако администраторы должны знать что iptables является предпочитаемым методом фильтрования пакетов, так как он использует более безопасную, мощную и гибкую технологию. Кроме этого, в будущих версиях Red Hat Linux поддержка ipchains может быть прекращена.

В этом разделе показано как связать HTTP и HTTPS, заметим, что FTP это многопортовый протокол и настраивается по-другому. Если LVS кластер используется для работы FTP служб, обратитесь к разделу Использование FTP в LVS кластере за дополнительными деталями о конфигурации кластера.

Необходимо запомнить главное правило использования меток межсетевых экранов: для каждого протокола, настроенного на использование меток в Piranha Configuration Tool должно быть соответствующее правило в iptables или ipchains для присвоения меток сетевым пакетам.

Перед определением правил фильтра сетевых пакетов, убедитесь что не определены другие правила. Для этого перейдя к приглашению командной оболочки в качестве root, введите:

/sbin/service iptables status
/sbin/service ipchains status

Если iptables не работает, на экране снова появится приглашение. Если ipchains не работает, появится следующее сообщение:

ipchains: Incompatible with this kernel (Несовместимо с этим ядром)

Если один из этих сетевых пакетных фильтров работает, отображается набор правил. Если правила определены, введите команду в соответствии с работающим сетевым фильтром:

/sbin/service iptables stop
/sbin/service ipchains stop

Если для вас важны уже определенные правила, проверьте содержимое файлов /etc/sysconfig/iptables или /etc/sysconfig/ipchains и скопируйте все нужные записи в безопасное место.

ВажноВажно
 

Хотя iptables является механизмом фильтрации сетевых пакетов, используемым по умолчанию в ядре 2.4, он не может быть использован одновременно с ipchains. Если вы пытаетесь выполнить /sbin/modprobe ip_tables, а модуль ipchains уже загружен, ядро сообщит об ошибке и не сможет запустить iptables. Верно также обратное утверждение. Чтобы получить список загруженных модулей, введите /sbin/lsmod.

Вы можете выбирать между использованием iptables или ipchains в качестве сетевого фильтра на LVS маршрутизаторе, но примите во внимание, что iptables предпочтительнее, так как поддержка ipchains в будущих выпусках системы не гарантируется.

Ниже приведены правила, назначающие одну метку межсетевого экрана, 80, входящим пакетам, направленным на плавающий IP адрес, n.n.n.n, порты 80 и 443. За инструкциями по присвоению VIP адресов внешнему сетевому интерфейсу, обратитесь к разделу ВИРТУАЛЬНЫЙ СЕРВЕР в Главе 9. Обратите внимание, вы должны войти в систему как root и загрузить либо iptables либо ipchains перед первым определением правил.

iptables
/sbin/modprobe ip_tables
/sbin/iptables -t mangle -A PREROUTING -p tcp \
               -d n.n.n.n/32 \
               --dport 80 -j MARK --set-mark 80
/sbin/iptables -t mangle -A PREROUTING -p tcp \
               -d n.n.n.n/32 \
               --dport 443 -j MARK --set-mark 80
ipchains
/sbin/modprobe ipchains
/sbin/ipchains -A input -p tcp -d n.n.n.n/32 80 -m 80
/sbin/ipchains -A input -p tcp -d n.n.n.n/32 443 -m 80

В приведенных выше командах фильтра сетевых пакетов, n.n.n.n должно быть заменено плавающим IP адресом вашего HTTP и HTTPS виртуального сервера. Эти команды указывают фильтру назначить всем входящим пакетам адресованным VIP адресу на соответствующие порты метку межсетевого экрана 80, которая распознается IPVS и позволяет выполнить соответствующую маршрутизацию.

ПредупреждениеПредупреждение
 

Команды, приведенные выше, вступают в силу сразу, но не будут действовать после перезагрузки системы. Чтобы настроить сохранение конфигурации фильтра сетевых пакетов, обратитесь к разделу Сохранение настроек сетевого фильтра