-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
MPLS over GRE #3354
Comments
Hi @adam-kulagowski, I've managed to make L3VPN work over GRE using this test topology: https://gist.github.com/rwestphal/931f070240ffffebc2213f5d5fbefcb7 Here you can see the MPLS VPN label and the CE payload being carried in the GRE tunnel: The solution I found was to enable LDP on the GRE interfaces (and MPLS forwarding as well) and create a static route in each PE pointing to the other one through the GRE tunnel. This way LDP will advertise implicit-null labels to the PE loopback routes, and zebra will have labeled routes to the BGP nexthop of the VPNv4 routes, making them eligible to be installed in the kernel. One thing to keep in mind is that you need to specify a fixed TTL (e.g. 64) when creating the GRE interfaces, otherwise the GRE packets will inherit the TTL of the encapsulated packets. Since LDP sends multicast packets with a TTL of 1, the default TTL inheritance behavior prevents LDP from working over GRE tunnels. The only problem I see in this solution is that all traffic between the PEs goes through the GRE tunnels, and not only the VPN traffic as one might desire. But this should be fixable using a few PBR commands. Other possibility would be to change the FRR code as follows:
This however might be a bit tricky to implement and I'm not sure if it would be the right thing to do. We need to do some research on this area. |
Many thanks :) I think I failed to explain our situation. I'm aware that this can be done using LDP over GRE but I'm aiming to avoid LDP/RSVP at all: Lets take a look at Cisco/Juniper:
On Juniper You need to add:
On Cisco relevant config:
So basically there is standard (cannot pinpoint the RFC) to automatically encapsulate MPLS over GRE/UDP in case where is no LDP/RSVP running. So am I correct that this requires some changes in FRR source code? If I missed something in Your example/explanation please let me know :) Best regards, |
@adam-kulagowski thanks for the detailed explanation.
Yes, FRR doesn't support resolving VPN routes through GRE tunnels as of now (without the implicit-null label hack), let alone create GRE tunnels automatically when necessary. Since I can't commit to implement this right now, I've added MPLS over GRE to the Features Request wiki page. |
Description
Is scenario when MPLS over GRE is used to set up l3VPN supported?
I'm trying to peer w/ Juniper VMX as described in
https://www.juniper.net/documentation/en_US/junos/topics/example/example-next-hop-based-dynamic-gre-tunnel-configuring.html
Expected behavior:
In lack of lldp peer, MPLS over GRE encapsulation should be used
Actual behavior:
MPLS is sent via physical interface
Components
[bgpd, ospfd, staticd, zebra]
Versions
The text was updated successfully, but these errors were encountered: