Using BACnet over the Internet
Due to the fact that BACnet appeared on the scene before the Internet revolution was underway in earnest, there are various factors that make it difficult to implement BACnet networks over the Internet seamlessly. Some of these issues are actually not specific to BACnet, but occur whenever one attempts to connect generic devices over the internet. Since these issues also affect users of BACnet, they will be included and addressed here.
- 1 BACnet's use of broadcasts limit discovery to particular subnets that are configured using BBMDs
- 2 The burden of having to explicitly configure BBMD devices
- 3 BACnet discourages the use of DHCP
- 4 Prevalent use of NAT Routers at most sites create a burden with respect to Port Forwarding and Port Address Translation
- 5 No mechanism to discover the IP address of a peer BACnet network
- 6 The inability to compensate for changes to a Dynamic Global IP address
- 7 BACnet's sensitivity to inadvertent message loops in BACnet Router Configurations
- 8 BACnet requires to have a unique Network Number across all connected BACnet Networks and has no mechanism to deal with conflicts
- 9 BACnet requires devices to have unique Device IDs, and has not mechanism to deal with conflicts
BACnet's use of broadcasts limit discovery to particular subnets that are configured using BBMDs
It is wonderful to fire up a workstation, and broadcast a "Who-Is" message and discover all the accessible BACnet devices. There are a few issues surrounding this approach however, the first being the fact that if the site is large, with tens of thousands of BACnet nodes (they do exist), the workstation has to immediately process tens of thousands of "I-Am" responses. Of course, most BACnet developers know to broadcast their Who-Is message within a specific range in order to limit the number of responses. The second problem, is that broadcasts don't make it past any sort of IP Router (or else the whole internet would be a soup of broadcast messages by now). This necessitated the creation of the BBMD which redistributes the broadcast messages to the right remote networks. The downside with BBMDs is that they have to be managed.
The burden of having to explicitly configure BBMD devices
BACnet discourages the use of DHCP
Using DHCP means that the IP addresses of the BACnet devices on the network will (in general)
- Be unknown before starting the device on the network for the first time
- May change if the device restarts
This leads to two main problems
- It may be more difficult to troubleshoot networks if the IP addresses are not known
- Some BACnet devices will cache the IP address for a given device, and then use this IP address for further communications. Unless the device is smart enough to notice that the IP address has changed, and then rediscover the new IP address of it's peer, communications will be disrupted
For these reasons, BACnet vendors and installers, in general, try and keep static IP addresses, and not use DHCP. This is in conflict with many IT manager's policies.
In addition, if BBMDs or port forwarding is required to be used on a site, it is difficult to avoid having to set static IP addresses, unless a specific solution such as the BACnet CloudRouter is used.
Prevalent use of NAT Routers at most sites create a burden with respect to Port Forwarding and Port Address Translation
NAT (Network Address Translation) was invented to deal with the fact that there were not enough IPv4 addresses for all the computers in the world. IPv6 deals with this issue. If a site has have more than one computer and is connected to the Internet, it almost certainly has a NAT Router interfacing the site to the Internet. NAT works by hiding all the computers on an internal network behind a single external IP address. This has a range of issues for devices on this hidden network. BACnet too will have the same problems, but also has a few details that makes a bad situation worse. This issue is discussed more fully at the BACnet and Network Address Translation (NAT) page.
No mechanism to discover the IP address of a peer BACnet network
The inability to compensate for changes to a Dynamic Global IP address
BACnet's sensitivity to inadvertent message loops in BACnet Router Configurations
BACnet requires to have a unique Network Number across all connected BACnet Networks and has no mechanism to deal with conflicts
BACnet requires devices to have unique Device IDs, and has not mechanism to deal with conflicts