6.9. 为 IPsec VPN 连接配置 TCP 回退
在阻止 UDP 和封装安全 Payload (ESP)协议的限制网络中,标准 IPsec VPN 可能会失败。为确保此类环境中的连接,Libreswan 可以在 TCP 连接中封装所有 VPN 流量,这是 RFC 8229 中所述的方法。
在 TCP 中封装 VPN 数据包可减少吞吐量并增加延迟。因此,只使用 TCP 封装作为回退选项,或者环境中统一阻止了基于 UDP 的连接。
先决条件
- IPsec 连接已配置。
流程
编辑
/etc/ipsec.conf
文件,并在config setup
部分中进行以下更改:将 Libreswan 配置为侦听 TCP 端口:
listen-tcp=yes
listen-tcp=yes
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 默认情况下,Libreswan 侦听端口 4500。如果要使用不同的端口,请输入:
tcp-remoteport=<port_number>
tcp-remoteport=<port_number>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果 UDP 不可用或永久,则决定是否将 TCP 用作回退选项:
作为回退选项,请输入:
enable-tcp=fallback retransmit-timeout=5s
enable-tcp=fallback retransmit-timeout=5s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 默认情况下,Libreswan 在尝试通过 TCP 重新连接前,会等待 60 秒。降低
retransmit-timeout
值会缩短延迟,从而使回退协议可以更快地启动。作为 UDP 的永久替换,请输入:
enable-tcp=yes
enable-tcp=yes
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
重启
ipsec
服务:systemctl restart ipsec
# systemctl restart ipsec
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果您配置了默认 4500 以外的 TCP 端口,请在防火墙中打开端口:
firewall-cmd --permanent --add-port=<tcp_port>/tcp firewall-cmd --reload
# firewall-cmd --permanent --add-port=<tcp_port>/tcp # firewall-cmd --reload
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 在使用此网关的对等点上重复这个过程。