Встатье «Близится время IPv6», опубликованной в Windows IT Pro № 1 за 2008 год, рассматривались основы IPv6 и различные аспекты использования IPv6 в средах Windows.

Теперь, имея полную информацию о Windows Server 2008, я хочу остановиться на поддержке IPv6 в новой операционной системе, включая вопросы обновления и сценарии перехода на IPv6. Microsoft, выпустив Server 2008, внесла в код стека IP некоторые изменения для повышения безопасности и облегчения обновления и перехода на IPv6. Об этих изменениях также будет рассказано в этой статье.

IPv6 в Server 2008

Чтобы улучшить поддержку IPv6 и повысить безопасность его использования в Windows, разработчики Microsoft внесли ряд ключевых изменений и в саму операционную систему. Среди них два изменения наиболее очевидны — это поддержка Dynamic Host Configuration Protocol for IPv6 (DHCPv6) и усовершенствование поддержки адресного пространства IPv6 в DNS, в частности регистрация и отображение адресов IPv6. Но и другие изменения также заслуживают отдельного упоминания.

Начнем с того, что Server 2008 по умолчанию не генерирует трафик Intra-Site Automatic Tunnel Addressing Protocol (ISATAP) в случае, если маршрутизатор ISATAP не доступен. Доступность ISATAP сервер определяет по тому, что имя хоста ISATAP не удается разрешить при помощи стандартных методов, включая запросы DNS, файл HOST и широковещательные запросы. Это изменение относится к функции безопасности, так как препятствует подключению хостов по ISATAP к Server 2008 с использованием пакетов IPv6 в обход — теоретически — списков доступа Access Control Lists (ACL) и сетевых экранов. Дело в том, что если имя хоста ISATAP будет разрешено, то сетевому администратору нужно будет разрешить подключение по IPv6 через инкапсуляцию IPv6 в пакеты IPv4 (технология автоматического туннелирования, 6to4). Если связь по ISATAP необходимо включить в отсутствие маршрутизатора ISATAP — скажем, для поддержки приложений IPv6 (с поддержкой только IPv6‑протокола), вы можете вручную включить интерфейс ISATAP и заставить Server 2008 принимать входящий инкапсулированный трафик, введя команду: netsh interface ipv6 isatap set state enabled

Напомню, что все остальные версии Windows, которые поддерживают IPv6, — Windows Vista, Windows XP и Windows Server 2003 — выделяют адрес для интерфейса ISATAP даже в том случае, когда имя хоста ISATAP не может быть разрешено, и этим можно воспользоваться для связи с другими хостами ISATAP. Еще одно изменение в Server 2008, заслуживающее внимания, также связано с ISATAP. Если на сервере DNS на базе Server 2008 создать запись типа А для ISATAP, сервер DNS не станет отвечать на запросы DNS для имени хоста ISATAP. Это настройка по умолчанию. Такое поведение также следует отнести к сфере безопасной работы: это не позволит пользователю случайно (или намеренно) запустить систему с именем ISATAP, на которой присутствует запись А. Предполагается, что система с именем ISATAP является маршрутизатором ISATAP, и все узлы IPv6, которые будут с ним связываться — через инкапсуляцию пакетов IPv6 в пакеты IPv4, — будут получать адреса IPv6 от маршрутизатора ISATAP. Если система, названная ISATAP, отвечает с адресным префиксом IPv6, она становится маршрутизатором по умолчанию для всего трафика IPv6, со всеми вытекающими отсюда последствиями.

Если ISATAP планируется использовать как часть стратегии обновления/перехода и необходимо установить и настроить сервер ISATAP, можно запустить на Server 2008 службу DNS для ответа на запросы к А-записи ISATAP, изменив в реестре параметр  HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesDNSParametersGlobalQueryBlockList (тип Multi-string). Параметр имеет два значения — isatap и wpad (также с усилением безо­пасности). Просто удалите значение isatap и перезапустите сервер DNS. Аналогичное изменение надо внести на всех серверах DNS, которые содержат зону с описанием ISATAP. Или воспользуйтесь утилитой Dnscmd. Подробнее о настройках Global Query Block List, включая информацию о работе с Dnscmd, рассказано в статье Microsoft «DNS Server Global Query Block List» на сайте download.microsoft.com.

IPv6. Планирование и реорганизация

Перед тем как настраивать Server 2008 для поддержки IPv6, нужно спланировать развертывание в компании IPv6. Для этого потребуется собрать некоторую базовую информацию. Прежде всего, надо решить, как будет использоваться IPv6 — с общим доступом (globally aggregatable address, или public) или только для частного применения (private). Если IPv6 планируется использовать повсеместно, от провайдера (ISP) потребуется адресный префикс IPv6. Если ISP не поддерживает IPv6, префикс может предоставить туннельный провайдер. Для приватного использования IPv6 предпочтительно задействовать локально уникальные адреса (locally unique addresses), но большинство операционных систем и приложений поддерживают локальные адреса на уровне сайта (site local addresses), что официально не рекомендуется. Если требуются локально уникальные адреса, также необходим уникальный префикс. Растущее число сайтов в Интернете породило необходимость в генераторе локально уникального адресного префикса, как, например, это сделано в SixXS (http://www.sixxs.net/tools/grh/ula). В среде Windows существуют преимущества при использовании локальных адресов на уровне сайта, о чем будет рассказано ниже. Отметим, что уже сегодня можно использовать приватные адреса на временной основе для поддержки IPv6 в сети компании; в этом случае переход на общедоступные сети IPv6 будет происходить постепенно, по мере готовности компании.

Далее, необходимо оценить каждую конечную сетевую систему — серверы, настольные компьютеры, ноутбуки и даже такие устройства, как телефоны VoIP и мобильные устройства. Все, что может подключаться к сети компании, должно стать объектом пристального внимания. Для каждой системы нужно установить, поддерживается ли IPv6 на уровне операционной системы и приложений, которые в ней работают. Крайне маловероятно, что каждая платформа и каждое приложение будет в полной мере поддерживать IPv6 (и даже обновления не помогут), поэтому, скорее всего, поддержку IPv4 придется продолжать. Надо также определить, какие системы поддерживают миграцию на IPv6 и переход на IPv6, включая инкапсуляцию в пакеты IPv4, а также ISATAP. К счастью, IPv6 изначально проектировался в расчете на сосуществование с IPv4, так что в случае необходимости оба протокола могут присутствовать в сети одновременно.

Теперь надо проверить сетевую инфраструктуру на предмет поддержки IPv6. Имеется в виду проверка маршрутизаторов, шлюзов, сетевых экранов, а также серверов DHCP и DNS. При этом нужно помнить, что необходимо опираться на технологии обновления и постепенного перехода на IPv6 в целях достижения возможностей и средств соединения и взаимодействия компьютеров, систем или устройств между собой и с любыми сетевыми устройствами, для которых IPv6 изначально не предусматривалась и даже в будущем поддержка IPv6 не планируется. Как минимум, вам потребуются серверы DNS с поддержкой IPv6 — например, на основе Server 2008. Начиная с этого момента я бы рекомендовал провести реорганизацию сети, с тем чтобы все конечные системы и сетевые устройства, поддерживающие IPv6, были соединены между собой. Этот шаг позволит максимально, насколько возможно, распространить встроенную поддержку IPv6 в вашей сетевой инфраструктуре, что позволит воспользоваться технологиями обновления и постепенного перехода на IPv6 тем системам и устройствам, которые также поддерживают IPv6, но в силу каких-то обстоятельств подключены к инфраструктуре, в которой IPv6 еще не поддерживается.

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

Если удалось идентифицировать сетевую инфраструктуру, которая не поддерживает IPv6, и в ней присутствуют конечные системы, поддерживающие IPv6, предстоит решить, хотите ли вы воспользоваться технологиями обновления и перехода для подключения конечных систем по IPv6 или же предпочитаете продолжать работу в пространстве IPv4. Предположим, решено переходить на IPv6. Тогда надо будет определить, какая именно технология обновления/перехода наиболее приемлема для конечных систем. Если на конечных системах настроен маршрутизируемый адрес IPv4 (то есть адрес IPv4 не находится в диапазоне 10.x.x.x, 172.16.x.x-172.31.x.x или 192.168.x.x), инкапсуляция 6to4, вероятно, наиболее правильный подход, и такой режим работы включается по умолчанию для поддержки IPv6. Если конечные системы настроены с приватным адресом IPv4 (то есть адрес находится в диапазоне 10.x.x.x, 172.16.x.x-172.31.x.x или 192.168.x.x) и между данными конечными системами и другими IPv6‑системами, с одной стороны, и сетевой инфраструктурой — с другой, нет устройств с поддержкой Network Address Translation (NAT), тогда вам следует воспользоваться технологией ISATAP. Если же NAT присутствует, можно применить технологию Teredo. Для платформы Windows существует клиент Teredo. К сожалению, для Server 2008 нет сервера Teredo, но вы можете задействовать Teredo-сервер от независимых разработчиков или перейти к версии Server 2008 R2, в которой эта серверная функция реализована.

IPv6 и настройка маршрутизаторов

Если ваш маршрутизатор поддерживает режим Basic IPv6 Connectivity with Router Solicitation, можно просто настроить каждый маршрутизатор в сетевой инфраструктуре на передачу уникального адресного префикса IPv6 для каждой подсети. При использовании глобальных адресов IPv6 это будет 48‑разрядный префикс от провайдера, начинается префикс с 2001::/16. Идентификатор Site Level Aggregation Identifier (SLA ID) занимает младшие 16 разрядов в 64‑разрядном адресе IPv6 и может использоваться для выделения подсетей сайта — для этого отведены старшие 48 разрядов. Например, если получен префикс 2001:470:8097::/48, следует настроить маршрутизаторы с данными префиксами для каждого интерфейса в такой последовательности 2001:470:8097:1::/64, 2001:470:8097:2::/64, 2001:470:8097:3::/64 и т. д.

Если же используются локально уникальные адреса, то префикс занимает 48 разрядов — например, fd37:533b: f40d::/48. Локально уникальные адреса начинаются с fd00::/8. Как и в случае с глобально агрегированными адресами, младшие 16 разрядов уникально идентифицируют каждую подсеть. И наконец, если используется не рекомендованный локальный адрес на уровне сайта (site local address), который начинается с fec0::/10, для подсетей можно задействовать 54 старших разрядов из 64 разрядов адреса IPv6, хотя условно локальный адрес на уровне сайта начинается с fec0:0:0::/48, оставляя для подсетей 65536 возможных значений.

Следуя документации на программное обеспечение маршрутизатора, необходимо активизировать функции запроса маршрутизатора (router solicitation), объявление маршрутизатора (router advertisement), поддержку таблицы маршрутизатора и соответственно поддержку протокола Routing Information Protocol for IPv6 (RIPv6). В этом случае конечные системы IPv6 смогут получать от маршрутизаторов адреса с маршрутной информацией (за это отвечает процесс router solicitation), настраивать шлюзы по умолчанию и взаимодействовать по IPv6 друг с другом и — при использовании глобальной адресации IPv6 — с Интернетом.

Использование технологий обновления и перехода для Basic IPv6 

Если несколько или все маршрутизаторы компании не поддерживают IPv6 или режимы router solicitation и discovery либо не умеют работать с таблицами маршрутизации, придется прибегнуть к технологиям обновления и перехода для работы с IPv6. И метод 6to4, и ISATAP основывается на инкапсуляции IPv6‑пакетов в пакеты IPv4. Когда пакет IPv6 инкапсулирован в пакет IPv4, используется 41‑й тип протокола IP для пакета IPv4. Для того чтобы технологии обновления/перехода заработали, нужно убедиться, что маршрутизаторы беспрепятственно пропускают пакеты IPv4 с типом 41.

Как уже отмечалось, если конечные системы настроены на публичные адреса IPv4 и поддерживают технологию 6to4 (а Windows это обеспечивает), им можно будет назначить адреса 6to4 IPv6. Идентифицировать такие адреса просто — они начинаются с 2002::/16. Затем проверяется возможность взаимодействия конечных систем через трафик IPv6 проверкой по 6to4‑адресам IPv6, например, так: ping -6 www.arin.net.

Если в сети используется комбинация 6to4 и глобальная адресация, имейте в виду, что трафик между узлами 6to4 и узлом с глобальным адресом (и наоборот) пойдет поверх трафика IPv4 и IPv6, через публичную ретрансляцию 6to4, и может заметно снизить производительность. В этом случае, вероятно, вы захотите воспользоваться ISATAP. Отметим, что взаимодействие между узлом с адресом 6to4 и узлом с локально уникальным адресом или локальным адресом на уровне сайта (и наоборот) невозможно через публичные сети 6to4. Такая ситуация возникает, когда некоторые конечные системы задействуют публичные адреса IPv4, а некоторые — частные IPv4‑адреса, а частные маршрутизаторы настроены на работу этих узлов друг с другом. В этом случае я рекомендую рассмотреть использование или только публичной, или только частной IPv4‑адресации, а ISATAP применять в исключительных случаях.

При использовании частной адресации IPv4 в сети, не поддерживающей IPv6, лучшее решение для взаимодействия по IPv6 — ISATAP. Необходимо выбрать в сети какую-либо систему и назначить ее на роль маршрутизатора ISATAP. Как минимум, ISATAP-маршрутизатор должен иметь два интерфейса: один public и один private. Public-интерфейс будет настроен на глобальный IPv6‑адрес или адрес из диапазона 6to4 и публичный IPv4‑адрес. Private-интерфейс настраивается на адрес из диапазона ISATAP. Маршрутизатор ISATAP принимает запросы router-solicitation на private-­интерфейсе (или интерфейсах, если их несколько) и отвечает пакетами router advertisements. Трафик IPv6 инкапсулируется в пакеты IPv4 на private-интерфейсе (интерфейсах). Server 2008 — это идеальный ISATAP-маршрутизатор, особенно при использовании в режиме Server Core. Самый простой способ настроить Server 2008 как ISATAP-маршрутизатор — настроить интерфейсы с фиксированными public- и private-адресами IPv4 и присвоить серверу имя ISATAP. С этим именем он регистрируется в DNS и будет обнаруживаться процедурой ISATAP discovery. Не забудьте настроить DNS для обслуживания ISATAP-запросов, как было описано выше, если DNS установлен на Server 2008. Для каждого private-интерфейса Server 2008 необходимо выполнить следующие команды:

netsh interface ipv6 set interface
(Interface)
forwarding=enabled advertise=enabled
netsh interface ipv6 add route
(IPv6 48‑it address):
(16‑it subnet)::/64 (Interface)
publish=yes

Здесь IPv6 48‑it address — это 48‑разрядный префикс, предоставленный вашим интернет-провайдером (старшие 48 разрядов 6to4‑адреса), 16‑it subnet — 16‑разрядный идентификатор подсети, уникальный для данного интерфейса, и Interface — имя интерфейса ISATAP или его индексное число (Index number). Если отсутствует и глобальный адрес, и префикс 6to4 для использования с ISATAP, можно воспользоваться адресом локально уникальным (locally unique) или локальным на уровне сайта (site local address).

Если после настройки маршрутизатора ISATAP хосты на этапе запуска смогут разрешить имя сервера ISATAP, им станут доступны маршрутизируемые адреса IPv6 от маршрутизатора ISATAP, и они будут опубликованы в DNS. С помощью команды

ipconfig/renew6

можно принудительно настроить уже работающие системы.

Настройка клиентов DNS

Несмотря на то что системы могут связываться друг с другом по IPv6, у вас могут возникнуть трудности при установлении соединения на прикладном уровне из-за невозможности разрешить полные имена Fully Qualified Domain Names (FQDN) или имена хостов. Если в организации одновременно повсеместно присутствует IPv4 и IPv6, а серверы DNS доступны для IPv4, в вашей сети не должно быть проблем с регистрацией и разрешением адресов IPv6, а также разрешением адресов IPv6 для хостов при работе с IPv6 в Интернете.

При запуске клиентских систем Windows предполагается, что в сети присутствуют серверы DNS, которые «прослушивают» адреса fec0:0:0: ffff::1, fec0:0:0: ffff::2 и fec0:0:0: ffff::3. Если работа ведется только по IPv6 и будет использоваться локальная адресация на уровне сайта, можно предположить, что Windows «понимает», где расположены серверы DNS, и настроит подсети для правильной работы с клиентами DNS. Напомню, что одновременно могут использоваться локальная адресация на уровне сайта (site local addressing), глобальная (globally aggregatable), локально уникальная адресация (locally unique) и адресация ISATAP. Если локальная адресация на уровне сайта присутствует только для поддержки клиентов DNS и от нее решено отказаться, можно настроить Windows на использование других серверов DNS при помощи команды:

netsh interface ipv6 add dnsserver
(IPv6 address)

Использование DHCPv6

В «родных» IPv6‑сетях для обслуживания адресов IPv6 конечных систем вместо процедур router solicitation и advertisement можно использовать DHCPv6. Для этого маршрутизаторы должны «уметь» функционировать как коммутационные серверы IPv6 DHCP (IPv6 DHCP relay servers). Можно также воспользоваться DHCPv6 в небольших изолированных сетях, где маршрутизаторы отсутствуют, и требуется установить взаимодействие между узлами по IPv6.

DHCPv6 работает примерно так же, как и классический DHCP. Ключевое отличие в том, что необходимо указывать префикс /64 и затем диапазон адресов в подсети, который нужно выделять для IPv6. Кроме того, число параметров для описания scope в DHCPv6 меньше, чем в DHCP. Как и в DHCP, DHCPv6 можно использовать для обслуживания списка серверов DNS, на которых будет происходить разрешение имен, в том числе для разрешения имен хостов IPv6. Преимущество использования DHCPv6 в сравнении с действующей в Windows по умолчанию локальной адресацией на уровне сайта в том, что вы можете обслуживать адреса IP-серверов DNS в различных подсетях, что очень важно с точки зрения отказоустойчивости. DHCPv6 может быть настроен на Server 2008 и с помощью Server Options нацелен на обслуживание списков адресов IPv6 для серверов DNS. Это удобно в случае, когда DHCPv6 не используется для списков IPv6 и требуется для замены router solicitation и advertisements. Для функции поиска можно использовать суффиксы доменов.

Возможности Server 2008 R2

Мы не коснулись одной важной темы — использование IPv6 для организации VPN, или удаленный доступ. С выходом Windows 7 и Server 2008 R2 у Microsoft появилась технология Direct Access, обеспечивающая более эффективный и безопасный доступ к вычислительным ресурсам. Direct Access работает в сочетании с Teredo, IPv6 IPsec и новой технологией IP-HTTPS, что позволяет создавать туннели HTTPS для прохождения пакетов IPv6 в случаях, когда Teredo не может быть использован или его работа заблокирована.

Джон Хоуи (jhowie@microsoft.com) — менеджер центра Microsoft Security Center of Excellence. Имеет сертификаты CISSP, CISM и CISA