问题标签 [strongswan]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
azure - 在 AKS 上访问 IKEv2 VPN (strongswan) 后面的 kubernetes 服务
我正在尝试使用 strongswan 网关在一个 VM(子网:20.25.0.0/16)和一个 AKS 集群(子网:10.0.0.0/16 - Azure CNI)之间建立一个 IKEv2 VPN。我需要访问这个 AKS 集群后面的一些 kubernetes 服务。使用 Azure CNI,将为每个 pod 分配一个来自在创建集群时指定的 POD 子网的 IP 地址,该子网附加在每个节点的接口 eth0 中。clusterIP 类型的 kubernetes 服务已经从集群创建时指定的服务 CIDR 范围获取 IP,但该 IP 仅在集群中可用,不附加在节点的任何接口中,如 POD 子网。
要在 K8S 上运行 strongswan,除了启用 NET_ADMIN 功能外,还需要挂载内核模块(/lib/modules)。因此 VPN 隧道是使用主机(节点)接口上连接的任何网络建立的,因此我无法使用在集群创建时指定的服务 CIDR 范围建立 VPN,因为此 IP 仅在集群内通过个性化路由知道并且不附加在任何主机接口上。如果我尝试配置使用在创建集群时通知的 CIDR 服务范围的子网建立的 VPN,我会收到一条错误消息,指出在任何接口中都找不到子网。
为了解决这个问题,我意识到我可以配置一条隧道来通知具有更大范围的子网,只要我的接口中连接的子网在更广泛的通知范围内。例如,我可以配置一个 VPN 通知子网 10.0.0.0/16,但我的 pod 和节点子网(附加在 eth0 中)是 10.0.0.0/17,服务的 CIDR 范围是 10.0.128.0/17,这样所有流量 10.0.0.0/16 都通过 vpn 隧道路由。通过这种方式,作为一种解决方法,我将我的服务 CIDR 定义为 pod 和节点网络之后的网络,并使用与两者重叠的网络配置 VPN。
来自 VPN (VM) 一侧的所有 10.0.0.0/16 流量都正确路由到内部隧道。如果我尝试使用 Pod 子网 (10.0.0.0/17) 中的任何 IP 直接访问 Pod,一切正常。问题是,如果我尝试使用来自 CIDR 的服务 IP(10.0.128.0/17)访问 kubernetes 服务,则在 K8S 服务之前无法正确路由流量。我可以在 AKS 的 tcpdump 中看到请求,但它没有到达服务中。所以我的问题是,如何在strongswan上进行配置,在其中我可以访问aks kubernetes集群上的服务?
下面是strongswan的当前配置:
- PEER-1(虚拟机)
- PEER-2(AKS)
networking - ikev2 vpn连接
我在 Fedora 31 上,我正在尝试通过 strongswan 连接到使用 IKEv2 的 VPN。但我知道[IKE] received NO_PROPOSAL_CHOSEN notify the error.
我使用了以下教程https://www.securevpn.pro/eng/setup/linux-ikev2-vpn?url=eng%2Fsetup%2Flinux-ikev2-vpn来安装 VPN。多个网站提到证书,但由于我在客户端,我需要创建证书吗?我应该专门配置一些东西吗?
欢迎任何提示,想法,解决方案。
kubernetes - 将 kubernetes vpn 设置到本地网络
我有一个带有 k8s 集群的基本网络设置,其中包含必须从另一个网络中包含的仪表读取的工作 pod:
我的问题是,如何设置从 k8s 网络到本地网络的基于策略的 ipsec 隧道,以便所有工作人员 pod 都可以访问本地网络中的仪表。我已经搜索过互联网,但是关于如何设置这样的东西的清晰教程很少(除了 IBM 一个遗憾地只是说要下载 helm chart,并且不支持我使用的 ca cert ikev2 身份验证)
vpn - 当 IPSEC vpn 设置中未设置 DF 时,内核不会对数据包进行分段
我使用 strongswan 连接到谷歌云 VPN 网关。创建 VTI 接口以通过 ipsec 隧道路由流量。我发现即使数据包中没有设置 DF 位,也没有分段。相反,内核正在返回所需的 ICMP 数据包片段。我知道 PMTUD,但我确实希望它对数据包进行分段(DF=0)。内核 ipsec 堆栈不支持吗?
操作系统:centos 8 (4.18.0-147)
MTU:vti:1480 eth0:1500
请注意,第一个数据包会触发所需的 ICMP 片段。因为 -M dont,所以没有为数据包设置 DF。由于内核根据路径 MTU (1438) 对数据包进行分段,因此以下 ping 正常工作
我希望内核在 DF=0 时对数据包进行分段。因为当这个节点作为vpn网关时,另一个节点可能会根据路径MTU向网关节点发送分片的数据包。网关节点将其重新组装并发送到 VTI 接口。猜测是因为转发流量不支持路由 MTU(最近在内核中修复),因此数据包不会在 VTI 接口之前的 VPN 网关节点上分段。因此,鉴于 DF=0 的事实,我确实希望内核对其进行分段。
linux - 使用 strongswan 的基于路由的 VPN,在 raspberrypi 上使用 hostapd
我想用树莓派创建一个 wifi 热点,通过 vpn 发送所有流量。我使用的 VPN 客户端是 strongswan (ikev2)。sudo iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE
但是,这是基于策略的,与OpenVPN 相比,我无法使用诸如引导流量之类的东西。我对这篇允许您设置 VTI的文章感到非常困惑,有人向我解释了如何为 strongswan 客户端创建界面。
swift - Ubuntu 16.04 上 iOS NEVPNManager 和 StrongSwan 之间的 VPN 连接
我正在尝试在我的应用程序中创建 vpn 连接。在服务器端,在 Ubuntu 16.04 上使用带有 StrongSwan 的 IKEv2 VPN 服务器。按此 guid ( https://www.digitalocean.com/community/tutorials/how-to-set-up-an-ikev2-vpn-server-with-strongswan-on-ubuntu-16-04 ) 构建。
当我尝试连接时。服务器发送此日志:
我在服务器上使用此配置:
在 iOS 上使用此代码:
预期结果:已连接
实际结果:连接 -> 断开连接
最后的控制台日志:
ping - 子网无法通过 Strongswan VPN 隧道互相 Ping 在两个 UBuntu 服务器中实现
AOA。我有两台设备实现了 strongswan 第一个(01)设备网关是(10.10.3.10),其连接到它的子网是(192.168.137.19),而第二个(02)设备网关是(10.10.3.11),它的子网是(192.168) .137.20),即同一 LAN 上的两个子网。我建立了隧道但是: 1.CLients 不互相ping。2.客户甚至无法ping通各自连接的设备。3.设备互相ping通。
我是否必须添加 iptables 或其他东西。
ipsec.conf-Device-02
ipsec.conf-Device-01
vpn - IPSec传输模式:构建无网关VPN
IPSec 可用于隧道模式来构建 VPN,通过网关将道路战士连接到主机子网。这通常利用内部 IP 地址空间,使事情变得复杂。此外,所有流量都通过 VPN 网关,这是一个自然的瓶颈。
如何配置 IPSec,使我的 road-warrior 使用传输模式加密连接到此指定子网中的任何主机。本质上,我想用一个单独的传输模式 VPN 将隧道模式 VPN 替换为子网中的每个主机。理想情况下,无需单独的 VPN 配置条目和手动启动 VPN。我查看了 strongswan/libreswan 文档,但找不到任何东西。我使用基于证书的身份验证对通配符配置进行成像,所有主机都具有来自通用 CA 的证书。
这不是应该使用 IPSec 的传输模式部分的方式吗?特别是对于全 IPv6 网络,私有 IP 范围的额外复杂性是低效的。