异地组网,是不是一定要花费高昂的预算去购买专线或者商业SD-WAN服务?对于分支机构分散、预算有限的小微企业或技术爱好者而言,动辄数千元的月费常常是难以承受的门槛。
诚然,我们已经有了ADVPN方案(别再被SD-WAN价格劝退!手把手教你用百元路由器搭建随车移动专线,成本仅1%),但难免有人会觉得专业设备价格偏高,或者认为在云主机上部署VSR过于复杂(别再折腾真机了!阿里云一键部署VSR路由器,全网实验随心配)。
那么,不妨再次审视一下经典的 L2TP VPN 方案。我们之前介绍过使用Ubuntu服务器作为LNS并与VSR对接L2TP VPN的配置案例(从CentOS到Ubuntu:零成本迁移L2TP VPN,企业级内网穿透实战!)。考虑到部分读者的上手难度,我们还专门推出了一键部署脚本,轻松实现业务需求(连WiFi就能切IP!揭秘企业级路由器多VPN出口黑科技!)。
如果我们将这个脚本部署在200 Mbps带宽的腾讯云轻量应用服务器上(腾讯云轻量服务器实测:跑openVPN能到30Mbps!这性价比绝了),方案可行,但存在一个小瑕疵:客户端之间的互访控制不太方便。这是怎么回事?
通常,客户端通过PPP拨号获取到的IP地址,是类似下图中这种32位掩码的主机地址。

这种配置直接限制了客户端只能与服务器通信。如果想让两个LAC客户端互相访问,就需要在双方设备上都添加静态路由。如果只有一端添加了路由,通信就会失败。
当然,不添加路由也行,那就是修改LAC获取的掩码,比如改成24位。不过,这同样需要在所有互访的LAC上进行相同的操作。
你以为这就完了?还有问题:如果不指定拨号用户的IP地址,用户会从地址池中依次获取,IP不固定。如果为拨号用户指定了固定IP,那该用户就无法多终端同时登录了。
这么看来,xl2tpd 这个服务虽然简单,但想把它用好,满足灵活组网的需求,问题还挺复杂的。
那什么叫“用好”呢?举个例子:如果我们有几个办公室,都使用的是没有固定公网IP的家庭宽带,想要异地组网。此时,一台拥有200 Mbps带宽的公网腾讯云轻量服务器,不正是一个完美的中转枢纽吗?
而许多传统或老旧的家用网络设备可能不支持 OpenVPN、WireGuard 等新协议,使用 IPsec 则性能开销较大。但 L2TP 呢?可能几十块钱的家用路由器就能支持(我用100块钱把物理服务器放到了公网,省了几万块!)。
这样一来,我们只需要两台普通的家用路由器,再加上一台月费约40元的腾讯云轻量应用服务器,就能搭建一个简易的HUB-SPOKE(中心-分支)全互联组网,难道不香吗?

安装依旧很简单,直接运行脚本即可。按照提示配置LAC地址池的起始IP和结束IP;指定LNS的IP地址(即LAC的网关地址);再配置主备DNS和用户登录信息。如果没有固定分配IP地址的需求,客户端IP地址栏留空即可。

等待脚本执行完成,看到服务状态提示为 【运行中】 即可。然后使用用户列表中的用户名和密码登录。
如果想添加一个获取固定IP地址的用户,可以参考下图配置:先输入 4 进入用户管理,此时会展示当前所有用户列表。再输入 1 选择添加用户,配置用户名、密码和指定的IP地址即可。

配置完成后,可以在用户列表中看到新添加的用户。
接下来,我们到路由器上新建一个L2TP拨号连接。
#
l2tp enable
#
l2tp-group 14 mode lac
lns-ip host-name sh.h3cai.cn
undo tunnel authentication
tunnel name LAC
#
interface Virtual-PPP14
ppp chap password simple shanghai
ppp chap user shanghai
ip address ppp-negotiate
l2tp-auto-client l2tp-group 14
配置时,推荐先让客户端自动获取IP,以检验L2TP服务端与客户端的配置是否正确。

可以看到,LAC默认获取了地址池中的第一个IP 10.118.89.100/32。检查LNS侧的地址分配情况。

此时,LNS也知道客户端的地址是 10.118.89.100/32。我们在LAC上修改接口地址的掩码,将其改为24位试试。

可以看到,掩码改成24位之后,系统自动生成了一条 10.118.89.0/24 的直连路由,无需再手工配置静态路由来实现同网段互通,这简化了运维管理。

同时,LNS侧也能正确识别LAC修改后的IP地址了。要知道,这在默认的 xl2tpd 配置下是做不到的,是我们优化脚本带来的便利。
然后,我们再以同样的方式配置另一台LAC,并测试它们之间的互通性。

就这样,两台位于不同地域的设备通过云服务器轻松实现了互通,一个低成本异地组网方案就成功了。
通过这个案例,我们再次看到:技术选型不一定要追新,关键是适用。L2TP这个老牌网络协议,凭借其极高的设备兼容性和足以满足大多数场景的性能,在低成本组网领域焕发了第二春。结合云服务器带来的公网IP和弹性带宽,它完美解决了小微企业异地组网的燃眉之急。
这种基于L2TP协议,利用家用路由器和云服务器搭建的VPN枢纽方案,你觉得如何?是否够物美价廉?你的网络环境中,是否有可以用这种极简方案解决的痛点?欢迎在云栈社区与大家分享你的想法。