l2tpns--High Volume L2TP Tunnel Termination
l2tpns is a layer 2 tunnelling protocol network server (LNS) for Linux. The daemon supports up to 65535 sessions plus features such as IPv6, rate limiting, walled garden, usage accounting, and clustering (for both load-sharing and redundancy). Since L2TP and PPP frames are manipulated in user-space, no kernel patches or features outside of what is typically configured in distribution kernels are required. Licence: GPL SourceForge project page: http://sf.net/projects/l2tpns. Optus Internet currently uses l2tpns to terminate more than 140K concurrent L2TP sessions at peak for ADSL customers. While our target is obviously high volume, there are users of the software ranging through mid-range ISPs down to people who are using terminating a handful of L2TP/IPSEC VPN sessions. Probably the most interesting aspect of the project is the development of a clustering protocol which allows us to spread the session load across multiple homogeneous servers. The intent of the talk was to describe the development of the code, with particular attention to the clustering--as far as war stories go, the clustering has provided both the most benefit and also some of the most interesting failures. Other topics to be touched upon are the impact of placing the project on SourceForge (overwhelmingly positive), and the relative financial merits of developing a Linux solution in-house over buying the vendor solution (surprisingly on par for our inital release, substantially lower for subsequent scaling).
Technical Specialist, Optus Internet Engineering. Debian Developer.