架構說明
本實驗使用 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 模擬出來的。像是如下
安裝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 發出的廣播封包是否可到達廣域網路的另一端。
此台機器 先忽略 防火牆防護
安裝 dnsmasq
設定 dnsmasq ; /etc/dnsmasq.conf1 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
啟動 dnsmasq1 /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
- 建立聯結名稱為 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
參考資料