Servidor DHCP de Mac

A menudo tengo la necesidad de conectarme a dispositivos directamente a través del puerto ethernet de mi MacBook.

  • Cuando estoy conectado a una red inalámbrica, puedo compartir mi conexión a ethernet. Sin embargo, el segundo, pierdo la conexión inalámbrica, pierdo la conectividad con los dispositivos.

  • Puedo configurar una IP estática tanto en la MacBook como en el dispositivo, pero esto no es muy fácil porque todavía tengo que hacer una conexión inicial para configurar la IP estática.

¿Hay alguna forma de configurar un servidor DHCP en el puerto ethernet que funcione incluso si no estoy conectado a una red?

Marqué esta pregunta como poco clara. Parecen tres preguntas en una. Especifique exactamente lo que desea y cómo se relaciona la pregunta con su pregunta de Rasberry Pi del 23 de julio.
Relacionado: Uso del servidor 5.0.15 para compartir Internet SIN compartir Internet . En lugar de comprar Apple OS X Server, configure dnsmasq.
Esto es tan complicado. Un servidor DHCP funciona sin una red; es inútil, pero funcionará. No veo cómo perder WiFi significa perder conectividad a Ethernet. Finalmente, si configura un servidor DHCP en cualquiera de sus interfaces, ¿cómo está resolviendo el conflicto inevitable con su servidor DHCP existente ?
@Allan Parece ser cierto que perder el en0 (compartir Internet con el en1 interno a través de bridge100) vuelca la conexión entre host1 y 2 a través de en1. No se proporciona DHCP después.
@klanomath Veo lo que dice, pero la dificultad que tengo con esta pregunta es que comienza con dispositivos con cable y luego se vuelve inalámbrico. Incluso si DHCP (compartir Internet) está desactivado, ¿cómo es que esos dispositivos pierden repentinamente su arrendamiento? Eso no parece correcto. Finalmente, su pregunta cambia a configurar un servidor DHCP sin conexión (¿está involucrado el uso compartido de Internet o no?)
Quité la parte inalámbrica. Eso estaba fuera de tema. No veo dónde está el otro cambio de tema. Simplemente quería un servidor DHCP que funcione tanto si tengo conexión a Internet como si no.

Respuestas (1)

Basado en mi respuesta aquí: Usando Server 5.0.15 para compartir Internet SIN compartir Internet, brindo la posibilidad de compartir Internet con PF y dnsmasq (es decir, sin el servidor OS X de Apple):

Para que NAT funcione sin usar Internet Sharing, debe usar una regla pf y crear una plist para habilitar el reenvío y cargar la regla pf. Además, debe configurar un servidor DNS/DHCP: dnsmasq .

A continuación, asumo en0: la interfaz conectada a Internet o un enrutador y en1: la interfaz conectada a la LAN. El enrutador tiene la IP 192.168.0.1 y la máscara de red 255.255.255.0.

Úselo ifconfigpara obtener los nombres de los dispositivos.

Prepare la puerta de enlace de Mac:

  • Configure las dos interfaces en0 y en1 con IP fijas y máscaras de red

    Ejemplo:

    en0: IP: 192.168.0.2 Máscara de red: 255.255.255.0 Puerta de enlace: 192.168.0.1 DNS: 8.8.8.8 y 127.0.0.1 Dominios de búsqueda: home.org
    en1: IP: 192.168.1.1 Máscara de red: 255.255.255.0

  • Deshabilite la protección de integridad del sistema si está instalado El Capitán

  • Instalar las herramientas de línea de comandos de Xcode/Xcode
  • Instalar, configurar y preparación médica
  • Instalar dnsmasq:

    brew install dnsmasq
    
  • Instalar y configurar 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
    

    abre /usr/local/etc/dnsmasq.conf con un editor y modifica al menos las siguientes líneas:

    ~ 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
    

    Puede configurar mucho más, simplemente verifique el archivo de configuración y sus descripciones.

    sudo brew services start dnsmasq
    sudo chmod 644 /Library/LaunchDaemons/homebrew.mxcl.dnsmasq.plist
    sudo chown root:wheel /Library/LaunchDaemons/homebrew.mxcl.dnsmasq.plist
    
  • Cree un archivo llamado nat-rules en /private/etc/ con el siguiente contenido

    nat on en0 from en1 to any -> (en0)
    
  • Cree un script de shell llamado nat-pf.sh que permita reenviar y cargar la regla pf. Lo guardé en /usr/local/bin:

    #!/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
    
  • Cree un plist llamado org.user.natpf.plist con el siguiente contenido y guárdelo en /Library/LaunchDaemons/ para ejecutar el script de shell anterior al inicio:

    <?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>
    

    Los tres archivos necesitan una línea final vacía, así que no copie simplemente el código o las líneas anteriores.

  • Modificar la propiedad y los modos de archivo:

    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
    
  • Cargue el demonio de lanzamiento:

    sudo launchctl load /Library/LaunchDaemons/org.user.natpf.plist
    
  • Reinicie su puerta de enlace Mac. Si todo funciona bien, vuelva a habilitar SIP.

    El archivo /tmp/org.user.natpf.stderr contiene mensajes de error. Puede agregar una clave similar al archivo /Library/LaunchDaemons/homebrew.mxcl.dnsmasq.plist para obtener posibles mensajes de error:

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

Prepare su enrutador de Internet (si tiene uno)

  • Agregue una ruta estática: Red: 192.168.1.0 Máscara de red: 255.255.255.0 Puerta de enlace: 192.168.0.2

Prepara tu Frambuesa

  • Puede que tengas que reiniciarlo.

Después de configurar todo con éxito, debe tener una LAN confiable con NAT, DHCP y DNS. Incluso puede ingresar ping raspberrycon un resultado adecuado.

Si tiene problemas, deje un comentario.