Opened 16 years ago
Closed 16 years ago
#3215 closed defect (fixed)
upgrade 2.1.0 to 2.1.2 breaks tap interfaces => Fixed in SVN
Reported by: | Ronald Baljeu | Owned by: | |
---|---|---|---|
Component: | network/hostif | Version: | VirtualBox 2.1.2 |
Keywords: | tap interface | Cc: | |
Guest type: | other | Host type: | Linux |
Description
After upgrading from 2.1.0 to 2.1.2 a setup using host interface networking on tap interfaces with proxy-arp and routing (see the article at http://www.savvyadmin.com/virtualbox-host-interface-networking-with-nat/) fails: guests can no longer ping each other. Outgoing traffic (leaving the linux host) works ok. Could this be related with the bugfix for bug #3056?
Attachments (2)
Change History (8)
follow-up: 2 comment:1 by , 16 years ago
comment:2 by , 16 years ago
You're right. I was under the impression that this host interface being shared should be a physical interface like eth0, which would not allow us to do NAT at the same time. Now, however, I realize that you can share a tap interface as well.
I just need one tap interface for NAT'ing on the host, and this tap interface can be shared among multiple guests. Brilliant! Much cleaner. And it works, without proxy-arp!
Thanks and sorry for wasting your time!
comment:3 by , 16 years ago
I am seeing the same issue. I am unable to move packets (ie ping) between guests when using tap interfaces. I've tried routing via the host and bridging on the host. Neither work for 2.1.2, whereas both worked with 2.1.0. I'm attaching the diff I used that allows me to send packets between guests on the same host when using tap interfaces.
by , 16 years ago
comment:4 by , 16 years ago
Not knowing much about the history of the change that appears to break this, I implemented a fix on top of the 2.1.2 code. I've assumed the constant VBOXNETFLT_CB_TAG is just an arbitrary number and that the goal of vboxNetFltLinuxSkBufIsOur is to make sure that packets sent out a virtual interface do not come back in the same interface. To that end I've modified VBOXNETFLT_CB_TAG to include the lower 16 bits of the ifindex for the device on which this packet will be sent. I believe at the point that vboxNetFltLinuxSkBufIsOur is called the dev on the skb is still the rx interface, so this should accomplish the desired effect.
.... or this is all crap and there is a much better fix. Either way, I hope others find this useful and do not end up wasting time second guessing their setup due to this issue .... like I did.
by , 16 years ago
comment:5 by , 16 years ago
Summary: | upgrade 2.1.0 to 2.1.2 breaks tap interfaces → upgrade 2.1.0 to 2.1.2 breaks tap interfaces => Fixed in SVN |
---|
jleu,
Thank you for finding and fixing the problem. The reason it worked in 2.1.0 is that the tag was located at the beginning of CB structure so it was getting over-written by Linux protocol stack code. Your fix will be included into the next release.
May be I am missing something in the description, but why do you need such an elaborate setup when simple attaching to one of host's interfaces would do? The restriction the author mentions in the article no longer applies since 2.1.0. It is perfectly possible to attach many VMs to the same interface on the host.