Подключение по протоколу IPv6 в Windows 8


В связи с запуском IPv6 во всем мире мы решили, что было бы неплохо взглянуть, какая работа по поддержке IPv6 проделана в Windows 8 Release Preview. Эту статью написал Кристофер Палмер (Christopher Palmer) из группы управления основными сетевыми возможностями.
-- Стивен



IPv4 — это интернет-протокол, который в течение десятков лет использовался для подключения к Интернету. Однако IPv4 не предназначался для такой нагрузки и таких масштабов, и по мере развития Интернета начали возникать трудности (несмотря на невероятную прозорливость инженеров, благодаря которой Интернет еще может работать в столь крупных масштабах). Поставщики услуг Интернета считают, что расходы на обслуживание IPv4 постоянно растут. Для поддержки огромного прироста подключенных ПК и других устройств протокол необходимо тщательно пересмотреть.

В течение нескольких лет вся отрасль, в том числе корпорация Майкрософт, работала над совершенно новой версией протокола, IPv6, для различных устройств, служб и видов сетевой инфраструктуры. Версии Windows после Windows XP SP3 поддерживают IPv6, что позволяет реализовать переход на IPv6. Мы спроектировали Windows 8 так, чтобы вы (и ваши приложения) были надежно подключены к сети во время этого перехода.

Ограничения IPv4

Во-первых, обсудим некоторые основные понятия. Каждый раз, когда вы заходите на веб-сайт, например на www.bing.com, это понятное имя превращается в IP-адрес, такой как 23.3.105.97. IP-адрес, по сути, похож на номер телефона. У всех ваших контактов есть телефонные номера, а у всех устройств, подключенных к Интернету, есть один или несколько IP-адресов. "Телефонной книгой" для Интернета является система доменных имен (DNS). После получения имени DNS разрешает его в набор IP-адресов.

IPv4 предоставлял всего около 4 миллиардов IP-адресов. В 70-х годах это казалось огромным числом. Но к 2015 г. к Интернету будет подключено приблизительно 15 миллиардов устройств (ПК, телефонов, бытовых приборов, автомобилей и даже предметов мебели!). У IPv4 просто нет адресов, необходимых для подключения такого числа устройств.

По мере роста спроса на IPv4-адреса в последние годы интернет-сообщество нашло способ для совместного использования этих необходимых ресурсов. Самый распространенный способ совместного использования IPv4-адреса — преобразование сетевых адресов (NAT). Эта функция реализована в большинстве домашних маршрутизаторов, что позволяет компьютерам и другим устройствам в доме использовать один общедоступный IPv4-адрес.

Обычно поставщики услуг Интернета предоставляют один IP-адрес для каждого дома. Но данный процесс становится все сложнее. Из-за истощения запаса IP-адресов уникальных IPv4-адресов просто не хватает для всех домов. Вскоре целые города или страны должны будут осуществить крупномасштабное преобразование сетевых адресов. Поставщикам услуг Интернета необходимо разработать дорогую и сложную инфраструктуру для продолжения поддержки IPv4. Для конечных пользователей недостаток IP-адресов означает, что службы на основе данных о местоположении, такие как Bing, будут работать неправильно, а производительность одноранговых приложений ухудшится.

Будущее за IPv6

Корпорация Майкрософт вместе с другими компаниями работала над развертыванием IPv6, чтобы у конечных пользователей был качественный доступ в Интернет несмотря на ограничения, связанные с нехваткой IPv4-адресов.

Самое очевидное преимущество протокола IPv6 — он предоставляет 3×1038 IP-адресов, что позволит каждому использовать миллиарды адресов или предоставить каждой звезде во вселенной уникальный адрес. IPv6 позволит Интернету расти и развиваться. IPv6 также обеспечивает множество улучшений в плане безопасности и производительности, например встроенную поддержку IPsec. (Вы спросите, что произошло с IPv5? Bing поможет вам узнать, почему эту версию пропустили.)

Мгновенно обновить всю инфраструктуру Интернета до IPv6 не получится. Потребовалось много лет, чтобы добиться того, что реализовано сейчас. Но нам все равно предстоит еще много работы. В данный момент около 1 % устройств могут подключиться к Интернету, используя только IPv6.

Во время переходного периода большинство сетей можно будет разделить на три категории.

  • Сети, поддерживающие только IPv4. Вероятно, вы сейчас подключены к такой сети, так как большинство поставщиков услуг Интернета только начали реализацию поддержки IPv6. Многие устройства, подключающиеся к Интернету, также могут поддерживать только IPv4.
  • Сети IPv4 и IPv6 (двойной стек). Это означает, что поставщик услуг Интернета предоставил вашему ПК IPv4- и IPv6-адреса. Эта модель часто используется в кабельных и телефонных сетях, осуществляющих переход.
  • Сети, поддерживающие только IPv6. Это означает, что поставщик услуг Интернета предоставил вашему устройству только IPv6-адрес. Так как многие веб-сайты используют только IPv4, поставщики услуг Интернета должны применять устройство преобразования для поддержки доступа из вашей IPv6-сети к IPv4-ресурсам. Это устройство называется NAT64. Этот режим становится популярнее в мобильной среде, так как один тип протокола IP между мобильным устройством и инфраструктурой оператора проще развернуть и такая конфигурация дешевле двойного стека. Кроме того, на мобильных операторах недостаток IPv4-адресов сказывается наиболее тяжело. Вот простая иллюстрация этой конфигурации:

Маршрутизатор для IPv6-устройств подключается к IPv4-ресурсам через NAT64

Возможно, вам интересно, какой тип соединения используется вами сейчас. В конце этой записи представлен виджет, который может показать тип соединения.

Windows 8 спроектирована так, чтобы обеспечить связь между всеми типами сетевых конфигураций. В Windows 8 вы можете запускать DNS-поиск, используя командлеты Resolve-DNSname в Windows PowerShell. Откройте PowerShell и выполните приведенную ниже команду. Вы увидите, что будут возвращены записи и IPv6, и IPv4. Записи IPv6 будут только у веб-сайтов, поддерживающих IPv6.

Записи IPv6 и IPv4

Windows 8 в сетях, поддерживающих только IPv4

В сети с поддержкой только IPv4, для устройств настраиваются только IPv4-адреса. Эта модель продолжает работать в Windows 8 так же, как и прежде. Вдобавок, хосты Windows предоставляют также подключения IPv6 путем тунеллирования трафика в рамках разных технологий передачи. Примером является протокол Teredo, где пакеты IPv6 инкапсулированы в пакеты IPv4 UDP. Сегодня мы являемся свидетелями распространения серверов и служб, поддерживающих только IPv6, и теперь Windows 8 автоматически пытается установить IPv6-соединение, если сервер не предлагает IPv4-адрес. Учтите, что Teredo включается по умолчанию только на недоменных сетях, и если ваша сеть блокирует UDP, то протокол Teredo может быть недоступен.

Windows 8 в сетях с двойным стеком

В течение переходного периода сети с двойным стеком будут распространенной моделью развертывания. В сети с двойным стеком, для устройств будут настраиваться и IPv4-, и IPv6-адреса.

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

В то же время, одним из приоритетов для нас является содействие переходу на IPv6. Для этой цели в Windows предпочтительно использовать соединение через IPv6, а не IPv4 (если есть выбор).

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

В попытке разобраться с этими зачастую конфликтующими задачами, крупные всемирно известные веб-сайты, включая Bing.com, Microsoft.com и Xbox.com, организовали в прошлом году мероприятие под названием Всемирный день IPv6. В ходе однодневного теста IPv6-подключений к Интернету сайты-участники включили соединение и через IPv6-, и через IPv4-адреса.

В большинстве случаев все работало нормально. Все ресурсы, необходимые для обеспечения безошибочной работы Интернета — серверы, устройства конечных пользователей и сети доставки контента — справились с работой в новом стандарте без проблем.

Однако мы также заметили, что небольшая доля пользователей (0,01 % по всему миру) столкнулась с затруднениями из-за IPv6, скорее всего, по причинам, связанным с поставщиками услуг Интернета или из-за маршрутизаторов. Ничего удивительного: IPv6 — это сравнительно новая технология, и ошибки случаются. Но для тех пользователей, у которых возникли проблемы, ситуация могла обернуться серьезным осложнением для повседневной работы в Интернете.

Придание устойчивости алгоритмам соединения для сетей с двойным стеком

Чтобы устройство могло по-настоящему поддерживать сети с двойным стеком, не только приложения должны быть в состоянии отправлять трафик через IPv4 и IPv6, но и операционная система должна быть достаточно интеллектуальной, чтобы распознать, какой протокол подходит для данной задачи. Говоря конкретнее, поскольку у вашего устройства может быть несколько IPv4- и IPv6-адресов и поскольку интересующий вас пункт назначения также может иметь несколько IPv4- и IPv6-адресов, стек должен быть достаточно интеллектуальным, чтобы определить, какие именно адреса источника и пункта назначения следует использовать для соединения. Эта функция называется сортировка адресов, и это один из тех моментов, которые мы улучшили в Windows 8. Суть сортировки адресов состоит в том, чтобы определять, какая пара адресов с наибольшей вероятностью обеспечит наилучшее соединение, и тогда приложению не придется ждать.

Пытаясь подключиться к веб-сайту с двойным стеком, Windows сортирует IP-адреса, свои и веб-сайта, чтобы определить, какую пару использовать для создания соединения. (Для сторонников стандартов: сортировка адресов регламентирована стандартом RFC 3484.)

На схеме ниже показано, как Windows использует сортировку адресов.

1 — приложение запрашивает подключение к www.xbox.com. 2 — Windows отправляет DNS-запросы для разрешения www.xbox.com в IP-адреса. 3 — Windows сортирует ответы DNS-сервера с помощью алгоритма, определенного в документе RFC 3484. 4 — Windows подключается к веб-серверу, используя первый адрес в списке.

    

Обычно сортировка адресов зависит от правильной настройки Windows маршрутизатором. Windows анализирует сведения о маршрутизации, предоставленные маршрутизатором, и использует эту информацию вместе с сортировкой адресов для быстрого подключения к именованным ресурсам. Стандарт RFC 3484 указывает, что должен быть выбран протокол IPv6, если он настроен вашим маршрутизатором.

Всемирный день IPv6 показал, что некоторые клиенты были настроены с использованием данных маршрутизации IPv6, но у них не было IPv6-подключения к Интернету. По-видимому, это связано с неправильными настройками у некоторых поставщиков услуг Интернета или с дефектами маршрутизаторов. Windows пытается подключиться к веб-сайтам с помощью IPv6, ожидая, что протокол будет работать, но это не так. В итоге Windows обнаруживает, что попытка соединения завершилась с ошибкой и возвращается к IPv4-подключению. Однако для пользователей подключение к веб-сайтам с двойным стеком может задерживаться на 10-15 секунд. Очевидно, что это вызывает проблему для браузеров, но с ней сталкиваются и все приложения, подключенные к сети.

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

Windows 8 проверяет возможность соединения по протоколу IPv6 при подключении к новой сети, которая сообщает о поддержке IPv6. При этом IPv6 будет использоваться, только если IPv6-соединение действительно работает. Этот подход — наша реализация стандарта RFC 3484. Вместо сортировки адресов в результате применения политики, мы используем фактическое состояние сети в качестве входных данных алгоритма. В неправильно настроенной сети этот подход улучшает работу не только браузеров, но и приложений, подключающихся к ресурсам с двойным стеком с помощью стандартных API-интерфейсов Windows.

Windows 8 выполняет тест сетевого соединения при первом подключении к новой сети. Эта информация кэшируется, а тест повторяется каждые 30 дней. Фактический тест соединения — это простой HTTP-запрос GET, отправляемый серверу Майкрософт, поддерживающему только IPv6. (Для сторонников стандартов: это реализовано между правилами 5 и 6 сортировки конечных адресов в нашей реализации RFC 3484.) Windows выполняет аналогичный тест сетевого соединения для IPv4-подключения. Если работают и IPv4, и IPv6, выбирается протокол IPv6.

Чтобы Windows 8 не вызывала проблем в корпоративных сетях, эта функция использует два механизма безопасности.

  • Если предприятие указало конкретную информацию о маршрутизации к определенному конечному объекту, Windows 8 выберет эти настройки независимо от типа подключения, определенного Windows. В корпоративных средах Windows предполагает, что сетевые администраторы, специально настроившие такие маршруты, считали это хорошей идеей.
  • Это изменение не реализовано в сетях с веб-прокси. В них прокси-сервер обеспечивает подключение к Интернету, поэтому сквозное тестирование IPv6-соединения не несет пользы. Вместо этого Windows 8 просто открывает соединения к прокси-серверу самым эффективным способом.

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

Готовность к будущему для сетей, поддерживающих только IPv6

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

В Майкрософт мы проделали много работы для реализации роста IPv6-развертываний, как в корпоративных настройках, так и в параметрах Интернета. Одна из наших основных целей — убедиться, что наши серверные продукты поддерживают IPv6. Поддержка IPv6 — часть нашего общего критерия разработки (CEC). Этот критерий отображает обязательства нашей компании по реализации поддержки IPv6 в конфигурации с двойным стеком или только с поддержкой IPv6 для наших бизнес-продуктов, таких как Exchange Server и SharePoint. Большинство продуктов Майкрософт после 2007 г. поддерживают IPv6, а сведения о поддержке IPv6 в других продуктах Майкрософт можно найти на портале Technet. Благодаря этому разработчики и поставщики решений могут поддерживать IPv6 в собственных продуктах.

Эмблема мирового запуска IPv6

Корпорация Майкрософт также работает над поддержкой IPv6 для наших собственных служб. Ранее в этом году в интернет-сообществе было объявлено о мировом запуске IPv6, важном этапе в процессе перехода на протокол IPv6. В июне Bing и другие веб-сайты начнут обслуживать трафик по протоколу IPv6 на постоянной основе. Поставщики оборудования работают над поддержкой IPv6 в домашних маршрутизаторах, а многие поставщики услуг Интернета вскоре начнут крупномасштабные развертывания IPv6. Сети CDN (сети доставки контента) также начали реализацию поддержки IPv6.

После выхода Windows 8 некоторые из наших служб инфраструктуры начнут поддерживать IPv6.

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

Поэтому Центр обновления Windows теперь поддерживает и IPv6, и IPv4. Центр обновления Windows использует сети CDN для распространения обновлений во всем мире, и мы сотрудничаем с ними для обеспечения поддержки IPv6. Windows 8 будет использовать протокол IPv6, если он доступен, для загрузки обновлений Windows, чтобы у пользователей были наилучшие возможности подключения при загрузке обновлений.

Мы работаем с сетями CDN для расширения поддержки IPv6 за пределами Windows 8. После завершения этой работы даже Windows 7 и Windows Vista автоматически будут использовать IPv6, где он доступен, для подключения к Центру обновления Windows.

Ваш проводник в будущее

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

Корпорация Майкрософт является вашим проводником в этом переходе, гарантируя, что Windows 8 обеспечивает наиболее надежные возможности подключения к Интернету и предоставляет продукты и службы с поддержкой IPv6.

- Крис

Comments (6)

  1. Игорь says:

    Столько текста… А какие подводные камни, собственно, кроме размеров адреса со всеми вытекающими?

  2. CSRedRat says:

    Здесь об этом вряд ли будет подробнее рассказано, т.к. информации на эту тему океан. Вам надо отправляться читать в интернеты 🙂

  3. CSRedRat says:

    И всё-таки где-нибудь хотелось услышать, по какой причине Microsoft не внедряет поддержку современного сетевого протокола SCTP? Это в основном и замедляет его распространение. Его области применения очень широки, он совершеннее и функциональнее TCP, отсутствуют недостатки TCP.

    Кому интересно почитать про протокол: ru.wikipedia.org/…/SCTP

  4. CSRedRat says:

    И всё-таки где-нибудь хотелось услышать, по какой причине Microsoft не внедряет поддержку современного сетевого протокола SCTP? Это в основном и замедляет его распространение. Его области применения очень широки, он совершеннее и функциональнее TCP, отсутствуют недостатки TCP.

    Кому интересно почитать про протокол: ru.wikipedia.org/…/SCTP

  5. Интересно, почему при установке IPv6, в добавок к IPv4, происходит резкое снижение производительности компьютера?

  6. Илья says:

    IPv6-то не могут внедрить, какой уж там SCTP…

    SCTP наверное не будут уже внедрять на транспортном левеле, гугл уже внёс все преимущества SCTP на один левел выше: SPDY

Skip to main content