0

我有 bacnet 服务器和客户端在不同的网络上运行,例如客户端 IP 192.168.1.33 和服务器 IP 10.10.10.45。两者都有相同的子网掩码地址。

由于 bacnet 使用 UDP,因此客户端服务器无法连接。正如我上面提到的,两者都在不同的网络上。

在上述情况下,我如何连接这两个?

4

2 回答 2

0

您可能需要单独绑定到两个 IP 地址 - 如果使用不同的 NIC(网络接口卡)与不同的 BACnet“服务器”设备进行通信,否则标准(/非 BACnet 感知)IP 路由设置可以允许您 -作为 BACnet 的“客户端”,与 2 台服务器对话——每台服务器都在自己/不同的网络上。

但是尝试通过设置和管理每个网络的 BACnet“网络号”来尊重 BACnet“网络”(以防万一网络应该连接)。

于 2019-02-06T14:36:51.987 回答
0

这里有几件事。

  • 关于MAC地址。上面的答案 1 暗指包含 IEEE 分配的制造商 OUI 的 6 字节以太网 MAC 地址。但是,BACnet(由于它在 TCP/IP 之前对其他数据链路的概念)通常将数据链路地址称为 MAC 地址(例如 BACnet MS/TP 为 1 个字节),而对于 UDP,它使用 IP 地址和 IP 地址的 6 个字节组合IP 端口号作为数据链路的地址......并将其称为 MAC 地址。令人困惑。但是你现在有了。所以,是的,跨子网 ping 您的设备(在其 IP 地址)以确保它们是可访问的。(顺便说一句,这不是不可能的如果制造商(或用户)以这种方式对设备进行编程,则设备具有相同的以太网 MAC 地址。但是,由于已知 IP 设备具有不同的 IP 地址,因此在此示例中不可能具有相同的 BACnet MAC 地址。另一件事,BACnet 默认为这些地址的 IP 端口 47808,也许 OP 意味着相同的端口号?
  • 上面的答案 2 指出互联网上以 192 开头的 IP 地址是错误的。例如 192.168.1.x 也是一个内部子网。
  • 现在到 BACnet。如果您可以 ping 两个设备,那么您显然在两个子网之间有一个正确配置的 IP 路由器。你部分在那里。如果您无法 ping 它们,请这样做。(一些较小的设备可能无法ping通,因此请将笔记本电脑或其他设备放在子网上以确保IP网络连接。如有必要,请让您的IT部门参与,此步骤与BACnet无关。没有它,您将无法连接。
  • 接下来,BACnet 使用广播“发现”其他设备,这是迄今为止最常见的方法。根据设计,广播不会穿过 IP 路由器。BACnet 在每个子网上使用 BBMD(BACnet 广播管理设备)的概念来“隧道”跨子网的 BACnet 广播。在每个子网上安装一个 BBMD 并为每个子网配置对等地址并尝试发现。许多 BACnet 设备在内部支持此 BBMD 功能,如果支持,可能需要启用此功能,但请注意,现在您有一个与常规 BACnet 设备关联的“虚拟内部 BBMD 设备”,这可能会让人感到困惑。
  • 或者,如果您的 BACnet 客户端支持“外部设备注册”并且其他子网已经支持 BBMD 或 BBMD,则客户端可以将该 BBMD 注册为外部设备。
  • 最后,如果您已经可以 ping 另一台设备,并且由于您已经知道 IP 地址,发现,因此不需要广播,并且如果您的设备支持“静态寻址”,只需输入对等方静态 IP 地址:每个设备的端口。但是请注意,发现仍然是不可能的,并且某些功能(广播 Who-Has)将不起作用。这不是推荐的方法,但经常使用。
于 2018-12-19T17:12:07.963 回答