Product SiteDocumentation Site

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, нужно выполнить следующие действия:
  1. На каждом реальном сервере выполнить следующую команду для каждой комбинации VIP, порта и протокола (TCP или UDP):
    iptables -t nat -A PREROUTING -p <tcp|udp> -d <vip> --dport <port> -j REDIRECT
    Эта команда заставит реальный сервер обрабатывать пакеты, направленные на VIP и порт, которые указаны в качестве аргументов.
  2. Сохранить конфигурацию на каждом реальном сервере:
    # service iptables save
    # chkconfig --level 2345 iptables on
    
    Приведенные выше команды настраивают систему таким образом, что конфигурация iptables применяется при старте системы.