У 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
- Відкрийте консоль управління 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, то віддзеркалення трафіку перестає працювати (на другому хості також доведеться налаштувати окрему машину для захоплення трафіку).