0%

SoftEther VPN - Site to Site L2 Bridge VPN

架構說明

sito2sitel2
本實驗使用 vsphere Esxi 建立的LAB。此實驗目的要讓分屬在不同的廣域網路透過SoftEther VPN 將兩者串接在一起,形成邏輯上的區域網路。換言之,假設圖中 Site B 是位於台中辦公室; Site A 位於台北辦公室,透過SoftEther VPN串接起來,台中與台北辦公室彼此就可透過區域網路的方式互傳資料,或是台中有架一台DHCP Server(假設是 192.168.11.110-150);台北辦公室的Client端就可以分配到一個私有IP(192.168.11.x)。

上面架構圖中右邊 顯示 vSwitch5 應改成 vSwitch4

因為只是模擬的實驗,192.168.88.62 與 192.168.88.63當作是網域網路的Public IP。vSwitch0 , vSwitch 3及vSwitch 4是 Vsphere Esxi 模擬出來的。像是如下
vswitch0
vswitch3_4

安裝SoftEther VPN Server 及配置

- 安裝SoftEther VPN Server 及 啟動 vpnserver 執行到 make 就依照 它提問進行即可。
1
2
3
4
5
6
7
8
9
10
11
12
13
# cd /usr/local/src/
# wget http://www.softether-download.com/files/softether/v4.24-9651-beta-2017.10.23-tree/Linux/SoftEther_VPN_Server/64bit_-_Intel_x64_or_AMD64/softether-vpnserver-v4.24-9651-beta-2017.10.23-linux-x64-64bit.tar.gz
# tar zxf softether-vpnserver-v4.24-9651-beta-2017.10.23-linux-x64-64bit.tar.gz
# cd vpnserver/
# make

cd ..
mv vpnserver/ /usr/local/
cd /usr/local/vpnserver

chmod 600 *
chmod 700 vpnserver
chmod 700 vpncmd
vpnserver 啟動腳本; /etc/init.d/vpnserver
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#!/bin/sh
# chkconfig: 2345 99 01
# description: SoftEther VPN Server
DAEMON=/usr/local/vpnserver/vpnserver
LOCK=/var/lock/subsys/vpnserver
test -x $DAEMON || exit 0
case "$1" in
start)
$DAEMON start
touch $LOCK
;;
stop)
$DAEMON stop
rm $LOCK
;;
restart)
$DAEMON stop
sleep 3
$DAEMON start
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
esac
exit 0
- 在啟動 vpnserver 之前 ,先使用vpncmd check 系統狀態 選擇 3 , 打上 check 指令。
1
2
3
4
cd /usr/local/vpnserver
./vpncmd

VPN Tools>check
- 更改權限,設定開機啟動及啟動 vpnserver
1
2
3
chmod a+x /etc/init.d/vpnserver
chkconfig --add vpnserver
/etc/init.d/vpnserver start
- 建立一個 Virtual Hub 名為 Taichung , 並切換到該 Virtual Hub
1
2
VPN Server>hubcreate Taichung
VPN Server>hub Taichung
- 設定使用者帳號及密碼 ; VPN Server 與 bridge 建立聯結(Cascade)時需要的
1
2
VPN Server/Taichung>usercreate amy
VPN Server/Taichung>userpasswordset amy
- show virtual hub list
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
VPN Server/Taichung>hublist
HubList 命令 - 获取一个虚拟 HUB 列表
项目 |价值
------------+-------------------
虚拟 HUB 名 |DEFAULT
状态 |在线
类型 |独立
用户 |0
组 |0
会话 |0
MAC 表 |0
IP 表 |0
登录次数 |0
最后登录时间|2017-12-16 15:45:32
最后通信时间|2017-12-16 15:45:32
传输字节 |0
传输数据包 |0
------------+-------------------
虚拟 HUB 名 |Taichung
状态 |在线
类型 |独立
用户 |1
组 |0
会话 |0
MAC 表 |0
IP 表 |0
登录次数 |0
最后登录时间|2017-12-16 15:51:59
最后通信时间|2017-12-16 15:51:59
传输字节 |0
传输数据包 |0
命令成功完成。
- 建立 local bridge 。 將 此Lab的 eth1 加入 local bridge , 再將 local bridge 加入到 virtual hub 使用 bridgecreate 指令。
1
2
3
VPN Server/Taichung>bridgecreate Taichung
BridgeCreate 命令 - 创建本地的网桥连接
目标网桥的设备名称: eth1
- 看local bridge 狀態
1
2
3
4
5
VPN Server/Taichung>bridgelist
BridgeList 命令 - 获得当地网桥连接列表
编号|虚拟 HUB 名称|网络适配器或 tap 设备名称|状态
----+-------------+-------------------------+------
1 |Taichung |eth1 |运行中

架設DHCP Server

架構圖中有一台DHCP Server,主要驗證整個環境的應用;DHCP Server 發出的廣播封包是否可到達廣域網路的另一端。
  • 此台機器 先忽略 防火牆防護
    1
    iptables -F
  • 安裝 dnsmasq
    1
    # yum instal dnsmasq
  • 設定 dnsmasq ; /etc/dnsmasq.conf
    1
    2
    3
    4
    5
    6
    7
    8
    port=
    dhcp-leasefile=/tmp/dnsmasq.leases
    interface=eth1
    dhcp-range=192.168.11.101,192.168.11.115,12h
    dhcp-option=1,255.255.255.0 #subnet mask
    dhcp-option=28,192.168.11.255 #broadcast
    dhcp-option=3,192.168.11.250 #default gateway
    dhcp-option=6,192.168.11.251 #DNS
  • 啟動 dnsmasq
    1
    /etc/init.d/dnsmasq start

安裝SoftEther VPN bridge及配

- 安裝SoftEther VPN bridge
1
2
3
4
5
6
7
8
9
10
11
# cd /usr/local/src/
# wget http://www.softether-download.com/files/softether/v4.24-9651-beta-2017.10.23-tree/Linux/SoftEther_VPN_Bridge/32bit_-_Intel_x86/softether-vpnbridge-v4.24-9651-beta-2017.10.23-linux-x86-32bit.tar.gz
# tar zxf softether-vpnbridge-v4.24-9651-beta-2017.10.23-linux-x86-32bit.tar.gz
# cd vpnbridge
# make
# cd ..
# mv vpnbridge/ /usr/local/
# cd /usr/local/vpnbridge/
# chmod 600 *
# chmod 700 vpnserver
# chmod 700 vpncmd
- 建立 vpn bridge 啟動檔; /etc/init.d/vpnbridge
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#!/bin/sh
# chkconfig: 2345 99 01
# description: SoftEther VPN Server
DAEMON=/usr/local/vpnbridge/vpnbridge
LOCK=/var/lock/subsys/vpnbridge
test -x $DAEMON || exit 0
case "$1" in
start)
$DAEMON start
touch $LOCK
;;
stop)
$DAEMON stop
rm $LOCK
;;
restart)
$DAEMON stop
sleep 3
$DAEMON start
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
esac
exit 0
- 在啟動 vpnbridge 之前 ,先使用vpncmd check 系統狀態 選擇 3 , 打上 check 指令。 與上一節vpnserver 一樣。 - 更改權限,設定開機啟動及啟動 vpnbridge
1
2
3
chmod a+x /etc/init.d/vpnbridge  
chkconfig --add vpnbridge
/etc/init.d/vpnbridge start
- 開始配置設定。 執行 /usr/local/vpnbridge/vpncmd
1
2
3
# /usr/local/vpnbridge/vpncmd
選擇1
不用填寫 目标 IP 地址的主機名 , 指定虚擬 HUB 名稱 ,按 Enter 直接略過。
- SoftEther bridge 預設已 建立 名為 bridge 的 virtual hub ,直接建立 local bridge - show virtual hub list
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
VPN Server>hublist
HubList 命令 - 获取一个虚拟 HUB 列表
项目 |价值
------------+-------------------
虚拟 HUB 名 |BRIDGE
状态 |在线
类型 |独立
用户 |0
组 |0
会话 |2
MAC 表 |5
IP 表 |4
登录次数 |0
最后登录时间|2017-12-16 16:24:36
最后通信时间|2017-12-16 18:05:06
传输字节 |3,665,196
传输数据包 |39,112
命令成功完成。
- 建立 local bridge 。 將 此Lab的 eth1 加入 local bridge , 再將 local bridge 加入到 virtual hub
1
2
3
4
5
VPN Server>bridgecreate 
BridgeCreate 命令 - 创建本地的网桥连接
网桥虚拟 HUB 名称: bridge

目标网桥的设备名称: eth1
1
2
3
4
5
6
VPN Server>bridgelist
BridgeList 命令 - 获得当地网桥连接列表
编号|虚拟 HUB 名称|网络适配器或 tap 设备名称|状态
----+-------------+-------------------------+------
1 |bridge |eth1 |运行中
命令成功完成。

串接

上面SoftEther VPN Server 與 Bridge 各自已安裝完成及設定好,現在要執行將 softEther Bridge 與 SoftEther Server 做串接(Cascade)。 - 在SoftEther Bridge那一台 執行 vpncmd
1
2
# /usr/local/vpnbridge/vpncmd
選擇1
- 交換到 virtual hub 為 bridge
1
VPN Server>hub bridge
- 建立聯結名稱為 VPN , 設定 VPN Server 為 192.168.88.62:443 , VPN Server 的 虛擬 HUB 為 Taichung, 及 設定聯結的使用者為 amy (在VPN server 階段建立的)
1
2
3
4
5
6
7
VPN Server/BRIDGE>cascadecreate
CascadeCreate 命令 - 创建一个新的级联接续
级联接续的名称: VPN
目标 VPN Server 的主机名和端口号: 192.168.88.62:443
目标虚拟 HUB 名称: Taichung
连接使用的用户名: amy
命令成功完成。
- 指令為「cascadepasswordset」,並輸入串接連結名稱為「VPN」,接著輸入之前在VPN Server設定的使用者密碼,最後選擇使用「standard」
1
2
3
4
5
6
7
8
9
VPN Server/BRIDGE>cascadepasswordset VPN
CascadePasswordSet 命令 - 将级联连接时所需的用户验证设置为密码验证
请输入密码。要取消,请按下 Ctrl + D 键。

密码 : **********
确认输入: **********

指定 standard 或者 radius: standard
命令成功完成。
- 執行 cascadeonline 指令 進行串接
1
2
3
VPN Server/BRIDGE>cascadeonline VPN
CascadeOnline 命令 - 设置级联接续的在线状态
命令成功完成。
- 執行 cascadestatusget 指令獲取串接狀態
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
VPN Server/BRIDGE>cascadestatusget
CascadeStatusGet 命令 - 获取级联的当前状态
级联接续的名称: VPN

项目 |价值
-------------------+----------------------------------------
VPN 连接设置名称 |VPN
会话状态 |连接完成 (会话建立)
VLAN ID |-
服务器名 |192.168.88.62
端口号 |TCP 端口 443
服务端产品名称 |SoftEther VPN Server (32 bit)
服务端版本 |4.24
服务端内部标号 |Build 9651
连接开始时间 |2017年12月16日(星期六) 16点41分 7秒
首次会话建立时间 |2017年12月16日(星期六) 16点41分 7秒
当前会话建立时间 |2017年12月16日(星期六) 16点41分 7秒
已建立的会话数 |1 次
半双工 TCP 连接模式|否 (全双工模式)
VoIP / QoS 功能 |已启用
TCP 连接数 |8
TCP 连接数最大值 |8
加密 |已启用 (算法: AES128-SHA)
使用压缩 |否 (不压缩)
物理底层协议 |Standard TCP/IP (IPv4)
支持 UDP 加速 |是
UDP 加速已激活 |是
会话名 |SID-AMY-2
连接名 |CID-4
会话密钥 (160 位) |DDA3FED7FFCAC795C104C4CFC2982876AAE506E7
网桥 / 路由模式 |是
监测模式 |否
输出数据量 |4,947 字节
输入数据量 |4,998 字节
传出单播数据包 |3 数据包
传出单播总量 |180 字节
传出广播数据包 |6 数据包
传出广播总量 |502 字节
传入单播数据包 |3 数据包
传入单播总量 |126 字节
传入广播数据包 |0 数据包
传入广播总量 |0 字节
命令成功完成。

Client端驗證

開啟client 端, 將網路設定DHCP 。重新整理網路,看是否有抓到192.168.11.x 這個網段的IP

參考資料

歡迎關注我的其它發布渠道