-
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
End-to-End MPLS Not Working On Docker Container #4872
Comments
I've also checked this issue on latest released Alpine Linux and the behavior remains the same i.e., labelled packets can't get through. |
I vaguely remember having a similar issue with MPLS inside containers.
And I think Donald directed me to the topotests in
/~https://github.com/FRRouting/frr/blob/master/tests/topotests
This has some of the flags
/~https://github.com/FRRouting/frr/blob/master/tests/topotests/bgp_l3vpn_to_bgp_direct/customize.py
/~https://github.com/i-maravic/MPLS-Linux and Linux VRF txt was the
other thing I followed.
(bearing in mind your post is about IPoMPLS via not VPNv4 over LDP)
…On Wed, 28 Aug 2019 at 12:27, anspectrum ***@***.***> wrote:
I've also checked this issue on latest released Alpine Linux and the behavior remains the same i.e., labelled packets can't get through.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.
--
Regards,
Mark Tees
|
Just looking closer at what you said, are you sure are not more veth's
that need MPLS enabled on in /proc/sys/net/mpls/conf/ ?
…On Wed, 28 Aug 2019 at 12:46, Mark Tees ***@***.***> wrote:
I vaguely remember having a similar issue with MPLS inside containers.
And I think Donald directed me to the topotests in
/~https://github.com/FRRouting/frr/blob/master/tests/topotests
This has some of the flags
/~https://github.com/FRRouting/frr/blob/master/tests/topotests/bgp_l3vpn_to_bgp_direct/customize.py
/~https://github.com/i-maravic/MPLS-Linux and Linux VRF txt was the
other thing I followed.
(bearing in mind your post is about IPoMPLS via not VPNv4 over LDP)
On Wed, 28 Aug 2019 at 12:27, anspectrum ***@***.***> wrote:
>
> I've also checked this issue on latest released Alpine Linux and the behavior remains the same i.e., labelled packets can't get through.
>
> —
> You are receiving this because you are subscribed to this thread.
> Reply to this email directly, view it on GitHub, or mute the thread.
--
Regards,
Mark Tees
--
Regards,
Mark Tees
|
@mkbt Thanks for reading and replying. ((NOTE: Removed BGP config from OP as it was not required)) |
After much hit and trial and searching information, the FRR is working perfectly now. Here is what I did (for others to be benefited) Need to enable MPLS processing in Docker container Kernel:
After enabling it execute VRF Interface Addition on FRR CLI
FIB Entries in Linux for proper working of VRF
To confirm rules have been added
Sample working config of frr-1
|
i ran into the same problem and MPLS was not showing enabled. I could by pass the problem this shows me MPLS support not enabled. root@gns3vm: now..i can see some entries in the gns3vm so i went to the docker frr rouitng and set the core interfaces to be mpls enabled now, i rebooted the docker container and i can see sr mpls tables.
|
Docker does not want you have corect container's lo (loopback) interface working. In case, when all frr from upper picture based on personal virtual machines, their loopbacks is unreacheable. Containers use ipvlan l2 mode for direct connection to the network adapter. Instead macvlan mode because basically promisc didn't allowed by hypervisor. So containers have the same MAC with Host... When destination IP in incoming packets is own by any container - no problem, packets come to container and everything works properly. But when we setup lo or dummy or other network adapter (isolated/not isolated bridge/something else) - nothing works, packets, wihicn come for the same MAC didn't reach container - docker inspect and not found reason for put this packets to container... stupid DPI -(((.. And nobody can't change it. Host ip config does not matter. If parent ipvlan interface have ip - then Host will be ICMP reply "router changed to ..container_IP, while no ip address attached - just silently drop.. of couse.. Of cource fogot explicit-null also, because MPLS packets fullmissunderstood by docker the same -)). |
I have the same problem - frr 8.1 docker containers under GNS3 2.2.29 I am using explicit null labels. "show mpls status" shows mpls is enabled doing a ping test: wireshark shows label swapping occurring at intermediate hops but there are no replies to pings from the final destination. I've tried final destination as "lo" and as eth0 |
I couldn't quite understand the comment from anp135. I tried again using implicit null labels and it now works. It appears that docker containers can't handle explicit null labels. |
I haven't tried this in a container, but I recall having blackholing issues with explicit-null labels until I enabled net.mpls.conf.lo.input = 1 in sysctl. |
There's also the long-standing issue that FRR zebra has when terminating LSPs. Historically, we've relied on PHP it seems, and zebra is not really willing to terminate an LSP locally. Implicit-null works for us for this reason. There may be some container-specific issue too, not aware of that, but in general at this time zebra doesn't really handle tunnel termination completely. |
Hello,
I've following setup:
Host machine is Ubuntu 16.04 LTS (Linux OS 4.15.0-58-generic #64~16.04.1-Ubuntu SMP Wed Aug 7 14:10:35 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux). Installed docker on it ( Version: 18.09.7). Also have GNS3 simulator (2.1.21).
Pulled FRR image from Docker (docker pull frrouting/frr)
MPLS modules (mpls_iptunnel mpls_router) are enabled on host machine. Also enabled following in /etc/sysctl.conf on host machine:
A simple MPLS 3 x router topology
Everything works fine like OSPF, ISIS, BGP. However, when I enable MPLS LDP on interconnecting interfaces, frr-1 can not ping frr-3 loopback and vide versa. I've done packer captures and it seems that frr-1 and frr-3 both send the correct MPLS labelled packets but frr-2 keeps dropping them. Don't know why its like that. Here is the configs:
Please suggest where can I look to fix it.
The text was updated successfully, but these errors were encountered: