Каков наилучший способ перенаправить все запросы с определенного порта на другую машину в сети? - PullRequest
0 голосов
/ 29 ноября 2008

У меня есть два выделенных сервера и нет аппаратного брандмауэра. Я хотел бы перенаправить все запросы, поступающие на основной сервер через порт 1008, для выполнения другим выделенным сервером в той же сети. Я знаю, что мне нужно настроить TCP-прокси, но я впервые услышал о IPTables вчера. Любые быстрые советы?

Ответы [ 3 ]

2 голосов
/ 30 ноября 2008

Самый простой способ - использовать что-то, что является просто TCP-прокси. Добиться этого можно с помощью iptables, но не легко.

Легко пересылать запросы от A, предназначенные для B, к C (используя DNAT), но труднее получить ответы C, чтобы вернуться к A через B (потому что DNAT не меняет адрес отправителя). Затем A игнорирует ответы, так как они приходят от C, а не от B.

По сути, способ сделать это - установить B в качестве шлюза C по умолчанию и, используя переадресацию, однако, это создает дополнительную точку отказа в B; в случае сбоя B исходящий трафик C (включая ответы на запросы, отправленные непосредственно в C) в конечном итоге уйдет в черную дыру.

Я думаю, что при использовании IPtables это возможно без этого трюка с маршрутизацией, но вам нужно иметь одинаковые соединения SNAT'd и DNAT'd, что в лучшем случае сложно.

Обычно в таких ситуациях большинство людей ставят другой хост (брандмауэр) перед двумя компьютерами и заставляют его принимать решения DNAT - конечно, это также приводит к точке отказа, поэтому в критических настройках брандмауэр обычно имеет резервное резервное копирование (его конфигурация синхронизирована, а иногда и таблица отслеживания подключений)

1 голос
/ 01 декабря 2008

Карсон прав: установите межсетевой экран между серверами и клиентами. Shorewall (таблицы IP) может затем перенаправить трафик на разные порты и разные машины.

Поскольку брандмауэр является мостом, вам не нужно изменять настройки сети, но интерфейсу моста необходимо назначить один IP-адрес для каждого сетевого клиента и сервера. В противном случае перенаправление не будет работать.

Предупреждение: компьютер, на котором изначально было указано соединение, должен быть подключен (это означает, что должен использоваться его IP-адрес), иначе перенаправление не будет работать.

Если перенаправление предназначено как средство аварийного переключения для обеспечения высокой доступности, я бы рассмотрел балансировщик нагрузки (кластер) вместо брандмауэра, который ведет к виртуальному серверу Linux (для общего подхода) или к программному обеспечению балансировки нагрузки например, Apache (с модом proxy_balancer), balance или pount (если только http-запрос должен быть сбалансирован). Есть также аппаратные устройства, такие как f5 для балансировки нагрузки.

1 голос
/ 29 ноября 2008

Прежде всего, я бы порекомендовал вам установить брандмауэр. Я давно использовал Shorewall для управления iptables, и его довольно легко настроить. Во-вторых, если вы используете что-то вроде Shorewall, есть простые инструкции о том, как сделать DNAT (перенос портов) .

...