Teil I Einführung in die Systemverwaltung: IP Services
1. Oracle Solaris TCP/IP-Protokollfamilie (Übersicht)
Teil II Administration von TCP/IP
2. Planen Ihres TCP/IP-Netzwerks (Vorgehen)
3. Einführung in IPv6 (Überblick)
4. Planen eines IPv6-Netzwerks (Aufgaben)
5. Konfiguration der TCP/IP-Netzwerkservices und IPv4-Adressierung (Aufgaben)
6. Verwalten von Netzwerkschnittstellen (Aufgaben)
7. Konfigurieren eines IPv6-Netzwerks (Vorgehen)
8. Verwaltung eines TCP/IP-Netzwerks (Aufgaben)
9. Fehlersuche bei Netzwerkproblemen (Aufgaben)
10. TCP/IP und IPv4 im Detail (Referenz)
12. Einführung in DHCP (Übersicht)
13. Planungen für den DHCP-Service (Aufgaben)
14. Konfiguration des DHCP-Services (Aufgaben)
15. Verwalten von DHCP (Aufgaben)
16. Konfiguration und Verwaltung des DHCP-Clients
Allgemeine Informationen zum DHCP-Client
Unterschiede zwischen DHCPv4 und DHCPv6
So verwalten die DHCP-Client-Protokolle Netzwerkkonfigurationsinformationen
So verwaltet der DHCPv4-Client Netzwerkkonfigurationsinformationen
So verwaltet der DHCPv6-Client Netzwerkkonfigurationsinformationen
Herunterfahren eines DHCP-Clients
Aktivieren und Deaktivieren eines DHCP-Clients
So aktivieren Sie den DHCP-Client
So deaktivieren Sie einen DHCP-Client
ifconfig-Befehlsoptionen für den DHCP-Client
Einrichten der Konfigurationsparameter eines DHCP-Client
DHCP-Clientsysteme mit mehreren Netzwerkschnittstellen
So konfigurieren Sie einen DHCPv4-Client zur Anforderung eines bestimmten Hostnamens
DHCP -Clientsysteme und Namen-Services
Einrichten von DHCP-Clients als NIS+-Clients
So richten Sie DHCP-Clients als NIS+-Clients ein
17. DHCP-Fehlerbehebung (Referenz)
18. DHCP - Befehle und Dateien (Referenz)
19. IP Security Architecture (Übersicht)
20. Konfiguration von IPsec (Aufgaben)
21. IP Security Architecture (Referenz)
22. Internet Key Exchange (Übersicht)
23. Konfiguration von IKE (Aufgaben)
24. Internet Key Exchange (Referenz)
25. IP Filter in Oracle Solaris (Übersicht)
28. Verwalten von Mobile IP (Aufgaben)
29. Mobile IP-Dateien und Befehle (Referenz)
30. Einführung in IPMP (Übersicht)
31. Verwaltung von IPMP (Aufgaben)
Teil VII IP Quality of Service (IPQoS)
32. Einführung in IPQoS (Übersicht)
33. Planen eines IPQoS-konformen Netzwerks (Aufgaben)
34. Erstellen der IPQoS-Konfigurationsdatei (Aufgaben)
35. Starten und Verwalten des IPQoS (Aufgaben)
36. Verwenden von Flow Accounting und Erfassen von Statistiken (Aufgaben)
Sie können den DHCP-Client so konfigurieren, dass er ein ausführbares Programm oder ein Skript aufruft, das eine für das Clientsystem geeignete Aktion ausführt. Dieses Programm oder Skript, das als Ereignisskript bezeichnet wird, wird automatisch ausgeführt, nachdem bestimmte DHCP-Leasing-Ereignisse aufgetreten sind. Das Ereignisskript kann zum Ausführen anderer Befehle, Programme oder Skripten als Reaktion auf bestimmte Leasing-Ereignisse verwendet werden. Zum Verwenden dieser Funktion müssen Sie eigene Ereignisskripten bereitstellen.
Die folgenden Ereignis-Schlüsselwörter werden von dhcpagent-Daemon verwendet, um DHCP-Leasing-Ereignisse zu kennzeichnen:
Beschreibung
Die Schnittstelle wird für DHCP konfiguriert. Der Client erhält eine Bestätigungsnachricht (DHCPv4 ACK) oder (DHCPv6 Reply) vom DHCP-Server, die eine Leasing-Anforderung nach einer IP-Adresse gewährt. Das Ereignisskript wird unmittelbar nach der erfolgreichen Konfiguration der Schnittstelle aufgerufen.
Der Client verlängert erfolgreich ein Leasing. Das Ereignisskript wird aufgerufen, unmittelbar nachdem der Client die Bestätigungsnachricht vom DHCP-Server über die Erneuerungsanforderung erhalten hat.
Das Leasing läuft ab, wenn die Leasing-Zeit gestrichen ist. Bei DHCPv4 wird das Ereignisskript aufgerufen, unmittelbar bevor die geleaste Adresse von der Schnittstelle entfernt und die Schnittstelle als offline gekennzeichnet wird. Bei DHCPv6 wird das Ereignisskript aufgerufen, unmittelbar bevor die letzte verbleibende geleaste Adresse von der Schnittstelle entfernt wird.
Der Client verwirft das Leasing, um die Schnittstelle aus der DHCP-Verwaltung zu entfernen. Das Ereignisskript wird aufgerufen, unmittelbar bevor die Schnittstelle aus der DHCP-Verwaltung entfernt wird.
Der Client gibt die IP-Adresse frei. Das Ereignisskript wird ausgeführt, unmittelbar bevor der Client die Adresse der Schnittstelle freigibt und RELEASE- oder DHCPv6 Release-Pakete an den DHCP-Server sendet.
Eine Schnittstelle bezieht über die DHCPv4 INFORM- oder die DHCPv6 Information-Request-Nachricht neue oder aktualisierte Konfigurationsinformationen von einem DHCP-Server. Dieser Ereignisse treten auf, wenn der DHCP-Client nur Konfigurationsinformationen vom Server und kein Leasing für eine IP-Adresse bezieht.
Während des Ablaufs der Leasing-Zeit, wenn noch mindestens ein Leasing gültig ist, wird das Ereignisskript aufgerufen, bevor abgelaufene Adressen entfernt werden. Die entfernten Adressen werden mit dem Flag IFF_DEPRECATED gekennzeichnet.
Bei jedem dieser Ereignisse ruft der dhcpagent-Daemon den folgenden Befehl auf:
/etc/dhcp/eventhook interface event
dabei steht Schnittstelle für die Schnittstelle, die DHCP verwendet und Ereignis ist eines der oben beschriebenen Ereignisschlüsselwörter. Angenommen, die Schnittstelle ce0 wurde als erstes für DHCP konfiguriert, so ruft der dhcpagent-Daemon das Ereignisskript wie folgt auf:
/etc/dhcp/eventhook ce0 BOUND
Um ein Ereignisskript verwenden zu können, müssen Sie Folgendes ausführen:
Benennen der ausführbaren Datei /etc/dhcp/eventhook.
Einstellen des Eigners der Datei auf root.
Einstellen der Berichtigungen auf 755 (rwxr-xr-x ).
Schreiben Sie das Skript oder Programm, um eine Abfolge von Aktionen als Reaktion auf eines der dokumentierten Ereignisse auszuführen. Da Sun eventuell neue Ereignismodelle hinzufügt, muss das Programm alle nicht erkannten Ereignisse oder solche, die keine Aktionen erfordern, stillschweigend ignorieren. Beispielsweise könnte das Programm oder Skript in eine Protokolldatei schreiben, wenn das Ereignis RELEASE lautet und alle anderen Ereignisse ignorieren.
Sorgen Sie dafür, das Skript bzw. Programm nicht-interaktiv ist. Bevor das Ereignis wird aufgerufen wird, sind stdin, stdout und stderr mit /dev/null verbunden. Um die Ausgabe oder Fehler zu sehen, müssen Sie zu einer Datei umleiten.
Das Ereignisskript übernimmt die Programmumgebung vom dhcpagent-Daemon und wird mit root-Berechtigungen ausgeführt. Das Skript kann das Dienstprogramm dhcpinfo verwenden, um ggf. weitere Informationen zur Schnittstelle zu beziehen. Weitere Informationen finden Sie in der Manpage dhcpinfo(1).
Der dhcpagent-Daemon wartet, bis das Ereignisskript für alle Ereignisse beendet ist. Wenn das Ereignisskript nach 55 Sekunden nicht beendet ist, sendet der dhcpagent-Daemon ein SIGTERM-Signal an den Skriptprozess. Wird der Prozess nach weiteren 3 Sekunden nicht beendet, sendet der Daemon ein SIGKILL-Signal, um den Prozess zu beenden.
Ein Beispiel eines Ereignisskripts finden Sie in der Manpage dhcpagent(1M).
Beispiel 16-3 zeigt, wie Sie ein DHCP-Ereignisskript verwenden, um den Inhalt der /etc/resolv.conf-Datei auf dem neuesten Stand zu halten. Wenn die Ereignisse BOUND und EXTEND auftreten, ersetzt das Skript die Namen von Domänenserver und Namensserver. Wenn die Ereignisse EXPIRE, DROP und RELEASE auftreten, entfernt das Skript die Namen von Domänenserver und Namensserver aus der Datei.
Hinweis - Das Beispielskript geht davon aus, dass DHCP die autoritative Quelle für die Namen von Domänenserver und Namensserver ist. Weiterhin geht das Skript davon aus, dass alle Schnittstellen unter der Verwaltung von DHCP konsistente und aktuelle Informationen zurückgeben. Diese Annahmen spiegeln eventuell nicht die Bedingungen auf Ihrem System wider.
Beispiel 16-3 Ereignisskript zur Aktualisierung der Datei /etc/resolv.conf
#!/bin/ksh -p PATH=/bin:/sbin export PATH umask 0222 # Refresh the domain and name servers on /etc/resolv.conf insert () { dnsservers=`dhcpinfo -i $1 DNSserv` if [ -n "$dnsservers" ]; then # remove the old domain and name servers if [ -f /etc/resolv.conf ]; then rm -f /tmp/resolv.conf.$$ sed -e '/^domain/d' -e '/^nameserver/d' \ /etc/resolv.conf > /tmp/resolv.conf.$$ fi # add the new domain dnsdomain=`dhcpinfo -i $1 DNSdmain` if [ -n "$dnsdomain" ]; then echo "domain $dnsdomain" >> /tmp/resolv.conf.$$ fi # add new name servers for name in $dnsservers; do echo nameserver $name >> /tmp/resolv.conf.$$ done mv -f /tmp/resolv.conf.$$ /etc/resolv.conf fi } # Remove the domain and name servers from /etc/resolv.conf remove () { if [ -f /etc/resolv.conf ]; then rm -f /tmp/resolv.conf.$$ sed -e '/^domain/d' -e '/^nameserver/d' \ /etc/resolv.conf > /tmp/resolv.conf.$$ mv -f /tmp/resolv.conf.$$ /etc/resolv.conf fi } case $2 in BOUND | EXTEND) insert $1 exit 0 ;; EXPIRE | DROP | RELEASE) remove exit 0 ;; *) exit 0 ;; esac