четверг, 1 апреля 2010 г.

Windows Server Core - настройка дополнительных параметров сетевых интерфейсов.

Ни для кого не секрет, что с выходом в свет Windows Server 2008, появился режим работы сервера Windows Server Core, при котором устанавливаются только основные компоненты операционной системы. Данный режим обеспечивает повышенное быстродействие и снижает вероятность взлома сервера благодаря отсутствию большинства компонентов, призванных попросту облегчить жизнь администратора и предоставляющих лишь графическую консоль управления.
Раз теперь нет графических интерфейсов, то соответственно управлять сервером Windows Server Core приходится из командной строки.

Это конечно несколько усложняет дело, но зато цель оправдывает средства, да и не все так плохо на самом деле. Для тех кто не может работать без «окон», Microsoft предлагает комплект утилит Remote Server Administration Tools (RSAT), с помощью которого можно удаленно подключиться к серверу со своей рабочей станции и изменять настройки через привычный графический интерфейс. Но!, к сожалению, RSAT может далеко не все, и в этой статье пойдет речь про изменение параметров сетевого адаптера через интерфейс командной строки (RSAT дает нам возможность подключаться к Диспетчеру устройств (Device Manager) только в режиме read-only).

Я не буду рассказывать про то, как пользоваться командой netsh для настройки параметров TCP/IP, а постараюсь копнуть чуть глубже и покажу:
1. как изменять дополнительные настройки сетевого адаптера,
2. как включать/отключать компоненты сетевого взаимодействия конкретного подключения,
3. как создавать VLAN на сетевом адаптере на примере адаптера фирмы Intel.

1. Начнем с вкладки Дополнительных настроек сетевой карты:

На рисунке изображено о каких именно параметрах идет речь.
Так вот, все эти настройки хранятся в системном реестре, в ветке HKLM\System\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002bE10318} (реестр в Server Core открывается без труда командой regedit).
В этой ветке вы найдете разделы, соответствующие всем сетевым подключениям данного сервера, остается в них только найти раздел отвечающий за параметры нужного сетевого адаптера. Найти его можно либо простым перебором (их там не так уж и много), либо осуществив поиск по значению SettingID. В свою очередь, SettingID нам покажет команда

WMIC NICCONFIG GET Description,SettingID
Сортировку выдачи можно осуществить при помощи ключа IPENABLED=TRUE, например вот так:
WMIC NICCONFIG WHERE IPENABLED=TRUE GET Description,SettingID


Таким образом, перейдя в нужную ветку мы можем ещё раз убедится, что мы попали туда, куда нужно по полю DriverDesc, в котором отображается имя нашего сетевого адаптера. Далее, в корне этой ветки, под звездочками (*) мы можем видеть дополнительные параметры выбранного сетевого интерфейса.

Для пример возмем параметр *JumboPacket и обратим внимание, что его значение равняется 1514. Чтобы выяснить что это означает нужно пойти во вложенную ветку NDI -> savedParams -> *JumboPacket,

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

2. Компоненты сетевого подключения:

Уверен, что через графический интерфейс ни у кого не возникало проблем с отключением/включением таких компонентов, как например TCP/IPv6, Client for Microsoft Networks или File and Printer Sharing, но вот когда вы оказываетесь один на один с командной строкой, это может вызвать массу трудностей. Естественно эти настройки так же хранятся в системном реестре, но проблема в том, что они не лежат в одной ветке и править их там достаточно не просто, тем более, что для вступления изменений в силу необходимо будет перезагрузить систему, что не всегда удобно. Решение данной проблемы кроется на сайте MSDN, там есть очень полезная утилитка NVSPBind, которая позволяет из командной строки просматривать состояние компонентов сетевого взаимодействия (вкл/выкл) и соответственно включать, либо отключать их. Так же данная утилита может менять порядок просмотра системой сетевых подключений.

Скачать NVSPBind можно тут.

Пользоваться ей чрезвычайно просто, для просмотра синтаксиса нужно выполнить команду nvspbind /? в выдаче которой вы увидите следующий текст помощи:

Usage: nvspbind option NIC protocol

Options:
/n display NIC information only
/u unbind switch protocol from specified nic(s)
/b bind switch protocol to specified nic(s)
/d disable binding of specified protocol from specified nic(s)
/e enable binding of specified protocol to specified nic(s)
/r repair bindings on specified nic(s)
/o show NIC order for specified protocol
/+ move specified NIC up in binding order for specified protocol
/- move specified NIC down in binding order for specified protocol
/++ move specified NIC up to top of binding order for specified protocol
/-- move specified NIC down to bottom of binding order for specified protocol

Далее, запустив её без параметров мы увидим список всех сетевых подключений с информацией о состоянии сетевых компонентов (Enable/Disable), так же среди прочих параметров этих подключений будут фигурировать SettingID,

SettingID и нужно будет скопировать и вставить в качестве параметра команды, например команда:

nvspbind /d {BE2A2570-7C26-4CA6-9BBD-2ADB91F7148F} ms_tcpip6
поможет нам отключить TCP/IPv6 на данном сетевом подключении:

Чтобы обратно включить TCP/IPv6 нужно ключ /d сменить на /e.

3. Далее поговорим про то, как создавать VLAN на сетевом адаптере на примере адаптера фирмы Intel.

Для настройки на сетевой карте VLAN`ов или объединение нескольких карт в группу необходимо в первую очередь обновить её драйвер до последней версии и во время обновление указать, что необходимо вместе с драйвером установить ещё и комплект ПО PROSet, а так же ANS (advanced network services).

Драйвер можно скачать, как ни странно, с сайта разработчика.

После установки перезагрузка не требуется. Также обратите внимание, что PROSet не имеет отдельного пункта в меню Пуск, он интегрируется в окно настройки параметров сетевой карты.
Для внесения необходимых настроек мы воспользуемся утилитой командной строки - PROSetCL, расположенной по адресу C:\Program Files\Intel\DMIX\CL\, здесь так же можно найти текстовый файл помощи к этой утилите.
Таким образом, для создания VLAN на сетевом интерфейсе нужно воспользоваться ключом Adapter_CreateVLAN <номер адаптера> <значение VLANID> <Имя подключения>. Например после выполнения команды:

PROSetCL Adapter_CreateVLAN 1 123 Test123
мы получим следующую картину в сетевых подключениях:

И при этом, на сетевом подключении, на котором был создан, VLAN останется активным только компонент Intel Advanced Network Services Protocol, если вы ещё не догадались, то теперь сетевое подключение Fisical LAN1 использовать для выхода в сеть уже не получится, можно будет использовать только подключение, "слушающее" трафик с указанным вами VLANID:

На одном интерфейсе может быть создано несколько сетевых подключений с разными VLANID.

Уверен, что с сетевыми картами других производителей в этом плане все примерно так же не сложно.

Заключение:
Вот таким вот образом можно в Windows Server Core, либо в бесплатном Microsoft Hyper-V Server изменять настройки сетевого адаптера.

1 комментарий:

Konstantin Aleks комментирует...

Везде примеры с интел картами, у меня BROADCOM, и при назначении созданного виртуального адаптера виртуальному свичу в hyper-v, он выдаёт: invalid MAC address.

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