<div id="tutorialrahmen"> Was wird gemacht?: Aufsetzen eines DHCP-Servers unter Mac OS X
Zielgruppe: Erfahrene Mac-User, Serveradministratoren
Dauer: ca. 30 Minuten </div>

DHCP-Server konfigurieren

Was ist ein DHCP-Server?

Ein DHCP-Server (Dynamic Host Configuration Protocol) kann an IP-fähige Gerätschaften (Rechner, Drucker, etc.) in einem LAN eindeutige IP-Adressen verteilen. Ausserdem teilt er den Clients mit, unter welcher IP-Adresse der Router und der Nameserver zu erreichen sind. Dies sind die notwendigen Daten damit diese Rechner ins Internet gelangen können.

Praktisch alle auf dem Markt befindlichen DSL-Router bieten einen einfachen, komfortabel zu konfigurierenden integrierten DHCP-Server, so dass man bei Anwesenheit eines solchen auf diesen zurückgreifen kann. Trotzdem gibt es immer wieder Situationen in denen man lieber einen vollwertigen, freier konfigurierbaren DHCP-Server auf seinem MacOS X System fahren will.

Häufig soll der Mac dann auch die andere Funktionalität eines DSL-Routers übernehmen: IP-Routing bzw. NAT und Firewall.

Achtung: Jede ausgelieferte Mac OS X Version hat bereits einen vollwertigen DHCP-Server in Form des /usr/libexec/bootpd an Bord, für den ebenfalls eine Dokumentation mitgeliefert wird. Konfiguriert wird diese über NetInfo-Einträge (bei der Serverversion können diese bequem per GUI über Server Admin respektive Arbeitsgruppen Manager gesetzt werden). Aktiviert man ab Mac OS X 10.2 das Internet Sharing verteilt dieser DHCP-Server automatisch an andere Rechner IP-Adressen sowie Informationen bzgl. Routing, DNS, etc.

Das nachfolgende Tutorial ist also in jedem Fall nur etwas für postmaterielle Bastler, die es schön umständlich lieben oder aber Leute, die definitiv die Features des ISC dhcpd benötigen und dem Komfort von Paketmanager wie DarwinPorts oder Fink nichts abgewinnen können (denn port install dhcp bzw. fink install dhcp sind bereits alles, was es braucht, um nachfolgende Installationsorgie überspringen zu können).

dhcp für die Webmin Konfiguration installieren

1.Schritt

Auf der offiziellen DHCP-Seite den Source-Code herunterladen. Direktlink (ftp).

2. Schritt

Im Terminal folgendes als Administrator eingeben (Passwortabfrage möglich):

 cd /Pfad_zur_Downloaddatei
 tar -zxvf dhcp-letzte_version.tar.gz
 cd dhcp-3.0.3
 ./configure
 make

 *cd work.darwin
 **cd server
 **sudo make install
 *cd ../common
 **sudo make install
 *cd ../dhcpctl
 **sudo make install
 *cd ../omapip
 **sudo make install

Das war es. Nun sind die Binaries für den Server erstellt.

Durch ein erneutes sudo make install im Verzeichnis dhcp-3.0.3 (oder der entsprechenden Version) wird die dortige Konfiguration neugeschrieben. Dabei werden eventuell bestehende dhcp Clients gelöscht. Also, nachdenken was man tut.

Nun läuft der Server und kann mit Webmin konfiguriert werden.

Alternative: Was muss ich tun, wenn ich mehr installieren will und...

...wenn ich mir einen DHCP Server auf Apples OSX installieren möchte. Ich selber habe das so auf meinem G4-PowerMac mit OS X 10.3.2 (Panther) gemacht, und es funktioniert hervorragend....

Vorraussetzung: DeveloperTools müssen installiert sein (sonst kann er make nicht ausführen)

1. Downloade dhcp-3.0pl1.tar.gz vom Internet Software Consortium:

 % curl -O ftp://ftp.isc.org/isc/dhcp/dhcp-3.0-history/dhcp-3.0pl1.tar.gz

2. Unarchive die source:

 % tar zxvf dhcp-3.0pl1.tar.gz

3. Downloade den Patch um dhcpd-netboot klarzumachen von Ron Lineweaver:

 % curl -O http://software.harrisonburg.k12.va.us/linux/src/dhcp-3.0-macnb-0.4.patch

4. Patch ISC's DHCP (Gib den entsprechenden Pfad zum Patchen ein):

 % mv dhcp-3.0pl1 dhcp-3.0-new
 % patch -p1 < dhcp-3.0-macnb-0.4.patch

5. Configure, Build und installiere den modifizierten DHCPd:

 % cd dhcp-3.0-new
 % ./configure
 % make
 % sudo make install

6. Erstelle ein leeres dhcpd leases file

 % touch /var/db/dhcpd.leases

7. Füge DHCPSERVER=-YES- in die Datei "/etc/hostconfig" ein

8. Erstelle StartupItem-Folder:

 % mkdir /Library/StartupItems
 % mkdir /Library/StartupItems/DHCP
 % mkdir /Library/StartupItems/DHCP/Resources
 % mkdir /Library/StartupItems/DHCP/Resources/English.lproj

9. Erstelle die Datei "/Library/StartupItems/DHCP/DHCP" mit folgendem Inhalt:

 #!/bin/sh

 ##
 # DHCP
 ##

 . /etc/rc.common

 StartService ()
 {
 if [ "${DHCPSERVER:=-NO-}" = "-YES-" ]; then
 if ! pid=$(GetPID dhcpd); then
 ConsoleMessage "Starting DHCP services"
 /usr/sbin/dhcpd en0
 fi
 fi
 }

 StopService ()
 {
 if pid=$(GetPID dhcpd); then
 ConsoleMessage "Stopping DHCP services"
 kill -TERM "${pid}"
 else
 echo "dhcpd is not running."
 fi
 }

 RestartService ()
 {
 if pid=$(GetPID dhcpd); then
 ConsoleMessage "Restarting DHCP services"
 kill -HUP "${pid}"
 else
 StartService
 fi
 }

 RunService "$1"

10. Erstelle die Datei "/Library/~StartupItems/DHCP/StartupParameters.plist":

 {
 Description = "DHCP server";
 Provides = ("DHCP");
 Requires = ("Network");
 Uses = ("Disks", "Network Time");
 OrderPreference = "None";
 }

11. Erstelle die Datei "/Library/~StartupItems/DHCP/Resources/English.lproj/Localizable.strings":

 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE plist SYSTEM "file://localhost/System/Library/DTDs/PropertyList.dtd">
 <plist version="0.9">
 <dict>
 <key>Starting DHCP services</key>
 <string>Starting DHCP services</string>
 <key>Stopping DHCP services</key>
 <string>Stopping DHCP services</string>
 <key>Restarting DHCP services</key>
 <string>Restarting DHCP services</string>
 </dict>
 </plist>

12. Setze "Rechte" und "Besitzer" neu:

 % chown -R root.wheel /Library/StartupItems/DHCP
 % chmod -R 755 /Library/~StartupItems/DHCP
 % chmod 644 /Library/~StartupItems/DHCP/StartupParameters.plist

13. Erstelle die Datei "/etc/dhcpd.conf" file (see man dhcpd.conf for details): (Mein Netzwerk heisst Apfelmus, der DHCPServer hat bei mir die IP 192.168.0.1, und genau für dieses Netz fühlt er sich verantwortlich)

 # option definitions common to all supported networks...
 option domain-name "apfelmus.internnetz.de";
 option domain-name-servers 192.168.0.1;

 default-lease-time 600;
 max-lease-time 7200;

 # If this DHCP server is the official DHCP server for the local
 # network, the authoritative directive should be uncommented.
 #authoritative;

 # Use this to send dhcp log messages to a different log file (you also
 # have to hack syslog.conf to complete the redirection).
 log-facility local7;

 subnet 192.168.0.0 netmask 255.255.255.0 {
 option routers 192.168.0.1;
 option broadcast-address 192.168.0.255;

 range 192.168.0.100 192.168.0.250;

 include "/var/root/named/generated/apfelmus/dhcp";
 }

Die "include" Zeile lasst weg, wenn ihr keinen named laufen habt...

14. Zu guter letzt: Starte den DHCP-Server:

 % sudo SystemStarter start DHCP

Anmerkung

Jeder herkömmliche DSL-Router erfüllt den Zweck eines DHCP-Servers genauso gut, wenn nicht besser. Weiterhin enthält ein Router eine komfortabele NAT-Firewall und ein WAN-Interface, womit man alle an ihm angeschlossenen Rechner mit einem Internet-Anschluß versorgen kann. Alle im Netzwerk befindlichen Rechner können mit höchster Performance gegenseitig aufeinander zugreifen. Der Netzwerk-Speed ist nicht von der Rechenleistung eines Computers abhängig wie es oben der Fall wäre.

Kategorien
Internet, Tutorials, MacGyver, Netzwerk, Server

Zuletzt geändert am 14.05.2006 15:28 Uhr ( Besuche)

© 2004 – 2024 ApfelWiki

Impressum - Datenschutz

cb