OpenVPN-клиентский модуль на K8s — Локальная сеть недоступна

#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.