Я немного подумал об этом, и используя устройства tun, мои клиентские и серверные тестовые приложения должны иметь возможность использовать простые linux-сокеты.Я объясню, как это может работать, описав путь пакета, отправленного тестовым клиентом.
Предварительные условия:
a) Два устройства tun, каждое из которых обеспечивает доступ к отдельной подсети
b) таблица маршрутизации была настроена для маршрутизации трафика на правильное устройство tun
1) клиент отправляет пакет на адрес в подсети tun1
2) приложение, подключенное к tun1(tun1app) преобразует адрес dst пакета в адрес подсети tun2, а адрес источника - в адрес подсети tun1, отличный от адреса интерфейса tun1
3) tun1app отправит измененный пакетback out
4) после маршрутизации tun2app получит пакет и переведет адрес назначения в интерфейс tun2, а адрес источника в адрес в сети tun2, отличный от адреса интерфейса
5)tun2app отправит его обратно, и сервер получит пакет, предполагая, что порт назначенияСервер прослушивает
Пакеты с сервера будут следовать обратному пути.
Это похоже на основную идею очень полезного инструмента.Кто-нибудь знает инструмент, способный сделать это?