mirror of
				https://github.com/vyos/vyos-documentation.git
				synced 2025-11-04 00:02:05 +01:00 
			
		
		
		
	* Added documentation pages for AWS/Azure HA deployment and modified pages AWS,Azure,GCP * Update docs/installation/cloud/azure-ha.rst Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
		
			
				
	
	
		
			153 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			153 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
		
			Executable File
		
	
	
	
	
##########
 | 
						|
VyOS High Availability (HA) Deployment on Azure
 | 
						|
##########
 | 
						|
 | 
						|
 | 
						|
This document describes how to deploy VyOS in a High Availability (HA) configuration on Azure using Terraform and Azure Route Server to provide sub-second failover.
 | 
						|
 | 
						|
Why Use HA on Azure?
 | 
						|
--------------------
 | 
						|
 | 
						|
This module provides a robust, repeatable foundation for building **resilient network architectures** in Azure. By combining VyOS routing features with Terraform and Azure-native services, it enables:
 | 
						|
 | 
						|
- Rapid deployment of cloud edge routers.
 | 
						|
 | 
						|
- Full control over BGP route advertisement and filtering.
 | 
						|
 | 
						|
- Realistic HA and disaster recovery simulations.
 | 
						|
 | 
						|
- Seamless integration with hybrid or multi-cloud infrastructure.
 | 
						|
 | 
						|
The architecture includes:
 | 
						|
 | 
						|
- Two VyOS routers in a Transit VNet, configured with BGP.
 | 
						|
 | 
						|
- Azure Route Server for dynamic route distribution.
 | 
						|
 | 
						|
- Site-to-Site VPN connections to a simulated on-premises VyOS router.
 | 
						|
 | 
						|
- An Ubuntu VM for connectivity and routing validation.
 | 
						|
 | 
						|
- A Data VNet for testing and diagnostics.
 | 
						|
 | 
						|
Key Features
 | 
						|
------------
 | 
						|
 | 
						|
- **High Availability**: Dual VyOS routers for redundancy and failover.
 | 
						|
 | 
						|
- **Dynamic Routing**: BGP-based routing via Azure Route Server.
 | 
						|
 | 
						|
- **Hybrid Connectivity**: Site-to-Site VPN integration with a simulated on-prem VyOS.
 | 
						|
 | 
						|
- **Testing Environment**: Includes Ubuntu VM for verification and diagnostics.
 | 
						|
 | 
						|
- **Modular & Flexible**: Easily configurable via variables.
 | 
						|
 | 
						|
HA Architecture Diagram
 | 
						|
-----------------------
 | 
						|
 | 
						|
.. figure:: /_static/images/cloud-azure-ha-architecture.png
 | 
						|
   :alt: VyOS HA topology diagram
 | 
						|
 | 
						|
This deployment architecture simulates a real-world enterprise network scenario for testing and validation purposes.
 | 
						|
 | 
						|
Terraform Automation
 | 
						|
--------------------
 | 
						|
 | 
						|
To streamline and standardize the process, we developed a Terraform project that automates the deployment of VyOS in High Availability (HA) mode on Azure.
 | 
						|
 | 
						|
This Terraform project automates the deployment of:
 | 
						|
 | 
						|
- Two VyOS instances in HA mode.
 | 
						|
 | 
						|
- Azure Route Server.
 | 
						|
 | 
						|
- A Transit VNet and a Data VNet containing a test Ubuntu VM for connectivity validation.
 | 
						|
 | 
						|
Prerequisites
 | 
						|
-------------
 | 
						|
 | 
						|
Ensure you have:
 | 
						|
 | 
						|
- Active Azure subscription:
 | 
						|
 | 
						|
.. code-block:: none
 | 
						|
 | 
						|
   az account set --subscription "<subscription ID or name>"
 | 
						|
 | 
						|
- Azure CLI installed:
 | 
						|
 | 
						|
  https://learn.microsoft.com/en-us/cli/azure/install-azure-cli
 | 
						|
 | 
						|
- Logged in with Azure credentials:
 | 
						|
 | 
						|
.. code-block:: none
 | 
						|
 | 
						|
   az version
 | 
						|
   az login
 | 
						|
 | 
						|
- Azure Resource Group (RG) created:
 | 
						|
 | 
						|
.. code-block:: none
 | 
						|
 | 
						|
   az group create --name demoResourceGroup --location westus
 | 
						|
   az group list
 | 
						|
   az group show --name demoResourceGroup
 | 
						|
 | 
						|
- Terraform installed:
 | 
						|
 | 
						|
  https://developer.hashicorp.com/terraform/tutorials/aws-get-started/install-cli
 | 
						|
 | 
						|
- SSH key generated:
 | 
						|
 | 
						|
.. code-block:: none
 | 
						|
 | 
						|
   ssh-keygen -t rsa -b 4096 -f keys/vyos_custom_key.pem
 | 
						|
   chmod 400 keys/vyos_custom_key.pem
 | 
						|
 | 
						|
Usage
 | 
						|
-----
 | 
						|
 | 
						|
All variables are defined in ``variables.tf``. Adjust them to match your environment.
 | 
						|
 | 
						|
Terraform Workflow:
 | 
						|
 | 
						|
.. code-block:: none
 | 
						|
 | 
						|
  terraform init
 | 
						|
  terraform fmt
 | 
						|
  terraform validate
 | 
						|
  terraform plan
 | 
						|
  terraform apply
 | 
						|
 | 
						|
On completion, run:
 | 
						|
 | 
						|
.. code-block:: none
 | 
						|
 | 
						|
  terraform output
 | 
						|
 | 
						|
This displays the management IP and connectivity test results.
 | 
						|
 | 
						|
To clean up:
 | 
						|
 | 
						|
.. code-block:: none
 | 
						|
 | 
						|
  terraform destroy
 | 
						|
 | 
						|
Management
 | 
						|
----------
 | 
						|
 | 
						|
SSH into VyOS:
 | 
						|
 | 
						|
.. code-block:: none
 | 
						|
 | 
						|
  ssh adminuser@<vyos_public_ip> -i keys/vyos_custom_key.pem
 | 
						|
 | 
						|
 | 
						|
GitHub Repository
 | 
						|
-----------------
 | 
						|
 | 
						|
You can clone or download the Terraform project and use them in your environment:
 | 
						|
 | 
						|
https://github.com/vyos/vyos-automation/tree/main/Terraform/Azure/azure-ha-deployment-with-configs
 |