3.2.2. Прямая маршрутизация и iptables
Проблему с ARP при использовании прямой маршрутизации можно обойти, создав правила сетевого экрана iptables
. Для настройки прямой маршрутизации с использованием iptables
, нужно добавить правила, которые создают прозрачный proxy, и после этого реальный сервер будут обрабатывать пакеты, направленные на VIP-адрес, при этом IP-адрес в системе не настроен.
Метод iptables
проще настраивать, чем метод arptables_jf
. Использование этого метода полностью устраняет проблему ARP, поскольку VIP-адреса существуют только на активном LVS-маршрутизаторе.
Тем не мение, производительность LVS при использовании метода iptables
меньше, чем при использовании метода arptables_jf
, поскольку требуется временя на forwarding/masquerading каждого пакета.
Также нельзя использовать один и тот же порт как в случае с arptables_jf
. К примеру, не получится запустить два экземпляра HTTP-сервера Apache, использующих порт 80, поскольку они оба должны быть привязаны к INADDR_ANY
, а не к виртуальным IP-адресам.
Для настройки прямой маршрутизации с испольльзованием метода iptables
, нужно выполнить следующие действия:
На каждом реальном сервере выполнить следующую команду для каждой комбинации VIP, порта и протокола (TCP или UDP):
iptables -t nat -A PREROUTING -p <tcp|udp> -d <vip> --dport <port> -j REDIRECT
Эта команда заставит реальный сервер обрабатывать пакеты, направленные на VIP и порт, которые указаны в качестве аргументов.
Сохранить конфигурацию на каждом реальном сервере:
# service iptables save
# chkconfig --level 2345 iptables on
Приведенные выше команды настраивают систему таким образом, что конфигурация iptables
применяется при старте системы.