Назад | Перейти на главную страницу

iptables: Как перенаправить / перенаправить трафик без трафика через сервер?

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

Я сделал:

iptables -t nat -A PREROUTING -p tcp --dport 25 -j DNAT --to-destination 11.111.11.111:25

iptables -t nat -A POSTROUTING -j MASQUERADE

* это просто пример, реальный проект - это не порт 25, а также другая программа (мы работаем над ...)

Но теперь весь трафик идет так: User> MyServer> ExternalServer> MyServer> User

но я надеялся получить что-то вроде этого: User> MyServer> ExternalServer> User

Подобно CNAME или, возможно, перенаправлению htacces. Возможно ли что-то подобное?

я считать вы хотите перенаправление xinetd, а не iptables (мне никогда не приходилось делать это в гневе). Попробуй это:

# /etc/xinetd.d/redirect25
service redirect25
{
        port                    = 25
        type                    = UNLISTED
        disable                 = no
        socket_type             = stream
        wait                    = no
        user                    = root
        redirect                = 11.111.11.111 25
}

затем перезапустите xinetd. Возможно, вам придется учитывать проблемы ретрансляции, учитывая, что это почтовый порт.

Вероятно, вам нужно использовать что-то вроде Виртуальный сервер Linux с LVS / TUN или LVS / DR методы. Они создают виртуальный IP-адрес на балансировщике нагрузки, который затем туннелирует или напрямую направляет входящие пакеты на внутренние серверы, сохраняя исходный IP-адрес источника и назначения (в отличие от NAT). Затем внутренние серверы могут направлять ответные пакеты напрямую клиенту, а не через балансировщик нагрузки.

Я не думаю, что это можно сделать только с помощью iptables.