这里使用的群晖型号为 DS418Play ,实测下来 PPPoE NET4 模式下网速只能达到 100Mbps ~ 300Mbps ,所以在这里特别说明一下,软路由也是需要性能的!千万不要变成作者一样的小丑。
网络设备结构图
下面分别是在使用软路由前和使用软路由后的网络设备结构图。
graph TD
LT{{联通 1Gbps}} -- 1Gbps --- C[路由器]
DX{{电信 300Mbps}} -- 1Gbps --- A[路由器]
YD{{移动 4G}} -- 4G --- B[路由器]
A[路由器] -- 100Mbps --- B[路由器]
B[路由器] -- WiFi --- WiFiA([WiFi 2.4Ghz])
A[路由器] -- 1Gbps --- C[路由器]
B[路由器] -- 100Mbps --- C[路由器]
C[路由器] -- 1Gbps --- 主电脑
C[路由器] -- 1Gbps --- 交换机
交换机 -- 1Gbps --- 群晖
群晖 -- 1Gbps --- 主电脑
交换机 -- 100Mbps --- 花生壳
交换机 -- 1Gbps --- 电脑A
交换机 -- 1Gbps --- 电脑B
交换机 -- 100Mbps --- D[路由器]
D[路由器] -- 100Mbps --- E[路由器]
D[路由器] -- WiFi --- WiFiB([WiFi 2.4Ghz])
E[路由器] -- WiFi --- WiFiC([WiFi 2.4Ghz/5GHz])
subgraph 接入
LT{{联通 1Gbps}}
DX{{电信 300Mbps}}
YD{{移动 4G}}
end
subgraph 机房
A[路由器]
B[路由器]
C[路由器]
群晖
主电脑
交换机
花生壳
end
subgraph 客厅
电脑A
电脑B
D[路由器]
E[路由器]
end
subgraph AP
WiFiA([WiFi 2.4Ghz])
WiFiB([WiFi 2.4Ghz])
WiFiC([WiFi 2.4Ghz/5GHz])
end
graph TD
LT{{联通 1Gbps}} -- 1Gbps --- A[交换机]
DX{{电信 300Mbps}} -- 1Gbps --- A[交换机]
YD{{移动 4G}} -- 4G --- B[路由器]
B[路由器] -- 100Mbps --- A[交换机]
A[交换机] -- 1Gbps --- C[交换机]
A[交换机] -- 1Gbps --- D[路由器]
C[交换机] -- 1Gbps --- E[路由器]
D[路由器] -- WiFi --- WiFiB([WiFi 2.4Ghz])
E[路由器] -- WiFi --- WiFiC([WiFi 2.4Ghz/5GHz])
C[交换机] -- 1Gbps --- 电脑A
C[交换机] -- 1Gbps --- 电脑B
A[交换机] -- 100Mbps --- 花生壳
A[交换机] -- 1Gbps --- 主电脑
A[交换机] -- 1Gbps --- 主电脑
A[交换机] -- 1Gbps --- 群晖
A[交换机] -- 1Gbps --- 群晖
subgraph 接入
LT{{联通 1Gbps}}
DX{{电信 300Mbps}}
YD{{移动 4G}}
end
subgraph 机房
A[交换机]
B[路由器]
D[路由器]
群晖
主电脑
花生壳
end
subgraph 客厅
C[交换机]
电脑A
电脑B
E[路由器]
end
subgraph AP
WiFiB([WiFi 2.4Ghz])
WiFiC([WiFi 2.4Ghz/5GHz])
end
单臂软路由基本原理
作者对网络结构的了解非常少,下面的原理可能出现概念错误。
路由器是连接两个或多个网络的设备,下面以一个 1 WAN 3 LAN 的路由器为例。
graph TD
A[WAN] --- 路由器
路由器 --- B[LAN]
路由器 --- C[LAN]
路由器 --- D[LAN]
其中路由器同时属于两个网络,即 WAN 口的广域网和 LAN 口的局域网,路由器可以访问两个网络,同时两个网络又相互隔离互不影响。而在单臂软路由的方案中,核心是一个交换机,而软路由通过单一网线连接到交换机上。
graph TD
A[WAN] --- 交换机
B[LAN] --- 交换机
C[LAN] --- 交换机
D[LAN] --- 交换机
交换机 --- 软路由
在默认情况下同一个交换机连接的设备都同属于一个网络,WAN 和 LAN 的数据会互相影响,所以要通过 VLAN 划分两个虚拟网络,分别对应 WAN 口的广域网和 LAN 口的局域网,这样就可以将两个网络隔离开,且允许软路由访问他们。为何路由器的 WAN 和 LAN 需要隔离?
graph TD
A[WAN] --- AP[网口] --- AS[交换机 VLAN-A]
B[LAN] --- BP[网口] --- BS[交换机 VLAN-B]
C[LAN] --- CP[网口] --- BS[交换机 VLAN-B]
D[LAN] --- DP[网口] --- BS[交换机 VLAN-B]
AS[交换机 VLAN-A] --- SP[网口]
BS[交换机 VLAN-B] --- SP[网口]
SP[网口] -.- RP[网口]
RP[网口] --- AVS[虚拟交换机 VLAN-A]
RP[网口] --- BVS[虚拟交换机 VLAN-B]
AVS[虚拟交换机 VLAN-A] --- AVP[虚拟网口] --- 软路由系统
BVS[虚拟交换机 VLAN-B] --- BVP[虚拟网口] --- 软路由系统
subgraph 交换机
AP[网口]
BP[网口]
CP[网口]
DP[网口]
AS[交换机 VLAN-A]
BS[交换机 VLAN-B]
SP[网口]
end
subgraph 宿主机
RP[网口]
AVS[虚拟交换机 VLAN-A]
BVS[虚拟交换机 VLAN-B]
subgraph 软路由虚拟机
AVP[虚拟网口]
BVP[虚拟网口]
软路由系统
end
end
如图所示,VLAN 可以将一个交换机分成多个交换机,其中虚线表示的网线同时传输不同 VLAN 的数据,然后通过分别在物理交换机和宿主机虚拟交换机设置 VLAN ,就可以实现软路由系统对 WAN 和 LAN 的访问了。
配置单臂软路由
在本例中,我的需求是实现 3 WAN – 多 LAN 的单臂路由系统。
其中以群晖 DS418Play 作为软路由核心,配合 16 口的交换机 TL-SG2016K 实现。
注意这里需要带 VLAN 功能的网管交换机。
graph TD
WAN1 --- AP[网口 16] --- AS[VLAN 16]
WAN2 --- BP[网口 15] --- BS[VLAN 15]
WAN3 --- CP[网口 14] --- CS[VLAN 14]
LANs --- DP[网口 1-13] --- DS[VLAN 1]
AS[VLAN 16] --- EP[网口 1]
BS[VLAN 15] --- EP[网口 1]
CS[VLAN 14] --- EP[网口 1]
DS[VLAN 1] --- EP[网口 1]
AS[VLAN 16] --- FP[网口 2]
BS[VLAN 15] --- FP[网口 2]
CS[VLAN 14] --- FP[网口 2]
DS[VLAN 1] --- FP[网口 2]
EP[网口 1] -.- NP[网口 1]
FP[网口 2] -.- MP[网口 2]
NP[网口 1] --- DVS[虚拟交换机 VLAN 1]
MP[网口 2] --- AVS[虚拟交换机 VLAN 16]
MP[网口 2] --- BVS[虚拟交换机 VLAN 15]
MP[网口 2] --- CVS[虚拟交换机 VLAN 14]
AVS[虚拟交换机 VLAN 16] --- AVP[虚拟网口 WAN1] --- 软路由系统
BVS[虚拟交换机 VLAN 15] --- BVP[虚拟网口 WAN2] --- 软路由系统
CVS[虚拟交换机 VLAN 14] --- CVP[虚拟网口 WAN3] --- 软路由系统
DVS[虚拟交换机 VLAN 1] --- DVP[虚拟网口 LANs] --- 软路由系统
NP[网口 1] --- Host
MP[网口 2] --- Host
subgraph 交换机 TL-SG2016K
AP[网口 16]
BP[网口 15]
CP[网口 14]
DP[网口 1-13]
AS[VLAN 16]
BS[VLAN 15]
CS[VLAN 14]
DS[VLAN 1]
EP[网口 1]
FP[网口 2]
end
subgraph 群晖 DS418Play
Host
NP[网口 1]
MP[网口 2]
AVS[虚拟交换机 VLAN 16]
BVS[虚拟交换机 VLAN 15]
CVS[虚拟交换机 VLAN 14]
DVS[虚拟交换机 VLAN 1]
subgraph 软路由虚拟机 iKuai
AVP[虚拟网口 WAN1]
BVP[虚拟网口 WAN2]
CVP[虚拟网口 WAN3]
DVP[虚拟网口 LANs]
软路由系统
end
end
基本思路如上图所示,因为 DS418Play 是双网口配置,最初想着链路聚合得到更快的速度,但是发现交换机不支持动态链路聚合就放弃了。大家买东西一定要看好配置。
首先需要设置交换机的 VLAN ,将电脑和交换机连接,注意一定要连接到将来属于 VLAN 1 接口上(例如此例中的 1-13 口),因为交换机可能只允许连接到 VLAN 1 的设备登录交换机,如果接入了别的接口可能设置到一半掉线,造成不必要的麻烦。如图所示,默认的管理 VLAN 是 1 。
然后转到 802.1Q VLAN 配置页面,这个页面用来配置不同端口的 VLAN 划分以及端口类型,其中端口类型分为 Untagged 和 Tagged 。我们一般电脑和路由器在不做特殊设置的情况下,都是发送 Untagged 数据的,也就是没有 VLAN 标签的数据,所以要把连接到电脑和 WAN 的接口设置为 Untagged 。而作为软路由的群晖需要得知数据属于哪个 VLAN ,所以需要将端口设置为 Tagged 。按照需求将各个 WAN 以及所有的 LAN 口划分到不同的 VLAN 设置好端口类型就好了。
最后转到 802.1Q VLAN PVID 配置页面,PVID 用来标识端口接收到的未标记数据,当端口收到未标记的数据时,交换机会给该数据打上该端口 PVID 对应的 VLAN 标签,主要是针对 Untagged 端口。按照需求设置每个端口为其所属的 VLAN 就好了。
到这里交换机的 VLAN 就设置完成了,将连接 WAN 和群晖的网线接入,进行群晖虚拟机的设置。首先下载 iKuai 固件 的 IMG 硬盘镜像版本,如果预留的内存小于 4GB 推荐下载 32位 版本,下载完成后导入群晖 VMM 。
然后配置 VMM 虚拟交换机,注意设置每个交换机的 VLAN ID 与物理交换机对应。
最后从硬盘镜像导入虚拟机。
设置 CPU RAM 等,推荐 RAM 至少 1G 以上,设置虚拟机优先级为高。
设置硬盘时选择刚才导入的硬盘镜像文件。
设置网络,实际上就是设置虚拟网卡,注意设置的顺序,一会要和 iKuai 里面对应起来。
设置自动启动,建议将自动启动设置为是,防止群晖出现因故障重启后网络瘫痪失联等问题。
开启虚拟机并进入,通过命令行菜单绑定四个网卡,注意顺序与刚才设置的虚拟网卡对应。
下面就是进入 iKuai 的 Web 管理界面配置软路由了,默认情况下 iKuai 不开启 DHCP ,所以在将电脑连接至交换机的 LAN 口后手动配置静态 IP (192.168.1.X),才能登陆到 iKuai 。登陆到 iKuai 后先配置 DHCP 服务器,如图所示。
这样就能将电脑的静态 IP 改回动态 IP 了。特别的,在配置群晖主机的网络设置时,启用 VLAN 支持。
最后配置 WAN 口 PPPoE 拨号等上网设置就完成了!