Nautobot BGP Site of Origin (SoO)
A Nautobot app for modeling BGP Site of Origin (SoO) extended communities.
Overview
BGP Site of Origin (SoO) is an extended community attribute used in MPLS VPN environments to identify the site from which a route originated, preventing routing loops in multi-homed CE environments.
This app extends the Nautobot BGP Models app with two models:
Site of Origin
Stores individual SoO values as their component parts:
| SoO Type | Administrator | Assigned Number | Example |
|---|---|---|---|
| Type 0 | 2-byte ASN (0–65535) | 4-byte (0–4294967295) | SoO:65000:100 |
| Type 1 | IPv4 Address | 2-byte (0–65535) | SoO:10.0.0.1:42 |
| Type 2 | 4-byte ASN (0–4294967295) | 2-byte (0–65535) | SoO:4200000001:100 |
Each SoO can optionally be associated with:
- A Status (Active, Reserved, Deprecated, Planned)
- A Tenant
- One or more Locations
Site of Origin Range
Defines a pool of SoO assigned numbers for allocation, similar to ASN Ranges in the BGP Models app. Each range specifies:
- A Name for the range
- A fixed SoO Type and Administrator
- A Start and End assigned number defining the pool boundaries
- An optional Tenant
The range detail view displays all SoO objects that fall within the range. The get_next_available_soo() method returns the first unallocated assigned number in the range.
PeerEndpoint Relationship
On installation, the app automatically creates a Nautobot Relationship linking BGP Models PeerEndpoints to Sites of Origin. This allows associating an SoO with a specific BGP peering endpoint.
Requirements
- Nautobot >= 2.4.0
- nautobot-bgp-models >= 2.3.0
Installation
Install from PyPI:
pip install nautobot-app-bgp-soo
This will automatically install nautobot-app-bgp-models as a dependency.
Add both plugins to your nautobot_config.py:
PLUGINS = [
"nautobot_bgp_models",
"nautobot_bgp_soo",
]
Run database migrations:
nautobot-server migrate
Usage
Navigation
The app adds menu items under Routing > BGP - Global:
- Sites of Origin — list, create, import, bulk-edit individual SoO values
- Site of Origin Ranges — list, create, import, bulk-edit SoO ranges
Creating a Site of Origin
- Navigate to Routing > BGP - Global > Sites of Origin
- Click the + button
- Select the SoO Type (0, 1, or 2)
- Enter the Administrator (ASN for types 0/2, IPv4 address for type 1)
- Enter the Assigned Number
- Optionally set a Status, Tenant, Locations, and Description
Creating a Site of Origin Range
- Navigate to Routing > BGP - Global > Site of Origin Ranges
- Click the + button
- Enter a Name for the range
- Select the SoO Type and Administrator (all SoOs in the range share these)
- Set the Start and End assigned numbers
- Optionally set a Tenant and Description
The range detail page displays all existing SoO objects that fall within the range boundaries.
Associating SoO with a PeerEndpoint
The app creates a Nautobot Relationship between PeerEndpoint and SiteOfOrigin. To use it:
- Navigate to a BGP PeerEndpoint detail page
- Under the Relationships section, associate a Site of Origin
REST API
The following API endpoints are available:
| Endpoint | Description |
|---|---|
/api/plugins/bgp-soo/site-of-origin/ |
CRUD operations for Sites of Origin |
/api/plugins/bgp-soo/site-of-origin-ranges/ |
CRUD operations for Site of Origin Ranges |
Standard Nautobot REST API conventions apply (filtering, pagination, bulk operations).
GraphQL
Both models are available via the Nautobot GraphQL API as site_of_origins and site_of_origin_ranges.
License
This project is licensed under the Mozilla Public License 2.0.
Metadata
Release files for nautobot-app-bgp-soo 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| nautobot_app_bgp_soo-0.1.1.tar.gz | 19.2 kB | Without provenance | Details for nautobot_app_bgp_soo-0.1.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| nautobot_app_bgp_soo-0.1.1-py3-none-any.whl | Python 3 | none | any | Details for nautobot_app_bgp_soo-0.1.1-py3-none-any.whl |
Total release size: 46.6 kB
Release files / nautobot_app_bgp_soo-0.1.1.tar.gz
| Download URL | nautobot_app_bgp_soo-0.1.1.tar.gz |
|---|---|
| Size | 19.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
10c81adcb25c8a8b456b74e80beb2b3e39ddf99ac830613e3b52fa27a6860ec4
|
|
BLAKE2b-256 checksum How to use checksums |
a317f69fcd49549fac7e2e74fdb9a2b25ce0af6e1c56711bdf2ecbcf2cb5adb5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.2.0 CPython/3.12.12
|
Release files / nautobot_app_bgp_soo-0.1.1-py3-none-any.whl
| Download URL | nautobot_app_bgp_soo-0.1.1-py3-none-any.whl |
|---|---|
| Size | 27.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
316f143acbd7cf3eb0cf529b6d639e6fc2e99ec9b275375e65bbc1d55a3b01a2
|
|
BLAKE2b-256 checksum How to use checksums |
65b603728c9565df7652f0cbcab1345073bf2c669c4156f42f1af35493b0c553
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.2.0 CPython/3.12.12
|
Security for nautobot-app-bgp-soo 0.1.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.