IPv6 шагает по планете, во многих странах поддерка IPv6 уже есть нативно от своего провайдера, если у вас еще нет IPv6 но вы хотите что бы у вас он был — вы сможете это сделать используя эту инструкцию.
Что важно — трафик мы будем пускать через свой собственный арендованный сервер, а не через непонятно какого брокера.
Для начала вам потребуется сервер который обладает IPv6 подключением, я буду использовать сервер от DigitalOcean за 5$ c OS Ubuntu последней версии.
Настраиваем сервер
Обратите внимание! часть ПО можно не устанавливать, оно отмечено как опциональное, его стоит установить, только если у вас динамический IP и вы хотите автоматически настраивать доступ при обновлении IP
После получения сервера вам надо обновить доступные пакеты на нем:
sudo apt-get update -y
sudo apt-get upgrade -y
Установить git, sipcalc, apache и php (2 последних — опционально)
sudo apt-get -y git sipcalc
Если вы не планируете авто-настройку при смене IP адреса, данную команду можно пропустить.
sudo apt-get -y apache2 php libapache2-mod-php php-mcrypt
Теперь настала время скачать скрипт который поможет настроить туннель github.com/sskaje/6in4
git clone https://github.com/sskaje/6in4.git
cd 6in4
Копируем скрипт в /bin для привычного нам вызова
sudo cp ./bin/6to4 /bin/6to4
Выдаём права за на запуск
sudo chmod +x /bin/6to4
Копируем файл настроек
sudo cp ./etc/config.ini /etc/config.ini
Редактируем файл с настройками
ifconfig | grep 'inet6 addr:'
$ ifconfig | grep 'inet6 addr:'
inet6 addr: fe80::000:000:000:000/64 Scope:Link
inet6 addr: 2a03:000:0:000::00:0000/64 Scope:Global
Нам нужен тот который с препиской Global:
inet6 addr: 2a03:000:0:000::00:0000/64 Scope:Global
Открываем файл с настройками для редактирования:
sudo nano /etc/config.ini
Убираем ";" у строчек:
IPV6_NETWORK=
IPV6_CIDR=
и указываем:
IPV6_NETWORK=2a03:000:0:000::
IPV6_CIDR=48
Нажимаем CNTRL+x, сохраняемся и переходим к добавлению сети:
sudo 6to4 add 1 8.8.8.8
где 8.8.8.8 — ваш внешний IP, узнать его можно, например тут.
В ответ вы получите примерно это:
Please set up tunnel on your machine with following parameters:
Server IPv4 Address: 99.99.9.9
Server IPv6 Address: 2a03:000:0:000::1/64
Client IPv4 Address: 88.8.88.8
Client IPv6 Address: 2a03:000:0:000::2/64
Routed /64: 2a03:g0e0:00g0:3402::/64
Теперь осталось прописать данные настройки в вашем роутере
Пример ниже — настройка Apple Airport:
Другие роутеры настраиваются аналогично.
Настройка маршрутизации на сервере
Теперь вернемся к серверу и настроим маршрутизацию из виртуального интерфейса IPv6 — в основной:
sudo ip6tables -t nat -A POSTROUTING -s 22a03:g0e0:00g0:3402::/64 -o eth0 -j MASQUERADE
2a03:g0e0:00g0:3402::/64 — это ваш Routed /64 или же любой IP который придет на любое ваше устройство с роутера после сохранения настроек
Разрешаем форвар трафика:
sudo sysctl -w net.ipv6.conf.all.forwarding=1
Можно проверять
После этого, сохраните настройки на роутере, перезагрузите роутер. У вас должен был заработать IPv6. На подключенные устройства придут IPv6 адреса.
Проверить работу IPv6 можно тут — ipv6.google.com или ipv6-test.com
Обратите внимание — при смене IP адреса (внешнего), IPv6 у вас пропадет, обновления доступа после смены адреса будет рассмотрено в следующей статье (или же вы можете использовть инструкцию из репозитория github.com/sskaje/6in4)
После настройки IPv6 надо быть бдительным — все ваши устройства внутри вашей домашней сети получат публичный IPv6 адрес! если вы не уверены в защищенности устройств — включите блокировку входящих ipv6 подключений на вашем роутере.
PS Telegram/Youtube/Google сервера работают через IPv6 как и многие другие. Проверить это вы можете выполнив ping6 google.com