OVH Cloud OVH Cloud

problème de routage sur un meme brin ethernet

53 réponses
Avatar
Eric Belhomme
Bonjour,

J'ai un serveur GNU/Linux qui fait office de routeur IPv4, et j'ai
quelques problèmes que je ne comprends pas :

Voici la topologie :

LAN 192.168.1.0/24 ------ eth0 192.168.1.254 ROUTEUR eth1 -----
Internet
DMZ 192.168.100.0/24 ---- eth0:1 192.168.100.254

en fait, les réseaux 192.168.1.0/24 et 192.168.100.0/24 sont sur un même
brin ethernet, mais je veux forcer le passage de LAN vers DMZ via le
routeur sous linux

j'ai donc sur le routeur une route insérée comme ceci :
# ip route add 192.168.100.0/24 via 192.168.100.254

Le problème c'est que ca ne marche pas des masses !

en reniflant le réseau je vois :
1) que mes paquets partent bien vers le routeur
2) sur le routeur je vois 2 fois chaque paquet (une fois en entrée sur
l'interface eth0, une fois en sortie sur cette même interface)
3) sur la machine à atteindre en DMZ, je vois le paquet arriver, et un
paquet en réponse repartir vers la source
4) sur le routeur, je ne vois pas ce paquet retour !

Bien entendu la passerelle par défaut de la machine en DMZ est
192.168.100.254

Le routeur est une Debian Sarge, qui tourne avec un kernel "vanilla"
2.6.18.2, le firewall entre ces 2 réseau est désactivé, et le routage
est bien actif (d'ailleurs les autres interfaces sont bien routées)

Pour mon problème, j'hésite entre 2 causes :
1) ce que je veux faire est crado, et IP ne le permet pas,
2) Le problème est du coté de ma config Linux. mais dans ce cas je ne
vois pas où...

Merci pour toute l'aide que vous pourrez m'apporter :) et fu2 fcri


--
Rico

10 réponses

1 2 3 4 5
Avatar
Pascal Hambourg
Pascal Hambourg writes:

Je me demandais par contre, les ICMP
Redirect qui peuvent être émis par le routeur ont-ils une influence ?
Font-ils comprendre aux machines que la destination est joignable
directement ?


Pas de conf de ce type sous la main pour vérifier, mais ce serait une
violation du fonctionnement standard du routage ip. Seule une machine
présente dans les deux domaines de broacast ip peut joindre les deux
réseaux directement.


Peux-tu explique cette histoire de broadcast IP ?
Si j'ai deux machines 192.168.1.x/24 et 172.18.y.z/16 connectées sur le
même brin par l'interface ethN et ethM respectivement et que j'ajoute à
chacune la route qui va bien pour atteindre le sous-réseau de l'autre, à
savoir :

sur 192.168.1.x : 172.18.0.0/16 dev ethN
sur 172.18.y.z : 192.168.1.0/24 dev ethM

Le fait est qu'avec ces routes les deux machines peuvent communiquer,
bien que n'étant pas dans le même domaine de broadcast IP. Est-ce une
violation du routage IP ?

Mon raisonnement concernant l'ICMP Redirect est le suivant.
192.168.1.125 envoie un paquet destiné à 192.168.100.100 avec l'adresse
MAC de sa passerelle par défaut, 192.168.1.254. Ladite passerelle envoie
un ICMP Redirect disant en gros "pour joindre 192.168.100.100,
addresse-toi directement à 192.168.100.100".

Première possibilité : ouais mais justement je ne sais pas comment
joindre 192.168.100.100 directement, donc j'ignore l'ICMP Redirect.

Deuxième possibilité : avec cet ICMP Redirect, la passerelle
192.168.1.254, qui est sur le même réseau que moi, me fait comprendre
indirectement que 192.168.100.100 est joignable directement sur le même
réseau, donc je peux ajouter une route directe vers cette adresse.
Est-ce envisageable ?


Avatar
Pascal Hambourg

voici les paquets qui transitent sur le routeur pour un ping:

1) ip src -> ip dst (mac src -> mac routeur)
"echo request" original
2) ip src -> ip dst (mac routeur -> mac dst)
"echo request" ré-émis par le routeur
3) ip dst -> ip src (mac dst -> mac routeur)
"echo reply" envoyé vers le routeur
4) ip routeur -> ip dst (mac routeur -> mac dst)
"icmp redirect" (redirect for host)

Clairement, le routeur ne réémet pas la réponse à la machine source, il
envoie à la place un icmp redirect à la machine destination !


Il devrait faire les deux, si je ne m'abuse.
Il est aussi étonnant que l'émetteur de l'echo request n'ait pas aussi
eu droit à un ICMP Redirect.

Qu'est-ce que ça donne si tu désactives l'envoi des ICMP Redirect sur le
routeur (send_redirects=0) ?
# sysctl -w net/ipv4/conf/eth0/send_redirects=0
# sysctl -w net/ipv4/conf/all/send_redirects=0
(il faut les deux, c'est un OU logique)

Avatar
Eric Masson
Pascal Hambourg writes:

Peux-tu explique cette histoire de broadcast IP ?


On peut essayer.

La notion de domaine de broacast ip est liée au découpage réseau/hôte de
l'adresse ip.

Des machines sont dans le même domaine de broadcast ip si la partie
réseau de leurs adresses respective est identique, elle peuvent donc se
joindre sans utiliser les services d'un routeur.

Si la partie réseau de leurs adresses n'est pas identique elles ne
pourront se joindre sans les services d'un routeur qui lui aura une
interface dans chacun des domaines (qui peut être la même dans le cas
d'un routeur monointerface)

Si j'ai deux machines 192.168.1.x/24 et 172.18.y.z/16 connectées sur le
même brin par l'interface ethN et ethM respectivement et que j'ajoute à
chacune la route qui va bien pour atteindre le sous-réseau de l'autre, à
savoir :

sur 192.168.1.x : 172.18.0.0/16 dev ethN
sur 172.18.y.z : 192.168.1.0/24 dev ethM

Le fait est qu'avec ces routes les deux machines peuvent communiquer,
bien que n'étant pas dans le même domaine de broadcast IP. Est-ce une
violation du routage IP ?


De mon point de vue oui, ces machines ne sont pas sensées pouvoir
communiquer, il faudrait pour ce faire qu'une deux machines ait sur son
interface lan un alias dans le domaine de broadcast de la seconde.

Première possibilité : ouais mais justement je ne sais pas comment
joindre 192.168.100.100 directement, donc j'ignore l'ICMP Redirect.


Pour moi, c'est ce qui devrait se passer.

Deuxième possibilité : avec cet ICMP Redirect, la passerelle
192.168.1.254, qui est sur le même réseau que moi, me fait comprendre
indirectement que 192.168.100.100 est joignable directement sur le même
réseau, donc je peux ajouter une route directe vers cette adresse.
Est-ce envisageable ?


Au vu de ce dont j'ai la pratique, j'ai de sérieux doutes, mais
peut-être que linux permet ce genre de bidouilles.

--
SC> s'occupe de le transmettre au bon endroite.
TL> Tiens c'est l'accent de quelle région ça ?
De la fatiguie, un petit pays situé au sud de "nuit blanche"
-+- SC in: <http://www.le-gnu.net> - Oh douce nuit... -+-

Avatar
Nina Popravka
On Wed, 08 Nov 2006 17:33:49 +0100, Eric Masson wrote:

Peux-tu explique cette histoire de broadcast IP ?
La notion de domaine de broacast ip est liée au découpage réseau/hôte de

l'adresse ip.
Si la partie réseau de leurs adresses n'est pas identique elles ne
pourront se joindre sans les services d'un routeur qui lui aura une
interface dans chacun des domaines (qui peut être la même dans le cas
d'un routeur monointerface)


Bref en français elles sont sur le même réseau, quoi :-)
--
Nina


Avatar
Eric Masson
Nina Popravka writes:

'Lut,

Bref en français elles sont sur le même réseau, quoi :-)


Au sens ip du terme ;)

--
Moi je trouve qu'il est debile de vouloir detruir kekel ke chose
MG> Ta touche k est coincée ?
-+- G in GNU : dans le kk jusqu'au cou -+-

Avatar
Nina Popravka
On Wed, 08 Nov 2006 19:14:21 +0100, Eric Masson wrote:

Au sens ip du terme ;)
Dans la mesure où nous sommes sur fcri et pas fcre, cela va sans dire

:-))))))))
--
Nina

Avatar
Eric Masson
Nina Popravka writes:

Dans la mesure où nous sommes sur fcri et pas fcre, cela va sans dire
:-))))))))


Mais cela va toutefois mieux en le disant ;)

->[]

--
SP: Un OS connu, simple à utiliser, mais avec une fondation Unix
CF: La théière ?
SP: On a dit "connu".
-+- SP in Guide du Macounet Pervers : BeOS, à l'heure du thé -+-

Avatar
Pascal Hambourg

La notion de domaine de broacast ip est liée au découpage réseau/hôte de
l'adresse ip.


Ça commence bien... Moi qui considère que ce découpage est juste une
convention artificielle pour se simplifier la vie, et qu'en fin de
compte ce sont les adresses et les routes seules qui comptent vraiment.

Des machines sont dans le même domaine de broadcast ip si la partie
réseau de leurs adresses respective est identique, elle peuvent donc se
joindre sans utiliser les services d'un routeur.


Alors que pour moi des machines sont dans le même domaine de broadcast
IP si elles ont la même adresse de broadcast, sans s'embarrasser avec
ces histoires de partie réseau et partie hôte. Ma façon de voir
serait-elle trop influencée par le routage IP de Linux ?

Si j'ai deux machines 192.168.1.x/24 et 172.18.y.z/16 connectées sur le
même brin par l'interface ethN et ethM respectivement et que j'ajoute à
chacune la route qui va bien pour atteindre le sous-réseau de l'autre, à
savoir :

sur 192.168.1.x : 172.18.0.0/16 dev ethN
sur 172.18.y.z : 192.168.1.0/24 dev ethM

Le fait est qu'avec ces routes les deux machines peuvent communiquer,
bien que n'étant pas dans le même domaine de broadcast IP. Est-ce une
violation du routage IP ?


De mon point de vue oui, ces machines ne sont pas sensées pouvoir
communiquer, il faudrait pour ce faire qu'une deux machines ait sur son
interface lan un alias dans le domaine de broadcast de la seconde.


Et pourtant tu es d'accord avec moi pour constater que tous les OS
permettent de créer de telles routes directes ? C'est quand même
étonnant pour une pratique censée violer le fonctionnement standard du
routage IP, non ?

Deuxième possibilité : avec cet ICMP Redirect, la passerelle
192.168.1.254, qui est sur le même réseau que moi, me fait comprendre
indirectement que 192.168.100.100 est joignable directement sur le même
réseau, donc je peux ajouter une route directe vers cette adresse.
Est-ce envisageable ?


Au vu de ce dont j'ai la pratique, j'ai de sérieux doutes, mais
peut-être que linux permet ce genre de bidouilles.


D'après mon expérience je ne pense pas non plus que la pile IP de Linux
le permette. Mais ça me semblerait pourtant cohérent comme comportement.


Avatar
Nina Popravka
On Wed, 08 Nov 2006 20:53:07 +0100, Pascal Hambourg
wrote:

Alors que pour moi des machines sont dans le même domaine de broadcast
IP si elles ont la même adresse de broadcast, sans s'embarrasser avec
ces histoires de partie réseau et partie hôte.
Et... comment vous trouvez une adresse de broadcast sans vous

"embarasser" de la partie réseau et hôte, au juste ?
:-)
--
Nina

Avatar
Pascal Hambourg
On Wed, 08 Nov 2006 20:53:07 +0100, Pascal Hambourg wrote:

Alors que pour moi des machines sont dans le même domaine de broadcast
IP si elles ont la même adresse de broadcast, sans s'embarrasser avec
ces histoires de partie réseau et partie hôte.


Et... comment vous trouvez une adresse de broadcast sans vous
"embarasser" de la partie réseau et hôte, au juste ?


Généralement, j'applique la convention qui veut que ce soit la dernière
adresse du sous-réseau. Mais c'est juste une convention aussi arbitraire
que la notion de sous-réseau, je pourrais aussi bien choisir une adresse
de broadcast arbitraire.


1 2 3 4 5