iptables, selection d'interface

iptables, selection d'interface - réseaux et sécurité - Linux et OS Alternatifs

Marsh Posté le 04-12-2014 à 17:08:13    

Bonjour,

 

Je me mets à iptables et je cherche à faire une chose relativement simple : tagger (au sens dscp) tous les paquets qui sortent d'une sous interface (eth0:1). Seulement ça ne fonctionne pas. Voilà la règle que j'ai fait :

 

iptables -t mangle -A OUTPUT -o eth0:1  -j DSCP --set-dscp-class EF

 

elle ne fonctionne pas donc (un iptables -t mangle -nvL montre que la règle n'est pas matchée, et c'est bien la seule règle existante donc pas d'interférence), pourtant si j'en fais une qui me semble équivalente en remplaçant le nom de l'interface par l'adresse IP, là ça fonctionne :

 

iptables -t mangle -A OUTPUT -s 192.168.5.12 -j DSCP --set-dscp-class EF

 

pour info, un ifconfig :

Code :
  1. eth0      Link encap:Ethernet  HWaddr 00:21:70:f0:5c:b4
  2.           inet adr:192.168.5.11  Bcast:192.168.5.255  Masque:255.255.255.0
  3.           adr inet6: fe80::221:70ff:fef0:5cb4/64 Scope:Lien
  4.           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
  5.           RX packets:3631377 errors:0 dropped:1572 overruns:0 frame:0
  6.           TX packets:87553 errors:0 dropped:0 overruns:0 carrier:0
  7.           collisions:0 lg file transmission:1000
  8.           RX bytes:646724219 (616.7 MiB)  TX bytes:27846551 (26.5 MiB)
  9.           Interruption:22 Mémoire:f6ae0000-f6b00000
  10. eth0:1    Link encap:Ethernet  HWaddr 00:21:70:f0:5c:b4
  11.           inet adr:192.168.5.12  Bcast:192.168.5.255  Masque:255.255.255.0
  12.           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
  13.           Interruption:22 Mémoire:f6ae0000-f6b00000


le test est fait en faisant un ping depuis une autre machine sur chacune des deux adresses (et ça répond toujours donc les deux interfaces sont bien fonctionnelles).

 

Qu'ai-je raté ? merci d'avance.


Message édité par Misssardonik le 04-12-2014 à 17:10:00

---------------
Que va-t-il se passer cette gelgamar ? vous le découvrirez janamont à 20h
Reply

Marsh Posté le 04-12-2014 à 17:08:13   

Reply

Marsh Posté le 04-12-2014 à 17:32:30    

avec -o eth0 ça marche non ?


Message édité par o'gure le 04-12-2014 à 17:32:40

---------------
Relax. Take a deep breath !
Reply

Marsh Posté le 04-12-2014 à 17:33:07    

Non je pense que c'est bien OUTPUT, la machine en question n'est pas un routeur, il est bien question des paquets qu'elle envoie elle-même (à terme son rôle serait quasiment seulement de répondre aux pings).

 

De toute façon au début j'avais mis FORWARD (parce que j'avais pas fait attention à la définition des termes) et ça ne marchait pas non plus.


Message édité par Misssardonik le 04-12-2014 à 17:53:28

---------------
Que va-t-il se passer cette gelgamar ? vous le découvrirez janamont à 20h
Reply

Marsh Posté le 04-12-2014 à 17:36:59    

j'ai édité, j'ai lu trop vite :o


---------------
Relax. Take a deep breath !
Reply

Marsh Posté le 04-12-2014 à 17:37:33    

bon j'ai trouvé ça au détour d'une recherche google :
 

Citation :

Let's give them the correct name: IP aliases.
 
The important thing to remember is that they are not separate interfaces. They are merely extra IPs added to the parent interface. They may have a name associated with them (e.g. eth0:0) — ifconfig only deals with this kind, but the newer ip tool works with unlabeled aliases too.
 
Netfilter does not match packets against the alias interface, only the real interface. Similarly, routing is always via a particular real interface.


http://forums.whirlpool.net.au/archive/1545515
 
Je me dis que ça pourrait peut-être aussi s'appliquer à mon cas et expliquer pourquoi ça ne marche pas.


---------------
Que va-t-il se passer cette gelgamar ? vous le découvrirez janamont à 20h
Reply

Marsh Posté le 04-12-2014 à 17:38:36    

oui avec -o eth0 ça marche. Enfin ça matche tout (eth0 et eth0:1 compris quoi), du moins (ce qui n'est pas ce que je veux).


Message édité par Misssardonik le 04-12-2014 à 17:39:03

---------------
Que va-t-il se passer cette gelgamar ? vous le découvrirez janamont à 20h
Reply

Marsh Posté le 04-12-2014 à 18:36:28    

Du coup, vu que tout match sur l'interface, et que t'a des IPs différentes par interfaces, tente de matcher sur l'IP source ? (Vu que ta machine n'es pas un routeur, j'en déduis que l'IP source des paquets que tu veux matcher sera celle de l'interface eth0:1 :o).


---------------
Fort et motivé. Sauf parfois.
Reply

Marsh Posté le 04-12-2014 à 18:52:49    

Pas con, peut-être qu'il faut lui nommer autrement l'interface et que ça ira mieux avec l'ip.

Reply

Marsh Posté le 04-12-2014 à 19:19:14    

oui ça ça marche (cf premier post [:wade:3] ) mais je préfèrerais ne pas avoir à spécifier d'IP pour pouvoir réutiliser la même conf sur plusieurs machines différentes.


---------------
Que va-t-il se passer cette gelgamar ? vous le découvrirez janamont à 20h
Reply

Marsh Posté le 04-12-2014 à 19:21:25    

Si c'est toujours l'IP de l'interface eth0:1, avec une ligne de grep/sd/awk, tu la récupère et tu l'injecte dans ta ligne iptable :jap:


---------------
Fort et motivé. Sauf parfois.
Reply

Marsh Posté le 04-12-2014 à 19:21:25   

Reply

Marsh Posté le 04-12-2014 à 19:26:42    

Peut-être pas utile mais sait-on jamais :
https://access.redhat.com/solutions/53031

Reply

Marsh Posté le 07-12-2014 à 01:37:21    

truc bête c'est pas les ":" qui posent problème?
si l'argument -0 accepte une string, peut être entre ""
Peut être il voit le :1 comme un port
enfin je dis ça je dis rien, j'ai même pas Linux sous la main ^^

Reply

Sujets relatifs:

Leave a Replay

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