Next: 7 Zusammenfassung der Definitionen
Up: 6 Implementierung
Previous: 6.2.1 Der SAX-Parser
Der DHCP Agent besteht aus seiner Hauptklasse DHCPMobileAgent , der
Klasse RequestHandler und DhcpServer . Weiterhin werden noch die
Spezialklassen IpAddress und DhcpRequest implementiert.
Arbeitsweise
]Arbeitsweise
Der DHCP-Server lauscht auf Port 68. Empfängt er einen Datenstrom, so
wird dieser an den RequestHandler weitergereicht. Der RequestHandler
übergibt den Datenstrom an die Klasse DhcpRequest , welche als Ergebnis
alle Teilbereiche des DHCP-Paketes zur Verfügung stellt sowie
analysiert um welchen Typ Request es sich handelt.
Policy Agent
]Policy Agent
Der RequestHandler sendet nun eine Anfrage an den Policy Agenten, in
der er übermittelt, daß er die IP-Adresse zum Client mit der
entsprechenden MAC-Adresse zugewiesen bekommen möchte.
Dabei gibt es zwei Antwortmöglichkeiten. Der Policy Agent kann mit einem
String antworten, der eine IP-Adresse enthält oder mit dem Vermerk
'dynamic'.
Liefert der Policy Agent eine IP-Adresse, so wird ein Antwort-Strom mit
dieser IP-Adresse generiert (DhcpRequest.reply). Im anderen Fall wird
eine IP-Adresse aus dem Adresspool des DHCP Agenten verwendet.
IP-Adresspool
]IP-Adresspool
Dieser Adresspool wird von der Klasse DhcpServer verwaltet. Dabei
handelt es sich um drei Arrays mit Instanzen der Klasse IpAddress . Diese
Arrays werden nach Freien Adressen, reservierten Adressen und Momentan
verwendeten Adressen untergliedert.
Hat der Agent keine freien IP-Adressen mehr zur Verfügung, so sendet er
keine Antwort.
Management
]Management
Der Agent hat folgende Außenschnittstellen:
- getIncomingPort()
- liefert den aktuellen Port zurück, an dem der DHCP Agent
DHCP-Anfragen empfängt
- getOutgoingPort()
- liefert den aktuellen Port zurück, von dem aus der DHCP Agent
Antworten auf DHCP-Anfragen sendet
- getDefaultLeaseTime()
- liefert die Standard-Leased-Time, die erwendet wird, wenn
nichts Gegenteiliges angegeben ist
- addIP( string inIP )
- fügt die in inIP angegebene IP-Adresse dem zur Verfügung
stehenden IP-Adresspool hinzu
- removeIP( string inIP )
- entfernt die in inIP angegebene IP-Adresse aus dem zur
Verfügung stehenden IP-Adresspool.
Applet
]Applet
Das dazugehörige Applet soll die Möglichkeit bieten, den Agenten zu
stoppen und zu starten sowie ihm IP-Adressen für seinen internen Pool
ein und auszutragen.
Next: 7 Zusammenfassung der Definitionen
Up: 6 Implementierung
Previous: 6.2.1 Der SAX-Parser
Copyright Munich Network Management Team