Outline of Master Thesis,
January 16, 2013.

Design and Implementationof SoftEther VPN
Daiyuu Nobori
Department of Computer Science,
Graduate School of Systems and Information Engineering,
University of Tsukuba, Japan.

Background:
Various VPN Protocols• VPN Client Devices• PCs: Windows, Mac, iOS, Android, …
• Routers: Cisco, Juniper, NEC, IIJ, …

• VPN Protocols• SoftEther VPN• L2TP/IPsec• SSTP• OpenVPN• L2TPv3/IPsec• EtherIP/IPsec• System Administrators have to prepare multiple
VPN Servers for each VPN protocol.
2

Characteristics of VPN Protocols
L2TPSSTP

PPTP

OpenVPN

L2TPv3

EtherIP

SoftEther
VPN

Upper
Protocol

IP

IP

IP

Ethernet

Ethernet

Ethernet

Ethernet

Transport
Protocol

IPsec

HTTPS

GRE

Specific
TCP/UDP

IPsec

IPsec

HTTPS

ProxySupport

NO

YESNO

YES

NO

NO

YES

Restricted
FW

BlockedPASS

BlockedBlockedBlockedBlockedPASS

Client OS(PC)

Windows
Windows Windows
Linux
Windows
Linux
Linux
Mac
Mac
Mac

-

FreeBSD

Windows
Linux

Client OS

iOS
Android

Client OS

Cisco(Smartphone)(VPN Routers)-iOS
Android-------Cisco
IIJ SEIL

NEC IX-3

Local Area Network

Windows

VPN Server

Mac

ServeriPhone, iPad

Cisco 1800 Series

SYS
OKAndroid

SYS
PWR

Cisco

IIJ SEIL

Various VPN Protocols

NECIdeal All-in-One
VPN Server Program
Ideal All-in-One
VPN Server Program
SSTP
Server Function

SSTP VPN Client(e.g. Windows)

OpenVPN
Server Function

A VPN ServerComputer

Such a VPN Server Program
doesn't Exists.

OpenVPN Client(e.g. Mac OS X)

5

A Problem:
There is No Such an Ideal
VPN Server Program.

6

Existing VPN Server Programs Compatibles

MicrosoftRRASMac OS X
Server
OpenVPN
Cisco IOS
NEC IX
Router OS
IIJ SEIL
Router OS

L2TPSSTPOpenVPN

L2TPv3

EtherIP✓✓✓✓✓✓✓-✓✓✓
7

Supporting Multi VPN Protocols
by Single VPN Server Computer
Two VPN Server Programs
Run Together on a Host.
Microsoft RRASIP Routing
Between Two
VPN Servers

SSTP
Server Function

SSTP VPN Client(e.g. Windows)

OpenVPN Server

OpenVPN
Server Function
A VPN ServerComputer

SSTP VPN Tunnel

OpenVPN Tunnel

OpenVPN Client(e.g. Mac OS X)

8Supporting Multiple VPN
Protocols by Single VPN Server• Overhead Problem• Context Switching Costs• User-to-Kernel Switching Costs• Memory Copying Costs• Management Problem• User Management Tasks• Log File Management Tasks• Inefficient IP Address Polls

9VPN Server

VPN Tunnel #2

VPN Tunnel #1

Overhead Problem

Program #1

VPN Server Program #2
VPN Protocol #2

VPN Protocol #1

User ModeOverhead

Overhead

Kernel Modetun / tap / ppp

tun / tap / ppp

Overhead

IP Router /Ethernet Bridge

A VPN Server Host PC

10Management Problem
Microsoft RRASRegister
VPN ServerAdmin

User A User B User CRegister

Same Users

SSTP
Server Function

OpenVPN Server

User A User B User C

OpenVPN
Server Function

A VPN Server
Computer11

Log File Problem
Microsoft RRAS
ConfusingLog Filesof MS-RRAS

SSTP
Server Function
OpenVPN Server

VPN
ServerAdmin

OpenVPN
Server Function
Log Filesof OpenVPN
A VPN Server
Computer

12

IP Address Pool DuplicationProblem
Microsoft RRAS
192.168.0.101192.168.0.150

IP Pool #1SSTP
Server Function

Duplicate
IP Address Reserves
192.168.0.151192.168.0.200

OpenVPN Server
IP Pool #2

OpenVPN
Server Function

13

Goal of the Research
MicrosoftRRASMac OS X
Server
OpenVPN
Cisco IOS
NEC IX
Router OS
IIJ SEIL
Router OS

SoftEther
VPN

L2TP

SSTP

OpenVPN

L2TPv3

EtherIP

SoftEtherVPN

✓✓✓
✓
✓✓
✓
✓

✓
✓

✓
✓
✓

✓
✓

✓
14

"SoftEther" means Software Ethernet.

SoftEther VPN Server
A high-performance VPN server which supports multiple VPN protocols.
SE-VPN

Windows

OpenVPN

LinuxL2TP

EtherIPMS-SSTP

L2TPv3Mac

iPadAndroid Tab
Windows RTiPhoneAndroid
Windows Phone

Cisco VPN Routers

Supports various VPN client devices.

15

Difficulties of the Research• 7 VPN protocols by one VPN server• Inter-VPN protocol packet exchange• Bridges between L2 (Ether) / L3 (IP)• Management• User authentication• Dynamic IP address assignment to VPN clients• Security• Security policy / Packet filter• Packet log• Isolation

16

How to Support 7 VPN Protocols?
L2 VPN Protocols

L3 VPN Protocols

SoftEther VPN
OpenVPN (L3)
EtherIP/IPsec
L2TPv3/IPsec

L2TP/IPsecSSTP/IPsec
OpenVPN (L2)• Strategy #1• Separate L2 VPN Ethernet / L3 VPN Router• Layer-conversions between L2 / L3
Problem: Duplication of Security Implementations, Complicated Codes• Strategy #2 [adopted]• Treat all L3 VPN as L2 VPN• All L3 packets will be descended to L2 Ether frames.
Benefit: Single Security Implementations, Simple Codes

17

Design #1•Ethernet (L2) as Common Bus.

• Virtual Ethernet Switching Hub.
• Layer conversion for IP-based VPN
protocols (L2TP, SSTP, OpenVPN L3).
• Virtual DHCP Client.

18

Design #2• Kernel-mode• Difficult to debug• Lack of portability• Multiple User-mode Process• Easy to implement• Overhead Problem still occurs• Single User-mode process [adopted]• Easy to implement• Reduce overhead19

Virtual Ethernet Switching Hub
Virtual Hub
Exchange Frames
Ether User IP Pkt

VPN Server Module #1

Forwarding
Database(FDB)

VPN Session #2

VPN Session #1

Ether User IP Pkt

Ether User IP Pkt

VPN Server Module #220

L3/L2 Transparent Conversion
Virtual Hub

Ethernet FrameDestMACInsert an
EthernetHeader

DHCP RequestTPIDUser IP Pkt

ARP Request

DHCP Response

L3 <-> L2
Protocol Converter

Session

DHCP Server
IP Address PoolSrc
MAC

ARP Response

Other Hosts
on Ethernet

Ethernet Frame
DestMACSrc
MAC

TPUser IP Pkt
ID

L2 (Ethernet)
L3 (IP)

User IP Pkt

L3-VPNVPN User IP Pkt

21

All-in-One VPN Server
Virtual Hub (Software Ethernet Switch) Module

VPN Session

VPN Session

L2-VPN Protocol Module(e.g. SE-VPN, L2TPv3, etc.)

Ether User IP Pkt
Pass "As-Is"
Ether Frame L3-VPN Protocol Module(e.g. L2TP, SSTP, etc.)

Pass Converted
Ether Frame

Ether User IP Pkt

Ether User IP Pkt
User IP Pkt

VPN Ether User IP Pkt

L3-VPN Tunnel

L2-VPN Tunnel

Decapsulate

Convert to
Ethernet Frame

Decapsulate
VPN User IP Pkt

Encapsulate

Encapsulate

Ether User IP Pkt
User IP Pkt

L2-VPN Client
L3-VPN Client

22

User Authentication
User Auth
RequestVirtual Hub
User Auth
Response

Configured to
Use theExternal Radius.

UserAuthentication
Database

SSTP
Server Function

External
User 'B'
Radius Server Pass '456'

L2TP/IPsec
Server Function

Session #1

Session #2

SSTP Client(e.g. Windows) Login as

L2TP/IPsec Client(e.g. Mac OS X) Login as

User 'A'
Pass '123'

User 'A'
Pass '123'

User 'B'
Pass '456'

Supports PAP (Password Authentication Protocol) andMS-CHAPv2 (Microsoft Challenge-Handshake Authentication Protocol ver 2)
via Local User-auth DB and External Radius/Active Directory Server.

23

Security
Virtual Hub

Security Functions
Packet Filter

Security Policy Enforcer

Packet Logger

Exchange Frames
Ether User IP Pkt

Session #2

User
Authentication
Database

Session #1

PacketFilterRules

Packet Logs
to the Disk24

Isolation between Virtual Hubs
VPN Server Process
Virtual Hub #1

Virtual Hub #2

Ether User IP Pkt

Ether User IP Pkt

L3-VPN Client

VPN Group #1

L3-VPN Tunnel

L2-VPN Tunnel

L3-VPN Tunnel

L2-VPN Tunnel

L2-VPN Client

L2-VPN Client

Isolated

L3-VPN Client

VPN Group #2

25

Implementation• SoftEther VPN Server
Current features• Virtual Ethernet Switching Hub• Security Policy / Packet Filter Enforcement• Packet Logging• Internal and External User-authentication

Language• C / C++

IPsec Modules based on• BitVisor IPsec Client (Univ of Tsukuba)
26

SoftEther VPN Architecture
Physical Local Area NetworkLocal BridgeSession

PhysicalNetwork Adapter

SoftEther VPN ServerIP Routing
between Segments

Virtual Hub #1

Virtual Hub #2

Security Functions
Packet Filter

Security Policy Enforcer

Packet Logger

VirtualLayer-3
SwitchExchange Frames
Ether User IP Pkt

Packet Adapter

Packet Adapter

FDB

SoftEther VPN Client

VPN Session#2

VPN Session#1

VPN Ether User IP Pkt

Packet Log
Lazy Writer

VPN Ether User IP Pkt

SoftEther VPN Client27

OS Abstraction Layer
SoftEther VPN Functions(Cedar Module)

Function Calls
Library Routines(Mayaqua Module)

OSIndependentParts

Abstraction Layer
Win32UNIX9xUser Mode

NTLinux

FreeBSD Solaris

DarwinOS
DependentParts

System Calls

Kernel Mode
NDIS Virtual
Network
Adapter Driver

NDIS
Local Bridge
Drivertap Driver

SOL_PACKETRaw Sockets

28

7 Protocol Modules
SoftEther VPN Server
L2 VPNs

Virtual Hub
SSTP
Protocol Module

OpenVPN (L3)
Protocol Module

OpenVPN (L2)
Protocol Module

SE-VPNL2TPSSTPOVPNL3OVPNL2

WindowsLinuxMac

iPad
Android Tab
Windows RT

L2TPv3/IPsec
Protocol Module

iPhoneAndroid
Windows Phone

EtherIP/IPsec
Protocol Module

EtherIP

L2TP/IPsec
Protocol Module

L2TPv3SE-VPN
Protocol Module

L3 VPNs

Cisco VPN RoutersVarious Types of VPN Clients
29Divide 7 VPN Protocols
into Sub Modules• Overlapped Parts of Processing VPN Protocols• “PPP stack” is used by L2TP and SSTP.
• “IPsec stack” is used by L2TP, L2TPv3 and EtherIP.
• “OpenVPN stack” is used by OpenVPN L2 and L3.
• A portion of “L2TP stack” is used by L2TPv3.

• Divide into Sub Modules• Minimize Volumes of Codes• Reduce Bugs

• Connections between Sub Modules• “Tube”: A new fast in-process pipe

• for Single-thread and Multi-thread inter-modulecommunication.
30

Sub Modules
SoftEther VPN Server
A Virtual Hub

L3 / L2
Protocol Converter
PPP
Sub Module

SE-VPN
Sub Module

L2TPv3
Sub Module

HTTP Parser
Sub Module

L2TP
Sub Module
OpenVPN
Sub Module

SSL
Sub Module

EtherIPSub Module

IPsec
Sub Module

SE-VPN
Listener

L2TP/IPsec
Listener

SSTP
Listener

OpenVPN (L3)
Listener

OpenVPN (L2)
Listener

L2TPv3/IPsec
Listener

EtherIP/IPsec
Listener

SE-VPNL2TPSSTPOVPNL3OVPNL2L2TPv3

EtherIPL2 VPNs
L3 VPNs

31

“Tube”(fast lightweight pipe)
Module A(on Thread 1)

Module A(on Thread 1)

TubeSend()
PacketTubeSend()
PacketTubeFlush()

Tube for Single Thread

Queue ・・・・ Packet Packet Packet Packet

Tube for Multi Threads
Queue ・・・・ Packet Packet Packet Packet

Synchronization
ObjectTubeRecv()
PacketTubeRecv()
PacketModule B(on Thread 1)

Module B(on Thread 2)

GetCancel(),
WaitSockEvent()
etc.

32

Programming• C / C++ Source Codes• 396,867 Lines (11.5MB)(including 31,686 comment lines)• Compiler• Visual C++ 2008 for Windows Binaries• gcc (any version) for UNIX and Linux Binaries• Planning to be Open Source (GPL) in Mid 2013.
• Now translating a lot of comments into English
before releasing the source.

33

Screen Shots

SoftEther VPN Client34

Screen Shots

SoftEther VPN Server (GUI Config Tools)
35

Screen Shots

A lot of VPN Server Setting Screens (total 70+ dialogs)
36

Screen Shots

L2TP / L2TPv3 / EtherIP

OpenVPN (L2 & L3) / SSTP
37

Screen Shots

Ethernet over DNS, Ethernet over ICMP
(Enjoy your Wi-Fi Life!)

38

Screen Shots

Beautiful Installer for SoftEther VPN
39

Screen Shots

User-Mode Install Option(System Admins will be Surprised!)40

Screen Shots

Multi-languages Support

41

Evaluation1. Functional Tests• Self Test
• Beta Test

2. Performance Tests• Simple throughput test
• Comparison to existing methods
42

L2TP/IPsec

iOSAndroid

Windows

Mac OS X

SSTP
43

OpenVPN

44

L2TPv3/IPsec, EtherIP/IPsec

L2TPv3: Cisco IOS, IIJ SEIL
EtherIP: NEC IX
45

Results of Self Functional Tests
VPN Protocol

VPN Client Software / Device
iPhone (iOS 4.x, 5.x, 6.x)
iPad (iOS 4.x, 5.x, 6.x)

L2TP/IPsec

Android (2.x, 3.x, 4.x)
Windows XP, Vista, 7, 8, RT
Mac OS X (10.6, 10.7, 10.8)

SSTP

Windows Vista, 7, 8, RTOpenVPN (L3)Windows, Linux, Mac, iPhone, Android

L2TPv3/IPsec

Cisco 892J
Cisco 1812J

EtherIP/IPsec

NEC IX2015

OpenVPN (L2)

OpenVPN 2.2 for Windows, LinuxResults

✓
✓✓✓✓
✓✓✓✓
✓
✓

46

Results of Beta Tests

4,007 Users on
Jan 09, 2013.

47

Achievement
L2TP

SSTP

OpenVPN

L2TPv3

EtherIP

SoftEtherVPN

SoftEther
VPN (Old)

✓✓✓
✓
-✓
✓
-

✓-

✓✓
-

✓-

✓

SoftEther
VPN (New)

✓✓✓✓

✓

✓

MicrosoftRRASMac OS X
Server
OpenVPN
Cisco IOS
NEC IX
Router OS

IIJ SEIL
Router OS48

Performance Tests
ComputerFujitsu PRIMERGY TX100 S3 (3 Pieces)

CPUIntel Xeon E3-1230 3.2GHz 8M

RAM16GB (4GB 1333MHz DDR3 ECC CL9 DIMM x 4)

ChipsetIntel C202

NIC #1, #2

Intel 10 Gigabit CX4 Dual Port Server Adapter

OSWindows Server 2008 R2 x64
Windows Server 2003 R2 x64 (for OS abstraction-layer performance tests)
Linux 2.6.32 x64 (for OS abstraction-layer performance tests)49

Target Protocols•SoftEther VPN Protocol•L2TP/IPsec•SSTP•OpenVPN (L3)•OpenVPN (L2)50

Test 1.
Each Protocol (Solo)
Our Implementation vs. Vendor’s Original Implementation
for L2TP,for SSTP

for L2TP,for SSTP,
for OpenVPN

vs.

SoftEther VPN

for OpenVPN

Examples (for SSTP)
Server PC (k1)Server PC (k1)Windows Server
2008 R2 RRAS(SSTP)

SoftEther VPN
Server 4.0(SSTP)

SSTP

SSTP

CompareSSTP

PC (k3)

Physical LAN

SSTP

SSTP VPN
Client #1

SSTP VPN
Client #2

SSTP VPN
Client #1

SSTP VPN
Client #2

Client PC #1 (k2)

Client PC #2 (k3)Client PC #1 (k2)

Client PC #2 (k3)

Microsoft’s SSTP-VPN Implementation

Our SSTP-VPN Implementation

Physical LAN

Server PC (k1)Server PC (k1)Windows Server
2008 R2 RRAS(SSTP)

SoftEther VPN
Server 4.0(SSTP)

SSTP

SSTP

CompareSSTP VPN
Client #1

SSTP VPN
Client #1

Client PC #1 (k2)

Client PC #1 (k2)

Microsoft’s SSTP-VPN Implementation

PC-to-PC VPN

PC (k3)

Our SSTP-VPN Implementation

PC-to-LAN VPN

51

Test 1 Results (PC-to-PC)
Original VPN Software v.s. SoftEther VPN Server 4.0 (1 VPN Protocol, PC to PC)
1,200 Mbps
1,000 Mbps

974.8

800 Mbps

478.0

600 Mbps
400 Mbps

664.3

779.8

383.8

200 Mbps

89.8 86.4

80.0 85.8

OpenVPN (L3)

OpenVPN (L2)0 MbpsSEVPN

L2TP
By Original VPN SoftwareSSTP

By SoftEther VPN Server 4.052

Test 1 Results (PC-to-LAN)
Original VPN Software v.s. SoftEther VPN Server 4.0 (1 VPN Protocol, PC to LAN)
1,200 Mbps
1,000 Mbps

980.0

800 Mbps

593.7 614.0

600 Mbps

715.1 737.8

400 Mbps
200 Mbps

76.6 89.8

83.8 90.1

OpenVPN (L3)

OpenVPN (L2)0 MbpsSEVPN

L2TP
By Original VPN Software

SSTP

By SoftEther VPN Server 4.053

Test 2.
Combination of 2 Protocols
Our Implementation (New) vs. Mixture of 2 VPN Programs (Traditional)

vs.

SoftEther VPN+ Mixture+Mixture

SoftEther VPN

Solo

Example (for SSTP+OpenVPN L3)
VPN Server PC (k1)

VPN Server PC (k1)

IP Routing

OpenVPN2.2.2(L3 Mode)MS Win2008 R2
SSTP Server

NIC #2

NIC #1SSTP VPN
Protocol Tunnel

SSTP VPN Client
VPN Client PC #1 (k2)

SoftEther VPN Server

Traffic

OpenVPN (L3)
Protocol Tunnel

CompareNIC #2

NIC #1SSTP VPN
Protocol Tunnel

OpenVPN Client(L3 Mode)

SSTP VPN Client

VPN Client PC #2 (k3)

VPN Client PC #1 (k2)

Traffic

OpenVPN (L3)
Protocol Tunnel

OpenVPN Client(L3 Mode)
VPN Client PC #2 (k3)54

Combination Matrix
No. Protocol 1

Protocol 2

Bridge / Routing

1SEVPN

L2TP/IPsec

IP Routing

2SEVPNSSTP

IP Routing

3SEVPNOpenVPN_L3

IP Routing

4SEVPNOpenVPN_L2

Ethernet Bridging

5

L2TP/IPsec

SSTP

IP Routing

6

L2TP/IPsec

OpenVPN_L3

IP Routing

7

L2TP/IPsec

OpenVPN_L2

IP Routing

8SSTP

OpenVPN_L3

IP Routing

9

SSTP

OpenVPN_L2

IP Routing

10

OpenVPN_L3

OpenVPN_L2

IP Routing

Total 10 Tests

55

Test2 Results (Throughput)
Original VPN Software v.s. SoftEther VPN Server 4.0 (2 VPN Protocols)
1,200 Mbps
1,000 Mbps
800 Mbps
600 Mbps

546.8

608.0

662.5

716.0

557.6

612.9

400 Mbps
200 Mbps

83.4 86.6

83.6 86.6

SEVPN+OVPNL3SEVPN+OVPNL2

80.2 84.1

82.9 86.6

83.8 87.9

82.7 87.3

86.0 88.0

L2TP+OVPNL3

L2TP+OVPNL2

SSTP+OVPNL3

SSTP+OVPNL2OVPNL3+OVPNL20 Mbps
SEVPN+L2TP

SEVPN+SSTP

L2TP+SSTP

By Combination of Two Original VPN Software

By SoftEther VPN Server 4.0 Standalone

56

Test2 Results(Percentage of Improvement)
Percentage of Improvement120%

111.2%

108.1%SEVPN+L2TP

SEVPN+SSTP

103.8%

103.5%SEVPN+OVPNL3SEVPN+OVPNL2

109.9%

104.9%

104.4%

104.9%

105.5%

L2TP+OVPNL3

L2TP+OVPNL2

SSTP+OVPNL3

SSTP+OVPNL2

102.3%

100%
80%
60%
40%
20%
0%
L2TP+SSTP

SEVPN+L2TP

SEVPN+SSTP

SEVPN+OVPNL3SEVPN+OVPNL2

L2TP+SSTP

L2TP+OVPNL3

L2TP+OVPNL2

SSTP+OVPNL3

SSTP+OVPNL2OVPNL3+OVPNL2OVPNL3+OVPNL257

Test 3. Evaluation of
OS-Abstraction Layer
4.1.1. SEVPN RC4 PC-to-PC OS Comparison (Throughput)

4.1.3. SEVPN RC4 PC-to-LAN OS Comparison (Throughput)

2,500 Mbps

2,500 Mbps

2,000 Mbps

2,000 Mbps

1,500 Mbps
1,000 Mbps

951 929 941

1,037 1,021 979

1,094 1,104 1,011

1,500 Mbps
1,000 Mbps

500 Mbps

500 Mbps

0 Mbps0 MbpsDownload

UploadBoth918 915

Download

1,033 1,042 1,041

1,088 1,048 987

UploadBoth

SEVPN RC4 (PC-to-PC) by SoftEther VPN on WinServer2003 R2

SEVPN RC4 (PC-to-LAN) by SoftEther VPN on WinServer2003 R2

SEVPN RC4 (PC-to-PC) by SoftEther VPN on WinServer2008 R2

SEVPN RC4 (PC-to-LAN) by SoftEther VPN on WinServer2008 R2

SEVPN RC4 (PC-to-PC) by SoftEther VPN on Linux 2.6.32

SEVPN RC4 (PC-to-LAN) by SoftEther VPN on Linux 2.6.32

4.1.5. L2TP PC-to-PC OS Comparison (Throughput)

4.1.6. L2TP PC-to-LAN OS Comparison (Throughput)

2,500 Mbps

2,500 Mbps

2,000 Mbps

2,000 Mbps

1,500 Mbps

1,500 Mbps

1,000 Mbps
500 Mbps

1,106

1,000 Mbps

372 387 327

354 381 294

367 392 303

0 Mbps500 Mbps

630 645482

620 583 581

706 673518

0 MbpsDownload

UploadBoth

Download

UploadBoth

L2TP (PC-to-PC) by SoftEther VPN on WinServer2003 R2

L2TP (PC-to-LAN) by SoftEther VPN on WinServer2003 R2

L2TP (PC-to-PC) by SoftEther VPN on WinServer2008 R2L2TP (PC-to-LAN) by SoftEther VPN on WinServer2008 R2L2TP (PC-to-PC) by SoftEther VPN on Linux 2.6.32

L2TP (PC-to-LAN) by SoftEther VPN on Linux 2.6.32

58

Conclusions #1• This Research Designs and Implements a New
VPN Server Program.
• Supports 7 VPN Protocols.
• SoftEter VPN, L2TP over IPsec, SSTP, OpenVPN (L3, L2),
EtherIP over IPsec and L2TPv3 over IPsec.
The World’s First VPN Server Program for Support All ofAbove VPN Protocols.

• Runs on Windows, Linux, Mac, FreeBSD and Solaris.
• Unified Management, Security, User-auth andIP Address Assignment.

59

Conclusions #2• Results of Performance Tests show:• Generally better throughputs,
compare to Microsoft and OpenVPN’s
implementations.
• Overheads of combination of different VPN
protocols are reduced.
(Performance Improvements: 102.3% - 111.2%)• OS Abstraction Layer works well.

60

Future Works• More Improvements of Performance.
• Additional VPN Protocols.

• IKEv2, PPTP and IPsec Tunnel Mode

• Release as Open-Source Software (GPL license).
• “SoftEther VPN”, http://www.softether.org/
Estimated release date: by end of March 2013.
(First, close-source with binaries. Translate all
Japanese comments to English and release it inmiddle 2013.)• Enable third-Developers to Add More VPN
Protocol Modules Easily.

61

Outline of Master Thesis,
January 16, 2013.

Design and Implementationof SoftEther VPN
Daiyuu Nobori
Department of Computer Science,
Graduate School of Systems and Information Engineering,
University of Tsukuba, Japan.