Auto Configuration

Overview

Auto Config REST APIs can be used by an external application to programmatically manage the configuration profiles used to deploy organizations, partitions and networks in the DFA cluster.

Auto Config Database Schema

Organization

 

Attributes
Type
Require

organizationName

String

Mandatory

description

String

Optional

orchestrationSource

String

Optional

Partition

 

Attributes
Type
Require

partitionName

String

Mandatory

partitionSegmentId

String

Mandatory

description

String

Optional

serviceNodeIpAddress

String

Optional

organizationName

String

Mandatory

dnsServer

String

Optional

secondaryDNSServer

String

Optional

vrfProfileName

String

Mandatory

vrfName

String

Optional

dciId

String

Optional

configArg

String

Optional

Network

 

Attributes
Type
Require

organizationName

String

Mandatory

dvsId

String

Optional

staticIpStart

String

Optional

networkRole

String

Mandatory

gateway

String

Optional

netmaskLength

String

Optional

gatewayIpv6Address

String

Optional

prefixLength

String

Optional

secondaryGateway

String

Optional

staticIpEnd

String

Optional

vSwitchControllerNetworkId

String

Optional

networkName

String

Mandatory

segmentId

String

Mandatory

vlanId

String

Mandatory

mobilityDomainId

String

Mandatory

description

String

Optional

profileName

String

Mandatory

vSwitchControllerId

String

Optional

configArg

String

Optional

partitionName

String

Mandatory

dhcpScope

subnet

Optional

gateway

Optional

ipRange

Optional

vrfName

String

Optional

Profile

 

Attributes
Type
Require

forwardingMode

String

Mandatory

profileName

String

Mandatory

description

String

Optional

configCommands

String

Mandatory

profileType

String

Mandatory

profileSubType

String

Mandatory

Auto Config REST APIs

The Auto Config REST APIs are mentioned in Table 2-1 .

 

Table 2-1 Auto Config REST APIs

API Function
HTTP Method
Resource at URL https://dcnm-ip/rest/

List organizations

GET

/auto-config/organizations

Create an organization

POST

/auto-config/organizations

Get an organization

GET

/auto-config/organizations/{organization-name}

Update an organization

PUT

/auto-config/organizations/{organization-name}

Delete an organization

DELETE

/auto-config/organizations/{organization-name}

List partitions

GET

/auto-config/organizations/{organization-name}/partitions

Create a partition

POST

/auto-config/organizations/{organization-name}/partitions

Get a partition

GET

/auto-config/organizations/{organization-name}/partitions/{partition-name}

Update a partition

PUT

/auto-config/organizations/{organization-name}/partitions/{partition-name}

Delete a partition

DELETE

/auto-config/organizations/{organization-name}/partitions/{partition-name}

List networks

GET

/auto-config/organizations/{organization-name}/partitions/{partition-name}/networks

Create a network

POST

/auto-config/organizations/{organization-name}/partitions/{partition-name}/networks

Get a network

GET

/auto-config/organizations/{organization-name}/partitions/{partition-name}/networks/{network-id}

Update a network

PUT

/auto-config/organizations/{organization-name}/partitions/{partition-name}/networks/{network-id}

Delete a network

DELETE

/auto-config/organizations/{organization-name}/partitions/{partition-name}/networks/{network-id}

List Auto Configuration Profiles

GET

/rest/auto-config/profiles

Create a Auto Configuration profile

POST

/rest/auto-config/profiles

Get a Auto Configuration profile

GET

/rest/auto-config/profiles/{profile-name}

/rest/auto-config/profiles/{profile-name}/type/IPVLAN

/rest/auto-config/profiles/{profile-name}/type/FPBD

Update a Auto Configuration profile

PUT

/rest/auto-config/profiles/{profile-name}

/rest/auto-config/profiles/{profile-name}/type/IPVLAN

/rest/auto-config/profiles/{profile-name}/type/FPBD

Delete a Auto Configuration Profile

DELETE

/rest/auto-config/profiles/{profile-name}

/rest/auto-config/profiles/{profile-name}/type/IPVLAN

/rest/auto-config/profiles/{profile-name}/type/FPBD

Get auto config settings

GET

/auto-config/settings

Update auto config settings

PUT

/auto-config/settings

Configuration Profiles Construct

The Dynamic Fabric Automation (DFA) network auto-configuration requires the use of configuration profiles (config profiles) to instantiate the required network onto a leaf. Config-profile templates are parameterized templates that allow for the instantiation of specific network config-profiles. They are analogous to a class in object oriented terminology. The combination of a class object with specific parameters represents an instance of that object.

Currently DFA supports two types of templates (aka classes); org:partition config profile and the network config profile. The network config-profile can optionally “include” the org:partition config profile in order to create a composite object which is an organization network config-profile. Many network config-profiles may include the same partition config profile if many networks belong to the same organization. If a network config-profile does not include a partition by name, then it exists in the default organization.

config-profile <network profile name>
[include profile <partition profile name>]
end

Note config-profile + <parameters> org network config-profile instance.


Once a network config-profile instance is populated in DCNM, it can then be pulled dynamically by leafs to instantiate the network onto the leafs.

Typically, config-profiles will be defined by the network administrator. A config-profile has a ProfileName and set of parameterized commands associated with it. The parameters are stored in the LDAP database. The REST APIs, can be employed to programmatically create, read, delete, and update these profiles and parameters from external applications as documented in the section in Appendix B, “Auto Config Examples” .


Note The set of config-profiles created by one set of applications (Example; network administration applications) can further be made available to another set of applications (Example; compute/storage orchestration engines such as Openstack, UCS Director or any 3rd party applications) through the documented REST APIs.


Example 2:
The following is an example of a partition config-profile included by a network config-profile that can be used or created through the REST APIs.
 
config profile vrf-common
vrf context $vrfName
vni $include_l3_segid
rd auto
address-family ipv4 unicast
route-target import 111:222
route-target both auto
address-family ipv6 unicast
route-target import 111:222
route-target both auto
router bgp $asn
vrf $vrfName
address-family ipv4 unicast
redistribute hmm route-map FABRIC-RMAP-REDIST-HOST
redistribute direct route-map FABRIC-RMAP-REDIST-SUBNET
maximum-paths ibgp 2
address-family ipv6 unicast
redistribute hmm route-map FABRIC-RMAP-REDIST-HOST
redistribute direct route-map FABRIC-RMAP-REDIST-SUBNET
maximum-paths ibgp 2
end
 
config profile defaultNetworkIpv4EfProfile
vlan $vlanId
vn-segment $segmentId
mode fabricpath
interface vlan $vlanId
vrf member $vrfName
ip address $gatewayIpAddress/$netMaskLength
fabric forwarding mode proxy-gateway
no ip redirects
no shutdown
include profile vrf-common
end
 
When this config-profile is instantiated with specific parameters it may appear as follows:
 
vrf context Pepsi
vni 802004
rd auto
address-family ipv4 unicast
route-target import 111:222
route-target both auto
address-family ipv6 unicast
route-target import 111:222
route-target both auto
router bgp 100
vrf Pepsi
address-family ipv4 unicast
redistribute hmm route-map FABRIC-RMAP-REDIST-HOST
redistribute direct route-map FABRIC-RMAP-REDIST-SUBNET
maximum-paths ibgp 2
address-family ipv6 unicast
redistribute hmm route-map FABRIC-RMAP-REDIST-HOST
redistribute direct route-map FABRIC-RMAP-REDIST-SUBNET
maximum-paths ibgp 2
 
vlan 3000
vn-segment 11000
mode fabricpath
interface vlan 3000
vrf member Pepsi
ip address 1.1.1.254/24
fabric forwarding mode proxy-gateway
no ip redirects
no shutdown

Pre-Packaged Config-Profiles

To cover most of the common scenarios, the following table lists the set of config-profiles that will come pre-packaged into the DCNM profiles database.

 

Table 2-2 DCNM Pre-Packaged Config-Profiles

Profile Type
Profile Name
Forwarding Mode
Profile Description

Network

defaultNetworkIpv4EfProfile

proxy-gateway

Profile for an IPv4 enabled network segment in the non-default partition with DFA Enhanced Forwarding mode.

Network

defaultNetworkIpv4TfProfile

anycast-gateway

Profile for an IPv4 enabled network segment in the non-default partition with DFA Traditional Forwarding mode.

Network

defaultNetworkIpv6EfProfile

proxy-gateway

Profile for an IPv6 enabled network segment in the non-default partition with DFA Enhanced Forwarding mode.

Network

defaultNetworkIpv6TfProfile

anycast-gateway

Profile for an IPv6 enabled network segment in the non-default partition with DFA Traditional Forwarding mode.

Network

defaultNetworkIpv4v6EfProfile

proxy-gateway

Profile for an IPv4 and IPv6 enabled network segment in the non-default partition with DFA Enhanced Forwarding mode.

Network

defaultNetworkIpv4v6TfProfile

anycast-gateway

Profile for an IPv4 and IPv6 enabled network segment in the non-default partition with DFA Traditional Forwarding mode.

Network

defaultNetworkdefault PartitionIpv4EfProfile

proxy-gateway

Profile for an IPv4 enabled network segment in the non-default partition with an edge service node with DFA Enhanced Forwarding mode.

Network

defaultNetworkIpv4v6TfProfile

anycast-gateway

Profile for an IPv4 and IPv6 enabled network segment in the non-default partition with DFA Traditional Forwarding mode.

Network

defaultNetworkdefaultPartitionIpv4EfProfile

proxy-gateway

Profile for an IPv6 enabled network segment in the default partition with DFA Enhanced Forwarding mode.

Network

defaultNetworkdefaultPartitionIpv6TfProfile

anycast-gateway

Profile for an IPv6 enabled network segment in the default partition with DFA Traditional Forwarding mode.

Network

defaultNetworkdefaultPartitionIpv4v6EfProfile

proxy-gateway

Profile for an IPv4 and IPv6 enabled network segment in the default partition with DFA Enhanced Forwarding mode

Network

defaultNetworkdefaultPartitionIpv4v6TfProfile

anycast-gateway

Profile for an IPv4 and IPv6 enabled network segment in the default partition with DFA Traditional Forwarding mode.

Network

defaultNetworkL2GblVlanProfile

none

Profile for L2 network that is a global vlan

Network

defaultNetworkL2Profile

none

Profile for L2 network segment where DFA L3 routing is not enabled. Another node (service node or router) attached to a leaf node can do the routing as needed.

Network

defaultNetworkIpv4TfGblVlanProfile

anycast-gateway

Profile for a global vlan based IPv4 enabled network in the non-default partition with DFA Traditional Forwarding mode.

Network

defaultNetworkIpv6TfGblVlanProfile

anycast-gateway

Profile for a global vlan based IPv6 enabled network in the non-default partition with DFA Traditional Forwarding mode.

Network

defaultNetworkIpv4v6TfGblVlanProfile

anycast-gateway

Profile for a global vlan based IPv4 and IPv6 enabled network in the non-default partition with DFA Traditional Forwarding mode.

Network

defaultNetworkdefaultPartitionIpv4TfGblVlanProfile

anycast-gateway

Profile for a global vlan based IPv4 enabled network in the default partition with DFA Traditional Forwarding mode

Network

defaultNetworkdefaultPartitionIpv6TfGblVlanProfile

anycast-gateway

Profile for a global vlan based IPv6 enabled network in the default partition with DFA Traditional Forwarding mode.

Network

defaultNetworkdefaultPartitionIpv4v6TfGblVlanProfile

anycast-gateway

Profile for a global vlan based IPv4 and IPv6 enabled network in the default partition with DFA Traditional Forwarding mode

Network

defaultNetworkIpv4EfEdgeServiceProfile

Proxy-gateway

Profile for an IPv4 enabled network segment in the non-default partition with an edge service node in DFA enhanced forwarding mode.

Network

defaultNetworkIpv4TfEdgeServiceProfile

anycast-gateway

Profile for an IPv4 enabled network segment in the non-default partition with an edge service node with DFA Traditional forwarding mode.

Network

defaultNetworkIpv4v6EfEdgeServiceProfile

proxy-gateway

Profile for an IPv4 and IPv6 enabled network segment in the non-default partition with an edge service node with DFA Enhanced Forwarding mode.

Network

defaultNetworkIpv4v6TfEdgeServiceProfile

anycast-gateway

Profile for an IPv4 and IPv6 enabled network segment in the non-default partition with an edge service node with DFA Traditional forwarding mode.

Network

externalNetworkIpv4TfStaticRoutingProfile

anycast-gateway

Profile for an IPv4 enabled service network segment in the non-default external partition used for Edge service node with static routing in DFA traditional forwarding mode.

Network

serviceNetworkIpv4TfStaticRoutingProfile

anycast-gateway

Profile for an IPv4 enabled service network segment in the non-default partition used for service node interface with static routing in DFA traditional forwarding mode.

Network

serviceNetworkIpv4TfDynamicRoutingProfile

anycast-gateway

Profile for an IPv4 enabled service network segment in the non-default partition used for service node interface with dynamic routing in DFA traditional forwarding mode

Network

externalNetworkIpv4TfDynamicRoutingProfile

anycast-gateway

Profile for an IPv4 enabled service network segment in the non-default external partition used for Edge service node with dynamic routing in DFA traditional forwarding mode

Network

serviceNetworkIpv4TfL3VpathServiceNodeProfile

anycast-gateway

Profile for an IPv4 enabled vPath L3 mode service network segment used for vPath service nodes in DFA traditional forwarding mode

Network

serviceNetworkIpv4EfL3VpathServiceClassifierProfile

proxy-gateway

Profile for an IPv4 enabled vPath L3 mode service network segment used for service classifiers in DFA enhanced forwarding mode

Network

serviceNetworkL2VpathProfile

none

Profile for vPath L2 mode service network segment used for vPath service nodes

Network

serviceNetworkIpv4TfLBProfile

anycast-gateway

Profile for an IPv4 enabled service network segment in the non-default partition used for a Load Balancer service node in one-armed routed mode.

Network

defaultNetworkIpv4EfLBProfile

proxy-gateway

Profile for an IPv4 enabled network segment in DFA enhanced forwarding mode in the non-default partition that has a Load Balancer service node

Network

defaultNetworkIpv4TfLBProfile

anycast-gateway

Profile for an IPv4 enabled network segment in DFA traditional forwarding mode in the non-default partition that has a Load Balancer service node.

Network

serviceNetworkIpv4TfLBChainlLBESProfile

anycast-gateway

Profile for an IPv4 enabled service network segment in the non-default partition comprising a service chain with a Load Balancer (LB) and Tenant Edge Firewall both in routed mode with dynamic routing enabled. This service segment is used for the LB

Network

serviceNetworkIpv4TfEdgeServicesChainlLBESProfile

anycast-gateway

Profile for an IPv4 enabled service network segment in the non-default partition comprising a service chain with a Load Balancer (LB) and Tenant Edge Firewall both in routed mode with dynamic routing enabled. This service segment is used for the tenant edge firewall

Network

defaultNetworkIpv4EfChainLBESProfile

proxy-gateway

Profile for an IPv4 enabled network segment in DFA enhanced forwarding mode in the non-default partition comprising a service chain with a Load Balancer (LB) and Tenant Edge Firewall both in routed mode with dynamic routing enabled

Network

defaultNetworkIpv4TfChainLBESProfile

anycast-gateway

Profile for an IPv4 enabled network segment in DFA traditional forwarding mode in the non-default partition comprising a service chain with a Load Balancer (LB) and Tenant Edge Firewall both in routed mode with dynamic routing enabled

For information on the default configuration profiles in the DCNM DFA package, see Appendix A, “Pre-Packaged Config Profiles” .

For information on how to use the REST APIs for auto configuration, see Appendix B, “Auto Config Examples” .