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


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

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

Рассмотрим настройку OpenVPN-туннеля при полном отсутствии IPv4, т.е. туннель работает поверх UDP/IPv6, внутри туннеля – только IPv6-трафик.

Для этого примера предположим, что мы хотим связать главный офис фирмы (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.1283494141.txt.gz · Последние изменения: 2011-05-31 10:44 UTC (внешнее изменение)
Personal Tools