MPLS 6PE uses two labels in the data plane

When implementing MPLS in an IPv6 environment, 6PE ιs used to run IPv6 over an IPv4-only MPLS core where we use dual stack PE routers. In such a scenario, even though there is no VRF in use, 6PE still uses a second label.

This is because the top label is the transport label, which is assigned hop-by-hop by LDP or by MPLS traffic engineering (TE).

The bottom label is the label assigned by BGP and advertised by iBGP between the Provider Edge (PE) routers.

When 6PE was released, a main requirement was that none of the MPLS core routers (the P routers) had to be IPv6-aware. That requirement drove the need for two labels in the data plane.

More information can be found in the links below:

https://www.cisco.com/c/en/us/support/docs/multiprotocol-label-switching-mpls/mpls/116061-qa-6pe-00.html

https://networklessons.com/cisco/ccie-routing-switching-written/ipv6-over-mpls-6pe-6vpe#6PE

https://forum.networklessons.com/t/ipv6-over-mpls-6pe-6vpe/3118/13