文章总结: 本文详细介绍在Ubuntu26.04系统使用swanctl结合XFRM网卡实现基于路由的IPsec部署的方法,通过创建虚拟隧道接口替代传统策略模式,实现零停机配置更新和灵活路由集成。关键步骤包括环境准备、strongswan组件安装、XFRM接口配置及性能测试验证,相比策略模式显著提升运维效率。 综合评分: 82 文章分类: 解决方案,安全工具,网络安全,云安全
零停机、性能小升!手把手教你甩掉策略包袱,玩转路由模式IPsec
原创
衡水铁头哥 衡水铁头哥
铁军哥
2026年5月23日 07:36 北京
在小说阅读器读本章
去阅读
前言
频繁改配断网,还在被传统策略IPsec折磨?本文手把手教你在Ubuntu 26.04用swanctl结合XFRM网卡,实现灵活、零停机的基于路由的IPsec部署,让加密隧道化身普通网线,OSPF/BGP也能轻松跑!附完整压测数据!
上次(告别老旧配置!Ubuntu 26.04玩转swanctl配置IPsec全通关指南),我们终于在Ubuntu 26.04这个崭新的网络底座下面,用swanctl拉起了新一代的IPsec VPN。
相比于strongswan-starter的配置方式(strongSwan对接飞塔防火墙),swanctl的整体逻辑不变化不大,但最大的区别在于,它舍弃了陈旧的格式,拥抱了类似JSON的结构化配置文件swanctl.conf,同时将连接策略和密钥管理优雅地融为一体。
我们之前用Juniper防火墙做过测试,当时就介绍了IPsec VPN可以分为两种:基于策略的IPsec VPN(配置Juniper虚墙vSRX基于策略的IPsec VPN(CLI方式)),以及基于路由的IPsec VPN(配置Juniper虚墙vSRX基于路由的IPsec VPN(WEB方式))。
像我们上次的这种配置方式,明确指定了本端网段和对端网段,跟H3C配置ACL感兴趣流一样(strongSwan穿越NAT与公网VSR对接IPsec配置案例),这种就是基于策略的IPsec VPN。在实际使用中,如果我们要调整业务网段,配置会非常麻烦,必须修改两端IPsec的配置,调整ts参数,甚至要重启强拆隧道。
当然,我们之前的IPsec VPN管理系统也是这种实现方式(IPsec穿越NAT太难?用这个strongSwan管理系统,固定/动态IP分支都能轻松接入),只不过WEB页面的配置方式更易懂一些,但是底层实现依旧复杂。
那swanctl能不能配置像Juniper防火墙那种基于路由的IPsec VPN呢?
必须可以啊,今天我们就来做个简单测试。
系统依旧使用我们最新配置的Ubuntu 26.04(拒绝点点点!手把手教你定制Ubuntu 26.04桌面版无人值守镜像,还有隐藏福利),组网拓扑与上次保持一致。
首先,我们配置中间转发设备ttserver6作为路由器节点,使能系统IPv4转发能力,并为两张互联网卡配置IP地址。
sysctl -w net.ipv4.ip_forward=1ip addr add 10.12.1.2/24 dev ens192ip addr add 10.23.1.2/24 dev ens224
然后,我们配置ttserver5端点,配置网卡IP地址,并添加去往对端网段的静态路由,下一跳指向ttserver6。
ip addr add 10.12.1.1/24 dev ens192ip route add 10.23.1.0/24 via 10.12.1.2
ttserver7端点也如法炮制,配置网卡IP地址,并添加去往对端网段的静态路由,下一跳指向ttserver6。
ip addr add 10.23.1.3/24 dev ens192ip route add 10.12.1.0/24 via 10.23.1.2
万丈高楼平地起,现在两台端点设备可以顺畅沟通了,老规矩,咱们先浅浅地打个基线流摸个底。
这3台设备都是Server版本,今天的性能比上次稍微高了一点点,平均带宽超过了7 Gbps,比之前的测试数据稍微好一点(Ubuntu 26.04 转发性能大考:Desktop居然干翻了Server?)。
接下来,我们开始配置strongswan-swanctl。首先,我们在IPsec隧道的两端安装核心组件以及额外的加密插件,避免执行swanctl命令时出现插件缺失报错。
apt-get updateapt-get install -y strongswan strongswan-swanctl libstrongswan-extra-plugins libcharon-extra-pluginsapt list strongswan strongswan-swanctl libstrongswan-extra-plugins libcharon-extra-plugins
同时,我们也不使用基于SSH-Agent的认证,在配置文件/etc/strongswan.conf的末尾追加封印配置,直接禁用agent插件,规避报错,缓解强迫症。
cat << 'EOF' >> /etc/strongswan.confswanctl { plugins { agent { load = no } }}charon { plugins { agent { load = no } }}EOF
要配置基于路由的IPsec VPN,那就要有一个专用的隧道接口,这里我们使用Linux专用于IPsec路由模式的网卡类型XFRM。
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:铁军哥 衡水铁头哥 衡水铁头哥《零停机、性能小升!手把手教你甩掉策略包袱,玩转路由模式IPsec》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。









评论