VirtualBox

Ticket #3215 (closed defect: fixed)

Opened 5 years ago

Last modified 5 years ago

upgrade 2.1.0 to 2.1.2 breaks tap interfaces => Fixed in SVN

Reported by: rjb Owned by:
Priority: major 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

diff Download (1.0 KB) - added by jleu 5 years ago.
fix Download (860 bytes) - added by jleu 5 years ago.

Change History

comment:1 follow-up: ↓ 2 Changed 5 years ago by aleksey

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.

comment:2 in reply to: ↑ 1 Changed 5 years ago by rjb

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 Changed 5 years ago by jleu

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.

Changed 5 years ago by jleu

  • attachment diff Download added

comment:4 Changed 5 years ago by jleu

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.

Changed 5 years ago by jleu

  • attachment fix Download added

comment:5 Changed 5 years ago by aleksey

  • Summary changed from upgrade 2.1.0 to 2.1.2 breaks tap interfaces to 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.

comment:6 Changed 5 years ago by frank

  • Status changed from new to closed
  • Resolution set to fixed

Fixed in 2.1.4.

Note: See TracTickets for help on using tickets.

www.oracle.com
ContactPrivacy policyTerms of Use