Discussion:
[Vtun-Users] BSD implementation of VTun?
Brett Glass
2012-01-30 20:49:32 UTC
Permalink
All:

I'm interested in determining whether it's practical to add VTun to
the suite of VPN protocols supported by FreeBSD's mpd
(multi-protocol daemon). mpd currently handles PPTP, PPPoE, and L2TP.

The work would require creating a module for FreeBSD's Netgraph
system (probably called ng_vtun) and adding code to mpd to support it.

The only issue I see with creating the implementation isn't
technical but legal. Because the module would be a FreeBSD kernel
module, it would need to be BSD-licensed, so to do the port I would
either need to implement the code from scratch from the
specification or get permission for the FreeBSD version to be
licensed under the BSD License. Is there a list of contributors to
the VTun code who could be asked for permission to do the latter?

--Brett Glass
bishop
2012-01-31 06:10:12 UTC
Permalink
Hi Brett,

VTun is included in the ports already, is it not?

- bish
Post by Brett Glass
I'm interested in determining whether it's practical to add VTun to
the suite of VPN protocols supported by FreeBSD's mpd
(multi-protocol daemon). mpd currently handles PPTP, PPPoE, and L2TP.
The work would require creating a module for FreeBSD's Netgraph
system (probably called ng_vtun) and adding code to mpd to support it.
The only issue I see with creating the implementation isn't
technical but legal. Because the module would be a FreeBSD kernel
module, it would need to be BSD-licensed, so to do the port I would
either need to implement the code from scratch from the
specification or get permission for the FreeBSD version to be
licensed under the BSD License. Is there a list of contributors to
the VTun code who could be asked for permission to do the latter?
--Brett Glass
Brett Glass
2012-01-31 19:04:59 UTC
Permalink
Bish:

VTun is not included in FreeBSD, but is available as a port which works in
"userland." This implementation has much higher overhead than a Netgraph
implementation would, because Netgraph operates within the kernel and is
heavily multi-threaded. For this reason, and also because of the quality
of the Netgraph and mpd code, most FreeBSD users use mpd for tunneling
protocols, including PPTP, PPPoE, and L2TP. VTun, which is similar in many
ways to L2TP, would work best if implemented the same way.

Engineering-wise, doing this is not very difficult; the only issue
is licensing.
A Netgraph implementation would need to be BSD-licensed, which means obtaining
permission to license a port of the code that way. This is frequently done with
device drivers and other code that's ported to the BSDs.

Implementing VTun under Netgraph would greatly increase its level
of acceptance and
use in BSD systems and BSD-based appliances, so it seems to me that it would be
desirable to the development team and user community. The source
would, of course,
be available as part of FreeBSD.

The other option is to re-implement the protocol from a spec -- if
one exists. The
problem is that in the case of VTun, the code may really BE the only complete
specification.

--Brett Glass
Post by bishop
Hi Brett,
VTun is included in the ports already, is it not?
- bish
Post by Brett Glass
I'm interested in determining whether it's practical to add VTun to
the suite of VPN protocols supported by FreeBSD's mpd
(multi-protocol daemon). mpd currently handles PPTP, PPPoE, and L2TP.
The work would require creating a module for FreeBSD's Netgraph
system (probably called ng_vtun) and adding code to mpd to support it.
The only issue I see with creating the implementation isn't
technical but legal. Because the module would be a FreeBSD kernel
module, it would need to be BSD-licensed, so to do the port I would
either need to implement the code from scratch from the
specification or get permission for the FreeBSD version to be
licensed under the BSD License. Is there a list of contributors to
the VTun code who could be asked for permission to do the latter?
--Brett Glass
-----
No virus found in this message.
Checked by AVG - www.avg.com
Version: 10.0.1416 / Virus Database: 2109/4777 - Release Date: 01/30/12
Loading...