Показать полную графическую версию : 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 к которым я обращаюсь.
Напишите пожалуйста, какие нужно правила прописать на втором роутере.
чтоб работало не только с тем IP который прописан в --to-destination х.х.х.х но и с другими тоже. »
Может просто не указывать to-destination?
shisik, так вообще молчит
shisik, Похоже вообще не там копаю, FORWARD нужен скорее всего, вопрос как правильно правило написать на первом роутере и на втором.
Вот, второму роутеру которому пересылается запрос прописал iptables -A FORWARD -j ACCEPT, теперь думаю, какое правило нужно прописать на первом роутере.
Это не поможет? https://unix.stackexchange.com/questions/258457/using-iptables-to-redirect-all-traffic-to-local-webserver
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 не умеет то что я хочу.
Похоже iptables не умеет то что я хочу. »
Это вряд ли.
root221, т.е. у Вас два роутера, которые стоят друг за другом, и Вы хотите перенаправить весь UDP трафик с конкретного клиента на конкретный адрес?
Можете включить логгирование и проверить, с каким IP приходит запрос на второй роутер, полагаю там окажется: -s 192.168.1.10 »
Также не совсем понятно, через какой интерфейс у Вас уходят пакеты, возможно, что потребуется настроить и FORWARD.
Нет, есть сеть 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
Есть ещё проблемка, ввожу в консоли любой вообще какой угодно адрес ИП:PORT и все равно подключает только к --to-destination СЕРВЕР:ПОРТ который указан на втором роутере.
NickM, Вот если бы второй роутер находился с первым в одной подсети то проблем бы не было, но у них у обоих маска 0/24, как в такой ситуации настроить FORWARD можно конечно VPN поднять но это уже другая история, хочется через iptables настроить если он так умеет.
Я понял. То есть есть 2 локальные сети, подключенные к общему (внешнему) роутеру. И нужно соединить произвольный ПК в одной сети с произвольным сервером в другой. Примерно как здесь https://serverfault.com/questions/959288/iptables-bridge-routing-between-two-independent-lans-and-router
shisik, ну почитал, никак не могу сформулировать правила для первого роутера и для второго.
Вообще должно получиться так
Схема должна получиться такая
КОМПЬЮТЕР с ИП 192.168.1.10 > connect x.x.x.x:27015 > Роутер первый к которому подключен компьютер, видит что с компьютера поступил запрос на x.x.x.x:27015, полученный запрос перенаправляет на > второй роутер у которого IP 10.0.5.130 обрабатывает и < возвращает ответ компьютеру, если сервер ответил подключаемся, сервер к которому буду стучаться находится в интернете, интернет видит только второй роутер.
сервер к которому буду стучаться находится в интернете, интернет видит только второй роутер »
В смысле, в интернете? И у него нет внешнего IP? Тогда остаётся только пробросить его порт наружу, но он будет такой один. Ну то есть вариант, что в удалённой локальной сети будет несколько серверов и вы сможете к любому из них подключиться, исключается. Ну или поднимайте VPN, чтоб все серверы и клиенты были в одной сети.
Вот если бы был доступ ко всем промежуточным узлам между локалками, тогда наверно можно было бы настроить. А так нет.
shisik, получается нужно каждый раз менять на втором роутере правило -j DNAT --to-destination IP:PORT, по-другому работать не будет ?
Ну это обычная проброска порта на ПК, находящийся за NAT. Вообще обычно это делает я иначе. Если игровой сервер поднимается за NAT, то в роутере прописывается направление трафика на соответствующий порт (27015) на этот ПК в локалке. Клиенты же, независимо от того, как они подключены к интернету, просто подключаются по внешнему IP роутера, за которым находится сервер. Умеет это любой бытовой роутер.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.