【问题标题】:openVPN accesses the K8S cluster, it access the POD of the host where the server is located,cannot access the POD of other hosts in the clusteropenVPN访问K8S集群,访问服务器所在主机的POD,无法访问集群内其他主机的POD
【发布时间】:2021-08-27 01:48:42
【问题描述】:

我将 OpenVPN 服务器部署在 K8S 集群中,并将 OpenVPN 客户端部署在集群外的主机上。但是,当我使用客户端访问时,只能访问OpenVPN服务器所在主机上的POD,而无法访问集群中其他主机上的POD。 集群使用的网络是 Calico。我还在集群中的openVPN服务器主机上添加了以下iptables规则:

我在服务器上抓到tun0的包时发现没有收到回包。

【问题讨论】:

  • openvpn Server Configuration: port 1194 proto tcp dev tun0 ca ca.crt cert youmen.crt key youmen.key dh dh1024.pem server 10.8.0.0 255.255.255.0 keepalive 10 60 comp-lzo user nobody group nobody persist-key persist-tun status openvpn-status.log log openvpn.log verb 3 push "route 172.30.0.0 255.255.0.0" push "route 10.254.0.0 255.255.0.0"
  • Client Configuration: client dev tun0 #port 1194 proto tcp #remote-cert-tls server remote 172.20.47.95 1194 tcp #resolv-retry infinite nobind #route 172.30.0.0 255.255.0.0 #mute-replay-warnings #redirect-gateway def1 key-direction 1 ca /etc/openvpn/client/ca.crt cert /etc/openvpn/client/yonyou.crt key /etc/openvpn/client/yonyou.key comp-lzo persist-key persist-tun
  • I also added the following iptables rules to the openVPN server host in the cluster: 4 MASQUERADE all -- 10.8.0.0/24 anywhere
  • 请提供足够的代码,以便其他人更好地理解或重现问题。
  • 您是如何设置 Kubernetes 集群的?你是如何部署 OpenVPN 服务器的——你能分享一些你遵循的步骤/说明吗?请不要在 cmets 中粘贴命令/日志,而是编辑您的帖子并使其可读。

标签: kubernetes openvpn


【解决方案1】:

当服务器部署在主机网络上时,iptables 字段中缺少转发规则。

【讨论】:

    【解决方案2】:

    不确定如何在服务器 pod 中设置 iptables,因为在我看到的大多数 kube 集群上都无法访问 iptables/netfilter。

    如果您想通过该 OpenVPN 服务器完全访问集群网络,您可能希望在您的 vpn 服务器上使用hostNetwork: true。问题是您仍然需要正确的 MASQ/SNAT 规则才能获得对客户端的响应。

    您应该调查从服务器 pod 流出的流量,看看它是否有正确重写的源地址,否则集群中的节点将不知道如何路由响应。

    您的节点可能有一个通用网关,根据您的 kube 实现,您可以通过将路由设置回您的 vpn 来解决此问题,但这可能需要围绕 vpn 服务器自身编写一些脚本以确保路由每次重新调度服务器 pod 时都会更新。

    【讨论】:

      猜你喜欢
      • 2020-09-10
      • 2021-08-08
      • 1970-01-01
      • 2022-08-04
      • 1970-01-01
      • 2019-07-29
      • 2021-05-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多