Как пробросить трафик с одного сервера на другой?
Доброго дня.
Столкнулся со следующей проблемой — необходимо пробросить трафик с 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 — в принципе рассматривается.
Заранее спасибо.
Столкнулся со следующей проблемой — необходимо пробросить трафик с 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 — в принципе рассматривается.
Заранее спасибо.
Похожие публикации
Физическое подключение сервера доступа в интернет из локальной сети?
Как лучше организовать IT-инфраструктуру предприятия?
Как настроить iptables, что бы из локальной в глобальную ходить?
Как подключить java-сервер к внешнему сетевому интерфейсу в Linux?
Как обмениваться пакетами с сервером мобильной онлайн андроид игры?
Нет комментариев