1 votos

Servidor DHCP de Mac

A menudo tengo la necesidad de conectarme a los 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, la segunda, pierdo la conexión inalámbrica, pierdo la conectividad con los dispositivos.

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

¿Hay alguna manera de configurar un servidor DHCP en el puerto ethernet que funcione aunque no esté conectado a una red?

1voto

klanomath Puntos 19587

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

Para que la NAT funcione sin usar el Compartimiento de Internet hay que usar una regla pf y crear una lista para permitir el reenvío y la carga de la regla pf. Además tienes que configurar un servidor DNS/DHCP: dnsmasq .

Abajo asumo en0: la interfaz conectada a Internet o a un router y en1: la interfaz conectada a la LAN. El router tiene la IP 192.168.0.1 y la máscara de red 255.255.255.0.

Utilice ifconfig para conseguir los nombres de los dispositivos.

Prepara la puerta de entrada de Mac:

  • Configurar las dos interfaces en0 y en1 con IPs 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

  • Desactivar Protección de la integridad del sistema si El Capitán está instalado

  • Instalar las herramientas de la línea de comandos de Xcode/Xcode

  • Instalar, configurar y doctorar Brew

  • Instalar dnsmasq:

    brew install dnsmasq
  • Configurar 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

    abrir /usr/local/etc/dnsmasq.conf con un editor y modificar 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

    Puedes configurar mucho más - sólo revisa 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
  • Crear un archivo llamado reglas de la naturaleza en /privado/etc/ con el siguiente contenido

    nat on en0 from en1 to any -> (en0)
  • Crear una concha script llamada nat-pf.sh permitiendo el reenvío y la carga de 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
  • Crear una lista llamada org.user.natpf.plist con el siguiente contenido y guardarlo en /Library/LaunchDaemons/ para ejecutar el shell anterior script 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 vacía final, así que no copie simplemente el código o las líneas anteriores.

  • Modificar los modos de propiedad y 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, habilite el SIP de nuevo.

    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 router de Internet (si tiene uno)

  • Añade 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 todas las cosas con éxito deberías tener una LAN fiable con NAT, DHCP y DNS. Incluso puedes entrar ping raspberry con un resultado adecuado.

Si te encuentras con problemas, deja el compromiso.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X