Oui, ce n'est pas iptables, c'est tc 
man tc dit "tc - show / manipulate traffic control settings"

Thomas

On 7 Jun 2013, at 14:53, Antoine Durant <antoine.duran...@yahoo.fr> wrote:

> Ok merci pour le partage, belle config et wouaa un peu chaud quand même :)
>  
> Dans ton exemple si je ne me trompe pas, tu n'utilises pas IPTABLES 
> (MARK/CLASSIFY) ??
> Cela est directement via "match ip src" ?? Donc pas besoin d'iptables avec ta 
> façon de faire ??
>  
> Le "hashkey" est une variable que tu remplaces par la MAC du serveur de ton 
> client je présume ??
> 
> De : Thomas Mangin <thomas.man...@exa-networks.co.uk>
> À : frnog-ow...@frnog.org; Antoine Durant <antoine.duran...@yahoo.fr> 
> Cc : "frnog-t...@frnog.org" <frnog-t...@frnog.org> 
> Envoyé le : Vendredi 7 juin 2013 15h25
> Objet : Re: [FRnOG] [TECH] trafic shaping sur linux
> 
> C'est un peu long a expliquer ... Donc la config simplifie ...
> 
> # Clear config
> tc qdisc del dev eth0 root handle 1
> tc qdisc del dev eth1 root handle 1
> 
> # Setup HTB queueing discipline on physical interfaces
> tc qdisc add dev eth0 root handle 1: htb default 9999
> tc qdisc add dev eth1 root handle 1: htb default 9999
> 
> # Set default for unclassified packets to 1M each direction
> tc class add dev eth0 parent 1:0 classid 1:9999 htb rate 100000kbit ceil 
> 100000kbit burst 16k prio 9999
> tc class add dev eth1 parent 1:0 classid 1:9999 htb rate 100000kbit ceil 
> 100000kbit burst 16k prio 9999
> 
> #
> # eth0 - filter egress trafic on SRC MAC
> # Step 1, build 1st level hash table using last byte in MAC address as lookup 
> key
> # Step 2, build 2nd level hash tables using 2nd to last byte in MAC address 
> as lookup key
> #
> # See http://www.docum.org/docum.org/faq/cache/62.htmlfor info regards 
> matching L2 header using negative offsets
> #
> tc filter add dev eth0 parent 1:0 prio 5 protocol 802.1q u32
> tc filter add dev eth0 parent 1:0 prio 5 handle 2: protocol 802.1q u32 
> divisor 256
> tc filter add dev eth0 protocol 802.1q parent 1:0 prio 5 u32 ht 800:: match 
> ip src 0.0.0.0/0 hashkey mask 0x000000ff at -8 link 2:
> 
> tc filter add dev eth0 parent 1:0 prio 5 handle 200: protocol 802.1q u32 
> divisor 256
> tc filter add dev eth0 protocol 802.1q parent 1:0 prio 5 u32 ht 2:0 match ip 
> src 0.0.0.0/0 hashkey mask 0x0000ff00 at -8 link 200:
> tc filter add dev eth0 parent 1:0 prio 5 handle 201: protocol 802.1q u32 
> divisor 256
> tc filter add dev eth0 protocol 802.1q parent 1:0 prio 5 u32 ht 2:1 match ip 
> src 0.0.0.0/0 hashkey mask 0x0000ff00 at -8 link 201:
> tc filter add dev eth0 parent 1:0 prio 5 handle 202: protocol 802.1q u32 
> divisor 256
> tc filter add dev eth0 protocol 802.1q parent 1:0 prio 5 u32 ht 2:2 match ip 
> src 0.0.0.0/0 hashkey mask 0x0000ff00 at -8 link 202:
> tc filter add dev eth0 parent 1:0 prio 5 handle 203: protocol 802.1q u32 
> divisor 256
> tc filter add dev eth0 protocol 802.1q parent 1:0 prio 5 u32 ht 2:3 match ip 
> src 0.0.0.0/0 hashkey mask 0x0000ff00 at -8 link 203:
> tc filter add dev eth0 parent 1:0 prio 5 handle 204: protocol 802.1q u32 
> divisor 256
> tc filter add dev eth0 protocol 802.1q parent 1:0 prio 5 u32 ht 2:4 match ip 
> src 0.0.0.0/0 hashkey mask 0x0000ff00 at -8 link 204:
> tc filter add dev eth0 parent 1:0 prio 5 handle 205: protocol 802.1q u32 
> divisor 256
> tc filter add dev eth0 protocol 802.1q parent 1:0 prio 5 u32 ht 2:5 match ip 
> src 0.0.0.0/0 hashkey mask 0x0000ff00 at -8 link 205:
> tc filter add dev eth0 parent 1:0 prio 5 handle 206: protocol 802.1q u32 
> divisor 256
> tc filter add dev eth0 protocol 802.1q parent 1:0 prio 5 u32 ht 2:6 match ip 
> src 0.0.0.0/0 hashkey mask 0x0000ff00 at -8 link 206:
> tc filter add dev eth0 parent 1:0 prio 5 handle 207: protocol 802.1q u32 
> divisor 256
> tc filter add dev eth0 protocol 802.1q parent 1:0 prio 5 u32 ht 2:7 match ip 
> src 0.0.0.0/0 hashkey mask 0x0000ff00 at -8 link 207:
> ...
> 
> 
> #
> # eth1 - filter ingress trafic on SRC MAC
> # Step 1, build 1st level hash table using last byte in MAC address as lookup 
> key
> # Step 2, build 2nd level hash tables using 2nd to last byte in MAC address 
> as lookup key
> #
> # See http://www.docum.org/docum.org/faq/cache/62.htmlfor info regards 
> matching L2 header using negative offsets
> #
> tc filter add dev eth1 parent 1:0 prio 5 protocol 802.1q u32
> tc filter add dev eth1 parent 1:0 prio 5 handle 2: protocol 802.1q u32 
> divisor 256
> tc filter add dev eth1 protocol 802.1q parent 1:0 prio 5 u32 ht 800:: match 
> ip src 0.0.0.0/0 hashkey mask 0x00ff0000 at -12 link 2:
> 
> tc filter add dev eth1 parent 1:0 prio 5 handle 200: protocol 802.1q u32 
> divisor 256
> tc filter add dev eth1 protocol 802.1q parent 1:0 prio 5 u32 ht 2:0 match ip 
> src 0.0.0.0/0 hashkey mask 0xff000000 at -12 link 200:
> tc filter add dev eth1 parent 1:0 prio 5 handle 201: protocol 802.1q u32 
> divisor 256
> tc filter add dev eth1 protocol 802.1q parent 1:0 prio 5 u32 ht 2:1 match ip 
> src 0.0.0.0/0 hashkey mask 0xff000000 at -12 link 201:
> tc filter add dev eth1 parent 1:0 prio 5 handle 202: protocol 802.1q u32 
> divisor 256
> tc filter add dev eth1 protocol 802.1q parent 1:0 prio 5 u32 ht 2:2 match ip 
> src 0.0.0.0/0 hashkey mask 0xff000000 at -12 link 202:
> tc filter add dev eth1 parent 1:0 prio 5 handle 203: protocol 802.1q u32 
> divisor 256
> tc filter add dev eth1 protocol 802.1q parent 1:0 prio 5 u32 ht 2:3 match ip 
> src 0.0.0.0/0 hashkey mask 0xff000000 at -12 link 203:
> tc filter add dev eth1 parent 1:0 prio 5 handle 204: protocol 802.1q u32 
> divisor 256
> tc filter add dev eth1 protocol 802.1q parent 1:0 prio 5 u32 ht 2:4 match ip 
> src 0.0.0.0/0 hashkey mask 0xff000000 at -12 link 204:
> tc filter add dev eth1 parent 1:0 prio 5 handle 205: protocol 802.1q u32 
> divisor 256
> tc filter add dev eth1 protocol 802.1q parent 1:0 prio 5 u32 ht 2:5 match ip 
> src 0.0.0.0/0 hashkey mask 0xff000000 at -12 link 205:
> tc filter add dev eth1 parent 1:0 prio 5 handle 206: protocol 802.1q u32 
> divisor 256
> tc filter add dev eth1 protocol 802.1q parent 1:0 prio 5 u32 ht 2:6 match ip 
> src 0.0.0.0/0 hashkey mask 0xff000000 at -12 link 206:
> tc filter add dev eth1 parent 1:0 prio 5 handle 207: protocol 802.1q u32 
> divisor 256
> tc filter add dev eth1 protocol 802.1q parent 1:0 prio 5 u32 ht 2:7 match ip 
> src 0.0.0.0/0 hashkey mask 0xff000000 at -12 link 207:
> ...
> 
> # Create a queue for each customer and assign their devices to it
> 
> # filtered client 1 - 2Mb
> tc class add dev eth0 parent 1:0 classid 1:1000 htb rate 2097152 ceil 2097152 
> burst 16k prio 5
> tc class add dev eth1 parent 1:0 classid 1:1000 htb rate 2097152 ceil 2097152 
> burst 16k prio 5
> tc filter add dev eth0 protocol 802.1q parent 1:0 prio 5 u32 ht 220:12 match 
> u32 0xb88d1214 0xffffffff at -8 match u16 0x3dae 0xffff at -4 flowid 1:1000
> tc filter add dev eth1 protocol 802.1q parent 1:0 prio 5 u32 ht 220:12 match 
> u32 0x12143dae 0xffffffff at -12 match u16 0xb88d 0xffff at -14 flowid 1:1000
> 
> # filtered client - 10 Mb ( 2 MAC )
> tc class add dev eth0 parent 1:0 classid 1:1131 htb rate 10240000 ceil 
> 10240000 burst 16k prio 5
> tc class add dev eth1 parent 1:0 classid 1:1131 htb rate 10240000 ceil 
> 10240000 burst 16k prio 5
> tc filter add dev eth0 protocol 802.1q parent 1:0 prio 5 u32 ht 237:7b match 
> u32 0x68967b25 0xffffffff at -8 match u16 0x2659 0xffff at -4 flowid 1:1131
> tc filter add dev eth1 protocol 802.1q parent 1:0 prio 5 u32 ht 237:7b match 
> u32 0x7b252659 0xffffffff at -12 match u16 0x6896 0xffff at -14 flowid 1:1131
> tc filter add dev eth0 protocol 802.1q parent 1:0 prio 5 u32 ht 340:c4 match 
> u32 0x68a3c48c 0xffffffff at -8 match u16 0x5166 0xffff at -4 flowid 1:1131
> tc filter add dev eth1 protocol 802.1q parent 1:0 prio 5 u32 ht 340:c4 match 
> u32 0xc48c5166 0xffffffff at -12 match u16 0x68a3 0xffff at -14 flowid 1:1131
> ....
> 
> beaucoup beaucoup plus ..
> 
> Thomas
> 
> On 7 Jun 2013, at 14:03, Antoine Durant <antoine.duran...@yahoo.fr> wrote:
> 
> > Pas bête... Et comment cela se présente t'il ?
> >  
> > Peux-tu expliquer plus en détail la configuration STP ?
> >  
> > Merci
> > 
> > 
> > ________________________________
> > De : Thomas Mangin <thomas.man...@exa-networks.co.uk>
> > À : frnog-ow...@frnog.org; Antoine Durant <antoine.duran...@yahoo.fr> 
> > Cc : "frnog-t...@frnog.org" <frnog-t...@frnog.org> 
> > Envoyé le : Vendredi 7 juin 2013 14h34
> > Objet : Re: [FRnOG] [TECH] trafic shaping sur linux
> > 
> > 
> > Pour une solution on nous limitons environ 1000 clients a quelques Mb 
> > chacun avec TC (pas d'IGP ou EGP sur la machine, juste une passerelle 
> > "transparente")
> > Nous utilisons une hash lookup table de deux niveaux sur les adresses MAC.
> > 
> > Facile : seulement une fois que tu as un script qui génère la configuration
> > Fiable: oui, si les règles sont bien conçues.
> > 
> > Thomas
> > 
> > On 7 Jun 2013, at 09:58, Antoine Durant <antoine.duran...@yahoo.fr> wrote:
> > 
> >> Bonjour,
> >>  
> >> Une petite question concernant le trafic shaping avec TC sous Linux...
> >> 
> >> Parmi-vous, est-ce que vous implantez le trafic shaping sur vos routeurs 
> >> BGP (quagga par exemple) ?
> >> Facile en mettre en œuvre, fiable ?  Cela bouffe t’il beaucoup de 
> >> ressource machine ?
> >> 
> >> Je pense utiliser tc qdisc/tc class couplé à iptables (mangle/POSTROUTING) 
> >> avec CLASSIFY afin de matcher sur mes classid du tc class.
> >> 
> >> J’attends vos retours d’expérience avec impatience et voir même quelque 
> >> petit exemple de config si vous en avez sous la main…
> >> A++
> >> ---------------------------
> >> Liste de diffusion du FRnOG
> >> http://www.frnog.org/
> >> 
> > 
> > 
> > ---------------------------
> > Liste de diffusion du FRnOG
> > http://www.frnog.org/
> > ---------------------------
> > Liste de diffusion du FRnOG
> > http://www.frnog.org/
> > 
> 
> 
> ---------------------------
> Liste de diffusion du FRnOG
> http://www.frnog.org/
> 


---------------------------
Liste de diffusion du FRnOG
http://www.frnog.org/

Répondre à