LINUX.ORG.RU

Подбор роутера для подключение нескольких устройств

 , , , ,


0

1

Какими функциями должен обладать роутер, чтобы через него можно было подключить два устройства к компьютеру следующим образом: 1-ый тип устройства прослушивает определенный порт и адрес, а 2-ой тип наоборот стучится по другому порту и адресу.

Мне удавалось подключить устройства по одному через сетевой кабель, для этого мне приходилось для каждого задавать вручную ip адрес в настройках адаптера.

К 1-ому и 2-ому типу устройства я мог подключиться из под windows 10. Из под виртуальной машины с ubuntu мне удалось подключиться только к 1-ому типу. Я пробовал в настройках VirtualBox подключать различные типы адаптеров, но это не помогло.

Также мне удалось подключиться из под виртуалки к 1-ому типу через мой домашний роутер (xiomi mi router3), для этого я поменял статический ip адрес роутера. Как я понял я не смогу подключить 2-ое устройство, так как не смогу прописать 2-ой статический ip адрес.

Нашел вот такой роутер: UPVEL UR-305B Но я не знаю подойдет ли он для моих задач.

Бери zyxel, с твоим уровнем знания матчасти или изложения этого знания, не стоит спрашивать почему, просто бери любой keenetic кроме starter, когда разберёшься и потыкаешь таки свои upvel'ы и прочие туполинки, скажешь спасибо. Хотя, мэй би xiaomi тоже торт, их я пока не пробовал. А лучше, купи Таненбаума про компуКтерные сети.

onhydro ()

Какими функциями должен обладать роутер, чтобы через него можно было подключить два устройства к компьютеру следующим образом: 1-ый тип устройства прослушивает определенный порт и адрес, а 2-ой тип наоборот стучится по другому порту и адресу.

Своими иносказательными обобщениями ты как-то сильно всё переусложнил до невменяемости. Просто напиши какая программа или сервис должна работать и где.

justAmoment ★★★★★ ()

Честно говоря, я мало что понял в Вашем сообщении. Вообще говоря, Вашему описанию (одно устройство слушает порт, другое в него стучится) соответствуют любые сервер и клиент. И, соответственно, нет никакой разницы в модели роутера - лишь бы он нормально пропускал трафик от клиента к серверу и обратно.

для этого я поменял статический ip адрес роутера.

Но зачем??? Попробуйте настроить на роутере dhcpd - тогда все воткнутые в него устройства получат корректные IP-адреса и гарантированно смогут между собой общаться...

Serge10 ★★★★★ ()
Ответ на: комментарий от justAmoment

В проекте используется Boost.Asio для соединения по tcp/ip. Необходимо подключить два устройства одновременно. В одном потоке мы подключаемся к 1-ому типу устройства, а во втором ждем подключения 2-ого типа устройства. Адреса у них разные.

ilya2017 ()
Ответ на: комментарий от Serge10

По дефолту статический адрес у роутера 192.168.31.1, соответсвенно используя dhcp я могу указать интервал, например, 192.168.31.5 - 192.168.31.254. Как я понимаю устройству будет присвоен ip из этого интервала. А как я тогда смогу узнать этот ip? Мне тогда каждый раз придется его менять в конфиге программы. В инструкции к устройству написан определенный ip port (192.168.16.1), к которому необходимо подключаться.

ilya2017 ()
Ответ на: комментарий от ilya2017

Эту проблему решает dns. Только у тебя другой адрес из другой подсети.

boowai ★★★★ ()
Ответ на: комментарий от ilya2017

по шагам

В проекте используется Boost.Asio для соединения по tcp/ip

Это понятно

Необходимо подключить два устройства одновременно.

Это НЕ понятно

В одном потоке мы подключаемся к 1-ому типу устройства, а во втором ждем подключения 2-ого типа устройства.

Это НЕ понятно

Адреса у них разные.

Это НЕ понятно

Собственно, сразу возникает вопрос. Проект — это уже кем то написанная и успешно работающая программа? Или ты именно сейчас придумываешь как оно должно работать и пишешь её при помощи Boost.Asio?

Второй вопрос. Где запускается эта программа? На ноутбуке разработчика(например, ты и есть разработчик), на сервере компании, на vps в интернете или ещё где за восемью роутерами и тринадцатью файерволами.

Третий вопрос. С кем соединяется эта программа? С другими такими же программами в локальной сети, с другими такими же программами в интернете, с центральным сервером в интернете, пользователи из интернета должны заходить на вёбморду программы, расположенной на ноутбуке разработчика, подключённого к wifi через тот самый роутер по рабочим дням с 8:30 до 17:30 с перерывом на обед? Или ещё что-то?

justAmoment ★★★★★ ()
Ответ на: комментарий от ilya2017

По дефолту статический адрес у роутера 192.168.31.1

Никто не мешает Вам заменить его на любой другой.

Как я понимаю устройству будет присвоен ip из этого интервала.

Вы можете настроить выдачу IP по MAC-адресу, например. В этом случае одно и то же устройство всегда будет получать один и тот же IP.

Serge10 ★★★★★ ()
Последнее исправление: Serge10 (всего исправлений: 1)
Ответ на: по шагам от justAmoment

Необходимо подключить два устройства одновременно.
Это НЕ понятно

А что именно тут не понятно? Я не знаю как еще можно описать.

В одном потоке мы подключаемся к 1-ому типу устройства, а во >втором ждем подключения 2-ого типа устройства.
Это НЕ понятно

Программа многопоточная. По одному потоку на каждое устройство.

Собственно, сразу возникает вопрос. Проект — это уже кем то >написанная и успешно работающая программа? Или ты именно сейчас >придумываешь как оно должно работать и пишешь её при помощи >Boost.Asio?

Сейчас пишем.

Адреса у них разные.
Это НЕ понятно

Одно устройство слушает 192.168.16.2:6172, другое подключается к 192.168.10.222:4000. Соответсвенно программма подключается по 192.168.16.2:6172 к 1-ому устройству и ждет подключения по 192.168.10.222:4000 2-ого устройства. После чего они шлют данные.

Второй вопрос. Где запускается эта программа? На ноутбуке >разработчика(например, ты и есть разработчик), на сервере >компании, на vps в интернете или ещё где за восемью роутерами и >тринадцатью файерволами.

Запускается на ноутбуке. Так как к нему 2 устройства не подключишь, то решено было подключать через роутер.

Третий вопрос. С кем соединяется эта программа? С другими такими >же программами в локальной сети, с другими такими же программами >в интернете, с центральным сервером в интернете, пользователи из >интернета должны заходить на вёбморду программы, расположенной >на ноутбуке разработчика, подключённого к wifi через тот самый >роутер по рабочим дням с 8:30 до 17:30 с перерывом на обед? Или >ещё что-то? Программа соединяется с устройствами(ПЛИС) через tcp/ip.

Все еще никак не могу подключиться к прослушиваемому сокету через виртуальную машину. Известно то, что устройство подключается через адрес 192.168.10.222:4000. Подключаю через кабель напрямую. Сетевому интерфейсу задал стаический адрес 192.168.10.76 шлюз 192.168.1.1 маска 255.255.255.0. В VirtualBox включил сетевой адаптер NAT. Теперь из под виртуалки адрес пингуется. Дальше запускаю программу, начинаю слушать порт 4000 и нечго не происходит. Вывод ifconfig

 
enp0s3    Link encap:Ethernet  HWaddr 08:00:27:4b:5a:70  
          inet addr:10.0.2.15  Bcast:10.0.2.255  Mask:255.255.255.0
          inet6 addr: fe80::8463:df1f:6ff5:49f8/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:11078 errors:0 dropped:0 overruns:0 frame:0
          TX packets:5870 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:8252418 (8.2 MB)  TX bytes:1009690 (1.0 MB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:50893 errors:0 dropped:0 overruns:0 frame:0
          TX packets:50893 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:2573299 (2.5 MB)  TX bytes:2573299 (2.5 MB)
Пробовал поменять адрес у enp0s3 интерфейса на 192.168.10.76 не помогло. При этом пинг писал Destination Host Unreachable Уже даже не знаю что делать.

ilya2017 ()
Ответ на: комментарий от ilya2017

Вот так стало немного понятнее.

Уточню, все дополнительные устройства, с которыми должна общаться программа подключаются к одному и тому же роутеру? Если это так, то тебе достаточно разобраться с выдачей адресов.

Конкретнее: то что это написал

192.168.10.76 шлюз 192.168.1.1 маска 255.255.255.0

это даже в теории не должно работать правильно.

Например, если ты все адреса хочешь расставить руками, то делаешь так

            IP            Mask            Default gateway
Router(LAN) 192.168.1.1   255.255.255.0   -
Dev1        192.168.1.11  255.255.255.0   192.168.1.1
Dev2        192.168.1.12  255.255.255.0   192.168.1.1
Comp        192.168.1.75  255.255.255.0   192.168.1.1
Vbox        192.168.1.76  255.255.255.0   192.168.1.1
В vbox НЕ_ИСПОЛЬЗУЙ_NAT, тебе нужен режим «сетевой мост».

P.S. в свете озвученных новых обстоятельств, тебе подойдёт абсолютно любой роутер.

justAmoment ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.