Iptables et vlan

bonjour

j’ai un switch de niveau 2 sur lequel j’ai crée un VLAN regroupant toutes mes CPL
dans ce VLAN j’ai 2 lecteur DIVX : LECT_1: 192.168.10.8 et LECT_2: 192.168.10.9

mon NAS est sur le réseau de base (pas dans le VLAN) avec l’IP : 192.168.10.3

mon but est de mettre une règle IPTables de façon que les 2 LECT_x voient le NAS

je sèche depuis 8 jours dessus, une petite piste serais la bienvenue

a+ gilles

VLAN taggé IEEE 802.1Q ou par port ?
Une règle iptables sur quelle machine ?
Qu’est-ce qui fait la liaison entre le VLAN et le LAN de base ?
Si les deux contiennent le même sous-réseau IP 192.168.10.x, ils devraient constituer un unique domaine de broadcast, et donc être connectés par un pont.

salut

pour info le swicth est un netgear GS724Tv3

la liaison est effectuer par IPTABLES sur le serveur debian : 192.168.10.1

le VLAN est UnTague sur le port 11 du switch dans la section “VLAN membership”

pour la section “Port PVID Configuration” j’ai
PVID = 100
Acceptable Frame Types = VLAN ONLY
Ingress Filtering = disable
Port Priority = 0

est ce qu’une simple regle de forward serais bonne
exemple pas forcement bon :slightly_smiling:

iptables –A FORWARD –s 192.168.10.3 –d 192.168.10.8 –p tcp –j ACCEPT  
iptables –A FORWARD –s 192.168.10.8 –d 192.168.10.3 –p tcp –j ACCEPT 

Iptables ne fait pas de liaison, il fait du filtrage de paquets.
Ce “serveur” 192.168.10.1, comment est-il connecté au VLAN et au LAN de base ?
On peut avoir la sortie de la commande “ip addr” ?
A quoi le port 11 du switch est-il connecté ?
Tu écris qu’il est untagged, mais la configuration qui suit montre “Acceptable Frame Types = VLAN ONLY”, que j’interprète par “trames taggées seulement”. A quoi s’applique-t-elle ?

Les règles iptables de la chaîne FORWARD s’appliquent aux trames traversant un pont ethernet si le sysctl net.bridge.bridge-nf-call-iptables=1, ce qui est la valeur par défaut (hélas). Mais on peut aussi réaliser du filtrage sur un pont avec ebtables.

Le serveur 192.168.10.1 est connecté au LAN pas au VLAN

pour la cmd ip addr

le port 11 du switch est connecte à une CPL

erreur de ma part le port 11 est bien tagué et non untague

les régles FORWARD ne sont pas en places actuellement. Pour ebtables est il compatible avec iptable ??
si j’utilise ebtables dois-je rajouter le module vlan et 8021.q sur la debian ?? ou est indépendant ??

A ma question
"Qu’est-ce qui fait la liaison entre le VLAN et le LAN de base ?“
tu as répondu
"la liaison est effectuer par IPTABLES sur le serveur debian : 192.168.10.1”.
Comment peut-il faire la liaison entre le LAN de base et le VLAN s’il n’est pas connecté au VLAN ?

Pourquoi avoir configuré le port du switch connecté au coupleur CPL en mode taggé ? Le coupleur est aussi configuré en mode taggé, à moins que ce soient les lecteurs DIVX ?

Ebtables et iptables ne travaillent pas au même niveau (pont ethernet et pile IP respectivement). Ils peuvent cohabiter, de même que les VLAN. Mais ebtables ne fonctionne que sur un pont ethernet, et je n’en vois pas dans la liste d’interfaces.

Il n’y a pas de module vlan. Il y a un module 8021q qui gère les sous-interfaces VLAN, et un paquet vlan contenant la commande vconfig permettant de créer ces interfaces.

Mais avant de s’occuper de cela il serait bon de clarifier la topologie VLAN du réseau.
Par exemple : le port du CPL a le PVID 100, sur quel(s) autre(s) port(s) ce VLAN est disponible, sous forme taggée ou non taggée ? Si aucun, alors il y a un souci pour pouvoir communiquer avec le LAN de base.

En fait ce qu’il te faut c’est du routage inter VLAN, mais si tu utilise un masque /24 avec ton adressage ip actuel tu ne pourra pas.
Les VLAN servent à cloisonner un même réseau, pour le routage c’est comme si tu avais plusieurs sous réseau.

Si tu veux vraiment utiliser des VLANs je pense que tu dois revoir ton plan d’adressage.

Il te faut installer le paquet vlan et configurer tes interfaces sous cette forme:
ethX.11 -> VLAN 11 sur interface ethX
ethY.99 -> VLAN 99 sur interface ethY

ainsi ta débian lira le flag VLAN dans les paquet qui arrivent sur ces interfaces

Pas forcément. Les VLAN peuvent servir à transporter les deux segments de réseau séparément sur un même lien ethernet physique entre le switch et la machine “serveur” qui pourra faire office de pont filtrant et non de routeur.

apparemment, je suis obligé d’installer bridge-utils pour pouvoir faire un pont

la déclaration du pont se fait entre 2 cartes réseau eth0 et eth1… peut on le faire entre 2 adresses IP ??

En effet la manipulation des ponts se fait avec la commande brctl qui se trouve dans le paquet bridge-utils.

On peut créer un pont entre deux interfaces de type ethernet. Pas besoin que ce soient des cartes ethernet physiques : cela peut être une interface virtuelle tap, une interface VLAN taggée ethX.Y (à ne pas confondre avec un alias IP ethX:Y qui n’est pas une interface), une interface d’agrégation bondX…

Par contre le pontage est une notion de niveau 2 (liaison), alors qu’une adresse IP est une notion de niveau 3 (réseau). Ponter des adresse n’a pas de sens. Les interfaces pontées ne devraient pas avoir d’adresse IP, seule l’interface pont (brX) qui les englobe devrait en avoir une.

Mais je répète, on n’en est pas encore là ; d’abord, il faut définir la topologie du réseau souhaitée. Ensuite il faudra la mettre en oeuvre, mais ce n’est pas le plus difficile.

ok j’ai bien lu et compris que c’est la cmd brctl qui manipule les ponts

je pige mieux déjà le but sera de faire le pont entre mon VLAN id:100 et le VLAN id: xxx

pour la topo du reseau, je vais essayer de faire un shema. comme on dit “un dessin vau mieux qu’un grand discourt”

a+

petit complément

si j’ai un switch qui gère les VLAN.
Suis je obligé d’installer le paquet vlan sur le serveur et de créer les deux VLAN ??

vconfig add eth1 100 
vconfig add eth1 200

d’installer le module 8021q ??

et après j’ai plus qu’ modifier le fichier /etc/network/interface
avec les nouveaux VLAN

auto eth1.100
iface eth1.100 inet static
address 192.168.10.xxx
netmask 255.255.255.0
broadcast 192.168.10.255

auto eth1.200
iface eth1.200 inet static
address 192.168.10.xxx
netmask 255.255.255.0
broadcast 192.168.10.255

ensuite je crée le pont

brctl addbr br0
brctl addif br0 eth1.100
brctl addif br0 eth1.200
ifconfig eth1.100 up
ifconfig eth1.200 up
ifconfig br0 up

apres je forward la mayo

iptables -A FORWARD -i br0 -j ACCEPT
iptables -A FORWARD -o br0 -j ACCEPT

corrigez moi si le raisonnement est foireux

Le paquet vlan est nécessaire pour créer des interfaces taggées, donc si le port du switch connecté à l’interface physique de la machine est configuré en mode taggé dans les deux VLAN (LAN de base et CPL).

Le module 8021q est inclus dans les noyaux Debian standards.

Si le but est de relier deux VLAN par un pont, il ne faut pas donner de paramètres IP aux interfaces VLAN mais créer un pont (le paquet bridge-utils doit être installé), y définir les deux interfaces VLAN comme ports et les paramètres IP.

auto br0 iface br0 inet static address ... netmask ... bridge_ports eth1.100 eth1.200

j’ai bien fait les modifs
et après avoir monté br0 (192.168.10.40) les 2 vlans apparaissent suite à un ifconfig
ainsi que le pont

brctl show
bridge name     bridge id               STP enabled     interfaces
br0             8000.00265abf90ac       no              eth1.100
                                                        eth1.200

sur le DIVX_1 (192.168.10.7) je voi le PC-ELINE (192.168.10.4) branché sur une cpl
mais pas le FREENAS (192.168.10.3) qui est sur le VLAN 200

sur le switch section Port PVID Configuration

Interface 	PVID (1 to 4093) 	Acceptable Frame Types
g2 	200 	Admit All
g11 	100 	Admit All

est ce un problème de règles IPTables ?? je suis passe à coté de quelque chose mais quoi :017

A moins qu’il y ait d’autres règles iptables, je pense que c’est lié à la configuration du switch. Les deux VLAN doivent sortir sur le port connecté à la machine qui fait le pont. En gros, tu dois avoir :

le port relié au réseau CPL : VLAN 100 non taggé
le port relié à la machine Debian qui fait le pont : VLAN 100 + 200 taggé
les autres ports du LAN de base (NAS…) : VLAN 200 non taggé

PS : la machine Debian qui fait le pont n’avait pas l’adresse 192.168.10.1 ?

c’est OK

[quote=“PascalHambourg”]les autres ports du LAN de base (NAS…) : VLAN 200 non taggé
[/quote]

c’est OK

[quote=“PascalHambourg”]PS : la machine Debian qui fait le pont n’avait pas l’adresse 192.168.10.1 ?
[/quote]

OK c’est l’interface eth1 sur laquelle le LAN est branché

c’est l’interface eth1 (192.168.10.1) qui est sur le port 1 du switch qui fait le pont
si je taggue le port 1 j’ai plus de net sur mon poste client

Le routeur internet est sur le LAN de base ?
Une fois dans le pont, eth1 ne doit plus avoir de configuration IP ni de routes. Tout doit être transféré sur le pont br0.

Edit : le poste client, c’est quoi ? où ?

OUI

quand je parle du poste client c’est mon PC perso (192.168.10.5) qui est sur le LAN

route -n
Table de routage IP du noyau
Destination     Passerelle      Genmask         Indic Metric Ref    Use Iface
192.168.20.0    0.0.0.0         255.255.255.0   U     0      0        0 eth2
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.10.0    0.0.0.0         255.255.255.0   U     0      0        0 eth1
192.168.10.0    0.0.0.0         255.255.255.0   U     0      0        0 br0
0.0.0.0         192.168.1.1     0.0.0.0         UG    0      0        0 eth0

D’après la table de routage, le routeur internet 192.168.1.1 n’est pas sur le LAN de base (192.168.10.x) mais sur un LAN distinct connecté à eth0. Donc si je comprends bien la machine Debian qui doit servir de pont sert déjà aussi de routeur intermédiaire entre le LAN de base et le routeur internet.

Comme je l’ai déjà dit, une fois le port taggé l’interface eth1 ne doit plus avoir ni adresse IP, ni passerelle, ni routes, ni règles iptables… ; tout cela doit être transféré à l’interface pont br0 qui relie les deux interfaces VLAN créées sur eth1.

c’est exact

c’est bien là le prob

dans le firewwall qui gere eth0 eth1 et eth2 j’ai une variable LAN_DEV=“eth1” il faudrait taggué le port 1 du switch et remplacer la variable LAN_DEV=“eth1” par LAN_DEV=“br0”

aprés test je vois le NAS mais les postes non plus de net. Je pense à un probleme de route à rajouter sur br0 ??