Nautobot app for modeling BGP Site of Origin (SoO) extended communities.
Project description
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file nautobot_app_bgp_soo-0.1.0.tar.gz.
File metadata
- Download URL: nautobot_app_bgp_soo-0.1.0.tar.gz
- Upload date:
- Size: 18.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
614446ade851ff2932d5cdb66025fa2d05f6adb66c3d6076541ac3bdc352563e
|
|
| MD5 |
8696eac06441bfa8dd652efe2d155168
|
|
| BLAKE2b-256 |
ee55264cb06d3453c411d9cb95873f8c021ea8a97ef24a58a6915c1f0d061d85
|
File details
Details for the file nautobot_app_bgp_soo-0.1.0-py3-none-any.whl.
File metadata
- Download URL: nautobot_app_bgp_soo-0.1.0-py3-none-any.whl
- Upload date:
- Size: 25.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9add8cf54fc8f90da6d85f44e8e30cfbdfcda80bb5ec9398cb9309a6d88464d8
|
|
| MD5 |
fa0903443c739bd830294d81c22324ad
|
|
| BLAKE2b-256 |
949bbb87bb18d7d66b51b8b50fc7102aa6514a9078383b46235194a948211f51
|