cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
643
Views
0
Helpful
2
Replies

Creating Viptela Service VPN template with VPN number as variable

waqqas.jabbar
Level 1
Level 1

Hi,
I am creating a Service VPN feature template with VPN number as a variable. This feature is not supported in vManage GUI, but it works fine using the API.
I am creating feature template by making a call to POST /dataservice/template/feature/ with following payload:

    "templateName": "vedge-service-vpn-template-1",
    "templateDescription": "Service VPN template for 1 vpn on vEdge devices",
    "templateType": "vpn-vedge",
    "deviceType": [
        "vedge-cloud",
        "vedge-1000",
        "vedge-2000",
        "vedge-100",
        "vedge-100-B",
        "vedge-100-WM",
        "vedge-100-M",
        "vedge-5000",
        "vedge-ISR1100-4G",
        "vedge-ISR1100-4GLTE",
        "vedge-ISR1100-6G"
    ],
    "templateMinVersion": "15.0.0",
    "templateDefinition": {
        "vpn-id": {
            "vipObjectType": "object",
            "vipType": "variableName",
            "vipVariableName": "vpn_no_1"
        },
        "name": {
            "vipObjectType": "object",
            "vipType": "ignore",
            "vipVariableName": "vpn_name"
        },
        "ecmp-hash-key": {
            "layer4": {
                "vipObjectType": "object",
                "vipType": "ignore",
                "vipValue": "false",
                "vipVariableName": "vpn_layer4"
            }
        },
        "tcp-optimization": {
            "vipObjectType": "node-only",
            "vipType": "ignore",
            "vipValue": "false",
            "vipVariableName": "vpn_tcp_optimization"
        },
        "nat64-global": {
            "prefix": {
                "stateful": {}
            }
        },
        "nat64": {
            "v4": {
                "pool": {
                    "vipType": "ignore",
                    "vipValue": [],
                    "vipObjectType": "tree",
                    "vipPrimaryKey": [
                        "name"
                    ]
                }
            }
        },
        "route-import": {
            "vipType": "ignore",
            "vipValue": [],
            "vipObjectType": "tree",
            "vipPrimaryKey": [
                "protocol"
            ]
        },
        "route-export": {
            "vipType": "ignore",
            "vipValue": [],
            "vipObjectType": "tree",
            "vipPrimaryKey": [
                "protocol"
            ]
        },
        "host": {
            "vipType": "ignore",
            "vipValue": [],
            "vipObjectType": "tree",
            "vipPrimaryKey": [
                "hostname"
            ]
        },
        "service": {
            "vipType": "ignore",
            "vipValue": [],
            "vipObjectType": "tree",
            "vipPrimaryKey": [
                "svc-type"
            ]
        },
        "ip": {
            "gre-route": {},
            "ipsec-route": {},
            "service-route": {}
        },
        "ipv6": {},
        "omp": {
            "advertise": {
                "vipType": "ignore",
                "vipValue": [],
                "vipObjectType": "tree",
                "vipPrimaryKey": [
                    "protocol"
                ]
            },
            "ipv6-advertise": {
                "vipType": "ignore",
                "vipValue": [],
                "vipObjectType": "tree",
                "vipPrimaryKey": [
                    "protocol"
                ]
            }
        }
    },
    "factoryDefault": false

The important part is as follows

"vpn-id": {
            "vipObjectType": "object",
            "vipType": "variableName",
            "vipVariableName": "vpn_no_1"
        }

When I add this template in a device template and deploy it on a device, I have to give values of variables, as follows

            "/vpn_no_1/vpn-instance/vpn-id": "",
            "/vpn_no_1/vpn_if_name_Transport-Interface-Feature-Template-Dynamic-vEdges-1/interface/if-name": "",
            "/vpn_no_1/vpn_if_name_Transport-Interface-Feature-Template-Dynamic-vEdges-1/interface/nat": "",
            "/vpn_no_1/vpn_if_name_Transport-Interface-Feature-Template-Dynamic-vEdges-1/interface/tunnel-interface/color/value": ""

If I give these values, the device template is deployed successfully on the device.

My questions are:
- Is there something fundamentally wrong with the "variable vpn" approach? If not, why is it not supported by vMange UI (screenshot attached).
- Is it possible that the support for this feature is removed in newer version of vManage API (I am currently using vManage 20.5)
Screenshot 2021-10-12 at 1.48.43 AM.png

Looking for answers
Thanks in advance

2 Replies 2

@waqqas.jabbar i would post this question to the team at https://community.cisco.com/t5/sd-wan-and-cloud-networking/bd-p/discussions-sd-wan 

Please mark this as helpful or solution accepted to help others
Connect with me https://bigevilbeard.github.io

@bigevilbeard Thanks for pointing me to the correct forum. I was not sure it is the right forum 

 

Getting Started

Find answers to your questions by entering keywords or phrases in the Search bar above. New here? Use these resources to familiarize yourself with the community: