Type 2 routes are used to advertise MAC addresses and IP addresses that might be associated with aforementioned MAC addresses.
In order to advertise Type 2 routes, PE needs to learn MAC addresses from the directly attached CEs. This is done via normal data-plane learning mechanisms. RFC 7432 also allows for MAC address learning via control plane interaction between PE and CE, although we have not see this implemented by any vendors.
Type 2 route format is shown below. Route Distinguisher, ESI, Ethernet TAG ID and MAC information are mandatory.
IP Address field is optional and is set to zero by default. This field might be populated if PE is aware of an IP address associated with a given MAC address. This is used in proxy ARP scenarios, where remote PE will respond to an ARP request received from a CE attached to that PE.
MPLS Label1 field is mandatory downstream-assigned Label associated with the MAC address being advertised by a PE. This label is used to forward packets toward the CE.
RFC 7432 specifies four label assignment mechanisms:
Assignment Mechanism | Description |
MAC-VRF | Single EVPN label for all MAC addresses in a given MAC-VRF |
MAC-VRF, Ethernet tag | Unique EVPN label per <MAC-VRF, Ethernet tag> combination
|
ESI, Ethernet tag | Unique EVPN label per <ESI, Ethernet tag> combination |
MAC | Unique EVPN label per MAC address |
Please refer to EVPN Terminology document if you are not familiar with above terms.
Let’s review Type 2 advertisements originated by PE5 for CE4 site in the following topology:
PE5’s configuration for CE4 site in Juniper format:
interfaces { ge-0/0/1 { description CE4; flexible-vlan-tagging; encapsulation flexible-ethernet-services; unit 100 { encapsulation vlan-bridge; vlan-id 100; } } } routing-instances { BD100 { instance-type evpn; vlan-id 100; interface ge-0/0/1.100; interface ge-0/0/2.100; route-distinguisher 120.0.2.5:100; vrf-target target:100:100; protocols { evpn; } } }
The following Wireshark capture demonstrates PE5’s advertisement of CE4’s MAC address:
Path Attribute - MP_REACH_NLRI Flags: 0x90, Optional, Length: Optional, Non-transitive, Complete, Extended Length Type Code: MP_REACH_NLRI (14) Length: 71 Address family identifier (AFI): Layer-2 VPN (25) Subsequent address family identifier (SAFI): EVPN (70) Next hop network address (4 bytes) Number of Subnetwork points of attachment (SNPA): 0 Network layer reachability information (62 bytes) … EVPN NLRI: MAC Advertisement Route AFI: MAC Advertisement Route (2) Length: 33 Route Distinguisher: 0001780002050064 (120.0.2.5:100) ESI: 00 00 00 00 00 00 00 00 00 ESI Type: ESI 9 bytes value (0) ESI 9 bytes value: 00 00 00 00 00 00 00 00 00 Ethernet Tag ID: 100 MAC Address Length: 48 MAC Address: 00:0c:29:82:c2:a9 IP Address Length: 0 IP Address: NOT INCLUDED MPLS Label Stack: 299776 (bottom)
Type 2 route as observed on PE5:
* 2:120.0.2.5:100::100::00:0c:29:82:c2:a9/304 MAC/IP (1 entry, 1 announced) BGP group IBGP-RR type Internal Route Distinguisher: 120.0.2.5:100 Route Label: 299776 ESI: 00:00:00:00:00:00:00:00:00:00 Nexthop: Self Flags: Nexthop Change Localpref: 100 AS path: [100] I Communities: target:100:100
Control Plane Wireshark capture can be downloaded from GitHub:
For more information on EVPN, please refer to our other articles on this topic:
Hi, I am trying to understand the usage of the route-type 2. If mac to IP mapping is optional then what is the use route-type 2. Can you please explain ?
EVPN is “Ethernet VPN”. The original intention, as I understand it, is to extend Ethernet segments. Thus, the IPv4/IPv6 address is optional, but the Ethernet MAC address is required. Without an Ethernet MAC the protocol isn’t providing Ethernet extension services.