Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Общий по Linux (http://forum.oszone.net/forumdisplay.php?f=9)
-   -   iptables перенаправление всего трафика (http://forum.oszone.net/showthread.php?t=350008)

root221 10-11-2021 20:02 2971466

iptables перенаправление всего трафика
 
Подскажите пожалуйста, какое нужно правило указать на роутере с Openwrt который будет принимать запросы, чтоб работало не только с тем IP который прописан в --to-destination х.х.х.х но и с другими тоже.

вот запросы

на первом роутере

Код:

iptables -t nat -A PREROUTING -p udp -s 192.168.1.10 -j DNAT --to-destination х.х.х.х

вот на втором который видит что обращаюсь с х.х.х.х и перенаправляет меня на у.у.у.у

Код:

iptables -t nat -A PREROUTING -p udp -s х.х.х.х -j DNAT --to-destination у.у.у.у
Срабатывает если я с первого роутера обращаюсь на IP у.у.у.у, а нужно чтоб обрабатывались любые другие IP к которым я обращаюсь.

Напишите пожалуйста, какие нужно правила прописать на втором роутере.

shisik 10-11-2021 23:49 2971479

Цитата:

Цитата root221
чтоб работало не только с тем IP который прописан в --to-destination х.х.х.х но и с другими тоже. »

Может просто не указывать to-destination?

root221 11-11-2021 00:10 2971480

shisik, так вообще молчит

shisik, Похоже вообще не там копаю, FORWARD нужен скорее всего, вопрос как правильно правило написать на первом роутере и на втором.

Вот, второму роутеру которому пересылается запрос прописал iptables -A FORWARD -j ACCEPT, теперь думаю, какое правило нужно прописать на первом роутере.

shisik 11-11-2021 01:04 2971487

Это не поможет? https://unix.stackexchange.com/quest...ocal-webserver

root221 11-11-2021 01:37 2971489

shisik,
Как я понял, там тоже самое что делаю я

iptables -t nat -A PREROUTING -p udp -s х.х.х.х -j DNAT --to-destination 0/0 так тоже не работает, не знает роутер какой ему адрес обрабатывать, видимо первый роутер этот адрес и не передаёт что-ли

iptables -t nat -A PREROUTING -p udp -s х.х.х.х -d 0/0 -j DNAT так тоже не хочет.

там --src у меня это -s
там --dst у меня это -d

Похоже iptables не умеет то что я хочу.

shisik 11-11-2021 16:16 2971545

Цитата:

Цитата root221
Похоже iptables не умеет то что я хочу. »

Это вряд ли.

NickM 11-11-2021 17:08 2971552

root221, т.е. у Вас два роутера, которые стоят друг за другом, и Вы хотите перенаправить весь UDP трафик с конкретного клиента на конкретный адрес?

Можете включить логгирование и проверить, с каким IP приходит запрос на второй роутер, полагаю там окажется:
Цитата:

Цитата root221
-s 192.168.1.10 »

Также не совсем понятно, через какой интерфейс у Вас уходят пакеты, возможно, что потребуется настроить и FORWARD.

root221 11-11-2021 20:56 2971597

Нет, есть сеть 192.168.1.0/24 в которой находится непосредственно компьютер 192.168.1.10 с которого будут запросы.

Первый роутер получает адрес от третьего роутера WAN 10.0.0.100

Второй роутер через который я хочу подключаться так же получает адрес WAN 10.0.5.130 от третьего роутера, только подсеть другая.

Все роутеры видят друг друга.

По сути я пишу на первом роутере команду iptables -t nat -A PREROUTING -p udp -s 192.168.1.10 -j DNAT --to-destination 10.0.5.130 и весь UDP трафик с моего компьютера IP 192.168.1.10 посылается на IP 10.0.5.130

На втором роутере с IP 10.0.5.130 я пишу iptables -t nat -A PREROUTING -p udp -s 10.0.0.100 -j DNAT --to-destination СЕРВЕР:ПОРТ это уже конечный сервер к которому подключаюсь.

То есть чтоб подключиться к другому серверу мне приходится вручную менять на втором роутере СЕРВЕР:ПОРТ и тогда подключается куда нужно, но таких серверов может быть 100500, как сделать так чтоб я ввёл IP в консоли игры 123.456.789.10:27015 и второй роутер понял что я обращаюсь к 123.456.789.10:27015 и подключился.

Справка:

192.168.1.10 - компьютер подключен к первому роутеру на нём игра с консолью в которой пишу connect СЕРВЕР:ПОРТ

10.0.0.100 и 10.0.5.130 это ip WAN на роутерах 1 и 2

root221 11-11-2021 21:21 2971600

Есть ещё проблемка, ввожу в консоли любой вообще какой угодно адрес ИП:PORT и все равно подключает только к --to-destination СЕРВЕР:ПОРТ который указан на втором роутере.

NickM, Вот если бы второй роутер находился с первым в одной подсети то проблем бы не было, но у них у обоих маска 0/24, как в такой ситуации настроить FORWARD можно конечно VPN поднять но это уже другая история, хочется через iptables настроить если он так умеет.

shisik 12-11-2021 00:07 2971616

Я понял. То есть есть 2 локальные сети, подключенные к общему (внешнему) роутеру. И нужно соединить произвольный ПК в одной сети с произвольным сервером в другой. Примерно как здесь https://serverfault.com/questions/95...ans-and-router

root221 12-11-2021 06:56 2971626

shisik, ну почитал, никак не могу сформулировать правила для первого роутера и для второго.

Вообще должно получиться так

Схема должна получиться такая
КОМПЬЮТЕР с ИП 192.168.1.10 > connect x.x.x.x:27015 > Роутер первый к которому подключен компьютер, видит что с компьютера поступил запрос на x.x.x.x:27015, полученный запрос перенаправляет на > второй роутер у которого IP 10.0.5.130 обрабатывает и < возвращает ответ компьютеру, если сервер ответил подключаемся, сервер к которому буду стучаться находится в интернете, интернет видит только второй роутер.

shisik 12-11-2021 13:17 2971654

Цитата:

Цитата root221
сервер к которому буду стучаться находится в интернете, интернет видит только второй роутер »

В смысле, в интернете? И у него нет внешнего IP? Тогда остаётся только пробросить его порт наружу, но он будет такой один. Ну то есть вариант, что в удалённой локальной сети будет несколько серверов и вы сможете к любому из них подключиться, исключается. Ну или поднимайте VPN, чтоб все серверы и клиенты были в одной сети.

Вот если бы был доступ ко всем промежуточным узлам между локалками, тогда наверно можно было бы настроить. А так нет.

root221 12-11-2021 16:13 2971675

shisik, получается нужно каждый раз менять на втором роутере правило -j DNAT --to-destination IP:PORT, по-другому работать не будет ?

shisik 14-11-2021 00:37 2971862

Ну это обычная проброска порта на ПК, находящийся за NAT. Вообще обычно это делает я иначе. Если игровой сервер поднимается за NAT, то в роутере прописывается направление трафика на соответствующий порт (27015) на этот ПК в локалке. Клиенты же, независимо от того, как они подключены к интернету, просто подключаются по внешнему IP роутера, за которым находится сервер. Умеет это любой бытовой роутер.


Время: 22:09.

Время: 22:09.
© OSzone.net 2001-