IPv6 в каждый дом: Cвой собственный IPv6 сервер брокер (6in4)

pfxvf8uhlia3gxbqmvgugqobhsc.png

IPv6 шагает по планете, во многих странах поддерка IPv6 уже есть нативно от своего провайдера, если у вас еще нет IPv6, но вы хотите что бы у вас он был — вы сможете это сделать используя эту инструкцию.

Что важно — трафик мы будем пускать через свой собственный арендованный сервер, а не через непонятно какого брокера.

Для начала вам потребуется сервер который обладает IPv6 подключением, я буду использовать сервер от DigitalOcean за 5$ c OS Ubuntu последней версии.

cl0j8ucziec7iidbrycuvxslhro.png


Настраиваем сервер


Обратите внимание! часть ПО можно не устанавливать, оно отмечено как опциональное, его стоит установить, только если у вас динамический IP и вы хотите автоматически настраивать доступ при обновлении IP

После получения сервера вам надо обновить доступные пакеты на нем:

sudo apt-get update -y
sudo apt-get upgrade -y


Установить git, apache и php (2 последних — опционально)

sudo apt-get -y git


Если вы не планируете авто-настройку при смене 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:

hmhbgfalax_zhehxqsqcv_wqc5i.png

Другие роутеры настраиваются аналогично.

Настройка маршрутизации на сервере


Теперь вернемся к серверу и настроим мершрутизацию из виртуального интерфейса 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 подключений на вашем роутере.

oii8olrw4lqs1b0i0ucdya5wdaq.png

PS Telegram/Youtube/Google сервера работают через IPv6 как и многие другие. Проверить это вы можете выполнив ping6 google.com

© Habrahabr.ru