String[Regex: ^[a-f0-9]{1}.[a-f0-9]{1}.[a-f0-9]{1}$] or String[Regex: ^[a-f0-9]{4}.[a-f0-9]{4}.[a-f0-9]{4}$] or String[Regex: ^[a-f0-9]{2}:[a-f0-9]{2}:[a-f0-9]{2}:[a-f0-9]{2}:[a-f0-9]{2}:[a-f0-9]{2}$] or String[Regex: ^[a-f0-9]{2}-[a-f0-9]{2}-[a-f0-9]{2}-[a-f0-9]{2}-[a-f0-9]{2}-[a-f0-9]{2}$]
To manage an MSD Fabric, you need to follow this process:
Step 1 - Create your child fabrics. In this example, we have four (4) childs fabrics:
nac-ndfc1
nac-ndfc2
nac-ndfc3
nac-isn
Each fabric has their own data source under host_vars.
host_vars directories
❯tree-L1host_vars
host_vars
├──nac-isn
├──nac-msd
├──nac-ndfc1
├──nac-ndfc2
└──nac-ndfc3
inventory.yaml
❯ cat inventory.yaml
---
all:
children:
ndfc:
hosts:
nac-isn:
ansible_host: 10.x.x.x
nac-msd:
ansible_host: 10.x.x.x
nac-ndfc1:
ansible_host: 10.x.x.x
nac-ndfc2:
ansible_host: 10.x.x.x
nac-ndfc3:
ansible_host: 10.x.x.x
Step 2 - Create the MSD fabric, which includes child fabrics.
MSD Example
In this example, we have a fabric named MSD. In this MSD fabric, all fabrics use the same anycast gateway mac: DE:AD:BE:EF:FE:ED. The loopback ID used for the Anycast IP configured on each Border Gateway is: 100 and the subnet used to allocate an IP is: 10.10.0.0/24.
This configuration uses external ISN devices as the Route Server. In this configuration there are four (4) IP addresses:
100.64.0.1
100.64.0.2
100.64.0.3
100.64.0.4
Each IP will be associated to an Autonomous System (ASN), which can be different for each Route Server. In this example, all Route Servers will use the ASN 65000.100. When underlay_autoconfig is true, you need to provide a subnet for the DCI point-to-point (p2p) connection(s). Here we used the subnet 10.10.1.0/24. Each p2p will used CIDR /30.
The value in bgp_asn should between double quotes. Example:
global:
bgp_asn: "6512"
global:
bgp_asn: "65000.1"
global.nac.yaml
---
vxlan:
fabric:
name: MSD
type: MSD
multisite:
child_fabrics:
- name: nac-ndfc1
- name: nac-ndfc2
- name: nac-ndfc3
- name: nac-isn
anycast_gateway_mac: de:ad:be:ef:fe:ed
bgw_ip_tag: 54321
vtep_loopback_id: 100
ipv4_vtep_loopback_range: 10.10.0.0/24
overlay_dci:
underlay_autoconfig: true
deployment_method: 'Centralized_To_Route_Server'
ipv4_dci_subnet_range: 10.10.1.0/24
ipv4_dci_subnet_mask: 30
route_server:
peers:
- ip_address: 100.64.0.1
bgp_asn: "65000.100"# Use quotes
- ip_address: 100.64.0.2
bgp_asn: "65000.100"# Use quotes
- ip_address: 100.64.0.3
bgp_asn: "65000.100"# Use quotes
- ip_address: 100.64.0.4
bgp_asn: "65000.100"# Use quotes
redistribute_direct: false
ip_tag: 54321
enable_bgp_bfd: false
enable_bgp_log_neighbor_change: true
enable_bgp_send_community: true
enable_ebgp_password: false
enable_trm: false
delay_restore: 300
Starting with release 0.4.3, we are introducing a new key, vxlan.multisite.child_fabrics.bgw_anycast_vip_ipv4, which allows you to configure a custom Virtual IP (VIP) address or anycast IP for the Border Gateway. This key is utilized only when vxlan.underlay.general.manual_underlay_allocation is set to True for at least one child fabric.
---
vxlan:
fabric:
name: MSD
type: MSD
multisite:
child_fabrics:
- name: nac-ndfc1
bgw_anycast_vip_ipv4: 100.66.1.1
- name: nac-ndfc2
bgw_anycast_vip_ipv4: 100.66.1.2
- name: nac-ndfc3
bgw_anycast_vip_ipv4: 100.66.1.3
- name: nac-isn
ISN Example
This fabric named nac-isn, uses a fabric type: ISN. Here, we must configure an ASN. In addition we can add a range of vlan for sub-interface.