Привет, народ!
Нужно мне сделать очень странную вещь: пробросить Ethernet-соединение через COM-порт. Да, я знаю что это дичь, что такое никому не нужно, что будет медленно работать. Но таковы нынешние реалии.
Итак, имеется две машины, на одной стоит Linux, на второй Windows. Они находятся в физически разных Ethernet-сетях. Между ними нужно сделать иногда включаемое Ethernet-соединение. Из дополнительного оборудования - только шнур для соединения по COM-порту компьютер-компьютер (DTE-DTE DB9). Шнур проверен, соединение между терминалами lin+minicom <-> win+putty работает без вопросов.
То есть, еще раз: нужна Ethernet-сеть через физический COM-порт. Весь интернет забит решением совершенно противоположной задачи - как сделать проброс COM-порта через Ethernt-сеть. А вот как пробросить Ethernet через COM-порт - такого не нашел ни в рунете, ни в англонете.
Насколько я понял, возможно, под Linux можно будет обойтись одним только socat (а возможно и нет, я не специалист в этих делах). Вроде как socat умеет создавать виртуальное сетевое TUN-устройство, которое можно связать с COM-портом. Но у меня это сделать не получилось.
Что делать на стороне Windows - вообще ума не приложу, но вроде имеется socat for windows.
У меня есть подозрение, что одним только socat обойтись не получится, и в Linux придется еще крутить что-то наподобе ip net tap, а на стороне Windows брать кусок OpenVPN, через который создастся виртуальные сетевой интерфейс, и на него завернуть COM-порт через socat for Windows.
Чтобы это сделать мне нужно понять как действовать глобально (какую схему применить) и какими командами все это пытаться собрать вместе. Возможно, что вообще есть другое готовое opensource решение, а я о нем просто не знаю.
И еще, я все никак не могу понять синтаксис socat: что указывается в качестве первого и второго адреса в параметрах? Для стороны Linux надо первым указать сетевое устройство, вторым - COM-порт или наоборот? А на стороне Windows как?