GNT sans publicité, site mobile, fonctionnalitées exclusives...

Petit casse tête routage IPv4 sous Linux

Le
Ettore
Topologie
Il s'agit pour l'instant de mettre en place un réseau avec 3 postes.
- Un poste connecté à Internet. Nous l'appellerons par la suite
"Passerelle". Ce poste est sous Linux (Mandrake 9.1 installé sans
serveur X) et utilise Netfilter pour servir aussi de pare-feu. Il est
muni de 3 interface réseau (Modem Sagem F@st 800, ethernet vers mon
réseau filaire et ethernet vers "Routeur Wifi").
- Un poste que nous appellerons "Routeur Wifi". Ce routeur est muni de 2
interfaces réseaux, une interface en Ethernet 10MB (eth0) et l'autre
(eth1) en sans fil (802.11b). Ce poste est sous Linux (Debian Woody).
Pas de pare feu dessus.
- Un poste que nous appellerons "client Wifi". Ce poste est simplement
muni d'une interface sans fil. Il est sous Linux (Debian woody).

Objectif.
Permettre à "Routeur Wifi" et à "Client Wifi" d'accéder à Internet.

Bilan des ping.
- De "Passerelle" à "Routeur Wifi" ethernet : OK
- De "Passerelle" à "Routeur Wifi" wireless : OK
- De "Passerelle" à "Client Wifi" ethernet : KO
- De "Routeur Wifi" à "Passerelle" : OK
- De "Routeur Wifi" à "Client Wifi" : OK
- De "Client Wifi" à "Routeur Wifi" wireless : OK
- De "Client Wifi" à "Routeur Wifi" ethernet : OK
- De "Client Wifi" à "Passerelle" : KO

Adresses des interfaces.
Passerelle eth1 - IP : 10.59.59.10 - Netmask :255.0.0.0 - Broadcast :
10.255.255.255 - Network : 10.0.0.0 - Gateway :
Routeur Wifi eth0 - IP : 10.59.59.9 - Netmask :255.0.0.0 - Broadcast :
10.255.255.255 - Network : 10.59.59.10 - Gateway :10.59.59.10
Routeur Wifi eth1 - IP : 10.59.59.8 - Netmask :255.0.0.0 - Broadcast :
10.255.255.255 - Network : 10.0.0.0 - Gateway :
Client Wifi eth0 - IP : 10.59.59.1 - Netmask :255.0.0.0 - Broadcast :
10.255.255.255 - Network : 10.0.0.0 - Gateway :10.59.59.8

Remarques.
Les 2 interfaces du routeur appartiennent au même réseau. J'y tiens pour
une raison de simplification des règles au niveau de Netfilter sur la
"Passerelle".
Sur le "Routeur Wifi" dans /etc/network/options j'ai "IP_forward=yes"

Question
Après des journées de bricolage, je suis à court d'idée à explorer. L'un
d'entre vous aurait-il quelques idée de piste ? Ou des éclaircissements
à me demander ?
Merci
Ettore
Lire les 14 réponses

Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 3
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Jacques Caron
Le #80216
On Thu, 08 Jan 2004 21:49:39 +0100, Ettore
Remarques.
Les 2 interfaces du routeur appartiennent au même réseau. J'y tiens pour
une raison de simplification des règles au niveau de Netfilter sur la
"Passerelle".
Sur le "Routeur Wifi" dans /etc/network/options j'ai "IP_forward=yes"


Dans ce cas ce n'est pas un routeur mais un bridge. Je ne sais pas comment
ça se configure sous Linux, mais en tout cas ce n'est pas pareil. Et il
n'est pas garanti que ça marche avec une interface Wi-Fi.

Jacques.
--
Interactive Media Factory
Création, développement et hébergement
de services interactifs: SMS, SMS+, Audiotel...
http://www.imfeurope.com/

Annie D.
Le #79972
Ettore wrote:

Passerelle eth1 - IP : 10.59.59.10 - Netmask :255.0.0.0 - Broadcast :
10.255.255.255 - Network : 10.0.0.0 - Gateway :
Routeur Wifi eth0 - IP : 10.59.59.9 - Netmask :255.0.0.0 - Broadcast :
10.255.255.255 - Network : 10.59.59.10 - Gateway :10.59.59.10
Routeur Wifi eth1 - IP : 10.59.59.8 - Netmask :255.0.0.0 - Broadcast :
10.255.255.255 - Network : 10.0.0.0 - Gateway :
Client Wifi eth0 - IP : 10.59.59.1 - Netmask :255.0.0.0 - Broadcast :
10.255.255.255 - Network : 10.0.0.0 - Gateway :10.59.59.8


Marchera pas tout seul si vous voulez que votre réseau fonctionne avec
du routage IP (ce que suggère ip_forward=yes). La table de routage du
routeur WIFI ne doit pas être jolie-jolie avec plusieurs interfaces pour
la même destination.

Les 2 interfaces du routeur appartiennent au même réseau. J'y tiens pour
une raison de simplification des règles au niveau de Netfilter sur la
"Passerelle".


Comme l'a écrit Jacques, ça ne peut marcher simplement et proprement que
si la machine "routeur WIFI" fonctionne non pas en routage IP (couche 3)
mais en pont ethernet-WIFI, l'équivalent d'un point d'accès/hub/switch
(couche 2).

Pour que ça fonctionne avec du routage simple et propre, je suggère :
- que les trois réseaux ethernet filaire, passerelle-routeur WIFI et
routeur WIFI-client WIFI aient des plages d'adresses distinctes ;
- que la passerelle par défaut de "client WIFI" soit l'adresse de
l'interface eth1 de "routeur WIFI" (ça c'était déjà fait) ;
- de créer sur la machine "passerelle" une route vers le réseau WIFI
ayant pour passerelle l'adresse d'eth0 de "routeur WIFI" afin que
"passerelle" sache comment atteindre "client WIFI" ;
- et ne pas oublier de "NATer" (IP masquerade) sur la machine
"passerelle" les plages d'adresses des réseaux devant accéder à
internet.

Bipède
Le #79967
"Ettore" 3ffdc267$0$7138$

Topologie
Il s'agit pour l'instant de mettre en place un réseau avec 3 postes.
- Un poste connecté à Internet. Nous l'appellerons par la suite
"Passerelle". Ce poste est sous Linux (Mandrake 9.1 installé sans
serveur X) et utilise Netfilter pour servir aussi de pare-feu. Il est
muni de 3 interface réseau (Modem Sagem 800, ethernet vers mon
réseau filaire et ethernet vers "Routeur Wifi").
- Un poste que nous appellerons "Routeur Wifi". Ce routeur est muni de 2
interfaces réseaux, une interface en Ethernet 10MB (eth0) et l'autre
(eth1) en sans fil (802.11b). Ce poste est sous Linux (Debian Woody).
Pas de pare feu dessus.
- Un poste que nous appellerons "client Wifi". Ce poste est simplement
muni d'une interface sans fil. Il est sous Linux (Debian woody).

Objectif.
Permettre à "Routeur Wifi" et à "Client Wifi" d'accéder à Internet.

Bilan des ping.
- De "Passerelle" à "Routeur Wifi" ethernet : OK
- De "Passerelle" à "Routeur Wifi" wireless : OK
- De "Passerelle" à "Client Wifi" ethernet : KO
- De "Routeur Wifi" à "Passerelle" : OK
- De "Routeur Wifi" à "Client Wifi" : OK
- De "Client Wifi" à "Routeur Wifi" wireless : OK
- De "Client Wifi" à "Routeur Wifi" ethernet : OK
- De "Client Wifi" à "Passerelle" : KO

Adresses des interfaces.
Passerelle eth1 - IP : 10.59.59.10 - Netmask :255.0.0.0 - Broadcast :
10.255.255.255 - Network : 10.0.0.0 - Gateway :
Routeur Wifi eth0 - IP : 10.59.59.9 - Netmask :255.0.0.0 - Broadcast :
10.255.255.255 - Network : 10.59.59.10 - Gateway :10.59.59.10
Routeur Wifi eth1 - IP : 10.59.59.8 - Netmask :255.0.0.0 - Broadcast :
10.255.255.255 - Network : 10.0.0.0 - Gateway :
Client Wifi eth0 - IP : 10.59.59.1 - Netmask :255.0.0.0 - Broadcast :
10.255.255.255 - Network : 10.0.0.0 - Gateway :10.59.59.8

Remarques.
Les 2 interfaces du routeur appartiennent au même réseau. J'y tiens pour
une raison de simplification des règles au niveau de Netfilter sur la
"Passerelle".
Sur le "Routeur Wifi" dans /etc/network/options j'ai "IP_forward=yes"

Question
Après des journées de bricolage, je suis à court d'idée à explorer. L'un
d'entre vous aurait-il quelques idée de piste ? Ou des éclaircissements
à me demander ?
Merci
Ettore


Je ne connais pas Netfilter, mais ton problème peut être résolu à l'aide de
iptables tout simplement. A condition biensûr de ne pas foutre tout le monde
sur le même sous réseau 10.0.0.0/8. Je remarque au passage que tu ne donne
pas les adresses de toutes tes interfaces, ca n'aide pas. Autre chose, l'une
des interface de ta passerelle est inutile, elle t'oblige à définir 3 sous
réseaux au lieu de 2.

Une fois que toute les adresses de tes machines auront été reconfigurée de
façon à s'inclure dans un sous réseau particulier, tu n'a plus qu'a
configurer la table de routage de la passerelle pour atteindre le sous
réseau dans lequel se trouve le client wifi, iptables pour les règle de fire
wall et la translation IP (ip masquerade) et le tour est joué.

par exemple avec 4 sous-réseaux de 62 machines maximum chacun:

réseau filaire : 10.59.59.0/26 plage de 10.59.59.1 à 10.59.59.62
réseau passerelle - wifi : 10.59.59.64/26 plage de 10.59.59.65 à
10.59.59.126
réseau wifi : 10.59.59.128/26 plage de 10.59.59.129 à 10.59.59.190

Si l'adresse du routeur wifi est par exemple 10.59.59.66, dans la table de
routage de la passerelle il faut la ligne de routage statique suivante :
10.59.59.128 10.59.59.66 255.255.255.192 UG 0 0 0 eth1

iptables -t nat -L doit donner quelque chose dans ce goût là :
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
MASQUERADE all -- anywhere anywhere

Erwann Thoraval
Le #79965
Le Fri, 9 Jan 2004 11:45:36 +0100
"Bipède"

[snip]

iptables -t nat -L doit donner quelque chose dans ce goût là :
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
MASQUERADE all -- anywhere anywhere
^^^^^^^^

Ce n'est pas une bonne idée de "masquerader" n'importe qui. Quelqu'un pe ut utiliser la passerelle pour apparaitre de façon anonyme sur internet. Mieux vaut masquerader uniquement les plages du réseau local.


--
Erwann

Annie D.
Le #79964
"Bipède" wrote:

Je ne connais pas Netfilter, mais ton problème peut être résolu à l'aide de
iptables


Netfilter est tout simplement le filtre de paquets intégré aux noyaux
Linux 2.4 (et 2.6 ?) dont iptables n'est que l'outil de configuration.

Autre chose, l'une des interface de ta passerelle est inutile,
elle t'oblige à définir 3 sous réseaux au lieu de 2.


Pas forcément, si le but est précisément d'isoler le réseau sans fil et
le réseau filaire. Par contre c'est la machine "routeur WIFI" elle-même
qui est inutile si sa seule fonction est le routage. Il serait
diablement plus simple d'installer la carte WIFI directement dans la
machine "passerelle".

Publicité
Suivre les réponses
Poster une réponse
Anonyme