Ici est une solution intéressante pour partager l'internet avec un pont de niveau 2, mais sans utiliser le NAT. DHCP (non requis) /Préf. de partage Internet du tout :
Créer un shell script ethernet-bridge.sh dans /usr/local/sbin avec le contenu suivant :
#! /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
et le rendre exécutable :
chmod 755 /usr/local/sbin/ethernet-bridge.sh
Ensuite, mettez le XML suivant dans /Library/LaunchDaemons en tant que 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>
Modifiez ensuite le fichier et chargez-le :
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
Le plist activera le mode bridge lors du démarrage.
Vérifiez avec ifconfig -a
si le pont est visible.
Pour arrêter le mode bridge, il suffit d'entrer :
sudo /usr/local/sbin/ethernet-bridge.sh stop
Pour redémarrer le mode pont, il suffit d'entrer :
sudo /usr/local/sbin/ethernet-bridge.sh start
Maintenant, configurez les clients avec une IP/netmask/Gateway fixe (l'adresse IP interne de la machine de pontage)/DNS ou configurez correctement un serveur DHCP sur la machine de pontage.
En outre, vous devez configurer une route statique sur votre routeur vers le réseau auquel vous fournissez le partage Internet (dans votre exemple (en1)).
Jusqu'à présent les messages syslog ne fonctionnent pas - je vais essayer d'améliorer le script pertinemment.
Une approche similaire est décrite aquí mais je n'ai pas réussi à le faire fonctionner dans Yosemite.