Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1320 connectés 

  FORUM HardWare.fr
  Systèmes & Réseaux Pro
  Réseaux

  routage sous linux

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

routage sous linux

n°105995
xilebo
noone
Posté le 01-02-2013 à 11:47:48  profilanswer
 

Bonjour,
 
Je souhaite router le trafic d'un réseau local1 vers un autre réseau local2 afin de pouvoir accéder à internet.
 
 
le réseau local 1 est un réseau de classe privée B en 172.17.X.X , tout est configuré en statique ( pas de serveur DHCP.
 
Le réseau local 2 est un réseau de classe privée A en 10.X.X.X , la configuration est en DHCP. La passerelle qui m'est attribuée sur ce réseau me permet d'aller sur internet.
 
Je branche une machine A ( un serveur sous ubuntu avec 2 cartes réseaux ) sur ces 2 réseaux :
   - eth0 est configuré en statique et est branché sur le réseau local 1 : 172.17.8.8 par exemple
   - eth1 est branché sur le réseau 2 et le DHCP m'attribue l'adresse réseau 10.4.30.55 , et une passerelle qui me permet d'aller sur internet 10.4.30.1 . Ceci est dynamique mais il est garanti que la même adresse IP et passerelle me soit toujours attribuées.
 
 
Maintenant, j'aimerais savoir s'il est possible à une machine B du réseau local 1  de pouvoir accéder aux machines du réseau local  2 , et aussi éventuellement à internet.
 
Pour mes essais, j'ai fait la chose suivante :
 
sur la machine B , j'ai configuré une adresse IP statique ( par exemple 172.17.30.0 ) , et je lui ai configuré 172.17.8.8 comme adresse de passerelle.
 
sur la machine A , je suppose que je dois établir des règles afin de pouvoir router le trafic du réseau local 1 , vers le réseau local 2. Mais comment faire ?  D'après ce que j'ai lu, j'ai 2 pistes :
  - soit j'utilise la commande route pour changer la table de routage de ma machine A , pour lui dire de router tout le trafic du réseau local 1 vers le réseau local 2. Malheureusement, j'ai essayé quelques commandes, mais ca ne fonctionne pas.
 
Voici la table de routage par défaut :  

Code :
  1. default         10.4.30.1       0.0.0.0         UG    0      0        0 eth1
  2. 10.4.30.0       *               255.255.255.0   U     1      0        0 eth1
  3. link-local      *               255.255.0.0     U     1000   0        0 eth0
  4. 172.17.0.0      *               255.255.0.0     U     1      0        0 eth0


 
J'ai supposé naivement qu'il fallait que je mette une ligne du genre ( peut etre à tort )  :

Code :
  1. default  10.4.30.1 0.0.0.0 UG 0 0 0 eth0


 
mais je n'arrive pas à l'ajouter ( ca me met une erreur), je suppose que c'est parce qu'il ne faut pas faire comme ca.
 
 - l'autre solution, serait d'utiliser iptables , mais , je ne sais pas du tout comment l'utiliser.
 
 
J'aurais aimé savoir si ce que je souhaite faire est possible, et si c'est le cas , laquelle des 2 solutions je devrais utiliser ( si elles sont pertinentes bien sur ).
 
 
Merci d'avance  :jap:  
 
 
 
 

mood
Publicité
Posté le 01-02-2013 à 11:47:48  profilanswer
 

n°105998
Slayer_hc
Posté le 01-02-2013 à 12:29:25  profilanswer
 

Déjà, pense à activer le routage via sysctl.conf (/etc/sysctl.conf) : mettre "net.ipv4.ip_forward." à 1.
 
Ensuite, lorsque tu défini ta passerelle (ton PC A qui sert de routeur) sur tes postes clients, ils enverront automatiquement les paquets vers ton PC A.
 
sur ce dernier, il te suffit de mettre une route par défaut, étant donné que les deux réseaux sont directement connectés dessus, il n'a (normalement) pas besoin d'autres routes. Ce n'est nécessaire que pour définir le prochain saut lorsque le réseau souhaité n'est pas connu/relié directement au routeur.
 
Ensuite, tu entre la commande "ipatables -t nat -A POSTROUTING -o eth1 (ou la patte qui permet d'avoir l'accès à internet) -j MASQUERADE"
 
Normalement, ça devrait fonctionner :)

Message cité 1 fois
Message édité par Slayer_hc le 01-02-2013 à 12:32:03
n°106000
xilebo
noone
Posté le 01-02-2013 à 13:36:43  profilanswer
 

super, ça fonctionne merci :)
 
je vais détailler la commande que tu m'as donnée maintenant pour comprendre à quoi elle sert.
 
Pour info, je n'ai pas eu besoin de modifier la table de routage de ma machine qui sert de routeur.

n°106002
Slayer_hc
Posté le 01-02-2013 à 13:49:52  profilanswer
 

:jap:
 
Par contre, si tu tapes juste la commande comme ça, il faudra le refaire à chaque re-démarrage.
 
Perso, je la met dans /etc/init.d/rc.local. C'est pas très propre, mais ça me suffit pour ça.
 
Ensuite, si tu veux faire du routage plus avancé, il faudra gérer pour lancer les scripts que tu créeras sur iptables au démarrage :)
 
Pour les détails, si j'ai bon :
 
"ipatables -t nat (pour dire qu'on utilise la table NAT) -A POSTROUTING (pour appliquer la règle sur les paquets sortant) -o eth1 (via l'@ ethx par laquelle les paquets sortent) -j MASQUERADE (remplace l'@ ip privé par l'@ip publique en sortie)"

n°106007
Ruliane
Posté le 01-02-2013 à 15:16:19  profilanswer
 

Dommage de faire du NAT entre deux réseaux privés, non ?


---------------
Un proverbe chinois dit que lorsqu'on a rien à dire d'intéressant, on cite généralement un proverbe chinois.
n°106008
xilebo
noone
Posté le 01-02-2013 à 15:20:56  profilanswer
 

Pourquoi ?

n°106014
Misssardon​ik
prévisible a posteriori
Posté le 01-02-2013 à 18:15:43  profilanswer
 

parce que ce n'est pas utile et que ça complique le réseau pour rien (en plus de consommer des ressources sur la machine qui fait le NAT).


---------------
Que va-t-il se passer cette gelgamar ? vous le découvrirez janamont à 20h
n°106017
Je@nb
Modérateur
Kindly give dime
Posté le 01-02-2013 à 18:24:09  profilanswer
 

+1 c'est dégueu

n°106018
xilebo
noone
Posté le 01-02-2013 à 18:38:42  profilanswer
 

Y a-t-il une autre solution alors ? Car le but est bien de pouvoir interconnecter 2 réseaux distincts avec une passerelle , et pour que les machines de l'un puissent éventuellement accéder à internet à partir de l'autre. Le cas que j'ai décrit est un bon exemple de ce que je peux rencontrer.
 
la passerelle est obligatoire car d'une part les 2 réseaux sont 2 entités distinctes ( 2 installateurs différents ) bien qu'ils soient situés physiquement au même endroit, donc il est important qu'on puisse filtrer pour éviter de se polluer mutuellement : sur le réseau qui me concerne, il y a des broadcasts et des multicasts qui se baladent sur le réseau. L'interconnexion est nécessaire pour accéder à certaines machines de l'autre réseau d'une part, et aussi à internet ( via une seconde passerelle ) d'autre part.

n°106019
Je@nb
Modérateur
Kindly give dime
Posté le 01-02-2013 à 18:54:03  profilanswer
 

Oui biensur, mais pas besoin de faire du NAT

mood
Publicité
Posté le 01-02-2013 à 18:54:03  profilanswer
 

n°106021
xilebo
noone
Posté le 01-02-2013 à 19:16:51  profilanswer
 

je vois pas d'autre solution plus simple que le NAT. Il faut forcément un mécanisme pour traduire une adresse privée en adresse publique , donc une table pour stocker les correspondances. Après on peut utiliser un proxy, mais à mon avis, c'est pire en terme de performances.
 
Quelles autres solutions existent sinon car je ne suis pas un expert réseau.
 
J'ai oublié de préciser que la passerelle ne peut pas être un équipement dédié, et que le mécanisme sera forcément fait par un linux ( qui ne fera pas que ça par ailleurs ).

n°106022
Je@nb
Modérateur
Kindly give dime
Posté le 01-02-2013 à 19:32:44  profilanswer
 

Le nat tu le fais en sortie sur internet. Pas entre 2 réseaux locaux privés ...

n°106037
Ruliane
Posté le 02-02-2013 à 12:46:37  profilanswer
 

Au lieu de faire du NAT :
Tu active l'IP forward.
Sur ton routeur tu ajoutes la route par défaut vers ta passerelle
Sur ta passerelle tu ajoutes la route retour vers ton réseau en 172.17.0.0.
 
Note que tu peux aussi ajouter la route retour sur chacun des ordinateurs, mais c'est pas tip-top.


---------------
Un proverbe chinois dit que lorsqu'on a rien à dire d'intéressant, on cite généralement un proverbe chinois.
n°106053
Slayer_hc
Posté le 03-02-2013 à 16:12:05  profilanswer
 

Anéfé... :jap:
 
Moi qui pensais être utile, pour une fois :o


Message édité par Slayer_hc le 03-02-2013 à 16:12:48
n°106076
xilebo
noone
Posté le 04-02-2013 à 11:38:28  profilanswer
 

Ruliane a écrit :

Au lieu de faire du NAT :
Tu active l'IP forward.
Sur ton routeur tu ajoutes la route par défaut vers ta passerelle
Sur ta passerelle tu ajoutes la route retour vers ton réseau en 172.17.0.0.
 
Note que tu peux aussi ajouter la route retour sur chacun des ordinateurs, mais c'est pas tip-top.


 
C'est aussi pour cela que j'ai posé la question sur le forum, je suppose qu'il y a plusieurs solutions. Seulement, la solution de modifier la table de routage, je ne vois pas bien comment la faire.
 
Voici la table de routage actuelle de ma machine dont je veux me servir pour en faire une passerelle.
 

Code :
  1. default         10.4.30.1       0.0.0.0         UG    0      0        0 eth1
  2. 10.4.30.0       *               255.255.255.0   U     1      0        0 eth1
  3. link-local      *               255.255.0.0     U     1000   0        0 eth0
  4. 172.17.0.0      *               255.255.0.0     U     1      0        0 eth0


 
Je ne l'ai pas modifiée.  
 
eth0 est en statique et pointe sur mon réseau privé
eth1 est en DHCP avec une passerelle me permettant d'accéder sur internet.
 
Maintenant, je n'arrive pas à appliquer ce que tu viens de me décrire :
 

Citation :


Tu active l'IP forward.


 
Ok. Ca c'est fait.
 

Citation :


Sur ton routeur tu ajoutes la route par défaut vers ta passerelle


 
routeur : il s'agit bien de ma machine ? ( je vois le mot routeur et le mot passerelle , pour moi c'est la même chose, il s'agit de routage au niveau 3 ).
passerelle : il s'agit de la passerelle qui me permet d'aller sur internet ? Celle en 10.4.30.1 ?
 
Si c'est le cas, dans la table de routage ci-dessus, on voit bien une route par défaut de eth1 vers la passerelle ( première ligne ). Faut il que j'ajoute une seconde ligne de eth0 vers cette même passerelle ? Si c'est le cas, ca ne marche pas, route me retourne une erreur.
 
 
edit : j'ai tenté de faire ca :
 

Code :
  1. route add default gw 10.4.30.1 dev eth0


 
et j'ai ce retour d'erreur : SIOCADDRT : No such process.
 
Je me doute que c'est faux, car ce n'est pas ce qu'il faudrait faire. En effet, il faut indiquer à la table de routage de passer tout le trafic venant de eth0 vers eth1 mais je n'arrive pas à l'exprimer.
 

Citation :


Sur ta passerelle tu ajoutes la route retour vers ton réseau en 172.17.0.0.


 
Je n'ai pas compris cette phrase, je ne sais pas comment faire ça :(
 
Je précise que je ne peux pas modifier la passerelle "10.4.30.1" car je n'ai pas les autorisations pour le faire ( dans mon exemple de test, il s'agit du réseau de l'entreprise dans laquelle je travaille, mais l'application finale sera également sur une passerelle que je ne peux pas modifier ).

Message cité 1 fois
Message édité par xilebo le 04-02-2013 à 11:58:31
n°106085
Ruliane
Posté le 04-02-2013 à 13:51:59  profilanswer
 

xilebo a écrit :


Citation :


Sur ta passerelle tu ajoutes la route retour vers ton réseau en 172.17.0.0.


 
Je n'ai pas compris cette phrase, je ne sais pas comment faire ça :(
 
Je précise que je ne peux pas modifier la passerelle "10.4.30.1" car je n'ai pas les autorisations pour le faire ( dans mon exemple de test, il s'agit du réseau de l'entreprise dans laquelle je travaille, mais l'application finale sera également sur une passerelle que je ne peux pas modifier ).


Ah zut, c'est pourtant bien ce qu'il faudrait faire. (Option 1)
Option 2 : Si tu as la main sur le serveur DHCP, peut-être peut-il fournir aux ordinateurs du réseau 10.4.30.0/24 la route vers le réseau 172.17.0.0/16 (c'est l'option 121).
Option 3 : Il te faudra configurer tous ces ordinateurs à la main pour ajouter la route vers le 172.17.0.0/16... pas très pratique !
Option 4 : Tu peux faire du NAT sur ton routeur 172.17.8.8. Note que si tu disposes d'assez d'adresses IP, il est recommandé de faire du "vrai" NAT et non du PAT. C'est-à-dire que ton routeur disposera d'un pool d'adresses IP en 10.4.30.x et en associera une à chaque adresse en 172.17.x.x.


---------------
Un proverbe chinois dit que lorsqu'on a rien à dire d'intéressant, on cite généralement un proverbe chinois.
n°106088
xilebo
noone
Posté le 04-02-2013 à 14:27:30  profilanswer
 

Bon, alors j'ai fait quelques tests et voici ce que j'ai réussi à faire.
 
J'ai ajouté 2 nouvelles routes sur mon routeur :
 

Code :
  1. route add -net 10.4.30.0 netmask 255.255.255.0 gw 10.4.30.55
  2. route add -net 172.17.0.0 netmask 255.255.0.0 gw 172.17.8.8


 
Sachant que 172.17.8.8 est l'adresse IP de eth0 et 10.4.30.55 l'adresse IP de eth1 ( attribuée en DHCP ).
 
J'ai donc une nouvelle table de routage sur mon routeur qui est la suivante :
 

Code :
  1. Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
  2. 0.0.0.0         10.4.30.1       0.0.0.0         UG    0      0        0 eth1
  3. 10.4.30.0       10.4.30.55      255.255.255.0   UG    0      0        0 eth1
  4. 10.4.30.0       0.0.0.0         255.255.255.0   U     1      0        0 eth1
  5. 169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 eth0
  6. 172.17.0.0      172.17.8.8      255.255.0.0     UG    0      0        0 eth0
  7. 172.17.0.0      0.0.0.0         255.255.0.0     U     1      0        0 eth0


 
On remarque bien les 2 nouvelles routes, mais qui font doublon je trouve avec les lignes 3 et 6 ( qui étaient là avant ). J'arrive pas à les retirer et à les modifier mais peu importe.
 
En ayant fait ca, j'arrive maintenant à faire un ping entre une machine du réseau A ( 172.17.0.0 ) et une machine du réseau B ( 10.4.30.0 ) à la condition que la machine du réseau A ait comme passerelle 172.17.8.8 ( jusque là , normal ), mais aussi ( et c'est là que je comprends pas trop ) que la machine B ait pour passerelle 10.4.30.55 pour le réseau 172.17.0.0/255.255.0.0.
 
 
Par contre, je ne peux toujours pas pinguer internet à partir du réseau A , malgré la route ( ligne 1 ) spécifiée sur le routeur. D'ailleurs, je peux pinguer la passerelle internet depuis le routeur ( ping 10.4.30.1 ), mais pas à partir d'une machine du réseau A.
 
Je suppose que je dois modifier des choses dans la passerelle 10.4.30.1 mais étant donné que je n'y ai pas accès, ca ne sera pas possible.

n°106089
xilebo
noone
Posté le 04-02-2013 à 14:29:55  profilanswer
 

Ruliane a écrit :


Ah zut, c'est pourtant bien ce qu'il faudrait faire. (Option 1)
Option 2 : Si tu as la main sur le serveur DHCP, peut-être peut-il fournir aux ordinateurs du réseau 10.4.30.0/24 la route vers le réseau 172.17.0.0/16 (c'est l'option 121).
Option 3 : Il te faudra configurer tous ces ordinateurs à la main pour ajouter la route vers le 172.17.0.0/16... pas très pratique !
Option 4 : Tu peux faire du NAT sur ton routeur 172.17.8.8. Note que si tu disposes d'assez d'adresses IP, il est recommandé de faire du "vrai" NAT et non du PAT. C'est-à-dire que ton routeur disposera d'un pool d'adresses IP en 10.4.30.x et en associera une à chaque adresse en 172.17.x.x.


 
Option 2 : je n'ai pas la main sur le serveur DHCP, mais j'ai ajouté la route à la main, et cela fonctionne ( J'ai fait Option 3 en fait ).
 
Ceci n'est pas grave, je suis juste en phase de tests , et je n'ai pas le droite de modifier le réseau avec lequel je teste, mais j'aurai plus de libertés sur la cible finale.
 
Option 4 : on m'a indiqué une commande via iptables pour faire du NAT avec mon routeur ( celui avec 2 cartes réseaux 172.17.8.8 et 10.4.30.55 ), et cela fonctionne. Par contre, on m'a aussi indiqué ( dans ce topic ) que ce n'est pas très propre et qu'il vaut mieux utiliser une autre solution, ce que je tente de faire :)

n°106091
Je@nb
Modérateur
Kindly give dime
Posté le 04-02-2013 à 14:39:04  profilanswer
 

xilebo a écrit :

Bon, alors j'ai fait quelques tests et voici ce que j'ai réussi à faire.
 
J'ai ajouté 2 nouvelles routes sur mon routeur :
 

Code :
  1. route add -net 10.4.30.0 netmask 255.255.255.0 gw 10.4.30.55
  2. route add -net 172.17.0.0 netmask 255.255.0.0 gw 172.17.8.8


 
Sachant que 172.17.8.8 est l'adresse IP de eth0 et 10.4.30.55 l'adresse IP de eth1 ( attribuée en DHCP ).
 
J'ai donc une nouvelle table de routage sur mon routeur qui est la suivante :
 

Code :
  1. Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
  2. 0.0.0.0         10.4.30.1       0.0.0.0         UG    0      0        0 eth1
  3. 10.4.30.0       10.4.30.55      255.255.255.0   UG    0      0        0 eth1
  4. 10.4.30.0       0.0.0.0         255.255.255.0   U     1      0        0 eth1
  5. 169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 eth0
  6. 172.17.0.0      172.17.8.8      255.255.0.0     UG    0      0        0 eth0
  7. 172.17.0.0      0.0.0.0         255.255.0.0     U     1      0        0 eth0


 
On remarque bien les 2 nouvelles routes, mais qui font doublon je trouve avec les lignes 3 et 6 ( qui étaient là avant ). J'arrive pas à les retirer et à les modifier mais peu importe.
 
En ayant fait ca, j'arrive maintenant à faire un ping entre une machine du réseau A ( 172.17.0.0 ) et une machine du réseau B ( 10.4.30.0 ) à la condition que la machine du réseau A ait comme passerelle 172.17.8.8 ( jusque là , normal ), mais aussi ( et c'est là que je comprends pas trop ) que la machine B ait pour passerelle 10.4.30.55 pour le réseau 172.17.0.0/255.255.0.0.
 
Par contre, je ne peux toujours pas pinguer internet à partir du réseau A , malgré la route ( ligne 1 ) spécifiée sur le routeur. D'ailleurs, je peux pinguer la passerelle internet depuis le routeur ( ping 10.4.30.1 ), mais pas à partir d'une machine du réseau A.
 
Je suppose que je dois modifier des choses dans la passerelle 10.4.30.1 mais étant donné que je n'y ai pas accès, ca ne sera pas possible.


 
1/ Réfléchis à ce que font tes 2 lignes et pourquoi elles sont inutiles et ne veulent rien dire
2/ Réfléchis sur chaque noeud (machine A, machine B, routeur) comment est traité le paquet aller et le paquet retour. Tu comprendras pourquoi :)
3/ Vu que ta passerelle ne peut pas connaitre ton réseau 172.17.0.0/16 sans que tu lui mettes une route, ouais ça va être compliqué et NAT va devenir obligatoire avec toutes les cradosseries qui vont avec. Tu peux vraiment pas rajouter une route ? Même en demandant ?

n°106092
xilebo
noone
Posté le 04-02-2013 à 14:51:20  profilanswer
 

Je@nb a écrit :


 
1/ Réfléchis à ce que font tes 2 lignes et pourquoi elles sont inutiles et ne veulent rien dire
2/ Réfléchis sur chaque noeud (machine A, machine B, routeur) comment est traité le paquet aller et le paquet retour. Tu comprendras pourquoi :)
3/ Vu que ta passerelle ne peut pas connaitre ton réseau 172.17.0.0/16 sans que tu lui mettes une route, ouais ça va être compliqué et NAT va devenir obligatoire avec toutes les cradosseries qui vont avec. Tu peux vraiment pas rajouter une route ? Même en demandant ?


 
 
1/ je les ai pas inventés, j'ai récupéré cette info sur un site internet, apparemment il ne faut pas fier à tout. Maintenant, je vois bien qu'elles ne servent à rien, d'autant plus que je viens de réessayer sans, et cela fonctionne , c'est qu'il fallait que je mette la route sur la machine distante également ( j'ai fait les 2 en même temps, ca a masqué l'inutilité de mes 2 lignes ).
 
2/ si A doit dialoguer avec B en passant par le routeur R , je vois bien pourquoi A a besoin de connaitre R pour faire transiter son paquet vers le réseau suivant. Une fois que B a recu le paquet de A , il l'a recu de la part de R, et non pas de A directement ? Ou alors c'est là que je me trompe, R est totalement transparent, et donc recevant un paquet directement de A, il doit répondre à A , et de ce fait , avoir une passerelle dans l'autre sens pour le retour ? Dans ce cas, j'ai compris. J'ai pas mis de wireshark pour le moment, car je suis en ligne de commande, je vais regarder tout ca de plus près.
 
3/ je vais voir avec l'admin réseau de la boite si je peux faire un essai en temporaire, juste pour comprendre les mécanismes mais pas sur que ca passe.

n°106097
Ruliane
Posté le 04-02-2013 à 15:01:49  profilanswer
 

xilebo a écrit :


Option 4 : on m'a indiqué une commande via iptables pour faire du NAT avec mon routeur ( celui avec 2 cartes réseaux 172.17.8.8 et 10.4.30.55 ), et cela fonctionne. Par contre, on m'a aussi indiqué ( dans ce topic ) que ce n'est pas très propre et qu'il vaut mieux utiliser une autre solution, ce que je tente de faire :)


Je sais bien, c'est moi qui te l'ai dit. :o  
Sauf erreur de ma part, la commande que slayer_hc t'as donnée fait du PAT. Il faudrait voir si le NAT (celui que j'appelais le "vrai" NAT) est faisable avec iptables.
 

xilebo a écrit :


2/ si A doit dialoguer avec B en passant par le routeur R , je vois bien pourquoi A a besoin de connaitre R pour faire transiter son paquet vers le réseau suivant. Une fois que B a recu le paquet de A , il l'a recu de la part de R, et non pas de A directement ? Ou alors c'est là que je me trompe, R est totalement transparent, et donc recevant un paquet directement de A, il doit répondre à A , et de ce fait , avoir une passerelle dans l'autre sens pour le retour ? Dans ce cas, j'ai compris. J'ai pas mis de wireshark pour le moment, car je suis en ligne de commande, je vais regarder tout ca de plus près.


Le routeur est "transparent" au niveau IP. B doit bien répondre à A et par conséquent, avoir une route vers le réseau de A. À défaut, il enverra le paquet à sa passerelle par défaut qui elle, ne sait pas quoi faire du paquet (sur laquelle tu n'as pas la main).
 

xilebo a écrit :


3/ je vais voir avec l'admin réseau de la boite si je peux faire un essai en temporaire, juste pour comprendre les mécanismes mais pas sur que ca passe.


Présenté comme ça, pas dit qu'il accepte. [:ddr555]  


---------------
Un proverbe chinois dit que lorsqu'on a rien à dire d'intéressant, on cite généralement un proverbe chinois.
n°106115
kisscoolz
Posté le 04-02-2013 à 16:03:38  profilanswer
 

C'est quoi la passerelle des machines dans le réseau 10.4.30 ? 10.4.30.1 ? ou 10.4.30.55 (est ce que tu recois toujours cette adresse par le dhcp ?) ?


---------------
http://lacabanedeladmin.trickip.net/
n°106123
Ruliane
Posté le 04-02-2013 à 16:43:52  profilanswer
 

10.4.30.1, si j'ai bien suivi. (et sinon ça marcherait depuis longtemps :P)


---------------
Un proverbe chinois dit que lorsqu'on a rien à dire d'intéressant, on cite généralement un proverbe chinois.
n°106124
xilebo
noone
Posté le 04-02-2013 à 16:47:41  profilanswer
 

la passerelle des machines du réseau 10.4.30 est 10.4.30.1. Ce réseau est un VLAN du réseau de l'entreprise, la passerelle 10.4.30.1 est donc fournie par le réseau de l'entreprise via le DHCP. Elle permet d'accéder à d'autres VLAN, ainsi qu'internet.
 
10.4.30.55 est une des machines du réseau 10.4.30 , attribuée également par le serveur DHCP de l'entreprise. On va considérer que je recois toujours la même adresse, ce n'est pas un problème ici car je ne suis qu'en test, si l'adresse change, je la changerai pour continuer les tests ( sinon le bail doit être assez élevé chez nous ).
 
je souhaite tester sur cette machine la capacité à faire du routage, car celle-ci est destinée à un environnement futur similaire ( dans le sens où elle est connectée à un autre réseau, ce dernier fournissant l'accès à internet ).
 
10.4.30.55 devient donc une passerelle intermédiaire pour aller sur internet, selon le schéma suivant :
 
 A ( 172.17.0.1 )  <-> passerelle 172.17.8.8(eth0)  / 10.4.30.55 (eth1) <-> passerelle 10.4.30.1 <-> ?? ( firewall proxy ,etc...)... <-> internet  
 
 
 
Pour situer un peu le problème, je rentre un peu plus dans le détail de la future architecture : il s'agit d'équiper un avion avec un réseau ( le notre ), sur lequel des produits dialoguent entre eux ( audio/video , controle-commande , etc ... ) , et parfois, la nécessité d'avoir un accès internet pour faire de la maintenance et/ou chercher du contenu online. Cet accès internet se fait via un autre réseau installé dans l'avion ( fourni par un autre équipementier ), c'est un réseau faisant de la VOIP essentiellement, mais il possède également une passerelle pour aller sur les réseaux SATCOM ( internet ).  
 
Mon objectif est donc de voir comment fournir un équipement permettant de router les demandes extérieures, et quel type de configuration cela amène.
 
Un cas assez simple pour ceux qui montent des réseaux d'entreprise, mais qui est moins commun dans mon domaine d'où les questions parfois un peu naïves. ( je suis en premier lieu programmeur, donc plus à l'aise avec les couches 4 et supérieures du réseau ).


Message édité par xilebo le 04-02-2013 à 16:48:42
n°106136
kisscoolz
Posté le 04-02-2013 à 18:45:15  profilanswer
 

Ruliane a écrit :

10.4.30.1, si j'ai bien suivi. (et sinon ça marcherait depuis longtemps :P)


 
:o
 
En relisant je me rends compte que j'ai pas besoin de poser ma seconde question, il a pas l'acces au routeur 10.4.30.1. A bon entendure, salut :o  
 
 
Plus sérieusement, je crois que tout a été un peu dit.  
 
Si tu peux pas toucher au routeur 10.4.30.1, bah next ...
Si tu peux pas modifier ton serveur dhcp pour qu'il ajoute des routes automatiquement, bah next ...
Si tu peux pas faire une modif sur ces machines de façon automatisée, bah next ...
Au final, si tu tiens vraiment a faire communiquer les machines du réseau 10.4.30 avec le réseau 172.17, il te reste a passé sur toutes ces machines pour ajouter la route à la main. :/
 
 
Au passage, xilebo, tu rentre pas un peu beaucoup dans le détails ? Dans ce domaine moins on en dit mieux on se porte ;)


---------------
http://lacabanedeladmin.trickip.net/
n°106137
xilebo
noone
Posté le 04-02-2013 à 18:54:28  profilanswer
 

kisscoolz a écrit :


 
:o
 
En relisant je me rends compte que j'ai pas besoin de poser ma seconde question, il a pas l'acces au routeur 10.4.30.1. A bon entendure, salut :o  
 
 
Plus sérieusement, je crois que tout a été un peu dit.  
 
Si tu peux pas toucher au routeur 10.4.30.1, bah next ...
Si tu peux pas modifier ton serveur dhcp pour qu'il ajoute des routes automatiquement, bah next ...
Si tu peux pas faire une modif sur ces machines de façon automatisée, bah next ...
Au final, si tu tiens vraiment a faire communiquer les machines du réseau 10.4.30 avec le réseau 172.17, il te reste a passé sur toutes ces machines pour ajouter la route à la main. :/
 
 
Au passage, xilebo, tu rentre pas un peu beaucoup dans le détails ? Dans ce domaine moins on en dit mieux on se porte ;)


 
Pour les détails, c'est juste pour situer le contexte. Je ne dévoile rien de critique, il ne s'agit que d'interconnecter 2 réseaux.
 
Pour le reste, d'en avoir discuté ici, j'ai compris pas mal de choses, c'est déjà une bonne avancée pour moi.

n°106167
xilebo
noone
Posté le 05-02-2013 à 09:53:40  profilanswer
 

Je viens d'effectuer des tests supplémentaires.  
 
Je me suis dit : si on est capable de faire du routage avec linux entre 2 cartes réseaux, je ne vois pas pourquoi on ne pourrait pas faire la même chose avec une seule carte réseau sur laquelle on attribue 2 adresses IP. Et effectivement, cela fonctionne.
 
Voici ce que j'ai fait :
 
Soit 3 machines A, B, C connectées sur un réseau ethernet
 
je souhaite dialoguer entre A et C via B.
 
A fait partie du réseau logique A , par exemple 172.17.0.0/16 , je lui donne 172.17.0.1 comme adresse.
C fait parie du réseau logique C , par exemple 172.21.0.0/16 , je lui donne 172.21.0.1 comme adresse.
 
Maintenant, pour communiquer entre les 2, voici ce que j'ai fait :
 
B n'a qu'une carte réseau, je lui ai configuré 2 adresses :
 
eth0:0 : 172.17.0.2
eth0:1 : 172.21.0.2
 
j'ai également activé l'ipforward sur cette machine.
 
J'ai ensuite ajouté une route sur A : route add -net 172.21.0.0 netmask 255.255.0.0 172.17.0.2
puis une route sur C : route add -net 172.17.0.0 netmask 255.255.0.0 172.21.0.2
 
Et maintenant A et C peuvent communiquer entre eux.
 
Je me doute que pour ceux qui font régulièrement du routage , cet exemple doit sembler basique et trivial, mais j'aurais voulu avoir confirmation , est ce bien la bonne façon de faire ? ( pourquoi une seule carte réseau, dans le cas où j'ai 2 réseaux physiques interconnectés non pas par une passerelle, mais directement de switch à switch )
 
Quelle différence cela fait entre du routage entre 2 cartes réseaux distinces, et du routage juste logiciel sur une même carte physique ? Peut-être au niveau sécurité , on peut faire moins de choses ?
 
 
J'ai maintenant quelques questions :
 
  - je suis dans un cas où il est probablement que je doive définir plusieurs routes avec plusieurs passerelles. Par exemple, un ipad avec 2 passerelles, une pour aller vers internet, et une autre pour aller avec un réseau privé différent. Sachant qu'on ne peut rentrer qu'une passerelle par défaut dans le paramétrage de l'adresse IP, il faudrait modifier la table de routage à la main avec la commande route comme on peut le faire sous linux ou sous windows. Sauf que sur iPad, ce n'est pas (simplement ) possible à faire. Est il donc possible d'attribuer les routes par DHCP en configurant correctement un serveur DHCP ( ex : DHCPD sous linux ) ?
 
 - concernant le routage, je sais qu'un routeur ( niveau 3 ) ne doit pas router les trames de broadcast ( par définition ) ni - probablement - les trames multicast. Est-il cependant possible d'autoriser certaines trames broadcast ou certaines trames multicast : ce ne sont pas des trames pour passer de la vidéo sur IP ( car ca inondait l'autre réseau, c'est le but d'une passerelle de bloquer ce genre de trame ) ,mais en ce qui concerne des trames maitrisées comme la découverte de device ( protocole bonjour , ou protocole upnp ), cela pourrait être utile de laisser passer un certain trafic. J'ai entendu parler de serveurs mandataires concernant le DHCP ( le DHCP fonctionnant par broadcast ), peut-on l'étendre à un peu ce qu'on veut ?
 
Merci d'avance  :jap:

n°106176
Ruliane
Posté le 05-02-2013 à 11:13:15  profilanswer
 

xilebo a écrit :


Je me doute que pour ceux qui font régulièrement du routage , cet exemple doit sembler basique et trivial, mais j'aurais voulu avoir confirmation , est ce bien la bonne façon de faire ? ( pourquoi une seule carte réseau, dans le cas où j'ai 2 réseaux physiques interconnectés non pas par une passerelle, mais directement de switch à switch )


Ça marche, tout comme ça marcherait en ayant deux cartes réseau reliées au même switch.
 

xilebo a écrit :


Quelle différence cela fait entre du routage entre 2 cartes réseaux distinces, et du routage juste logiciel sur une même carte physique ? Peut-être au niveau sécurité , on peut faire moins de choses ?


Il est rare d'avoir deux réseaux IP sur un même réseau ethernet. Mais si c'est le cas, tu peux tout à fait router entre tes deux sous-interfaces d'une seule et même carte réseau. Note quand même que ça peut avoir un impact sur les performances.
 
 

xilebo a écrit :


  - je suis dans un cas où il est probablement que je doive définir plusieurs routes avec plusieurs passerelles. Par exemple, un ipad avec 2 passerelles, une pour aller vers internet, et une autre pour aller avec un réseau privé différent. Sachant qu'on ne peut rentrer qu'une passerelle par défaut dans le paramétrage de l'adresse IP, il faudrait modifier la table de routage à la main avec la commande route comme on peut le faire sous linux ou sous windows. Sauf que sur iPad, ce n'est pas (simplement ) possible à faire. Est il donc possible d'attribuer les routes par DHCP en configurant correctement un serveur DHCP ( ex : DHCPD sous linux ) ?


Oui, c'est l'option 121 du DHCP qui permet de pousser des routes sur les clients DHCP. En revanche je ne garantis pas que celle-ci soit gérée sur tous les clients.
 

xilebo a écrit :


 - concernant le routage, je sais qu'un routeur ( niveau 3 ) ne doit pas router les trames de broadcast ( par définition ) ni - probablement - les trames multicast. Est-il cependant possible d'autoriser certaines trames broadcast ou certaines trames multicast : ce ne sont pas des trames pour passer de la vidéo sur IP ( car ca inondait l'autre réseau, c'est le but d'une passerelle de bloquer ce genre de trame ) ,mais en ce qui concerne des trames maitrisées comme la découverte de device ( protocole bonjour , ou protocole upnp ), cela pourrait être utile de laisser passer un certain trafic. J'ai entendu parler de serveurs mandataires concernant le DHCP ( le DHCP fonctionnant par broadcast ), peut-on l'étendre à un peu ce qu'on veut ?


En principe, rien n'interdit à un routeur de router les paquet broadcast. Tu peux très bien vouloir envoyer un paquet à 172.16.255.255, par exemple, et que ce paquet arrive à destination(s). Comme c'est rarement le cas, il existe des agents de transmission des paquets broadcast (IP helper chez Cisco). Ça doit sûrement exister sous Linux.
Quant au multicast, un routeur sachant router devrait savoir router sans son chien des paquets multicast ; mais ce n'est pas toujours le cas. N'ayant jamais utilisé le multicast, je ne saurais pas t'en dire plus.


---------------
Un proverbe chinois dit que lorsqu'on a rien à dire d'intéressant, on cite généralement un proverbe chinois.
n°114136
xilebo
noone
Posté le 06-09-2013 à 14:10:49  profilanswer
 

Slayer_hc a écrit :

Déjà, pense à activer le routage via sysctl.conf (/etc/sysctl.conf) : mettre "net.ipv4.ip_forward." à 1.
 
Ensuite, lorsque tu défini ta passerelle (ton PC A qui sert de routeur) sur tes postes clients, ils enverront automatiquement les paquets vers ton PC A.
 
sur ce dernier, il te suffit de mettre une route par défaut, étant donné que les deux réseaux sont directement connectés dessus, il n'a (normalement) pas besoin d'autres routes. Ce n'est nécessaire que pour définir le prochain saut lorsque le réseau souhaité n'est pas connu/relié directement au routeur.
 
Ensuite, tu entre la commande "ipatables -t nat -A POSTROUTING -o eth1 (ou la patte qui permet d'avoir l'accès à internet) -j MASQUERADE"
 
Normalement, ça devrait fonctionner :)


 
 
Bonjour,  
 
Je reviens vers ce sujet car j'ai un problème supplémentaire qui vient d'apparaitre.
 
Cette ligne fonctionne bien et me permet d'aller sur le net ( à condition d'avoir activé ip_forward )
 

Citation :


iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE


 
eth0 est la carte qui va sur le réseau de mon entreprise et qui me donne accès à internet.
eth1 est branché sur mon réseau de travail, et toutes les machines ont également bien accès au net.
 
Par contre sur le réseau de l'entreprise j'ai un serveur DHCP ( celui de l'entreprise)
Sur ma machine qui fait passerelle, j'ai également un serveur DHCP.
 
Le problème est que lorsque j'ai une machine que je branche sur mon réseau de travail, qui devrait prendre une adresse du serveur DHCP de ma passerelle, elle prend parfois ( et même souvent ) une adresse du réseau de l'entreprise car c'est le DHCP de l'entreprise qui répond avant ( je ne sais même pas pourquoi c'est plus rapide ).
 
De plus, mon serveur DHCP pollue également le réseau de l'entreprise. Pour cela, j'ai modifié /etc/default/isc-dhcp-server en mettant INTERFACES="eth1". Je n'ai pas encore pu tester si ca suffit pour corriger le problème.
 
Du coup, j'aurais aimé savoir comment empecher le "NAT" ( avec iptables ) de transférer dans un sens ou dans l'autre les paquets DHCP. Est-ce possible ?  
 
Merci d'avance :)

n°128675
xilebo
noone
Posté le 17-02-2015 à 17:28:18  profilanswer
 

Je up ( après 1 an et demi ^^ ) mais j'ai toujours le problème et je ne comprends pas trop ce qu'il se passe.
 
Est ce que par défaut les paquets UDP broadcast DHCP sont forwardés d'une interface à l'autre en NAT ou non ? Je bloquerais bien les paquets des ports UDP 67 et 68 avec iptables mais je trouve que c'est une solution "porc".
 
Merci d'avance  :jap:

n°128692
xilebo
noone
Posté le 18-02-2015 à 11:05:04  profilanswer
 

problème résolu, c'est à cause de windows qui ne gère pas un profil réseau par SSID, mais uniquement un seul pour toute la carte réseau. Je me suis retrouvé avec une adresse du réseau A ( SSID A ) alors que je me suis connecté au réseau B ( SSID B ) , je m'attendais à avoir une adresse donnée par le serveur DHCP du réseau B, mais la machine n'a pas posé la question, car ayant été connectée au réseau A précédemment, elle a acquis une adresse dont le bail n'était pas encore expiré : je pensais donc à tort que mon DHCP du réseau A attribuait une adresse à une machine via le réseau B ( ce qui aurait été emmerdant ) , mais après avoir observé les logs wireshark un peu partout sur le réseau, ce n'est pas ce qu'il se passe.
 
Ce qui m'a induit en erreur, c'est que dans les logs de mon DHCP du réseau A , je voyais la requête , alors qu'elle provenait du réseau B. Ceci vient du fait que c'est la même machine qui héberge à la fois un DHCP pour le réseau A ( donc avec juste la patte du réseau A configurée dans /etc/default/isc-dhcp-server ) , et à la fois la règle NAT qui permet de faire du routage entre A et B ( pour accès à internet des machines du réseau A, le réseau B fournissant une passerelle pour internet ).  
 
Du coup, je me suis aperçu que mon DHCP du réseau A est bien configuré, et qu'il ne délivre ( "offer" ) des adresses que si la demande vient bien du réseau A, mais il a l'air d'écouter toutes les interfaces ( donc ici réseau A et réseau B ) , et du coup, des "commandes DHCP" venant du réseau B apparaissent dans les logs du DHCP du réseau A. Notamment la commande "inform" provenant de ma machine qui était précédemment sur le réseau A puis qui a basculé sur le réseau B sans faire de discover puisque le bail n'était pas expiré ( apparemment quand le bail n'a pas expiré, il n'y a pas d'"offer" effectué, mais juste un "inform" ).
 
Je ne sais pas comment régler le DHCP pour qu'il n'écoute qu'une interface spécifiée, car cela me perturbe d'une part que ca apparaisse dans les logs, et je ne suis pas certain que ca ne pose pas de problème ultérieurement. L'autre solution est de ne pas héberger le DHCP sur la même machine qui fait du NAT, mais ca me gêne un peu plus.


Message édité par xilebo le 18-02-2015 à 11:06:07
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Systèmes & Réseaux Pro
  Réseaux

  routage sous linux

 

Sujets relatifs
Récupération de LOG windows serveur 2003 sur linuxVPN et Routage
routage intervlan switch enterasys C5probleme de routage sur 2008 R2
Petite question - table routage et VPNiSCSI sous Linux (tgt) : write-cache on dans /etc/tgt/targets.conf ?
Windows 2008 - routage trafic entrant/sortantSuivi des postes informatiques clients sous Linux
Linux - routage vers proxy d'un autre reseau 
Plus de sujets relatifs à : routage sous linux


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR