Ceci & Tati

Archive for май, 2009

Маркиране на българския и международен трафик, за по лесно шейпване.

by on май.29, 2009, under Мрежата

Нещо доста елементарно, но пък ценно!
Интернет трафика го получавам през два vlan-а , през единия българския трафик, а през другия международния трафик и го посрещам посредством два рутера. За по-лесно шейпване го маркирам на двата рутера и го подавам към терминалите, посредством ToS битовете.

Малко информация за ToS – Type of Service (Тип на услугата). Използва се, за да могат да се използват различни пътища за пакети с различни ToS полета.

На рутера за българския трафик, правя следното.

#mark bg traffic
$IPTABLES -t mangle -A FORWARD -o eth2 -j TOS –set-tos 0×08

На рутера за международен трафик, правя следното.

#mark int traffic
$IPTABLES -t mangle -A FORWARD -o eth2 -j TOS –set-tos 0×10

На терминалите правя следното.

############
if (($main::speed_in1) or ($main::speed_in2)){
# in = receive out = transmit
push @FW_ACTIONS, „$TC qdisc del dev $INTERFACE root“;
#push @FW_ACTIONS, „echo ‘$TC qdisc del dev $INTERFACE root’ >> $tc_log“;

push @FW_ACTIONS, „$TC qdisc add dev $INTERFACE root handle 1: htb default 20″;
#push @FW_ACTIONS, „echo ‘$TC qdisc add dev $INTERFACE root handle 1: htb default 20′ >> $tc_log“;

push @FW_ACTIONS, „$TC class add dev $INTERFACE parent 1: classid 1:1 htb rate „. $main::speed_in_sum .“kbit“;
#push @FW_ACTIONS, „echo ‘$TC class add dev $INTERFACE parent 1: classid 1:1 htb rate „. $main::speed_in_sum .“kbit’ >> $tc_log“;
}
############

############
if ($main::speed_in1) {
push @FW_ACTIONS, „$TC class add dev $INTERFACE parent 1:1 classid 1:10 htb rate „. $main::speed_in1 .“kbit“;
#push @FW_ACTIONS, „echo ‘$TC class add dev $INTERFACE parent 1:1 classid 1:10 htb rate „. $main::speed_in1 .“kbit’ >> $tc_log“;

push @FW_ACTIONS, „$TC filter add dev $INTERFACE protocol ip parent 1: prio 10 u32 match ip tos 0×10 0xff flowid 1:10″;
#push @FW_ACTIONS, „echo ‘$TC filter add dev $INTERFACE protocol ip parent 1: prio 10 u32 match ip tos 0×10 0xff flowid 1:10′ >> $tc_log“;

}
if ($main::speed_in2) {
push @FW_ACTIONS, „$TC class add dev $INTERFACE parent 1:1 classid 1:20 htb rate „. $main::speed_in2 .“kbit“;
#push @FW_ACTIONS, „echo ‘$TC class add dev $INTERFACE parent 1:1 classid 1:20 htb rate „. $main::speed_in2 .“kbit’ >> $tc_log“;

push @FW_ACTIONS, „$TC filter add dev $INTERFACE protocol ip parent 1: prio 20 u32 match ip tos 0×08 0xff flowid 1:20″;
#push @FW_ACTIONS, „echo ‘$TC filter add dev $INTERFACE protocol ip parent 1: prio 20 u32 match ip tos 0×08 0xff flowid 1:20′ >> $tc_log“;
}

Забележка: показал съм само част от скрипта за идеята, но не целия! Всеки който поне малко разбира ще разбере за какво иде реч :) .

(continue reading…)

1 Comment прочетете повече...

Нещто не намирате ли?

Потърси в блога ми:

Моля Ви не прекалявайте с информацията!