Skip to content

Bridge Domain Interconnect#

Virtual Networks → BDBridge Domain Interconnects

Virtualized services like BridgeDomains for layer-2 connectivity and Routers for layer-3 connectivity can be distributed using EVPN, allowing hosts connected to different (sets of) network switches to communicate with each other as if they were in the same location.

For scaling reasons, it may be required to divide the network into multiple EVPN domains, which are "stitched" together at the edges, via a datacenter interconnect domain. That's where the BridgeDomainInterconnect resource comes in, which makes the BridgeDomain available to multiple EVPN domains.

These domains may even use different transport tunnel protocols: for example, VxLAN in the first datacenter, MPLS in the WAN, and then VxLAN again in the second datacenter.

Note

The BridgeDomainInterconnect is connected to a single BridgeDomain resource. Multiple BridgeDomains cannot be stitched together with the BridgeDomainInterconnect resource.

Bridge domain interconnect diagram

VxLAN to VxLAN stitching#

When stitching an EVPN VxLAN domain to another - different - EVPN VxLAN domain, it is important that the BridgeDomainInterconnect uses a different VNI than the service that is being stretched over multiple datacenters, as choosing the same VNI could potentially lead to routing loops.

VxLAN to MPLS stitching#

Service traffic transported over VxLAN tunnels is encapsulated in an IP packet, which makes IP connectivity between the service endpoints the only requirement (alongside the ability to encapsulate and decapsulate the packets).

For MPLS transport tunnels, labels need to be exchanged between service endpoints (and all switches in between) as packets are label-switched instead of IP-routed. Check out the MPLS app for more details.

Dependencies#

TopoNode#

To identify which nodes in the network will serve as stitching points (usually the datacenter gateways), the BridgeDomainInterconnect resource must select a set of nodes.

Nodes can be selected explicitly via the nodes property, or through label assignment via the nodeSelectors property.

BridgeDomain#

The BridgeDomainInterconnect resource allows a BridgeDomain to be distributed across multiple EVPN domains. The BridgeDomain resource must exist before the BridgeDomainInterconnect resource can be created.

Referenced resources#

Policy#

As an alternative to import and export route targets, dedicated routing policies may be used to determine which routes are exchanged to and from the datacenter interconnect domain.

IndexAllocationPool#

On some operating systems, the VxLAN tunnel interface is configured as a subinterface of a VxLAN interface. This subinterface requires an ID that is unique on the node (locally significant only).

If the interconnect BGP instance is using VxLAN transport tunnels, the vxlan.tunnelIndexPool property must be specified.

Examples#

apiVersion: services.eda.nokia.com/v2
kind: BridgeDomainInterconnect
metadata:
  name: stretched-l2-interconnect
  namespace: services
spec:
  bridgeDomainRef:
    name: stretched-l2
  interconnectBGPInstance:
    controlPlane: EVPN
    encapsulation: VXLAN
    exportTarget: target:230:230
    importTarget: target:230:230
    vxlan:
      tunnelIndexPool: tunnel-index-pool
      vni: 222
    mpls: {}
  nodeSelectors:
    - eda.nokia.com/role = dcgw
cat << 'EOF' | kubectl apply -f -
apiVersion: services.eda.nokia.com/v2
kind: BridgeDomainInterconnect
metadata:
  name: stretched-l2-interconnect
  namespace: services
spec:
  bridgeDomainRef:
    name: stretched-l2
  interconnectBGPInstance:
    controlPlane: EVPN
    encapsulation: VXLAN
    exportTarget: target:230:230
    importTarget: target:230:230
    vxlan:
      tunnelIndexPool: tunnel-index-pool
      vni: 222
    mpls: {}
  nodeSelectors:
    - eda.nokia.com/role = dcgw

EOF

Custom Resource Definition#

To browse the Custom Resource Definition go to crd.eda.dev.

BridgeDomainInterconnect

services.eda.nokia.com / v2

SPEC

BridgeDomainInterconnectSpec defines the desired state of BridgeDomainInterconnect

  • #
  • #
  • #
  • #
  • #

STATUS

BridgeDomainInterconnectStatus defines the observed state of BridgeDomainInterconnect

  • #
  • #
  • #
  • #
  • #