LINUX.ORG.RU
ФорумAdmin

iptables DNAT

 


0

2

Добрый день. Прошу помощи по iptables. Есть такая ситуация:

  1. Клиент с адресом 1.1.1.1
  2. Сервер №1 с адресом 2.2.2.1
  3. Сервер №2 с адресом 3.3.3.1

Скорость соединения между клиентом и сервером №1 очень низкая (порядка 30Kbit/s). Скорость соединения клиент-сервер№2 100Mbit/sи сервер№1-сервер№2 100Mbit/s. Как сделать на сервере №2 перенаправление трафика с определенных портов на сервер №1. Пробовал с помощью iptables на сервере №2 для 443 порта:

iptables -t nat -A PREROUTING -p tcp –dport 443 -j DNAT –to-destination 2.2.2.1:443

iptables -t nat -A POSTROUTING -p tcp –dst 2.2.2.1 –dport 443 -j MASQUERADE

Трафик течет, но все еще с ограничением в 30Kbit/s. При использовании nginx - скорость получается порядка 100Mbit/s. Что я делаю не так в правилах iptables?

Ответ на: комментарий от Kolins

Если вместо этих правил использовать nginx и конструкцию такого вида:

stream { server { listen 443; proxy_pass 2.2.2.1:443; }

то при обращении на сервер №2 клиент по факту берет контент с сервера №1 на нормальной скорости

ziblis ()

Я конечно очень давно не крутил айпитаблес для таких задач, но сдается мне, что так как в тз, оно и не осилит.

Тут бы pf хорошо зашел. Нужно тут и в qos и в altq.

Или какая-то железка между ними, которая в это умеет.

Но могу ошибаться, iptables для таких задач не применял никогда. Спросите в гугле лучше.

anonymous ()
Ответ на: комментарий от anonymous

Тем не менее, по моему мнению данный способ не верный. Для этого понимания нужно углубиться в стэк тсипи пипи. Но работать костыльно будет, да. Правильно ли использовать костыли? Нет.

anonymous ()

Подампите tcp-пакеты и посмотрите, какие параметры tcp соединения (MSS, TCP Window Scaling) выставляются клиентом при подключении к сервер 1 и сервер 2, да и между сервер 1 и сервер 2. Явно будут отличия. Там и будет понято, что рихтовать iptables'ом.

mky ★★★★★ ()