Расставьте приоритеты одного порта над другим
Я нахожусь в стадии исследования небольшого проекта, связанного с приоритетной переадресацией портов.
У меня есть набор клиентов, пытающихся получить доступ к терминальному серверу с некоторыми радиоустройствами.
Проблема заключается в том, что если два клиента подключаются к одному и тому же целевому порту на терминальном сервере, я вижу данные мусора не на том клиенте.
Скажем, клиент A запрашивает что-то с целевого порта, но клиент B уже запрашивал что-то, устройство за терминальным сервером на этом порту отвечает данными, которые он поставил в очередь для отправки.
Обратите внимание, целевой порт одинаков для обоих клиентов.
Я бы хотел расставить приоритеты для одного из серверов, и поэтому я хочу внедрить приложение-маршрутизатор на основе linux между двумя клиентами и терминальным сервером. Каждый из клиентов будет подключаться к другому порту, но приоритетный клиент будет перенаправлен, если он начнет общаться. Другой будет заблокирован, остановлен, остановлен или что-то еще.
Возможно, я подскочил и разработал небольшое приложение на python, которое прослушивает 2 разных порта и перенаправляет "приоритетное" на сервер терминалов. Блокирует переадресацию "неприоритетного" порта до тех пор, пока в приоритетном порте не произойдет определенное количество сообщений.
Я читал о iptables, некоторых NAT, socat, немного QoS и т. Д., Но я не могу найти что-то там для моей проблемы.
Я не специалист по сетевым технологиям и использую Linux уже около 2 лет, но я никогда не делал много с этими сценариями маршрутизации / пересылки TCP/ IP, поэтому я хотел бы знать, есть ли что-то, что могло бы помочь я с приоритетом одного порта вперед по сравнению с другим, и это будет более эффективным, чем пользовательское приложение Python.
Спасибо за любые отзывы.
Вот небольшой img, для справки о том, что я пытаюсь сделать:
1 ответ
Я верю, что вы можете выполнить то, что вы пытаетесь сделать с помощью:
Насколько я знаю, вам придется переосмыслить, как эти два терминала соединяются. Я полагаю, что TMUX может сидеть посредине в качестве приложения, обслуживающего два оконечных клиентских терминала. Что-то должно мультиплексировать последовательные соединения, это невозможно обойти.
Вот некоторые полезные команды SOCAT
Я верю, что TMUX будет вашим лучшим выбором, вот руководство по началу работы с tmux
Я перечислил экран GNU, потому что казалось, что он может быть полезен в этом сценарии.
Я также нашел несколько похожий вопрос к вашему на serverfault.
https://serverfault.com/questions/797397/connect-two-ttys-via-tcp-ip