Skip to content

L3out

L3out Node and Interface Profiles can either be auto-generated, one per L3out, or can be defined explicitly.

Note: Whether an interface is an svi, routed sub-interface, or routed depends on the following configuration:

svi - vlan: <not null>, svi: true, ip: <not null>

routed sub-interface - vlan: <not null>, svi: false, ip: <not null>

routed interface - vlan: <null>, svi: false, ip: <not null>

The following table maps the subnet flags of external endpoint groups to the corresponding GUI terminology:

Subnet FlagGUI Terminology
import_securityExternal Subnets for External EPG
shared_securityShared Security Import Subnet
import_route_controlImport Route Control Subnet
export_route_controlExport Route Control Subnet
shared_route_controlShared Route Control Subnet
aggregate_import_route_controlAggregate Import
aggregate_export_route_controlAggregate Export
aggregate_shared_route_controlAggregate Shared Routes

Location in GUI:

  • Tenants » XXX » Networking » L3outs
Diagram
NameTypeConstraintMandatoryDefault Value
l3outsList[l3outs]No

NameTypeConstraintMandatoryDefault Value
nameStringRegex: ^[a-zA-Z0-9_.:-]{1,64}$Yes
ndo_managedBooleantrue, falseNofalse
aliasStringRegex: ^[a-zA-Z0-9_.:-]{1,64}$No
descriptionStringRegex: ^[a-zA-Z0-9\\!#$%()*,-./:;@ _{|}~?&+]{1,128}$No
target_dscpAnyChoice[CS0, CS1, AF11, AF12, AF13, CS2, AF21, AF22, AF23, CS3, AF31, AF32, AF33, CS4, AF41, AF42, AF43, CS5, VA, EF, CS6, CS7, unspecified] or Integer[min: 0, max: 63]Nounspecified
vrfStringRegex: ^[a-zA-Z0-9_.:-]{1,64}$Yes
domainStringRegex: ^[a-zA-Z0-9_.:-]{1,64}$Yes
bgpClass[bgp]No
ospfClass[ospf]No
eigrpClass[eigrp]No
bfd_policyStringRegex: ^[a-zA-Z0-9_.:-]{1,64}$No
bgp_peersList[bgp_peers]No
nodesList[nodes]No
node_profilesList[node_profiles]No
external_endpoint_groupsList[external_endpoint_groups]No
import_route_mapClass[import_route_map]No
export_route_mapClass[export_route_map]No
interleak_route_mapStringRegex: ^[a-zA-Z0-9_.:-]{1,64}$No
default_route_leak_policyClass[default_route_leak_policy]No
dampening_ipv4_route_mapStringRegex: ^[a-zA-Z0-9_.:-]{1,64}$No
dampening_ipv6_route_mapStringRegex: ^[a-zA-Z0-9_.:-]{1,64}$No
redistribution_route_mapsList[redistribution_route_maps]No
l3_multicast_ipv4Booleantrue, falseNofalse
pim_policyStringRegex: ^[a-zA-Z0-9_.:-]{1,64}$No
igmp_interface_policyStringRegex: ^[a-zA-Z0-9_.:-]{1,64}$No
qos_classChoicelevel1, level2, level3, level4, level5, level6, unspecifiedNounspecified
custom_qos_policyStringRegex: ^[a-zA-Z0-9_.:-]{1,64}$No
nd_interface_policyStringRegex: ^[a-zA-Z0-9_.:-]{1,64}$No
ingress_data_plane_policing_policyStringRegex: ^[a-zA-Z0-9_.:-]{1,64}$No
egress_data_plane_policing_policyStringRegex: ^[a-zA-Z0-9_.:-]{1,64}$No
multipodBooleantrue, falseNotrue
remote_leafBooleantrue, falseNofalse
import_route_control_enforcementBooleantrue, falseNofalse
export_route_control_enforcementBooleantrue, falseNotrue
dhcp_labelsList[dhcp_labels]No
route_mapsList[route_maps]No

NameTypeConstraintMandatoryDefault Value
nameStringRegex: ^[a-zA-Z0-9_.:-]{1,64}$No
timer_policyStringRegex: ^[a-zA-Z0-9_.:-]{1,64}$No
as_path_policyStringRegex: ^[a-zA-Z0-9_.:-]{1,64}$No

NameTypeConstraintMandatoryDefault Value
ospf_interface_profile_nameStringRegex: ^[a-zA-Z0-9_.:-]{1,64}$No
areaAnyInteger[min: 0, max: 4294967295] or Choice[backbone] or IPYes
area_typeChoiceregular, stub, nssaNoregular
area_costIntegermin: 1, max: 16777215No1
area_control_redistributeBooleantrue, falseNotrue
area_control_summaryBooleantrue, falseNotrue
area_control_suppress_faBooleantrue, falseNofalse
auth_typeChoicenone, simple, md5Nonone
auth_keyStringNo
auth_key_idIntegermin: 1, max: 255No1
policyStringRegex: ^[a-zA-Z0-9_.:-]{1,64}$No

NameTypeConstraintMandatoryDefault Value
interface_profile_nameStringRegex: ^[a-zA-Z0-9_.:-]{1,64}$No
asnIntegermin: 1, max: 65535Yes
interface_policyStringRegex: ^[a-zA-Z0-9_.:-]{1,64}$No

NameTypeConstraintMandatoryDefault Value
ipIPYes
remote_asIntegermin: 0, max: 4294967295Yes
descriptionStringRegex: ^[a-zA-Z0-9\\!#$%()*,-./:;@ _{|}~?&+]{1,128}$No
allow_self_asBooleantrue, falseNofalse
as_overrideBooleantrue, falseNofalse
disable_peer_as_checkBooleantrue, falseNofalse
next_hop_selfBooleantrue, falseNofalse
send_communityBooleantrue, falseNofalse
send_ext_communityBooleantrue, falseNofalse
passwordStringNo
allowed_self_as_countIntegermin: 1, max: 10No3
bfdBooleantrue, falseNofalse
disable_connected_checkBooleantrue, falseNofalse
ttlIntegermin: 1, max: 255No1
weightIntegermin: 0, max: 65535No0
remove_all_private_asBooleantrue, falseNofalse
remove_private_asBooleantrue, falseNofalse
replace_private_as_with_local_asBooleantrue, falseNofalse
unicast_address_familyBooleantrue, falseNotrue
multicast_address_familyBooleantrue, falseNotrue
admin_stateBooleantrue, falseNotrue
local_asIntegermin: 0, max: 4294967295No
as_propagateChoicenone, no-prepend, replace-as, dual-asNonone
peer_prefix_policyStringRegex: ^[a-zA-Z0-9_.:-]{1,64}$No
export_route_controlStringRegex: ^[a-zA-Z0-9_.:-]{1,64}$No
import_route_controlStringRegex: ^[a-zA-Z0-9_.:-]{1,64}$No

NameTypeConstraintMandatoryDefault Value
node_idIntegermin: 1, max: 4000Yes
pod_idIntegermin: 1, max: 255No
router_idIPYes
router_id_as_loopbackBooleantrue, falseNotrue
loopbacksListIPNo
static_routesList[static_routes]No
interfacesList[interfaces]No

NameTypeConstraintMandatoryDefault Value
nameStringRegex: ^[a-zA-Z0-9_.:-]{1,64}$Yes
bgpClass[bgp]No
bgp_peersList[bgp_peers]No
nodesList[nodes]No
interface_profilesList[interface_profiles]No

external_endpoint_groups (apic.tenants.l3outs)

Section titled “external_endpoint_groups (apic.tenants.l3outs)”
NameTypeConstraintMandatoryDefault Value
nameStringRegex: ^[a-zA-Z0-9_.:-]{1,64}$Yes
ndo_managedBooleantrue, falseNofalse
aliasStringRegex: ^[a-zA-Z0-9_.:-]{1,64}$No
descriptionStringRegex: ^[a-zA-Z0-9\\!#$%()*,-./:;@ _{|}~?&+]{1,128}$No
preferred_groupBooleantrue, falseNofalse
qos_classChoicelevel1, level2, level3, level4, level5, level6, unspecifiedNounspecified
target_dscpAnyChoice[CS0, CS1, AF11, AF12, AF13, CS2, AF21, AF22, AF23, CS3, AF31, AF32, AF33, CS4, AF41, AF42, AF43, CS5, VA, EF, CS6, CS7, unspecified] or Integer[min: 0, max: 63]Nounspecified
subnetsList[subnets]No
contractsClass[contracts]No
route_control_profilesList[route_control_profiles]No

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

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

default_route_leak_policy (apic.tenants.l3outs)

Section titled “default_route_leak_policy (apic.tenants.l3outs)”
NameTypeConstraintMandatoryDefault Value
alwaysBooleantrue, falseNofalse
criteriaChoiceonly, in-additionNoonly
context_scopeBooleantrue, falseNofalse
outside_scopeBooleantrue, falseNotrue

redistribution_route_maps (apic.tenants.l3outs)

Section titled “redistribution_route_maps (apic.tenants.l3outs)”
NameTypeConstraintMandatoryDefault Value
sourceChoicedirect, attached-host, staticNostatic
route_mapStringRegex: ^[a-zA-Z0-9_.:-]{1,64}$Yes

NameTypeConstraintMandatoryDefault Value
dhcp_relay_policyStringRegex: ^[a-zA-Z0-9_.:-]{1,64}$Yes
dhcp_option_policyStringRegex: ^[a-zA-Z0-9_.:-]{1,64}$No
scopeChoiceinfra, tenantNoinfra

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

NameTypeConstraintMandatoryDefault Value
descriptionStringRegex: ^[a-zA-Z0-9\\!#$%()*,-./:;@ _{|}~?&+]{1,128}$No
prefixIPYes
preferenceIntegermin: 1, max: 255No1
bfdBooleantrue, falseNofalse
next_hopsList[next_hops]No
track_listStringRegex: ^[a-zA-Z0-9_.:-]{1,64}$No

NameTypeConstraintMandatoryDefault Value
descriptionStringRegex: ^[a-zA-Z0-9\\!#$%()*,-./:;@ _{|}~?&+]{1,128}$No
node_idIntegermin: 1, max: 4000No
node2_idIntegermin: 1, max: 4000No
portIntegermin: 1, max: 127No
sub_portIntegermin: 1, max: 16No
moduleIntegermin: 1, max: 9No1
channelStringRegex: ^[a-zA-Z0-9_.:-]{1,64}$No
ipIPNo0.0.0.0
sviBooleantrue, falseNofalse
multipod_directBooleantrue, falseNofalse
autostateBooleantrue, falseNofalse
floating_sviBooleantrue, falseNofalse
vlanIntegermin: 1, max: 4096No
macMACNo00:22:BD:F8:19:FF
mtuAnyChoice[inherit] or Integer[min: 576, max: 9216]Noinherit
ip_aIPNo
ip_bIPNo
ip_sharedIPNo
ip_shared_dhcp_relayIPNofalse
link_local_addressIPNo
bgp_peersList[bgp_peers]No
pathsList[paths]No
modeChoiceregular, native, untaggedNoregular
stateChoicelocal, vrfNo
micro_bfdClass[micro_bfd]No

NameTypeConstraintMandatoryDefault Value
nameStringRegex: ^[a-zA-Z0-9_.:-]{1,64}$No
timer_policyStringRegex: ^[a-zA-Z0-9_.:-]{1,64}$No
as_path_policyStringRegex: ^[a-zA-Z0-9_.:-]{1,64}$No

bgp_peers (apic.tenants.l3outs.node_profiles)

Section titled “bgp_peers (apic.tenants.l3outs.node_profiles)”
NameTypeConstraintMandatoryDefault Value
ipIPYes
remote_asIntegermin: 0, max: 4294967295Yes
descriptionStringRegex: ^[a-zA-Z0-9\\!#$%()*,-./:;@ _{|}~?&+]{1,128}$No
allow_self_asBooleantrue, falseNofalse
as_overrideBooleantrue, falseNofalse
disable_peer_as_checkBooleantrue, falseNofalse
next_hop_selfBooleantrue, falseNofalse
send_communityBooleantrue, falseNofalse
send_ext_communityBooleantrue, falseNofalse
passwordStringNo
allowed_self_as_countIntegermin: 1, max: 10No3
bfdBooleantrue, falseNofalse
disable_connected_checkBooleantrue, falseNofalse
ttlIntegermin: 1, max: 255No1
weightIntegermin: 0, max: 65535No0
remove_all_private_asBooleantrue, falseNofalse
remove_private_asBooleantrue, falseNofalse
replace_private_as_with_local_asBooleantrue, falseNofalse
unicast_address_familyBooleantrue, falseNotrue
multicast_address_familyBooleantrue, falseNotrue
admin_stateBooleantrue, falseNotrue
local_asIntegermin: 0, max: 4294967295No
as_propagateChoicenone, no-prepend, replace-as, dual-asNonone
peer_prefix_policyStringRegex: ^[a-zA-Z0-9_.:-]{1,64}$No
export_route_controlStringRegex: ^[a-zA-Z0-9_.:-]{1,64}$No
import_route_controlStringRegex: ^[a-zA-Z0-9_.:-]{1,64}$No

NameTypeConstraintMandatoryDefault Value
node_idIntegermin: 1, max: 4000Yes
pod_idIntegermin: 1, max: 255No
router_idIPYes
router_id_as_loopbackBooleantrue, falseNotrue
loopbacksListIPNo
static_routesList[static_routes]No

interface_profiles (apic.tenants.l3outs.node_profiles)

Section titled “interface_profiles (apic.tenants.l3outs.node_profiles)”
NameTypeConstraintMandatoryDefault Value
nameStringRegex: ^[a-zA-Z0-9_.:-]{1,64}$Yes
descriptionStringRegex: ^[a-zA-Z0-9\\!#$%()*,-./:;@ _{|}~?&+]{1,128}$No
bfd_policyStringRegex: ^[a-zA-Z0-9_.:-]{1,64}$No
ospfClass[ospf]No
eigrpClass[eigrp]No
pim_policyStringRegex: ^[a-zA-Z0-9_.:-]{1,64}$No
igmp_interface_policyStringRegex: ^[a-zA-Z0-9_.:-]{1,64}$No
qos_classChoicelevel1, level2, level3, level4, level5, level6, unspecifiedNounspecified
custom_qos_policyStringRegex: ^[a-zA-Z0-9_.:-]{1,64}$No
nd_interface_policyStringRegex: ^[a-zA-Z0-9_.:-]{1,64}$No
ingress_data_plane_policing_policyStringRegex: ^[a-zA-Z0-9_.:-]{1,64}$No
egress_data_plane_policing_policyStringRegex: ^[a-zA-Z0-9_.:-]{1,64}$No
interfacesList[interfaces]No
dhcp_labelsList[dhcp_labels]No

subnets (apic.tenants.l3outs.external_endpoint_groups)

Section titled “subnets (apic.tenants.l3outs.external_endpoint_groups)”
NameTypeConstraintMandatoryDefault Value
nameStringRegex: ^[a-zA-Z0-9_.:-]{1,64}$No
ndo_managedBooleantrue, falseNofalse
descriptionStringRegex: ^[a-zA-Z0-9\\!#$%()*,-./:;@ _{|}~?&+]{1,128}$No
prefixIPYes
import_route_controlBooleantrue, falseNofalse
export_route_controlBooleantrue, falseNofalse
shared_route_controlBooleantrue, falseNofalse
import_securityBooleantrue, falseNotrue
shared_securityBooleantrue, falseNofalse
aggregate_import_route_controlBooleantrue, falseNofalse
aggregate_export_route_controlBooleantrue, falseNofalse
aggregate_shared_route_controlBooleantrue, falseNofalse
bgp_route_summarizationBooleantrue, falseNofalse
bgp_route_summarization_policyStringRegex: ^[a-zA-Z0-9_.:-]{1,64}$No
ospf_route_summarizationBooleantrue, falseNofalse
eigrp_route_summarizationBooleantrue, falseNofalse
route_control_profilesList[route_control_profiles]No

contracts (apic.tenants.l3outs.external_endpoint_groups)

Section titled “contracts (apic.tenants.l3outs.external_endpoint_groups)”
NameTypeConstraintMandatoryDefault Value
consumersListString[Regex: ^[a-zA-Z0-9_.:-]{1,64}$]No
providersListString[Regex: ^[a-zA-Z0-9_.:-]{1,64}$]No
imported_consumersListString[Regex: ^[a-zA-Z0-9_.:-]{1,64}$]No

route_control_profiles (apic.tenants.l3outs.external_endpoint_groups)

Section titled “route_control_profiles (apic.tenants.l3outs.external_endpoint_groups)”
NameTypeConstraintMandatoryDefault Value
nameStringRegex: ^[a-zA-Z0-9_.:-]{1,64}$Yes
directionChoiceimport, exportNoimport

contexts (apic.tenants.l3outs.import_route_map)

Section titled “contexts (apic.tenants.l3outs.import_route_map)”
NameTypeConstraintMandatoryDefault Value
nameStringRegex: ^[a-zA-Z0-9_.:-]{1,64}$Yes
descriptionStringRegex: ^[a-zA-Z0-9\\!#$%()*,-./:;@ _{|}~?&+]{1,128}$No
actionChoicepermit, denyNopermit
orderIntegermin: 0, max: 9No0
match_rulesListString[Regex: ^[a-zA-Z0-9_.:-]{1,64}$]No
set_ruleStringRegex: ^[a-zA-Z0-9_.:-]{1,64}$No

contexts (apic.tenants.l3outs.export_route_map)

Section titled “contexts (apic.tenants.l3outs.export_route_map)”
NameTypeConstraintMandatoryDefault Value
nameStringRegex: ^[a-zA-Z0-9_.:-]{1,64}$Yes
descriptionStringRegex: ^[a-zA-Z0-9\\!#$%()*,-./:;@ _{|}~?&+]{1,128}$No
actionChoicepermit, denyNopermit
orderIntegermin: 0, max: 9No0
match_rulesListString[Regex: ^[a-zA-Z0-9_.:-]{1,64}$]No
set_ruleStringRegex: ^[a-zA-Z0-9_.:-]{1,64}$No

NameTypeConstraintMandatoryDefault Value
nameStringRegex: ^[a-zA-Z0-9_.:-]{1,64}$Yes
descriptionStringRegex: ^[a-zA-Z0-9\\!#$%()*,-./:;@ _{|}~?&+]{1,128}$No
actionChoicepermit, denyNopermit
orderIntegermin: 0, max: 9No0
match_rulesListString[Regex: ^[a-zA-Z0-9_.:-]{1,64}$]No
set_ruleStringRegex: ^[a-zA-Z0-9_.:-]{1,64}$No

next_hops (apic.tenants.l3outs.nodes.static_routes)

Section titled “next_hops (apic.tenants.l3outs.nodes.static_routes)”
NameTypeConstraintMandatoryDefault Value
ipIPYes
descriptionStringRegex: ^[a-zA-Z0-9\\!#$%()*,-./:;@ _{|}~?&+]{1,128}$No
preferenceIntegermin: 0, max: 255No1
typeChoiceprefix, noneNoprefix
ip_sla_policyStringRegex: ^[a-zA-Z0-9_.:-]{1,64}$No
track_listStringRegex: ^[a-zA-Z0-9_.:-]{1,64}$No

bgp_peers (apic.tenants.l3outs.nodes.interfaces)

Section titled “bgp_peers (apic.tenants.l3outs.nodes.interfaces)”
NameTypeConstraintMandatoryDefault Value
ipIPYes
remote_asIntegermin: 0, max: 4294967295Yes
descriptionStringRegex: ^[a-zA-Z0-9\\!#$%()*,-./:;@ _{|}~?&+]{1,128}$No
allow_self_asBooleantrue, falseNofalse
as_overrideBooleantrue, falseNofalse
disable_peer_as_checkBooleantrue, falseNofalse
next_hop_selfBooleantrue, falseNofalse
send_communityBooleantrue, falseNofalse
send_ext_communityBooleantrue, falseNofalse
passwordStringNo
allowed_self_as_countIntegermin: 1, max: 10No3
bfdBooleantrue, falseNofalse
disable_connected_checkBooleantrue, falseNofalse
ttlIntegermin: 1, max: 255No1
weightIntegermin: 0, max: 65535No0
remove_all_private_asBooleantrue, falseNofalse
remove_private_asBooleantrue, falseNofalse
replace_private_as_with_local_asBooleantrue, falseNofalse
unicast_address_familyBooleantrue, falseNotrue
multicast_address_familyBooleantrue, falseNotrue
admin_stateBooleantrue, falseNotrue
local_asIntegermin: 0, max: 4294967295No
as_propagateChoicenone, no-prepend, replace-as, dual-asNonone
peer_prefix_policyStringRegex: ^[a-zA-Z0-9_.:-]{1,64}$No
export_route_controlStringRegex: ^[a-zA-Z0-9_.:-]{1,64}$No
import_route_controlStringRegex: ^[a-zA-Z0-9_.:-]{1,64}$No

paths (apic.tenants.l3outs.nodes.interfaces)

Section titled “paths (apic.tenants.l3outs.nodes.interfaces)”
NameTypeConstraintMandatoryDefault Value
physical_domainStringRegex: ^[a-zA-Z0-9_.:-]{1,64}$No
vmware_vmm_domainStringRegex: ^[a-zA-Z0-9_.:-]{1,64}$No
elagStringRegex: ^[a-zA-Z0-9_.:-]{1,64}$No
floating_ipIPYes
vlanIntegermin: 1, max: 4096No

micro_bfd (apic.tenants.l3outs.nodes.interfaces)

Section titled “micro_bfd (apic.tenants.l3outs.nodes.interfaces)”
NameTypeConstraintMandatoryDefault Value
destination_ipIPYes
start_timerAnyInteger[min: 60, max: 3600] or Integer[min: 0, max: 0]No0

static_routes (apic.tenants.l3outs.node_profiles.nodes)

Section titled “static_routes (apic.tenants.l3outs.node_profiles.nodes)”
NameTypeConstraintMandatoryDefault Value
descriptionStringRegex: ^[a-zA-Z0-9\\!#$%()*,-./:;@ _{|}~?&+]{1,128}$No
prefixIPYes
preferenceIntegermin: 1, max: 255No1
bfdBooleantrue, falseNofalse
next_hopsList[next_hops]No
track_listStringRegex: ^[a-zA-Z0-9_.:-]{1,64}$No

ospf (apic.tenants.l3outs.node_profiles.interface_profiles)

Section titled “ospf (apic.tenants.l3outs.node_profiles.interface_profiles)”
NameTypeConstraintMandatoryDefault Value
ospf_interface_profile_nameStringRegex: ^[a-zA-Z0-9_.:-]{1,64}$No
auth_typeChoicenone, simple, md5Nonone
auth_keyStringNo
auth_key_idIntegermin: 1, max: 255No1
policyStringRegex: ^[a-zA-Z0-9_.:-]{1,64}$No

eigrp (apic.tenants.l3outs.node_profiles.interface_profiles)

Section titled “eigrp (apic.tenants.l3outs.node_profiles.interface_profiles)”
NameTypeConstraintMandatoryDefault Value
interface_profile_nameStringRegex: ^[a-zA-Z0-9_.:-]{1,64}$No
interface_policyStringRegex: ^[a-zA-Z0-9_.:-]{1,64}$No
keychain_policyStringRegex: ^[a-zA-Z0-9_.:-]{1,64}$No

interfaces (apic.tenants.l3outs.node_profiles.interface_profiles)

Section titled “interfaces (apic.tenants.l3outs.node_profiles.interface_profiles)”
NameTypeConstraintMandatoryDefault Value
descriptionStringRegex: ^[a-zA-Z0-9\\!#$%()*,-./:;@ _{|}~?&+]{1,128}$No
node_idIntegermin: 1, max: 4000No
node2_idIntegermin: 1, max: 4000No
pod_idIntegermin: 1, max: 255No
moduleIntegermin: 1, max: 9No1
portIntegermin: 1, max: 127No
sub_portIntegermin: 1, max: 16No
channelStringRegex: ^[a-zA-Z0-9_.:-]{1,64}$No
ipIPNo0.0.0.0
multipod_directBooleantrue, falseNofalse
sviBooleantrue, falseNofalse
autostateBooleantrue, falseNofalse
floating_sviBooleantrue, falseNofalse
vlanIntegermin: 1, max: 4096No
macMACNo00:22:BD:F8:19:FF
mtuAnyChoice[inherit] or Integer[min: 576, max: 9216]Noinherit
ip_aIPNo
ip_bIPNo
ip_sharedIPNo
ip_shared_dhcp_relayBooleantrue, falseNofalse
link_local_addressIPNo
bgp_peersList[bgp_peers]No
pathsList[paths]No
modeChoiceregular, native, untaggedNoregular
scopeChoicelocal, vrfNolocal

route_control_profiles (apic.tenants.l3outs.external_endpoint_groups.subnets)

Section titled “route_control_profiles (apic.tenants.l3outs.external_endpoint_groups.subnets)”
NameTypeConstraintMandatoryDefault Value
nameStringRegex: ^[a-zA-Z0-9_.:-]{1,64}$Yes
directionChoiceimport, exportNoimport

next_hops (apic.tenants.l3outs.node_profiles.nodes.static_routes)

Section titled “next_hops (apic.tenants.l3outs.node_profiles.nodes.static_routes)”
NameTypeConstraintMandatoryDefault Value
ipIPYes
descriptionStringRegex: ^[a-zA-Z0-9\\!#$%()*,-./:;@ _{|}~?&+]{1,128}$No
preferenceIntegermin: 0, max: 255No1
typeChoiceprefix, noneNoprefix
ip_sla_policyStringRegex: ^[a-zA-Z0-9_.:-]{1,64}$No
track_listStringRegex: ^[a-zA-Z0-9_.:-]{1,64}$No

bgp_peers (apic.tenants.l3outs.node_profiles.interface_profiles.interfaces)

Section titled “bgp_peers (apic.tenants.l3outs.node_profiles.interface_profiles.interfaces)”
NameTypeConstraintMandatoryDefault Value
ipIPYes
remote_asIntegermin: 0, max: 4294967295Yes
descriptionStringRegex: ^[a-zA-Z0-9\\!#$%()*,-./:;@ _{|}~?&+]{1,128}$No
allow_self_asBooleantrue, falseNofalse
as_overrideBooleantrue, falseNofalse
disable_peer_as_checkBooleantrue, falseNofalse
next_hop_selfBooleantrue, falseNofalse
send_communityBooleantrue, falseNofalse
send_ext_communityBooleantrue, falseNofalse
passwordStringNo
allowed_self_as_countIntegermin: 1, max: 10No3
bfdBooleantrue, falseNofalse
disable_connected_checkBooleantrue, falseNofalse
ttlIntegermin: 1, max: 255No1
weightIntegermin: 0, max: 65535No0
remove_all_private_asBooleantrue, falseNofalse
remove_private_asBooleantrue, falseNofalse
replace_private_as_with_local_asBooleantrue, falseNofalse
unicast_address_familyBooleantrue, falseNotrue
multicast_address_familyBooleantrue, falseNotrue
admin_stateBooleantrue, falseNotrue
local_asIntegermin: 0, max: 4294967295No
as_propagateChoicenone, no-prepend, replace-as, dual-asNonone
peer_prefix_policyStringRegex: ^[a-zA-Z0-9_.:-]{1,64}$No
export_route_controlStringRegex: ^[a-zA-Z0-9_.:-]{1,64}$No
import_route_controlStringRegex: ^[a-zA-Z0-9_.:-]{1,64}$No

paths (apic.tenants.l3outs.node_profiles.interface_profiles.interfaces)

Section titled “paths (apic.tenants.l3outs.node_profiles.interface_profiles.interfaces)”
NameTypeConstraintMandatoryDefault Value
physical_domainStringRegex: ^[a-zA-Z0-9_.:-]{1,64}$No
vmware_vmm_domainStringRegex: ^[a-zA-Z0-9_.:-]{1,64}$No
elagStringRegex: ^[a-zA-Z0-9_.:-]{1,64}$No
floating_ipIPYes
vlanIntegermin: 1, max: 4096No

Simple example:

apic:
tenants:
- name: ABC
l3outs:
- name: L3OUT1
vrf: VRF1
domain: ROUTED1
nodes:
- node_id: 101
router_id: 5.5.5.5
static_routes:
- prefix: 2.2.2.0/24
description: My Desc
next_hops:
- ip: 6.6.6.6
track_list: TRACK_POL
interfaces:
- node_id: 101
port: 10
vlan: 301
ip: 14.14.14.1/24
bgp_peers:
- ip: 14.14.14.14
remote_as: 65010
external_endpoint_groups:
- name: EXT-EPG1
subnets:
- prefix: 0.0.0.0/0
contracts:
consumers:
- CON1

SVI example:

apic:
tenants:
- name: ABC
l3outs:
- name: L3OUT1
vrf: VRF1
domain: ROUTED1
node_profiles:
- name: NODE_101
nodes:
- node_id: 101
router_id: 5.5.5.5
static_routes:
- prefix: 2.2.2.0/24
description: My Desc
next_hops:
- ip: 6.6.6.6
interface_profiles:
- name: NODE_101
interfaces:
- node_id: 101
port: 10
vlan: 301
svi: true
ip: 14.14.14.1/24

Routed Sub-interface example:

apic:
tenants:
- name: ABC
l3outs:
- name: L3OUT1
vrf: VRF1
domain: ROUTED1
node_profiles:
- name: NODE_101
nodes:
- node_id: 101
router_id: 5.5.5.5
static_routes:
- prefix: 2.2.2.0/24
description: My Desc
next_hops:
- ip: 6.6.6.6
interface_profiles:
- name: NODE_101
interfaces:
- node_id: 101
port: 10
vlan: 301
svi: false
ip: 14.14.14.1/24

Routed Interface example:

apic:
tenants:
- name: ABC
l3outs:
- name: L3OUT1
vrf: VRF1
domain: ROUTED1
node_profiles:
- name: NODE_101
nodes:
- node_id: 101
router_id: 5.5.5.5
static_routes:
- prefix: 2.2.2.0/24
description: My Desc
next_hops:
- ip: 6.6.6.6
interface_profiles:
- name: NODE_101
interfaces:
- node_id: 101
port: 10
ip: 14.14.14.1/24

Example with explicit profiles:

apic:
tenants:
- name: ABC
l3outs:
- name: L3OUT1
vrf: VRF1
domain: ROUTED1
node_profiles:
- name: NODE_101
bgp:
name: BGP_PROT1
timer_policy: BGP_TIMER1
as_path_policy: BGP_AS_PATH1
nodes:
- node_id: 101
router_id: 5.5.5.5
static_routes:
- prefix: 2.2.2.0/24
description: My Desc
next_hops:
- ip: 6.6.6.6
track_list: TRACK_POL
interface_profiles:
- name: NODE_101
description: NODE_101 Description
ingress_data_plane_policing_policy: DPP1
egress_data_plane_policing_policy: DPP2
dhcp_labels:
- dhcp_relay_policy: DHCP-RELAY1
dhcp_option_policy: DHCP-OPTION1
scope: tenant
interfaces:
- node_id: 101
port: 10
vlan: 301
ip: 14.14.14.1/24
bgp_peers:
- ip: 14.14.14.14
remote_as: 65010
external_endpoint_groups:
- name: EXT-EPG1
subnets:
- prefix: 0.0.0.0/0

Full example:

apic:
tenants:
- name: ABC
l3outs:
- name: L3OUT1
alias: L3OUT1-ALIAS
description: My Desc
target_dscp: AF13
qos_class: level3
import_route_control_enforcement: true
export_route_control_enforcement: true
custom_qos_policy: QOS_POLICY
ingress_data_plane_policing_policy: DPP1
egress_data_plane_policing_policy: DPP2
vrf: VRF1
domain: ROUTED1
bfd_policy: BFD1
dhcp_labels:
- dhcp_relay_policy: DHCP-RELAY1
dhcp_option_policy: DHCP-OPTION1
scope: tenant
bgp:
timer_policy: BGP_TIMER1
as_path_policy: BGP_AS_PATH1
ospf:
area: 0
area_type: regular
area_cost: 1
auth_type: simple
auth_key: cisco
auth_key_id: 1
policy: OIP1
interleak_route_map: ROUTE_MAP1
default_route_leak_policy:
always: false
criteria: 'in-addition'
context_scope: false
outside_scope: false
redistribution_route_maps:
- source: direct
route_map: ROUTE_MAP2
dampening_ipv4_route_map: ROUTE_MAP3
dampening_ipv6_route_map: ROUTE_MAP4
nodes:
- node_id: 101
router_id: 5.5.5.5
router_id_as_loopback: true
static_routes:
- prefix: 2.2.2.0/24
description: My Desc
preference: 1
next_hops:
- ip: 6.6.6.6
description: My Next Hop Desc
ip_sla_policy: IP_SLA1
interfaces:
- channel: VPC1
svi: true
scope: local
vlan: 301
ip_a: 14.14.14.1/24
ip_b: 14.14.14.2/24
ip_shared: 14.14.14.3/24
ip_shared_dhcp_relay: true
link_local_address: fe80::ffff:ffff:ffff:ffff
mode: native
bgp_peers:
- ip: 14.14.14.14
remote_as: 65010
description: My Desc
allow_self_as: true
as_override: true
bfd: true
disable_connected_check: true
remove_private_as: true
remove_all_private_as: true
multicast_address_family: true
ttl: 1
weight: 0
password: C1sco123
local_as: 1234
as_propagate: dual-as
peer_prefix_policy: BGP_PP1
export_route_control: ROUTE_MAP1
import_route_control: ROUTE_MAP2
- channel: PC1
vlan: 311
ip: 24.24.24.1/24
bgp_peers:
- ip: 24.24.24.2
remote_as: 65010
micro_bfd:
destination_ip: 24.24.24.2
start_timer: 120
import_route_map:
name: example-import-name
description: desc
type: global
contexts:
- name: CONTEXT1
description: desc1
action: deny
order: 2
match_rules:
- MATCH1
set_rule: SET1
route_maps:
- name: example-name
description: desc
type: global
contexts:
- name: CONTEXT1
description: desc1
action: deny
order: 2
match_rules:
- MATCH1
set_rule: SET1
export_route_map:
name: example-export-name
contexts:
- name: CONTEXT1
match_rules:
- MATCH2
set_rule: SET2
external_endpoint_groups:
- name: EXT-EPG1
alias: ABC-EXT-EPG1
description: My Desc
preferred_group: false
qos_class: level4
target_dscp: CS5
route_control_profiles:
- name: IMPORT-RCP1
direction: import
subnets:
- name: ALL
prefix: 0.0.0.0/0
import_route_control: false
export_route_control: false
shared_route_control: false
import_security: true
shared_security: false
route_control_profiles:
- name: EXPORT-RCP1
direction: export
contracts:
consumers:
- CON1
providers:
- CON1
imported_consumers:
- IMPORT-CON1

example: This example shows how to configure an L3out with IPv4/IPv6 dual stack and a VIP on the SVI. The configuration includes static routes and external EPGs for the L3out, and is typically used when deploying a high-availability (HA) pair of firewalls with a NAT pool. The L3out is configured as SVI Vlan ‘100’ on Port ‘10’ of Node ‘1001’ and Node ‘1002’. Each node has its own IPv4, IPv6, and shared VIP addresses, and the shared VIP address is used as the gateway for APP1. Static routing is used as a routing protocol, and an External EPG is configured to permit communication from those routes.

apic:
tenants:
- name: TENANT1
l3outs:
- name: 'APP1-L3out'
description: Interface for APP1
vrf: VRF1
domain: DOMAIN1
node_profiles:
- name: 'APP1-NodeProf'
nodes:
- node_id: 1001
router_id: 10.1.1.1
router_id_as_loopback: false
static_routes:
- prefix: 2001:db8:1234:1000::/64
next_hops:
- ip: 2001:db8:1234:2000::10
- prefix: 192.168.1.0/24
next_hops:
- ip: 192.168.2.10
- node_id: 1002
router_id: 10.1.1.2
router_id_as_loopback: false
static_routes:
- prefix: 192.168.1.0/24
next_hops:
- ip: 192.168.2.10
- prefix: 2001:db8:1234:1000::/64
next_hops:
- ip: 2001:db8:1234:2000::10
interface_profiles:
- name: 'APP1-IPv6-IntProf'
description: IPv6 Interface Profile for APP1
interfaces:
- node_id: 1001
port: 10
ip: 2001:db8:1234:2000::1/64
svi: true
vlan: 100
ip_shared: 2001:db8:1234:2000::3/64
- node_id: 1002
port: 10
ip: 2001:db8:1234:2000::2/64
svi: true
vlan: 100
ip_shared: 2001:db8:1234:2000::3/64
- name: 'APP1-IPv4-IntProf'
description: IPv4 Interface Profile for APP1
interfaces:
- node_id: 1001
port: 10
ip: 192.168.2.1/24
svi: true
vlan: 100
ip_shared: 192.168.2.3/24
- node_id: 1002
port: 10
ip: 192.168.2.2/24
svi: true
vlan: 100
ip_shared: 192.168.2.3/24
external_endpoint_groups:
- name: 'APP1-ExtEPG'
subnets:
- prefix: 2001:db8:1234:1000::/64
- prefix: 192.168.1.0/24

example: In this example, BGP is used as dynamic routing protocol. The BGP parameters are configured as follows: BGP remote-as ‘65530’, IPv6 neighbor address ‘2001:db8:1234:2000::10’, IPv4 neighbor address ‘192.168.2.10’, bfd is enabled with the policy ‘BFD-Policy’. ACI advertises default route ’::/0’ and ‘0.0.0.0/0’ to the BGP neighbor and is assumed to receive ‘2001:db8:1234:1000::/64’ and ‘192.168.1.0/24’ from it.

apic:
tenants:
- name: TENANT1
l3outs:
- name: 'APP1-L3out'
description: Interface for APP1
vrf: VRF1
domain: DOMAIN1
node_profiles:
- name: 'APP1-NodeProf'
nodes:
- node_id: 1001
router_id: 10.1.1.1
router_id_as_loopback: false
- node_id: 1002
router_id: 10.1.1.2
router_id_as_loopback: false
interface_profiles:
- name: 'APP1-IPv6-IntProf'
description: IPv6 Interface Profile for APP1
bfd_policy: BFD-Policy
interfaces:
- node_id: 1001
port: 10
ip: 2001:db8:1234:2000::1/64
svi: true
vlan: 100
bgp_peers:
- ip: 2001:db8:1234:2000::10
remote_as: 65530
description: BGP Peer for APP1
bfd: true
multicast_address_family: false
- node_id: 1002
port: 10
ip: 2001:db8:1234:2000::2/64
svi: true
vlan: 100
bgp_peers:
- ip: 2001:db8:1234:2000::10
remote_as: 65530
description: BGP Peer for APP1
bfd: true
multicast_address_family: false
- name: 'APP1-IPv4-IntProf'
description: IPv4 Interface Profile for APP1
interfaces:
- node_id: 1001
port: 10
ip: 192.168.2.1/24
svi: true
vlan: 100
bgp_peers:
- ip: 192.168.2.10
remote_as: 65530
description: BGP Peer for APP1
bfd: true
multicast_address_family: false
- node_id: 1002
port: 10
ip: 192.168.2.2/24
svi: true
vlan: 100
bgp_peers:
- ip: 192.168.2.10
remote_as: 65530
description: BGP Peer for APP1
bfd: true
multicast_address_family: false
external_endpoint_groups:
- name: 'APP1-ExtEPG'
subnets:
- prefix: 2001:db8:1234:1000::/64
- prefix: 192.168.1.0/24
- prefix: ::/0
export_route_control: true
import_security: false
- prefix: 0.0.0.0/0
export_route_control: true
import_security: false