我目前正在尝试使OpenVPN客户端在K8s Pod内运行。我要实现的目标是,我可以通过VPN连接访问互联网,同时还可以同时与我的命名空间上的其他容器进行通信。问题是,一旦建立VPN连接,即时通讯就无法与10.42.0.0、10.43.0.0网络(用于Pod和服务)进行交互:(
smb可以给我提示有关在与VPN连接时如何与上述两个网络进行交互的提示吗?
我的客户端配置(可能非常错误)
client
dev tun
proto udp
remote some.vpnserver.com 443
resolv-retry infinite
nobind
persist-key
persist-tun
persist-remote-ip
redirect-gateway def1 bypass-dns
dhcp-option DOMAIN-SEARCH cluster.local
dhcp-option DOMAIN-SEARCH svc.cluster.local
dhcp-option DOMAIN-SEARCH default.svc.cluster.local
dhcp-option DNS 10.43.0.10
pull-filter ignore block-outside-dns
pull-filter ignore redirect-gateway
pull-filter ignore explicit-exit-notify
pull-filter ignore "dhcp-option DNS"
verify-x509-name some.vpnserver.com name
auth-user-pass
comp-lzo
keepalive 10 60
verb 3
auth SHA256
cipher AES-256-CBC
tls-cipher TLS-ECDHE-RSA-WITH-AES-256-GCM-SHA384:TLS-DHE-RSA-WITH-AES-256-CBC-SHA256:TLS-DHE-RSA-WITH-AES-256-CBC-SHA
<ca>
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
</ca>
我还向我的部署yaml中添加了以下内容:
capabilities:
add:
- NET_ADMIN
- SYS_MODULE
dnsConfig:
nameservers:
- 10.43.0.10 # K8s CoreDNS
options:
- name: ndots
value: "2"
- name: edns0
连接后,Ping 8.8.8.8对我有效。但是在K8s命名空间中,im根本无法访问任何内容。
建立VPN连接后,DNS根本不起作用。使DNS工作的唯一方法是在部署yaml上进行以下设置:
dnsConfig:
nameservers:
- 1.1.1.1
哪个仍然不能解决与本地网络或本地DNS / Pod等交互的问题?
我正在尝试
在此先感谢你,我非常感谢你的每一个提示,从那时起我一直在努力
就像@anemyte写道remove route 10.42.0.0 255.255.0.0
和 route 10.43.0.0 255.255.0.0
。那些意味着要将VPN用于子网,你想要相反。
默认情况下,本地网络流量不使用redirect-gateway
..进行路由 。然后尝试恢复路由,但这次将其添加net_gateway
到每个路由 的末尾。这使路由使用默认网关而不是VPN。这应该看起来像这样 route 10.42.0.0 255.255.0.0 net_gateway
。