Understanding the LoRaWAN Join Server
The join server is used when an end device is joined to a network via Over-the-Air Activation (OTAA) or when a device requests new security session keys via the Rejoin MAC command. During the join procedure, an end device sends three values in the join request message:
DevEUI--a 64-bit globally-unique device identifier in the IEEE EUI64 address space
JoinEUI--a 64-bit globally-unique application identifier in the IEEE EUI64 address space that uniquely identifies the join server to be used in the join procedure to derive the session keys. (Prior to LoRaWAN 1.0.4, the JoinEUI was referred to as the AppEUI.)
DevNonce--a two-byte counter that starts at zero (0) when the device is initially powered-on, and that increments with every join request. The DevNonce value is unique and is used to prevent replay attacks. (Prior to LoRaWAN 1.0.4, the DevNonce was referred to as the AppNonce.)
The network server uses the join server’s IP address (based on the JoinEUI received in the join request) and sends an IP message to the join server.
The join server processes the received join request IP message and sends a join answer IP message to the network server.
The network server uses the information in the join answer IP message to create the LoRaWAN join accept message that is then sent to the end device.
Note
The IP messages between the network server and the join server are defined as back-end messages. See TS002 LoRaWAN Backend Interfaces Specification for details.