IPCop-Forum.de

www.ipcop-forum.de


IPCop-Community
CL-Systems
Home Home   Doku Doku   Links Links   Downloads Downloads
UnIPCop Der (Un)IPCop   IFS IPCop-ForumSpy
CopTime CopTime   Galerie IPCop-Galerie   IPCop Userkarte Userkarte
Aktuelle Zeit: 18.12.2017, 06:03

Alle Zeiten sind UTC+01:00




Ein neues Thema erstellen  Auf das Thema antworten  [ 19 Beiträge ]  Gehe zu Seite Vorherige 1 2
Autor Nachricht
 Betreff des Beitrags: Re: QOS per IP festlegen
BeitragVerfasst: 08.04.2016, 02:51 
Offline
Sergeant
Themenstarter
Sergeant

Registriert: 09.04.2009
Beiträge: 54
Bingo!! Der Editor wars.
Nachdem ich das Originalscript per Winscp angepasst hatte lief das Teil endlich.

Allerdings wurde meine Freude auch gleich wieder gedämpft, als ich feststellen musste dass das Script zwar aktiv ist, aber leider nix begrenzt...

Kannst Du bitte mal über das Script schauen ob das wirklich so alles richtig ist?
Es soll folgendes gemacht werden:

Gesamt Bandbreite 6Mbit
zu kontrollierendes Device: GREEN

192.168.1.1 bis 192.168.1.20 Up 512Kbit - Down 1024Kbit
192.168.1.21 bis 192.168.1.40 Up 512Kbit - Down 1536Kbit
192.168.1.41 bis 192.168.1.60 Up 1024Kbit - Down 2048Kbit
192.168.1.61 bis 192.168.1.100 Up 6Mbit - Down 6Mbit (also keine Begrenzung)
192.168.1.150 Up 6Mbit - Down 6Mbit (also keine Begrenzung)
192.168.1.250 Up 6Mbit - Down 6Mbit (also keine Begrenzung)
192.168.1.101 bis 192.168.1.149 Up 512Kbit - Down 512Kbit
192.168.1.151 bis 192.168.1.199 Up 512Kbit - Down 512Kbit


Code:
#!/bin/bash
#
#   IPCop very, very simple traffic shaper (limiter) for 1 device
#
# This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
# This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

# Copyright (c) 2007-2010 weizen_42
#   based on ideas and documentation from:
#     LARTC HowTo http://lartc.org/howto/index.html
#     HTB Manual  http://luxik.cdi.cz/~devik/qos/htb/manual/userg.htm
#
# Change device, IP, max- and limitrate to suit your needs
#
# v1.0    initial release
# v2.0    IPCop v2
#


TC=/sbin/tc

# read IPCop variables
eval $(/usr/local/bin/readhash /var/ipcop/ethernet/settings)
if [ -e "/var/ipcop/red/iface" ]; then
    REAL_RED=`cat /var/ipcop/red/iface`
fi

# which device to shape
DEV=$GREEN_1_DEV

# limit IP 192.168.1.2, IPrange 192.168.1.0/24 or complete device 0.0.0.0/0

#----------------------------------------512/1024
IPrange=192.168.1.1/20
# from IPCop to IP/network
DOWN_MAX=6mbit
DOWN_LIMIT=1024kbit

# from IP/network to IPCop
UP_MAX=6mbit
UP_LIMIT=512kbit
#----------------------------------------512/1536
IPrange=192.168.1.21/40
# from IPCop to IP/network
DOWN_MAX=6mbit
DOWN_LIMIT=1536kbit

# from IP/network to IPCop
UP_MAX=6mbit
UP_LIMIT=512kbit
#----------------------------------------2048/2048
IPrange=192.168.1.41/60
# from IPCop to IP/network
DOWN_MAX=6mbit
DOWN_LIMIT=2048kbit

# from IP/network to IPCop
UP_MAX=6mbit
UP_LIMIT=2048kbit
#----------------------------------------6144/6144
IPrange=192.168.1.61/100
# from IPCop to IP/network
DOWN_MAX=6mbit
DOWN_LIMIT=6mbit

# from IP/network to IPCop
UP_MAX=6mbit
UP_LIMIT=6mbit
#----------------------------------------
IP=192.168.1.150
# from IPCop to IP/network
DOWN_MAX=6mbit
DOWN_LIMIT=6mbit

# from IP/network to IPCop
UP_MAX=6mbit
UP_LIMIT=6mbit
#----------------------------------------
IP=192.168.1.250
# from IPCop to IP/network
DOWN_MAX=6mbit
DOWN_LIMIT=6mbit

# from IP/network to IPCop
UP_MAX=6mbit
UP_LIMIT=6mbit
#----------------------------------------512/512
IPrange=192.168.1.101/149
# from IPCop to IP/network
DOWN_MAX=6mbit
DOWN_LIMIT=512kbit

# from IP/network to IPCop
UP_MAX=6mbit
UP_LIMIT=512kbit
#----------------------------------------512/512
IPrange=192.168.1.151/199
# from IPCop to IP/network
DOWN_MAX=6mbit
DOWN_LIMIT=512kbit

# from IP/network to IPCop
UP_MAX=6mbit
UP_LIMIT=512kbit




# See how we were called.
case "$1" in
  status)
    echo -e "\\033[1;32m##### Queues on dev: $DEV \\033[0m"
    $TC -s qdisc show dev $DEV
    echo -e "\\033[1;32m\r##### Classes on dev: $DEV \\033[0m"
    $TC -s class show dev $DEV
    echo -e "\\033[1;32m##### Filters on dev: $DEV \\033[0m"
    $TC -s filter show dev $DEV
    ;;
  start)
    echo -e "\\033[1;32mStarting simple shaper on dev: $DEV \\033[0m"

    # qdisc htb, default class 1:99
    $TC qdisc add dev $DEV root handle 1: htb default 99
    # add root class with max rate and default class with max rate
    $TC class add dev $DEV parent 1: classid 1:1 htb rate $DOWN_MAX
    $TC class add dev $DEV parent 1:1 classid 1:99 htb rate $DOWN_MAX ceil $DOWN_MAX
    # add rate and ceil limited class 1:10
    $TC class add dev $DEV parent 1:1 classid 1:10 htb rate $DOWN_LIMIT ceil $DOWN_LIMIT
    # match dst IP to 1:10
    $TC filter add dev $DEV protocol ip parent 1:0 prio 1 u32 match ip dst $IP flowid 1:10

    # this might need some more work :-/
    $TC qdisc add dev $DEV handle ffff: ingress
    $TC filter add dev $DEV parent ffff: protocol ip prio 50 u32 match ip src $IP police rate $UP_LIMIT burst 10k drop flowid :1
    ;;
  stop)
    echo -e "\\033[1;32mStopping simple shaper on dev: $DEV \\033[0m"
    # clean existing down- and uplink qdiscs, hide errors
    $TC qdisc del dev $DEV root    2> /dev/null > /dev/null
    $TC qdisc del dev $DEV ingress 2> /dev/null > /dev/null
    ;;
  restart)
    $0 stop
    sleep 1
    $0 start
    ;;
  *)
    echo "Usage: $0 {start|stop|restart|status}"
    exit 1
    ;;
esac

exit 0


Heissen Dank erstmal bis hierhin... :danke:


Nach oben
   
 Betreff des Beitrags: Re: QOS per IP festlegen
BeitragVerfasst: 10.04.2016, 15:25 
Offline
Sergeant
Themenstarter
Sergeant

Registriert: 09.04.2009
Beiträge: 54
Sodele, ich hab unterdessen mal ein bisschen Grundlagenforschung betrieben :-)

Also, wenn ich das komplette Device (green) limitiere (complete device 0.0.0.0/0), funktioniert das ganz prima.
Auch das limitieren einer einzelnen IP (IP=192.168.1.2) funktioniert tadellos....

Sobald ich aber mehrere einzelne IPs oder eine IPrange definiere, klappt eben gar nichts mehr.
Da gibt es nun 2 Möglichkeiten warum das so ist:
Entweder ist es nicht möglich mehrere einzelne IPs oder eine IPrange mit verschiedenen Bandbreiten Limitierungen zu definieren (...was ich nicht wirklich glaube), oder es liegt ganz einfach am falschen Syntax im Script (was schon eher im Bereich des Möglichen liegt ;-)
Allerdings konnte ich bisher im ganzen Forum nicht ein einziges Beispiel für die Definition mehrere einzelner IPs oder mehrerer IPranges mit verschiedenen Bandbreiten Limitierungen, finden.

Vielleicht kann mich da mal einer schlau machen ?.... :flehen: :flehen: :flehen: :flehen: :flehen:
Das wäre nun das einzigste was mir noch fehlt damit ich den IPCOP hier in das Netzwerk einbinden kann....

Gruss
Michael


Nach oben
   
 Betreff des Beitrags: Re: QOS per IP festlegen
BeitragVerfasst: 11.04.2016, 12:24 
Offline
Administrator
Administrator

Registriert: 01.03.2004
Beiträge: 22218
Wie ich bereits schrieb:
wintermute hat geschrieben:
Deine Subnetzmasken müssen übrigens noch gerichtet werden.

Wie man ein Netz in Subnetze (Teilbereiche für Traffic Limitierung) aufteilt (nach CIDR) wirst Du dir aneignen müssen. Das sind 08/15-Netzwerkgrundlagen, die hier (von mir) nicht abgehandelt werden.


Nach oben
   
 Betreff des Beitrags: Re: QOS per IP festlegen
BeitragVerfasst: 11.04.2016, 12:48 
Offline
Sergeant
Themenstarter
Sergeant

Registriert: 09.04.2009
Beiträge: 54
wintermute hat geschrieben:
Wie ich bereits schrieb:
wintermute hat geschrieben:
Deine Subnetzmasken müssen übrigens noch gerichtet werden.

Wie man ein Netz in Subnetze (Teilbereiche für Traffic Limitierung) aufteilt (nach CIDR) wirst Du dir aneignen müssen. Das sind 08/15-Netzwerkgrundlagen, die hier (von mir) nicht abgehandelt werden.


Mehr wollte ich ja gar nicht: Wenigstens den Hinweis wo ich es nachlesen kann.

Besten Dank!


Nach oben
   
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen  Auf das Thema antworten  [ 19 Beiträge ]  Gehe zu Seite Vorherige 1 2

Alle Zeiten sind UTC+01:00


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu Forum:  
cron
Powered by phpBB® Forum Software © phpBB Limited
Deutsche Übersetzung durch phpBB.de