On vite l'inclusion d'un rgle avec un numro fixe
darcs-hash:20060428211113-72cb0-73c9f88e7461c1612bafb51fb40aa2bb3244fbf2.gz
This commit is contained in:
parent
411144f361
commit
d6f0260382
1 changed files with 21 additions and 19 deletions
|
@ -504,6 +504,24 @@ class firewall_komaz(firewall_crans) :
|
|||
|
||||
# On ne va pas plus loin si il ne s'agit pas de bittorrent
|
||||
iptables("-t mangle -A POSTROUTING -m mark ! --mark %s -j ACCEPT" % conf_fw.mark['bittorrent'])
|
||||
print OK
|
||||
|
||||
# On marque les paquets bittorrent uniquement
|
||||
iptables("-t mangle -A PREROUTING -p tcp -j CONNMARK --restore-mark")
|
||||
iptables("-t mangle -A PREROUTING -p tcp -m mark ! --mark 0x0 " +
|
||||
"-j ACCEPT")
|
||||
iptables("-t mangle -A PREROUTING -p tcp -m ipp2p --bit -j MARK " +
|
||||
"--set-mark %s" % conf_fw.mark['bittorrent'])
|
||||
iptables("-t mangle -A PREROUTING -p tcp -m mark " +
|
||||
"--mark %s -j CONNMARK --save-mark" % conf_fw.mark['bittorrent'])
|
||||
|
||||
warn = ''
|
||||
# Par défaut on envoit les paquets dans la classe 9998
|
||||
for net in NETs['all'] :
|
||||
iptables("-t mangle -A POSTROUTING -o crans -d %s " % net +
|
||||
"-j CLASSIFY --set-class 1:9998")
|
||||
iptables("-t mangle -A POSTROUTING -o ens -s %s " % net +
|
||||
"-j CLASSIFY --set-class 1:9998")
|
||||
# On crée les chaînes de sous-réseaux
|
||||
for net in NETs['all'] :
|
||||
for mask in conf_fw.mask :
|
||||
|
@ -517,23 +535,11 @@ class firewall_komaz(firewall_crans) :
|
|||
prev_chain = "SUBNET-%s" % prev_subnet
|
||||
next_chain = "SUBNET-%s" % subnet
|
||||
redirect_chain('mangle', prev_chain, next_chain, subnet)
|
||||
print OK
|
||||
|
||||
# On marque les paquets bittorrent uniquement
|
||||
iptables("-t mangle -A PREROUTING -p tcp -j CONNMARK --restore-mark")
|
||||
iptables("-t mangle -A PREROUTING -p tcp -m mark ! --mark 0x0 " +
|
||||
"-j ACCEPT")
|
||||
iptables("-t mangle -A PREROUTING -p tcp -m ipp2p --bit -j MARK " +
|
||||
"--set-mark %s" % conf_fw.mark['bittorrent'])
|
||||
iptables("-t mangle -A PREROUTING -p tcp -m mark " +
|
||||
"--mark %s -j CONNMARK --save-mark" % conf_fw.mark['bittorrent'])
|
||||
|
||||
|
||||
adherents = db.search('paiement=ok')['adherent']
|
||||
# On calcule le débit garanti pour un adhérent
|
||||
debit_adh = p2p.debit_max/(len(adherents)+1)
|
||||
|
||||
self.anim = anim('\tGénération des classes de filtrage p2p', len(adherents))
|
||||
warn = ''
|
||||
# Création des classes et qdisc
|
||||
for interface in [self.eth_ext, self.eth_int] :
|
||||
# On vide les classes et qdisc
|
||||
|
@ -547,12 +553,8 @@ class firewall_komaz(firewall_crans) :
|
|||
tc("class add dev %s parent 1: classid 1:1 htb rate %s ceil %s" % (interface, p2p.debit_max, p2p.debit_max))
|
||||
tc("class add dev %s parent 1:1 classid 1:9998 htb rate %s ceil %s" % (interface, debit_adh, debit_adh))
|
||||
tc("qdisc add dev %s parent 1:9998 handle 9999: sfq perturb 10" % interface)
|
||||
# Par défaut on envoit les paquets dans la classe 9998
|
||||
for net in NETs['all'] :
|
||||
iptables("-t mangle -I POSTROUTING 2 -o crans -d %s " % net +
|
||||
"-j CLASSIFY --set-class 1:9998")
|
||||
iptables("-t mangle -I POSTROUTING 2 -o ens -s %s " % net +
|
||||
"-j CLASSIFY --set-class 1:9998")
|
||||
|
||||
self.anim = anim('\tGénération des classes de filtrage p2p', len(adherents))
|
||||
# On construit ensuite les classes et qdisc pour chaque adhérent
|
||||
for adherent in adherents :
|
||||
self.anim.cycle()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue