This project contains code for getting started with different network architectures using VNS3 to enable secure connectivity. The topologies are defined using common IaaC templating systems such as terraform and cloudformation.
- VPN Site to Site
- Multi-Cloud
- Encrypted overlay network
- Plug in functionality on your Network Edge with our Plugin System
This is a work in progress as we collect and organize the work we've done the last number of years so we appreciate your understanding. If you'd like to see an example use case using a certain templating system, let us know! You can Create an Issue here or open a support ticket for some one on one help getting started.
Each templating system has different conventions but are all relatively easy to use. After building your infrastructure, you can automate configuration of your network topology using the VNS3 API. We also currently support a Python SDK (with Bash and Ruby to come!) which has some example code for getting started.
You can deploy terraform templates using the Terraform command line tool. We also wrote a little helper script to output your build plans @ scripts/tfplan
terraform plan # view the resources to be built
terraform apply -force # create resources using force to skip confirming step
./tfplan [path to dir] # create a timestamped build plan, optional path to dir
terraform apply -force build__2019-09-23T19-06-08Z.tfplan
You can deploy AWS Cloudformation templates via the AWS console or utilizing the AWS SDKs, most easily with the CLI and the create-stack method.
aws cloudformation create-stack --stack-name myteststack \
--template-body file://sampletemplate.json \
--parameters ParameterKey=KeyPairName,ParameterValue=TestKey \
ParameterKey=SubnetIDs,ParameterValue=SubnetID1\\,SubnetID2
You can deploy azure resource manager templates via the Azure console or utilizing the Azure SDKs, most easily with the CLI and the resource manager deploy method.
az group create --name ExampleGroup --location "Central US"
az group deployment create \
--name ExampleDeployment \
--resource-group ExampleGroup \
--template-file multi-region-peering-topology.json \
--parameters storageAccountType=Standard_GRS
Now that your infrastructure is deployed, you can programmatically configure the topology with the VNS3 API.. We also currently support a Python SDK (with Bash and Ruby to come!) which has some example code for getting started with configuration your topology.
To come!