Pentium,
Think of logical routers as a super-set of a virtual router. ie: You can run routing-instances in each logical router.
In general, most tasks are efficiently handled by routing-instances (virtual routers) in JUNOS. However, LRs add a couple features:
note: both LR and routing-instances have exactly the same hardware separation at the data-plane, the difference is 100% control plane. Both LR and VR share the same FIB resources, so a LR will not help control scalability of the number of prefixes or next-hops in hardware.
LR offers:
- a separate copy of RPD, so if there is an issue in one LR, the RPD in another is not affected (process separation)
- CLI partition with user access control: a LR has a different hierarchy in the CLI, and you can restrict users to one or another
- MPLS core protocol separation requires an LR, not just a routing-instance. If you want one Juniper router to behave as two MPLS nodes (ie: separate P and PE functions between two routers), you will need logical routers
LR need-to-know:
- Logical routers are only supported on the M/T/MX series. You cannot use an LR in the J series. I'm also not sure if it's fully supported in the SRX series currently.
- JUNOS feature support in LRs versus the root routing instance is not 100%. There are some things that aren't supported in an LR context. Although this has been a strong focus of development recently, so the gap is narrowing with many releases
- JUNOS requires you to /purchase/ a logical-router right-to-use license per chassis.
* routing-instances are free in JUNOS, logical routers are /NOT/
Also, it's worth pointing out that earlier this year, Juniper renamed the "Logical Router" to the "Logical System" in JUNOS. It's the same feature, but the name has been expanded to support JUNOS devices that aren't necessarily "routers" (such as the EX series, SRX, etc).
Finally, there is a third form of system virtualization called the Hardware Logical Router, or "Protected System Domain". This is something that is only supported on the T series currently, and requires an external control plane chassis called the JCS, or "Juniper Control System". This allows for both data-plane and control-plane separation between logical routers, and also dedicates a separate routing-engine (CPU complex, route-processor) for each protected system domain (PSD). One of the biggest advantages of a PSD is that each PSD has its own scaling numbers, and is also a descrete maintenance domain. For instance, you can upgrade the version of JUNOS in one PSD, while the other PSDs remain unaffected (this includes updating the firmware on the associated linecards and PICs).
In terms of applications:
Simple routing-instances (virtual routers) are normally used for most tasks when you need to separate routing, such as MPLS L3VPN (private IP services), or simply mutiple route table support (what cisco calls VRF-lite, or Multi-VRF).
Logical routers are normally used when you are taking the functions of two descrete routers, and collapsing them into a single chassis. Think of a provider PoP where you may have one pair of routers for external peering, and another pair of routers for backbone connectivity to the provider's core network. In this case, you could leverage the Logical Router (aka: Logical System) support to make one instance of an internal core router and one instance of an edge peering router in the same chassis. The advantage is that they are still run as two separate processes and can have different user permissions.
#virtual-router#logical-system