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

Виртуальный IP-адрес кардиостимулятора и IPTables

Я пытаюсь настроить кластер из двух виртуальных машин VMware, работающих под управлением Heartbeat, Pacemaker и Varnish на Ubuntu Server 10.04, с намерением использовать их в качестве основного и резервного балансировщика загрузчика для дополнительных виртуальных машин. Varnish работает нормально, а Heartbeat собирает обе виртуальные машины, как задумано, со следующей конфигурацией ha.cf:

autojoin none
bcast eth0
crm respawn
deadtime 20
initdead 120
keepalive 2
logfacility syslog
node VMViper
node VMJester
warntime 5

VPViper имеет IP-адрес 192.168.1.54, а VMJester - IP-адрес 192.168.1.53. Я установил их в / etc / hosts и использую статический DHCP на моем физическом маршрутизаторе (WRT54GL с Tomato 1.28). Я могу видеть серверный веб-сайт через любой из этих IP-адресов в браузере.

IPTables выглядит так:

:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -i lo -j ACCEPT
-A INPUT -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -i eth0 -p udp -m udp --dport 80 -j ACCEPT
-A INPUT -i eth0 -p udp -m udp --dport 694 -j ACCEPT

Теперь я хотел бы иметь один виртуальный IP-адрес в Pacemaker, который обслуживает сайт. Я дошел до:

sudo crm configure property stonith-enabled=false
sudo crm configure primitive cluster ocf:heartbeat:IPaddr params ip=192.168.1.61 op monitor interval=10s

который создает рабочий кластер (по общему признанию, пока не хватает какой-либо значительной конфигурации):

node $id="08a94061-336c-422d-bf72-910662045127" vmviper
node $id="d4364751-0307-4a71-a303-5df01cbc919c" vmjester
primitive mycluster ocf:heartbeat:IPaddr \
    params ip="192.168.1.61" \
    op monitor interval="10s"
property $id="cib-bootstrap-options" \
    dc-version="1.0.8-042548a451fce8400660f6031f4da6f0223dd5dd" \
cluster-infrastructure="Heartbeat" \
stonith-enabled="false"

Выключение любой виртуальной машины перемещает расположение кластера (sudo crm resource status mycluster) на рабочую машину. Пока все хорошо, но теперь у меня отсутствие сетевого таланта означает, что я наткнулся на стену. Так что теперь у меня много вопросов:

Я не совсем понимаю концепцию виртуального IP. Я добавил 192.168.1.61 в конфигурацию Pacemaker в качестве своего виртуального IP-адреса, но нигде не упоминал об этом. Должен ли я ожидать увидеть MAC-адрес для нового виртуального интерфейса в интерфейсе моего маршрутизатора? Что мне нужно изменить, чтобы это стало видимым?

По-видимому, я должен также попытаться скрыть 192.168.1.54 и 192.168.1.53 от внешнего мира. Как мне это сделать?

В одной из статей, которые я прочитал, говорится, что мне нужно установить net.ipv4.ip_forward = 1 в /etc/sysctl.conf. Это необходимый шаг?

Виртуальный IP-адрес (VIP) находится между двумя реальными IP-адресами. Цель состоит в том, чтобы иметь согласованный IP-адрес для использования из внешнего мира в случае отказа вашего основного узла кластера. Он использует MAC-адрес интерфейса, содержащего настоящий IP-адрес.

В конце концов, вы можете захотеть скрыть адреса .53 и .54, но я бы не стал беспокоиться об этом праве.

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

Что вы получаете, когда указываете браузеру адрес 192.168.1.61?