Про DirectAccess и IPv6

Как-то решил развернуть DirectAccess на Windows Server 2012 + Windows 8 -- на презентациях говорили, что многое изменилось со времен 2008 R2, что жить стало лучше, жить стало веселей ;)

Однако пришлось немного повозиться -- информация есть, на английском, но написана так, что ничего не понять. Поэтому ниже то, что помогло бы мне сэкономить прилично времени при внедрении -- может быть поможет кому-то еще.

Во-первых -- необходимо ознакомиться с prerequest-ми, а именно для работы DirectAccess необходима Windows 8 Enterprise Edition, иначе фокус не получится -- например не запустится служба Network Connectivity Assistant -- печалька печалька…

Во-вторых -- для работы DirectAccess необходим, барабанная дробь, IPv6. Еще одна печалька. Наверняка он у многих есть -- например у Microsoft (где-то читал, что у себя в локалке они его начали внедрять в 2000), у Google и прочих монстров.

Так вот немного информации про IPv6. IPv6-адрес состоит из 8 групп по 16 бит разделенных двоеточием. Это 4 шестнадцатеричных числа в каждой из групп -- например www.google.com это

2a00:1450:4010:c04::69

В двоичной форме это выглядит так:

0010 1010 0000 0000 : 0001 0100 0101 0000 : bla bla bla…

Двойным знаком двоеточия обозначается группа нулей следующих подряд, например:

2a00:1450:4010:0c04:0000:0000:0000:0069

можно записать как

2a00:1450:4010:c04::69

IPv6-адреса бывают разные, а именно:

Unicast -- адрес конкретного интерфейса, делятся на:

-- Link-local -- FE80::/64 -- аналог APIPA-адресов;

-- Unique local addresses (ULAs) -- FD00::/8 -- аналог приватных сетей 10.0.0.0/8, 172.16.0.0/12 и 192.168.0.0/16 -- не маршрутизируются за пределами сетей организаций;

-- Global unicast address -- 2000::/3 -- глобальные адреса (читай интернет-адреса). Т.е. интернет-адреса всегда начинаются с 2 или 3 -- опять таки пример с гуглом:

2a00:1450:4010:c04::69


потому что первые три бита всегда равны 001.

Anycast -- адреса групп интерфейсов -- используются маршрутизаторами;

Multicast -- FF00::/8 -- для групп многоадресной рассылки.

Некоторые спец. адреса:

::1/128 -- loopback интерфейс;

::200:5efe:/32 -- ISATAP для публичных адресов;

::5efe:/32 -- ISATAP для приватных адресов;

2001:db8::/32 -- для примеров в документации;

2001::/32 – Teredo;

2002::/16 -- 6to4.

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

ISATAP (Intra-Site Automatic Tunnel Addressing Protocol) -- для взаимодействия узлов внутри IPv4 интрасети;

6to4 -- для взаимодействия узлов в IPv4 интернете;

Teredo -- для взаимодействия узлов в IPv4 интернете находящимися за различными NAT-ами.

Таким образом, для локальной сети можно использовать ISATAP. Для автоматической настройки хостов в сети требуется:

-- в DNS-е создать запись типа A – ISATAP;

-- исключить ISATAP из Global Query Block List-а DNS-серверов;

-- получить и зарегистрировать ULAs (как это делают правильные пацаны);

-- настроить ISATAP router для объявления полученных ULAs.

Получит и зарегистрировать ULAs можно на SixXS -- псевдослучайно генерируются адреса с префиксом /48 и заносятся в общедоступную базу, так чтобы исключить пересечение адресов в разных организациях. Судя по листу пользуются IPv6 адресацией в организациях крайне редко -- тем более в бывшем Союзе.

Объявить ULA можно так:

netsh interface ipv6 set interface isatap.corp.contoso.com advertise=enable

netsh interface ipv6 add route fdcd:abcd:abcd:abcd::/64

interface=isatap.corp.contoso.com publish=yes

net stop iphlpsvc && net start iphlpsvc


Более подробно о том как настроить ISATP роутер, опубликовать сеть и настроить форвардинг можно посмотреть здесь.
После всего этого DirectAccess начинает работать, но есть третий нюанс;)

В-третьих -- ISATAP не рекомендуется самим Microsoft-ом для промышленного применения -- это переходная технология на время миграции в нативный IPv6. Более того наблюдаются заметные просадки в скорости доступа к сетевым ресурсам. Плюс могут быть проблемы в работе AD и DFS (со слов представителей Microsoft).

Также, в случае нормального разграничения на сетевом уровне (VLAN-ы плюс ACL-ы) туннелирование не есть оптимальные вариант, т.к. необходимо будет всюду открывать protocol 41, со всеми вытекающими последствиями.

No comments:

Post a Comment