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:

  • as_number
  • as_number_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
    • zoneid: The zone UUID
  • deleteASNRange: Deletes an AS Range from a zone
    • id: the AS Range UUID

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
  • No labels