Hyper-V 3.0: Measure und NetworkACL

Nachdem im letzten Artikel eine riesige Auswahl von Neuerungen in Windows 2012 vorgestellt wurden, soll dieser Artikel auf zwei Spezialitäten eingehen, die momentan nur mit PowerShell zu aktivieren sind:

  • Network ACLs: pro Virtuellen Maschine (VM) auf Netzwerkebene definieren, auf welche Zielsysteme die VM zugreifen kann. Diese “Firewall”-Funktion wird direkt durch Hyper-V durchgeführt und ist vom in der VM eingesetzten Betriebssystem unabhängig
  • Metering von VMs: Mitprotokollieren von Verbrauchswerten einer VM

Network ACL


Network ACLs können momentan nur über PowerShell eingerichtet werden. Das entsprechende Kommando dazu lautet: add-VMNetworkAdapterACL. Ein Beispiel der Syntax lauter folgendermaßen:

Add-VMNetworkAdapterAcl [-VMName] <String[]>  [-RemoteIPAddress <String[]>] [-RemoteMacAddress <String[]>] -Action <VMNetworkAdapterAclAction> -Direction <VMNetworkAdapterAclDirection>

Möchte man einer VM mit Namen DC01 verbieten zum Proxy mit der IP 10.0.0.100 zu gelangen so lautet der Befehl:

get-vm –Name DC01 | Add-VMNetworkAdapterAcl –RemoteIPAddress 10.0.0.100 –Action deny –Direction both

Mittels get-VMNetworkAdapterACL kann man sich die definierten Regeln ausgeben lassen:

get-vm DC01 | Get-VMNetworkAdapterAcl

VMName: DC01
AdapterName: Network Adapter

Direction    Address                                                  Action
---------    -------                                                  ------
Inbound      Remote 10.0.0.100                                        Deny
Outbound     Remote 10.0.0.100                                        Deny

Entfernen lässt sich die Regel wieder mit remove-VMNetworkAdapterACL:

get-vm 7dia | Remove-VMNetworkAdapterAcl -RemoteIPAddress 10.0.0.100 -Direction Both -Action Deny

Metering von VMs

Auch Metering ist eine Funktion, die sich aktuell nur mittels PowerShell aktivieren und auslesen lässt. Aktivieren lässt sich dies mit Enable-VMResourceMetering. Dabei kann das Metering für eine VM oder einen Resource Pool aktiviert werden. Ein Resource Pool ist eine neue Gruppierungsmöglichkeit von Hyper-V 3.0.

Für alle VMs eines Windows 2012 Server lässt sich dies so aktivieren:

get-vm | Enable-VMResourceMetering

Auslesen kann man die Daten über den Befehl Measure-VM:

get-vm | Measure-VM

VMName AvgCPU(MHz) AvgRAM(M) MaxRAM(M) MinRAM(M) TotalDisk(M) NetworkInbound(M) NetworkOutbound(M)
------ ----------- --------- --------- --------- ------------ ----------------- ------------------
DC01   409         2048      2048      2048      4537870      347               241
PROXY  127         1024      1024      1024      102400       15                10

Kombination

Warum werden diese beiden Funktionen hier gemeinsam vorgestellt? Weil sie sich gut kombinieren lassen!

Möchte man messen, wie viel Traffic eine VM intern und extern verbraucht, so kann man dies mittels ACLs realisieren:

get-vm | Add-VMNetworkAdapterAcl –RemoteIPAddress 10.0.0.0/24 –Action Meter –Direction both

Dieser Befehl fügt allen virtuellen Maschinen eine ACL hinzu, die nicht den Traffic blockiert, aber die übertragenen Datenmengen in beiden Richtungen (Outbound und Inbound) misst, die an das interne Subnetz gehen (hier: 10.0.0.0/24).

Ausgeben lassen sich diese Daten über die Eigenschaft NetworkMeteredTrafficReport der Objekte von Measure-VM:

(get-vm | Measure-VM  ).NetworkMeteredTrafficReport

LocalAddress RemoteAddress  Direction TotalTraffic(M)
------------ -------------  --------- ---------------
::/0           Outbound  7
192.168.2.0/24 Outbound  1
0.0.0.0/0      Outbound  234
::/0           Inbound   5
0.0.0.0/0      Inbound   343
192.168.2.0/24 Inbound   1
192.168.2.0/24 Outbound  0
::/0           Outbound  0
::/0           Inbound   5
0.0.0.0/0      Inbound   11
192.168.2.0/24 Inbound   0
0.0.0.0/0      Outbound  109
This entry was posted in Deutsch, Hyper-V, Powershell and tagged , , . Bookmark the permalink.