LINUX.ORG.RU
ФорумAdmin

Проброс диапазона портов на всю подсеть.


0

0

Доброго времени суток!

Недавно перешел с FreeBSD на Linux CentOS по причине адекватной работы линукса с несколькими провайдерами, таблицей маршрутизации и типами соединений, и столкнулся со следующей проблемой: проброс диапазона портов 4000:6000 на все компьютеры сети 192.168.0.0/24 для корректной работы торрентов. На FreeBSD это реализовывалось через PF правилами вида

rdr proto tcp from any to $ext_ip port $torrent_ports0 -> <nated_hosts> port $torrent_ports0

rdr proto udp from any to $ext_ip port $torrent_ports0 -> <nated_hosts> port $torrent_ports0

гдe

torrent_ports0="4000:6000"

ext_ip="внешний IP"

Курил маны, лазил по форумам...

Правила вида

$ipt -t nat -A PREROUTING -i $iface -p tcp -d $ip_iface --dport $ports -j DNAT --to-destination $host1

$ipt -t nat -A PREROUTING -i $iface -p tcp -d $ip_iface --dport $ports -j DNAT --to-destination $host2

$ipt -t nat -A PREROUTING -i $iface -p tcp -d $ip_iface --dport $ports -j DNAT --to-destination $host3

где ports="4000:6000"

результата не дают. По статистике iptables -L -v -n -t nat 0 пакетов, 0 байт для каждого такого правила.

Уважаемые Камрады, подскажие варианты такого решения для Iptables или посоветуйте аналог PF для Linux. Заранее спасибо!

Проброс диапазона портов на всю подсеть.

Не понял, как можно порт с _одного_ адреса пробросить на _всю_ подсеть? Конвертировать уникасты в броадкасты?

nnz ★★★★ ()

Проброс диапазона портов на всю подсеть.

"Не понял, как можно порт с _одного_ адреса пробросить на _всю_ подсеть? Конвертировать уникасты в броадкасты?"

я перефразирую: _все_ пакеты с любого адреса, приходящие на внешний интерфейс, должны перенаправляться на локальные адреса, а в нашем случае _подсеть_ можно представить в виде набора правил, описывающих _каждый_ хост. В FreeBSD работает на "ура"!

dev-ice ()

Проброс диапазона портов на всю подсеть.

В FORWARD тоже цепочку надо добавлять.

Deleted ()

Проброс диапазона портов на всю подсеть.

> _все_ пакеты с любого адреса, приходящие на внешний интерфейс, должны перенаправляться на локальные адреса
И где здесь порты ? Каким образом шлюз определяет на какой локальный IP какой, пришедший извне, пакет перебрасывать ?

spirit ★★★★★ ()

Проброс диапазона портов на всю подсеть.

+1
больше похоже на непонимание предметной области, чем на несовершенство iptables

как решение вижу только циклом пробивать проброс портов в зависимости от ip клиента

af5 ★★★★★ ()

Проброс диапазона портов на всю подсеть.

>посоветуйте аналог PF для Linux.

Use FreeBSD и не мучайся.

iZEN ★★★★★ ()

Проброс диапазона портов на всю подсеть.

2 spirit: да, я слегка не точен был в формулировке, я имел ввиду все пакеты, приходящие на определенный диапазон портов.

2 af5: я знаю точно, что если указать в pf правило вида

rdr proto tcp from any to $ext_ip port $torrent_ports0 -> <nated_hosts> port $torrent_ports0

где nated_hosts - список ИП-адресов лок.сети. а torrent_ports={4000:6000} , то ВСЕ 30 компьютеров в сети начинают видеть сиды в торрент-клиентах, без этого правила сидов 0 и видны только пиры. Как ни крути, факт. Разумеется для каждого компьютера в сети, у меня жестко выставлены торрент-порты для передачи трафика пирам.

Так вот вопрос понимания предметной области тут не уместен! Возможно в PF есть какой-то движок, который может циклически взимодейстовать с конечными хостами, но я не вникал. Мне интересно, можно ли создать аналогичное правило проброса портов в Iptables и прошу поделиться опытом.

dev-ice ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.