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.