Skip to content

Service Device

Location in GUI: Tenant Template » Service Devices

Diagram
NameTypeConstraintMandatoryDefault Value
service_devicesList[service_devices]No

NameTypeConstraintMandatoryDefault Value
nameStringRegex: ^[a-zA-Z0-9_.:-]{1,64}$Yes
descriptionStringRegex: ^[a-zA-Z0-9\\!#$%()*,-./:;@ _{|}~?&+]{1,128}$No
tenantStringRegex: ^[a-zA-Z0-9_.:-]{1,64}$Yes
sitesListStringNo
clusterList[cluster]No

cluster (ndo.tenant_templates.service_devices)

Section titled “cluster (ndo.tenant_templates.service_devices)”
NameTypeConstraintMandatoryDefault Value
nameStringRegex: ^[a-zA-Z0-9_.:-]{1,64}$Yes
descriptionStringRegex: ^[a-zA-Z0-9\\!#$%()*,-./:;@ _{|}~?&+]{1,128}$No
device_typeChoicefirewall, load_balancer, otherNofirewall
device_modeChoicelayer3, layer2, layer1Nolayer3
sitesList[sites]No
interfacesList[interfaces]No

sites (ndo.tenant_templates.service_devices.cluster)

Section titled “sites (ndo.tenant_templates.service_devices.cluster)”
NameTypeConstraintMandatoryDefault Value
nameStringRegex: ^[a-zA-Z0-9_.:-]{1,64}$Yes
domain_typeChoicevmm, physicalNophysical
domain_nameStringRegex: ^[a-zA-Z0-9_.:-]{1,64}$No
vmm_typeChoiceVMware, Microsoft, RedhatNoVMware
trunking_portBooleantrue, falseNofalse
promiscuous_modeBooleantrue, falseNofalse
site_vlanIntegermin: 1, max: 4096No
high_availability_modeChoiceactiveActive, activeStandbyNoactiveStandby

interfaces (ndo.tenant_templates.service_devices.cluster)

Section titled “interfaces (ndo.tenant_templates.service_devices.cluster)”
NameTypeConstraintMandatoryDefault Value
nameStringRegex: ^[a-zA-Z0-9_.:-]{1,64}$Yes
interface_typeChoicel3out, bdYes
schemaStringRegex: ^[a-zA-Z0-9\s+_.:-]{1,64}$Yes
templateStringYes
bridge_domainStringRegex: ^[a-zA-Z0-9_.:-]{1,64}$No
external_endpoint_groupStringRegex: ^[a-zA-Z0-9_.:-]{1,64}$No
vlanIntegermin: 1, max: 4096No
ip_slaClass[ip_sla]No
redirectBooleantrue, falseNofalse
load_balance_hashingChoicesourceIP, destinationIP, sourceDestinationAndProtocolNosourceDestinationAndProtocol
pod_aware_redirectionBooleantrue, falseNofalse
anycastBooleantrue, falseNofalse
rewrite_source_macBooleantrue, falseNofalse
advanced_tracking_optionsBooleantrue, falseNofalse
static_macBooleantrue, falseNofalse
tag_based_sortingBooleantrue, falseNofalse
preferred_groupBooleantrue, falseNofalse
resilient_hashBooleantrue, falseNofalse
backup_redirect_ipBooleantrue, falseNofalse
thresholdClass[threshold]No
sitesList[sites]No

ip_sla (ndo.tenant_templates.service_devices.cluster.interfaces)

Section titled “ip_sla (ndo.tenant_templates.service_devices.cluster.interfaces)”
NameTypeConstraintMandatoryDefault Value
nameStringRegex: ^[a-zA-Z0-9_.:-]{1,64}$Yes
templateStringYes

threshold (ndo.tenant_templates.service_devices.cluster.interfaces)

Section titled “threshold (ndo.tenant_templates.service_devices.cluster.interfaces)”
NameTypeConstraintMandatoryDefault Value
min_thresholdIntegermin: 0, max: 100No0
max_thresholdIntegermin: 0, max: 100No100
down_actionChoicepermit, deny, bypassNopermit

sites (ndo.tenant_templates.service_devices.cluster.interfaces)

Section titled “sites (ndo.tenant_templates.service_devices.cluster.interfaces)”
NameTypeConstraintMandatoryDefault Value
nameStringRegex: ^[a-zA-Z0-9_.:-]{1,64}$Yes
elagStringNo
domain_nameStringRegex: ^[a-zA-Z0-9_.:-]{1,64}$No
vlanIntegermin: 1, max: 4096No
pbr_destinationsList[pbr_destinations]No
fabric_interfacesList[fabric_interfaces]No

pbr_destinations (ndo.tenant_templates.service_devices.cluster.interfaces.sites)

Section titled “pbr_destinations (ndo.tenant_templates.service_devices.cluster.interfaces.sites)”
NameTypeConstraintMandatoryDefault Value
tagStringRegex: ^[a-zA-Z0-9_.:-]{1,64}$No
macMACNo
ipIPNo
weightIntegermin: 1, max: 10No1
backupBooleantrue, falseNo
additional_tracking_ipIPNo
podIntegermin: 1, max: 255No

fabric_interfaces (ndo.tenant_templates.service_devices.cluster.interfaces.sites)

Section titled “fabric_interfaces (ndo.tenant_templates.service_devices.cluster.interfaces.sites)”
NameTypeConstraintMandatoryDefault Value
typeChoiceport, vpc, dpcNoport
nodeIntegermin: 1, max: 4000No
node_2Integermin: 1, max: 4000No
podIntegermin: 1, max: 255No
vlanIntegermin: 1, max: 4096No
channelStringRegex: ^[a-zA-Z0-9_.:-]{1,64}$No
moduleIntegermin: 1, max: 9No
portIntegermin: 1, max: 127No
tagStringRegex: ^[a-zA-Z0-9_.:-]{1,64}$No
vmm_nameStringNo
vnicStringNo

Note: Following examples describes valid configurations that are supported via GUI. This resource doesn’t provide validation for all configuration variations, thus it is user responsibility to provide valid setup to the NDO, otherwise NDO may return an error. Every example has (INT1) and (INT2) interface configuration which shows maximum and minimum constraints to deploy an Service Device Cluster.

Example-1: The example below shows a service device template called SD1 that is created under the tenant TEN1 and the site SITE1. It contains a firewall cluster CLUSTER1 in layer3 mode, attached to the physical domain PHYSDOM1. The bridge domain interface INT1 uses the IP SLA policy IP_SLA1 from the tenant policy template TP_TEMPLATE1, enables the full set of advanced PBR options (resilient hashing, backup redirect IP, threshold with a deny down action, etc.) and is deployed on two vPC fabric interfaces with two PBR destinations. The interface INT2 shows a minimal bridge domain interface on a single vPC.

ndo:
tenant_templates:
service_device:
- name: SD1
tenant: TEN1
description: DESC1
sites:
- SITE1
cluster:
- name: CLUSTER1
device_type: firewall
device_mode: layer3
sites:
- name: SITE1
domain_type: physical
domain_name: PHYSDOM1
interfaces:
- name: INT1
interface_type: bd
schema: SCHEMA1
template: TEMPLATE1
bridge_domain: SD_BD1
ip_sla:
name: IP_SLA1
template: TP_TEMPLATE1
redirect: true
preferred_group: true
load_balance_hashing: sourceIP
pod_aware_redirection: true
rewrite_source_mac: true
advanced_tracking_options: true
static_mac: true
tag_based_sorting: true
resilient_hash: true
backup_redirect_ip: true
vlan: 626
threshold:
min_threshold: 10
max_threshold: 90
down_action: deny
sites:
- name: SITE1
pbr_destinations:
- tag: TAG1
mac: aa:bb:cc:dd:ee:aa
pod: 2
weight: 3
ip: 10.10.10.10
- tag: TAG2
mac: aa:bb:cc:dd:ee:af
ip: 12.12.12.12
fabric_interfaces:
- type: vpc
node: 101
node_2: 102
channel: VPC1
pod: 1
- type: vpc
node: 101
node_2: 102
channel: VPC2
pod: 1
- name: INT2
interface_type: bd
schema: SCHEMA1
template: TEMPLATE1
bridge_domain: SD_BD1
vlan: 150
sites:
- name: SITE1
fabric_interfaces:
- type: vpc
node: 101
node_2: 102
channel: VPC2

Example-2: The example below adds a load_balancer cluster CLUSTER2 to the service device template SD1. The interfaces are of type l3out and reference the external endpoint group EXT_EPG1. The interface INT1 enables advanced settings and preferred group on a vPC fabric interface, while INT2 is a minimal L3Out interface on a single physical port.

ndo:
tenant_templates:
service_device:
- name: SD1
tenant: TEN1
sites:
- SITE1
cluster:
- name: CLUSTER2
device_type: load_balancer
sites:
- name: SITE1
domain_type: physical
domain_name: PHYSDOM1
interfaces:
- name: INT1
interface_type: l3out
schema: SCHEMA1
template: TEMPLATE1
external_endpoint_group: EXT_EPG1
preferred_group: true
sites:
- name: SITE1
fabric_interfaces:
- type: vpc
node: 101
node_2: 102
channel: VPC1
pod: 1
- name: INT2
interface_type: l3out
schema: SCHEMA1
template: TEMPLATE1
external_endpoint_group: EXT_EPG1
sites:
- name: SITE1
fabric_interfaces:
- type: port
pod: 1
node: 101
module: 1
port: 20

Example-3: The example below adds an other cluster CLUSTER3 in layer2 mode to the service device template SD1. It shows two bridge domain interfaces with tag based PBR destinations bound to specific fabric interfaces (via matching tag). The interface INT1 mixes a physical port and a vPC fabric interface, while INT2 uses an IP SLA policy together with two physical ports.

ndo:
tenant_templates:
service_device:
- name: SD1
tenant: TEN1
sites:
- SITE1
cluster:
- name: CLUSTER3
device_type: other
device_mode: layer2
sites:
- name: SITE1
domain_type: physical
domain_name: PHYSDOM1
interfaces:
- name: INT1
interface_type: bd
schema: SCHEMA1
template: TEMPLATE1
bridge_domain: SD_BD1
vlan: 625
redirect: true
sites:
- name: SITE1
pbr_destinations:
- tag: TAG1
mac: aa:bb:aa:bb:aa:cc
- tag: TAG2
mac: dd:aa:aa:aa:aa:aa
fabric_interfaces:
- type: port
pod: 1
node: 101
port: 24
module: 1
tag: TAG1
- type: vpc
node: 101
node_2: 102
channel: VPC3
pod: 1
tag: TAG2
- name: INT2
interface_type: bd
schema: SCHEMA1
template: TEMPLATE1
bridge_domain: SD_BD1
redirect: true
ip_sla:
name: IP_SLA1
template: TP_TEMPLATE1
preferred_group: true
load_balance_hashing: sourceIP
rewrite_source_mac: true
advanced_tracking_options: true
static_mac: true
tag_based_sorting: true
vlan: 624
sites:
- name: SITE1
pbr_destinations:
- tag: TAG1
mac: aa:bb:cc:dd:ee:aa
weight: 3
- tag: TAG2
mac: aa:bb:cc:dd:ee:a1
weight: 2
fabric_interfaces:
- type: port
pod: 1
node: 101
module: 1
port: 24
tag: TAG1
- type: port
pod: 1
node: 101
module: 1
port: 25
tag: TAG2

Example-4: The example below adds an other cluster CLUSTER4 in layer1 mode to the service device template SD1. The cluster site defines a site_vlan. The interface INT1 is a fully featured bridge domain interface (IP SLA, static MAC, tag based sorting) with two tagged physical ports and matching PBR destinations, while INT2 is a minimal redirect interface mixing a physical port and a vPC.

ndo:
tenant_templates:
service_device:
- name: SD1
tenant: TEN1
sites:
- SITE1
cluster:
- name: CLUSTER4
device_type: other
device_mode: layer1
sites:
- name: SITE1
domain_type: physical
domain_name: PHYSDOM1
site_vlan: 622
interfaces:
- name: INT1
interface_type: bd
schema: SCHEMA1
template: TEMPLATE1
bridge_domain: SD_BD1
redirect: true
ip_sla:
name: IP_SLA1
template: TP_TEMPLATE1
preferred_group: true
load_balance_hashing: sourceIP
rewrite_source_mac: true
advanced_tracking_options: true
static_mac: true
tag_based_sorting: true
sites:
- name: SITE1
fabric_interfaces:
- type: port
pod: 1
node: 101
module: 1
port: 26
tag: TAG1
- type: port
pod: 1
node: 101
module: 1
port: 27
tag: TAG2
pbr_destinations:
- tag: TAG1
mac: aa:bb:cc:dd:ee:aa
weight: 3
- tag: TAG2
mac: aa:bb:cc:dd:ee:a1
weight: 2
- name: INT2
interface_type: bd
schema: SCHEMA1
template: TEMPLATE1
bridge_domain: SD_BD1
redirect: true
sites:
- name: SITE1
pbr_destinations:
- tag: TAG1
mac: aa:bb:aa:bb:aa:cc
- tag: TAG2
mac: dd:aa:aa:aa:aa:aa
fabric_interfaces:
- type: port
pod: 1
node: 101
port: 34
module: 1
tag: TAG1
- type: vpc
node: 101
node_2: 102
channel: VPC3
pod: 1
tag: TAG2

Example-5: The example below adds an other cluster CLUSTER5 in layer1 mode with the high_availability_mode set to activeActive to the service device template SD1. Here the physical domain is set per interface site (domain_name), and each fabric interface carries its own vlan.

ndo:
tenant_templates:
service_device:
- name: SD1
tenant: TEN1
sites:
- SITE1
cluster:
- name: CLUSTER5
device_type: other
device_mode: layer1
sites:
- name: SITE1
high_availability_mode: activeActive
interfaces:
- name: INT1
interface_type: bd
schema: SCHEMA1
template: TEMPLATE1
bridge_domain: SD_BD1
redirect: true
ip_sla:
name: IP_SLA1
template: TP_TEMPLATE1
preferred_group: true
load_balance_hashing: sourceIP
rewrite_source_mac: true
advanced_tracking_options: true
static_mac: true
tag_based_sorting: true
sites:
- name: SITE1
domain_name: PHYSDOM1
fabric_interfaces:
- type: port
pod: 1
node: 101
module: 1
port: 26
tag: TAG1
vlan: 777
- type: port
pod: 1
node: 101
module: 1
port: 27
tag: TAG2
vlan: 788
pbr_destinations:
- tag: TAG1
mac: aa:bb:cc:dd:ee:aa
weight: 3
- tag: TAG2
mac: aa:bb:cc:dd:ee:a1
weight: 2
- name: INT2
interface_type: bd
schema: SCHEMA1
template: TEMPLATE1
bridge_domain: SD_BD1
redirect: true
sites:
- name: SITE1
domain_name: PHYSDOM1
pbr_destinations:
- tag: TAG1
mac: aa:bb:aa:bb:aa:cc
- tag: TAG2
mac: dd:aa:aa:aa:aa:aa
fabric_interfaces:
- type: port
pod: 1
node: 101
port: 34
module: 1
tag: TAG1
vlan: 888
- type: vpc
node: 101
node_2: 102
channel: VPC3
pod: 1
tag: TAG2
vlan: 999

Example-6: The example below adds a load_balancer cluster CLUSTER6 to the service device template SD1, attached to the VMM domain VMMDOM1 (domain_type: vmm) with trunking_port and promiscuous_mode enabled. The l3out interfaces reference the external endpoint group EXT_EPG1 and are deployed on VMM fabric interfaces identified by vmm_name and vnic. Interface INT1 enables the full set of advanced PBR options (IP SLA, threshold with a deny down action, resilient hashing, backup redirect IP, etc.) together with an enhanced LAG policy (elag), while INT2 shows a minimal VMM L3Out interface.

ndo:
tenant_templates:
service_device:
- name: SD1
tenant: TEN1
sites:
- SITE1
cluster:
- name: CLUSTER6
device_type: load_balancer
sites:
- name: SITE1
domain_type: vmm
vmm_type: VMware
domain_name: VMMDOM1
trunking_port: true
promiscuous_mode: true
interfaces:
- name: INT1
interface_type: l3out
schema: SCHEMA1
template: TEMPLATE1
external_endpoint_group: EXT_EPG1
ip_sla:
name: IP_SLA1
template: TP_TEMPLATE1
redirect: true
preferred_group: true
load_balance_hashing: sourceIP
pod_aware_redirection: true
rewrite_source_mac: true
advanced_tracking_options: true
static_mac: true
tag_based_sorting: true
resilient_hash: true
backup_redirect_ip: true
threshold:
min_threshold: 10
max_threshold: 90
down_action: deny
sites:
- name: SITE1
elag: ELAG1
pbr_destinations:
- ip: 10.10.10.10
tag: TAG1
mac: aa:bb:cc:dd:ee:aa
pod: 2
weight: 3
additional_tracking_ip: 12.12.12.12
fabric_interfaces:
- vmm_name: VC1/VM1
vnic: Network Adapter 1
type: port
pod: 1
node: 101
port: 40
- name: INT2
interface_type: l3out
schema: SCHEMA1
template: TEMPLATE1
external_endpoint_group: EXT_EPG1
sites:
- name: SITE1
fabric_interfaces:
- vmm_name: VC1/VM2
vnic: Network Adapter 1
type: port
pod: 1
node: 103
port: 20

Example-7: The example below adds a firewall cluster CLUSTER7 to the service device template SD1, attached to the VMM domain VMMDOM1 (domain_type: vmm). The bridge domain interfaces reference SD_BD1. Interface INT1 is a fully featured bridge domain interface (IP SLA, threshold, resilient hashing, static MAC, tag based sorting, etc.) with an enhanced LAG policy (elag) on a VMM fabric interface (vmm_name/vnic), while INT2 shows a minimal VMM bridge domain interface.

ndo:
tenant_templates:
service_device:
- name: SD1
tenant: TEN1
sites:
- SITE1
cluster:
- name: CLUSTER7
device_type: firewall
sites:
- name: SITE1
domain_type: vmm
domain_name: VMMDOM1
vmm_type: VMware
interfaces:
- name: INT1
interface_type: bd
schema: SCHEMA1
template: TEMPLATE1
bridge_domain: SD_BD1
ip_sla:
name: IP_SLA1
template: TP_TEMPLATE1
redirect: true
preferred_group: true
load_balance_hashing: sourceIP
pod_aware_redirection: true
rewrite_source_mac: true
advanced_tracking_options: true
static_mac: true
tag_based_sorting: true
resilient_hash: true
backup_redirect_ip: true
threshold:
min_threshold: 10
max_threshold: 90
down_action: deny
sites:
- name: SITE1
elag: ELAG1
pbr_destinations:
- ip: 10.10.10.10
tag: TAG1
mac: aa:bb:cc:dd:ee:aa
pod: 2
weight: 3
additional_tracking_ip: 12.12.12.12
fabric_interfaces:
- vmm_name: VC1/VM1
vnic: Network Adapter 1
- name: INT2
interface_type: bd
schema: SCHEMA1
template: TEMPLATE1
bridge_domain: SD_BD1
sites:
- name: SITE1
fabric_interfaces:
- vmm_name: VC1/VM2
vnic: Network Adapter 1