Назад | Перейти на главную страницу

правила iptables для уровней с использованием графического интерфейса пираньи

Я пытаюсь создать систему lvs, где 202.141.81.239 - это виртуальный IP-адрес, а 202.141.81.241 и 202.141.81.242 - маршрутизаторы lvs. Эта система отлично работает в нашей интрасети, но не через Интернет.

Ниже приведена моя конфигурация iptables.

# Generated by iptables-save v1.4.7 on Tue Mar 25 12:30:26 2014
*mangle
:PREROUTING ACCEPT [96:9901]
:INPUT ACCEPT [65:5340]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [48:3348]
:POSTROUTING ACCEPT [48:3348]
-A PREROUTING -d 202.141.81.239/32 -p tcp -m tcp --dport 80 -j MARK --set-xmark 0x50/0xffffffff
COMMIT
# Completed on Tue Mar 25 12:30:26 2014

С этой информацией довольно сложно понять, что здесь происходит, но это зависит от метода маршрутизации настроен (NAT или Direct).

Например, если вы используете Прямой метод вы должны настроить iptables следующим образом. (Источник). На каждом РЕАЛЬНОМ СЕРВЕРЕ:

iptables -t nat -A PREROUTING -p <tcp|udp> -d <vip> --dport <port> -j REDIRECT

Если он работает из внутренней сети, но не из внешней, но серверы используют общедоступные IP-адреса вместо частных IP-адресов, на самом деле это может быть проблемой брандмауэра (у вас есть другой брандмауэр, защищающий ваши серверы?). Если нет, просмотрите iptables для всех ваших серверов (LVS-маршрутизаторы и реальные серверы).

Также может быть хорошей идеей отключить iptables и двойную проверку (из внутренней и внешней сети), чтобы посмотреть, что произойдет. Возможно, вы используете arptables_jf вместо iptables, чтобы разрешить перенаправление ...

Если это все еще не работает, вы можете попробовать использовать Таблицы ARP вместо iptables для прямого метода (если вы действительно используете этот метод).