2008-07-24 00:45:37

by Ignacy Gawedzki

[permalink] [raw]
Subject: TUN/TAP hacking

Hi,

I need some advice from network stack experts, so I hope this is the right
place to ask.

I thought I'd be able to use the TAP interfaces to create some sort of a
network emulator. For a start I just "bridged" two tap interfaces, much in
the same way as the example of br_select.c from http://vtun.sf.net , assigned
both interfaces different IPv4 addresses (both with a /32 prefix), set them up
and tried to transmit a UDP packet from one address to the other through the
bridge. Both logs from my bridge program and tcpdump tell me that the packets
are flowing as expected, but somehow the destination process doesn't get the
packets (despite all correct bind, etc).

Is it simply that the stack inconditionally drops any packet with the same
source (IP and/or MAC) address as some local interface?

As ARP resolution seems not to work either (I had to put permanent entries in
the neighbor table), I suppose this is the case indeed.

Could anyone confirm that? (please CC me, I've not subscribed)

Thanks,

Ignacy

--
If you're not living on the edge, you're taking up too much space.


2008-07-24 02:36:44

by Dan Noé

[permalink] [raw]
Subject: Re: TUN/TAP hacking

Ignacy Gawedzki wrote:
> I need some advice from network stack experts, so I hope this is the right
> place to ask.

The Linux kernel networking folks hang out at netdev
([email protected]). I've CC'd them...

> I thought I'd be able to use the TAP interfaces to create some sort of a
> network emulator. For a start I just "bridged" two tap interfaces, much in
> the same way as the example of br_select.c from http://vtun.sf.net , assigned
> both interfaces different IPv4 addresses (both with a /32 prefix), set them up
> and tried to transmit a UDP packet from one address to the other through the
> bridge. Both logs from my bridge program and tcpdump tell me that the packets
> are flowing as expected, but somehow the destination process doesn't get the
> packets (despite all correct bind, etc).
>
> Is it simply that the stack inconditionally drops any packet with the same
> source (IP and/or MAC) address as some local interface?
>
> As ARP resolution seems not to work either (I had to put permanent entries in
> the neighbor table), I suppose this is the case indeed.
>
> Could anyone confirm that? (please CC me, I've not subscribed)
>
> Thanks,
>
> Ignacy
>


--
/--------------- - - - - - -
| Dan No?
| http://isomerica.net/~dpn/