Aquí es una solución interesante para compartir Internet con un puente de capa 2 pero sin usar NAT / DHCP (no es necesario) / Panel de preferencias para compartir Internet en absoluto:
Cree un script de shell ethernet-bridge.sh en / usr / local / sbin con el siguiente contenido:
#! /bin/sh
# ######################################
# coded by Nat!
# 2013 Mulle kybernetiK
# GPL
command=${1:-start}
shift
proxyarp=${1:-no}
shift
start()
{
sysctl -w net.inet.ip.forwarding=1
sysctl -w net.inet.ip.fw.enable=1
if [ "$proxyarp" != "no" ]
then
sysctl -w net.link.ether.inet.proxyall=1
fi
ifconfig bridge0 create
ifconfig bridge0 addm en0
ifconfig bridge0 addm en1
ifconfig bridge0 up
if [ $? -eq 0 ]
then
syslog -s "Ethernet Bridge is up"
else
syslog -s "Ethernet Bridge failure"
fi
}
stop()
{
ifconfig bridge0 destroy
sysctl -w net.inet.ip.forwarding=0
sysctl -w net.inet.ip.fw.enable=0
sysctl -w net.link.ether.inet.proxyall=0
syslog -s "Ethernet Bridge is down"
}
case "$command" in
start*) start
;;
stop*) stop
;;
esac
y hazlo ejecutable:
chmod 755 /usr/local/sbin/ethernet-bridge.sh
Luego ponga el siguiente XML en / Library / LaunchDaemons como com.ethernet-bridge.plist
<?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>Label</key>
<string>com.ethernet-bridge.plist</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/sbin/ethernet-bridge.sh</string>
</array>
<key>UserName</key>
<string>root</string>
<key>GroupName</key>
<string>wheel</string>
<key>RunAtLoad</key>
<true/>
<key>LaunchOnlyOnce</key>
<true/>
</dict>
</plist>
Luego modifica el archivo y cárgalo:
sudo chmod 644 /Library/LaunchDaemons/com.ethernet-bridge.plist
sudo chown root:wheel /Library/LaunchDaemons/com.ethernet-bridge.plist
sudo launchctl load /Library/LaunchDaemons/com.ethernet-bridge.plist
El plist habilitará el modo puente durante el arranque.
Verifique con ifconfig -a
si el puente está visible.
Para detener el modo puente, simplemente ingrese:
sudo /usr/local/sbin/ethernet-bridge.sh stop
Para reiniciar el modo de puente, simplemente ingrese:
sudo /usr/local/sbin/ethernet-bridge.sh start
Ahora configure los clientes con una IP / máscara de red / puerta de enlace (la dirección IP interna de la máquina briding) / DNS o configure correctamente un servidor DHCP en la máquina puente.
Además, tiene que configurar una ruta estática en su enrutador a la red a la que proporciona Conexión compartida a Internet (en su ejemplo (en1)).
Hasta ahora, los mensajes de syslog no funcionan. Intentaré mejorar el script de forma pertinente.
Se describe un enfoque similar aquí , pero no conseguí que funcionara en Yosemite