Сложным способом, если это возможно, было бы создание псевдонима IP для сетевой карты, которую необходимо маршрутизировать через маршрутизатор.Таким образом, вы бы отправили на этот внешний адрес, который идет на ваш шлюз / маршрутизатор, а затем отправляется обратно на ваш IP-псевдоним.Для этого маршрутизатор должен поддерживать несколько IP-адресов из разных подсетей на одном порту.
Router
ip1: 192.168.0.1
ip2: 192.168.1.1
PC A (your machine)
ip1: 192.168.0.2 with gateway 192.168.0.1
ip2(alias): 192.168.1.10 with gateway 192.168.1.1
Таким образом, вы отправляете трафик с ПК A ip1 на ПК A ip2, он должен маршрутизироваться через шлюз.
Очевидно, что для этого требуется гораздо больше, чем просто код, он требует изменений конфигурации, IP Aliasing, и т.д ... Я не думаю, что это то, что вы хотите, но это может быть решением.Я надеюсь, что кто-то может придумать лучшую идею (возможно, возиться с таблицами маршрутов Arp / Ip?).
-
Второе решение: В таблице маршрутов ОС вы можетеработать со шлюзом локального IP-адреса (при условии, что ваша машина - .0.2, а маршрутизатор / шлюз - .0.1:
Route DELETE 192.168.0.2
Route ADD 192.168.0.2 MASK 255.255.255.255 192.168.0.1 METRIC ?? IF ???
. Используя это, я заставил мою машину связаться со шлюзом для пакетов ip, предназначенных для моегособственная машина. Мне удалось подтвердить это с помощью traceroute, теперь с помощью 2 шагов. Вы должны задать правильный параметр Metric and Interface (IF) для команды Route ADD.