GuidesHow ToEVPN TopologySite EVPN

IP Clos Topology

Create and manage a Campus Fabric IP Clos EVPN Topology

Build the topology

Use the Create Site EVPN Topology resource to create the EVPN Topology at the Site level.

{
  "name": "evpn_one",
  "evpn_options": {
    "overlay": {
      "as": 65000
    },
    "core_as_border": true,
    "auto_loopback_subnet": "172.16.192.0/24",
    "underlay": {
      "as_base": 65001,
      "use_ipv6": false,
      "subnet": "10.255.240.0/20"
    }
  },
  "pod_names": {
    "1": "Pod 1"
  },
  "switches": [
    {
      "mac": "020004000000",
      "role": "core"
    },
    {
      "mac": "020004000001",
      "role": "core"
    },
    {
      "mac": "020004000002",
      "role": "distribution",
      "pod": 1
    },
    {
      "mac": "020004000003",
      "role": "distribution",
      "pod": 1
    },
    {
      "mac": "020004000004",
      "role": "access",
      "pod": 1
    },
    {
      "mac": "020004000005",
      "role": "access",
      "pod": 1
    }
  ]
}

Update the network template

Update the site settings with Update Site Settings API Call to define:

  • the Virtual Network Identifiers that will be used in the topology in the networks object, with
    • the Virtual Network Identifier in vlan_id
    • the Virtual Network Subnet in subnet
  • the VRF instances with
    • the networks belonging to the VRF instance
    • (optional) the additional routes
  • the port usages that will be assigned to the switches:
    • x-esilag (the name can be changed) will be used to configure the ESI-LAG links between the Core and Distribution switches
    • (optional) the access port profiles
{
  "networks": {
    "vlan1099": {
      "vlan_id": 1099,
      "subnet": "10.99.99.0/24"
    },
    "vlan1088": {
      "vlan_id": 1088,
      "subnet": "10.88.88.0/24"
    },
    "vlan1033": {
      "vlan_id": 1033,
      "subnet": "10.33.33.0/24"
    }
  },
  "vrf_instances": {
    "customera": {
      "networks": [
        "vlan1099"
      ],
      "extra_routes": {
        "0.0.0.0/0": {
          "via": "10.99.99.254"
        }
      }
    },
    "customerb": {
      "networks": [
        "vlan1088"
      ],
      "extra_routes": {
        "0.0.0.0/0": {
          "via": "10.88.88.254"
        }
      }
    },
    "devices": {
      "networks": [
        "vlan1033"
      ],
      "extra_routes": {
        "0.0.0.0/0": {
          "via": "10.33.33.254"
        }
      }
    }
  },
  "port_usages": {
    "l2fabricexit": {
      "mode": "trunk",
      "all_networks": false,
      "networks": [
        "vlan1099",
        "vlan1088",
        "vlan1033"
      ],
      "mtu": "9018"
    },
    "vlan1099": {
      "mode": "access",
      "port_network": "vlan1099"
    },
    "vlan1088": {
      "mode": "access",
      "port_network": "vlan1088"
    },
    "vlan1033": {
      "mode": "access",
      "port_network": "vlan1033"
    }
  }
}

Update the device port configs

Update the Switches with the Update Site Device API Call to configure the port_usages and assign the corresponding profile to the ports you have used (or plan to use) to inter-connect the switches by assigning them the evpn_uplink or evpn_downlink profiles:

⚠️ When defining the port_config with the evpn_uplink or evpn_downlink usages, the interfaces in the interface range must be ordered based on the remote switch MAC Address with the lower MAC Address first

Core Switches

  • Switch name
  • Switch port_config:
    • Links to the Distribution layer configured with usage=evpn_downlink
    • (optional) Links the border gateway with an ESI-LAG link
{
  "name": "core-01",
  "port_config": {
    "ge-0/0/0": {
      "usage": "l2fabricexit",
      "aggregated": true,
      "esilag": true,
      "ae_idx": 0
    },
    "ge-0/0/2,ge-0/0/1": {
      "usage": "evpn_downlink"
    }
  }
}

Distribution Switches

  • Switch name
  • Switch port_config:
    • Links to the Core layer configured with usage=evpn_uplink
    • Links to the Access layer configured with usage=evpn_downlink
{
  "name": "distri-01",
  "port_config": {
    "ge-0/0/0,ge-0/0/1": {
      "usage": "evpn_uplink"
    },
    "ge-0/0/2,ge-0/0/3": {
      "usage": "evpn_downlink"
    }
  }
}

Access Switches

  • Switch name
  • Switch port_config:
    • Links to the Distribution layer configured with usage=evpn_uplink
    • Access port switches based on your requirements
  • Switch other_ip_configs:
    • Configure a static IP Address for each network. The IP Addresses must be the same across each Access Switches.
  • Switch vrf_config with enabled=true
{
  "name": "access-01",
  "port_config": {
    "ge-0/0/2,ge-0/0/1": {
      "usage": "evpn_uplink"
    },
    "ge-0/0/3": {
      "usage": "vlan1088"
    }
  },
  "other_ip_configs": {
    "vlan1099": {
      "type": "static",
      "ip": "10.99.99.1",
      "netmask": "255.255.255.0",
      "evpn_anycast": true
    },
    "vlan1088": {
      "type": "static",
      "ip": "10.88.88.1",
      "netmask": "255.255.255.0",
      "evpn_anycast": true
    },
    "vlan1033": {
      "type": "static",
      "ip": "10.33.33.1",
      "netmask": "255.255.255.0",
      "evpn_anycast": true
    }
  },
  "vrf_config": {
    "enabled": true
  }
}

On this page