#kubernetes #openvpn
#kubernetes #openvpn
Вопрос:
В настоящее время я пытаюсь запустить клиент OpenVPN внутри модуля K8s. Цель, которую я пытаюсь достичь, состоит в том, чтобы я мог получить доступ к Интернету через VPN-соединение, а также одновременно взаимодействовать с другими контейнерами в моем пространстве имен. Проблема в том, что я не могу взаимодействовать с сетями 10.42.0.0, 10.43.0.0 (для модулей и служб), как только установлено VPN-соединение: (
Может ли 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 я вообще ничего не могу получить.
- DNS вообще не работает, как только установлено VPN-соединение. Единственный способ заставить DNS работать — установить следующее при развертывании yaml:
dnsConfig: nameservers: - 1.1.1.1
что все еще не решает проблему взаимодействия с локальной сетью или локальными DNS / модулями и т. Д.?
Я работаю над
- OpenVPN 2.5.0
- K8s 1.19.4
- CNI: Calico
Заранее спасибо, я благодарен за каждый намек, я работаю над этим со дня на день
Комментарии:
1. Удалите
route 10.42.0.0 255.255.0.0
иroute 10.43.0.0 255.255.0.0
. Это означает использование VPN для подсетей, которые вы хотите наоборот.2. По-прежнему не удается выполнить пинг локальных ресурсов или других модулей того же пространства имен при подключении к VPN
3. По умолчанию трафик локальной сети не маршрутизируется с
redirect-gateway
помощью … Что ж, тогда попробуйте вернуть маршруты обратно, но на этот раз добавьтеnet_gateway
их в конец каждого. Это заставляет маршрут использовать шлюз по умолчанию вместо VPN. Это должно выглядеть такroute 10.42.0.0 255.255.0.0 net_gateway
.4. Потрясающая подсказка, решила проблему! Спасибо: D
5. @anemyte @sunwave121 Привет, к сожалению, для тех, кто не очень хорошо разбирается в сетях (например, я), не очень хорошо понял… не могли бы вы предоставить более подробную информацию, пожалуйста? Я не вижу никакого появления
route 10.42.0.0 255.255.0.0
, так где же это будет удалено?
Ответ №1:
Как написал @anemyte, удалите 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
.
Взгляните: openvpn-клиентский модуль, openvpn-kubernetes.