Skip Navigation

Azure Route Server in BGP peering with Quagga

Last updated: 11/17/2021

This template deploys a Router Server and Ubuntu VM with Quagga. Two external BGP sessions are established between the Router Server and Quagga. Installation and configuration of Quagga is executed by Azure custom script extension for linux

This Azure Resource Manager template was created by a member of the community and not by Microsoft. Each Resource Manager template is licensed to you under a license agreement by its owner, not Microsoft. Microsoft is not responsible for Resource Manager templates provided and licensed by community members and does not screen for security, compatibility, or performance. Community Resource Manager templates are not supported under any Microsoft support program or service, and are made available AS IS without warranty of any kind.


Parameter Name Description
location azure region where is deployed the vnet1
adminUsername VM Admin username
adminPassword VM Admin password
vnetName Virtual Network name
addressSpace1Prefix Virtual Network address space
subnet1Name subnet for hosting the Route Server. RouteServerSubnet is fixed name and it can't be changed.
subnet1Prefix address prefix assigned to the subnet1
subnet2Name name of the subnet2
subnet2Prefix address prefix assigned to the subnet2
subnet3Name name of the subnet3
subnet3Prefix address prefix assigned to the subnet3
subnet4Name name of the subnet4
subnet4Prefix address prefix assigned to the subnet4
gatewaysubnetPrefix address prefix assigned to the GatewaySubnet
routeServerName Route Server name
peering1IP private IP address of the VM running Quagga. it is the BGP remote peer of Route Server. The value is referenced in the script
peering1ASN ASN assigned to Quagga. The value is referenced in the script
rsBGPconnectionName Route Server BGP connection name to establish the peer with Quagga
vHubIPconfigName Route Server configuration name
vmName Virtual Machine name
vmPrivIP private IP of the VM. This IP has to match with the IP specified in the bash script
vmSize VM Size
nsgName name of the network security group applied to the subnets
_artifactsLocation The base URI where artifacts required by this template are located. For example, if stored on a public GitHub repo, you'd use the following URI:
_artifactsLocationSasToken The sasToken required to access _artifactsLocation. If your artifacts are stored on a public repo or public storage account you can leave this blank.

Use the template


New-AzResourceGroup -Name <resource-group-name> -Location <resource-group-location> #use this command when you need to create a new resource group for your deployment
New-AzResourceGroupDeployment -ResourceGroupName <resource-group-name> -TemplateUri
Install and configure Azure PowerShell

Command line

az group create --name <resource-group-name> --location <resource-group-location> #use this command when you need to create a new resource group for your deployment
az group deployment create --resource-group <my-resource-group> --template-uri
Install and Configure the Azure Cross-Platform Command-Line Interface