Introduction
This document outlines the functional description of the AS Numbers support in CloudStack, as a building block for the Dynamic Routing Support in CloudStack (described in detail on: Dynamic Routing (IPv4 and IPv6))
Links:
Functional Description
The following use cases are introduced:
- Administrators can define AS Number ranges at the zone level
- Administrators can create network offerings choosing between Static and Dynamic Routing Mode.
- When Dynamic Routing Mode is selected: the Specify AS Number option can be enabled (false by default)
- Administrators can create VPC offerings choosing between Static and Dynamic Routing Mode.
- When Dynamic Routing Mode is selected: the Specify AS Number option can be enabled (false by default)
- Please note: Specify AS Number option is only available for NSX network and NSX VPC.
- Networks (non VPC tiers) created from offerings supporting Dynamic Routing Mode will acquire an AS Number:
- When Specify AS Number is set to false on the network offering: CloudStack assigns a free random AS Number from the AS Number range to the network.
- When Specify AS Number is set to true on the network offering: operators can select a free AS Number from the AS Number range.
- VPCs created from VPC offerings supporting Dynamic Routing Mode will acquire an AS Number:
- When Specify AS Number is set to false on the VPC offering: CloudStack assigns a free random AS Number from the AS Number range to the VPC.
- When Specify AS Number is set to true on the VPC offering: operators can select a free AS Number from the AS Number range to the VPC.
- Every network tier on the VPC will inherit the AS Number from the VPC
- Administrators can list AS Numbers by: zone, network, VPC, account, domain and allocation state
- Administrators can release an AS Number from a network or a VPC
- If the VPC or Network Offering has Specify AS Number set to true, then the AS Number cannot be released (releasing is performed on the VPC/network deletion)
- When removing a network or a VPC that has acquired an AS Number, CloudStack releases the AS Number before removing the network or VPC
High Level Design
Database Changes:
There are 2 new tables to handle the AS Number Ranges and AS Numbers from a Range:
API Changes
The following APIs were added:
For AS Number Ranges:
- createASNRange: Creates a range of Autonomous Systems for BGP Dynamic Routing
- zoneid: The zone UUID
- startasn: The start AS Number
- endasn: The end AS Number
- listASNRanges: List AS Ranges for a zone
- deleteASNRange: Deletes an AS Range from a zone
For AS Numbers:
- listASNumbers: List AS Numbers
- zoneid: The zone UUID
- asnrangeid: The AS Number Range UUID
- asnumber: The AS Number
- isallocated: To indicate if the AS number is allocated to any network
- networkid: The network UUID
- vpcid: The VPC UUID
- account: The account name
- domainid: The domain UUID