J'ai installé Ubuntu 11.10 sur une machine remise à neuf. J'ai également remplacé une carte NIC défectueuse par une nouvelle carte NIC. Deux cartes NIC sont reconnues lors de l'installation. J'ai également installé squid en tant que serveur proxy. Squid fonctionne bien lorsque tous les postes de travail sont connectés au routeur. Toutefois ... .
Lorsque je connecte un NIC à mon routeur (connexion Internet en direct disponible), l'autre NIC à mon commutateur (sans aucun accès Internet disponible), je peux créer deux réseaux distincts, mais je peux Ne savez pas comment faire en sorte que les deux NIC cartes transfèrent des données entre elles, ainsi que sur les deux réseaux.
Qu'est-ce que je rate?
Le script décrit par @laurent est inutile, car il existe un moyen canonique. Tout ce que vous avez à faire est d’éditer /etc/sysctl.conf
et de ne pas commenter (supprimer #
au début de) cette ligne:
net.ipv4.ip_forward = 1
Ensuite, il sera déjà appliqué au démarrage.
Ubuntu a désactivé ip fowarding par défaut et vous devez l'activer pour router les paquets avec votre machine:
pour l'activer, tapez le terminal en tant que root (Sudo su
):
echo 1 > /proc/sys/net/ipv4/ip_forward
Obs: ne fonctionne pas avec Sudo
Et si vous souhaitez router Internet depuis cette machine, vous devrez peut-être également configurer NAT.
la 1ère commande echo 1 ...
ne fonctionne pas avec Sudo. Vous devez passer à root avec Sudo su
avant (car Sudo exécutera echo 1 en tant que root mais essaiera de rediriger vers le fichier en tant qu'utilisateur et cela ne fonctionnera pas). Quoi qu'il en soit, vous pouvez toujours vérifier s'il existe un 1 avec cat /proc/sys/net/ipv4/ip_forward
. Obs: Cela doit être fait à chaque démarrage pour que vous puissiez écrire un script et utiliser update-rc.d dessus.
La règle POSTROUTING semble OK si eth0 est votre NIC de connexion Internet.
Règles FORWARD que j'utilise pour les connexions établies et connexes:
-A FORWARD -p tcp -m state -d your_network_ip.0/255.255.255.0 --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -p udp -m state -d your_network_ip.0/255.255.255.0 --state RELATED,ESTABLISHED -j ACCEPT
#!/bin/sh
# turn ip_forward on/off
case "$1" in
'start')
echo 1 > /proc/sys/net/ipv4/ip_forward
;;
'stop')
echo 0 > /proc/sys/net/ipv4/ip_forward
;;
*)
echo "Usage: $0 { start | stop }"
;;
esac
exit 0
Vous enregistrez ce script dans /etc/init.d
avec le nom de votre choix (router
par exemple) et vous le rendez exécutable (Sudo chmod +x /etc/init.d/router
).
Pour le lancer à chaque redémarrage, vous devez établir des liens de démarrage avec update-rc.d:
Sudo update-rc.d router defaults
Obs: le message update-rc.d est OK, pas de problème. Vous devriez maintenant avoir toujours un 1 dans le fichier ip_forward.