LINUX.ORG.RU

Сообщения x00r

 

Дополнительный IP на loopback-е

Вечер добрый.
Прошу помощи всезнающего all.
Centos 6
Суть такова: для организации балансинга с DSR (direct server return) есть стенд из двух машин, для тестирования тонких моментов.

host A: eth0 10.0.0.1/24 выполняет роль директора/балансировщика
host B: eth0 10.0.0.2/24, lo:0 10.0.0.1/32 собственно, одна из нод кластера, куда, в зависимости от алгоритма распределения запросов будет пробрасываться пакет от балансера (host A).

На хосте B на lo повешен алиас lo:0 с айпишником балансера 10.0.0.1/32.
Собственно, стандартная схема, которую скорее всего многие уже реализовывали. Пакет приходящий на виртуальный айпишник балансера пропихивается дальше в ethernet с измененным мак-адресом. В качестве нового мака подставляется мак ноды, которая в свою очередь принимает фрейм.

В теории все должно работать, однако получается, так, что arp запросы от ноды B отдаются кому угодно, но только не хосту A. Пингуя адрес 10.0.0.2 с хоста А я получаю Destination host unreachable. На стороне B я вижу arp реквесты от А, но ответы не посылаются. Если сделать arping c любого другого адреса в пределах сегмента, то все отлично, есть реквест и ответ.

Проблема с ответами на не свой айпишник на ноде B вроде как вылечилась через правила в arptables:

arptables -A IN -d 10.0.0.1 -j DROP
arptables -A OUT -s 10.0.0.1 -j mangle --mangle-ip-s 10.0.0.2

Однако, как уже было отмечено выше, нода B перестала отвечать вообще на arp запросы от хоста А. Скорее всего я делаю что-то не так. Куда копать?

Айпишник на loopback (хост B) добавлен следуюшим образом:

ip addr add 10.0.0.1 dev lo

Т.е при добавлении еще одного айпишника на лупбэк и включения фильтрации по маку через arptables, машина вообще перестает отвечать на arp запросы хоста, чей айпишник на ней прописывается.

x00r
()

RSS подписка на новые темы