A voir également:
- Cas d'école : probleme de routage sur plusieurs interfaces
- Cas ram - Guide
- Classement école d'informatique post bac - Forum Études / Formation High-Tech
- Mon ecole a la maison apk - Télécharger - Études & Formations
- Logiciel gestion école privée gratuit - Télécharger - Études & Formations
- Minecraft launcher n’est actuellement pas disponible dans votre compte. assurez-vous que vous êtes connecté au microsoft store et réessayez. voici le code d’erreur, au cas où vous en auriez besoin : 0x803f8001 - Forum Minecraft
7 réponses
mamiemando
Messages postés
33030
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
28 mars 2024
7 736
Modifié par mamiemando le 22/11/2012 à 19:57
Modifié par mamiemando le 22/11/2012 à 19:57
Personnellement je n'ai pas bien compris l'énoncé, je pense que pour plus de clarté tu devrais au lieu de parler de LAN1, LAN2, WAN1 et WAN2 nous dire de quelles IPs et de quels préfixes il est question, car ça éviterait d'avoir à inférer ce que tu as voulu écrire dans /etc/network/interfaces.
Si j'ai bien compris tu as simplement trois routes :
- une route pour ton réseau locale (qui permet de router les deux passerelles)
- une route dont la gateway est la première passerelle et qui route les IPs du réseau attaché à cette passerelle
- et une autre route dont la gateway est la première passerelle et qui route les IPs du réseau attaché à cette passerelle
- on peut imaginer une 4e route (route par défaut) qui indique par quelle passerelle transiter pour atteindre toutes les autres IPs (typiquement Internet).
Tu noteras qu'on utilise seulement les routes (donc seulement la commande route), chose qu'on peut à terme automatiser via /etc/network/interfaces. Il n'y a pas besoin d'iptables car tu ne bidouilles pas les paquets (pour les rerouter ou les trafiquer à l'insu de leur plein gré typiquement).
Bonne chance
Si j'ai bien compris tu as simplement trois routes :
- une route pour ton réseau locale (qui permet de router les deux passerelles)
- une route dont la gateway est la première passerelle et qui route les IPs du réseau attaché à cette passerelle
- et une autre route dont la gateway est la première passerelle et qui route les IPs du réseau attaché à cette passerelle
- on peut imaginer une 4e route (route par défaut) qui indique par quelle passerelle transiter pour atteindre toutes les autres IPs (typiquement Internet).
Tu noteras qu'on utilise seulement les routes (donc seulement la commande route), chose qu'on peut à terme automatiser via /etc/network/interfaces. Il n'y a pas besoin d'iptables car tu ne bidouilles pas les paquets (pour les rerouter ou les trafiquer à l'insu de leur plein gré typiquement).
Bonne chance
loberty
Messages postés
6
Date d'inscription
jeudi 22 avril 2010
Statut
Membre
Dernière intervention
2 juillet 2013
23 nov. 2012 à 21:01
23 nov. 2012 à 21:01
Dans ce cas tu dois utiliser ip rules et ip route.
Faire un "ip rule show" pour voir les numéros de fichier des rules et chercher 2 numéros de fichiers libres.
Ensuite "ip rule add from 10.14.1.1/24 table 1 (où 1 est le numéro vu libre)
Ensuite "ip rule add from 10.14.2.1/24 table 2 (où 2 est le numéro vu libre)
Ensuite ip route add default via X dev eth0:1 table 1 (où 1 est le numéro vu libre) et où tu remplace X par l'ip de la passerelle
Ensuite ip route add default via X dev eth0:3 table 2 (où 2 est le numéro vu libre)
et où tu remplace X par l'ip de la passerelle
A+
Faire un "ip rule show" pour voir les numéros de fichier des rules et chercher 2 numéros de fichiers libres.
Ensuite "ip rule add from 10.14.1.1/24 table 1 (où 1 est le numéro vu libre)
Ensuite "ip rule add from 10.14.2.1/24 table 2 (où 2 est le numéro vu libre)
Ensuite ip route add default via X dev eth0:1 table 1 (où 1 est le numéro vu libre) et où tu remplace X par l'ip de la passerelle
Ensuite ip route add default via X dev eth0:3 table 2 (où 2 est le numéro vu libre)
et où tu remplace X par l'ip de la passerelle
A+
En fait pour résumer:
J'ai 2 ip sur un réseau qui sont en realité mes addr de sorties
192.168.0.240
192.168.0.241
gw : 192.168.0.1
de mes deux réseaux privés:
10.14.1.0/24
10.14.2.0/24
Le but est que :
10.14.1.0/24 sorte uniquement sur 192.168.0.240
et que
10.14.2.0/24 sorte uniquement sur 192.168.0.241
Sans que 10.14.1.0/24 voit 10.14.2.0/24 et vice versa
Le tout avec UNE seule interface physique
@Loberty : qu'est ce que 'voir les numéros de fichier des rules et chercher 2 numéros de fichiers libres. ' ?
Merci
J'ai 2 ip sur un réseau qui sont en realité mes addr de sorties
192.168.0.240
192.168.0.241
gw : 192.168.0.1
de mes deux réseaux privés:
10.14.1.0/24
10.14.2.0/24
Le but est que :
10.14.1.0/24 sorte uniquement sur 192.168.0.240
et que
10.14.2.0/24 sorte uniquement sur 192.168.0.241
Sans que 10.14.1.0/24 voit 10.14.2.0/24 et vice versa
Le tout avec UNE seule interface physique
@Loberty : qu'est ce que 'voir les numéros de fichier des rules et chercher 2 numéros de fichiers libres. ' ?
Merci
mamiemando
Messages postés
33030
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
28 mars 2024
7 736
25 nov. 2012 à 12:04
25 nov. 2012 à 12:04
Si j'ai bien compris tu as une machine M qui reçoit du trafic qui vient de deux réseaux (10.14.1/24 et 10.14.2/24) et qui en fonction du réseau de provenance, doit router le trafic le trafic de 10.4.1/24 (resp. 10.4.2/24) vers 192.168.0.240 (resp. 192.168.0.241). C'est bien ça ?
Si oui, tu auras effectivement besoin d'iptables car le routage dépend de la provenance, donc d'une considération au niveau des paquets. Comme la table de routage (cf route -n) ne dépend que de l'adresse destination, elle ne suffit pas à décrire un tel routage, d'où le besoin d'utiliser iptables.
À mon avis la solution la plus simple est de faire viser à 10.4.1/24 10.4.2/24 une gateway G bidon, mais qui les conduit à router leur trafic vers M. Ensuite la machine M rattrape les paquets destinés à G et sait qu'elle doit trafiquer la gateway grâce à iptables. En fonction du réseau de provenance, M si elle doit rediriger le trafic vers 192.168.0.240 ou 192.168.0.241. Pour cela, tu as besoin de deux règles iptables (une par réseau), qui ressembleront à ceci :
http://www.sveasoft.com/forum/general-questions/119437-how-to-change-gateway-thru-iptables
Bonne chance
Si oui, tu auras effectivement besoin d'iptables car le routage dépend de la provenance, donc d'une considération au niveau des paquets. Comme la table de routage (cf route -n) ne dépend que de l'adresse destination, elle ne suffit pas à décrire un tel routage, d'où le besoin d'utiliser iptables.
À mon avis la solution la plus simple est de faire viser à 10.4.1/24 10.4.2/24 une gateway G bidon, mais qui les conduit à router leur trafic vers M. Ensuite la machine M rattrape les paquets destinés à G et sait qu'elle doit trafiquer la gateway grâce à iptables. En fonction du réseau de provenance, M si elle doit rediriger le trafic vers 192.168.0.240 ou 192.168.0.241. Pour cela, tu as besoin de deux règles iptables (une par réseau), qui ressembleront à ceci :
http://www.sveasoft.com/forum/general-questions/119437-how-to-change-gateway-thru-iptables
Bonne chance
Hello MamieMando,
En fait tu as bien compris, (ormi que mes ip sont 10.14.1.0/24 et 10.14.2.0/24)
En fait si je fais des regles avec route, les interfaces 0:x ne sont pas affichées, et donc il y a qu'un seul réseau qui est routé.
Si je fais de l'iptables, (mais je n'ai pas essayé MANGLE), rien ne fonctionne.
Si je déclare un eth0 sans ip et que je route ou iptable les addr 0:x, rien ne fonctionne.
Donc, je pense que ton idee de faire une gateway G bidon, me semble bonne a essayer.
a. Comment je la déclare en par ex 10.14.3.1 et sur eth0 ou sur une autre eth0:x ?
b. Je devrais suivre la regle MANGLE de ton lien?
Merci de me confirmer
Et surtout merci pour ton aide
En fait tu as bien compris, (ormi que mes ip sont 10.14.1.0/24 et 10.14.2.0/24)
En fait si je fais des regles avec route, les interfaces 0:x ne sont pas affichées, et donc il y a qu'un seul réseau qui est routé.
Si je fais de l'iptables, (mais je n'ai pas essayé MANGLE), rien ne fonctionne.
Si je déclare un eth0 sans ip et que je route ou iptable les addr 0:x, rien ne fonctionne.
Donc, je pense que ton idee de faire une gateway G bidon, me semble bonne a essayer.
a. Comment je la déclare en par ex 10.14.3.1 et sur eth0 ou sur une autre eth0:x ?
b. Je devrais suivre la regle MANGLE de ton lien?
Merci de me confirmer
Et surtout merci pour ton aide
mamiemando
Messages postés
33030
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
28 mars 2024
7 736
26 nov. 2012 à 10:10
26 nov. 2012 à 10:10
(hormis que mes ips sont 10.14.1.0/24 et 10.14.2.0/24)
Ben non ça ce sont des préfixes, ie un bloc d'adresses IPs.
Si je fais de l'iptables, (mais je n'ai pas essayé MANGLE), rien ne fonctionne.
Pour moi c'est justement ce que tu dois utiliser. Personnellement j'ai dû utiliser cette règle iptable pour rerouter du trafic destiné à mon IP publique vers localhost et ça marchait très bien. Dans mon cas je n'avais pas besoin de considérer l'IP de provenance (mais l'IP cible et le port cible), donc j'avais une seule règle iptable.
a) En fait tu peux mettre n'importe quelle IP que tu es sûr de n'utiliser dans aucun d'autre contexte. Par exemple une IP locale bidon (par exemple 192.168.0.242) mais qui est routée vers la machine M qui dispatche le trafic entre les deux réseaux. M ne doit pas avoir cette IP attribuée, sinon le trafic sera arrivé a destination et M n'aurait pas de raison de le forwarder. C'est pas très élégant comme approche mais je pense que ça doit marcher.
b) Oui je pense
Bonne chance
Ben non ça ce sont des préfixes, ie un bloc d'adresses IPs.
Si je fais de l'iptables, (mais je n'ai pas essayé MANGLE), rien ne fonctionne.
Pour moi c'est justement ce que tu dois utiliser. Personnellement j'ai dû utiliser cette règle iptable pour rerouter du trafic destiné à mon IP publique vers localhost et ça marchait très bien. Dans mon cas je n'avais pas besoin de considérer l'IP de provenance (mais l'IP cible et le port cible), donc j'avais une seule règle iptable.
a) En fait tu peux mettre n'importe quelle IP que tu es sûr de n'utiliser dans aucun d'autre contexte. Par exemple une IP locale bidon (par exemple 192.168.0.242) mais qui est routée vers la machine M qui dispatche le trafic entre les deux réseaux. M ne doit pas avoir cette IP attribuée, sinon le trafic sera arrivé a destination et M n'aurait pas de raison de le forwarder. C'est pas très élégant comme approche mais je pense que ça doit marcher.
b) Oui je pense
Bonne chance
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Ok, j'ai saisi la logique.
Je vais essayé, mais je ne forwarde pas des ports, uniquement le traffic quel qu'il soit.
Je te tiens informé en fin de semaine.
Merci encore pour toutes tes explications.
Bien Cordialement ... et merci pour le 'Bonne Chance', j'en ai besoin ;-)
Je vais essayé, mais je ne forwarde pas des ports, uniquement le traffic quel qu'il soit.
Je te tiens informé en fin de semaine.
Merci encore pour toutes tes explications.
Bien Cordialement ... et merci pour le 'Bonne Chance', j'en ai besoin ;-)
cocoche95
Messages postés
1134
Date d'inscription
jeudi 29 juillet 2004
Statut
Contributeur
Dernière intervention
27 novembre 2019
542
Modifié par cocoche95 le 4/12/2012 à 19:40
Modifié par cocoche95 le 4/12/2012 à 19:40
Hello,
Alors tu as trouvé ?
Bon aller, je me lance. Tout d'abord tu as deux réseaux qui ont le même subnet (WAN1 et WAN2) -> c'est pas possible ou alors tu as pas 4 mais 3 réseaux.
Après tu utilises deux arguments conflictuels dans le fichier '/etc/network/interfaces' : "auto" et "allow-hotplug". En général, on met soit l'un soit l'autre mais pas les deux (je préfère "auto" car l'autre pose problème dans certains cas).
J'ai réfléchi à ta demande et je t'ai fait une conf exemple (en prenant le soin de modifier le subnet de WAN2). Tout d'abord, les DNS pas besoin de les mettre dans le fichier interfaces, ça va dans '/etc/resolv.conf'.
Fichier '/etc/resolv.conf' :
Il faut ajouter des tables de routage à linux pour faire du multi-gateways.
Fichier '/etc/iproute2/rt_tables' (installer iproute2 si non présent) :
Puis, on configure les interfaces - fichier '/etc/network/interfaces' (pas besoin d'activer eth0 si non utilisée) :
Enfin on fini par iptables - fichier '/etc/network/iptables' (appeler le fichier avec la commande 'iptables-restore < /etc/network/iptables') :
Pour expliquer rapidement, je créé deux tables de routages dédiées puis en montant mes interfaces, j'ajoute les routes à chaque table ainsi que les passerelles par défaut respectives.
On note bien, que mon linux a aussi besoin d'une route par défaut. Je lui ai attribué la passerelle de WAN1 via l'argument 'gateway' (choix totalement arbitraire).
Enfin, grâce à la table mangle d'iptables tous les packets entrants via les interfaces LAN sont marqués respectivement pour chaque table de routage disponible (ici, en fonction de l'interface d'arrivée). Si j'ai besoin du NAT, on dé-commente les lignes dans la partie NAT.
Je n'oublies pas d'activer l'IP forwarding : 'echo "1" > /proc/sys/net/ipv4/ip_forward' (si besoin permanent, éditer le fichier '/etc/syscfg.conf').
Voilà, j'espère ne rien avoir oublié et être clair ^^
A+
Alors tu as trouvé ?
Bon aller, je me lance. Tout d'abord tu as deux réseaux qui ont le même subnet (WAN1 et WAN2) -> c'est pas possible ou alors tu as pas 4 mais 3 réseaux.
Après tu utilises deux arguments conflictuels dans le fichier '/etc/network/interfaces' : "auto" et "allow-hotplug". En général, on met soit l'un soit l'autre mais pas les deux (je préfère "auto" car l'autre pose problème dans certains cas).
J'ai réfléchi à ta demande et je t'ai fait une conf exemple (en prenant le soin de modifier le subnet de WAN2). Tout d'abord, les DNS pas besoin de les mettre dans le fichier interfaces, ça va dans '/etc/resolv.conf'.
Fichier '/etc/resolv.conf' :
nameservers 8.8.8.8
Il faut ajouter des tables de routage à linux pour faire du multi-gateways.
Fichier '/etc/iproute2/rt_tables' (installer iproute2 si non présent) :
# # reserved values # 255 local 254 main 253 default 0 unspec # # local # 1 inr.ruhep 10 WAN1 20 WAN2
Puis, on configure les interfaces - fichier '/etc/network/interfaces' (pas besoin d'activer eth0 si non utilisée) :
# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # The primary network interface # auto eth0 # iface eth0 inet dhcp # Interface WAN1 auto eth0:1 iface eth0:1 inet static address 192.168.100.2 netmask 255.255.255.0 network 192.168.100.0 broadcast 10.0.255.255 gateway 192.168.100.1 up ip route add 192.168.100.0/24 dev eth0:1 src 192.168.100.2 table WAN1 up ip route add default via 192.168.100.1 table WAN1 up ip route add 192.168.100.0/24 dev eth0:1 src 192.168.100.2 up ip rule add from all fwmark 2 table WAN1 down ip rule del from all fwmark 2 table WAN1 down ip route del 192.168.100.0/24 dev eth0:1 src 192.168.100.2 down ip route del default via 192.168.100.1 table WAN1 down ip route del 192.168.100.0/24 dev eth0:1 src 192.168.100.2 table WAN1 # Interface LAN1 auto eth0:2 iface eth0:2 inet static address 10.14.1.1 netmask 255.255.255.0 network 10.14.1.0 broadcast 10.14.1.255 # Interface WAN2 auto eth0:3 iface eth0:3 inet static address 192.168.101.10 netmask 255.255.255.0 network 192.168.101.0 broadcast 192.168.101.255 up ip route add 192.168.101.0/24 dev eth0:3 src 192.168.101.10 table WAN2 up ip route add default via 192.168.101.1 table WAN2 up ip route add 192.168.101.0/24 dev eth0:3 src 192.168.101.10 up ip rule add from all fwmark 3 table WAN2 down ip rule del from all fwmark 3 table WAN2 down ip route del 192.168.101.0/24 dev eth0:3 src 192.168.101.10 down ip route del default via 192.168.101.1 table WAN2 down ip route del 192.168.101.0/24 dev eth0:3 src 192.168.101.10 table WAN2 # Interface LAN2 auto eth0:4 iface eth0:4 inet static address 10.14.2.1 netmask 255.255.255.0 network 10.14.2.0 broadcast 10.14.2.255
Enfin on fini par iptables - fichier '/etc/network/iptables' (appeler le fichier avec la commande 'iptables-restore < /etc/network/iptables') :
### # # eth0:1 WAN1 - table WAN1 - fwmark 2 # eth0:2 LAN1 # eth0:3 WAN2 - table WAN2 - fwmark 3 # eth0:4 LAN2 # ### *mangle :PREROUTING ACCEPT [0:0] :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] :POSTROUTING ACCEPT [0:0] -A PREROUTING -i eth0:2 -j MARK --set-mark 2 -A PREROUTING -i eth0:4 -j MARK --set-mark 3 COMMIT ### *nat :PREROUTING ACCEPT [0:0] :POSTROUTING ACCEPT [0:0] :OUTPUT ACCEPT [0:0] #-A POSTROUTING -o eth0:1 -j MASQUERADE #-A POSTROUTING -o eth0:3 -j MASQUERADE COMMIT ### *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] COMMIT ###
Pour expliquer rapidement, je créé deux tables de routages dédiées puis en montant mes interfaces, j'ajoute les routes à chaque table ainsi que les passerelles par défaut respectives.
On note bien, que mon linux a aussi besoin d'une route par défaut. Je lui ai attribué la passerelle de WAN1 via l'argument 'gateway' (choix totalement arbitraire).
Enfin, grâce à la table mangle d'iptables tous les packets entrants via les interfaces LAN sont marqués respectivement pour chaque table de routage disponible (ici, en fonction de l'interface d'arrivée). Si j'ai besoin du NAT, on dé-commente les lignes dans la partie NAT.
Je n'oublies pas d'activer l'IP forwarding : 'echo "1" > /proc/sys/net/ipv4/ip_forward' (si besoin permanent, éditer le fichier '/etc/syscfg.conf').
Voilà, j'espère ne rien avoir oublié et être clair ^^
A+