получить доступ к бакнет-серверу в другой сети. клиент сервера работает в другой сети

У меня есть бэкнет-сервер и клиент, работающие в другой сети, например IP-адрес клиента 192.168.1.33 и IP-адрес сервера 10.10.10.45. оба имеют одинаковый адрес маски подсети.

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

как я могу соединить эти два в приведенном выше сценарии?


person Waqas Gulzar    schedule 19.12.2018    source источник
comment
Невозможно, чтобы два устройства имели одинаковый mac-адрес. Mac-адрес содержит производителя, модель, серийный номер. Это означало бы, что производитель присвоил изделиям один и тот же серийный номер. Сначала начните с использования cmd.exe и ›Ping IP, чтобы убедиться, что у вас есть маршрут между клиентом и сервером.   -  person jdweng    schedule 19.12.2018
comment
IP-адрес, начинающийся с 10, означает, что это внутренняя частная сеть. IP, начинающийся с 192, — это IP-адрес в Интернете. Вам понадобится какой-то мост для подключения внутреннего IP-адреса к Интернету. Обычно ваш шлюз будет предотвращать эти соединения, если вы не используете какую-либо переадресацию портов.   -  person jdweng    schedule 19.12.2018
comment
Если две сети подключены друг к другу через такое устройство, как маршрутизатор, вам может потребоваться настроить маршрутизатор так, чтобы он принимал две разные сети для отправки и получения трафика друг к другу. Если между двумя сетями установлено соединение, вам может потребоваться настроить брандмауэры как на сервере, так и на клиенте, чтобы принимать и отправлять трафик на и с соответствующего устройства / IP-адреса.   -  person Conrad    schedule 19.12.2018
comment
@jdweng это была опечатка, маска подсети.   -  person Waqas Gulzar    schedule 20.12.2018
comment
@jdweng это неправда 192.168.1.33 это частная сеть класса c!   -  person Darem    schedule 20.12.2018


Ответы (2)


Несколько вещей здесь.

  • По поводу MAC-адреса. Ответ 1 выше относится к 6-байтовому MAC-адресу Ethernet, который содержит OUI производителя, выделенный IEEE. Тем не менее, BACnet (из-за его концепции других каналов передачи данных, до TCP/IP) ссылается на адрес канала передачи данных в общем как на MAC-адрес (например, 1 байт для BACnet MS/TP), а для UDP используется 6-байтовая комбинация IP-адреса и Номер IP-порта в качестве адреса для канала передачи данных.... и называет его MAC-адресом. Сбивает с толку. Но вот оно. Итак, да, пропингуйте свое устройство (по его IP-адресу) через подсети, чтобы убедиться, что они доступны. (Кстати, не исключено, чтобы устройства имели одинаковые MAC-адреса Ethernet, если производитель (или пользователь) запрограммировал их таким образом. Однако, поскольку известно, что IP-устройства имеют разные IP-адреса , в этом примере невозможно иметь одинаковые MAC-адреса BACnet.Еще одна вещь, BACnet по умолчанию использует IP-порт 47808 для этих адресов, возможно, OP имел в виду одинаковые номера портов?
  • Ответ 2 выше о том, что IP-адрес, начинающийся с 192, находится в Интернете, неверен. например 192.168.1.x также является внутренней подсетью.
  • Теперь о BACnet. Если вы можете пропинговать два устройства, то у вас явно есть правильно настроенный IP-маршрутизатор между двумя подсетями. Вы частично там. Если вы не можете пинговать их, сделайте это так. (Некоторые устройства меньшего размера могут не пинговаться, поэтому поместите ноутбуки или что-то еще в подсети, чтобы убедиться, что IP-сети подключены. При необходимости задействуйте свой ИТ-отдел, этот шаг не имеет ничего общего с BACnet. Без него вы не сможете подключиться.
  • Затем BACnet использует широковещательные передачи для «обнаружения» других устройств, и это, безусловно, наиболее распространенный подход. Широковещательные рассылки не проходят через IP-маршрутизаторы. BACnet использует концепцию BBMD (устройства управления широковещательной передачей BACnet) в каждой подсети для «туннелирования» широковещательной рассылки BACnet между подсетями. Установите BBMD в каждой подсети, настройте для каждого одноранговый адрес и попробуйте обнаружить. Многие устройства BACnet поддерживают эту функцию BBMD внутри, и если это так, возможно, ее необходимо включить, но имейте в виду, что теперь у вас есть «виртуальное внутреннее устройство BBMD», связанное с вашим обычным устройством BACnet, и это может привести к путанице.
  • В качестве альтернативы, если ваш клиент BACnet поддерживает «Регистрацию внешнего устройства», а в другой подсети уже есть поддержка BBMD или BBMD, клиент может зарегистрироваться с помощью этого BBMD в качестве внешнего устройства.
  • Наконец, если вы уже можете пропинговать другое устройство и, поскольку вы уже знаете IP-адрес, обнаружение и, следовательно, широковещательные рассылки не нужны, и если ваши устройства поддерживают «статическую адресацию», просто введите статический IP-адрес: порт для каждого устройства. Но будьте осторожны, обнаружение останется невозможным, а некоторые функции (трансляция Who-Has) не будут работать. Это НЕ рекомендуемый подход, но он используется довольно часто.
person Edward    schedule 19.12.2018

Вам может потребоваться индивидуальная привязка к обоим IP-адресам — если разные сетевые карты (сетевые интерфейсные карты) используются для связи с разными «серверными» устройствами BACnet, в противном случае стандартная (/не поддерживающая BACnet) настройка IP-маршрутизации может позволить вам — как «клиент» BACnet, чтобы общаться с двумя серверами - каждый в своей собственной / другой сети.

Но постарайтесь соблюдать «межсетевую сеть» BACnet, установив и управляя «сетевым номером» BACnet для каждой сети (на случай, если сети когда-либо будут соединены).

person DennisVM-D2i    schedule 06.02.2019