Как получить IPv6 если Ваш провайдер из XVII века

03.12.2018 16:56:15

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

Данная статья требует определенных знаний в работе сетей, и хотя бы базовых навыков настройки Mikrotik, иначе существует риск ничего не понять. В качестве примера будет использоваться маршрутизатор Mikrotik hAP ac2 (D52G-5HacD2HnD-TC) с версией прошивки 6.43.2 и WinBox v3.18. Туннельный брокер - Hurricane Electric.

Введение

Каждому абоненту в IPv4 интернете провайдером выдается 1 IP адрес, за которым скрывается вся домашняя локальная сеть через технологию NAT. В сетях IPv4 длина адреса составляет 32 бита. Не хитрым способом можно вычислить, что теоретическое максимальное количество адресов будет соответствовать 232 = 4,294,967,296 - этого количества не хватает для каждого жителя Земли. Другое дело - IPv6.

В сетях IPv6 длина адреса соответствует 128 битам, или 2128 = 3,402,823,669,209,384,634,633,74,607,431,768,211,456. Этого количества хватит всем. Каждому абоненту в IPv6 интернете выдается уже не один адрес, а целая подсеть как минимум /64, что соответствует 264=18,446,744,073,709,551,616 адресов, именно такое количество адресов будет в нашем распоряжении. Например, все адресное пространство IPv4 соответствует подсети /96 IPv6.

Большинство локальных интернет провайдеров до сих пор не поддерживают IPv6, и для получения доступа в IPv6 интернет в таких условиях был изобретен механизм 6to4, который бесплатно предоставляется туннельными брокерами. Для этих целей я выбрал Hurricane Electric, так как NetAssist сломался какое-то время назад, а поддержка не отвечает на запросы.

Подготовка

Для начала необходимо зарегистрироваться и создать простой туннель на tunnelbroker.net, нажать на ссылку “Create Regular Tunnel”, указать Ваш статический IP адрес и туннельный сервер, в зависимости от местоположения. Очень рекомендую пропинговать IP сервера, из списка и выбирать по наименьшей задержке. После создания туннеля будут показаны параметры, которые необходимо будет указать в настройках маршрутизатора.

На вкладке “Example configurations” можно выбрать Вашу ОС и посмотреть предлагаемую конфигурацию. В данном случае это 3 консольные команды, которые нужно ввести в консоль маршрутизатора, но этого будет недостаточно. Необходимо настроить IPv6 адресацию в локальной сети. Стоит отметить, что IPv6 предусматривает конфигурацию адресов узлов двумя способами: SLAAC (Stateless Address Auto Configuration) и DHCPv6 (Dynamic Host Configuration Protocol).

DHCPv6 - это не то же самое, что DHCP в IPv4. Здесь нельзя просмотреть список устройств и забронировать адрес для каждого из них. Можно только задать IPv6 адрес для конкретного устройства. Хотя, это может зависеть от реализации. Это может пригодиться, когда хост каждый раз получает новый IPv6 адрес.

SLAAC - Конфигурация адреса узла выполняется на основании сообщения RA (Router Advertisement) от маршрутизатора. В этом сообщении содержится информация о префиксе и его длине. Маршрутизатор периодически отправляет пакет RA, но узел может отправить пакет RS(Router Solicitation) на адрес многоадресной рассылки FF02::2, который обязаны поддерживать все маршрутизаторы, и получить в ответ RA. На основании RA узел генерирует глобальный IPv6 адрес из префикса и уникального идентификатора интерфейса EUI-64, который генерируется из MAC адреса. За тем при помощи механизма поиска соседей проверяет уникальность сгенерированого адреса, если он не уникален, то уникальный идентификатор интерфейса может быть заменен на псевдослучайное число.

DHCPv6 дает больше возможностей администрирования, SLAAC - простоту настройки. Оба способа могут использоваться как вместе - так и раздельно. Мы будем использовать SLAAC без DHCPv6.

Настройка Mikrotik

Для начала идем в System -> Packages и включаем пакет ipv6 и перезагружаем машрутизатор.

Предложенный туннельным брокером пример конфигурации Mikrotik состоит из 3 команд:

/interface 6to4 add comment="Hurricane Electric IPv6 Tunnel Broker" disabled=no local-address=xxx.xxx.xxx.xxx mtu=1280 name=sit1 remote-address=216.66.80.162
/ipv6 route add comment="" disabled=no distance=1 dst-address=2000::/3 gateway=2001:xxx:x0:xxx::1 scope=30 target-scope=10
/ipv6 address add address=2001:xxx:xx0:xxx::2/64 advertise=no disabled=no eui-64=no interface=sit1
Для наглядности настроим маршрутизатор в графическом интерфейсе с использованием winbox.

  1. Переходим в меню Interfaces и создаем интерфейс с типом 6to4 Tunnel, указываем наш внешний статический IP и IPv4 адрес туннельного брокера. (Это будет эквивалентно выполнению первой команды в консоли).

  2. В меню IPv6 -> Routes добавляем новый маршрут. В поле Destination address Указывается 2000::/3 - это, так называемый, Global Unicast Address. Все пакеты отправленные на этот адрес будут смаршрутизированы на Gateway, который предоставляет нам туннельный брокер. Напротив адреса Gateway есть поле, которое соответствует интерфейсу, на котором у нас есть IPv6. На данном этапе там будет отображаться значение unreachable, потому что у нас не настроена подсеть, которая будет маршутизироваться на этот шлюз. (Это эквивалент второй команды).

  3. В меню IPv6 -> Addressess добавляем новый диапазон адресов. В поле Address необходимо указать Client IPv6 Address, который будет идентифицировать нашу сторону туннеля у брокера. По этому и в поле интерфейс необходимо указывать созданный на первом этапе интерфейс (Третья команда). После добавления этого адреса интерфейс становится reachable в настройках маршрута. Сейчас из консоли роутера можно пропинговать какой-нибудь IPv6 адрес, и убедиться что все работает.

  4. После предыдущих манипуляций узлы в нашей локальной сети еще не получаю IPv6 адреса, чтобы это исправить, необходимо добавить еще один диапазон адресов, только на этот раз указывается Routed /64 адрес, а в качестве интерфейса - bridge. На этом этапе все устройства в локальной сети должны получить свой уникальный глобальный IPv6 адрес. Очевидно, что на устройстве в локальной сети должна быть включена поддержка IPv6.

  5. Так как вся коммуникация происходит через протокол IPv4 - необходимо добавить в IPv4 Firewall правило, которое будет разрешать входящие и исходящие пакеты по протоколу 41. Именно этот протокол используется для обмена трафиком с сервером туннельного брокера. Для настройки переходим в меню IP -> Firewall и добавляем правило для входящих и исходящих подключений с действием accept. В правиле для входящих подключений можно указать IPv4 адрес туннельного брокера, для ограничения возможного нежелательного трафика. в поле Protocol небходимо вручную написать "41", так как в списке протоколов его скорее всего не будет.

  6. Следующим этапом нужно добавить адреса DNS серверов. В качестве DNS серверов можно указать предлагаемый Hurricane Electric, Google public DNS, Cloudflare или любой другой. Для этого идем в меню IP->DNS и добавляем адреса.

    Теперь необходимо удостовериться, что эти адреса будут доступны на узлах при помощи авто конфигурации. Для этого идем в IPv6 -> ND и в параметрах интерфейса all убеждаемся в установленной галочке Advertise DNS.

Все. IPv6 успешно настроен и теперь необходимо проверить его работоспособность на сайте ipv6-test.com и убедиться что IPv6 теперь доступен. Единственный минус заключается в том, что я выбрал ближайший сервер находящийся в Польше, и соответственно многие сайты и сервисы думают что я в Польше.

Выводы

Согласно статистике Google, по состоянию на октябрь 2018 года доля трафика IPv6 достигла 25%. Это не может не радовать, так как увеличение доли трафика может повлиять на локальных интернет провайдеров включить поддержку протокола IPv6, и дать возможность своим абонентам пользоваться современным интернетом. Это позволит больше не выкручиваться с одним внешним IP, а некоторым вместо нормального IP дают серый, с которым невозможно использовать VPN или еще чего хуже. Так как мы уже настроили IPv6 в своей сети, можем распоряжаться уникальными глобальными адресами на свое усмотрение. Не смотря на то, что теперь каждое устройство в сети имеет свой собственный внешний адрес, так еще можно любой виртуалке присвоить свой внешний адрес, что безусловно круто. Именно это я и сделал. Сейчас данный сайт поддерживает как IPv4 так и IPv6.

Коментариев пока нет, будьте первым!