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


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

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.

На сервере (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

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

/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

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