Как назначить полную IPv6-подсеть для клиента OpenVPN

Я пытаюсь туннелировать подключение IPv6 от своего VPS с помощью OpenVPN, потому что мой интернет-провайдер не поддерживает IPv6. Мой VPS имеет / 64 IPv6. Я использую мой маршрутизатор OpenWRT как клиент, поэтому я хочу, чтобы сервер OpenVPN присваивал полную IPv6-подсеть, которую может использовать маршрутизатор. Моя текущая конфигурация выглядит так:

port myport proto udp dev tun tun-ipv6 ca /etc/openvpn/keys/ca.crt cert /etc/openvpn/keys/server.crt key /etc/openvpn/keys/server.key dh /etc/openvpn/keys/dh2048.pem server 192.168.200.0 255.255.255.0 server-ipv6 2a03:4000:6:b11b:2::/80 push "redirect-gateway def1 bypass-dhcp" push "route-ipv6 2000::/3" push "dhcp-option DNS 8.8.8.8" push "dhcp-option DNS 8.8.4.4" duplicate-cn keepalive 20 60 comp-lzo persist-key persist-tun daemon log-append /var/log/myvpn/openvpn.log verb 3 

Но сервер OpenVPN только присваивает адрес IPv6 следующим образом: 2a03: 4000: 6: b11b: 2 :: 1000.

Итак, мой вопрос заключается в том, как настроить сервер OpenVPN для подключения всей подсети IPv6 к клиенту?

One Solution collect form web for “Как назначить полную IPv6-подсеть для клиента OpenVPN”

Заставить его работать между клиентом и сервером

Сначала вам нужно направить пакеты на устройство TUN на сервере:

 route-ipv6 $PREFIX 

Кроме того, вам нужно попросить сервер OpenVPN перенаправить этот префикс вашему клиенту:

 # This one needs to be in a CCD file: iroute-ipv6 $PREFIX 

При этом сервер должен иметь возможность маршрутизировать пакеты этого префикса к клиенту.

На клиенте вам нужно настроить (вручную) некоторый адрес IPv6 из этого префикса. (В Linux: ip -6 addr $PREFIX dev tun0 ).

На этом этапе вы сможете

  • ping один из этих IP-адресов клиента с сервера;

  • ping сервер с этого IP-адреса клиента.

Проложите этот префикс в подсеть

Если ваш собственный интерфейс на сервере представляет собой двухточечный интерфейс , он должен работать. Маршрутизатор уже пересылает все пакеты для этого префикса на ваш сервер, и сервер отправит их вашему клиенту.

Если ваш собственный интерфейс не является интерфейсом «точка-точка» , у вас проблемы. При попытке пересылки пакетов на IP-адрес вашего префикса хосты на родной ссылке попытаются найти MAC-адрес, связанный с этим адресом IPv6, используя NDP. Ваш сервер не будет отвечать на них (потому что этот IPv6 addres не является одним из его адресов). Клиент не находится на одной и той же ссылке и не видит запросы NDP (в любом случае он не может ответить на них). Поэтому никто не ответит на эти запросы NDP, и пакет не будет отправлен на ваш сервер.

Вы можете:

  • Добавьте маршрут на маршрутизаторе, чтобы использовать ваш сервер в качестве шлюза для этого префикса ( ip -6 route add $PREFIX via $ipv6_of_the_server ). Однако, если это не ваш маршрутизатор, возможно, вы не сможете этого сделать.

  • Добавьте правила прокси-сервера NDP ( ip -neigh add proxy $some_ipv6 dev eth0 ). Это заставит сервер отвечать на запросы NDP от имени клиента. Однако (по крайней мере, в Linux) вы не можете добавить целую подсеть IPV6 в качестве прокси-сервера NDP, поэтому вам нужно будет добавить правило для каждого адреса IPv6, который вы хотите делегировать.

Использование туннеля TAP

Если ваш собственный интерфейс является Ethernet, другой возможностью является использование туннеля OpenVPN на основе Ethernet (на основе Ethernet) вместо TUN (IP-based), а также подключение виртуального кран-устройства с собственным. Таким образом, клиент будет находиться на той же ссылке, что и маршрутизатор, и сможет отвечать на запросы NDP.

  • Два IP-адреса, назначенные одной и той же сетевой карте - проблемы с OpenVPN?
  • Работа для openvpn@server.service не выполнена
  • Systemd: как запустить / остановить скрипт Python, который должен работать в фоновом режиме, внутри Virtualenv
  • Назначение IP-адресов в интерфейсе tun?
  • Клиент OpenVPN: ERROR: команда добавления маршрута Linux неудалась
  • openvpn logrotate
  • Как связать wlan и tun
  • VPS: как перенаправлять трафик на устройства с публичного IP-адреса
  • iptables и конфигурация OpenVPN
  • NAT-маршрутизация VPN-подключения к локальной сети
  • 1: 1 NAT с несколькими идентичными локальными сетями
  • Linux и Unix - лучшая ОС в мире.