SoftEtherVPN PDF
SoftEtherVPN PDF
SoftEtherVPN PDF
Background:
Various VPN Protocols
VPN Client Devices
VPN Protocols
SoftEther VPN
L2TP/IPsec
SSTP
OpenVPN
L2TPv3/IPsec
EtherIP/IPsec
SSTP
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
Proxy
Support
NO
YES
NO
YES
NO
NO
YES
Restricted
FW
Blocked
PASS
Blocked
Blocked
Blocked
Blocked
PASS
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
Windows
VPN Server
Mac
Server
iPhone, iPad
SYS
OK
Android
SYS
PWR
Cisco
IIJ SEIL
NEC
Ideal All-in-One
VPN Server Program
Ideal All-in-One
VPN Server Program
SSTP
Server Function
OpenVPN
Server Function
A VPN Server
Computer
OpenVPN Client
(e.g. Mac OS X)
A Problem:
There is No Such an Ideal
VPN Server Program.
Microsoft
RRAS
Mac OS X
Server
OpenVPN
Cisco IOS
NEC IX
Router OS
IIJ SEIL
Router OS
L2TP
SSTP
OpenVPN
L2TPv3
EtherIP
SSTP
Server Function
OpenVPN Server
OpenVPN
Server Function
A VPN Server
Computer
OpenVPN Tunnel
OpenVPN Client
(e.g. Mac OS X)
Management Problem
VPN Server
VPN Tunnel #2
VPN Tunnel #1
Overhead Problem
Program #1
VPN Protocol #1
User Mode
Overhead
Overhead
Kernel Mode
tun / tap / ppp
Overhead
IP Router /
Ethernet Bridge
10
Management Problem
Microsoft RRAS
Register
VPN Server
Admin
Register
Same Users
SSTP
Server Function
OpenVPN Server
OpenVPN
Server Function
A VPN Server
Computer
11
Log Files
of MS-RRAS
SSTP
Server Function
OpenVPN Server
VPN
Server
Admin
OpenVPN
Server Function
Log Files
of OpenVPN
A VPN Server
Computer
12
IP Pool #1
SSTP
Server Function
Duplicate
IP Address Reserves
192.168.0.151192.168.0.200
OpenVPN Server
IP Pool #2
OpenVPN
Server Function
13
SoftEther
VPN
L2TP
SSTP
OpenVPN
L2TPv3
EtherIP
SoftEtherVPN
14
Windows
OpenVPN
Linux
L2TP
EtherIP
MS-SSTP
L2TPv3
Mac
iPad
Android Tab
Windows RT
iPhone
Android
Windows Phone
15
Management
User authentication
Dynamic IP address assignment to VPN clients
Security
16
L3 VPN Protocols
SoftEther VPN
OpenVPN (L3)
EtherIP/IPsec
L2TPv3/IPsec
L2TP/IPsec
SSTP/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.
18
Design #2
Kernel-mode
Difficult to debug
Lack of portability
Easy to implement
Overhead Problem still occurs
Forwarding
Database
(FDB)
VPN Session #2
VPN Session #1
20
Ethernet Frame
Dest
MAC
Insert an
Ethernet
Header
DHCP Request
TP
ID
User IP Pkt
ARP Request
DHCP Response
L3 <-> L2
Protocol Converter
Session
DHCP Server
IP Address Pool
Src
MAC
ARP Response
Other Hosts
on Ethernet
Ethernet Frame
Dest
MAC
Src
MAC
TP
User IP Pkt
ID
L2 (Ethernet)
L3 (IP)
User IP Pkt
L3-VPN
21
VPN Session
VPN Session
Pass Converted
Ether Frame
L3-VPN Tunnel
L2-VPN Tunnel
Decapsulate
Convert to
Ethernet Frame
Decapsulate
VPN User IP Pkt
Encapsulate
Encapsulate
L2-VPN Client
L3-VPN Client
22
User Authentication
User Auth
Request
Virtual Hub
User Auth
Response
Configured to
Use the
External Radius.
User
Authentication
Database
SSTP
Server Function
User 'A'
Pass '123'
External
User 'B'
Radius Server Pass '456'
L2TP/IPsec
Server Function
Session #2
Session #1
SSTP Client
(e.g. Windows) Login as
User 'A'
Pass '123'
L2TP/IPsec Client
(e.g. Mac OS X) Login as
User 'B'
Pass '456'
23
Security
Virtual Hub
Security Functions
Packet Filter
Packet Logger
Exchange Frames
Ether User IP Pkt
Session #2
User
Authentication
Database
Session #1
Packet
Filter
Rules
Packet Logs
to the Disk
24
Virtual Hub #1
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
Language
C / C++
Local Bridge
Session
Physical
Network Adapter
Virtual Hub #1
Virtual Hub #2
Security Functions
Packet Filter
Packet Logger
Virtual
Layer-3
Switch
Exchange Frames
Ether User IP Pkt
Packet Adapter
Packet Adapter
FDB
VPN Session
#2
VPN Session
#1
Packet Log
Lazy Writer
27
OS Abstraction Layer
SoftEther VPN Functions
(Cedar Module)
Function Calls
Library Routines
(Mayaqua Module)
OS
Independent
Parts
Abstraction Layer
Win32
UNIX
9x
User Mode
NT
Linux
FreeBSD Solaris
Darwin
OS
Dependent
Parts
System Calls
Kernel Mode
NDIS Virtual
Network
Adapter Driver
NDIS
Local Bridge
Driver
tap Driver
SOL_PACKET
Raw Sockets
28
7 Protocol Modules
SoftEther VPN Server
L2 VPNs
Virtual Hub
Mac
iPad
Android Tab
Windows RT
L2TPv3/IPsec
Protocol Module
iPhone
Android
Windows Phone
EtherIP/IPsec
Protocol Module
EtherIP
OpenVPN (L2)
Protocol Module
L2TPv3
OpenVPN (L3)
Protocol Module
OVPNL2
Linux
SSTP
Protocol Module
OVPNL3
L2TP
SE-VPN
Windows
L2TP/IPsec
Protocol Module
SSTP
SE-VPN
Protocol Module
L3 VPNs
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
OpenVPN (L3)
Listener
OpenVPN (L2)
Listener
L2TPv3/IPsec
Listener
EtherIP/IPsec
Listener
OVPNL2
L2TPv3
EtherIP
L2TP
SE-VPN
SSTP
Listener
OVPNL3
L2TP/IPsec
Listener
IPsec
Sub Module
SSTP
SE-VPN
Listener
EtherIP
Sub Module
L2 VPNs
L3 VPNs
31
Tube
(fast lightweight pipe)
Module A
(on Thread 1)
Module A
(on Thread 1)
TubeSend()
Packet
TubeSend()
Packet
TubeFlush()
Synchronization
Object
TubeRecv()
Packet
TubeRecv()
Packet
Module 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
33
Screen Shots
Screen Shots
Screen Shots
Screen Shots
Screen Shots
38
Screen Shots
Screen Shots
40
Screen Shots
Multi-languages Support
41
Evaluation
1. Functional Tests
Self Test
Beta Test
2. Performance Tests
L2TP/IPsec
iOS
Android
Windows
Mac OS X
SSTP
43
OpenVPN
44
L2TPv3/IPsec, EtherIP/IPsec
L2TP/IPsec
SSTP
Windows Vista, 7, 8, RT
OpenVPN (L3)
L2TPv3/IPsec
Cisco 892J
Cisco 1812J
EtherIP/IPsec
NEC IX2015
OpenVPN (L2)
Results
46
4,007 Users on
Jan 09, 2013.
47
Achievement
L2TP
SSTP
OpenVPN
L2TPv3
EtherIP
SoftEtherVPN
SoftEther
VPN (Old)
SoftEther
VPN (New)
Microsoft
RRAS
Mac OS X
Server
OpenVPN
Cisco IOS
NEC IX
Router OS
IIJ SEIL
Router OS
48
Performance Tests
Computer
CPU
RAM
Chipset
Intel C202
NIC #1, #2
OS
49
Target Protocols
Test 1.
Each Protocol (Solo)
Our Implementation vs. Vendors Original Implementation
for L2TP,
for SSTP
for L2TP,
for SSTP,
for OpenVPN
vs.
SoftEther VPN
for OpenVPN
Server PC (k1)
Windows Server
2008 R2 RRAS
(SSTP)
SoftEther VPN
Server 4.0
(SSTP)
SSTP
SSTP
Compare
SSTP
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)
Physical LAN
Server PC (k1)
Server PC (k1)
Windows Server
2008 R2 RRAS
(SSTP)
SoftEther VPN
Server 4.0
(SSTP)
SSTP
SSTP
Compare
SSTP VPN
Client #1
SSTP VPN
Client #1
Client PC #1 (k2)
Client PC #1 (k2)
PC-to-PC VPN
PC (k3)
PC-to-LAN VPN
51
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 Mbps
SEVPN
L2TP
By Original VPN Software
SSTP
52
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 Mbps
SEVPN
L2TP
By Original VPN Software
SSTP
53
Test 2.
Combination of 2 Protocols
Our Implementation (New) vs. Mixture of 2 VPN Programs (Traditional)
vs.
SoftEther VPN
+ Mixture
Mixture
SoftEther VPN
Solo
IP Routing
OpenVPN2.2.2
(L3 Mode)
MS Win2008 R2
SSTP Server
NIC #2
NIC #1
SSTP VPN
Protocol Tunnel
Traffic
OpenVPN (L3)
Protocol Tunnel
Compare
NIC #2
NIC #1
SSTP VPN
Protocol Tunnel
OpenVPN Client
(L3 Mode)
Traffic
OpenVPN (L3)
Protocol Tunnel
OpenVPN Client
(L3 Mode)
VPN Client PC #2 (k3)
54
Combination Matrix
No. Protocol 1
Protocol 2
Bridge / Routing
SEVPN
L2TP/IPsec
IP Routing
SEVPN
SSTP
IP Routing
SEVPN
OpenVPN_L3
IP Routing
SEVPN
OpenVPN_L2
Ethernet Bridging
L2TP/IPsec
SSTP
IP Routing
L2TP/IPsec
OpenVPN_L3
IP Routing
L2TP/IPsec
OpenVPN_L2
IP Routing
SSTP
OpenVPN_L3
IP Routing
SSTP
OpenVPN_L2
IP Routing
10
OpenVPN_L3
OpenVPN_L2
IP Routing
Total 10 Tests
55
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+OVPNL3
SEVPN+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+OVPNL2
OVPNL3+OVPNL2
0 Mbps
SEVPN+L2TP
SEVPN+SSTP
L2TP+SSTP
56
Test2 Results
(Percentage of Improvement)
Percentage of Improvement
120%
111.2%
108.1%
SEVPN+L2TP
SEVPN+SSTP
103.8%
103.5%
SEVPN+OVPNL3
SEVPN+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+OVPNL3
SEVPN+OVPNL2
L2TP+SSTP
L2TP+OVPNL3
L2TP+OVPNL2
SSTP+OVPNL3
SSTP+OVPNL2
OVPNL3+OVPNL2
OVPNL3+OVPNL2
57
Test 3. Evaluation of
OS-Abstraction Layer
4.1.1. SEVPN RC4 PC-to-PC OS Comparison (Throughput)
2,500 Mbps
2,500 Mbps
2,000 Mbps
2,000 Mbps
1,500 Mbps
1,000 Mbps
1,500 Mbps
1,000 Mbps
500 Mbps
500 Mbps
0 Mbps
0 Mbps
Download
Upload
Both
918 915
Download
Upload
Both
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
0 Mbps
500 Mbps
630 645
482
706 673
518
0 Mbps
Download
Upload
Both
Download
Upload
Both
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 Worlds First VPN Server Program for Support All of
Above VPN Protocols.
59
Conclusions #2
Results of Performance Tests show:
Generally better throughputs,
compare to Microsoft and OpenVPNs
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.
61