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:
- Routing loops. Two routers claim ownership of the same DNET. Messages bounce between them or reach the wrong segment. Devices appear and disappear from the head-end without explanation.
- Reject-Message-To-Network errors. When a router detects a conflict, it may issue a Reject-Message-To-Network with reason code 1 (router busy) or other rejection reasons, effectively blackholing traffic destined for the contested network.
- Device unreachability. Field controllers behind the conflicting router stop responding to ReadProperty, WHO-IS, and COV subscriptions. The supervisor logs communication failures, schedules stop propagating, and alarms go undelivered.
- Cascade failures. A single duplicate number can corrupt routing tables across multiple routers, causing devices on unrelated segments to become intermittently unreachable.
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 useThis 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 indexReserve 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:
- 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.
- 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.
- 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.
- 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.
- 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
- Connecting a factory-default router to a live network. Most routers ship with default network numbers (commonly 1 and 2001). If those numbers are already in use on the internetwork, the new router immediately creates a routing conflict. The BASrouter status page may show "Network number conflict detected" but many platforms provide no warning at all. Always configure network numbers on an isolated connection before placing a router into production.
- Reusing network numbers across buildings. When buildings are commissioned independently, integrators often use the same numbering scheme in every building (network 1 for IP, 2001–2010 for MS/TP trunks). This works fine in isolation, but the moment the buildings are interconnected via BBMDs or a campus IP backbone, every duplicated number causes a conflict. Adopt a campus-wide numbering plan from day one, even if interconnection is not planned immediately.
- Mismatched IP-side network numbers on the same subnet. If Router A assigns network number 1 to the IP backbone and Router B assigns network number 5 to the same physical IP subnet, the internetwork now has two network numbers for one segment. Some devices will be reachable via DNET 1 and others via DNET 5, and routers will generate conflicting I-Am-Router-To-Network advertisements. Every router on a shared IP subnet must use the same network number for that subnet.
- Leaving network numbers at zero on a routed port. Network number 0 indicates a local, unrouted segment. If a router port is set to 0, the router will not advertise that segment to the internetwork, and remote devices will not be able to reach anything behind it. This commonly occurs when a technician enables routing but forgets to assign a non-zero network number to one of the ports. The router appears online, but the MS/TP trunk behind it remains invisible to the rest of the system.
- Failing to update the master spreadsheet. Network number conflicts rarely happen on day one. They happen six months later when a different contractor adds a router using a number that was already assigned but not documented. The master spreadsheet is the only reliable defense against this. Every router addition, removal, or renumbering must be recorded immediately.
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 / Device | Default IP Network | Default MS/TP Network | Configuration Notes |
|---|---|---|---|
| Contemporary Controls BASRT-B | 1 | 2001 | Web interface. Change defaults before connecting to a live network. Status page shows routing table and conflict warnings. |
| Tridium JACE 8000 / Supervisor | Configured per port | Configured per port | Workbench > BacnetNetwork > port properties. Niagara detects routing loops and logs diagnostics automatically. |
| Johnson Controls NAE / NCE | Configured in SCT | Configured in SCT | System Configuration Tool or Metasys UI. Network numbers set per BACnet port on the engine. |
| Schneider Electric AS-P / AS-B | Configured per port | Configured per port | EcoStruxure Building Operation. Schneider recommends one unique IP network number per building. |
| Siemens PXC Modular / Desigo CC | Configured per port | Configured per port | Desigo CC engineering tool. Supports multiple MS/TP trunks with independent network numbers. |
| Honeywell Spyder / CIPer | Configured per port | Configured per port | Spyder Tool or Niagara-based interface for Honeywell WEBs controllers. |
| Reliable Controls MACH-ProWebCom | Configured per port | Configured per port | RC-Studio configuration. Supports two independent MS/TP ports with separate network numbers. |
| Distech Controls ECLYPSE | Configured per port | Configured per port | ENVYSION or EC-Net interface. Network numbers set in the BACnet communication configuration. |
| Chipkin CAS BACnet Router | 1 (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:
- Contemporary Controls — BASrouters: BACnet Routing Examples (Application Guide)
- Contemporary Controls — BACnet Numbers for MS/TP MAC Addresses, Device Instances, and Networks
- Chipkin Automation Systems — BACnet Knowledge Base and FAQ
- Innon — What Is a BACnet Router Loop?
- Controls Course — Example BACnet Network Number and Instance Number Convention
- BACnet Committee — Building Wide-Area Networks with BACnet (Developer Aid)
- KMC Controls — Planning BACnet Networks (Application Note AN0404A)
- ASHRAE Standard 135 — BACnet: A Data Communication Protocol for Building Automation and Control Networks (Clause 6: Network Layer)
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.
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.