Это — старая версия документа!


Настройка IPv6 в OpenVPN

Впервые опубликовано 2010-09-03.

OpenVPN поддерживает IPv6 как внутри, так и снаружи туннеля. Однако поддержкой этой на сегодняшний день можно воспользоваться только с помощью собственного скрипта для поднятия интерфейса. Этот скрипт (up-ipv6.sh) приведён ниже.

OpenVPN-туннель может работать и при полном отсутствии IPv4, т.е. использовать в качестве транспорта UDP/IPv6, и внутри туннеля также, пропускать IPv6-трафик. Именно такой вариант я и рекомендую – дело в том, что при использовании OpenVPN поверх IPv4, придётся озаботиться надёжным пропуском-пробросом на файрволлах обоих сторон UDP-пакетов на внутренние IPv4-адреса терминирующих VPN компьютеров (TCP тоже поддерживается, но к использованию авторами OpenVPN не рекомендован), что может оказаться немногим проще, чем «поднять» на этих же роутерах элементарный 6to4.

Для этого примера предположим, что мы хотим связать главный офис фирмы (HQ) с одним из её филиалов (Branch) в режиме VPN точка-точка, с разделяемым секретным ключом (vpn-hq.key), IPv6 нам предоставляет tunnelbroker.net, в главном офисе используются различные подсети из 2001:470:xxxx::/48, а VPN-клиенту мы решили выдать 2001:470:xxxx:1::/64.

На обоих компьютерах

/etc/openvpn/up-ipv6.sh
#!/bin/bash
 
INTERFACE=$1; shift;
TUN_MTU=$1;   shift;
UDP_MTU=$1;   shift;
LOCAL_IP=$1;  shift;
REMOTE_IP=$1; shift;
MODUS=$1;     shift;
 
ip link set $INTERFACE up
ip link set mtu $TUN_MTU dev $INTERFACE
 
. /etc/openvpn/$INTERFACE.ipv6
 
for I in $LOCAL_IP6; do
  ip -6 addr add $I dev $INTERFACE
done
 
for R in $ROUTE_IP6; do
  ip -6 route add $R dev $INTERFACE
done
 
exit 0

На сервере (hq.example.com)

/etc/openvpn/vpn-branch.conf
lport 1194
proto udp6
dev vpn-branch
dev-type tun
tun-ipv6
secret vpn-hq.key
script-security 2
up /etc/openvpn/up-ipv6.sh
/etc/openvpn/vpn-branch.ipv6
LOCAL_IP6=2001:470:xxxx:1::1/64

На клиенте

/etc/openvpn/vpn-hq.conf
remote hq.example.com 1194
proto udp6
dev vpn-hq
dev-type tun
tun-ipv6
secret vpn-hq.key
script-security 2
up /etc/openvpn/up-ipv6.sh
/etc/openvpn/vpn-hq.ipv6
LOCAL_IP6=2001:470:xxxx:1::2/64
ROUTE_IP6=2001:470:xxxx::/48

Ссылки


openvpn.1283504346.txt.gz · Последние изменения: 2011-05-31 10:45 UTC (внешнее изменение)
Personal Tools