Mac-DHCP-Server

Ich muss oft Geräte direkt über den Ethernet-Port meines MacBook verbinden.

  • Wenn ich mit einem drahtlosen Netzwerk verbunden bin, kann ich meine Verbindung mit Ethernet teilen. Beim zweiten verliere ich jedoch die drahtlose Verbindung, ich verliere die Verbindung zu den Geräten.

  • Ich kann sowohl auf dem MacBook als auch auf dem Gerät eine statische IP einrichten, aber das ist nicht sehr einfach, da ich noch eine erste Verbindung herstellen muss, um die statische IP einzurichten.

Gibt es eine Möglichkeit, einen DHCP-Server am Ethernet-Port einzurichten, der auch dann funktioniert, wenn ich nicht mit einem Netzwerk verbunden bin?

Ich habe diese Frage als unklar markiert. Es sieht aus wie drei Fragen in einer. Bitte geben Sie genau an, was Sie wollen und wie die Frage mit Ihrer Rasberry-Pi-Frage vom 23. Juli zusammenhängt!
Verwandte: Verwenden von Server 5.0.15 zum Teilen des Internets OHNE Internetfreigabe . Anstatt Apple OS X Server zu kaufen, richten Sie dnsmasq ein.
Das ist so verworren. Ein DHCP-Server funktioniert ohne Netzwerk - es ist nutzlos, aber es wird funktionieren. Ich verstehe nicht, wie der Verlust von WiFi bedeutet, die Verbindung zum Ethernet zu verlieren. Wenn Sie schließlich einen DHCP-Server auf einer Ihrer Schnittstellen einrichten, wie lösen Sie den unvermeidlichen Konflikt mit Ihrem vorhandenen DHCP-Server?
@Allan Es scheint wahr zu sein, dass der Verlust von en0 (das Teilen des Internets mit dem internen en1 über bridge100) die Verbindung zwischen Host1 und 2 über en1 abbricht. Danach wird kein DHCP bereitgestellt.
@klanomath Ich verstehe, was Sie sagen, aber die Schwierigkeit, die ich bei dieser Frage habe, besteht darin, dass sie mit kabelgebundenen Geräten beginnt und dann zu drahtlosen Geräten übergeht. Selbst wenn DHCP (Internet Sharing) deaktiviert ist, wie verlieren diese Geräte plötzlich ihre Lease? Das scheint nicht richtig zu sein. Schließlich wechselt seine Frage dann zum Einrichten eines DHCP-Servers ohne Verbindung (ist Internet-Sharing beteiligt oder nicht?)
Ich entfernte den drahtlosen Teil. Das war Off-Topic. Ich sehe nicht, wo der andere Themenschalter ist. Ich wollte einfach einen DHCP-Server, der funktioniert, ob ich eine Internetverbindung habe oder nicht.

Antworten (1)

Basierend auf meiner Antwort hier: Using Server 5.0.15 to share internet WITHOUT internet sharing biete ich eine Möglichkeit, das Internet mit PF und dnsmasq (dh ohne Apples OS X Server) zu teilen:

Damit NAT ohne Internetfreigabe funktioniert, müssen Sie eine pf-Regel verwenden und eine plist erstellen, um die Weiterleitung zu aktivieren und die pf-Regel zu laden. Zusätzlich müssen Sie einen DNS/DHCP-Server einrichten: dnsmasq .

Im Folgenden gehe ich von en0 aus: die mit dem Internet oder einem Router verbundene Schnittstelle und en1: die mit dem LAN verbundene Schnittstelle. Der Router hat die IP 192.168.0.1 und die Netzmaske 255.255.255.0.

Verwenden Sie ifconfig, um die Gerätenamen abzurufen.

Bereiten Sie das Mac-Gateway vor:

  • Richten Sie die beiden Schnittstellen en0 und en1 mit festen IPs und Netzmasken ein

    Beispiel:

    en0: IP: 192.168.0.2 Netzmaske: 255.255.255.0 Gateway: 192.168.0.1 DNS: 8.8.8.8 und 127.0.0.1 Suchdomänen: home.org
    en1: IP: 192.168.1.1 Netzmaske: 255.255.255.0

  • Deaktivieren Sie den Systemintegritätsschutz, wenn El Capitan installiert ist

  • Installieren Sie die Xcode-Befehlszeilentools/Xcode
  • Installieren, einrichten und brauen
  • dnsmasq installieren:

    brew install dnsmasq
    
  • Einrichten und Konfigurieren von dnsmasq

    cp /usr/local/opt/dnsmasq/dnsmasq.conf.example /usr/local/etc/dnsmasq.conf
    sudo mkdir -p /usr/local/var/lib/misc
    sudo touch /usr/local/var/lib/misc/dnsmasq.leases
    

    Öffnen Sie /usr/local/etc/dnsmasq.conf mit einem Editor und ändern Sie mindestens die folgenden Zeilen:

    ~ line 144
    # 3) Provides the domain part for "expand-hosts"
    domain=home.org
    
    ~ line 163
    # don't need to worry about this.
    dhcp-range=192.168.1.50,192.168.1.100,255.255.255.0,12h
    
    ~ line 243
    # Always give the host with Ethernet address 11:22:33:44:55:66
    # the name fred and IP address 192.168.0.60 and lease time 45 minutes
    dhcp-host=11:22:33:44:55:66,raspberry,192.168.1.70,12h
    **use the proper MAC of your raspberry here**
    
    ~ line 536
    # This defaults to a sane location, but if you want to change it, use
    # the line below.
    dhcp-leasefile=/usr/local/var/lib/misc/dnsmasq.leases
    

    Sie können viel mehr konfigurieren - überprüfen Sie einfach die Konfigurationsdatei und ihre Beschreibungen.

    sudo brew services start dnsmasq
    sudo chmod 644 /Library/LaunchDaemons/homebrew.mxcl.dnsmasq.plist
    sudo chown root:wheel /Library/LaunchDaemons/homebrew.mxcl.dnsmasq.plist
    
  • Erstellen Sie eine Datei namens nat-rules in /private/etc/ mit folgendem Inhalt

    nat on en0 from en1 to any -> (en0)
    
  • Erstellen Sie ein Shell-Skript namens nat-pf.sh , das die Weiterleitung und das Laden der pf-Regel ermöglicht. Ich habe es in /usr/local/bin gespeichert:

    #!/bin/sh
    
    sysctl -w net.inet.ip.forwarding=1
    sysctl -w net.inet.ip.fw.enable=1
    
    #disables pfctl
    pfctl -d
    
    sleep 1
    
    #flushes all pfctl rules
    pfctl -F all
    
    sleep 1
    
    #starts pfctl and loads the rules from the nat-rules file
    pfctl -f /private/etc/nat-rules -e
    
  • Erstellen Sie eine Plist namens org.user.natpf.plist mit folgendem Inhalt und speichern Sie sie in /Library/LaunchDaemons/, um das obige Shell-Skript beim Start auszuführen:

    <?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>Disabled</key>
        <false/>
        <key>KeepAlive</key>
        <dict>
            <key>SuccessfulExit</key>
            <false/>
        </dict>
        <key>Label</key>
        <string>org.user.natpf</string>
        <key>ProgramArguments</key>
        <array>
            <string>/usr/local/bin/nat-pf.sh</string>
        </array>
        <key>RunAtLoad</key>
        <true/>
        <key>StandardErrorPath</key>
        <string>/tmp/org.user.natpf.stderr</string>
        <key>StandardOutPath</key>
        <string>/tmp/org.user.natpf.stdout</string>
    </dict>
    </plist>
    

    Alle drei Dateien benötigen eine abschließende Leerzeile, kopieren Sie also nicht einfach den obigen Code/die Zeilen.

  • Eigentums- und Dateimodi ändern:

    sudo chown root:wheel /private/etc/nat-rules
    sudo chown root:wheel /usr/local/bin/nat-pf.sh
    sudo chmod 755 /usr/local/bin/nat-pf.sh
    sudo chown root:wheel /Library/LaunchDaemons/org.user.natpf.plist
    
  • Laden Sie den Start-Daemon:

    sudo launchctl load /Library/LaunchDaemons/org.user.natpf.plist
    
  • Starten Sie Ihren Gateway-Mac neu. Wenn alles funktioniert, aktivieren Sie SIP erneut.

    Die Datei /tmp/org.user.natpf.stderr enthält Fehlermeldungen. Sie können der Datei /Library/LaunchDaemons/homebrew.mxcl.dnsmasq.plist einen ähnlichen Schlüssel hinzufügen, um mögliche Fehlermeldungen zu erhalten:

        ...
        <key>StandardErrorPath</key>
        <string>/tmp/homebrew.mxcl.dnsmasq</string>
        <key>StandardOutPath</key>
        <string>/tmp/homebrew.mxcl.dnsmasq</string>
        ...
    

Bereiten Sie Ihren Internet-Router vor (falls vorhanden)

  • Fügen Sie eine statische Route hinzu: Netzwerk: 192.168.1.0 Netzmaske: 255.255.255.0 Gateway: 192.168.0.2

Bereiten Sie Ihre Himbeere vor

  • Möglicherweise müssen Sie es neu starten.

Nachdem Sie alles erfolgreich eingerichtet haben, sollten Sie ein zuverlässiges LAN mit NAT, DHCP und DNS haben. Sie können sogar ping raspberrymit einem richtigen Ergebnis teilnehmen.

Wenn Sie auf Probleme stoßen, hinterlassen Sie einen Kommentar.