OpenThread Border Router

A Thread Border Router connects a Thread network to other IP-based networks, such as Wi-Fi or Ethernet. A Thread network requires a Border Router to connect to other networks.

OTBR Border Agent Architecture

A Thread Border Router minimally supports the following functions:

  • End-to-end IP connectivity via routing between Thread devices and other external IP networks
  • External Thread Commissioning (for example, a mobile phone) to authenticate and join a Thread device to a Thread network
Thread Certified

OpenThread's implementation of a Border Router is called OpenThread Border Router (OTBR). OTBR is a Thread Certified Component on the Raspberry Pi 3B with a Nordic nRF52840 NCP.

Get started

Docker

The quickest way to get started with OTBR is to try the Docker version. Run OTBR in a Docker container on any Linux-based system or a Raspberry Pi 3B, using either a physical or emulated NCP.

See the Docker Support Overview for more information.

Platforms

OTBR also runs directly on a supported platform:

  1. Choose a platform:
  2. Build and configure OTBR
  3. Learn about tools and scripts included with OTBR

Get the code

To go straight to the source code, see the OpenThread Border Router GitHub repository.

You can contribute to the ongoing development of OpenThread by submitting bug reports and feature requests to the Issue Tracker.

Features and services

OTBR includes a number of features, including:

  • Web GUI for configuration and management
  • Thread Border Agent to support external commissioning
  • DHCPv6 Prefix Delegation to obtain IPv6 prefixes for a Thread network
  • NAT64 for connecting to IPv4 networks
  • DNS64 to allow Thread devices to initiate communications by name to an IPv4-only server
  • Thread interface driver using wpantund
  • Docker support

Border Agent

A Border Agent relays Mesh Commissioning Protocol (MeshCoP) messages between a Commissioner and a Thread network to support External Thread Commissioning in authenticating and joining Thread devices to a Thread network. For communication with an external Commissioner, the Border Agent uses standard UDP sockets.

In the NCP design, where Thread functions are offloaded to an NCP and OTBR runs on the host side, the Border Agent runs on the NCP:

OTBR Border Agent NCP Architecture

The Border Agent implemented in OTBR utilizes the following third-party components:

  • libcoap — An open-source C implementation of CoAP
  • mbed TLS — Supports DTLS communication with an external Commissioner

Border Router services

OTBR provides the following services:

  • mDNS Publisher — Allows an External Commissioner to discover an OTBR and its associated Thread network
  • PSKc Generator — For generation of PSKc keys
  • Web Service — Web UI for management of a Thread network
  • WPAN Controller — DBus operations for control of the WPAN interface

Third-party components for Border Router Services include Simple Web Server and Material Design Lite for the framework of the web UI.