Как настроить зеркалирование портов в Hyper-V 2012R2
В Windows Server 2012 Hyper-V появилась новая функция - зеркалирование портов (port mirroring), позволяющая мониторить трафик виртуальных машин без необходимости захватывать трафик непосредственно внутри самой гостевой ОС. По сути, эта функция то же самое, что и аппаратный port mirroring, но на уровне виртуального коммутатора Hyper-V. Зеркалирование портов можно использовать в системах на базе Hyper-V для поиска неисправностей в сети, тестирования, мониторинга, анализа сетевого трафика и перенаправления трафика на анализ в IDS системы (системы обнаружения вторжений). Попробуем настроить зеркалирование трафика в Hyper-V 2012R2 на конкретном примере.
Системные требования для организации мирроринга портов в Hyper-V 2012R2:
Система с Windows Server 2012 Hyper-V и административного доступа к ней
Как минимум один виртуальный коммутатор (vSwitch)
Как минимум две виртуальные машины: трафик первой мы будем дублировать на вторую
Настройка зеркалирования портов с помощью GUI
Откройте консоль управления Hyper-V Manager
Перейдите в настройки виртуальной машины, трафик которой будем зеркалировать (Settings)
В окне параметров виртуальной машины найдите сетевой адаптер, на котором необходимо включить захват трафика и перейдите в раздел расширенных настроек (Advanced Features)
В разделе Port mirroring найдите параметр Mirroring Mode и измените его значение на Source (тем самым мы на уровне виртуального коммутатора Hyper-V включим зеркалирование данного порта)
Если в вашей конфигурации Hyper-V используется более одного виртуального коммутатора, необходимо запомнить его имя (в нашем примере это Hyper-V-Guests).
Следующий этап – настройка виртуальной машины, на которую будет дублироваться трафик с первой. Для удобства анализа сетевого трафика рекомендуется в данную машину добавить отдельную виртуальную сетевую карту (vNIC), подключенную к тому же виртуальному коммутатору. Выделенная карточка позволяет получить максимально полный дамп сетевого трафика за счет отключения ненужных служб и протоколов в гостевой ОС (подробнее об этом ниже). Для этого:
Погасите виртуальную машину, которая будет выступать в качестве приемника «захватываемого» трафика
Перейдите в ее настройки (Settings) и добавьте новое оборудование (Add Hardware) типа Network Adapter
Если используется несколько коммутаторов, включите новую сетевую карту именно в тот, в котором находилась первая виртуальная машина (коммутатор Hyper-V-Guests). В расширенных свойствах новой сетевой карты в разделе Port mirroring укажите, что сетевая карта будет выступать в качестве приемника сетевого трафика Mirroring Mode – Destination.
Включите виртуальную машину
Далее перейдем к настройке зеркалирования в гостевой Windows, являющейся приемником трафика.
Зайдите на машину через консоль Hyper-V или по rdp.
В панели управления сетевыми подключениями найдите добавленную ранее сетевую карту и для упрощения дальнейшей идентификации переименуйте ее (например, в Hyper-V-Guests-Mirror-Port).
Откройте свойства данного сетевого подключения и отключите все протоколы и службы. Тем самым мы добьемся «чистоты» захватываемого трафика, который ничем не фильтруется и не ограничивается, поступая в точно таком же виде, в каком он попадает на mirror порт.
Далее можно переходить непосредственно к работе с перенаправленным трафиком: это может быть некая IDS система или система захвата и анализа сетевого трафика (Packet Capture), например Microsoft Network Monitor, Message Analyzer, Wireshark или т.п.
Port Mirroring с помощью Powershell
В Windows Server 2012 Hyper-V управлять настройками зеркалирования трафика можно и с помощью Powershell.
В следующем примере мы с помощью Powershell включим port mirroring на виртуальной машине с именем VMWin2008Source и направим трафик на виртуальную машину с именем VMWin2008Monitor:
Set-VMNetworkAdapter –VMName VMWin2008Source –PortMirroring Source
Set-VMNetworkAdapter –VMName VMWin2008Monitor –PortMirroring Destination
Информация: Кроме того, полезными могут быть следующе команды:
Add-VMNetworkAdapter – добавить новый сетевой адаптер в виртуальную машину
Get-NetAdapter – получить список сетевых карт (NIC)
Rename-Netadapter – переименовать сетевую карту
Но есть и небольшая ложка дегтя – порт мирроринг работает в пределах только одного сервера Hyper-V (который, кстати, может работать непосредственно с USB флешки). Это означает, что если виртуальная машина, трафик которой зеркалируется, смигрировала на другой сервер кластера Hyper-V, то зеркалирование трафика перестает работать (на втором хосте также придется настроить отдельную машину для захвата трафика).