статический ipv6 что это
IPv6: здесь и сейчас
Содержание статьи
Большинству пользователей нет никакого дела, как там обстоят дела со свободными IPv4-адресами и когда провайдеры перейдут на IPv6. Скажу больше: последнее в ближайшее время не случится. Однако IPv6 можно использовать уже сейчас и получить от этого не только ощущение гиковости, но и вполне осязаемую выгоду.
Зачем?
Увеличенная емкость адресов за счет использования 128-битного адреса (2001:5c0:1400:a::68d) вместо 32-битного (65.148.151.124) — важнейшая особенность нового IPv6-протокола. Идея простая: IPv6-адресов с лихвой хватит всем, и уже никогда не придется их экономить. Но если уж честно, то Интернет отлично работает и сейчас, даже при наличии проблемы со свободными IPv4-адресами. Единственное, что получат пользователи с переходом на IPv6, – это реальный IP-адрес, который позволяет забыть NAT как страшный сон. Но этот бонус можно получить и сейчас, как и некоторые другие плюшечки. Остановимся на этом подробнее.
Варианты подключения
Итак, главный вопрос — как начать использовать IPv6? Самый лучший расклад, но, увы, нереальный — это когда IPv6-адрес выдаст тебе сам провайдер. В этом случае систему, во-первых, проще всего настроить, во-вторых, это гарантирует минимальный пинг (нет посредников, не выполняются дополнительные операции по «обертыванию» данных), и, в-третьих, он банально надежнее других. Ты просто подключаешься к провайдеру, и все — так же, как и в случае с IPv4. Увы, провайдер, предоставляющий IPv6-адрес, в России, да и в целом по миру, — явление практические фантастическое. Счет пока идет на десятки во всем мире. На это есть много причин. Нормальной поддержки нового протокола нет не только во многом клиентском оборудовании, но и даже в серверном. Даже если производитель декларирует IPv6-совместимость, на практике она может работать очень косо. Провайдеры боятся и умеют считать деньги. Платить за IPv6 как услугу клиенты не готовы (им это на фиг не надо), а перевод всего оборудования и персона обойдутся в астрономическую сумму. Вот и продолжают провайдеры подсаживать клиентов на NAT, чтобы уместиться в лимит IPv4-адресов, и так, бесспорно, будет продолжаться в ближайшие годы. Нам же остается использовать альтернативные способы получения заветного IPv6. Их несколько.
== 6to4
Если у тебя есть белый IPv4-адрес, то механизм 6to4 — определенно заслуживающий внимания вариант для приобщения к IPv6. В двух чертах расскажу, в чем суть. Для того чтобы 6to4-хосты могли отправлять пакеты в другие IPv6-сети, были созданы 6to4-ретрансляторы, которые подключены как к IPv4-сети, так и к IPv6-сети. Когда 6to4-хосту нужно отправить IPv6-пакет, он отправляет его по так называемому anycast-адресу 192.88.99.1. Ретранслятор, получив данные 6to4, извлекает IPv6-пакет и отправляет его по IPv6-сети. Звучит довольно просто, использовать подход еще проще. Ты поднимаешь 6to4-интерфейс и настраиваешь адрес в формате «2002:xxyy:zztt», где «xx.yy.zz.tt» — это IPv4-адрес, записанный в шестнадцатеричном виде, а маршрутизацию настраиваешь так, чтобы все исходящие пакеты «уходили» на 192.88.99.1. Вот и вся настройка. Плюс 6to4 в том, что связь между двумя пользователями 6to4 осуществляется не через туннельный сервер, а напрямую, с нулевой дополнительной задержкой, при этом самый близкий шлюз выбирается автоматически. Не нужно регистрироваться в каких-то системах, а и без того несложный процесс конфигурирования становится еще проще за счет автоматических генераторов настроек. Но есть важный момент. Если у тебя динамический IP-адрес, то при его смене будет меняться и IPv6. Поэтому удобнее всего 6to4 использовать со «статикой». Правда, эта услуга обычно предоставляется провайдером на платной основе, и мне, к примеру, обходится в 200 рублей в месяц.
== Teredo
Многие пользователи не имеют не только статического, но и вообще белого IP-адреса, постоянно работая через NAT. В этом случае использовать 6to4 уже не выйдет — вместо этого можно задействовать технологию Teredo. Протокол передает IPv6-пакеты через сети IPv4 путем их инкапсуляции в UDP-дейтаграммы — в частности, через устройства, использующие NAT. Технология была разработана в Microsoft и очень проста в настройке, причем не только под Windows, но и nix-системы. Если ты используешь uTorrent, то можешь прямо в настройках программы найти кнопку «Install IPv6/Teredo» (разработчики uTorrent не только реализовали поддержку IPv6, но и всячески продвигают использование нового протокола). Поднять Teredo «ручками» несложно — всего двумя командами (речь идет о Vista/Windows 7):
ipv6 install netsh int ipv6 set teredo client
Под никсами же надо поднять одну из альтернативных (и, как правило, открытых) реализаций протокола Teredo (например, Miredo):
sudo apt-get install miredo
Не надо никаких регистраций: все работает, что называется, «из коробки». Все клиенты, подключенные к Сети аналогичным образом, соединяются друг с другом напрямую (Teredo лишь помогает обойти ограничения NAT). В таком случае практически отсутствуют потери в скорости. Чего не кажешь про маршрутизацию трафика между Teredo и нативным IPv6: так, данные легко могут идти через шлюзы, расположенные в США (шлюз по умолчанию можно изменить, в России наиболее эффективно использовать teredo.remlab.net). Это не единственный минус. Если в случае с 6to4 ты мог получить целый диапазон IPv6-адресов, которые далее раздать другим устройствам локалки, то в случае с Teredo выдается только один адрес. Придется забыть даже о постоянном адресе: Teredo-адреса каждый раз генерируются исходя из текущего айпишника и используемого UDP-порта, т. е. являются динамическими. Но хуже всего, что Teredo может обойти не каждый NAT. Если после настройки не открывается проверочный сайт ipv6.google.com, первым делом нужно набрать в консоли «netsh int ipv6 show teredo». Сообщение «Ошибка: клиент за симметричным NAT» означает, что Teredo ты использовать не сможешь. В таком случае остается последний (но от этого вовсе не самый худший) вариант — использовать туннельного брокера.
== Туннельный брокер
Это, пожалуй, наиболее универсальный вариант, который подойдет как пользователям с белым IPv4-адресом, так и работающим без него. Туннельный сервис, как несложно догадаться, предоставляет туннель в IPv6-сеть. Их довольно много, причем каждый из них может иметь несколько шлюзов в разных странах мира. Выбирать лучше всего ближайший, чтобы минимизировать задержки. Это предмет для экспериментов с утилитами ping и traceroute, а также сервисов вроде ipv6-test.com. Помни: задержка до туннеля будет добавляться к времени передачи каждого IPv6-пакета, поэтому крайне важным условием для комфортной работы является минимальное значение пинга. Туннельный брокер, как правило, выдает не один, а целый диапазон IPv6-адресов. Важно, что они не меняются при смене твоего IPv4-адреса и привязываются к твоему аккаунту. По этой причине большинство сервисов требует регистрацию (а некоторые и вовсе тщательнейшим образом подходят к проверке данных, указанных при регистрации). Правда, новый адрес придется сообщать, но это несложно делать автоматически. При общей схожести используемого подхода туннельные брокеры используют различные методы «обертки» IPv6 в UDPv4 и потому предлагают различные варианты настройки подключения. Одним из наиболее простых (что называется, «для старта») является gogo6/Freenet6, о котором мы поговорим ниже.
Настройка туннеля
Практическая часть статьи, казалось бы, должна быть самой сложной, однако на деле настройка IPv6, как правило, не вызывает трудностей. Но создатели freenet6, предлагаемых компанией gogo6, максимально упростили этот процесс. Брокер предлагает несколько типов туннелей: IPv6-in-IPv4 в нативном режиме (в случае прямого подключения к Сети, с реальным IP), IPv6-in-IPv4 в режиме NAT Traversal (также называется IPv6-in-UDP-is-IPv4), который будет использоваться, если у тебя серый IP, и даже IPv4-in-IPv6 (на случай, если нужно обратиться к IPv4-ресурсам, имея только IPv6-адрес). За выбор типа туннеля отвечает специальный протокол TSP (Tunnel Setup Protocol). Несмотря на сложные аббревиатуры, сервис предлагает невероятно удобный клиент для подключения. Под виндой вся настройка сводится к двум тривиальным действиям:
Программа должна установить соединение, работоспособность которого быстро проверяется, если в браузере попытаться открыть какой-нибудь IPv6-ресурс (например, ipv6.google.com). Все должно работать. Единственное — в файрволе может потребоваться открыть исходящий порт 3653. Без конфигурирования клиент устанавливает так называемый анонимный туннель. Его ограничение в том, что при смене IPv4-адреса поменяется и выданный тебе адрес IPv6. Чтобы «привязать» к себе статические IPv6-адреса, необходимо:
Проверить выданный тебе IPv6-адрес, а заодно — работоспособность нового протокола по различным параметрам поможет сайт test-ipv6.com. Запомни адрес — теперь он закреплен за тобой. freenet6 даже выдает реверс-днс (username.broker.freenet6.net). При подключении стоит учитывать, что аутентификация осуществляется с передачей паролей в plain-text’е. Чтобы обезопасить себя, на вкладке Advanced рекомендуется выбрать метод аутентификации PASS DSS 3DES1 или Digest MD5.
Ты в IPv6
freenet6 — безусловно, самый простой способ получить IPv6-адрес, но не всегда самый лучший. Другие туннельные брокеры, обзор которых мы приводим во врезке, могут предложить более высокую скорость и меньшие задержки за счет большого количества входных серверов, размещенных в ближайших странах (например, Швеции). Как видишь, новый протокол на домашнем компьютере не требует какой-то немыслимо сложной настройки. И как мне кажется, предлагает неплохие бонусы за 10 минут, которые уйдут у тебя на настройку.
Туннельные брокеры
Gogonet/Freenet6
Один из самых доступных туннельных брокеров, предлагающий различные типы туннелей, в том числе проприетарный протокол для обхода NAT. Подключение осуществляется через удобный GUI-клиент, при этом предоставляется /56-подсеть для других устройств в сети. Проверив полученный IPv6, становится ясно, что серверы находятся в Канаде, а это непременно создает задержки. Однако других точек входа нет.
Hurricane Electric IPv6
Отличный брокер, предоставляющий /48-подсеть IPv6-адресов. Плюс в том, что сервис имеет два десятка разбросанных по миру серверов (США, Великобритания, Германия, Франция, Нидерланды, Гонконг, Канада), а значит, можно выбрать туннельный сервер с минимальной для себя задержкой. Минус в том, что брокер поддерживает только статические туннели, для создания которых тебе обязательно нужен реальный IP.
SixXS
AYIYA-туннель, предлагаемый этим брокером, пожалуй, один из наиболее достойных вариантов подключения к IPv6. Сервис может похвастаться разными типами туннелей (необязательно статических) и более 40 географически разбросанными серверами для подключения. Но будь готов к трудностям: все аккаунты проходят жесткую модерацию (желательно даже указывать свой аккаунт в LinkedIn), что может занять некоторое время. Рекомендую прочитать «10 шагов к IPv6».
IPv6 (Русский)
В Arch Linux протокол IPv6 включён по умолчанию.
Статья Linux IPv6 HOWTO, хоть и давно не обновлялась, содержит подробную информацию об IPv6, от основ до более сложных тем. Если вы слабо знакомы с данным протоколом, то стоит сначала прочесть её.
Contents
Обнаружение соседей
Пинг по адресу многоадресной рассылки ff02::1 заставит все хосты в локальной сети ответить. При этом нужно указать сетевой интерфейс:
После этого список «соседей» по локальной сети можно вывести командой
Автоконфигурация узла (SLAAC)
Простейший способ получения IPv6-адреса в уже настроенной сети — автоконфигурация узла (SLAAC, Stateless address autoconfiguration). При этом адрес автоматически вычисляется на основании объявленного маршрутизатором префикса сети. Никакие дальнейшие настройки или использование специализированного ПО вроде DHCP-клиента не требуются.
Клиент
Если вы используете netctl, то нужно только добавить одну строку в файл настроек вашей проводной или беспроводной сети.
Если вы используете NetworkManager, то он автоматически включит использование IPv6-адресов, если таковые объявлены в сети.
Нужно также заметить, что для нормальной работы автоконфигурации должны быть разрешены пакеты ICMP для IPv6. Поэтому необходимо добавить разрешения для пакетов ipv6-icmp в настройки межсетевого экрана. Если вы используете брандмауэр на основе iptables, то добавьте следующее правило:
Если вы используете другой интерфейс межсетевого экрана (ufw, shorewall и т.д.), то инструкции по разрешению пакетов ipv6-icmp нужно искать в документации.
Шлюз должен также разрешать трафик ipv6-icmp во всех основных цепочках межсетевого экрана. Для брэндмауэра/iptables добавьте правила:
Privacy Extensions
Когда устройство-клиент получает адрес посредством SLAAC, его IPv6-адрес вычисляется на основании префикса сети и MAC-адреса сетевого интерфейса. Это может иметь определённые последствия с точки зрения безопасности, поскольку MAC-адрес компьютера теперь можно узнать по IPv6-адресу. Для решения этой проблемы был разработан стандарт IPv6 Privacy Extensions (RFC 4941). В соответствии с ним ядро видоизменяет исходный адрес, генерируя вместо него временный. Такой подход используется, когда необходимо скрыть настоящий адрес при подключении к удалённому серверу.
Чтобы включить Privacy Extensions, добавьте в файл /etc/sysctl.d/40-ipv6.conf следующие строки:
После перезагрузки Privacy Extensions будут включены.
dhcpcd
NetworkManager
Чтобы включить IPv6 Privacy Extensions явно, добавьте следующие строки в файл NetworkManager.conf(5) :
Примените настройки и переподключитесь ко всем активным соединениям.
Перезагрузите соединение и подключитесь к нему снова.
systemd-networkd
Тем не менее, учитываются некоторые другие опции:
connman
Добавьте следующую строку в файл службы (например, /var/lib/connman/название_службы/settings ):
Постоянный приватный адрес
Другой полезной возможностью являются описанные в RFC 7217 постоянные приватные IP-адреса (stable private addresses). Эта технология позволяет назначать интерфейсам постоянные адреса, для вычисления которых вместо MAC-адреса устройства используется специально сгенерированный ключ.
Чтобы заставить ядро сгенерировать ключ (например, для интерфейса wlan0 ), необходимо задать параметр ядра:
NetworkManager
Описанные выше настройки не работают для NetworkManager, но он использует постоянные приватные адреса по умолчанию [1],[2].
Статический адрес
Иногда использование статического адреса может быть применено в качестве одной из мер обеспечения безопасности. Например, если ваш локальный маршрутизатор использует обнаружение соседей (Neighbor Discovery) или radvd (RFC 2461), вашему интерфейсу будет автоматически присвоен адрес, который содержит часть MAC-адреса сетевого интерфейса (используя SLAAC). Это может быть не слишком хорошо для безопасности, так как позволяет без труда отслеживать систему даже если часть IPv6-адреса сменилась.
IPv6 и PPPoE
Если вы используете netctl для PPPoE, тогда вместо этого добавьте следующую строку в файл настроек netctl:
Делегирование префикса (DHCPv6-PD)
Делегирование префикса (prefix delegation) — широко распространённая технология развёртывания IPv6, используемая многими интернет-провайдерами. Представляет собой метод назначения сетевого префикса пользователю (например, локальной сети). Маршрутизатор может быть настроен на привязку разных сетевых префиксов к различным подсетям. Провайдер выдаёт префикс с помощью DHCPv6 (обычно это префикс /56 или /64 ), а dhcp-клиент назначает префикс локальной сети. В случае простого шлюза с двумя интерфейсами клиент обычно получает адрес через WAN-интерфейс (или псевдоинтерфейс вроде ppp) и на его основании присваивает IPv6-префикс интерфейсу, обращённому к локальной сети.
Клиент DHCPv6 принимает входящие соединения на UDP-порт 546. Чтобы настроить доступ к этому порту в межсетевом экране nftables, в файле /etc/nftables.conf добавьте следующее правило в цепочку input:
dhcpcd
WIDE-DHCPv6
systemd-networkd
Настройте внешний (wan) и внутренний (lan) интерфейсы. Это включит DHCPv6-PD для интерфейса с запущенным DHCPv6-клиентом. Делегированные префиксы предоставляются посредством IPv6 Router Advertisement во внутренней (локальной) сети.
Другие клиенты
dhclient также может запрашивать сетевой префикс, но для присваивания этого префикса или его части нужно использовать специальный скрипт. Пример программы: https://github.com/jaymzh/v6-gw-scripts/blob/master/dhclient-ipv6.
Отключение IPv6
Отключение функциональности
Параметр ядра ipv6.disable=1 отключает весь стек IPv6, что в большинстве случаев помогает добиться желаемого результата.
Также вы можете отключить присвоение адреса IPv6 конкретным сетевым интерфейсам, добавив следующие строки в файл настроек sysctl /etc/sysctl.d/40-ipv6.conf :
Необходимо перечислить здесь все сетевые интерфейсы, для которых требуется отключение IPv6, так как опция all.disable_ipv6 не будет применена к сетевым интерфейсам, которые уже включены на момент выполнения инструкций из файла настроек.
Другие программы
Отключение IPv6 в ядре не предотвращает другие программы от попытки использования версии IPv6. В большинстве случаев это не приводит к проблемам, однако, если они все-таки появляются, вам остается лишь искать в man-страницах или на просторах сети способ отключить эту функциональность.
dhcpcd
Например, dhcpcd будет продолжать пытаться запрашивать настройки сети у маршрутизаторов IPv6 (т.н. Router solicitation). Чтобы отключить это, добавьте следующие строки в файл /etc/dhcpcd.conf :
NetworkManager
Чтобы отключить IPv6 в NetworkManager, вызовите контекстное меню значка статуса сети и перейдите в Edit Connections > Wired > Network name > Edit > IPv6 Settings > Method, затем выберите Method как Ignore/Disabled.
GnuPG
Отключите IPv6 в настройка dirmngr:
systemd-timesyncd
Иногда systemd-timesyncd пытается отправлять запросы IPv6-серверу времени, даже если IPv6 отключён. Это может привести к тому, что системные часы не будут обновляться, а в журнале появятся сообщения об ошибках следующего вида:
Команда systemctl status systemd-timesyncd в пункте «Status» выведет IPv6-адрес целевого сервера:
Как видно из FS#59806, по протоколу IPv6 работают «2.»-сервера ntp.org. Чтобы запретить подключение к ним, удалите в файле /etc/systemd/timesyncd.conf записи 2.arch.pool.ntp.org и 2.pool.ntp.org из параметров NTP and FallbackNTP соответственно.
systemd-networkd
Использование IPv4 вместо IPv6
The factual accuracy of this article or section is disputed.
Что такое IPv6? Зачем он нужен и сравнение с IPv4-адресом
Опубликовано admin в 12 июля, 2020 12 июля, 2020
IPV6 — это 6-я версия интернет-протокола, которая используется на уровне IP пакета протоколов TCP / IP для идентификации каждого устройства, подключенного к Интернету. Обеспечивает больше функций, чем IPV4.
IPv6 является уникальным и универсальным. Длина 128 бит или 16 байт, имеющая адресное пространство 2 ^ 128. Использует четыре нотации для отображения, десятичную запись с точками, шестнадцатеричное представление с двоеточием, смешанное представление. Может быть: одноадресным, произвольным или многоадресным.
Для чего нужен IPv6
Бурный рост технологий и модернизация различных конфигураций мобильных устройств, компьютеров, планшетов, беспроводных портативных устройств привели к увеличению потребности в распределении адресов. IPv6 предназначен для замены широко используемого IPv4, который считался основой современной всемирной паутины. IPv6 разработан для преодоления исчерпания IPv4. Перед подробным объяснением потребностей IPv6, давайте посмотрим на IPv4 и его недостатки.
IPv4 и его недостатки
IPv4 является четвертой версией разработки интернет-протокола. Он выступает в качестве одного из основных протоколов основанных на стандартах межсетевого взаимодействия в Интернете и сетях с коммутацией пакетов. Поддерживает 32-битную адресацию и по-прежнему обрабатывает интернет-трафик.
IPv4 ограничивает адресное пространство до 2 ^ 32, а также резервирует блоки для частных сетей и многоадресных адресов. В основном адреса записываются в виде четырех октетов в десятичных числах, разделенных точками. Это также выражается в шестнадцатеричном формате с точками. Его можно разделить на две части: идентификатор сети и идентификатор хоста.
Сетевой идентификатор содержит наиболее значимый октет, а хост — остальную часть. Чтобы преодолеть этот предел, создаются сетевые классы. Используются пять классов.
Адреса специального назначения содержат диапазон с количеством адресов в разных областях. И он будет ограничен для общего использования.
В основном используется в частных сетях для предоставления адресного пространства и для многоадресного трафика.
IPv4 исчерпан из-за четырех основных причин
Из-за исчерпания адресов интернет-протокол 4 поколения превратился в угрозу. Но помог выявить и преодолеть ее с помощью нескольких методологий, таких как: бесклассовая междоменная маршрутизация, трансляция сетевых адресов и политики, и др., которые были созданы для строгого распределения.
Эти технологии помогли решить проблему в течение некоторого времени, внося изменения в инфраструктуру распределения и маршрутизации Интернета. Основное истощение в IPv4 вызвало недостаточную пропускную способность в первоначальном дизайне интернет-инфраструктуры. Каждая из проблем увеличила спрос на ограниченное предложение адресов следующим образом:
Это были основные причины, по которым началось исчерпание адреса и началось постепенный переход на IPv6 с требованием изменений в интернет-инфраструктуре.
Пакеты IPv6 и его использование
Чтобы преодолеть инфраструктуру межсетевого взаимодействия IPv4, IPv6 был построен с расширенными октетами (до 40 октетов) и предоставил возможность расширить протокол в будущем, не затрагивая структуру базовых пакетов. Он ввел «Jumbograms», что означает, что пакет может обрабатывать ограничение 2 ^ 32. Jumbograms улучшают производительность по каналам с высоким MTU и полезную нагрузку.
IPv6 содержит 128 битов, а его размер в адресном пространстве достаточно велик для будущего использования. Идентификатор в подсети является уникальным для хоста, подключенного к сети. Он разделен на 8 групп по 16 бит в каждой. Каждая группа разделяется двоеточием в шестнадцатеричном формате.
Преимущества
Ниже приведены пункты, объясняющие преимущества IPv6:
Разработка IPv6
Ниже приведено объяснение, кто разработал IPv6:
Вывод — что такое IPv6?
Результаты и включение в IPv4 показывают, что ядро IPv6 хорошо поддерживается и доказано своей совместимостью. Оно внедряется в последних поколениях маршрутизаторов и ОС. Таким образом, он расширяется инфраструктурой для поддержки полного перехода на современный интернет-протокол.
IPv6, не дожидаясь провайдера
Держу пари: немногие из читателей обратили внимание на то, что 8 июня 2011 г. прошел так называемый World IPv6 Day. В этот день многие сетевые операторы, интернет-провайдеры и владельцы сайтов перевели свои ресурсы в режим работы, предполагающий полноценную одновременную поддержку и привычного нам IPv4 (который мы до сих пор знали как просто IP), и нового IPv6. Отсутствие громких сообщений и широкого резонанса свидетельствует о том, что достаточно масштабный эксперимент завершился вполне удачно и в дальнейшем мы по-прежнему можем рассчитывать на гладкую работу Интернета. Отвлеченному человеку вышесказанное может показаться пустяком, но с World IPv6 Day действительно были связаны определенные переживания.
Прежде всего, давайте разберемся, что же именно в этот день произошло, и каким образом это касается (или нет) каждого из нас. Дело в том, что по сей день подавляющее большинство веб-сайтов доступны исключительно по протоколу IPv4, т. е. даже если их инфраструктура формально и поддерживает IPv6, то символьное имя разрешается DNS именно в IPv4. Для заведомого использования IPv6-ресурсов, как правило, нужно указывать специальные имена — к примеру, ipv6.google.com (хотя сама по себе комбинация символов «ipv6» ни о чем не говорит).
Причем если конкретный сайт доступен по нескольким IPv6-адресам, то задержка вырастает в соответствующее число раз. Как при этом поведут себя различные программы, предсказать довольно сложно. Но в любом случае, эта проблема не должна была стать массовой, эксперты оценивали долю возможных «потерпевших» всего в 0,05% от общей Интернет-аудитории, хотя, конечно, любому было бы неприятно попасть в их число. Поэтому участники World IPv6 Day больше заботились не о нас, а о собственной репутации: ведь для непосвященного ситуация выглядела бы так, будто их ресурс «лежит». Это, кстати, и есть основная причина, по которой никто не торопится обеспечивать доступ по IPv6.
Впрочем, определенная забота о простых смертных все же имела место. Та же Google, к примеру, еще в Chrome 11.0.696.71 ограничила таймауты при работе по IPv6 величиной всего 300 мс. В свою очередь, Microsoft выпустила специальный FixIt-апплет для тех пользователей Windows, у кого все-таки возникли бы проблемы с доступом к популярным Интернет-ресурсам; он просто делает приоритетным протокол IPv4.
С подобными проблемами, конечно, можно будет столкнуться и в будущем — крупнейшие интернет-компании настолько вдохновились успехами World IPv6 Day, что оставили часть второстепенных ресурсов функционировать в «экспериментальном» режиме. В качестве примеров — www.xbox.com или developers.facebook.com, а в дальнейшем таких сайтов будет становиться все больше.
Также специалисты опасались, что World IPv6 Day привлечет внимание хакеров, которые могут поставить собственный эксперимент — к примеру, попытаться атаковать какие-то узлы сетевой инфраструктуры. Аргументом служило то, что поддержка IPv6, особенно его новых возможностей, еще недостаточно отлажена и вполне может оказаться легко уязвимой. Но ведь хакеры находятся в аналогичном положении, им тоже нужно адаптировать свои инструменты и методы. Кроме того, с их стороны это был бы чисто «научный» эксперимент, так как пользователи все еще предпочитают не задумываться о IPv6: хотя у некоторых крупных сетевых операторов 8 июня IPv6-трафик удваивался (причем львиная доля его приходится на P2P), в абсолютных цифрах он все равно не поднялся выше доли процента. Так или иначе, но ни о каких инцидентах информации не поступало, хотя, опять же, исключить их в будущем нельзя.
Почему IPv6?
В этом месте у многих наверняка возникнет закономерный вопрос: зачем вообще внедрять IPv6, если без него все прекрасно работает, а с ним могут быть связаны различные проблемы? Однако ответ на него не менее очевиден для тех, кто хоть немного в курсе дела: адресов IPv4 очень мало, свободных практически не осталось — занимающаяся их распределением организация IANA (Internet Assigned Numbers Authority) раздала последние блоки еще 3 февраля 2011 г. Естественно, в распоряжении региональных интернет-регистраторов (RIR) какое-то количество адресов еще имеется, но предположительно через год по крайней мере один из них тоже останется с пустыми руками. Также свободные адреса имеются у локальных провайдеров и крупных организаций (вроде Google и Microsoft), которые в свое время запрашивали их с большим запасом. Последние даже нашли юридические лазейки, чтобы выкупать остатки друг у друга (хотя в принципе это не было предусмотрено). Но так или иначе — ясно одно: 30 лет назад создатели IPv4 слишком самонадеянно посчитали 4 миллиарда (2 32 ) достаточно большим числом.
Западные журналисты склонны излишне драматизировать сложившуюся ситуацию, называя ее не иначе как IPcalypse или ARPAgeddon (от названия организации ARPA, или Advanced Research Projects Agency, чья сеть ARPAnet была прообразом Интернета). На самом деле все не так страшно, особенно в ближайшей перспективе. Во-первых, World IPv6 Day подтвердил состоятельность идеи так называемого «двойного стека», подразумевающей длительное сосуществование протоколов IPv4 и IPv6, которое позволит постепенно решить все возникающие технические проблемы. Во-вторых, в нашем распоряжении имеется технология NAT, позволяющая прекрасным образом пользоваться «фиктивными» адресами.
Однако долгосрочная перспектива, если не приложить достаточных усилий, выглядит не такой уж радужной. После реального исчерпания IPv4-адресов новые ресурсы будут работать уже только по IPv6, так что никакой «двойной стек» сам по себе не поможет добраться до них по IPv4. Далее, масштабное внедрение NAT провайдерами и сетевыми операторами таит в себе целый ряд неприятных моментов — и ограничения в работе с P2P-системами на самом деле еще мелочь. Массовая трансляция адресов существенно увеличит нагрузку на сетевую инфраструктуру, а кроме того может вызвать неадекватные реакции со стороны систем безопасности, которым, к примеру, будет сложно отличить наплыв пользователей из-за NAT от настоящей DDoS-атаки.
Справиться с этими и подобными явлениями как раз и призван протокол IPv6: давайте разберемся, за счет чего.
Что нового в IPv6
Главная новость для конечных пользователей состоит в том, что IPv6 оперирует 128-битными адресами против 32-битных в IPv4. Типичный IPv6-адреc записывается шестнадцатеричными цифрами таким образом:
В каждой группе, отделенной двоеточиями, ведущие нули могут опускаться, а двойное двоеточие (которое может встречаться только один раз) обозначает последовательность нулевых групп, обеспечивающую корректную длину всего адреса. Т. е. нулевой адрес может выглядеть просто как «::». Хотя в общем случае пытаться запоминать такие конструкции практически бесполезно, их все же можно использовать — к примеру, в адресной строке современных браузеров, заключая в квадратные скобки.
Даже если не вдаваться в математические подсчеты, понятно, что количество IPv6-адресов измеряется в полном смысле астрономическим числом. На самом деле, на текущий момент бо́льшая часть адресного пространства, порядка 85%, зарезервирована на будущее (к примеру, если нынешняя система распределения окажется не совсем удачной, будет возможность быстро ее скорректировать), но все равно ясно, что оперировать каждым конкретным адресом невозможно — слишком велики будут таблицы маршрутизации. Поэтому система задумана иерархической: в частности, адреса будут распределяться подсетями /48, т. е. первые 48 бит формируют так называемый глобальный идентификатор (префикс), следующие 16 бит будут определять подсеть, а следующие 64 — интерфейсы. С одной стороны, это обеспечит все разумные и неразумные потребности, с другой — существенно упростит маршрутизацию. Понятно, что префикс длиной в 64 бита позволяет зашить довольно много информации — так, если глобальные («обычные») IPv6-адреса выделяются в диапазоне 2000::/3, то, забегая несколько вперед, 2001::/32 обозначают Teredo-адреса, а 2002::/16 — 6to4. Соответственно, с корректным выявлением и обработкой двух последних не должно возникнуть никаких проблем.
Кроме того, в IPv6 имеются так называемые «уникальные локальные» адреса (диапазон fc00::/7) — по сути, аналоги зарезервированных в IPv4 для организации NAT. Они автоматически выделяются каждому интерфейсу, причем специальный алгоритм генерирует их на основе MAC-адреса таким образом, чтобы с высокой вероятностью действительно обеспечить их уникальность. В частности, это свойство означает априори готовность любой локальной сети к работе по IPv6 без дополнительной настройки и даже без DHCP, что, к примеру, очень удобно для организации так называемых спонтанных (ad-hoc) сетей.
Как видите, IPv6 — вовсе не «расширенный IPv4», тем более что обратной совместимости между ними нет. Разрабатывать IPv6 (первоначально его называли IPng, IP next generation) начали еще в 1992 г., первые спецификации появились в 1996 г., и только в 2004 г. началось, по сути, его реальное использование — с добавления соответствующих DNS-записей (обычно их условно обозначают AAAA, против A для IPv4) для японского и корейского национальных доменов. Кстати, нет никакой тайны и в том, почему за IPv4 следует сразу IPv6 — номер 5 успели задействовать для еще одного экспериментального протокола, предназначавшегося для передачи аудио и видео.
Соответственно, IPv6, как более прогрессивный и созданный с пониманием реальных ограничений своего предшественника, содержит немало и функциональных улучшений, прежде всего в области маршрутизации. Кроме уже упоминавшейся иерархической системы сюда же можно отнести освобождение маршрутизаторов от разбиения пакетов (теперь этим должна заниматься передающая сторона, что при определенных обстоятельствах как раз и может стать одним из источников уязвимостей) и подсчета контрольных сумм (на уровне IP они просто исчезли за ненадобностью). При этом максимальный размер пакетов может достигать 4 ГБ (так называемые «джамбограммы»), что, впрочем, найдет применение только в каких-то специальных случаях — к примеру, в суперкомпьютерах. Появились также многоадресное вещание, новые возможности QoS (к примеру, специальное поле срочности доставки, что особенно пригодится при потоковой передаче аудио и видео), IPSec стал обязательным и пр.
Таким образом достоинства IPv6 очевидны. Исключив необходимость в NAT и упростив маршрутизацию на уровне корневой инфраструктуры, он должен обеспечить даже лучшую производительность Интернета, а выделение «белых» адресов любым сетевым устройствам (обычно в качестве примера приводятся холодильники, но более интересно выглядят всевозможные счетчики и сенсоры, которые благодаря автоконфигурации смогут легко объединяться в локальные сети) наверняка откроет какие-то совершенно новые возможности. При этом теоретически должна улучшиться и ситуация с безопасностью — «белые» адреса усложнят жизнь спамерам и владельцам ботнетов, сканировать адресное пространство IPv6 не в пример сложнее IPv4, да и обнаруживаться такая деятельность будет легко.
Откуда берутся проблемы с IPv6
Но раз все должно быть хорошо, то почему мы говорим о каких-то проблемах? Действительно, на сегодняшний день можно считать, что сам по себе Интернет (на уровне корневой инфраструктуры) к IPv6 вполне готов, и то же самое, скорее всего, можно сказать о крупных сетевых операторах. Гораздо хуже дело обстоит с провайдерами доступа — вот они совсем не торопятся: тех, что официально начали поддерживать IPv6 на просторах СНГ, можно пересчитать по пальцам. Хотя отчасти их можно понять — на самом деле мало кто из их абонентов может полноценно воспользоваться IPv6. Дело в том, что подавляющее большинство пользовательского оборудования (модемы, маршрутизаторы, беспроводные точки) IPv6 не поддерживают. Соответствующие устройства непросто найти даже среди новых моделей — что уж говорить о тех, что были выпущены несколько лет назад.
При этом не факт, что ситуацию можно исправить обновлением их микропрограмм. Во-первых, это серьезная работа, на которую решится не всякий производитель; во-вторых, это не всегда возможно в силу аппаратных ограничений; в-третьих, очевидно, что гораздо выгоднее продать нам новое устройство, чем с непонятным результатом возиться со старым. Кое-что, конечно, можно предпринять и самостоятельно. К примеру, популярная альтернативная микропрограмма для беспроводных маршрутизаторов DD-WRT поддерживает IPv6, и ею можно воспользоваться на свой страх и риск (хотя, как известно, делается это не всегда просто). Правда, мне не встречалась информация о том, насколько надежно она работает.
И все же, снова утешу читателей — не все плохо. Описанные выше проблемы ни для кого не тайна, и IPv6 содержит целый ряд стандартных механизмов для своего использования даже без поддержки со стороны провайдера. К тому же, все сравнительно современные ОС и значительная часть прикладного ПО прекрасно работают с IPv6.
Как приобщиться к IPv6
Итак, очевидно, что ситуация, когда и провайдер, и ваше оборудование поддерживают IPv6 — все еще редкость. Поэтому придется обратиться к дополнительным ухищрениям, благо о них предусмотрительно позаботились и сетевые операторы, и разработчики ПО. Все они построены на технологиях туннелирования, т. е. инкапсуляции IPv6-трафика в IPv4-пакеты, которые, соответственно, где-то и кем-то должны быть расшифрованы и переданы по назначению.
Все дальнейшее относится к Windows 7, в которой IPv6 по умолчанию включен. В Windows Vista отличий быть не должно, в Windows XP с последним сервис-пакетом IPv6 необходимо предварительно установить, к примеру, таким образом:
Эта и другие команды должны выполняться от имени администратора, в Windows 7 для этого проще всего запустить с административными полномочиями командную строку.
Вариант первый — 6to4. Использование возможно в том случае, если у компьютера статический «белый» IPv4-адрес. Это принципиально, так как именно на его основе должен быть сформирован уникальный глобальный IPv6-адрес. Для активации достаточно выполнить всего одну команду:
netsh int ipv6 6to4 set relay 192.88.99.1 enabled 1440
Здесь 192.88.99.1 представляет специальный широковещательный (anycast) адрес, посредством которого находятся шлюзы 6to4. Один из них, независимо от своего размещения (маловероятно, что у отечественного провайдера), и будет задействован в результате, и на него будет маршрутизироваться весь 6to4-трафик. Соответственно, возможны проблемы с производительностью, хотя, учитывая малую распространенность IPv6, ни о чем подобном пока не сообщалось.
На случай, если компьютер находится за NAT, имеется другой способ под названием Teredo (аналог в Linux и Mac OS X — Miredo). Он более универсален, но требует и дополнительной настройки. Прежде всего, в Windows 7 Teredo присутствует, но в основном предназначен для самостоятельного использования различными сетевыми приложениями. Поэтому, в частности, в отсутствие IPv6-трафика ОС его быстро деактивирует. Соответственно, вначале нужно изменить такое положение дел в редакторе групповых политик (gpedit.msc): найти в разделе Computer Configuration → Administrative Templates → Network → TCPIP Settings → IPv6 Transition Technologies параметр Teredo Default Qualified и установить его в значение Enabled.
Затем нужно в сетевых настройках назначить явный IPv6-адрес, к примеру 2002:c0a8:102:: (это аналог 192.168.1.2; при желании другие можно вычислить здесь), и указать длину префикса подсети — 48.
Затем — выполнить команду
и в разделе Interface List выяснить номер интерфейса Teredo. Допустим, он равен 21, тогда осталось выполнить последнюю команду
netsh interface ipv6 add route ::/0 interface=21
подождать несколько секунд и проверить работоспособность IPv6:
В некоторых случаях, впрочем, и после этого Teredo остается неактивным, тогда его нужно активировать принудительно:
netsh int teredo set state type=client
netsh interface ipv6 delete route ::/0 interface=21
netsh interface ipv6 add route ::/0 interface=21
Если внешний IPv4 выделяется динамически, две последние команды придется повторять после каждого выключения/включения маршрутизатора/модема либо при каждой смене адреса (обычно раз в сутки), для чего лучше всего создать пакетный файл.
Также в зависимости от настроек вашего маршрутизатора в первой команде иногда нужно указать другой тип клиента:
netsh int teredo set state type=enterpriseclient
Вообще-то он предназначен для доменной среды, но, по не вполне ясным причинам, иногда требуется и в других ситуациях.
Teredo имеет ряд особенностей, о которых следует знать. Во-первых, его поддержку формируют два типа серверов: вспомогательные, которые нужны только на этапе конфигурирования (один из них развернут самой Microsoft), и шлюзы, обеспечивающие обращение к реальным IPv6-адресам путем расшифровки инкапсулированного трафика (взаимодействие между Teredo-адресами происходит напрямую). Соответственно, производительность может зависеть от загрузки последних. Во-вторых, надо иметь в виду, что Teredo позволяет принимать входящие соединения, что создает потенциальную брешь в защите. На текущий момент это вряд ли является большой угрозой, т. к. сканировать IPv6-адреса (а Teredo даже сложнее, чем реальные) бесперспективно, да и мало какие приложения «слушают» IPv6. Но в принципе стоит предусмотреть дополнительную защиту с помощью брандмауэра — Windows Firewall будет достаточно.
В некоторых случаях, однако, Teredo также не будет работать. Например, из-за симметричного NAT или в случае фильтрации UDP. Кроме того, Teredo позволяет задействовать только один IPv6-адрес, т. е. раздать с его помощью IPv6 в локальной сети не удастся. На эти случаи имеется еще один вариант — так называемые туннельные брокеры. Сегодня их уже немало, причем многие поддерживаются сетевыми операторами, т. е. предположительно с их производительностью не должно быть больших проблем. При этом данные услуги предоставляются бесплатно, хотя взамен от пользователя обычно требуется регистрация.
Одни брокеры предполагают определенную ручную настройку, другие предлагают специальные клиентские утилиты, выполняющие все необходимые действия автоматически, но принцип остается неизменным — необходимо соответствующим образом настроить оба конца туннеля. Каждый из вариантов имеет свои преимущества и недостатки. В первом на самом деле также не придется слишком вникать в подробности — скорее всего, всё, что понадобится, это выполнить на своем компьютере предложенный набор готовых команд. Однако имейте в виду, что эту процедуру придется повторять при каждой смене внешнего IPv4-адреса (к примеру, создав пакетный файл и назначив с помощью планировщика его запуск при каждом старте системы). Во втором почти наверняка придется установить дополнительный драйвер, который зато сможет достаточно интеллектуально выполнять автоконфигурирование при каждой перезагрузке.
Проверка
На сегодня существуют множество ресурсов, позволяющих проверить корректность функционирования IPv6. Самое простое — зайти в любом современном браузере на сайт, заведомо доступный только по IPv6 — к примеру, на ipv6.google.com. Также несложно убедиться в приоритетности нового протокола:
При этом адрес должен разрешаться именно по IPv6.
На сайте www.kame.net вы должны увидеть «пляшущую» черепашку (в случае использования Teredo она обычно остается неподвижной).
Более подробную диагностику соединения можно выполнить на сайте test-ipv6.com:
Наконец, уже имеются и специальные ресурсы для проверки производительности IPv6-соединения, хотя туннелирование вносит слабо предсказуемые флуктуации. Speedtest на ipv6.wcclan.net слишком нестабилен и дает чересчур большой разброс результатов, но среднее значение скорости загрузки в моем случае составляет около 10 Мбит/с:
Примерно такие же результаты и на другом ресурсе — ipv6-test.com/speedtest (скорость по IPv4 соответствует действительности):
Понятно, что потери производительности будут всегда — как минимум, они обусловлены накладными расходами на туннелирование пакетов. Однако значительную роль играют расположение и загрузка туннельного сервера, который можно явно выбирать на вкладке Advanced утилиты gogoCLIENT.
В заключение еще раз обращу внимание читателей на то, что туннелирование является потенциально опасной операцией и ее стоит использовать при включенном локальном брандмауэре, благо IPv6 поддерживают как Windows Firewall, так и многие сторонние продукты.