Hello,
I could really use a fresh pair of eyes (and a few brain cycles!) to help troubleshoot a challenging issue I'm facing with LDP and Juniper MX routers in a mixed MPLS environment.
Topology Overview:
Core: I have an MPLS core spanning three locations (Location 1, 2, and 3), with two Juniper MX routers each at Locations 1 and 2, and one MX at Location 3.
- MPLS Core: Runs OSPF-TE and RSVP-TE between all core Juniper routers - everything works fine here.
- New Sites: Recently added Location 4 and Location 5, which do not use Juniper gear. These devices support MPLS but only via LDP.
- LDP is established between the new location and their respective adjacent sites running Juniper router via OSPF – and this part works as expected.
Problem: I now need to establish VPLS between the new LDP-only sites (Location 4 and 5). My initial plan was to let LDP ride through the RSVP-TE Juniper core. However, it seems this isn't working as expected.
- LDP neighbors are seen, but sessions remain in either Connecting state, stuck at Connection Opening or in Nonexistent state.
- Loopback interfaces between Juniper routers have only OSPF and RSVP routes - no LDP label binding between them.
- As a result, the LDP-capable devices at Locations 4 and 5 can't transit the Juniper core to reach each other.
I suspect I may be missing a config option on the Juniper side to allow LDP transit through RSVP-TE tunnels, or perhaps the architecture needs rethinking (e.g., switching the core to LDP but if I can avoid for now, I would love to).
Below is a sanitized snippet of the relevant Juniper configuration (in the below example ae0 faces the other Juniper router I am trying to connect to). All core routers are configured with consitent configurations.
If anyone has run into something similar or has suggestions on how to get LDP transit working through RSVP LSPs - I'd be truly grateful for your input. Thanks in advance for lending your expertise!
Thanks!
# Loopback
Location1-A> show configuration interfaces lo0
unit 0 {
family inet {
filter {
input protect_re;
}
address 10.20.192.239/32;
}
}
# Interface
Location1-A> show configuration interfaces ae0
description "Core: Location2-A";
mtu 9192;
aggregated-ether-options {
minimum-links 1;
lacp {
active;
}
}
unit 0 {
family inet {
address 10.20.192.8/31;
}
family mpls;
}
# LDP
cr02OBE001> show configuration protocols ldp
transport-address 10.20.192.239;
interface xe-0/1/0.0;
interface xe-2/3/1.0;
interface ae0.0;
interface lo0.0;
# RSVP
Location1-A> show configuration protocols rsvp
interface ae0.0 {
reliable;
}
interface lo0.0;
interface xe-2/1/3.0 {
reliable;
link-protection;
}
interface xe-0/1/0.0 {
reliable;
link-protection;
}
# MPLS
Location1-A> show configuration protocols mpls
no-propagate-ttl;
label-switched-path Location2-A-to-Location1-A {
to 10.20.192.248;
ldp-tunneling;
optimize-timer 43200;
link-protection;
inter-domain;
adaptive;
primary pri-to-Location2-A;
secondary sec-to-Location2-A {
standby;
}
}
label-switched-path Location1-A-to-Location2-B {
to 10.20.192.249;
ldp-tunneling;
optimize-timer 43200;
link-protection;
adaptive;
primary pri-to-Location2-B;
secondary sec-to-Location2-B {
standby;
}
}
path pri-to-Location2-A {
10.20.192.248 strict;
}
path sec-to-Location2-A {
10.20.192.254 strict;
10.20.192.249 strict;
}
path pri-to-Location2-B {
10.20.192.248 strict;
10.20.192.249 strict;
}
path sec-to-Location2-B {
10.20.192.248 loose;
}
interface lo0.0;
interface ae0.0;
interface xe-2/1/3.0;
interface xe-0/1/0.0;
interface xe-2/3/1.0;
LDP Session
Location1-A> show ldp session
Address State Connection Hold time Adv. Mode
10.20.192.248 Nonexistent Closed 0 DU
Route to Loopback on the other side
Location1-A> show route 10.20.192.248
inet.0: 998369 destinations, 3558487 routes (998367 active, 0 holddown, 9 hidden)
+ = Active Route, - = Last Active, * = Both
10.20.192.248/32 *[OSPF/10] 14:01:47, metric 45
> to 10.20.192.9 via ae0.0
inet.3: 37 destinations, 39 routes (11 active, 0 holddown, 28 hidden)
+ = Active Route, - = Last Active, * = Both
10.20.192.248/32 *[RSVP/7/1] 14:01:44, metric 45
> to 10.20.192.9 via ae0.0, label-switched-path Location2-A-to-Location1-A