How to correctly configure the NetID?

Dear community,

We are supporting a customer for the first time, deploying a LoRaWAN network based on Chirpstack. They have acquired NetIDs from the LoRa Alliance and now we have to configure this to provide packet filtering on the gateway side.

The customer uses Tektelic gateways with the Chirpstack MQTT Forwarder installed.

My questions:

  1. Is it as simple as specifying the NetID in the Chirpstack configuration file and then setting the dev_addr_prefixes and join_eui_prefixes in the MQTT Forwarder or should I do something else as well?

  2. How is this NetID actually enforced? I mean what prevents me from simply using the NetID of someone else or just choosing an arbitrary one other than 0x00001?

Thanks in advance!

Reinier

The NetID becomes part of the Device Address that is issued by the LNS. Since DevAddr is part of the unencrypted part of the message, it becomes possible for gateway to do filtering by NetID.

It’s not supposed to be possible for DevAddr containing the non-public NetIDs to overlap, because only alliance members can be issued a NetID. But it’s certainly possible for DevAddr to conflict, regardless of whether you use 0x0000, 0x0001 or any other value - but messages can only be exchanged properly through knowledge of the session keys (e.g. NwkSKey & AppSKey). Unlike the 0x0000 and 0x0001 values, the other values just make it possible for the gateway to filter out unwanted messages.

However, since DevAddr is issued after the join procedure and is repeated during the exchange of messages, another technique is required for filtering Join Request messages. That would be by other unrelated methods, such as filtering by Join EUI/App EUI.

Hi sp193,

Thanks for explaining how the DevAddr are created, based on the NetID. However, these were not really my questions.

My questions are related specifically to how the NetID should be properly configured in Chirpstack.

@brocaar - could you maybe give some best-practices?

Thanks again!

I believe that’s really all there is. You just need to inform Chirpstack of the NetID and it shall use the NetID to generate the logical addresses (DevAddr) it issues. So the answer to (1) is, yes. Is there something that is not working for you?

Should you want filtering of uplink messages by NetID, you should configure the filtering appropriately (in Gateway Bridge etc, or perhaps inside the packet forwarder of the gateway).

Should you want filtering of Join Request, you need to configure Join EUI/AppEUI filtering in the Gateway Bridge etc, or perhaps inside the packet forwarder of the gateway.