MPLS, originally used for traffic engineering purposes in Service Provider networks is now being leveraged for provisioning Virtual Private Network (VPN) services. There are two main types of MPLS-based VPNs: Layer 3 MPLS VPNs, also known as BGP/MPLS VPNs where the interface between the customer and service provider networks is at the IP layer and Layer 2 MPLS VPNs where the service provider network carries customers’ layer-2 frames. The requirements, architectures, and protocols for these services are being defined by the IETF. In this tutorial, we will provide an overview of Layer 2 and Layer 3 MPLS based VPNs, describe how network and service discovery, route distribution, forwarding, and signaling functions are performed, and highlight the different approaches for implementing these functions where applicable.