Coder Social home page Coder Social logo

quickstart-cisco-meraki-sd-wan-vmx's Introduction

Cisco Meraki Virtual MX โ€” Quick Start

For architectural details, step-by-step instructions, and customization options, see the deployment guide.

To post feedback, submit feature ideas, or report bugs, use the Issues section of this GitHub repo.

To submit code for this Quick Start, see the AWS Quick Start Contributor's Kit.

quickstart-cisco-meraki-sd-wan-vmx's People

Contributors

andrew-glenn avatar censullo avatar davmayd avatar goopilot avatar lucius-aws-quickstart avatar myhomenwlab avatar redick0x7e1 avatar simarbir avatar sshvans avatar troy-ameigh avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

quickstart-cisco-meraki-sd-wan-vmx's Issues

Meraki Network Tag Mismatch

The deployment guide documentation says to set the "network tags" in the Meraki Dashboard to "vMX-1" and "vMX-2", but in Table 1 lower down, and more crucially as a pre-populated parameter in the CloudFormation template, the tags are set to "vMX1" and "vMX2".

As these tags are used as environment variables in the Lambda job that is executed to fail over the routing, this discrepancy causes the job to fail until corrected, so the documentation should be changed to make it consistent with the table and CFT.

Lambda Meraki Route Extraction Problem

Our existing SD-WAN topology is Hub and Spoke, with the Hub currently set to a pair of physical MX appliances in an on-prem DC and both vMX's set as spokes.

When the below Lambda function ran with our topology, no routes were extracted at all, so no routing updates were made.

I wondered whether this might be to do with what the get_all_vpn_routes function is expecting the topology to be like?

def get_all_vpn_routes(dashboard, org_id, vmx1_id, vmx2_id):

AWS Cloud WAN Enhancements: Update existing lambda with support for CW

Modify the existing lambda used to update the VPC and TGW routes, to now support CW (if the CW option is selected at the time of deployment). If the CW option is selected, the lambda should:

  • Update the VPC route tables to point to the core network, instead of pointing to the TGW
  • Update the core-network policy and create/update segment routes for the MX branch routes to point to the SD-WAN VPC.

Route Table Size

Route Table from Meraki can be large and exceed the recommended values for AWS route table size. Sure the size can be increased to 1000 but even then some environment can exceed those numbers. Having the ability to select during the deployment to leverage Summary Addresses (RFC1918) vs Specific API Pulled Routes would be beneficial.

AWS Cloud WAN Enhancements: Add a new lambda to deploy Cloud WAN in a single region

Create a new lambda to deploy and setup the Cloud WAN resource. The lambda should do the following:

  • Deploy a new global network
  • Deploy and setup the core network with support for a single SD-WAN segment in a single region.
  • Create VPC attachments for the SD-WAN VPC
  • Next, update the core network policy to setup the appropriate sharing/segment actions for the SD-WAN and Workload segments.

Moreover, the lambda should automate all the manual steps mentioned in the vMX and AWS Cloud WAN KB

Make TGW creation optional

Many companies have existing environment with TGW as a core. It would be beneficial to make creation of TGW optional and add parameters to specify existing TransitGateway, TransitGatewayAttachment, TransitGatewayRouteTable etc that could be passed to lambda.

Deployment guide feedback

Section heading: Design
Documentation issue description:
Meraki-deployment-design

I don't have any issue with design and content. I have couple of questions.
I want to deploy Cisco Meraki vMX in Active/Active mode on AWS. Do I need to use any load balancer?
If I don't want to use any Load Balancer then how traffic is handled by both the Meraki Firewall.

Attaching the diagram, is valid for HA Active-Active deployment or I need to go without private subnet as per the your documents.

Modifying the template to use a supported runtime Python version from 3.7 to 3.12 for templates/copy-lambdas.yaml file

Hi Team,

We want vMX-HA on Cisco Meraki for which we are trying to deploy the vMX instances on AWS using the script - https://aws-quickstart.s3.us-east-1.amazonaws.com/quickstart-cisco-meraki-sd-wan-vmx/templates/quickstart-cisco-meraki-sdwan-vmx-entrypoint-new-vpc.template.yaml

After submitting we get below error on AWS:
Resource handler returned message: "The runtime parameter of python3.7 is no longer supported for creating or updating AWS Lambda functions. We recommend you use the new runtime (python3.12) while creating or updating functions. (Service: Lambda, Status Code: 400, Request ID: def02545-17ed-4776-ad97-cd93544e5238)" (RequestToken: e439a555-a799-782c-acd5-b05b2872613f, HandlerErrorCode: InvalidRequest)

Below is the reply from AWS support:
It appears that an outdated runtime is hard-coded in the Lambda function resource, 'CopyObjectsFunction'. You can resolve this error by modifying the template to use a supported runtime.

Requesting to please change the below Python Runtime to 3.12 version: quickstart-cisco-meraki-sd-wan-vmx/templates
/copy-lambdas.yaml

Description: Copies objects from a source S3 bucket to a destination S3 bucket
Handler: index.handler
Role:
Fn::GetAtt:
- CopyObjectsRole
- Arn
Runtime: python3.7 <<<<<<
Timeout: 240
Type: AWS::Lambda::Function

Description: Empty the S3 Bucket
Handler: index.handler
Role:
Fn::GetAtt:
- S3CleanUpRole
- Arn
Runtime: python3.7 <<<<<<<<
Timeout: 240
Type: AWS::Lambda::Function

Log file attached with error snap.
vMXHA deployment error using Cloudformation on AWS.docx

Auto VPN Topology Limitation: AWS vMX does not learn the routes of other Hubs.

There are conditions in lambda_function.py that defines the target of route learning.

https://github.com/aws-quickstart/quickstart-cisco-meraki-sd-wan-vmx/blob/main/functions/source/lambda_function.py

    if networks['vpnMode'] == 'spoke': 
        for peers in networks['merakiVpnPeers']:
            if peers['networkId'] == vmx1_id or peers['networkId'] == vmx2_id:

vMX will only learn routes for Networks that have designated vMX as a Hub in Spoke.
In other words, AWS's Route table does not learn the routes of other Hubs.
Therefore, if you have a DC-DC Failover Topoglogy with a multi-sided configuration of DC and AWS, you will need to modify your scripts.

Auto_VPN_Topology_Limitation

No VPC and TGW routes cleanup

Functions update_tgw_rt update_vpc_rt only creating new routes. There is no automated way to delete VPC and TGW routes in case it was removed or modified on the Spoke MX.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.