Господа, пардон, не знаю даже какие доки курить и в какую сторону, новые для меня дебри. Предполагаю, что iptabels и nat нужен мне. Ситуация...
Сейча есть две машины, работают в одной подсети 10.a.b.* через свитч, на каждой машине по программе. Программы общаются исключительно по UDP, через несколько портов, все просто:
_____________ _____________
| Машина 1 | | Машина 2 |
| программа 1 | | программа 2 |
| | | |
| IP 10.a.b.c |eth0 eth0| IP 10.a.b.d |
|все UDP порты|<-----> тупо через свитч <----->|все UDP порты|
|в т.ч.на 8000| |в т.ч.на 8000|
Но тут встала задача. Нужно мне определенные особенные пакеты, которые уходят с Машины 1 на порт 8000 Машины 2 не слать напрямую, а перенаправлять на некий девайс с IP 172.16.k.m. (он подключен на eth1 Машины 1). Далее эти пакеты будут девайсом шифроваться, идти по каналу (даже я не знаю, что за канал физически), на другом конце расшифровываться другим девайсом таким же и попадать на Машину 2 уже с IP 172.16.x.y второго девайса (порты девайсы сохраняют сами при передаче):
_____________ _____________
| Машина 1 | | Машина 2 |
| программа 1 | | программа 2 |
| | | |
| IP 10.a.b.c |eth0 eth0| IP 10.a.b.d |
|все UDP порты|<-----> тупо через свитч <----->|все UDP порты|
| | | |
| | | |
|IP 172.16.k.l|eth1__________ ?? __________eth1|IP 172.16.x.z|
| пакеты на |-->|девайс IP:|->|девайс IP:|-->| пакеты на |
|UDP-порт 8000| |172.16.k.m| |172.16.x.y| |UDP-порт 8000|
Сделать все необходимо без модификации программ, бубном Линуксоадмина. Т.е. на Машине 1 мне нужно правило, по которому UDP-пакеты, улетающие наружу к 10.a.b.d:8000 должны перенаправляться на 172.16.k.m:8000. На второй Машине пакеты, которые пришли от 172.16.x.y на локальный адрес 172.16.x.z:8000 должны модифицироваться так, как будто они пришли напрямую с первой Машины через обычный свитч на локальный адрес 10.a.b.d:8000.