CAC per Skript

Die Pflege von "Call Admission Control" ist über das Control Panel auch für weniger versierte Administratoren einfach möglich. Auf der Seite CAC Konfiguration habe ich das exemplarisch gezeigt. Diese Seite beschäftigt sich mit der Pflege per PowerShell

Vorabreiten

Die beiden größten Bausteine einer CAC-Konfiguration ist die Pflege der Subnetze, die einem Standort zugewiesen werden müssen. Beide Informationen sollten in vielen Firmen schon vorhanden sein. Auch am Active Directory gibt es "Sites and Servies", in denen Sie die Standorte und Subnetze pflegen. Es ist Aufgabe ihrer internen Prozesse, dass die Netzwerker bei dem Aufbau eines neuen Subnetzes diese nicht nur in den Routingtabellen veröffentlichen, sondern hoffentlich auch ihrem AD-Team die entsprechende Information zukommen lassen. Nur wenn die Subnetze im AD gepflegt sind, nutzen die Clients und Server den "naheliegenden" DCs. Auch Exchange 2007 nutzt die AD-Sites um das Routing zu bestimmen.

Lync hingegen ist davon unabhängig aber natürlich können wir diese Daten als Quell heran ziehen. Aber ehe wir nun Subnetze in Lync per Skript anlegen, müssen die entsprechenden CAC-Sites vorliegen und diese auch an Regionen verbunden sein. Zudem muss es entsprechende Bandbreitenpolicies geben, die dann bei der Konfiguration verwendet werden können. Diese Daten lassen sich aber schwer per Skript anlegen oder verwalten, zudem ändern sie sich eher selten. Ich beschränke mich daher auf Subnetze und Standorte. Vorarbeiten sind daher:

  • Definition und anlegen der Bandbreitenrichtlinien
    Diese werden später bei der Verbindung der Regionen und Standorte an die zugewiesene Region verwendet.
  • Definition der Regionen samt Links
    Die Regionen müssen Sie auch von Hand anlegen und entsprechend verbinden. Diese Daten sind nicht im AD zuverlässig zu erkennen.

 

Pflege der Sites aus einer CSV-Datei

Als Einstieg in die Materie starten wir mit einer Pflege per CSC-Datei. Die Lync Hilfe liefert hier schon erste Informationen und es ist sehr einfach, eine CSAV-Datei anzulegen, anhand der die entsprechenden Standorte und Subnetze angelegt werden. Zuerst brauchen wir eine CSV-Datei, die den Namen der Site, die zugeordnete Region und die gültige Bandbreiten-Policy enthält. Hier ein Beispiel:

"Identity""NetworkRegionID","BWPolicyProfileID"
"CACSite-PAD","Region-MPLS-DE","BWPolicy-4MB"
"CACSite-FFM","Region-MPLS-DE","BWPolicy-4MB"
"CACSite-SEA","Region-MPLS-US","BWPolicy-16MB"

Hier muss es also die Regionen "Region-MPLS-DE" und "Region-MPLS-US" bereits geben und ebenfalls die Bandbreiten-Policies. Bitte überlegen Sie sich vorher eine sinnvolle Benennung. Diese CSV-Datei kann dann einfach über folgende Zeilen importiert werden:

#Kurzform
Import-CSV sites.csv | foreach {
   New-CsNetworkSite `
      -identity $_.Identity `
      -NetworkRegionID $_.NetworkRegionID `
      -BWPolicyProfileID $site.BWPolicyProfileID
}

Dieser einfache "OneLiner" hat aber Einschränkungen:

  • Fehlermeldung wenn Site schon da
  • Keine Anpassung schon bestehender Sites
  • Kein Löschen nicht mehr in der CSV enthaltener Sites

Die beiden ersten Probleme können einfach versteckt bzw. erweitert werden:

Foreach ($site in (Import-CSV sites.csv)){
   New-CsNetworkSite `
      -identity $site.Identity `
      -NetworkRegionID $site.NetworkRegionID `
      -BWPolicyProfileID $site.BWPolicyProfileID `
      -Erroraction silentlycontinue
   Set-CsNetworkSite `
      -identity $site.Identity `
      -NetworkRegionID $site.NetworkRegionID `
      -BWPolicyProfileID $site.BWPolicyProfileID
}

Der erste Befehl legt noch nicht vorhandene NetworkSites an aber unterdrück Fehler und der zweite setzt zur Sicherheit die Werte noch mal. So werden bestehende NetworkSites aktualisiert. Nur das Löschen fehlt noch, wobei ich da sehr vorsichtig wäre solche Daten automatisch zu löschen. Denkbar ist es natürlich, indem man sich am Ende die konfigurierten Sites ausliest und gegen die CSV-Datei abgleicht.

Pflege der Subnetze aus einer CSV-Datei

Mit dem gleichen Vorgehen können im zweiten Schritt dann auch die Subnetze in CAC eingetragen werden. Auch hier ist eine CSV-Datei mit allen Subnetzen und den zugeordneten CAC Network Sites die Datenbasis, die natürlich erst einmal erstellt werden muss:

"Identity","MaskBits","NetworkSiteID"
"10.1.0.0","16","CACSite-PAD"
"10.2.0.0","16","CACSite-FFM"

Diese Daten wird erneut mit Import-CSV geladen und zur Anlage der Sites genutzt:

Import-CSV C:\subnet.csv | foreach {
   New-CsNetworkSubnet `
      -Identity $_.Identity `
      -MaskBits $_.Mask `
      -NetworkSiteID $_.SiteID
}

Auch dieses Skript krankt daran, dass bestehende Subnetze nicht angepasst werden, bei bestehenden Sites ein Fehler kommt und keine überzähligen Sites gelöscht werden. Auch das kann wie bei den CAC-Sites einfach gelöst werden.

AD-Sites/Subnetze zu CAC

Wer im Active Directory entsprechende "Sites and Subnets" pflegt, kann diese Daten ja zumindest als Ausgangsmaterial für die Lync Sites nutzen. Leider importiert Lync die Daten nicht von alleine. Es gibt aber verschiedene Skripte, die diese Daten in Lync Sites umwandeln. Alles, die ich bislang gesehen habe, sind aber "einmalige" Skripte, d.h. sie synchronisieren nicht wirklich die Daten sondern addieren diese einfach. Verschwindet also eine AD-Site oder ein AD-Subnet, dann bleibt es in Lync erhalten. Dennoch sind die Skripte eine gute Ausgangsbasis für den Anfang oder zur eigenen Weiterentwicklung.

Bei allen Skripten müssen Sie aber die ein oder andere Vorbedingung erst schaffen, damit diese ablaufen. Vielleicht erweitern Sie aber auch einfach ihren aktuellen Provisioning-Prozess, so dass Sie beim Änderungen im Netzwerks, zukünftig auch noch die Lync Sites pflegen. für die AD-Sites, DHCP-Einstellungen etc. machen Sie es ja heute schon.

Weitere Links