Next: 2.5 Dienst-Management
Up: 2.4 Policies
Previous: Diverses
Die Notwendigkeit von Policies im Allgemeinen ist bereits bekannt.
Derzeit arbeiten einige Gruppen an konkreten Vorschlägen für ein
allgemeines Policy-Modell. Einer dieser Vorschläge kommt von Elleson,
Ed, Strassner, Weiss und Westerinen .
Die Arbeit lag zum Zeitpunkt der Erstellung dieses Kapitels als
Internet Draft vor.
Die hier beschriebene Version dieses Vorschlages beruht auf dem Draft
vom März 1999 (strassner-policy-terms-01) inzwischen ist diese Version
nicht mehr verfügbar.
Abbildung 2.3:
Allgemeines Policy-Modell
|
Das allgemeine Policy-Modell ist in Abb. 2.3 dargestellt. Es
ist nach
dem Draft [ESM99c] erstellt.
Demnach gibt es ein
Management-Tool , welches einen Repository
Client
besitzt. Dieser greift mittels eines Repository Access
Protocols
(dabei kann es sich um ein proprietäres Protokoll handeln) auf einen
Datenbestand zu, der auf diesem Wege verwaltet wird.
Auf der Abbildung 2.3 unten rechts befinden sich
PIN (Policy Ignorant Nodes) .
Dabei handelt es sich um Programme und Services,
die nicht mit Policies zu
beeinflussen sind, da sie Policies generell nicht unterstützen oder ein
inkompatibles Policy-System unterstützen.
PEP (Policy Enforcement
Points) , sind Programme, die mit Policies beeinflußt werden können
und Policies umsetzen können. Sie kommunizieren mit einem
PDP (Policy Decision Point) , der seinerseits
einen Repository Client hat, mit dem er auf den vom Managementsystem
gepflegten Datenbestand zugreifen kann.
Dabei ist vorgesehen, daß das Repository Access Protocol,
welches zwischen
Repository Client und Policy Repository sowie zwischen
Policy Repository und Management Tool
verwendet wird, jeweils identisch sind.
Es muß aber nicht mit dem Policy
Protocol, welches zwischen PEP und PDP verwendet wird, identisch sein.
Im Policy Decision Point werden ausschließlich Entscheidungen
getroffen. Das Ergebnis wird dann dem Policy Enforcement Point
mitgeteilt.
Nur dieser besitzt die Implementierung zur Durchsetzung der
Policy-Entscheidung.
Abbildung 2.4:
Policy-Nutzung
|
Das allgemeine Vorgehen bei einer Policy-Entscheidung zeigt Abb
2.4.
Ein PEP erhält ein Ereignis, welches eine policy-basierte Handlung
erfordert. Der PEP stellt an den PDP eine konkrete Anfrage, was er tun
soll, bzw. wie die dazugehörige Policy-Entscheidung aussieht. Der PDP
wertet die ihm vorliegenden Policies aus und trifft danach eine
Entscheidung. Diese übermittelt er an den PEP, der sie umsetzen kann.
Das Policy-Objekt-Modell ist in Abb 2.5 dargestellt. Es
handelt sich um ein komplettes Objektmodell einer Policy. Dieses Modell
beinhaltet sechs Hauptklassen.
Abbildung 2.5:
Policy-Object-Modell
|
Die Klasse Policy enthält vier Attribute: commonName (cn), caption,
description und policyKeywords. (siehe Abb 2.6)
Abbildung 2.6:
Policy-Klassen Modell
|
Klasse policy
]Klasse policy
- cn
- ist ein benutzerlesbarer Name. Dabei handelt es sich
lediglich
um eine
menschenlesbare Bezeichnung, welche nicht eindeutig sein muß. Sie ist
typischer Weise lediglich in einem begrenzten Bereich eindeutig.
- caption
- wird verwendet, um eine einzeilige
Beschreibung des
entsprechenden Objektes vorzuhalten.
- description
- enthält dann die ausführliche Beschreibung des
Objekts.
- policyKeywords
- enthält eine Reihe von Schlüsselworten, die
vom Administrator gegeben werden, um eine einfachere und genauere
Zuweisung des Objekts an einen client zu unterstützen. Beispiele für
solche Schlüsselworte sind: 'Engineering', 'Billing',
'Review in December 1999', 'UNKNOWN', 'CONFIGURATION', 'USAGE',
'SECURITY',
'SERVICE', 'MOTIVATIONAL', 'INSTALLATION', und 'EVENT'.
Die Klasse Policy hat im Original-Modell zwei direkte Unterklassen:
PolicyRule und PolicyGroup . Im oben beschriebenen
Management-Modell
wäre es allerdings denkbar
die Klasse PolicyGroup anstatt der Klasse
Group zu verwenden, bzw. umgekehrt.
Group ist eine Unterklasse der Klasse Verwaltung .
Die Klasse PolicyGroup enthält im Modell Instanzen der Klasse
PolicyGroup oder PolicyRules . Sie ist als reine
Container-Klasse
gedacht (siehe Abb. 2.7. Dabei ist zu
beachten,
daß die Klasse PolicyGroup entweder PolicyRules oder
PolicyGroups enthalten darf, aber nicht beide.
Abbildung 2.7:
Containerklasse PolicyGroup
|
Klasse policyGroup
]Klasse policyGroup
Diese Klasse hat als Attribut einen Namen, der wie cn der Klasse
policy
lediglich zur leichteren Benennung durch Menschen zu verwenden ist.
Die Klasse policyRule enthält drei Unterklassen:
policyCondition ,
PolicyTimePeriod und PolicyAction.
Eine policRuleCondition ist in der Regel entweder ein Set, welches
mit
'OR' verbunden ist und jede Einzelregel innerhalb dieses Sets mit 'AND'
verbunden ist
(Disjunktiv Nornmalform (DNF)) oder ein Set, welches mit 'AND' verbunden
ist
und jede Einzelregel innerhalb dieses Sets mit 'OR' verbunden ist
(Konjunktiv Normalform (KNF)) dargestellt.
Einzelne Regeln können zusätzlich negiert sein. Eine
policyRule
darf dann und nur dann ausgeführt werden, wenn ihre Auswertung TRUE
ergibt
- egal ob es sich um KNF oder DNF handelt.
Die genaue Regel, wann etwas auszuführen ist, wird in der Unterklasse
policyCondition abgelegt. In der Unterklasse policyRule
ist festgelegt, was im Falle einer erfüllten policyCondition zu tun
ist.
Die Unterklasse policyTimePeriodCondition beinhaltet eine Angabe
über den
Zeitraum, an dem diese spezielle policyRule gültig ist.
Klasse policyRule
]Klasse policyRule
Die Klasse policyRule hat folgende Attribute:
- policyRuleName
- enthält einen benutzerfreundlichen Namen.
- policyRuleEnabled
- zeigt an, ob dieses spezielle policyRule
gerade aktiv
ist oder nicht (d.h. ob es ausgewertet werden soll oder nicht.) Die Idee
dahinter ist die, daß man einzelne Conditions temporär entfernen kann
ohne sie
wirklich aus dem Regelset herauszunehmen und später wieder einzugeben.
- policyRuleConditionList
- ist eine Liste, in der die
policyConditions,
die mit diesem policyRule verbunden sind, aufgelistet sind.
- policyRuleConditionList
- beinhaltet eine ungeordnete Liste von
Pointern,
die ein Set von Policy Conditions, die mit dieser Policy Regel assoziiert
werden enthält.
- policyRuleActionList
- enthält eine unsortierte Liste mit Strings
der Form:
'n:DN' (DN = distinguished name; entspricht einer Instanz in einem
Directory), welches eine policyAction beschreibt, die mit diesem
policyRule assoziiert ist. mit 'n' wird eine Priorität der
einzelnen
Regeln zueinander angegeben, je niedriger der Wert von 'n' desto
niedriger
die Priorität der Regel. Diese Angabe ist wichtig, wenn es zu Konflikten
kommt, bei denen sich die Ausführung einzelner Aktionen gegenseitig
widersprechen oder gar unmöglich machen würden.
- policyRuleValidityPeriodList
- enthält eine ungeordnete Liste mit
Pointern auf eine oder mehrere policyTimePeriodConditions , die
anzeigen, wann die policyRule aktiv ist und wann nicht.
- policyRuleUsage
- ist ein 'free-form' String, der angibt, wie
diese Policy zu
verwenden ist.
- policyRulePriority
- enthält eine nichtnegative Integer Zahl, die
angibt wie
diese policyRule gegenüber anderen policyRules zu priorisieren ist.
- policyRuleMandatory
- enthält, ob eine Auswertung (und das
Durchführen
möglicher Aktionen) dieses policyRule 'mandatory' ist oder nicht.
- policyRuleSequencedActions
- gibt dem Policy Administrator die
Möglichkeit
anzugeben, wie die Reihenfolge der Aktionen, die mit dieser
policyRule
assoziiert sind, zu interpretieren ist. Drei Werte sind standardmäßig
unterstützt: mandatory (Aktionen in der angegebenen Reihenfolge
durchführen oder gar keine Aktionen durchführen), recommended
(Aktionen
nach Möglichkeit in der angegebenen Reihenfolge durchführen oder, wenn
dies nicht möglich ist, in einer anderen Reihenfolge abarbeiten),
dontCare (Aktionen durchführen, egal in welcher Reihenfolge)
Der Sinn der Klasse policyCondition ist es, festzulegen wann
das Set policyActions auszuführen oder nicht auszuführen ist.
Klasse policyCondition
]Klasse policyCondition
Die Klasse hat ein einzelnes Attribut policyConditionName, welches
lediglich einen benutzerfreundlichen Namen enthält.
Die Klasse policyTimePeriodCondition liefert eine Möglichkeit
anzugeben,
in welchen Zeitabschnitten diese spezielle policyRule aktiv ist und
somit
auf das System wirken kann. Ist in einem policyRule keine
policyTimePeriodCondition angegeben, wird davon ausgegangen, daß
diese
policyRule immer aktiv sein soll.
policyTimePeriodCondition ist als direkte Unterklasse der Klasse
policyCondition definiert. Sie enthält bis zu fünf Attribute, die
Zeitperioden definieren. Ist ein Attribut nicht explizit angegeben, wird
auch hier wieder davon ausgegangen, dass es die Wirkungszeit nicht
einschränkt, also immer gültig ist.
Klasse policyTimePeriodCondition
]Klasse policyTimePeriodCondition
- ptpConditionTime
- gibt die Zeitdauer als Datumsfolge an:
'Startdatum und
Zeit':'Enddatum und Zeit', das erste Datum gibt den Beginn der
Zeitperiode
an, das zweite das Ende (das zweite Datum muß später sein als das
erste).
Das Datum wird dabei wie folgt ausgedrückt: yyyymmddhhmmss.
19990901121500:19990902000000
bezeichnet also den Zeitraum vom 01. September 1999 12:15:00 Uhr bis zum
02. September 1999 00:00:00 Uhr.
- ptpConditionMonthOfYearMask
- gibt an, zu welchen Monaten
innerhalb des
angegebenen Zeitraumes der ptpConditionTime die Regel gültig sein soll.
Sie wird durch 12 Stellen dargestellt, die entweder 0 oder 1 sind, wobei
0
bedeutet, daß die Regeln nicht gelten und 1 bedeutet, daß das Regelset
aktiv sein soll: 110011100011 entspricht zum Beispiel der Zeit im Jahr,
an
der an der LMU München Vorlesungen gehalten werden.
- ptpConditionDayOfMonthMask
- gibt den genauen Tag innerhalb eines
Monats an.
Der String enthält 31 Felder, die mit 0 und 1 bezeichnet werden.
1110000000000000000000000000000 bezeichnet eine Regel, die nur an den
ersten drei Tagen eines Monats aktiv ist.
- ptpConditionDayOfWeekMask
- wird zum genauen Benennen des
Wochentages
verwendet. Begonnen wird an Montag und bis Sonntag gezählt: 0010011
entspricht einer Gültigkeit am Mittwoch und am Wochenende.
- ptpConditionTimeOfDayMask
- ist zur genaueren Angabe von
Zeitperioden im
Stundenbereich. Es wird eine Start- und eine Endzeit angegeben, welche
mit ':' voneinander getrennt sind: 121500:140000 entspricht einer
regelmäßigen Periode von 12:15:00 Uhr bis 14:00:00 Uhr.
- ptpConditionTimeZone
- gibt an, welche Zeitzone zugrunde gelegt
werden
soll, ist nichts angegeben, wird die lokale Zeit angenommen.
Die Spezifikation [ESM99c]
beinhaltet noch einige zusätzliche Klassen, welche hier nicht erwähnt
sind.
Diese dienen der zusätzlichen Gruppierung einzelner policyAction und
policyCondition-Klassen. Die daraus entstehende Komplexität ist für den
hier vorgesehenen Verwendungszweck allerdings nicht nötig.
Next: 2.5 Dienst-Management
Up: 2.4 Policies
Previous: Diverses
Copyright Munich Network Management Team