BACnet Network Number Planning Guide

BACnetnetwork numberroutingBACnet routerplanning
April 23, 2026|8 min read

Every BACnet network segment—whether BACnet/IP, MS/TP, or Ethernet—must carry a globally unique network number (1–65534) assigned at the routers that connect it to the internetwork. Before adding any router, document every existing network number on a single master spreadsheet, assign new numbers from a structured scheme that encodes building and floor, and confirm that no two segments share the same DNET value. Conflicting network numbers corrupt router tables, trigger Reject-Message-To-Network errors, and create routing loops that make entire segments unreachable.

What Are BACnet Network Numbers

A BACnet network number is a 16-bit unsigned integer (valid range 1–65534) that uniquely identifies a single data link segment within a BACnet internetwork. The value 0 indicates a local-only or unrouted segment, and 65535 is reserved as the broadcast network address used by global WHO-IS and other broadcast services. Network numbers are not configured on individual field devices—they are assigned exclusively at BACnet routers, which advertise their connected segments to the rest of the internetwork using I-Am-Router-To-Network messages.

When a supervisory controller on BACnet/IP network 1 needs to read a point from a VAV controller on MS/TP network 2001, the BACnet network layer uses the destination network number (DNET) in the NPDU header to route the request through the correct router. The router inspects DNET 2001, recognizes it as its own MS/TP port, and forwards the request onto the RS-485 trunk. The response follows the reverse path using the source network number (SNET). Without correct, unique network numbers, this addressing system breaks down entirely.

A single BACnet/IP subnet with no routers can operate without any network number—devices communicate directly via broadcast and unicast on UDP 47808. The moment you add a router to bridge that subnet to an MS/TP trunk or a second IP subnet, both sides of the router must receive distinct, non-zero network numbers. This is the point where planning becomes critical.

Why Network Numbers Matter

Network numbers are the foundation of BACnet routing. Every router in the internetwork maintains a routing table that maps network numbers to ports (IP, MS/TP, Ethernet). When a router receives an I-Am-Router-To-Network message from another router, it records which peer provides the path to that network number. If two routers advertise the same network number from different locations, the routing table becomes ambiguous—the BACnet standard calls this condition a routing loop.

The consequences of conflicting network numbers are severe and often intermittent, which makes them difficult to diagnose:

Some platforms detect routing loops automatically. Tridium Niagara logs a routing loop diagnostic when a JACE receives I-Am-Router-To-Network messages from two different sources for the same DNET and may disable routing on the affected port. Contemporary Controls BASrouter firmware displays a warning on its status screen. However, many controllers and routers do not detect the conflict at all—they simply route incorrectly.

Planning a Network Number Scheme

A good numbering scheme ensures every segment has a unique, meaningful, and documented network number. The scheme should be intuitive enough that a technician can identify a segment's location from its number alone, and scalable enough to accommodate future expansion without renumbering.

Recommended Structure: Building-Floor-Trunk

The most widely used convention in commercial BAS encodes the building number, floor, and trunk index into the network number. A common format is:

# Network Number Scheme: BFFTT
# B   = Building number (1-6)
# FF  = Floor number (01-99)
# TT  = Trunk or segment index (01-99)
#
# Examples:
# ──────────────────────────────────────────────
# 10100  Building 1, Floor 01, Trunk 00 (IP backbone)
# 10101  Building 1, Floor 01, MS/TP Trunk 1
# 10102  Building 1, Floor 01, MS/TP Trunk 2
# 10201  Building 1, Floor 02, MS/TP Trunk 1
# 20101  Building 2, Floor 01, MS/TP Trunk 1
# 30301  Building 3, Floor 03, MS/TP Trunk 1
# ──────────────────────────────────────────────
# Range used: 10100 - 69999
# Remaining:  1 - 10099 reserved for IP backbones
#             65001 - 65534 reserved for future use

This scheme supports up to 6 buildings with 99 floors and 99 trunks per floor, which covers most commercial campuses. For smaller sites, a simpler three-digit or four-digit scheme works equally well:

# Simple scheme for a single building
# ──────────────────────────────────────────────
# Network 1       BACnet/IP backbone
# Network 101     Floor 1, MS/TP Trunk 1
# Network 102     Floor 1, MS/TP Trunk 2
# Network 201     Floor 2, MS/TP Trunk 1
# Network 301     Floor 3, MS/TP Trunk 1
# ──────────────────────────────────────────────
# Convention: first digit = floor, last two = trunk index

Reserve a Block for IP Networks

Assign a dedicated range for BACnet/IP network numbers, separate from MS/TP trunks. A common practice is to use low numbers (1–99 or 1–999) for IP segments and higher numbers for MS/TP. This makes it immediately obvious from the network number whether a segment is IP or MS/TP, which speeds up troubleshooting.

Document Everything in a Master Spreadsheet

Maintain a single spreadsheet listing every assigned network number, the associated building and floor, the router that owns it, and the router's IP address. This document is the authoritative source of truth—every technician and contractor must consult it before adding or modifying a router. A sample layout:

┌──────────┬────────────┬───────────┬────────────────┬───────────────┐
│ Network  │ Type       │ Location  │ Router         │ Router IP     │
├──────────┼────────────┼───────────┼────────────────┼───────────────┤
│ 1        │ BACnet/IP  │ Campus    │ (all routers)  │ various       │
│ 10101    │ MS/TP      │ B1-F01-T1 │ JACE-B1-01     │ 10.1.10.20    │
│ 10102    │ MS/TP      │ B1-F01-T2 │ JACE-B1-01     │ 10.1.10.20    │
│ 10201    │ MS/TP      │ B1-F02-T1 │ JACE-B1-02     │ 10.1.10.21    │
│ 20101    │ MS/TP      │ B2-F01-T1 │ NAE-B2-01      │ 10.2.10.20    │
│ 20102    │ MS/TP      │ B2-F01-T2 │ BASrouter-B2-1 │ 10.2.10.50    │
└──────────┴────────────┴───────────┴────────────────┴───────────────┘

Multi-Building Campuses

Campus environments introduce additional complexity because buildings are often commissioned by different contractors at different times, and each building may have been treated as a standalone BACnet internetwork during initial installation. When you later interconnect these buildings via a campus IP backbone and BBMDs, every network number across every building must be unique—even if the buildings previously operated in isolation.

The most common campus-level failure is two buildings that both used network 1 for their IP backbone and 2001–2010 for MS/TP trunks. When these buildings are bridged via BBMD or a campus router, the internetwork contains two segments claiming to be network 1 and two claiming to be network 2001. Every router on the campus sees conflicting I-Am-Router-To-Network messages and routing fails across the entire internetwork.

Adopt a campus-wide numbering scheme from the first building. If buildings already have overlapping numbers, one must be renumbered before interconnection. Renumbering means updating network numbers on every router in that building and rebooting so they advertise corrected values. Field devices do not store network numbers and do not need to be touched—only routers require changes.

# Campus interconnection: before and after renumbering
#
# BEFORE (conflicting):
#   Building A: IP = 1, MS/TP trunks = 2001, 2002, 2003
#   Building B: IP = 1, MS/TP trunks = 2001, 2002
#
# AFTER (resolved):
#   Building A: IP = 1, MS/TP trunks = 10101, 10201, 10301
#   Building B: IP = 2, MS/TP trunks = 20101, 20201
#
# Only the routers need to be reconfigured.
# Field devices (VAVs, AHUs, sensors) are unaffected.

For campuses connected over multiple IP subnets, understand the distinction between BBMDs and BACnet routers. BBMDs operate at the data link layer and forward broadcasts between subnets that share the same BACnet/IP network number—they do not change network numbers. BACnet routers operate at the network layer and require distinct numbers on each port. If two buildings share a single BACnet/IP network number and use BBMDs, the IP segments are treated as one logical network. If each building's router assigns a different number to its IP port, they are separate BACnet networks joined by routing, not broadcast forwarding.

Adding Routers Without Conflicts

The most dangerous moment in a BACnet internetwork's lifecycle is when a new router is added. A router with factory-default network numbers (commonly 1 for IP and 2001 for MS/TP) can instantly corrupt routing tables across the entire site if those numbers are already in use.

Follow this checklist every time you add a router:

  1. Consult the master network number spreadsheet. Identify the next available numbers for both the IP-side and MS/TP-side ports. If no spreadsheet exists, perform a network-wide WHO-IS and catalog every network number currently advertised by existing routers before proceeding.
  2. Configure the new router offline. Connect the router to an isolated network (a laptop direct-connected to the Ethernet port) and set the IP address, MS/TP parameters, and network numbers before placing it on the production network. Never connect a factory-default router to a live BACnet internetwork.
  3. Verify the IP-side network number matches all other routers on the same IP subnet. Every router connected to the same BACnet/IP subnet must agree on the network number for that subnet. If the existing routers use network 1 for the IP backbone, the new router must also use network 1 on its IP port. A mismatch here means two different network numbers are being advertised for the same physical segment—a guaranteed routing conflict.
  4. Assign a unique MS/TP network number. The MS/TP side must have a number that no other segment in the internetwork uses. This is the number that uniquely identifies the new trunk.
  5. Connect and verify. After placing the router on the production network, send a global WHO-IS from the supervisor. Confirm that (a) devices behind the new router appear with the correct network number, (b) devices on other segments remain reachable, and (c) no Reject-Message-To-Network errors appear in Wireshark or the router's status page.
# Pre-installation verification using Wireshark
# ──────────────────────────────────────────────
# 1. Capture on the BACnet/IP subnet (UDP port 47808)
# 2. Filter: bacnet.npdu.nlm == 0x01
#    (I-Am-Router-To-Network messages)
# 3. Review which network numbers are already advertised
# 4. Confirm your new router's numbers do NOT appear
#    in any existing I-Am-Router-To-Network message
# 5. Connect the router and watch for new advertisements
# 6. Filter: bacnet.npdu.nlm == 0x03
#    (Reject-Message-To-Network -- should be ZERO hits)

Common Network Number Mistakes

Platform Compatibility

Network numbers are defined in ASHRAE Standard 135 (Clause 6, Network Layer) and are implemented identically across compliant platforms. The number is a router-level property, not a field device property, so any BTL-listed router can assign network numbers to segments containing devices from any manufacturer.

Platform / DeviceDefault IP NetworkDefault MS/TP NetworkConfiguration Notes
Contemporary Controls BASRT-B12001Web interface. Change defaults before connecting to a live network. Status page shows routing table and conflict warnings.
Tridium JACE 8000 / SupervisorConfigured per portConfigured per portWorkbench > BacnetNetwork > port properties. Niagara detects routing loops and logs diagnostics automatically.
Johnson Controls NAE / NCEConfigured in SCTConfigured in SCTSystem Configuration Tool or Metasys UI. Network numbers set per BACnet port on the engine.
Schneider Electric AS-P / AS-BConfigured per portConfigured per portEcoStruxure Building Operation. Schneider recommends one unique IP network number per building.
Siemens PXC Modular / Desigo CCConfigured per portConfigured per portDesigo CC engineering tool. Supports multiple MS/TP trunks with independent network numbers.
Honeywell Spyder / CIPerConfigured per portConfigured per portSpyder Tool or Niagara-based interface for Honeywell WEBs controllers.
Reliable Controls MACH-ProWebComConfigured per portConfigured per portRC-Studio configuration. Supports two independent MS/TP ports with separate network numbers.
Distech Controls ECLYPSEConfigured per portConfigured per portENVYSION or EC-Net interface. Network numbers set in the BACnet communication configuration.
Chipkin CAS BACnet Router1 (default)5 (default)INI-file or CSV configuration. Software-based router for Windows and Linux. Verify defaults match your site plan.

Regardless of platform, the rules are the same: every segment gets a unique number, every router on a shared segment must agree on that number, and every assignment must be documented. The BACnet standard does not enforce uniqueness automatically—that responsibility falls entirely on the system integrator.

Source Attribution

The technical guidance in this entry is informed by the following sources:

network numberroutingBACnet routerplanningnetwork design

Was this article helpful?

Related Articles

Need to do this remotely? SiteConduit provides Layer 2 access that preserves BACnet broadcasts — no BBMD needed for remote sessions. Join the waitlist.

SC

SiteConduit Technical Team

Idea Networks Inc.

SiteConduit builds managed remote access for building automation. Our knowledge base is maintained by BAS professionals with hands-on experience deploying and troubleshooting BACnet, Niagara, Modbus, and Facility Explorer systems.