Bridge Domain#
Virtual Networks → BDBridge Domains
A bridge or broadcast domain is a collection of hosts that can talk to each other using switched (layer 2) packets, rather than routed (layer 3) packets. A BridgeDomain resource is the EDA abstraction of a broadcast domain: it provides connectivity between hosts connected to two or more (sub-)interfaces.
One or more hosts can be connected to a BridgeDomain service through a sub-interface, which is the combination of a physical interface and a VLAN tag. In EDA, there are two objects that create sub-interfaces:
- The
BridgeInterfaceresource combines oneInterfacewith one VLAN tag and attaches it to a singleBridgeDomain - The
VLANresource combines a set ofInterfaceresources with one VLAN tag each, and attaches them to a singleBridgeDomain
To allow the hosts in a BridgeDomain to connect to other IP subnets (routed traffic), an IRBInterface can connect the BridgeDomain to a Router. The hosts will use the gateway IP configured on the IRBInterface as a next-hop for routed traffic.
BridgeDomain types#
A BridgeDomain is a virtual network service, and can be local-only or distributed over multiple nodes. There are 3 types of BridgeDomains:
Simple: creates a local-onlyBridgeDomainservice, where connectivity is enabled only between physical interfaces on the node where the service is configured.EVPNVXLAN: creates a distributedBridgeDomainservice, where connectivity between local and remotely attached interfaces is encapsulated in an EVPN service tunnel over a VxLAN transport tunnel.EVPNMPLS: creates a distributedBridgeDomainservice, where connectivity between local and remotely attached interfaces is encapsulated in an EVPN service tunnel over an MPLS transport tunnel.
Service tunnel requirements#
If the type of the BridgeDomain is either EVPNVXLAN or EVPNMPLS, EVPN routes must be exchanged via the underlay for the establishment of the service tunnels.
Transport tunnel requirements#
If the type of the BridgeDomain is EVPNVXLAN, IP reachability is required to all system IP addresses of the nodes that participate in the service (unless a BridgeDomainInterconnect is used).
If the type of the BridgeDomain is EVPNMPLS, label-switched transport tunnels must be established between all nodes that participate in the service (unless a BridgeDomainInterconnect is used).
EVIs and VNIs#
An Ethernet Virtual Instance or EVI is an EVPN concept, while a VxLAN Network Identifier (VNI) is a VxLAN concept. A thorough explanation of both protocols and related concepts is beyond the scope of this article, but it is worth talking about the assignment of these identifiers.
Both are integer numbers and are globally significant, meaning that all nodes must use the same values for the same service. To avoid accidentally assigning the same identifier to two different services, it is recommended to use the eviPool and encapOptions.vxlan.vniPool properties to let EDA take care of ensuring global uniqueness.
Note
Technically, the VNIs are only significant within an EVPN domain, and may be reused in different EVPN domains. However, due to the large number of VNIs available, it is recommended to use each VNI only once within your entire network.
If the BridgeDomain service is meant to inter-op with (existing) network elements that are not managed by EDA, consider using a static EVI (property evi) and VNI (property encapOptions.vxlan.vni) instead of a pool.
Dependencies#
The BridgeDomain is a purely administrative object, and has no required dependencies. Note that without other resources (such as BridgeInterfaces and VLANs) connected to it, the service will not be deployed anywhere.
Referenced resources#
IndexAllocationPool#
The EVI and VNI numbers can be allocated by EDA from an index allocation pool, which ensures that every index is only used once. For more information, check the EVIs and VNIs section of this article.
Examples#
cat << 'EOF' | kubectl apply -f -
apiVersion: services.eda.nokia.com/v2
kind: BridgeDomain
metadata:
name: stretched-l2
namespace: services
spec:
encapOptions:
vxlan:
tunnelIndexPool: tunnel-index-pool
vniPool: vni-pool
eviPool: evi-pool
macLearning:
agingTimeSeconds: 300
enabled: true
type: EVPNVXLAN
EOF
Custom Resource Definition#
To browse the Custom Resource Definition go to crd.eda.dev.
BridgeDomain
SPEC
The BridgeDomain enables the configuration and management of Layer 2 virtual networks. It includes settings for VNI, EVI, route targets for import and export, and tunnel index allocation. Additionally, the specification allows for advanced features such as MAC address table limits, aging, Proxy ARP and detection of MAC and IP duplication.
-
The name of the BridgeDomain to configure on the device.
-
The description of the BridgeDomain.
-
Encapsulation-specific options (such as MPLS tunneling options).
default: {"vxlan": {"tunnelIndexPool": "tunnel-index-pool", "vniPool": "vni-pool"}}-
VXLAN encapsulation options. Only applicable if VXLAN encapsulation is used (Type=EVPNVXLAN).
-
Reference to a tunnel index pool to use for allocations.
default: "tunnel-index-pool" -
VNI to use for this BridgeDomain, can be optionally left blank to have it allocated using the VNI Pool.
format: int32range: 1 to 16777215 -
Reference to a VNI pool to use for allocations if VNI is left blank.
default: "vni-pool"
-
-
EVI to use for this BridgeDomain, can be optionally left blank to have it automatically allocated using the EVI Pool.
format: int32range: 1 to 65535 -
Reference to an EVI pool to use for allocations if EVI is left blank.
default: "evi-pool" -
Export route target in 'target:N:N' format, if not specified, the default value taken as "target:1:<evi>".
-
Import route target in 'target:N:N' format, if not specified, the default value taken as "target:1:<evi>".
-
Enables / Disabled Proxy ARP / Proxy ND.
-
Configures dynamic learning of ARP/ND entries in the proxy table.
-
Aging timer value for the proxy entries in seconds. If not set, this indicates that the entries are never flushed.
format: int32range: 60 to 86400 -
Enables or disables Dynamic Learning.
default: false -
The interval determines the frequency at which the system generates three ARP Requests or Neighbor Solicitations with the intent to refresh the proxy entry. The refresh is sent within the age-time window.
format: int32range: 120 to 86400
-
-
Configures IP duplication detection and resolution mechanisms.
-
Enables or disables IP Duplication.
default: false -
Time to wait in minutes from the moment an IP is declared duplicate to the time the IP is removed from the proxy ARP/ND table.
default: 9format: int32range: 2 to 60 -
Monitoring window for detecting duplication on a given IP address in the proxy ARP/ND table.
default: 3format: int32range: 1 to 15 -
Number of moves in the proxy ARP/ND table that an IP is allowed within the monitoring-window.
default: 5format: int32range: 3 to 10
-
-
Maximum number of entries allowed in the proxy table of the bridge domain.
default: 250format: int32range: 1 to 8192 -
Enables proxy ARP.
default: false -
Enables proxy ND.
default: false
-
-
Enable or disable MAC duplication detection and resolution mechanisms.
-
Action to take on the subinterface upon detecting at least one mac addresses as duplicate on the subinterface.
default: "StopLearning"enum: "Blackhole", "OperDown", "StopLearning" -
Enables or disables Mac Duplication Detection.
default: false -
Time to wait in minutes from the moment a mac is declared duplicate to the mac is flushed from the bridge table.
default: 9format: int32range: 2 to 60 -
Monitoring window in minutes for detecting duplication on a given mac address.
default: 3format: int32range: 1 to 15 -
Number of moves a mac is allowed within the monitoring-window, before it is declared duplicate.
default: 5format: int64range: >= 3
-
-
Sets the maximum number of MAC entries accepted in the bridge table.
format: int64range: >= 1 -
Select the type of BridgeDomain. Simple doesn't include any overlay control plane or dataplane properties (EVPN/VXLAN). EVPNVXLAN includes the properties needed to provision this BridgeDomain over an IP Fabric.
default: "EVPNVXLAN"enum: "Simple", "EVPNVXLAN", "EVPNMPLS"
STATUS
BridgeDomainStatus defines the observed state of BridgeDomain
-
EVI in use for this bridge domain.
format: int64 -
Export route target for this bridge domain.
-
Indicates the health score of the VNET.
format: int32range: <= 100 -
Indicates the reason for the health score.
-
Import route target for this bridge domain.
-
The time when the state of the resource last changed.
-
Nodes which have the BridgeDomain configured (min 1 sub-interface).
-
Number of nodes which have the BridgeDomain configured (min 1 sub-interface).
format: int64 -
Number of sub-interfaces attached to the BridgeDomain.
format: int64 -
Number of oper-down sub-interfaces attached to the BridgeDomain.
format: int64 -
Operational state of the VNET.
enum: "Up", "Down", "Degraded", "Unknown" -
Vxlan tunnel index in use.
format: int64 -
VNI in use for this bridge domain.
format: int64
