Newsgroup: it.comp.os.linux.sys
Titolo: tc, ingress e fwmark...

 
Da tempo uso i fwmark di iptables per settare dei marker, e usarli poi
nell'egress policying.
 
Leggendo in giro sono capitato su:
 
 
http://opalsoft.net/qos/DS-27.htm
 
 
(ad esempio figura cm-34), dove sembra possibile fare anche ingress
policying usando i fwmark.
 
 
Peccato che sembra non matchare nulla, ad esempio:
 
 tank:/etc/network# tc -s -d filter show dev eth1 parent ffff:
 filter protocol ip pref 1 fw 
 filter protocol ip pref 1 fw handle 0x1 classid :1  police 0x1f rate 2000Kbit burst 20Kb mtu 2Kb action drop overhead 0b ref 1 bind 1
 
  Sent 0 bytes 0 pkts (dropped 0, overlimits 0) 
 filter protocol ip pref 2 fw 
 filter protocol ip pref 2 fw handle 0x2 classid :2  police 0x20 rate 2000Kbit burst 10Kb mtu 2Kb action drop overhead 0b ref 1 bind 1
 
  Sent 0 bytes 0 pkts (dropped 0, overlimits 0) 
 filter protocol ip pref 3 fw 
 filter protocol ip pref 3 fw handle 0x3 classid :3  police 0x21 rate 2000Kbit burst 5Kb mtu 2Kb action drop overhead 0b ref 1 bind 1
 
  Sent 0 bytes 0 pkts (dropped 0, overlimits 0) 
 filter protocol ip pref 4 fw 
 filter protocol ip pref 4 fw handle 0x4 classid :4  police 0x22 rate 2000Kbit burst 5Kb mtu 2Kb action drop overhead 0b ref 1 bind 1
 
  Sent 0 bytes 0 pkts (dropped 0, overlimits 0) 
 filter protocol ip pref 5 fw 
 filter protocol ip pref 5 fw handle 0x5 classid :5  police 0x23 rate 1000Kbit burst 5Kb mtu 2Kb action drop overhead 0b ref 1 bind 1
 
  Sent 0 bytes 0 pkts (dropped 0, overlimits 0) 
 filter protocol ip pref 8 fw 
 filter protocol ip pref 8 fw handle 0x8 classid :8  police 0x24 rate 1000Kbit burst 5Kb mtu 2Kb action drop overhead 0b  ref 1 bind 1
 
  Sent 0 bytes 0 pkts (dropped 0, overlimits 0) 
 filter protocol ip pref 50 u32 
 filter protocol ip pref 50 u32 fh 800: ht divisor 1 
 filter protocol ip pref 50 u32 fh 800::800 order 2048 key ht 800 bkt 0 flowid :50  (rule hit 50363 success 50363) match 00000000/00000000 at 12 (success 50363 ) 
 police 0x25 rate 2000Kbit burst 50Kb mtu 2Kb action drop overhead 0b ref 1 bind 1
 
  Sent 60491337 bytes 50363 pkts (dropped 0, overlimits 0) 
 
 
L'ultima è una entry che utilizza u32 e che ho messo ''per verifica'',
ma non dovrebbe matchare nulla.
 
E invece sembra matchare tutto, perchè le altre sono inefficaci.
 
 
iptables sembra andare, la mia PREROUTING è:
 
 Chain PREROUTING (policy ACCEPT 10M packets, 6345M bytes)
  pkts bytes target     prot opt in     out     source               destination         
  276K  155M mrk-pre-in  all  --  *      *       
0.0.0.0/0
 
0.0.0.0/0
 
  276K  155M CONNMARK   all  --  *      *       
0.0.0.0/0
 
0.0.0.0/0
           CONNMARK restore 
 12030  974K mrk-post-in  all  --  *      *       
0.0.0.0/0
 
0.0.0.0/0
           mark match 0x0 
  276K  155M CONNMARK   all  --  *      *       
0.0.0.0/0
 
0.0.0.0/0
           CONNMARK save 
 
e ad esempio l'inizio di mrk-post-in:
 
 Chain mrk-post-in (1 references)
  pkts bytes target     prot opt in     out     source               destination         
     3   368 MARK       udp  --  *      *       
0.0.0.0/0
 
0.0.0.0/0
           multiport dports 22001,22027 MARK xset 0x1/0xffffffff 
     3   368 RETURN     udp  --  *      *       
0.0.0.0/0
 
0.0.0.0/0
           multiport dports 22001,22027 
     2   474 MARK       udp  --  *      *       
0.0.0.0/0
 
0.0.0.0/0
           multiport dports 5060,5061,4569 MARK xset 0x1/0xffffffff 
     2   474 RETURN     udp  --  *      *       
0.0.0.0/0
 
0.0.0.0/0
           multiport dports 5060,5061,4569 
     0     0 MARK       udp  --  *      *       
0.0.0.0/0
 
0.0.0.0/0
           multiport sports 5060,5061,4569 MARK xset 0x1/0xffffffff 
     0     0 RETURN     udp  --  *      *       
0.0.0.0/0
 
0.0.0.0/0
           multiport sports 5060,5061,4569 
     0     0 MARK       all  --  *      *       
0.0.0.0/0
 
0.0.0.0/0
           helper match "sip" MARK xset 0x1/0xffffffff 
     0     0 RETURN     all  --  *      *       
0.0.0.0/0
 
0.0.0.0/0
           helper match "sip" 
 
come vedete sembra funzionare.
 
 
Cosa sbaglio? Grazie.
 
-- 
  Microsoft is to Software as McDonalds is to Cuisine.

Mandi! Marco Gaiarin
  In chel dì si favelave...
 
MG> Peccato che sembra non matchare nulla, ad esempio:
 
Ravanando in giro, ho trovato:
 
http://mailman.ds9a.nl/pipermail/lartc/2005q2/015400.html
 
 
ma ci ho capito ben poco.
 
Ho provato ad usare u32 per fare match dei fwmark (u32 match mark $l
0xffff) invece del match ''diretto'' ma non cambia nulla.
Sembra che in ingress i fwmark siano bellamente ignorati.
 
 
Più generalmente: se ho bisogno di chiedere queste cose, vista la morte
ormai certa di lartc, dove chiedo?
 
 
Grazie.
 
-- 
  Vedi, è che in gastronomia ci sono quello che mangia e quello che cucina.
  Nella nostra politica, quello che cucina, manca…   (Emanuele Pucciarelli)

 
MG> Più generalmente: se ho bisogno di chiedere queste cose, vista la morte
MG> ormai certa di lartc, dove chiedo?
 
Yuhuuuu!!! LARTC è rinata!!! Ed è su vger!!!
 
 
http://vger.kernel.org/vger-lists.html#lartc
 
 
 
Mi hanno già risposto, e il problema è tutto qui:
 
 
http://www.imagestream.com/~josh/PacketFlow.gif
 
 
Nei kernel 2.6 e successivi, ingress è prima di prerouting, quindi è
ovvio che non vede i markers.
 
-- 
  Free software is a matter of freedom, not a matter of price
							(RMS et al.)

 ovvio che non vede i markers.
 
Io con quella ci avevo fatto un poster LOL
 
Ciao,
Niccolò

 	
http://www.imagestream.com/~josh/PacketFlow.gif
 
 
  Finalmente una buona idea per la nuova carta da parati.
 
 
  Ciao,
 
 
-- 
Alessandro Selli 
http://alessandro.route-add.net
 
AVVERTENZA: i messaggi inviati a "trappola" non mi arriveranno.
WARNING: messages sent to "trappola" will never reach me.