Я нахожусь в стадии исследования небольшого проекта, связанного с приоритетной переадресацией портов.

У меня есть набор клиентов, пытающихся получить доступ к терминальному серверу с некоторыми радиоустройствами.

Проблема заключается в том, что если два клиента подключаются к одному и тому же целевому порту на терминальном сервере, я вижу данные мусора на неверном клиенте.

Скажем, клиент A запрашивает что-то с целевого порта, но клиент B уже запрашивал что-то, устройство за терминальным сервером на этом порту отвечает данными, которые он поставил в очередь для отправки.

Обратите внимание, целевой порт одинаков для обоих клиентов.

Я бы хотел расставить приоритеты для одного из серверов, и поэтому я хочу внедрить приложение типа маршрутизатора на основе Linux между двумя клиентами и терминальным сервером. Каждый из клиентов будет подключаться к другому порту, но приоритетный клиент будет перенаправлен, если он начнет общаться. Другой будет заблокирован, остановлен, остановлен или что-то еще.

Возможно, я подскочил и разработал небольшое приложение на Python, которое прослушивает 2 разных порта и перенаправляет "приоритетное" на сервер терминалов. Блокирует переадресацию "неприоритетного" порта до тех пор, пока в приоритетном порте не произойдет определенное количество сообщений.

Я читал о iptables, некоторых NAT, Socat, немного QoS и т.д., Но я не могу найти что-то там для моей проблемы.

Я не специалист по сетевым технологиям и использую Linux уже около 2 лет, но я никогда не делал много с этими сценариями маршрутизации / пересылки TCP / IP, поэтому я хотел бы знать, есть ли что-то, что могло бы помочь я с приоритетом одного порта вперед по сравнению с другим, и это будет более эффективным, чем пользовательское приложение Python.

Спасибо за любые отзывы.

Вот небольшой img, для справки о том, что я пытаюсь сделать:

Приоритетная пересылка

1 ответ1

0

Я верю, что вы можете выполнить то, что вы пытаетесь сделать с помощью:

  1. Сокат
  2. Экран GNU
  3. TMUX

Насколько я знаю, вам придется переосмыслить, как эти два терминала соединяются. Я полагаю, что TMUX может сидеть посредине в качестве приложения, обслуживающего два оконечных клиентских терминала. Что-то должно мультиплексировать последовательные соединения, это невозможно обойти.

Вот некоторые полезные команды SOCAT

Я верю, что TMUX будет вашим лучшим выбором, вот руководство по началу работы с tmux

Я перечислил экран GNU, потому что казалось, что он может быть полезен в этом сценарии.

Я также нашел несколько похожий вопрос к вашему на serverfault.

https://serverfault.com/questions/797397/connect-two-ttys-via-tcp-ip

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .