iptables et forward

iptables et forward - Réseaux - Systèmes & Réseaux Pro

Marsh Posté le 23-06-2011 à 09:17:53    

Bonjour,
Je souhaiterais faire du forwarding entre plusieurs VLAN.
La finalité est de faire du Wake on Lan sur plusieurs VLAN.
Je m'explique :
J'ai un serveur ubuntu 10.04
J'ai configurer plusieurs VLAN sur mon serveur (vlan 1000 (par defaut), vlan 2000, vlan 3000)
Je voudrais :
*Que le trafic entrant qui arrive sur le port 2000 du vlan 1000 soit redirigé sur le port 9 du vlan 2000
*Que le trafic entrant qui arrive sur le port 3000 du vlan 1000 soit redirigé sur le port 9 du vlan 3000
 
Est-ce possible ?
Si oui comment.
Merci pour vos solutions.

Reply

Marsh Posté le 23-06-2011 à 09:17:53   

Reply

Marsh Posté le 23-06-2011 à 09:40:52    

1. activer le routage
2. Faire du policy based routing http://lartc.org/howto/
 

Reply

Marsh Posté le 23-06-2011 à 10:30:01    

1-Activer le routage: ok
J'avais fais cela pour utiliser iptables.
Mais concrétement j'ai du mal à comprendre le "policy based routing".
D'après ce que tu me dis cela n'est donc pas possible avec iptables ?

Reply

Marsh Posté le 23-06-2011 à 10:37:54    

Si tu fais des modifications de paquets (ie. changement du port TCP/UDP  destination), si il faut iptable. Seulement lorsque tu dis "entrée vlan 1000, sortie vlan 2000", je ne connais pas assez bien ta configuration pour savoir si le routage" se fera automatiquement et correctement. Si ce n'est pas le cas, il faut regarder le PBR

Reply

Marsh Posté le 23-06-2011 à 11:15:08    

Voici ce que je fais actuellement (qui ne fonctionne pas).
Voici mon fichier :
 

Code :
  1. #!/bin/bash
  2. # Vider les tables actuelles
  3. iptables -F
  4. iptables -t nat -F
  5. iptables -X
  6. iptables -P OUTPUT ACCEPT
  7. iptables -P INPUT ACCEPT
  8. iptables -t nat -P PREROUTING ACCEPT
  9. # Autoriser nouvelle connexion ou celle deja etablie
  10. iptables -A INPUT -m state --state NEW -j ACCEPT
  11. iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
  12. # Autoriser le FORWARD entre les VLAN
  13. iptables -A FORWARD -i eth0.1000 -o eth0.2000 -j ACCEPT
  14. iptables -A FORWARD -i eth0.1000 -o eth0.3000 -j ACCEPT
  15. # Ouverture des ports
  16. iptables -A INPUT -p udp --dport 2000 -j ACCEPT
  17. iptables -A INPUT -p udp --dport 3000 -j ACCEPT
  18. # Redirection de port :
  19.     # VLAN 2000
  20.         # Redirection entre VLAN (vlan par defaut vers vlan 2000)
  21. iptables -t filter -A FORWARD -i eth0.1000:2000 -o eth0.2000:9 -p UDP --dport 9 -j ACCEPT
  22.    # VLAN 3000
  23.         # Redirection entre VLAN (vlan par defaut vers vlan 3000)
  24. iptables -t filter -A FORWARD -i eth0.1000:3000 -o eth0.2000:9 -p UDP --dport 9 -j ACCEPT
  25.    
  26. # Activer IP Forwarding
  27. echo 1 > /proc/sys/net/ipv4/ip_forward


 
As-tu une idée ?
 
 
 
 

Reply

Marsh Posté le 23-06-2011 à 11:31:02    

flolag00 a écrit :


Code :
  1. # Redirection de port :
  2.     # VLAN 2000
  3.         # Redirection entre VLAN (vlan par defaut vers vlan 2000)
  4. iptables -t filter -A FORWARD -i eth0.1000:2000 -o eth0.2000:9 -p UDP --dport 9 -j ACCEPT
  5.    # VLAN 3000
  6.         # Redirection entre VLAN (vlan par defaut vers vlan 3000)
  7. iptables -t filter -A FORWARD -i eth0.1000:3000 -o eth0.2000:9 -p UDP --dport 9 -j ACCEPT
 



Ce n'est pas comme ça que ça fonctionne la redirection de port.
3000 et 9 ce sont des ports UDP, pourquoi tu tentes de faire quelque chose en liant ces nombres à l'interface ?
C'est dans la table NAT qu'il faut agir pour la redirection de port avec une action -j DNAT par exemple.

 

Tu as deux choses à prendre en compte :
 

 

  • s'assurer que le trafic modifié sort bien/est bien routé sur le bon vlan


Message édité par o'gure le 23-06-2011 à 11:32:34
Reply

Marsh Posté le 23-06-2011 à 11:44:20    

Je vais lire ta docs interessante et tester.
 
Cependant juste une petite questions annexe.
Sur mon serveur j'ai une seule carte réseau ou j'ai configuré 3 VLAN (vlan 1000, vlan 2000, vlan 3000).
Comment faire pour lui spécifier d'envoyer un paquet sur tel ou tel vlan ? le fait-il automatiquement ?
 
Merci

Reply

Marsh Posté le 23-06-2011 à 11:53:50    

flolag00 a écrit :

Comment faire pour lui spécifier d'envoyer un paquet sur tel ou tel vlan ? le fait-il automatiquement ?


Par défaut, c'est les règles de la table de routage qui s'applique. Pour la consulter :

route -n


A moins que tu aies rajouter d'autres routes que celle par défaut, c'est en fonction de l'adressage connu de ton routeur, c'est à dire que :
  . si sur eth.1000 tu es en 192.168.1.0/24
  . si sur eth.2000 tu es en 192.168.2.0/24

 

Le trafic à destination de 192.168.2.0/24 sortira toujours par eth.2000 (sauf si tu mets des règles spécifiques pour le modifier)

 

Y a un truc que je ne comprends pas dans ton histoire, tu veux faire du wake-on-lan et tu t'amuses à faire du routage. Tu connais la nature  des paquets "wake-on-lan" ?
cf. :
http://en.wikipedia.org/wiki/Wake-on-LAN et plus précisément http://en.wikipedia.org/wiki/Wake- [...] broadcasts


Message édité par o'gure le 23-06-2011 à 11:54:53
Reply

Marsh Posté le 23-06-2011 à 12:07:13    

Je sais que le Wake on Lan ne passe pas les VLAN.
 
C'est justement pour cela que mon idée etait d'avoir un serveur multi vlan (vlan 1000, vlan 2000, vlan 3000) qui servira en fait de proxy et renverra les paquets wake on lan sur le vlan voulu.
 
A ton avis cela ne serait pas possible ?

Reply

Marsh Posté le 23-06-2011 à 13:10:58    

Je ne connais pas assez le Wake-On-Lan pour te répondre.
La problématique qu'il y a, c'est "à quelle adresse MAC sur le réseau destination faut-il envoyer le trafic ?". Dès que tu as un noeud de routage, l'adresse MAC destination est changée.
 
D'après l'article que je t'ai linké, ce qu'il faut faire c'est autorisé le subnet-directed broadcast sur le routeur linux.

Reply

Marsh Posté le 23-06-2011 à 13:10:58   

Reply

Marsh Posté le 23-06-2011 à 13:41:52    

Quand tu dis autorisé le subnet-directed broadcast sur le routeur linux tu veux parlé des routeurs de mon réseau ou de mon serveur linux ?

Reply

Marsh Posté le 23-06-2011 à 13:49:15    

Tu as lu au moins le dernier lien ? Parce que dans tous les cas je t'invite à le lire/relire

Reply

Marsh Posté le 23-06-2011 à 14:12:51    

Je comprend.
Mais ce qui m'intrigue c'est qu'en faisant du Wake on Lan directement de mon serveur (celui qui a plusieurs VLAN) ceci fonctionne si je lui specifie sur quel vlan envoyé le paquet (exemple :#etherwake -i eth0.2000 @MAC_DE_LA_MACHINE_A_REVEILLER) alors que je suis dans un autre batiment.
C'est ce test qui me fait penser  
-qu'en redirigeant tout le trafic entrant sur le port 2000 soit envoyé sur eth0.2000  
+
-et tout le trafic entrant sur le port 3000 soit envoyé sur eth0.3000 cela pourrait fonctionner. Après je me trompe peut être.
 

Reply

Marsh Posté le 23-06-2011 à 15:06:34    

le concept de vlan c'est un domaine de broadcast. Un vlan peut s'étendre entre deux batiments séparé par une rue ou le pacifique. Tant que t'es dans le même domaine de broadcast, ton paquet wol est valide.
 
Dès que tu insères un point de routage au milieu, les informations de niveau 2 (adresse MAC) sont modifiées, le broadcast ne passe plus. D'où mon deuxième lien.

Reply

Marsh Posté le 23-06-2011 à 15:24:33    

Donc si je comprend bien le fait que mon paquet arrive sur mon serveur et soit router fait que les informations de niveau 2 sont modifiées et donc le broadcast ne passe plus d'ou le fait que cela ne peut pas fonctionner dans mon cas actuel.
 
J'ai vu qu'avec ebtables qu'il est possible de travailler au niveau 2.
Je vais chercher avec ces deux liens que j'ai trouvé mais cela m'a l'air assez complexe et mes connaissances sont limitées.
http://ebtables.sourceforge.net/
http://ebtables.sourceforge.net/eb [...] HOWTO.html

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed