IPv6 когда то придет в массы. Быть может к нашей пенсии. Мы же, как можем, приближаем этот момент. С выделенными адресами ситуация все ухудшается. В некоторых регионах страны Ростелеком перестал выдавать белые адреса физическим лицам. А белый адрес страсть как нужен, для адекватной работы 4to6. Можно периодически дергать API туннельного брокера, сообщая свой IPv4, но кому это нужно, когда проще купить виртуалку со статикой?
IPv6 это круто, модно, молодежно. И порой даже быстро. Но нафиг не нужно провайдерам.
Задача: Выпустить корпоративную сеть в мир по IPv6.
Имеется: VDS на flops.ru со статикой и туннель от he.net.
Настройка тунеля хорошо описана на сайте he.net, при создании туннеля даже выдается конфиг под разные ОС. Дополнительно нужно получить /48 подсеть.
Шаманим на сервере:
Конфиг OpenVPN /etc/openvpn/server.conf:
Подключаемся клиентом к vpn и проверяем:
IPv6 это круто, модно, молодежно. И порой даже быстро. Но нафиг не нужно провайдерам.
Задача: Выпустить корпоративную сеть в мир по IPv6.
Имеется: VDS на flops.ru со статикой и туннель от he.net.
Настройка тунеля хорошо описана на сайте he.net, при создании туннеля даже выдается конфиг под разные ОС. Дополнительно нужно получить /48 подсеть.
Шаманим на сервере:
apt-get install openvpn radvd iptables-persistent echo ipv6 >> /etc/modules echo net.ipv6.conf.all.forwarding=1 >> /etc/sysctl.conf echo net.ipv6.conf.default.forwarding=1 >> /etc/sysctl.conf iptables -A FORWARD -s 10.0.1.0/24 -j ACCEPT iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -t nat -A POSTROUTING -s 10.0.1.0/24 -o eth0 -j MASQUERADE service iptables-persistent save touch /etc/openvpn/route.sh chmod +x /etc/openvpn/route.shКак генерировать сертификаты описано в документации к OpenVPN, приводить не буду.
Конфиг OpenVPN /etc/openvpn/server.conf:
# Тип севера tls-server # Порт сервера port 1194 # Разработчик OpenVPN рекомендует UDP, но его не умеет Mikrotik, который я юзаю. proto tcp # Интерфейс dev tap # Сертификаты сервера ca /etc/openvpn/keys/ca.crt cert /etc/openvpn/keys/server.crt key /etc/openvpn/keys/server.key dh /etc/openvpn/keys/dh1024.pem tls-auth /etc/openvpn/keys/ta.key 0 # Список заблокированых сертификатов crl-verify /etc/openvpn/keys/crl.pem # Директория с конфигами статических клиентов client-config-dir /etc/openvpn/ccd # Адрес внутренней VPN сети server 10.0.1.0 255.255.255.0 ifconfig 10.0.1.1 255.255.255.0 # DNS сервер push "dhcp-option DNS 10.0.1.1" # Адрес I Pv6 шлюза в мир push "route-ipv6 2001:470:xxxx:1::/64" # Не «передергивать» сетевое устройство при перезапуске демона persist-tun # script-security 3 # Скрипт который правит роутинг при запуске сервера up /etc/openvpn/route.sh # client-to-client # Каждые 10 секунд посылать ping на удаленный хост, и, если за 30 секунд не было получено ни одного пакета - то перезапускать туннель keepalive 10 30 # Шифрование cipher BF-CBC # Файл статуса сервера status /var/log/openvpn-stat # Файл лога сервера log-append /var/log/openvpn.logФайл /etc/openvpn/route.sh:
#!/bin/sh ip addr add 2001:470:xxxx:1::1/64 dev tap0Конфиг radvd /etc/radvd.conf:
interface tap0 { AdvSendAdvert on; prefix 2001:470:xxx:1::/64 { AdvOnLink on; AdvAutonomous on; }; };Конфиг сети (eth0 смотрит в мир) /etc/network/interfaces:
auto eth0 iface eth0 inet static # IP адрес address xxx.xxx.xxx.xxx # Маска сети netmask 255.255.255.0 # Широковещательный адрес broadcast xxx.xxx.xxx.xxx # Шлюз gateway xxx.xxx.xxx.xxx # DNS dns-nameserver 127.0.0.1 # IPv6 адрес up ip addr add 2001:470:xxxx:0::1/64 dev eth0Конфиг OpenVPN клиента выглядит примерно так:
tls-client client proto tcp remote xxx.xxx.xxx.xxx 1194 dev tap tls-auth /etc/openvpn/keys/ta.key 1 dh /etc/openvpn/keys/dh1024.pem ca /etc/openvpn/keys/ca.crt cert /etc/openvpn/keys/10.0.1.2.crt key /etc/openvpn/keys/10.0.1.2.key cipher BF-CBC keepalive 10 30 log-append /var/log/openvpn.log persist-tunПерезагружаем сервер. Для фанатов работы без перезагрузки могу сказать, что устройство sit0 (на котором поднимается туннель) не придет, даже если включить модуль ipv6 руками. Ну вот не придет, хоть ты тресни. Ну или я ниасилил.
Подключаемся клиентом к vpn и проверяем:
ping6 -n ya.ru -c 4Должно выйти примерно так:
PING ya.ru(2a02:6b8::3) 56 data bytes 64 bytes from 2a02:6b8::3: icmp_seq=1 ttl=56 time=158 ms 64 bytes from 2a02:6b8::3: icmp_seq=2 ttl=56 time=123 ms 64 bytes from 2a02:6b8::3: icmp_seq=3 ttl=56 time=121 ms 64 bytes from 2a02:6b8::3: icmp_seq=4 ttl=56 time=122 ms --- ya.ru ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 3003ms rtt min/avg/max/mdev = 121.274/131.460/158.149/15.443 ms