Два шлюза для сервера (httpd)

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС для молодых и начинающих системных администраторов.

Модератор: SLEDopit

Ответить
v1k3ng
Сообщения: 98
ОС: centos/ubuntu

Два шлюза для сервера

Сообщение v1k3ng »

Здравствуйте.
Имеется пул белых IP адресов. В сети два шлюза. (т.е. заняты 3 IP - два шлюза и один DNS) Одни юзера подключены к одному, другие к другому. Была задача вывесить к основному сайту еще один, но чтоб они были на разных IP и доменах.
На главном DNS сделаны несколько зон для каждого домена, в каждой зоне для www указан свой IP (одного из двух шлюзов).
Сам httpd находится внутри сети и на него входящие пакеты форвардятся iptables с каждого шлюза.
На httpd настроены два виртуальных хоста. Проблема в том. что при приходе пакетов с любого шлюза на веб-сервер, ответы на них уходят на первый шлюз (шлюз по умолчанию). А он не ждет пакетов, которые приходили на веб-сервер через второй шлюз. Как можно поступить в данном случае?
Везде Centos 6.x
gw1 = x.x.x.x
gw2 = y.y.y.y
web-server = 10.18.1.252

iptables GW1:
-A PREROUTING -d x.x.x.x -i eth1 -p tcp -m tcp --dport 80 -j DNAT --to-destination 10.18.1.252:80
-A POSTROUTING -s 10.18.0.0/255.255.0.0 -o eth1 -j SNAT --to-source x.x.x.x
-A FORWARD -d 10.18.1.252 -p tcp -m tcp --dport 80 -j ACCEPT

iptables GW2:
-A PREROUTING -d y.y.y.y -i eth1 -p tcp -m tcp --dport 80 -j DNAT --to-destination 10.18.1.252:80
-A POSTROUTING -s 10.18.0.0/255.255.0.0 -o eth1 -j SNAT --to-source y.y.y.y
-A FORWARD -d 10.18.1.252 -p tcp -m tcp --dport 80 -j ACCEPT

Записи в DNS в разных зонах:
www IN A y.y.y.y
www IN A x.x.x.x

Если на вебсервере ставим default gw = gw1, то работает 1 сайт. Если default gw = gw2, то первый перестает открываться, открывается второй.
Если в обоих зонах DNS указать A записи с одинаковым IP шлюза по умолчанию веб сервера, все работает.

Пытался добавлять статические маршруты на веб-сервере:
route add -host y.y.y.y gw 10.18.1.162 (это внутренний IP gw2), не работает.
route add -host 10.18.1.162 gw 10.18.1.162 (это внутренний IP gw2), не работает.

Может быть, есть какое-то решение без таких пуляний пакетов по сети, а с задействованием одного шлюза?
Спасибо сказали:
v1k3ng
Сообщения: 98
ОС: centos/ubuntu

Re: Два шлюза для сервера

Сообщение v1k3ng »

Так, не знаю, насколько это верно, но я добавил два маршрута по умолчанию (на веб сервер) с разными шлюзами и все заработало.
Медленно и с перебоями, но заработало. Похоже, это не верное решение.
Спасибо сказали:
Ответить