On Mon, 6 Jun 2005, Neil Brown wrote:

> On Sunday June 5, j...@yonan.net wrote:
> > 
> > I don't think it's possible for the current TAP-Win32 driver to do OSI 
> > Layer 3 with a network/netmask setting.  This gets back to the same reason 
> > why --ifconfig-pool-linear doesn't work on Windows:  The TAP-Win32 driver 
> > is a TAP driver from the perspective of the kernel.  The point-to-point 
> > Layer 3 capability is provided by glue code in the driver which makes a 
> > /30 subnet appear to be two point-to-point endpoints.  But it doesn't 
> > change the fact that the driver is a TAP driver and will be treated as an 
> > 802.3 network interface by the Windows kernel.
> > 
> > This means that if you set your TAP driver properties to 192.168.0.0/24 
> > and you try to ping 192.168.0.66, the network stack will send out an ARP 
> > to find out the MAC address of 192.168.0.66, because we are operating on 
> > OSI Layer 2.  While, you might say, why not answer the ARP virtually, so 
> > that point-to-point Layer 3 semantics are operating under the hood.  Well 
> > that's exactly what the tun emulation mode in the current TAP-Win32 driver 
> > does.  And this is where the /30 subnet limitation comes from.
> 
> Why is there a /30 limitation?
> I cannot see that a /24 subnet could not work just as easily.
> 
> I see from tapdrvr.c that currently the auto-arp-response will only
> respond to arp requests for one particular address.  But I cannot see
> why it couldn't trivially be changed to work for any address.
> i.e. if an arp request appears on the interface for any address (other
> than the address of the interface), then respond with a reply giving
> the same virtual MAC address.
> Surely with would allow the TAP-Win32 driver to act line a tun driver
> with a subnet mask.
> 
> And this is, in my mind, the goal.  
> I don't want the TAP-Win32 drive to act like a true point-to-point
> interface (I can see that that is non-trivial).  I just want win32 to
> have a tun-like interface onto a subnet.  That subnet being the subnet
> that OpenVPN is managing.

I think it's an interesting idea -- essentially you would be implementing
proxy ARP in the TAP driver over the entire VPN subnet. It's not true
point-to-point semantics, but if the VPN subnet is well contained, it
comes closer than the current approach and doesn't suffer from the IP
address lossage that comes from using one /30 subnet per client.

James

Reply via email to