problème de routage sur un meme brin ethernet
Le
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
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

Poser une question


Avoir deux réseau logique sur le même réseau physique n'est pas une
bonne idée surtout pour une DMZ. Je pense que le pb est quelque part ici.
Dans le cas d'une connexion TCP. La machine du réseau local ouvre un
canal de communication TCP via votre routeur Linux. Votre routeur Linux
créer une session TCP pour assurer la communication entre les deux
machines. cette session est maintenu jusqu'à ce que le poste DMZ ou du
réseau local envoi une trame avec un drapeau de type END (Fin). Le poste
du réseau local attend un retour de la machine située dans la DMZ via le
routeur linux, donc via la session deja ouverte et gerer par le routeur
Linux. Je pense que le poste de la DMZ envoi la réponse mais elle est
quelque part perdu ou non prise en compte par le poste du réseau local
car ce dernier peut recevoir la réponse sans passer par le routeur
puisque vous utiliser le même réseau physique alors qu'il attend la
réponse via le canal TCP déjà ouvert.
J'espere que c'est claire ce que je voulais dire.
Bon, faites un traceroute ou tracert pour voir comment la machine de la
DMZ arrive à l'autre réseau, si ça ne passe pas, ça permettra
d'identifié à quel moment ça coince.
Afficher la table de routage de la machine située sur la DMZ pour etre
sure que vous n'avez pas une route statique avec un metric qui renderai
un autre itinéraire prioritaire (ce que je ne pense pas).
Si vous avez une seconde carte réseau sur votre routeur Linux, je vous
recommande de l'utiliser pour bien séparer les deux réseaux logiquement
et physiquement.
Tenez nous informer des tests.
Cdlt
Rahan
Pas bien les traits trop longs, ça fait des sauts de ligne parasites. ;-)
Comme Rahan, je suis très dubitatif sur le fait de mettre LAN et DMZ sur
le même réseau physique.
Inutile sinon nuisible. Pour ton routeur, 192.168.100.254 est une
adresse locale, pas une adresse de passerelle, et je ne sais pas du tout
comment Linux réagit à une telle route. Je sais comment réagirait
Windows, mais justement Linux et Windows n'ont pas la même façon de
représenter les routes directes.
Bref, la bonne route, qui a dû être créée automatiquement quand tu as
configuré eth0:1 avec 192.168.100.254/24, est celle-ci :
192.168.100.0/24 dev eth0 src 192.168.100.254 [autres options]
Avec quelle adresse MAC destination ?
Le vois-tu sur l'émetteur du paquet initial ?
As-tu reniflé aussi le trafic ICMP et ARP sur les trois machines qui
peut être instructif ?
Le routeur fait-il du NAT entre LAN et DMZ ?
Un paquet est entré et ressorti par eth0 donc de ce côté ça semble bon.
C'est crado, mais IP le permet. Sinon ce ne serait pas crado mais
impossible. La pile IP de Linux est très "souple", je dirais.
'Lut,
Ça s'appelle même "router on a stick" ou "one armed router"
Sous Open, ça passe sans problème, il n'y a pas de route à monter autres
que celles liées à la configuration de l'interface (ifconfig inet, puis
ifconfig alias).
Les machines sur le brin doivent avoir l'adresse de l'interface du
routeur dans leur réseau ip comme route vers l'autre réseau ip.
Par contre, en termes de confidentialité, c'est particulièrement naze,
le domaine de broadcast ethernet restant le même.
--
BC> je ne fais rire que les dinos
Mais vous faites gerber tous les autres.
-+-AC in
Idem sous Linux.
Ah ça, je suis bien d'accord. 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 ?
Ca, ça peut pas marcher par définition:
Tu demande au routeur d'utiliser une passerelle pour aller sur un réseau,
hors cette passerelle serait elle même sur le réseau, donc pour atteindre
la passerelle, faut acceder à la passerelle, donc au reseau... Bref ça se
mord la queue.
La route dont tu as besoin serait plutot:
ip route add 192.168.100.0/24 dev eth0:1
Si j'ai tout suivi (ce qui est pas sûr).
Sauf que sous Unix, en tout cas linux, cette route est ajouté de facto à la
configuration de l'interface:
[ rsync]# route
Table de routage IP du noyau
Destination Passerelle Genmask Indic Metric Ref Use
Iface
192.168.76.0 * 255.255.255.0 U 0 0 0 eth1
default gw.nanardon 0.0.0.0 UG 0 0 0 eth1
[ rsync]# ifconfig eth0 192.168.3.0
[ rsync]# route
Table de routage IP du noyau
Destination Passerelle Genmask Indic Metric Ref Use
Iface
192.168.3.0 * 255.255.255.0 U 0 0 0 eth0
Oh, une nouvelle route.
D'ailleurs voici une machine qui est dans la config que tu essaye de faire:
Table de routage IP du noyau
Destination Passerelle Genmask Indic Metric Ref Use
Iface
1.X.170.0 * 255.255.255.0 U 0 0 0
eth0
1.X.16.0 * 255.255.255.0 U 0 0 0
eth0
127.0.0.0 * 255.0.0.0 U 0 0 0 lo
default routeur 0.0.0.0 UG 0 0 0 eth0
Et je te garantie que les machines configuré en /24 passeront pas le routeur
si elle n'ont pas une patte dans chaque réseau (c'est pour éviter ça
justement que nos serveurs on deux adresses car nous avons 2 reseau en /24
non contigus)
Hope this help.