Verwenden von Server 5.0.15 zum Teilen des Internets OHNE Internetfreigabe

Ich verwende einen MacMini Mitte 2010 als Server. OS X 10.11.3 und Server 5.0.15. Ich verbinde mich über das eingebaute Ethernet ( Ethernet ) mit dem Internet und habe einen USB-zu-GigaBit-Ethernet-Adapter ( Ethernet 2 ), der zu einem drahtlosen AP ( WAP ) geht .

Ich habe DHCP- und DNS-Dienste konfiguriert und aktiviert. Wenn ich ICS im Sharing Control Panel einschalte, ignoriert es den DHCP-Dienst des Servers, erlaubt mir jedoch, von meinen Clients aus eine Verbindung zum Internet herzustellen. Dies unterbricht auch das lokale DNS, es sei denn, ich beginne, IPs und dergleichen zu ändern. Wenn ich es ausschalte, bekomme ich die Kontrolle über den DHCP-Server, aber es wird keine Verbindung zum Internet hergestellt.

Wie kann ich BEIDE verwenden? Oder konfigurieren Sie zumindest die Einstellungen auf dem Server richtig, um die Ethernet- und Ethernet 2-Adapter zu "überbrücken", um meinen Clients den Internetzugang zu ermöglichen?

Ich suche irgendwo nach einer NAT-Funktion, die NICHT die gemeinsame Nutzung der Internetverbindung in der Systemsteuerung für die gemeinsame Nutzung ist.

Eingebaute Ethernet-Konfiguration:

  • IP: DHCP vom Kabelmodem
  • Subnetzmaske: 255.255.255.0 – DHCP vom Kabelmodem
  • DNS: 127.0.0.1, um den eigenen DNS-Dienst des Servers zu verwenden
  • Suchdomäne: Mein FQDN des Servers.
  • Router: DHCP vom Kabelmodem

Konfiguration des USB-zu-GigaBit-Adapters:

  • IP: 192.168.3.1
  • Subnetzmaske: 255.255.255.0
  • DNS: 127.0.0.1
  • Suchdomäne: Mein FQDN des Servers.
  • Router: Von DHCP erhaltene Adresse für das eingebaute Ethernet

DHCP:

  • Name: Heimat
  • IP-Pool: 192.168.3.2 - 192.168.3.253
  • Miete: 1 Stunde
  • Schnittstelle: USB-zu-GigaBit-Adapter
  • Router: 192.168.3.1 – Muss sich im selben Netzwerk wie der IP-Pool und die Schnittstelle befinden.
  • Hinweis: 16+ IP-Reservierungen für Geräte im Haus.

WAP:

  • IP: 192.168.3.254

DNS:

  • Berechtigungen: Alle Netzwerke
  • Clientsuche: Alle Clients
  • Weiterleitungsserver: 8.8.8.8, 8.8.4.4

Ich bin mir nicht sicher, welche anderen Informationen ich hier eingeben soll, es ist spät und ich bin müde ...

Stellen Sie mir einige Fragen und lassen Sie mich wissen, wenn Sie einen Einblick in die neue 5.0.15 server.app haben

Zusammenfassend möchten Sie Ihren Mac als Router/Gateway verwenden und den Server DHCP und DNS für die LAN-Seite des Routers steuern lassen? Wenn Sie die Internetfreigabe nicht aus dem Bereich „Freigabe“ der Systemeinstellungen verwenden, müssen Sie sich mit pfctl vertraut machen.
Mögliches Duplikat von How can I setup my mac (OS X Yosemite) as an internet gateway . Wenn Sie weitere Hilfe benötigen, kann ich meine Antwort dort an El Capitan anpassen und einige Dinge automatisieren.
Danke euch beiden. medbot wies mich in die richtige Richtung und gab mir gute Lektüre zu pfctl und pf im Allgemeinen unter OSX.

Antworten (1)

Die neuesten Versionen von OS X Server bieten keine Tools zum Aktivieren von NAT/Routing in OS X.

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:

Im Folgenden gehe ich von en0 aus: die mit dem Kabelmodem verbundene Schnittstelle und en1: die mit dem LAN verbundene Schnittstelle. DHCP und DNS sind im internen LAN richtig eingerichtet.

  1. Erstellen Sie eine pf-NAT-Regel:

    Erstellen Sie eine Datei namens nat-rules in /private/etc/ mit folgendem Inhalt

    nat on en0 from en1 to any -> (en0)
    
  2. 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/ 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
    
  3. 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/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 obigen Zeilen.

  4. Eigentums- und Dateimodi ändern:

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

    sudo launchctl load /Library/LaunchDaemons/org.user.natpf.plist
    
  6. Nachdem Sie alles getestet haben, können Sie den folgenden Teil in der plist löschen:

        <key>StandardErrorPath</key>
        <string>/tmp/org.user.natpf.stderr</string>
        <key>StandardOutPath</key>
        <string>/tmp/org.user.natpf.stdout</string>
    

    org.user.natpf.stderr liefert Fehlermeldungen zum Debuggen Ihrer plist.

  7. Auf meinem lokalen Router musste ich eine statische Route hinzufügen:

    192.168.3.0/24 (das interne Netzwerk) -> 192.168.0.2 (Mac mini IP-Adresse der externen Schnittstelle, die mit dem Router verbunden ist)

    Dieser letzte Schritt gilt möglicherweise nicht für Ihre Netzwerkumgebung!

Das hat perfekt funktioniert!! Sehr elegant und gut geschrieben, danke! Ich habe die erforderlichen Bereiche an meine Umgebung angepasst, aber genau das habe ich gesucht.
@Takagami Gut zu hören! ;-) Wenn Sie pf zusätzlich als OS X-Firewall verwenden, müssen Sie möglicherweise einige pf-Anker hinzufügen/ändern. Schritt 7 ist für Benutzer hinter einem (lokalen) Router. Ich bin davon ausgegangen, dass Sie keinen Zugriff auf den Router haben.
Nein. Kein Zugriff auf den primären Charter-Router für meine Region ... Leider. Aber ich weiß genug über Netzwerke, um zu wissen, dass ich keine statische Route brauche. Ich lerne immer noch etwas über das OSX/UNIX-Backend.