Как осуществить перенаправление траффика или настроить маршрутизацию через код?
Стоит задача по реализации собственного VPN сервиса. И при разработке я взошел в ступор, так как надо реализовать основную функцию впн, а именно «подключение с другого ip». Пришел пока что вот к чему. Мне надо настроить перенаправление траффика или маршрутизацию кодом? Но как? Язык python, в крайнем случае C.
Вам надо сделать виртуальное ethernet устройство. Пришедшие на него пакеты надо оборачивать в какой-то ваш протокол, шифровать и посылать дальше на сервер. Сервер же полученные пакеты распаковывает и посылает на внешний интерфейс, подменяя IP адрес отправителя и порт на свои собственные. Пришедшие на этот адрес/порт пакеты сервер оборачивает, подменяет там адрес с портом и посылает назад клиенту. Клиент распаковывает и выдает в систему через виртуальное устройство.
Добавлю: про питон можете сразу забыть - С/С++.
На счет виртуальных сетевых адаптеров - можно использовать виртуальные tun/tap адаптеры, которые есть в никсах в ядре, а в винде реализован в TAP-Windows драйвере. Эти адаптеры используют многие существующие ВПН сервисы, например OpenVPN.
На самом деле, вам стоит 100 раз подумать прежде, чем заниматься этим.
Почему существующие решения вам не подходят?