Acties:
  • 0 Henk 'm!

  • hell4you
  • Registratie: Mei 2006
  • Laatst online: 19:28
Ik ben bezig met het opzetten van een Linux server voor op een LANparty met +- 80 deelnemers. Er komt een internet verbinding van 60mbit en ik wil voorkomen dat een downloader alle bandbreedte inpikt en vervolgens de gamers achterlaat met een ping van over de 100ms.

Ik dacht zelf om d.m.v. Linux QoS een aantal dingen af te dwingen. De bedoeling is om de bandbreedte per IP te beperken. Daarvoor heb ik al het e.e.a uitgezocht en ben op het volgende script uitgekomen:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
DEV=eth0
MAX=60mbit
LIMIT=6mbit
IP=192.168.10.98

echo "Resetting traffic shaping..."
tc qdisc del dev ${DEV} root handle 1 > /dev/null 2> /dev/null
iptables -t mangle -F

echo "Setting up base rules..."
tc qdisc add dev ${DEV} root handle 1: htb default 9999
tc class add dev ${DEV} parent 1: classid 1:9999 htb rate ${MAX} ceil ${MAX} burst 5k prio 9999

echo "Limitting traffic from ${IP} to ${LIMIT}..."
tc class add dev ${DEV} parent 1:0 classid 1:1 htb rate ${LIMIT} ceil ${LIMIT} burst 5k prio 1
iptables -t mangle -A PREROUTING -i ${DEV} -s ${IP} -j CONNMARK --set-mark 1
tc filter add dev ${DEV} parent 1:0 protocol ip prio 1 handle 1 fw flowid 1:1

echo "Adding mark status reset rule..."
iptables -t mangle -A POSTROUTING -j CONNMARK --restore-mark


Het bovenstaande script beperkt helaas alleen de bandbreedte voor één IP en niet een hele range. Ik wil eigenlijk dat iedere deelnemer een eigen queue heeft met hetzelfde limiet. Het probleem is dan dat ik voor ieder IP een losse regel moet maken en dat moet dan naderhand op locatie nog gebeuren. Het lijkt me geen goed plan om een losse regel toe te voegen voor elk IP-adres in de DHCP range.

Daarbij wil ik niet dat het limiet op 60/80 komt te liggen. Het komt toch nooit voor dat iedereen tegelijk een patch aan het downloaden is. Stel dat ik mijn plan hierboven doorvoer (met bijv. een limiet van 6mbit), wordt dan bij 11 downloadende users de bandbreedte alsnog gelijkmatig verdeeld? Dan is nog maar de vraag of 80 queue's in QoS nog betrouwbaar blijft en vooral de performance niet beïnvloedt.

Als laatste is er een reglement waarin staat dat het geen facebook, msn, enz... -party gaat worden. Bittorrent of nieuwsgroepen is helemaal uit den boze. De LAN duurt maar 2 dagen en om te voorkomen dat iedereen constant aan het internetten blijft ipv te gamen, of juist daarvoor naar de LAN komen, wil ik deze services preventief blokkeren. Ik weet dat ik een Layer 7 (Application layer) filter nodig heb om DPI toe te passen. Alleen krijg ik sterk de indruk dat dit momenteel nogal een uitgestorven techniek in de Linux wereld is. Er is namelijk alleen support voor relatief oude kernels. Ik heb zelf de sources gepatcht voor support op de Linux 3.1.x kernels en iptables met de L7 extensie from source gebouwd. Vervolgens voeg ik de iptables rule toe:

code:
1
iptables -t mangle -A PREROUTING -m layer7 --l7proto msnmessenger -j MARK --set-mark 7


Alles lijkt te werken (geen foutmeldingen), maar toch wordt het verkeer niet gefilterd. Heeft iemand hier een advies voor, want wellicht is dit niet de beste aanpak.

De discussie of ik de layer 7 filter wel of niet moet toepassen wil ik best aangaan, maar dat is niet het hoofddoel van dit topic.

Acties:
  • 0 Henk 'm!

  • Rolfie
  • Registratie: Oktober 2003
  • Laatst online: 20:06
Misschien gewoon een kant en klare firewall nemen?
pfsense kan dit volgens mij out of the box.
En zo zijn er nog diverse volgens mij...

Acties:
  • 0 Henk 'm!

  • Joseph
  • Registratie: April 2008
  • Laatst online: 11-09 12:16
Simpel.
192.168.10.0-192.168.10.254
Gewoon de gewenste range specificeren. Begin IP(-)Eind IP zonder spaties.

Note: MSN is sterk afhankelijk van poorten. Trek die even na, en zet die dicht. Skype is extreem lastig omdat het systeem P2P is, en (bijna) alle mogelijke poorten kan gebruiken. Toch zijn er volgens mij truucs om ook dat dicht te zetten.

Probeer dit eens voor Skype:
iptables -I FORWARD −p udp −m length −−length 39 −m u32 −−u32 ’27&0x8f=7’ −−u32 ’31=0x527c4833’ −j DROP
Over Facebook, Twitter, etc: Squid is je beste optie.

[ Voor 74% gewijzigd door Joseph op 18-12-2011 23:45 ]


Acties:
  • 0 Henk 'm!

  • WHiZZi
  • Registratie: Januari 2001
  • Laatst online: 18:01

WHiZZi

Museumdirecteurtje

Is MSN messenger niet te blokkeren door simpelweg de toegang tot messenger.hotmail.com te blokkeren? In het verleden (2 jaar geleden oid) deed MSN Messenger altijd een connectie naar een URL en het blokkeren van deze URL was altijd voldoende... Nu is dit natuurlijk ook nog te omzeilen, maar voor de normale mens zal dit functioneren ;)

HomeComputerMuseum - Interactief computermuseum waar wij de geschiedenis van de thuiscomputer preserveren. Centraal gelegen in de Benelux.


Acties:
  • 0 Henk 'm!

  • hell4you
  • Registratie: Mei 2006
  • Laatst online: 19:28
Rolfie schreef op zondag 18 december 2011 @ 21:38:
Misschien gewoon een kant en klare firewall nemen?
pfsense kan dit volgens mij out of the box.
En zo zijn er nog diverse volgens mij...
Ik wil naast de firewall nog enkele LAN services hosten om het men nog wat gemakkelijker te maken. (Enkele game servers, teamspeak, webserver ....). Dit doe ik liever niet in een virtuele machine.
Joseph schreef op zondag 18 december 2011 @ 23:40:
Simpel.

Gewoon de gewenste range specificeren. Begin IP(-)Eind IP zonder spaties.
Juist. Prima, maar heeft iedereen dan nog steeds zijn eigen queue? Stel dat Jantje tegen zijn limiet aan het downloaden is, kan Pietje dat dan parallel aan Jantje ook?
Joseph schreef op zondag 18 december 2011 @ 23:40:
Note: MSN is sterk afhankelijk van poorten. Trek die even na, en zet die dicht. Skype is extreem lastig omdat het systeem P2P is, en (bijna) alle mogelijke poorten kan gebruiken. Toch zijn er volgens mij truucs om ook dat dicht te zetten.

Probeer dit eens voor Skype:
[...]

Over Facebook, Twitter, etc: Squid is je beste optie.
Poorten voor MSN staan dicht, netzoals een hoop andere. Ik hanteer wel "accept all, block some". Het is nog steeds een LANparty en games gebruiken nogal veel verschillende poorten. We hebben ook niet voor niets internet.
WHiZZi schreef op maandag 19 december 2011 @ 08:53:
Is MSN messenger niet te blokkeren door simpelweg de toegang tot messenger.hotmail.com te blokkeren? In het verleden (2 jaar geleden oid) deed MSN Messenger altijd een connectie naar een URL en het blokkeren van deze URL was altijd voldoende... Nu is dit natuurlijk ook nog te omzeilen, maar voor de normale mens zal dit functioneren ;)
Ik wilde inderdaad iptables opdragen om packets naar die host + nog een aantal andere te rejecten.

Ik heb later nog OpenDPI gevonden en ben as we speak uit aan het zoeken of dit iets voor ons is. :)