Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Petit casse tête routage IPv4 sous Linux

14 réponses
Avatar
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

10 réponses

1 2
Avatar
Jacques Caron
On Thu, 08 Jan 2004 21:49:39 +0100, Ettore wrote:

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/

Avatar
Annie D.
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.

Avatar
Bipède
"Ettore" a écrit dans le message de news:
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

Avatar
Erwann Thoraval
Le Fri, 9 Jan 2004 11:45:36 +0100
"Bipède" nous a écrit:


[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

Avatar
Annie D.
"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".

Avatar
Bipède
"Annie D." a écrit dans le message de news:

"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.


Ah ? Alors j'ai l'air d'un con ;-)


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".


Oui. Je pensais que le réseau Wifi n'avais pas forcement besoin d'être
isolé, le routeur wifi pourrait tout simplement faire partie du réseau
"filaire"...


Avatar
Annie D.
Erwann Thoraval wrote:

Ce n'est pas une bonne idée de "masquerader" n'importe qui. Quelqu'un peut utiliser la passerelle pour apparaitre de façon anonyme sur internet.


En même temps, ça ne doit pas être facile à exploiter en dehors d'une
topologie de type réseau local à médium partagé (le câble marche encore
comme ça ?). Pour "masquerader" des paquets, il faut d'abord les
recevoir, et si on reçoit de l'extérieur des paquets portant une adresse
de destination qui n'est pas la sienne, il doit y avoir quelque chose de
pourri chez son FAI. Me trompé-je ?

Mieux vaut masquerader uniquement les plages du réseau local.


Certes, dans tous les cas mieux vaut ne pas compter sur un tiers pour
assurer une partie de la sécurité, n'autoriser explicitement que le
minimum nécessaire et interdire implicitement tout le reste.

Avatar
Jacques Caron
On Fri, 09 Jan 2004 13:39:07 +0100, Annie D. wrote:

Erwann Thoraval wrote:

Ce n'est pas une bonne idée de "masquerader" n'importe qui. Quelqu'un
peut utiliser la passerelle pour apparaitre de façon anonyme sur
internet.


En même temps, ça ne doit pas être facile à exploiter en dehors d'une
topologie de type réseau local à médium partagé (le câble marche encore
comme ça ?). Pour "masquerader" des paquets, il faut d'abord les
recevoir, et si on reçoit de l'extérieur des paquets portant une adresse
de destination qui n'est pas la sienne, il doit y avoir quelque chose de
pourri chez son FAI. Me trompé-je ?


Mmmm... Et avec une encapsulation IP dans IP? Ceci dit, je n'ai aucune
idée du comportement par défaut d'un PC qui reçoit un tel paquet (i.e.
s'il décapsule sans se poser de questions puis le route comme si de rien
n'était?).

Sinon avec un petit source routing...

Ahhhh les joies d'IP :-)

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


Avatar
EEE
Annie D. wrote:

Il serait
diablement plus simple d'installer la carte WIFI directement dans la
machine "passerelle".


Tout à fait d'accord mais la machine "passerelle"
1) N'a pas de slot PCMCIA (c'est un vieux P100 desktop)
2) N'a plus de slot PCI de disponible

Avatar
EEE
Bipède wrote:


Oui. Je pensais que le réseau Wifi n'avais pas forcement besoin d'être
isolé, le routeur wifi pourrait tout simplement faire partie du réseau
"filaire"...
C'est important pour moi d'isoler le réseau Wifi (réseau communautaire

Lille Sans Fil) de mon réseau domestique.

1 2