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
Docker strips VLAN tag #716
Comments
Could be complex to solve. I suspect that the kernel strip the info because the VLAN is specific to a network namespace |
What do you think @grossmj ? |
I believe the following link shows that tagging in docker is an experimental feature right now? |
The network part for Docker in GNS3 is made by GNS3 not by Docker. The docker network is not flexible, the objective is to provide an interface with an IP they have no reason to offer interface without IP. But it's true that we do it like docker people by pushing a veth inside the network namespace of the container. And it 's perhaps what we need to change. From what I understand the macvlan or ipvlan allow to expose a container network interface on the network without the need to use port redirection and stuff like that. What we need is a dummy interface where we can inject packet to the container from the host os without any modification. |
Perhaps we could push a tap instead of the VETH |
I don't know if this is possible. The documented way is to use VETH. |
Test instructions ready to copy/paste Alpine 1
Alpine 2
|
Good news it seem to work with a tap I will make clean patch for this |
I pushed the change on 2.0 branch if you can test it. I have share feeling about backporting it to 1.5. I'm affraid that the change could create side effect. |
Great news, I haven't expect it that fast. I agree, that such a change should not be included in 1.5. Sadly I currently need a stable GNS3, so I can't update to 2.0, maybe when a beta is available. |
Ok will ship in 2.0.0 alpha 3 |
GNS3 version 1.5.3dev1 on Darwin (64-bit) with Python 3.5.2 Qt 5.6.0, self made GNS3-VM version 1.5.3dev1 on debian stretch (64-bit) with Python 3.5.2
1. VLAN interface within Linux
I'm using a pure alpine container, tcpdump is additionally installed. I've connected eth0 to another alpine container. Then on both sides eth0.100 is configured as a vlan tagged interface.
Of course alpine-2 uses IP address is 192.168.100.2/24. Pinging 192.168.100.2 from alpine-1 doesn't work. Starting a
tcpdump -eX -i eth0
within the alpine container shows the vlan tag 100.But a wireshark trace on the link shows this ARP request without the VLAN tag, it's stripped.
2. VLAN interface within docker-IOU
Thanks to Stephen C. Moore for this discovery.
I've created an IOU-L3-router (see GNS3/gns3-gui#1508), but added tcpdump to the iou-base image. Then I added two IOU routers to GNS3, interconnected the eth0 interfaces and configured vlan tagged sub interfaces.
Pinging the partner IOU with IP 10.1.123.2 doesn't work. A
tcpdump -eX -i eth0
with the IOU container shows the VLAN tag.But again a wireshark trace on the link shows the ARP packet without VLAN tag.
The text was updated successfully, but these errors were encountered: