iptables forward и nat ruls

кто-нибудь знает, как мы можем установить связь между двумя компьютерами, если один компьютер находится в центре этих двух компьютеров.

в лучшем случае я хочу подключиться к компьютеру с Linux вместе, но эти 2 компьютера не могут видеть друг друга, поэтому есть решение, у меня есть еще один компьютер с Linux, который может видеть еще 2 компьютера! так что возможно любое правило iptables для пересылки пакетов с этим компьютером

я хочу подключиться с компьютера 1 к компьютеру 3 через порт 5050, затем компьютер 1 может подключиться к компьютеру 2, а компьютер 2 может подключиться к компьютеру 3 через порт 5050, затем на этапе воспроизведения компьютер 3 должен воспроизвести на компьютер 2, а компьютер 2 должен переслать полученный пакет на компьютер 1

для лучшего понимания см.:

1 --> 2 --> 3
1 <-- 2 <-- 3

все ОС ПК - Centos 5.7

Я думаю, что iptables может это сделать, но я не смог найти ссылку или помощь в Google, чтобы сделать это, поэтому любые ребята могут мне помочь?


person ermya    schedule 05.04.2012    source источник


Ответы (2)


если вам нужен один порт:

1 (addr 1.1.1.1)
2 (addr 1.1.1.2,3.3.3.2)
3 (addr 3.3.3.3)

on 2:

iptables -t nat -A PREROUTING -s 1.1.1.1 -p tcp --dport 5050 -j DNAT --to-destination 3.3.3.3
iptables -t nat -A PREROUTING -s 3.3.3.3 -p tcp --dport 5050 -j DNAT --to-destination 1.1.1.1
iptables -t nat -A POSTROUTING -d 3.3.3.3 -p tcp --dport 5050 -j SNAT --to 3.3.3.2
iptables -t nat -A POSTROUTING -d 1.1.1.1 -p tcp --dport 5050 -j SNAT --to 1.1.1.2
person askovpen    schedule 25.04.2012

Прежде всего, включите IP-переадресацию. Затем введите следующие команды:

iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

iptables -A FORWARD -i eth1 -o eth0 -m состояние --state СВЯЗАННО, УСТАНОВЛЕНО -j ПРИНЯТЬ

iptables -A ВПЕРЕД -i eth0 -o eth1 -j ПРИНЯТЬ

person Mandar Shinde    schedule 02.07.2013