Skip to main content

Traffic Shaping - Bagian 3

Bagian ini adalah bagian terakhir dari penjelasan traffic shaping. Kita akan mendiskusikan sedikit mengenai ingress qdisc. Traffic shaping yang kita bicarakan pada dua tulisan sebelumnya merupakan implementasi egress qdisc, dimana kita men-shape traffic yang meninggalkan eth1 (trafik upload). Untuk trafik yang menuju eth1 (trafik incoming) kita menerapkan ingress qdisc (lihat diagram dari jengelh untuk mendapatkan gambaran mengenai ingress dan egress). Untuk trafik incoming kita tidak dapat melakukan shaping, tetapi yang kita lakukan adalah membuat policy, implementasi di tc adalah police. Yang akan kita lakukan adalah membuat policy untuk melambatkan trafik yang masuk agar tidak terjadi kongesti di server kita.

Perhatikan bagian:

# attach ingress policer;
# ngelambatin download sedikit
tc qdisc add dev eth1 handle ffff: ingress
# lambatin semua paket yang datang terlalu cepat
tc filter add dev eth1 parent ffff: protocol ip prio 50 u32 match ip src \
0.0.0.0/0 police rate ${DOWNLINK}kbit burst 10k drop flowid :1

Arti dari baris tc qdisc add dev eth1 handle ffff: ingress adalah meng-attach ingress qdisc pada eth 1 dengan nama handle ffff: . Hal ini sama halnya dengan ketika mengattach egress qdisc dan membuat root class untuk trafik upload, hanya ingress qdisc berfungsi untuk klasifikasi trafik download.

Selanjutnya pada baris berikutnya ada u32 classifier, yang merupakan salah satu filter classifier yang sangat powerful dalam implementasi tc. u32 akan memfilter paket berdasarkan field dari paket ip (source ip address) yang dianalisa adalah 32 bit header dari paket. Apabila ada kondisi yang sesuai (match) dengan selector maka suatu tindakan (action) akan dilakukan. u32 selector berisi definisi yang akan ditemui pada suatu paket yang sedang diproses berupa informasi bit mana yang harus match di dalam header paket. Metode sederhana ini ternyata sangat powerful.


Dalam script di atas ada juga hal baru yang ditemui yaitu police dan burst. Police merupakan filter yang membatasi rate bandwidth sampai kecepatan tertentu. Burst atau buffer adalah ukuran dari bucket (HTB = hierarchical tocken bucket, atau kadang-kadang disebut juga TBF = tocken bucket filter) dalam byte (1 byte = 8 bit), sebagai patokan untuk kecepatan 10mbit/s dibutuhkan setidaknya ukuran buffer 10 kbyte.

Maksud dari baris
tc filter add dev eth1 parent ffff: protocol ip prio 50 u32 match ip src \
0.0.0.0/0 police rate ${DOWNLINK}kbit burst 10k drop flowid :1

adalah membuat class ingress dari class ffff: untuk protokol ip dengan prioritas 50 dengan source ip dari internet dengan membatasi  kecepatan paket sebesar kecepatan DOWNLINK kbit/s dengan buffer sebesar 10 kbytes, paket yang kecepatannya lebih dari DOWNLINK akan di drop.

Beberapa Contoh Lain

Kombinasi iptables, ip, tc dapat digunakan untuk beberapa hal lain yang sangat menarik, di bawah ini beberapa contohnya.
Anda mempunyai beberapa koneksi internet ke beberapa ISP. Anda menginginkan agar trafik smtp melalui jalur salah satu ISP saja. Anda dapat mengkombinasi iptables dengan ip. Buat perintah untuk script iptables seperti dibawah ini

# iptables -A PREROUTING -i eth0 -t mangle -p tcp –dport 25 \
-j MARK –set-mark 1
# echo 201 mail.out >> /etc/iproute2/rt_tables
# ip rule add fwmark 1 table mail.out
# ip rule ls
0: from all lookup local
32764: from all fwmark          1 lookup mail.out
32766: from all lookup main
32767: from all lookup default

Lalu kita jalankan perintah:
#/sbin/ip route add default via 202.172.43.171 dev eth0 table mail.out
Maka semua email trafik akan melalui eth0 di mesin router kita menuju ISP tertentu.
Contoh lain adalah untuk selector u32 classifier, misalnya kita ingin agar trafik ICMP masuk ke qdisc tertentu kita dapat membuat misalnya:
# tc filter add dev eth0 parent 10:0 protocol ip prio 100 u32 match ip protocol 1 0xFF flowid 10:100

Mudah-mudahan penjelasan singkat ini bisa dipahami, dan jangan takut untuk mencoba-coba sendiri. Apa yang saya coba share di sini memang masih kurang lengkap tapi setidaknya bisa menjadi awal bagi anda yang tertarik network dan quality of service di linux.

Have a lot of fun.

Comments

Popular posts from this blog

Remarkable Year 2018 for openSUSE Indonesia Community

Year 2018 is a remarkable year for the Indonesian openSUSE community. There are quite a lot of our achievements as a community that make us proud. As a long time person in this community, I feel that there are quite a lot of young people who can be role models for future generations. Even though the dominance of "you again" cannot be denied, because the same people are also activists in BlankON, LibreOfficeID, Glib, and other communities, it does not reduce my admiration for their militancy towards the spread of FOSS use in Indonesia.



One of openSUSE community friend once said to me, the first step is the most difficult. When I started using Linux in 1997 no one used it at my workplace. I have been using Unix for about 2 years and it happens that many GNU software is also used on both operating systems so the commands are not so weird for me. But it is very difficult to find people to have direct discussion at that time. At present the obstacles that I felt before seemed to b…

LibreOffice Conference Indonesia 2018

In early 2018 I got a news from community that LibreOffice Indonesian Community will held a conference in Electronic Engineering Polytechnic Institute of Surabaya (EEPIS) on March 23-25, 2018. I discussed with some member of openSUSE Indonesia community and we're willing to give our hands and also to open openSUSE booth on that event. I sent the proposal to Douglas De Maio from openSUSE and he agree to give some donation for the event.

On March 1st, I received some marketing material from openSUSE that we can put on our booth and distribute to the conference participant. Thanks openSUSE!


LibreOffice Conference Indonesia (LOCI) 2018 is the first LibreOffice Conference in Indonesia so as a user of Libre Office  since a long time I'm so excited to attend this conference.
On early morning March 23, 2018 I took the flight flying through the golden hour to Surabaya. It was still 6.00 o'clock in the morning and I'm very surprised that Darian, the local committee of LOCI 2018,…

openSUSE.Asia Summit 2017

openSUSE.Asia Summit 2017 was held at University of Electro Communication (UEC) Chofu Tokyo on October 20-22, 2017. Japan is an advance developed country. Tokyo is a big city that can be compared with other major big cities in the world. While it is not the first time for me to go to Tokyo, I was so excited when the committee approved my talk, and openSUSE, as always, give me TSP to come to the event.


During the preparation we have  online meeting every week since February 15, 2017. I was so happy to help the preparation of this yearly openSUSE Summit for Asia Region. Indonesia community also contribute to provide the online voting for the logo contest this year through the voting site.

On the midnight on October 17, 2017 together with my friend Estu Fardani, I went to Tokyo.

It was 7 hours long flight. While almost half of the flight was so bumpy because the initiation of Lan Cyclone, in the morning of October 18, 2017 I enjoyed the clear sky with the golden hour in Japan air around…