Estou no estágio de pesquisa de um pequeno projeto relacionado ao encaminhamento de porta prioritária.
Eu tenho um conjunto de clientes tentando acessar um servidor de terminal com alguns rádios por trás dele.
O problema é que, se os dois clientes atingirem a mesma porta de destino no servidor de terminal, veremos dados inválidos no cliente errado.
Digamos que o cliente A solicite algo da porta de destino, mas o cliente B já estava solicitando algo, o dispositivo por trás do servidor de terminal naquela porta responde com os dados que enfileirou para enviar.
Note que a porta de destino é a mesma para ambos os clientes.
Gostaria de priorizar um dos servidores e, por isso, quero implementar um tipo de aplicativo de roteador baseado em Linux entre os dois clientes e o servidor de terminal.
Cada cliente acessaria uma porta diferente, mas o cliente prioritário seria encaminhado se começasse a se comunicar. O outro seria bloqueado, parado, parado ou o que quer que seja.
Eu poderia ter pego a arma e desenvolvido um pequeno aplicativo python que escuta em duas portas diferentes e encaminha a "prioridade" para o servidor de terminal. Bloquear o encaminhamento da porta "não prioritária", até que uma certa quantidade de sem comunicação ocorra na porta de prioridade.
Eu li sobre o iptables, alguns NAT, socat, um pouco de QoS, etc., mas não consigo encontrar algo para o meu problema.
Não sou especialista em rede e uso linux há cerca de dois anos, mas nunca fiz muita coisa com esses cenários de roteamento / encaminhamento TCP / ip, então gostaria de saber se há algo lá fora, Isso poderia me ajudar a priorizar uma porta em relação à outra, e isso seria mais eficiente que um aplicativo Python personalizado.
Obrigado por qualquer feedback.
Aqui está uma pequena img, para referência do que estou tentando fazer:
Prioridade de encaminhamento