Делене на трафика по ToS(DSCP)

С няколко стъпки ще Ви покажа как да делите трафика на клиентите си на Български и Международен с един интерфейс.
Да предположим, че получавате вашия трафик от 2 vlan-a, 1 за българския и 1 за международния трафик.
Правите следното нещо за да маркирате пакетите:
/sbin/iptables -A PREROUTING -t mangle -i ${bg_interface} -j DSCP --set-dscp 0x0
/sbin/iptables -A PREROUTING -t mangle -i ${int_interface -j DSCP --set-dscp 0x2e

С тази команда току що сложихте ToS(0×0) за българския и ToS(0xb8) за международния.
Вие пускате на вашият клиент български и международен по 1 vlan, но не знаете как да разграничите скоростите? Ето един лесен вариант:

/sbin/tc qdisc add dev ${client_vlan) root handle 1: htb default 60
/sbin/tc class add dev ${client_vlan) parent 1: classid 1:1 htb rate 100Mbit(общ капацитет)

/sbin/tc class add dev ${client_vlan) parent 1:1 classid 1:30 htb rate \
70Mbit ceil 70Mbit prio 0
/sbin/tc qdisc add dev ${client_vlan) parent 1:30 sfq perturb 10

/sbin/tc filter add dev ${client_vlan) protocol ip parent 1:0 prio 1 u32 \
match ip tos 0x0(български трафик) 0xff flowid 1:30

/sbin/tc class add dev ${client_vlan) parent 1:1 classid 1:31 htb rate \
30Mbit ceil 30Mbit prio 0
/sbin/tc qdisc add dev ${client_vlan) parent 1:31 sfq perturb 10

/sbin/tc filter add dev ${client_vlan) protocol ip parent 1:0 prio 1 u32 \
match ip tos 0xb8(международен трафик) 0xff flowid 1:31

Това е само за даунлинк трафика, можете да шейпнете ъплинк трафика на клиента по същия начин, но използвайки ingress( аз не маркирам международен и ползвам общ ъплинк шейп)

/sbin/tc qdisc add dev ${client_vlan) handle ffff: ingress
/sbin/tc filter add dev ${client_vlan) parent ffff: protocol ip prio 7 u32 match ip dst 0.0.0.0/0 police rate 50Mbit burst 128k drop flowid :1

Така вашият клиент вече не може да се възползва от по-ниския ви межународен трафик :)

Ето вариант да следите колко български и международен прави рисувайки проста графика:
Добавяме следните таблици:

/sbin/iptables -t mangle -N CLIENT_IN
/sbin/iptables -t mangle -N CLIENT_OUT
/sbin/iptables -t mangle -A PREROUTING -j CLIENT_IN
/sbin/iptables -t mangle -A POSTROUTING -j CLIENT_OUT
/sbin/iptables -t mangle -A CLIENT_IN -m dscp --dscp 0x0 -j RETURN -o ${client_vlan)
/sbin/iptables -t mangle -A CLIENT_OUT -m dscp --dscp 0x0 -j RETURN -i ${client_vlan)
/sbin/iptables -t mangle -A CLIENT_IN -m dscp --dscp 0x2e -j RETURN -o ${client_vlan)
/sbin/iptables -t mangle -A CLIENT_OUT -m dscp --dscp 0x2e -j RETURN -i ${client_vlan)

По този начин виждате колко бг и международен трафик прави вашият клиент и със помощта на туулове като rrdtool/mrtg можете да го следите.
Надявам се да съм бил полезен.

Послепис: По този начин можете да маркирате не само български/международен, но и всякакъв трафик:
Пример:
/usr/sbin/iptables -A POSTROUTING -t mangle -s 192.168.0.0/16 -j DSCP --set-dscp 0x0d
/usr/sbin/iptables -A POSTROUTING -t mangle -s 10.0.0.0/8 -j DSCP --set-dscp 0x0d
/usr/sbin/iptables -A POSTROUTING -t mangle -s 169.254.0.0/16 -j DSCP --set-dscp 0x0d
/usr/sbin/iptables -A POSTROUTING -t mangle -s 172.16.0.0/12 -j DSCP --set-dscp 0x0d

—-
Маркиране на локалния трафик и просто добавяте следния ред в шейп скрипта:
/sbin/tc class add dev ${client_vlan} parent 1:1 classid 1:32 htb rate \
100Mbit ceil 100Mbit(като разбутвате главния клас да е 200Mbps) prio 0
/sbin/tc qdisc add dev ${client_vlan} parent 1:32 sfq perturb 10

/sbin/tc filter add dev ${client_vlan} protocol ip parent 1:0 prio 1 u32 \
match ip tos 0x34(dscp 0x0d) 0xff flowid 1:32

Сподели/Запази

MikroTik’s real performance!

Всеки уважаващ себе си администратор правил някога безжични линкове на дълги разстояние се е сблъсквал с продуктите на MikroTik и е разбрал, че с нищо друго не може да направи 50+ км.
НО когато опира до другите неща, с които се хвалят, че са невероятни се оказва просто глупав маркетингов трик…
През ръцете ми са преминали всичките им серии рутърборди и съм ги тествал на почти всички рутиращи протоколи вклчае и тестинг версиите им. След всичките главоболия и настройки, тунингования и терзания се оказва, че МикроТик не струва за border router.
Ето и тестовете, за които говоря:
RouterBoard 4xx series(not AH) – PPPoE, OSPF, NAT + Firewall -> MAX 29Mbps (микротик се хвалят, че можел 50+ -> е не може!)
RouterBoard 4xxAH series – PPPoE, OSPF, NAT + Firewall -> MAX 39Mbps(680Mhz)/52Mbps(800Mhz).
RouterBoard 333 – PPPoE, OSPF, NAT + Firewall -> MAX 60Mbps( O, чудо! По-добро от 4хх сериите им!)
RouterBoard 600/A – PPPoE, OSPF, NAT + Firewall -> MAX 100Mbps( След като си оправиха firmware тръгнаха добре нещата.)
RouterBoard 1000 – PPPoE, OSPF, BGP, NAT + Firewall -> MAX 200Mbps, 260 connected users!!! – невероятно голяма реклама – невероятно голямо разочарование!!! – с Penitum III Dual 1Ghz прокарвам 2 пъти по-голям трафик!
Dual Xeon 2.4Ghz 1GB DDR PC2700 ECC – 400Mbps с конфигурацията на RB1000.

Излиза, че продуктите на МикроТик стават само и единствено за домашни потребители и безжични връзки…
Факт е, че с машина от рода на Xeon duo 1.86Ghz /w 1GB of DDR2 ram и линукс slackware 12.0, като на него съм пуснал Quagga(BGP,OSPF) и Firewall + Shaping към вътрешните интерфейси + 2 пълни BGP таблици процесора ми стои почти свободен.
up 70 days, 10:34, 1 user, load average: 0.09, 0.05, 0.01

И трафика, който върви е учудващо голям….( в Килобайта в секунда)
Monitoring eth0… (press CTRL-C to stop)

rx: 24601.38 kB/s 25662 p/s tx: 6253.35 kB/s 20468 p/s

Единственото хубаво нещо е, че поне опитах и видях, че не струват…дано други не са си изпатили като мен.
Ще се радвам ако някой успее да ме обори в разсъжденията ми и покаже реални тестове, за съжаление аз не мога да постна тестовете, поради съображения за сигурност.

Сподели/Запази

НОВО! Форум

ФОРУМИ

Използвайте го ако имате въпроси, там ще могат и други да дискутират.

Сподели/Запази

Домашно „сървърно“

Ето малко снимки от домашното ми „сървърно“
Хардуера, който имам е RB600 – първа генерация.
Atheros 5413 – TP-Link a/b/g miniPCI.
Prism 2.5 miniPCI 200mW 802.11b.

Сподели/Запази

Звярът пристига!

RouterStation/Pro на Ubiquity Networks пристига!
За сумата от $79 получавате устройство с 256 памет, достатъчно за да пуснете пълна BGP сесия, 3 miniPCI слота и 2 Гигабит/4 Гигабит(Pro) лан порта. Процесора разбира се е от новото поколение на Atheros 71xx 680Mhz MIPS 24k. С две думи идеалната платформа за тестове( а защо не и за комерсиални цели ).

Ето малко снимки от устройството:

Сподели/Запази

cisco PPPoE Server + OSPF

Eто как да конфигурираме cisco рутер като PPPoE сървър с динамичнo рутиране(OSPF).
Като за начало ще трябва да намерите достъп до самия рутер, най-често става с конзолен кабел.
След като успешно се логнете трябва да настроите aaa и bba(vpdn при старите).

aaa new-model
!
!
aaa authentication login default local
aaa authentication ppp home group radius local
aaa authorization network home group radius
aaa accounting exec home start-stop group radius
aaa accounting network home start-stop group radius
aaa session-id common

read more

Сподели/Запази

Me on Firewalling with MikroTik

Ето моят firewall скрипт.

/ip firewall filter

add action=jump chain=forward comment=“" disabled=no in-interface=intif  jump-target=INTERNET

read more

Сподели/Запази

Атерос ath5k/ath9k вече и като АП!

Вчера успешно успях да свържа две трасета използвайки Линукс с 802.11n карти, а не МикроТик с a/b/g карти.

За съжаление проблемът с производителността все още си остава…максималния рейт, който постигнах беше 43Mbps, което на фона на MikroTik Nstreme е нищожен.

Занапред ще поствам информация относно подобрения в производителността и нека най-после дочакаме такава от порядъка на 100+ Mbps :)

Сподели/Запази

използване на layer7 в linux.

За целта първо трябва да пачнете ядрото и iptables с l7-filter.

Изтегляте си последната версия на пача и пишете следното:

 

cd /usr/src/linux

patch -p1 –dry-run < /path-to-netfilter-layer7-dir/kernel-2.6.20..patch

Ако всичко мине добре значи може да махнете –dry-run и да стартирате наново.

После влизате в сорса на iptables и пишете следното:

patch -p1 –dry-run < /path-to-netfilter-layer7-dir/iptables-1.3/1.4.x.x.patch

Ако всичко мине добре значи може да махнете отново –dry-run и отново да стартирате командата.

Остава да компилирате модула като го маркирате в настройките на ядрото.

Не забравяйте да поставите дефинициите в /etc/.

 

Ето и един примерен скрипт, който използвам за да маркирам пакети:

 

Ако нещо не ви е ясно – питайте!

 

Ако ви е помогнала статията чувствайте се свободни да подкрепите каузата.

Attached Files:

Сподели/Запази

Пускам свободно теглене на готови ядра.

Днес ще пусна свободно теглене на мои ядра с информация прикрепена към тях.

Ето и адреса: http://support.elitsat.net/stuff/

Там ще намерите и някои скриптове, които съм използвал/писал.

Сподели/Запази

←Older 


8