IS-IS is used for the underlay. The 2 CEs are Cisco vIOS switches with VLAN 2222 and OSPF configured on them.
https://www.cisco.com/c/en/us/td/docs/routers/ios/config/17-x/mpls/b-mpls/m-evpn-over-mpls.html
PE1
hostname pe1
mpls label protocol ldp
l2vpn evpn
replication-type ingress
mpls label mode per-ce
router-id Loopback0
l2vpn evpn instance 1 vlan-based
route-target export 65200:1
route-target import 65200:1
no auto-route-target
bridge-domain 1
member GigabitEthernet2 service-instance 1
member evpn-instance 1
interface Loopback0
ip address 5.5.5.5 255.255.255.255
ip router isis 1
interface GigabitEthernet1
ip address 1.1.1.1 255.255.255.252
ip router isis 1
mpls ip
interface GigabitEthernet2
no ip address
service instance 1 ethernet
encapsulation dot1q 2222
router isis 1
net 49.0000.5555.5555.5555.00
router bgp 65200
bgp router-id 5.5.5.5
bgp log-neighbor-changes
neighbor 9.9.9.9 remote-as 65200
neighbor 9.9.9.9 update-source Loopback0
address-family ipv4
neighbor 9.9.9.9 activate
exit-address-family
address-family l2vpn evpn
neighbor 9.9.9.9 activate
neighbor 9.9.9.9 send-community both
exit-address-family
P1
hostname p1
mpls label protocol ldp
interface Loopback0
ip address 6.6.6.6 255.255.255.255
ip router isis 1
interface GigabitEthernet1
ip address 1.1.1.2 255.255.255.252
ip router isis 1
mpls ip
interface GigabitEthernet2
ip address 2.2.2.1 255.255.255.252
ip router isis 1
mpls ip
router isis 1
net 49.0000.6666.6666.6666.00
P2
hostname p2
mpls label protocol ldp
interface Loopback0
ip address 7.7.7.7 255.255.255.255
ip router isis 1
interface GigabitEthernet1
ip address 2.2.2.2 255.255.255.252
ip router isis 1
mpls ip
interface GigabitEthernet2
ip address 3.3.3.1 255.255.255.252
ip router isis 1
mpls ip
router isis 1
net 49.0000.7777.7777.7777.00
P3
hostname p3
mpls label protocol ldp
interface Loopback0
ip address 8.8.8.8 255.255.255.255
ip router isis 1
interface GigabitEthernet1
ip address 3.3.3.2 255.255.255.252
ip router isis 1
mpls ip
interface GigabitEthernet2
ip address 4.4.4.1 255.255.255.252
ip router isis 1
mpls ip
router isis 1
net 49.0000.8888.8888.8888.00
PE2
hostname pe2
mpls label protocol ldp
l2vpn evpn
replication-type ingress
mpls label mode per-ce
router-id Loopback0
l2vpn evpn instance 1 vlan-based
route-target export 65200:1
route-target import 65200:1
no auto-route-target
bridge-domain 1
member GigabitEthernet2 service-instance 1
member evpn-instance 1
interface Loopback0
ip address 9.9.9.9 255.255.255.255
ip router isis 1
interface GigabitEthernet1
ip address 4.4.4.2 255.255.255.252
ip router isis 1
mpls ip
interface GigabitEthernet2
no ip address
service instance 1 ethernet
encapsulation dot1q 2222
router isis 1
net 49.0000.9999.9999.9999.00
router bgp 65200
bgp router-id 9.9.9.9
bgp log-neighbor-changes
neighbor 5.5.5.5 remote-as 65200
neighbor 5.5.5.5 update-source Loopback0
address-family ipv4
neighbor 5.5.5.5 activate
exit-address-family
address-family l2vpn evpn
neighbor 5.5.5.5 activate
neighbor 5.5.5.5 send-community both
exit-address-family
OSPF will now be up between the 2 CEs and MAC addresses being learnt on the 2 PE devices.