Я ищу симулятор сетевого интерфейса, который предлагает оба конца сети на одной машине (особенно для UDP).
То, как com0com работает для последовательных портов, но имитирует сетевую карту вместо последовательного порта.
Возможно ли такое поведение при творческом использовании существующего сетевого стека? (Переадресация портов или что-то в этом роде?) Или какая-то креативная конфигурация OpenVPN, L2TP/IPSec, SoftEther, PPTP и т. д.?
У меня есть программное обеспечение, которое я не могу изменить, которое привязывается к определенным портам UDP и отправляет исходящие сообщения на те же порты. Я хотел бы перехватывать и маршрутизировать эти сообщения, но я не могу сам привязываться к тем же портам, поскольку это программное обеспечение уже привязывается к ним.
Во-первых, он у вас уже есть практически на каждой платформе с сетевым интерфейсом. Это называется петлевым интерфейсом, и на самом деле это один из самых быстрых способов сделать что-то подобное. По умолчанию это предоставляет один адрес для всей системы, но на многих платформах, но если вы используете IPv4, вы можете добавить несколько адресов из блока 127.0.0.0/8, и в целом это будет работать правильно (к сожалению, вы не можете этого сделать). не делайте этого с IPv6, так как там зарезервирован только один адрес для использования обратной связи).
Однако есть несколько альтернативных вариантов, в зависимости от того, на какой системе вы работаете:
tun
и tap
(разница в том, какой уровень они эмулируют), и они используются для самых разных целей, от интерфейсов VPN до эмуляции сети для виртуальных машин.Вы не сказали, какую ОС вы используете, в любом случае всегда можно установить виртуальную машину ( например, VirtualBox в Windows, qemu/KVM в Linux) и установить в нее свое программное обеспечение.
Оттуда у вас есть целая виртуальная сеть, куда вы можете добавить все виды виртуальных маршрутизаторов, которые вам нужны.
ДжимБи
ДжимБи
Остин Хеммельгарн
tun
драйверы иtap
в Windows, используя встроенные драйверы (это то, что делает большинство предложений виртуальных машин в Windows), но это требует гораздо больше усилий.