[Nix-dev] kernel 3.6 NAT issues

Mathijs Kwik mathijs at bluescreen303.nl
Thu Oct 11 01:52:18 CEST 2012


Ok, I tracked it down a bit further.

It seems that doing anything to any interface fixes the problem.
In my case, I have tap1, which is just a virtual device, connected to
a qemu/kvm instance. It is setup during boot and given a static ip
address.
My connected real interface is wlan0.
I also have eth0, but no cable is in there so it's not in use in any way.
When I first boot the kvm instance, it does not have a working
connection, which I traced down to nat not functioning, as described
in my original message.
Now the weird part: if I run:
ifconfig eth0 down && ifconfig eth0 up
things start working for the guest. This is weird, because eth0 does
not even have a cable connected to anything.
bringing down/up any other interface (lo, wlan0, tap1) all have this effect.

I tried to find out what changes by doing this, but both my
"iptables-save" as "ip route" outputs stay the same.
It seems something gets cached/broken, and doing anything to any
interface just triggers something to reload/release caches.
And as stated, this only happens on 3.6.*, I tried 3.5.6 too just now,
where everything works as it should.

Now, after restarting qemu/kvm, the same problem shows up again so
clearly its startup corrupts something.
This is somewhat weird again, as kvm fully runs as a normal user. The
tap1 device it uses is setup beforehand (system boot) and is owned by
the normal user, so that running the vm does not require any root
access.

As a simple workaround, I thought of just addinf the down/up step for
eth0(which I never use) into my start-vm script, but as ifconfig needs
root access, it really becomes a dirty hack.

Does anyone have a clue what might be causing this?

On Thu, Oct 11, 2012 at 12:25 AM, Mathijs Kwik <mathijs at bluescreen303.nl> wrote:
> On Wed, Oct 10, 2012 at 7:41 PM, Lluís Batlle i Rossell
> <viric at viric.name> wrote:
>> On Wed, Oct 10, 2012 at 07:21:30PM +0200, Mathijs Kwik wrote:
>>> I'm trying out kernel 3.6 at the moment and all is well except for 1 thing.
>>> NAT / masquerading does no longer seem to work.
>>
>> No idea; maybe a try on 3.6.1?
>
> I'm on 3.6.1 :)
> But the issue first appeared on 3.6.
>
> It's getting even weirder though. If I suspend my system (to ram) and
> wake it up, it's fixed.
> But that's at least a lead to investigate further.
>
> I should probably just quit my bleeding-edge habit, but that's another thing :)


More information about the nix-dev mailing list