Моя текущая ситуация такова, что я хочу использовать IPv6, но в настоящее время не назначен ни один IPv6-адрес. Но у меня есть сервер с интерфейсом двойного стека, включая общедоступный адрес IPv4 и IPv6 (только подсеть / 128). Итак, я подумал: «Эй, а было бы неплохо использовать возможности сервера IPv6?»
Впервые я установил сервер OpenVPN, который направляет весь мой трафик IPv4 через туннель IPv4. Это сработало. После этого я много гуглил и пытался найти решение, позволяющее перенаправить весь трафик IPv6 через этот туннель. Я нашел много руководств, в которых показано, как назначить новый IPv6-адрес из собственной подсети каждому пользователю, подключающемуся к серверу OpenVPN. Но, к сожалению, у меня есть только один IPv6-адрес: адрес моего сервера, который не находится в моей локальной сети (потому что они очень важны для хостера моего сервера, знаете ли ...). Я попытался применить NAT для моего единственного IPv6-адреса позже, аналогично моему IPv4-адресу, но не смог ...
server.conf:
port 1194
proto tcp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh2048.pem
server 10.8.0.0 255.255.255.0
server-ipv6 fe80::/64
ifconfig-pool-persist ipp.txt
push "route 192.168.0.0 255.255.255.0"
push "route-ipv6 2000::/3"
push "redirect-gateway def1 bypass-dhcp"
push "redirect-gateway ipv6"
push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 208.67.220.220"
keepalive 10 120
tls-auth ta.key 0
key-direction 0
cipher AES-128-CBC # AES
auth SHA256
comp-lzo
user openvpn
group openvpn
persist-key
persist-tun
status openvpn-status.log
verb 3
iptable:
iptables -t nat -A POSTROUTING -s 10.0.0.0/8 -o ens3 -j MASQUERADE
ip6tables -t nat -A POSTROUTING -s fe80::/64 -o ens3 -j MASQUERADE
Адреса IPv6 не представляют ценности, хотя хостинговые службы вряд ли захотят стать туннельными брокерами. IPv6 не требует NAT, хотя есть экспериментальные реализации.
Основное преимущество IPv6 над IPv4 состоит в том, что NAT не требуется. Если вы пытаетесь получить IPv6 в своей локальной сети, настройте локальную сеть для IPv6. Недостатком является необходимость соответствующего брандмауэра, поскольку NAT больше не защищает вашу сеть.
Вы можете использовать 6to4 для создания адреса на основе внешнего IP-адреса вашей локальной сети. Это даст вам блок / 64 для вашей локальной сети. Затем вы можете направить это через свою VPN, чтобы обеспечить доступ IPv6 к вашему серверу. Это не будет глобально маршрутизируемым, поскольку внешние хосты будут маршрутизировать в вашу локальную сеть. (Вы можете попробовать то же самое на своем сервере.) Я задокументировал свой опыт работы с Внедрение IPv6 6to4 на OpenWRT, что в основном применимо к другим серверам на базе Linux (конфигурация отличается).
Однако я бы рекомендовал использовать туннельного брокера. Они предоставят как минимум один / 64 блока и предоставят дополнительные блоки по запросу. Не используйте VPN для IPv6 и используйте брандмауэры для соответствующего ограничения / разрешения доступа. Я переключился на туннельного брокера и задокументировал дополнительную настройку в Внедрение IPv6, часть 2.