Даже если вы не планируете с завтрашнего дня переходить на протокол IPv6, к этому событию надо быть готовым и понимать, как Windows работает с IPv6. Некоторые существующие продукты Microsoft и обновления уже умеют работать в сетях IPv6. Если же ваша компания регулярно взаимодействует с бизнес-партнерами через Интернет, вероятно, уже сейчас надо форсировать внедрение IPv6, так как многие компании уже перешли на новую технологию.
В этой статье мы рассмотрим, как устанавливать и настраивать IPv6 в сети Windows и как использовать IPv6 в коммуникационных процессах — независимо от того, поддерживается ли в конкретной инфраструктуре IPv6.
Установка IPv6 в Windows 2003 и XP Windows Vista и Windows Server 2008 изначально устанавливаются с поддержкой IPv6. Для Windows Server 2003 и Windows XP устанавливать и настраивать IPv6 надо вручную. Этим мы сейчас и займемся.
Чтобы установить протокол IPv6, выберите адаптер, на котором надо использовать IPv6, откройте окно свойств Properties и щелкните Install. Откроется окно Select Network Component Type. Здесь можно выбрать нужный компонент для установки — Client, Server и Protocol. Выберите Protocol и щелкните Add. В окне Select Network Protocol выберите Microsoft TCP/IP version 6 и нажмите OK. На экране 1 показаны диалоговые окна в системе Windows 2003. Нет необходимости подходить к каждому компьютеру, чтобы установить IPv6. Можно просто запустить команду Netsh Interface IPv6 Install в сценарии регистрации или в пакетном файле, который затем распространить с помощью того же Microsoft Systems Management Server (SMS) или Group Policy.
Итак, IPv6 установлен. Обратите внимание, что, в отличие от IPv4, настроить свойства протокола IPv6 через свойства сетевого подключения — окно Properties — невозможно. В случае с IPv4 вы можете задать интерфейс со статическим IP-адресом или настроить получение адреса от сервера DHCP. IPv6 — не тот случай. Адрес IPv6 — это индивидуальный адрес (unicast link-local address), который вычисляется на основе 48‑разрядного MAC-адреса сетевой карты. Windows 2003 и Windows XP автоматически используют это свойство IPv6 для присвоения интерфейсу адреса IPv6. Адрес начинается с FE80::/64 и может использоваться для связи с остальными хостами IPv6 в одном и том же сегменте, но не может применяться для связи между хостами через маршрутизатор. Маршрутизаторы IPv6 никогда не маршрутизируют трафик с индивидуальными адресами.
Небольшое предостережение: если используется Microsoft Virtual Server или какое-то другое средство виртуализации для создания виртуальных машин, нужно убедиться, что каждая виртуальная машина имеет уникальный MAC-адрес для каждой виртуальной сетевой карты. Если этого не обеспечить, каждый узел с IPv6 будет иметь один и тот же адрес IPv6, а это вызовет проблемы в работе.
Адрес узла легко указать в окне командной строки с помощью команды Ipconfig. На показаны результаты работы Ipconfig в системе Windows 2003. Здесь мы видим три unicast-адреса; адреса для адаптера Automatic Tunneling и Teredo следует проигнорировать. Почему, объясню позднее. Компонент %n (где n — некоторый номер) в конце каждого адреса IPv6 ссылается на определенную сетевую карту, для которой назначен адрес. Windows использует числа для идентификации как физических и виртуальных сетевых интерфейсов, так и адаптеров. Это число очень важно по ряду причин, и об этом я обязательно расскажу.
Если в командной строке выполнить команду Getmac, вы увидите MAC-адрес для каждого адаптера, который используется для построения индивидуального адреса IPv6. убедиться, что узел работает по IPv6, можно при помощи команды Ping. Используемый для этой цели адрес обратной связи (loopback address) — ::1. Затем нужно проверить связь по IPv6 с другими узлами (с помощью все той же команды Ping), если известны индивидуальные адреса IPv6 узлов. Но для успешного выполнения команды Ping надо сделать следующее: когда будете указывать адрес IPv6 узла, соединение с которым следует проверить, нужно добавить в конец узла номер адаптера. Так, на экране 2 индивидуальный адрес адаптера локальной сети заканчивается на %5, что означает адаптер под номером 5. Чтобы проверить связь с узлом, у которого индивидуальный адрес имеет следующий вид — fe80::203: ffff: feab:3045, наберите команду
ping fe80::203: feab:3045%5
Хотя установить и запустить IPv6 очень просто, для построения работоспособной сети IPv6 нужно выполнить еще некоторые действия. Адреса unicast link-local не работают в маршрутизируемых сетях и не могут использоваться в Интернете. Следует присвоить хостам маршрутизируемые адреса, сами маршрутизаторы должны быть настроены, а служба DNS способна разрешать имена FQDN в адреса IPv6.
Настройка Windows с маршрутизируемыми адресами IPv6
Настройка Windows с маршрутизируемыми адресами IPv6 может быть простой или сложной, все зависит от конкретных условий. Типичная настройка хоста заключается в получении адреса IPv4 от сервера DHCP или задании статического адреса. В Windows 2003 и XP настройка IPv6 через окно Properties сетевого соединения не предусмотрена. Vista и Windows 2008 дают возможность настроить IPv6 через окно Properties. Кроме того, существуют ограничения на использование DHCP при работе в сетях IPv6. У Microsoft нет сервера DHCP с поддержкой IPv6 на базе Windows 2003, поэтому придется установить сервер Server 2008, если вы хотите воспользоваться поддержкой DHCP в сетях IPv6.
Маршрутизируемый IPv6‑адрес может быть типа unicast site-local или globally aggregatable. Адрес типа site-local аналогичен адресам IPv4 из диапазона 10.0.0.0 … 10.255.255.255, 172.16.0.0…172.31.255.255 или 192.168.0.0…192.168.255.255; он начинается с FEC0::/48. Каждый локальный адрес сайта имеет 16‑разрядный идентификатор подсети, который указывается за 64‑разрядным идентификатором интерфейса. Сайт, таким образом, может насчитывать до 65 535 подсетей. Идентификатор интерфейса вычисляется по MAC-адресу сетевого адаптера, так же как и link-local адрес. Как и его эквиваленты в пространстве адресов IPv4, адреса site-local не используются для работы в Интернете; адреса site-local удобны для применения IPv6 внутри компании. Без сервера DHCP с поддержкой IPv6 настройка адреса типа site-local на узле должна выполняться или вручную при помощи команды Netsh, или, что встречается чаще, при помощи так называемой автонастройки адресов (address auto-configuration).
Auto-configuration — это процедура настройки, с помощью которой узлы могут определить наличие адресов обоих типов (site-local и globally aggregatable) для маршрутизатора IPv6 одного и того же сегмента сети, то есть узлы с адресами link-local в состоянии определить маршрутизаторы. Когда узел запускается или когда активируется сетевой интерфейс (например, когда ранее отключенный мобильный компьютер подключается к корпоративной сети), узел посылает на каждый сетевой интерфейс сообщения router-solicitation — по существу, запросы к маршрутизатору того же сегмента, чтобы все остальные узлы узнали о существовании данного узла. Правильно настроенные маршрутизаторы IPv6 будут отвечать пакетом router advertisement и адресом, состоящим из адрес-префикса site-local prefix в форме fec0:0000:0000: subnetid::/64. каждый интерфейс, на который приходит пакет router advertisement в ответ на сообщение router-solicitation, узел будет автоматически настраивать на адрес IPv6. Этот адрес состоит из префикса site-local (от маршрутизатора) и 48‑разрядного MAC-адреса интерфейса, с которого поступил запрос и на который пришел ответ.
На экране 3 показан вывод команды Ipconfig в Vista, и данные об адресе site-local, относящемся к адаптеру LAN, отлично видны. Ни Windows 2003, ни XP не различают адреса link-local и site-local. Вместо этого отображается просто IP-адрес. Windows будет настраивать IPv6‑маршрутизатор в качестве шлюза по умолчанию для трафика IPv6. Если предположить, что ваши маршрутизаторы хранят корректную таблицу маршрутов IPv6, в этом случае дальнейшая настройка узлов Windows не требуется.
Дабы убедиться, что узлы IPv6 могут взаимодействовать не только в одном сегменте, воспользуйтесь командой Ping и вместо адресов типа link-local укажите адреса типа site-local. В этом случае не нужно добавлять в конец адреса IPv6 узла назначения номер адаптера, так как каждый адрес должен быть уникальным во всех подсетях — мы ведь предполагаем, что маршрутизаторы настроены корректно на идентификаторы подсетей.
Связность и ISATAP
Если в сети нет маршрутизаторов, поддерживающих IPv6, возможность использовать IPv6 для организации взаимодействия узлов в разных сегментах все же существует. Вы можете воспользоваться протоколом Intra-Site Automatic Tunnel Addressing Protocol (ISATAP), он настраивается автоматически. Причем на узлах должны работать одновременно и IPv4, и IPv6. Если вернуться к экрану 2, можно заметить данные, относящиеся к адаптеру Automatic Tunneling. Это и есть IPv6‑адрес ISATAP. В Vista также можно найти настройки ISATAP. Для этого нужно набрать в командной строке Ipconfig/all и отыскать туннельный адаптер, описание которого начинается со слова isatap.
Каждая система Windows с включенной поддержкой IPv6 и IPv4 будет автоматически создавать адрес ISATAP. Адреса ISATAP задаются в форме ::5 EFE: w.x.y.z, где w.x.y.z — это IPv4‑адрес хоста. Адреса ISATAP могут иметь любой префикс, включая адрес типа link-local, адрес типа site-local или globally aggregatable, хотя префикс site-local или globally aggregatable означает, что возможна маршрутизация IPv6 и в ISATAP нет никакой необходимости. По этой причине адреса ISATAP в Windows используют префикс fe80::.
Один узел IPv6 может достигнуть другого узла по адресу ISATAP, даже если узлы расположены в разных сегментах и маршрутизаторы не поддерживают IPv6. ISATAP — прекрасная технология для переходного периода, позволяющая задействовать IPv6 в сетях IPv4, когда IPv6 не поддерживается ни на уровне маршрутизатора, ни на уровне шлюза.
DNS и IPv6
При задании на узлах адресов IPv6 типа site-local появляется возможность использовать IPv6 вместо IPv4 для связи узлов друг с другом. Серверы Windows 2003 R2, как и клиентские системы XP и Vista, будут регистрировать свои адреса site-local IPv6 в DNS, если такая возможность предусмотрена. Адреса IPv6 хранятся в записях AAAA. Адреса IPv4 хранятся в записях типа А. Контроллеры домена (DC), даже если они запущены на узлах IPv6, самостоятельно не регистрируются в DNS. Всегда можно использовать оснастку DNS в Microsoft Management Console (MMC), чтобы вручную прописать узлы IPv6 в DNS, в том числе и отличные от Windows хосты. Отметим, что, если зоны DNS, содержащие записи АААА, реплицируются на серверы, отличные от Windows 2003, существует вероятность, что возникнут проблемы, поскольку не все серверы DNS поддерживают записи АААА.
Для поиска адресов IPv6 по данному имени FQDN используйте команду Ping; просто укажите FQDN целевого хоста в командной строке. Ping возвращает адрес и затем использует его в запросе ICMP. Можно также воспользоваться командой Nslookup для определения записей АААА в DNS. Для этого нужно просто набрать set type=AAAA в Nslookup, прежде чем набирать имя сервера, на который посылается запрос. На экране 4 показано использование Nslookup для запроса IPv4‑адресов веб-сервера (по умолчанию), а затем следует запрос на определение адреса IPv6.
Хотя адрес IPv6 может быть доступен для хоста в DNS, нет гарантий, что работающие сетевые службы в конкретном случае будут поддерживать IPv6. По этой причине я не рекомендую создавать записи АААА для контроллеров домена на базе Windows 2003; большинство служб, запущенных на таком DC, еще не поддерживают IPv6.
Итак, теперь мы знаем, как установить IPv6 на контроллерах домена, серверах и клиентах под управлением Windows 2003 R2 и XP SP2. Также должно быть понятно, как протестировать связь между узлами IPv6, как использовать автонастройку для организации взаимодействия с маршрутизаторами IPv6 и автоматического назначения локальных адресов сайта IPv6.
В следующей статье будет рассказано о том, как настраивать глобальные адреса (globally aggregatable) для организации коммуникаций в Интернете с другими узлами IPv6, о способах упростить взаимодействие с узлами IPv4, а также о том, как запустить IPv6 поверх IPv4, если провайдер не поддерживает IPv6.
Джон Хоуи (jhowie@microsoft.com) — менеджер центра Microsoft Security Center of Excellence. Имеет сертификаты CISSP, CISM и CISA