Názor k článku HTB - jemný úvod od Vasek Stodulka - Nejsem sice autor, ale tady neco je. Neco...

  • Článek je starý, nové názory již nelze přidávat.
  • 3. 9. 2003 21:26

    Vasek Stodulka (neregistrovaný)

    Nejsem sice autor, ale tady neco je. Neco to dela, i kdyz ani sam velky autor (ja) negarantuje uplne presnou funkcnost, ale treba mi to nekdo pomuze vyladit. Je to pro firmu o dvou pobockach, na firewallu bezi samba server (nepodstatna data, hlavni server je samozrejme zvlast).

    ---
    #!/bin/sh
    #
    # chkconfig: - 11 89
    # description: Single -- purpose settings of tc to firewall

    DEV=eth0

    start () {
    echo -n "Starting QoS tc.init: "
    # Vytvorit hlavni disciplinu:
    tc qdisc add dev $DEV root handle 1: htb default 2

    # Internetovy provoz:
    tc class add dev $DEV parent 1: classid 1:1 htb rate 128kbit ceil 128kbit
    # Intranetovy traffic:
    tc class add dev $DEV parent 1: classid 1:2 htb rate 100Mbit ceil 100Mbit
    # Pro prodejce:
    tc class add dev $DEV parent 1:1 classid 1:10 htb rate 64kbit ceil 120kbit
    # Druha pobocka:
    tc class add dev $DEV parent 1:1 classid 1:11 htb rate 48kbit ceil 128kbit
    # Zbytek:
    tc class add dev $DEV parent 1:1 classid 1:12 htb rate 16kbit ceil 96kbit


    # Vyberu a oznacim provoz
    # !!! Pozor, vicekrat oznaceny packet si pamatuje posledni cislo !!!
    iptables -t mangle -N internet
    # Cely internet
    iptables -t mangle -A internet -s ! 192.168.1.0/24 -j MARK --set-mark 3
    # Terminal services tunelovane pres ssh
    iptables -t mangle -A internet -p tcp -d 192.168.1.0/24 -s 192.168.1.20 --sport 3389 -j MARK --set-mark 2
    # WWW tunelovane pres ssh
    iptables -t mangle -A internet -p tcp -d 192.168.1.0/24 -s 192.168.1.20 --sport www -j MARK --set-mark 2
    # 2 prodejci:
    iptables -t mangle -A internet -s ! 192.168.1.0/24 -d 192.168.1.108 -j MARK --set-mark 1
    iptables -t mangle -A internet -s ! 192.168.1.0/24 -d 192.168.1.101 -j MARK --set-mark 1

    # Toto nevim, co znamena :)
    iptables -t mangle -A POSTROUTING -o eth0 -j internet

    # No a tady si nastavim, ktere ze to toky maji kam tect:
    tc filter add dev $DEV parent 1:0 protocol ip prio 1 handle 1 fw classid 1:10
    tc filter add dev $DEV parent 1:0 protocol ip prio 1 handle 2 fw classid 1:11
    tc filter add dev $DEV parent 1:0 protocol ip prio 3 handle 3 fw classid 1:12
    echo Ok.
    }




    stop () {
    echo -n "Stopping QoS tc: "
    # Smazat vse:
    tc filter del dev $DEV prio 3
    tc filter del dev $DEV prio 1
    tc qdisc del dev $DEV root
    iptables -t mangle -F
    iptables -t mangle -X internet
    echo Ok.
    }

    case "$1" in
    start)
    start
    ;;
    stop)
    stop
    ;;
    *)
    echo "Usage: tc.init {start|stop}"
    RETVAL=1
    esac

    exit $RETVAL

    ---
    Treba to nekomu pomuze a treba mi to nekdo opravi. :)