3.2.2. Прямая маршрутизация и iptables

3.2.2. Прямая маршрутизация и iptables

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