前言
异地组网是将地理位置不同的局域网下所有网络设备互通,实现资源的共享和互联。无论是企业用户和个人用户都可以通过异地组网实现远程办公、数据共享。
众所周知,蒲公英智能组网方案中,免费版支持了3台免费成员异地互访,但是在实际使用中,往往是整个局域网的所有设备都有访问需求,所以在此背景下,此篇文章顺势而生。
仅利用蒲公英智能组网方案中2台免费成员,实现异地局域网所有网络设备的互通。
tips:不限速是指形成点对点传输的情况下实现的,文末附测试结果。免费也是需要设备的,只不过可利用手头设备实现。
异地组网原理(★★)
一、底层原理概述
(一)在什么基础上实现的?
VPN+P2P:蒲公英智能组网方案会实现2台免费成员组成虚拟局域网(VPN),这2台免费成员可以连接组成(P2P)隧道技术进行通信。
(二)那些设备可以成为这2台免费成员?
可以是付费购买的2台蒲公英路由器,也可以是免费在手头设备上安装的蒲公英软件,如果你有这些:x86架构linux主机、群晖、斐讯N1、树莓派4等硬件,那么恭喜你,咱们可以进行下一步,本文标题中免费的含义也在于此。
(三)如何进行两地局域网对接的?(★)
想象:如果你的一台设备能做其他设备所不能事情,即有一台设备有特殊功能,比如去广告、网络管理、轻NAS、VPN……说到这里你恍然大悟了吧,可能有些童鞋还不懂,我继续说,把这台有特殊功能的设备ip地址当做网关,那么整个局域网的设备都能享受到这些特殊功能了,得了,揭晓谜底:这就是旁路由原理。
把这2台免费成员分别在各自局域网中充当旁路由,让各自局域网需要访问异地网络设备的数据进入旁路由,那么两地局域网设备就都实现了互通。
二、原理(★)
(一)“铺路”
安装蒲公英软件,搭建蒲公英虚拟局域网(VPN),打通隧道(P2P)。
(二)“导航”
网关(主路由和旁路由)添加静态路由。
异地组网实例
本文将以具体实例进行推演,大家可根据自身实际情况进行调整。
一、设备介绍及整体框架
公 司 | 旁路由 | 群晖NAS&Docker | 群晖NAS安装Docker作为旁路由 |
主路由 | iKuai路由器 | 非必需,主路由 | |
用网设备 | 公司电脑等 | 用网设备 | |
家 庭 | 旁路由 | 蒲公英P5 | 非必需,见备注 |
主路由 | TP-Link路由器 | 非必需,主路由 | |
用网设备 | 家庭电脑、电视等 | 用网设备 |
备注:旁路由可替换为x86架构linux主机、群晖、斐讯N1、树莓派4、蒲公英路由器等设备。
核心框架:
公司网段:192.168.5.0/24 主路由:192.168.5.1 旁路由:192.168.5.20
家庭网段:192.168.0.0/24 主路由:192.168.0.1 旁路由:192.168.0.20
蒲公英虚拟网卡:ORAY_VNC
蒲公英虚拟网段:172.16.0.0/16 (缺省网关:0.0.0.0)
公司旁路由虚拟IP:172.16.2.193
家庭旁路由虚拟IP:172.16.2.150
二、原理拆解(★★)
(一)“铺路”
——参考文献太多不在此赘述,如有困难请评论区留言
1.群晖NAS安装蒲公英客户端:http://t.csdnimg.cn/XrTo6
2.其他设备安装蒲公英客户端:https://pgy.oray.com/download
3.安装成功只需输入代码:
ifconfig | grep oray
只要出现oray_vnc网卡信息就算成功。
oray_vnc:flags = 4163 <UP,BROADCAST,RUNNING,MULTICAST> mtu 1300
(二)“导航”(★)
tips:可略过此过程直接到(三)总结
“铺路”成功了,就叫蒲公英大路172.16.0.0/16吧,但是数据们并不走这条路,这是为啥呢?
提出问题
公司数据从公司电脑出发,要去家庭电脑访问,你说咋过去家庭电脑嘞?
分析问题
公司数据本地192.168.5.0/24,家庭电脑所在地192.168.0.0/24,也就是要去的地方不在本地,要想跨越地理位置访问,必须在本地添加要去的所在地的静态路由,在本地哪些地方添加呢,公司数据要去的具体路线如下:
1.找本地管事儿的ikuai路由器,在ikuai路由器添加静态路由,导航到群晖NAS;
2.在群晖NAS添加静态路由导航沿着蒲公英大路走到蒲公英P5;
3.在蒲公英P5所在地找到管事儿的TP-Link路由器,找到家庭电脑。over~
解决问题
1.找到本地管事儿的,公司数据走到了iKuai路由器这里。
iKuai路由器:“诶呀,你要去的地方不在本地,我给你送到群晖NAS(192.168.5.20)那里吧,他那修建了一个蒲公英大路172.16.0.0/16,估计可以到”
说着将下图添加到了路由表里:
——触发支线任务:iKuai路由器:“诶呀,从外地蒲公英大路172.16.0.0/16来的人,我也直接送到群晖NAS(192.168.5.20),让他处理”
说着将下图添加到了路由表里:
iKuai路由器:“ok,办完了,走你”一脚踹飞~
2.被iKuai路由器一脚踹到了群晖NAS这里。
群晖NAS:“呀呼,从我家门口刚修的这条蒲公英大路172.16.0.0/16走过去,让这条路的开发商oray_vnc引路,找到我邻居蒲公英P5(172.16.2.150),他在那边住,让他问问”
说着在自己的路由表里写下了这么一行代码添加到了路由表里:
route add -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.2.150 dev oray_vnc
——触发支线任务:群晖NAS:“从外地蒲公英大路172.16.0.0/16来的人,我让他们直接找开发商oray_vnc,让他引路”
route add -net 172.16.0.0 netmask 255.255.0.0 dev oray_vnc
群晖NAS:“办完了,走吧”
3.到了蒲公英P5就到了家庭电脑的所在地,那想找家庭电脑那不是就如同访问本地一样轻松了。
哈哈,换个问法~
变式问题:家庭数据从家庭电脑出发,要去公司电脑访问。
解决问题:为对称写法,请自行抄写,谢谢~
这个过程如有其他见解或讨论,欢迎评论区留言~
(三)总结
iKuai路由器
群晖NAS
admin@DSM:/$ route -n
Kernel IP routing table
Destination Gateway Genmask Iface
172.16.0.0 0.0.0.0 255.255.0.0 oray_vnc
192.168.0.0 172.16.2.150 255.255.255.0 oray_vnc
TP-Link路由器
蒲公英P5
P5-2210#route -n
Kernel IP routing table
Destination Gateway Genmask Use Iface
172.16.0.0 0.0.0.0 255.255.0.0 oray_vnc
192.168.5.0 172.16.2.193 255.255.255.0 oray_vnc
tips:静态路由查漏补缺即可,有些系统已经自动添加。
异地组网部分问题
重启或重启网络服务静态路由消失,部分ip地址无法访问等问题,可以采用脚本的方法添加静态路由和防火墙规则。
参考:《linux添加永久静态路由和防火墙规则》http://t.csdnimg.cn/tSN52
无图无真相的吃瓜群众可以继续看~
测试
由于此网络实际情况为家宽百兆上行,各位看官海涵~
能耐心看到这里的,thanks very much~