Zum Inhalt springen

DCHP Server

DHCP Server unter Mac OS X (mal schnell) aufsetzen / aktivieren

dhcp-logoHeute hatte ich den Fall, dass ich „ein Gerät“ auf seine Werkseinstellungen zurücksetzen musste und das gute Teil bootet danach per default als DHCP Client. Da ich das Gerät aber nicht ans Netzwerk bringen konnte und nur mein (altes) MacBook Pro 13″ zu Hand hatte, war es nicht einfach, dass ich auf das Gerät drauf kam.
Mithilfe eines IP-Scanners (Angry IP Scanner kann ich in diesem Zusammenhang auch mal empfehlen) fand ich schliesslich heraus, dass das Gerät folgende IP-Adresse hatte: 224.0.0.251
OSX weigert sich aber beharrlich, dass es eine statische IP in diesem Bereich annimmt (seltsamerweise bis 222.x.x.x geht es noch).

Also war meine nächste Idee, dass ich einen eigenen, lokalen DHCP Server aktiviere/intstalliere, damit mein Geräte darüber eine nachvollziehbare IP-Nummer erhält. Eigentlich habe ich mir gedacht, ich verwende einfach irgendeine Dritt-App, doch es geht auch mich Mac Bordmitteln.

Ich versuch mal in kurzen Worten zu beschreiben, wie man vorgehen muss.

  1. Damit man den DHCP Server von Mac OSX aktivieren kann, benötigt man eine plist-Datei, die standardmässig nicht vorhanden ist.
    Diese trägt den Dateinamen „bootpd.plist“ und muss in /etc abgelegt werden.
    Den Inhalt dieser Datei füge ich am Ende dieses Artikel noch ein. Von dort könnte ihr euch ihn dann kopieren.
    Ich bin so vorgegangen, dass ich mit dem Text-Editor meiner Wahl (Coda von Panik.com) eine neue Datei erstellt habe, dort besagten Konfig-Inhalt reibkopiert habe und diese Datei mit dem Namen „bootpd.plist“ auf meinen Desktop gespeichtert habe. (Hinweis: Ich konnte von CODA aus nicht direkt in /etc die Datei sichern – darum erst auf den Schreibtisch.)
  2. Vom Schreibtisch habe ich dann mittels dem Terminal und einen Cody-Befehl die Datei an den richtigen Ort kopiert. Muss aber mit dem „Sudo“-Zusatz erfolgen, da man sonst nichts an /etc verändern darf.
  3. Ist die Datei dann einmal kopiert, dann man mit folgenden Befehl den DHCP-Server starten:
sudo /bin/launchctl load -w /System/Library/LaunchDaemons/bootps.plist

Nachdem Aktivieren des DHCP-Servers vergibt dieser IP-Nummern im Bereich von 192.168.222.2 bis 192.168.222.255.
Man könnte dann zum Beispiel die 192.168.222.1 für die lokale Maschine (also in meinem Fall dem MacBook) vergeben.

Nach dem der Server lief, habe ich mein „Gerät“ an die Ethernet-Schnittstelle meines Mac’s angesteckt und im Anschluss mit dem Angry-IP-Scanner den DCHP-Bereich durchsuchen lassen (von 192.168.222.2 bis 192.168.222.255).
Wie erhofft wurden nur zwei Einträge gefunden, wobei die .1 mein Mac war und die .2 das Gerät, welches nun eine IP-Nummer zugewiesen bekam.
Anschließend konnte ich mit dem Web-Browser auf die 192.168.222.2 gehen, kam auf die Weboberfläche meines „Problemgerätes“ und konnte dort dann endlich wieder ein vernünftige IP-Nummer eintragen. Puh, welch ein Umstand.

Zu Vollständigkeit noch der Befehl, wie ihr euren lokalen DCHP-Server wieder ausschaltet:

sudo /bin/launchctl unload -w /System/Library/LaunchDaemons/bootps.plist

Und wie oben beschrieben, findet ihr jetzt hier im Anschluss noch den Inhalt, welchen ihr in eure bootpd.plist einfügen müsst:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>bootp_enabled</key>
    <false/>
    <key>detect_other_dhcp_server</key>
    <integer>1</integer>
    <key>dhcp_enabled</key>
    <array>
        <string>en0</string>
    </array>
    <key>reply_threshold_seconds</key>
    <integer>0</integer>
    <key>Subnets</key>
    <array>
        <dict>
            <key>allocate</key>
            <true/>
            <key>lease_max</key>
            <integer>86400</integer>
            <key>lease_min</key>
            <integer>86400</integer>
            <key>name</key>
            <string>192.168.222</string>
            <key>net_address</key>
            <string>192.168.222.0</string>
            <key>net_mask</key>
            <string>255.255.255.0</string>
            <key>net_range</key>
            <array>
                <string>192.168.222.2</string>
                <string>192.168.222.254</string>
            </array>
        </dict>
    </array>
</dict>
</plist>

Noch ein Hinweis:
Wie dies alles geht, hab ich auf folgender URL gefunden: