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
Pingback: Microsoft Virtualisierungs Podcast Folge 24: Interview mit einem Private Cloud Evangelisten und einem MVP Virtual Machine « Rachfahl IT Solutions