Здравствуйте!
Уже долго бодаюсь с одной задачей и это побудило меня написать сюда. Ситуация следующая: У меня есть устройство, удалённый модем, который посылает на белый адрес сервера по порту tcp 2041 данные. Со стороны белого адреса находится mikrotik (192.168.1.2), который по этому же порту принимает данные и перенаправляет на MOXA NPort 5650-16 (192.168.1.99).
На компьютере, куда мне нужно перенаправить эти данные, есть драйвер, который работает по COM-порту. В этом драйвере я обозначил COM15.
В NPort Administrator я объединил два порта 15ый и 16ый со следующими настройками:
COM15 (port2) и COM16 (port3) Serial Settings
Baud rate: 9600
Data bits: 8
Stop bits: 1
Parity: None
Flow Control: None
FIFO: Disable
Interface: RS232
COM15 (port2) Operating Settings - работает в режиме Real COM Mode, остальные параметры без изменений.
COM16 (port3) Operating Settings - работает в режиме TCP Server Mode, параметр Local TCP Port 2041, Command Port 968, остальное по умолчанию.
В MikroTik, на который приходят из интернета пакеты, прописаны следующие правила NAT:
Правило 1:
chain: dstnat, protocol: tcp, port: 2041, dst.address list: WAN (три белых IP в списке)
action: netmap, to-address: 192.168.1.99, to-ports: 2041
Правило 2:
chain: srcnat, dst-address: 192.168.1.99, protocol: tcp, dst-port: 2041, action:src-nat, to-address: 192.168.1.2
Получается, как я вижу, что COM15 сэмулировал, как физический, прописал его в драйвере. Объединил COM15 с COM16 в программе и обозначил его, как TCP Server с портом 2041, на который должны попадать пакеты и после чего, COM15 передавать их должен в драйвер. По MikroTik вижу, что пакеты он передает, но на компьютере в драйвере события не появляются, то есть NPort не передает их, или передает неверно.
Сейчас вся эта же схема работает на программе VSPE, где просто эмулируется COM-порт, делается Bridge с TCP Server, на котором прописал порт 2041, в MikroTik проброс порта напрямую на компьютер, всё работает, а через NPort не хочет по аналогичной схеме.
Пробовал подключать похожее устройство локально, напрямую кабелем в NPort, присвоил COM14, режим RealCom, прописал его в драйвере - всё работает.
Через WireShark посмотрел, вроде как что-то прилетает с портов 952 и 968, но с ошибками 0x014 (RST, ACK)