Віддзеркалення портів в Hyper-V 2012

У Windows Server 2012 Hyper-V з'явилася нова функція - віддзеркалення портів (port mirroring), що дозволяє моніторити трафік віртуальних машин без необхідності захоплювати трафік безпосередньо всередині самої гостьовий ОС. По суті, ця функція те ж саме, що і апаратний port mirroring, але на рівні віртуального комутатора Hyper-V. Віддзеркалення портів можна використовувати в системах на базі Hyper-V для пошуку несправностей в мережі, тестування, моніторингу, аналізу мережевого трафіку і перенаправлення трафіку на аналіз в IDS системи (системи виявлення вторгнень). Спробуємо налаштувати віддзеркалення трафіку в Hyper-V 2012 на конкретному прикладі.

Системні вимоги для організації міррорінга портів в Hyper-V 2012:

  • Система з Windows Server 2012 Hyper-V і адміністративного доступу до неї
  • Як мінімум один віртуальний комутатор (vSwitch)
  • Як мінімум дві віртуальні машини: трафік першої ми дублюватиме на другу

Налаштування віддзеркалення портів за допомогою GUI

  1. Відкрийте консоль управління Hyper-V Manager
  2. Перейдіть в налаштування віртуальної машини, трафік якої будемо створювати дзеркала (Settings)
  3. У вікні параметрів віртуальної машини знайдіть мережевий адаптер, на якому необхідно включити захоплення трафіку і перейдіть в розділ розширених налаштувань (Advanced Features)
  4. В розділі Port mirroring знайдіть параметр Mirroring Mode і змініть його значення на Source (Тим самим ми на рівні віртуального комутатора Hyper-V включимо віддзеркалення даного порту)
  5. Якщо у вашій конфігурації Hyper-V використовується більш одного віртуального комутатора, необхідно запам'ятати його ім'я (в нашому прикладі це Hyper-V-Guests).

Наступний етап - налаштування віртуальної машини, на яку буде дублюватися трафік з першої. Для зручності аналізу мережевого трафіку рекомендується в дану машину додати окрему віртуальну мережеву карту (vNIC), підключену до того ж віртуального комутатора. Виділена картка дозволяє отримати максимально повний дамп мережевого трафіку за рахунок відключення непотрібних служб і протоколів в гостьовій ОС (докладніше про це нижче). Для цього:

  1. Погасіть віртуальну машину, яка буде виступати в якості приймача "захоплюваного" трафіку
  2. Перейдіть в її налаштування (Settings) І додайте нове обладнання (Add Hardware) типу  Network Adapter
  3. Якщо використовується кілька комутаторів, включите нову мережеву карту саме в той, в якому знаходилася перша віртуальна машина (комутатор Hyper-V-Guests). В розширених властивості нової мережевої карти в розділі Port mirroring вкажіть, що мережева карта буде виступати в якості приймача мережевого трафіку Mirroring Mode - Destination.
  4. Увімкніть віртуальну машину

Далі перейдемо до налаштування віддзеркалення в гостьовій Windows, що є приймачем трафіку.

  1. Зайдіть на машину через консоль Hyper-V або по rdp.
  2. В панелі управління мережевими підключеннями знайдіть додану раніше мережеву карту і для спрощення подальшої ідентифікації перейменуйте її (наприклад, в Hyper-V-Guests-Mirror-Port).
  3. Відкрийте властивості даного мережевого підключення і відключіть всі протоколи і служби. Тим самим ми доб'ємося "чистоти" захоплюваного трафіку, який нічим не фільтрується і не обмежується, вступаючи в точно такому ж вигляді, в якому він потрапляє на 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, то віддзеркалення трафіку перестає працювати (на другому хості також доведеться налаштувати окрему машину для захоплення трафіку).