@alexbub

Как пробросить трафик с одного сервера на другой?

Доброго дня.
Столкнулся со следующей проблемой - необходимо пробросить трафик с 80 порта одного сервера (дале 1.1.1.1) на другой (далее 2.2.2.2). Оба сервера хостятся на амазоне, ОС - восьмой дебиан на первом и бубунта 14.04 на втором.

Делал так, через iptables:

# sed -i 's/#net.ipv4.ip_forward=1/net.ipv4.ip_forward=1/g' /etc/sysctl.conf # включил ip forwarding
# sysctl -p // проверил, включилось
# iptables -F // удалил текущие правила
# iptables -t nat -F // и специально для nat
// Далее сами правила 
# iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 2.2.2.2:80
# iptables -t nat -A POSTROUTING -p tcp -d 2.2.2.2 --dport 80 -j SNAT --to-source 1.1.1.1
# sudo iptables -t nat -L -n // проверка
// вывод:
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination
DNAT       tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:80 to: 2.2.2.2:80
 
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
 
Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
 
Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination
SNAT       tcp  --  0.0.0.0/0             2.2.2.2      tcp dpt:80 to: 1.1.1.1
// и напоследок сохранил и проверил:
# iptables-save | sudo tee /etc/iptables.up.rules


Tcpdump на первой машине показывает, что пакет отправляется на второй хост, но на втором хосте он либо не обрабатывается, либо его режет амазоновский нат. Гугление и общение с админами не помогло, все запутались ещё больше. Максимум чего удалось добиться это отправка пакетов на второй хост при обращении на первый, но там они не обрабатываются, в tcpdump нет вывода никакого.
Если кто то захочет предложить Port mirroring или mangle в iptables - в принципе рассматривается.

Заранее спасибо.
  • Вопрос задан
  • 818 просмотров
Пригласить эксперта
Ответы на вопрос 2
@snakeigor
У вас в security group для инстанса 2 разрешен данный трафик?
Ответ написан
@BOPOHA
Судя по тому, что порт один, 80, вероятно речь о веб трафике, и если не шифровать, то можно просто воспользоваться штатными модулями проскирования nginx или apache :
. . .
location / {
proxy_pass http://2.2.2.2:8080;
. . .
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы