I'm having Juniper MX204 and the goal is to separate existing running IP routing and MPLS domain. So, I created new virtual-router then configured MPLS under routing-instance. Since MPLS is up on a non-default instance, I am seeking idea/advice about how can we bind a VPLS instance with this virtual-router?
I suggest You don't go along this path (separate routing-instances just for MPLS).
The reasons are:
1/ All MPLS protocols also rely on IGP (except static MPLS LSP) so You are looking at another IGP inside Your "MPLS routing instances"
2/ routing-instances do not provide 100% separation since they share the common Routing Protocol Daemon process
3/ only LDP is supported inside JUNOS routing instances so no traffic engineering of any sort.
4/ if You plan to run IP internet access/peering service in Your network, then all routers must have full IP routing tables for optimal routing, so no BGP-free core is possible.
The current best practice is to run MPLS transport for all services including IP internet access, making use of BGP-free core which then could be built on low-latency boxes.
Thanks for your explanation. If this is not a recommended solution, do you have any idea or comment if I go with Logical System?
As I said earlier, the best current practice is to run services over MPLS PE-to-PE + BGP-free core.
But if You are really brave then You could try services (incl IPv4) over MPLS transport with IPv6-only control plane.
If You want to go with JUNOS Logical Systems then it is slightly better than routing instances but:
1/ You could run into some JUNOS features not supported inside LS
2/ if later You'd need to interconnect IP Logical System with MPLS Logical System for whatever reason, then You need to account for JUNOS BGP AS_PATH loop detection I described here https://forums.juniper.net/t5/Routing/different-autonomous-system-number-for-each-routing-instance/m-p/482445#M22439
Thanks and appreciated for your input.