background img

The New Stuff

Windows Server 2008: внедрение IPv6 в локальной сети


Адресация IPv6

Как известно, в IPv4 стандартизированы диапазоны «серых» адресов для локальных сетей (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16), аналогично и в IPv6 для локальных адресов принят диапазон fc00:/7.
Рассмотрим следующую схему адресации IPv6, которая принята для локальных сетей на платформе Windows Server:
  • префикс сети (адрес сети в терминологии IPv4):
    fc00:a:b:c::/64, где a, b, c — выбирайте на ваше усмотрение из диапазона 0000-ffff, например fc00:10:18:1::/64
  • адрес хоста в сети
    fc00:a:b:c:v:x:y:z, где v, x, y ,z определяют адрес хоста, например
    • fc00:10:18:1:feab:01cc:65de:180a — такой адрес может назначить DHCP-сервер
    • fc00:10:18:1::10 — настроенный вручную более читабельный адрес, например для сервера, который нужно будет указывать руками (:: означает пропуск группы нулей, может использоваться однократно в адресе).
На картинке показан пример настроек сервера, на котором далее будет настроена служба DHCPv6.
Диалог настроек IPv6

Как работает IPv6 совместно с IPv4

IPv6 замечательно работает совместно с уже развернутой инфраструктурой IPv4 следующим образом:
  • На Windows Server 2008 / 2008 R2 разворачиваются службы DNS и DHCP, поддерживающие IPv6.
  • Клиенты, поддерживающие IPv6 (Windows Vista, Windows 7), получают настройки от DHCP и регистрируют свои имена в DNS.
  • Далее при обращении к узлам по DNS-имени в первую очередь идет попытка получить их адреса IPv6 (тип записи AAAA), в случае их отсутствия — IPv4 (тип записи A).
  • Клиенты, не поддерживающие IPv6 (Windows Server 2003, Windows XP) продолжают пользоваться старым протоколом IPv4 как раньше.
При выборе префикса создаваемой сети IPv6 рекомендую схитрить: если в этой же физической сети располагается IPv4 сеть 10.18.1.0/24, то можно выбрать префиксfc00:10:18:1::/64 для сети IPv6.

Установка и настройка DNS

Так как адреса IPv6 еще менее человечны, чем в IPv4, то их применение без DNS можно оправдать только с точки зрения садомазохизма. Поэтому в первую очередь необходимо развернуть DNS сервер, поддерживающий IPv6 адреса. Такая поддержка есть в службе DNS начиная с Windows Server 2008.
Все, что нужно сделать — это сконфигурировать статические IPv6 адреса (напримерfc00:10:18:1::1) на DNS серверах, включить динамическое обновление записей клиентами (в окружении Active Directory — безопасное) и передать эти настройки клиентам локальной сети через DHCP, о чем рассказывается далее.

Установка и настройка DHCPv6

Протокол IPv6 менее приспособлен для ручных настроек, в отличии от IPv4, поэтому предполагает автоматическое конфигурирование параметров узлов сети через DHCP версии 6. Поддержка DHCPv6 появилась начиная с Windows Server 2008 и является частью стандартной роли DHCP сервера.
Перед установкой DHCP-сервера необходимо сконфигурировать статические адреса IPv6 для сетевых адаптеров, с которых сервер DHCPv6 будет обслуживать своих клиентов. Например, fc00:10:18:1::10.
Теперь можно перейти к установке стандартной роли DHCP. Первая опция, относящаяся к IPv6 называется DHCPv6 Stateless Mode. Её нужно включить, тогда на следующей странице у вас запросят адреса IPv6 DNS серверов и DNS-имя родительского домена.
Если DHCPv6 сервер был установлен с отключенным DHCPv6 Stateless Mode, то включить его можно выполнив команду:
netsh int ipv6 set interface InterfaceName other=en
и установив опции сервера DHCPv6:
  • 00023 DNS Recursive Name Server IPv6 Address ;mdash; адреса IPv6 DNS серверов
  • 00024 Domain Search List ;mdash; DNS-имя родительского домена
Теперь нужно создать область, в которой DHCPv6 серверу предстоит выдавать адреса своим клиентам. Особенностью DHCPv6 в Windows Server является то, что можно создать область только для адресов с длиной префикса сети равной 64, например fc00:10:18:1::/64.
На следующей странице предлагается указать область исключений, из которой DHCPv6 сервер не будет выдавать адреса. Так как адреса сервер выдает не по порядку, а псевдослучайным образом (по хитрому алгоритму, основанному на MAC адресе сетевого интерфейса), то область исключений должка включать IPv6 адреса серверов, которые был сконфигурированы вручную (DNS и DHCPv6 сервера). Пример области исключений: 0:0:0:1-0:0:0:99.
Казалось бы, осталось только активировать диапазон и авторизовать DHCPv6 сервер в Active Directory. Вскоре сервер начнет выдавать клиентам IPv6 адреса и настройки DNS. Но здесь начинается самое интересное: хоть клиенты эти настойки исправно получают, общаться между собой они не могут. Причем сие печальное поведение на момент написания этой статьи в официальной документации явно не отражено.
Чтобы исправить ситуацию, вызываем на клиенте
route print
и видим, что клиент не имеет маршрута в сеть fc00:10:18:1::/64.
Вызываем на сервере
netsh int ipv6 show route
и среди прочего видим:
PublishTypeMetPrefixIdxGateway/Interface Name
NoManual256fc00:10:18:1::/6410Local
Из этого следует, что маршрут в сеть fc00:10:18:1::/64 на сервере DHCPv6 существует, но не опубликован. Для того, чтобы этот маршрут выдавался клиентам, необходимо включить на сервере объявление маршрутов командой
netsh int ipv6 set interface Local adv=en man=en other=en
и опубликовать маршрут командой
netsh int ipv6 add route fc00:10:18:1::/64 Local publish=yes
где fc00:10:18:1::/64 — ваш префикс IPv6, Local — имя или индекс сетевого интерфейса DHCPv6 сервера.

Маршрутизация IPv6

Встроенная роль Routing and Remote Access начиная с Windows Server 2008 поддерживает маршрутизацию IPv6, однако для того, чтобы она полноценно заработала, необходимо выполнить следующие, не очевидные вещи.
1. В свойствах сервера Routing and Remote Access на вкладке IPv6 включить Enable IPv6 Forwarding и Enable Default Route Advertisement.
2. На сервере-маршрутизаторе IPv6 должно быть как минимум две сетевых карты.
Local (fc00:10:18:1::10/64 в моих примерах), смотрящая в локальную сеть, для которой мы на предыдущих шагах настраивали раздачу IPv6 адресов, префикса сети и других параметров по DHCP.
External (например fc00:10:18:2::10/64), которая по идее должна смотреть в другую сеть (у нас маршрутизатор все-таки), но может смотреть и в ту же, что и Local.
3. Для того, чтобы IPv6 клиенты в сети могли использовать наш маршрутизатор, он должен объявить себя как маршрут по умолчанию (Default Route Advertisement, как шлюз по умолчанию в терминах IPv4).
Для этого в Windows Server 2008 нужно выполнить команду
netsh int ipv6 add route ::/0 External fc00:10:18:2::180 publish=yes
где fc00:10:18:2::180 — адрес следующего маршрутизатора по умолчанию (next-hop), находящегося в сети External. Не важно, существует он реально или нет. Для объявления маршрута по умолчанию в сеть Local на текущем маршрутизаторе next-hop должен быть указан.
Для Windows Server 2008 R2 всё проще, достаточно выполнить команду
netsh int ipv6 set Local advertisedefaultroute=enabled
для объявления маршрутизатора в сети Local как Default Route.

Адресация IPv6

Как известно, в IPv4 стандартизированы диапазоны «серых» адресов для локальных сетей (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16), аналогично и в IPv6 для локальных адресов принят диапазон fc00:/7.
Рассмотрим следующую схему адресации IPv6, которая принята для локальных сетей на платформе Windows Server:
  • префикс сети (адрес сети в терминологии IPv4):
    fc00:a:b:c::/64, где a, b, c — выбирайте на ваше усмотрение из диапазона 0000-ffff, например fc00:10:18:1::/64
  • адрес хоста в сети
    fc00:a:b:c:v:x:y:z, где v, x, y ,z определяют адрес хоста, например
    • fc00:10:18:1:feab:01cc:65de:180a — такой адрес может назначить DHCP-сервер
    • fc00:10:18:1::10 — настроенный вручную более читабельный адрес, например для сервера, который нужно будет указывать руками (:: означает пропуск группы нулей, может использоваться однократно в адресе).
На картинке показан пример настроек сервера, на котором далее будет настроена служба DHCPv6.
Диалог настроек IPv6

Как работает IPv6 совместно с IPv4

IPv6 замечательно работает совместно с уже развернутой инфраструктурой IPv4 следующим образом:
  • На Windows Server 2008 / 2008 R2 разворачиваются службы DNS и DHCP, поддерживающие IPv6.
  • Клиенты, поддерживающие IPv6 (Windows Vista, Windows 7), получают настройки от DHCP и регистрируют свои имена в DNS.
  • Далее при обращении к узлам по DNS-имени в первую очередь идет попытка получить их адреса IPv6 (тип записи AAAA), в случае их отсутствия — IPv4 (тип записи A).
  • Клиенты, не поддерживающие IPv6 (Windows Server 2003, Windows XP) продолжают пользоваться старым протоколом IPv4 как раньше.
При выборе префикса создаваемой сети IPv6 рекомендую схитрить: если в этой же физической сети располагается IPv4 сеть 10.18.1.0/24, то можно выбрать префиксfc00:10:18:1::/64 для сети IPv6.

Установка и настройка DNS

Так как адреса IPv6 еще менее человечны, чем в IPv4, то их применение без DNS можно оправдать только с точки зрения садомазохизма. Поэтому в первую очередь необходимо развернуть DNS сервер, поддерживающий IPv6 адреса. Такая поддержка есть в службе DNS начиная с Windows Server 2008.
Все, что нужно сделать — это сконфигурировать статические IPv6 адреса (напримерfc00:10:18:1::1) на DNS серверах, включить динамическое обновление записей клиентами (в окружении Active Directory — безопасное) и передать эти настройки клиентам локальной сети через DHCP, о чем рассказывается далее.

Установка и настройка DHCPv6

Протокол IPv6 менее приспособлен для ручных настроек, в отличии от IPv4, поэтому предполагает автоматическое конфигурирование параметров узлов сети через DHCP версии 6. Поддержка DHCPv6 появилась начиная с Windows Server 2008 и является частью стандартной роли DHCP сервера.
Перед установкой DHCP-сервера необходимо сконфигурировать статические адреса IPv6 для сетевых адаптеров, с которых сервер DHCPv6 будет обслуживать своих клиентов. Например, fc00:10:18:1::10.
Теперь можно перейти к установке стандартной роли DHCP. Первая опция, относящаяся к IPv6 называется DHCPv6 Stateless Mode. Её нужно включить, тогда на следующей странице у вас запросят адреса IPv6 DNS серверов и DNS-имя родительского домена.
Если DHCPv6 сервер был установлен с отключенным DHCPv6 Stateless Mode, то включить его можно выполнив команду:
netsh int ipv6 set interface InterfaceName other=en
и установив опции сервера DHCPv6:
  • 00023 DNS Recursive Name Server IPv6 Address ;mdash; адреса IPv6 DNS серверов
  • 00024 Domain Search List ;mdash; DNS-имя родительского домена
Теперь нужно создать область, в которой DHCPv6 серверу предстоит выдавать адреса своим клиентам. Особенностью DHCPv6 в Windows Server является то, что можно создать область только для адресов с длиной префикса сети равной 64, например fc00:10:18:1::/64.
На следующей странице предлагается указать область исключений, из которой DHCPv6 сервер не будет выдавать адреса. Так как адреса сервер выдает не по порядку, а псевдослучайным образом (по хитрому алгоритму, основанному на MAC адресе сетевого интерфейса), то область исключений должка включать IPv6 адреса серверов, которые был сконфигурированы вручную (DNS и DHCPv6 сервера). Пример области исключений: 0:0:0:1-0:0:0:99.
Казалось бы, осталось только активировать диапазон и авторизовать DHCPv6 сервер в Active Directory. Вскоре сервер начнет выдавать клиентам IPv6 адреса и настройки DNS. Но здесь начинается самое интересное: хоть клиенты эти настойки исправно получают, общаться между собой они не могут. Причем сие печальное поведение на момент написания этой статьи в официальной документации явно не отражено.
Чтобы исправить ситуацию, вызываем на клиенте
route print
и видим, что клиент не имеет маршрута в сеть fc00:10:18:1::/64.
Вызываем на сервере
netsh int ipv6 show route
и среди прочего видим:
PublishTypeMetPrefixIdxGateway/Interface Name
NoManual256fc00:10:18:1::/6410Local
Из этого следует, что маршрут в сеть fc00:10:18:1::/64 на сервере DHCPv6 существует, но не опубликован. Для того, чтобы этот маршрут выдавался клиентам, необходимо включить на сервере объявление маршрутов командой
netsh int ipv6 set interface Local adv=en man=en other=en
и опубликовать маршрут командой
netsh int ipv6 add route fc00:10:18:1::/64 Local publish=yes
где fc00:10:18:1::/64 — ваш префикс IPv6, Local — имя или индекс сетевого интерфейса DHCPv6 сервера.

Маршрутизация IPv6

Встроенная роль Routing and Remote Access начиная с Windows Server 2008 поддерживает маршрутизацию IPv6, однако для того, чтобы она полноценно заработала, необходимо выполнить следующие, не очевидные вещи.
1. В свойствах сервера Routing and Remote Access на вкладке IPv6 включить Enable IPv6 Forwarding и Enable Default Route Advertisement.
2. На сервере-маршрутизаторе IPv6 должно быть как минимум две сетевых карты.
Local (fc00:10:18:1::10/64 в моих примерах), смотрящая в локальную сеть, для которой мы на предыдущих шагах настраивали раздачу IPv6 адресов, префикса сети и других параметров по DHCP.
External (например fc00:10:18:2::10/64), которая по идее должна смотреть в другую сеть (у нас маршрутизатор все-таки), но может смотреть и в ту же, что и Local.
3. Для того, чтобы IPv6 клиенты в сети могли использовать наш маршрутизатор, он должен объявить себя как маршрут по умолчанию (Default Route Advertisement, как шлюз по умолчанию в терминах IPv4).
Для этого в Windows Server 2008 нужно выполнить команду
netsh int ipv6 add route ::/0 External fc00:10:18:2::180 publish=yes
где fc00:10:18:2::180 — адрес следующего маршрутизатора по умолчанию (next-hop), находящегося в сети External. Не важно, существует он реально или нет. Для объявления маршрута по умолчанию в сеть Local на текущем маршрутизаторе next-hop должен быть указан.
Для Windows Server 2008 R2 всё проще, достаточно выполнить команду
netsh int ipv6 set Local advertisedefaultroute=enabled
для объявления маршрутизатора в сети Local как Default Route.

0 коммент.:

Отправить комментарий

Popular Posts