Limitasi Bandwidth Di Linux Menggunakan tcconfig

tcconfig adalah tool berbasis Python yang menyederhanakan penggunaan tc (traffic control) di Linux. Cocok digunakan untuk bandwidth shaping, simulasi network delay, packet loss, dan pengaturan QoS sederhana.

Disini saya akan menggunakan user root dan Debian 12 Server untuk instalasi. disarankan menggunakan bash untuk proses instalasi

Instalasi python3 dan venv

apt update
apt install -y python3 python3-venv python3-pip

Buat directory untuk tempat tcconfig karena saya akan instalasi menggunakan venv

mkdir -p ~/tools/tcconfig
cd ~/tools/tcconfig/
python3 -m venv ~/tools/tcconfig/

Aktifkan venv

source ~/tools/tcconfig/bin/activate

Selanjutnya tampilan shell akan berubah dan diawali (tcconfig) root@hostname:

Langkah selanjutnya instalasi tcconfig didalam venv menggunakan pip

pip install --upgrade pip
pip install tcconfig

Lakukan test untuk memastikan tcconfig sudah terinstall

tcset --version

Output

tcset 0.30.1

Untuk keluar/menonaktifkan venv ketikkan perintah

deactivate

Agar perintah tcset, tcshow, tcdel bisa dijalankan diluar directory venv lakukan symbolic link seperti berikut

ln -s ~/tools/tcconfig/bin/tcset /usr/local/bin/tcset
ln -s ~/tools/tcconfig/bin/tcdel /usr/local/bin/tcdel
ln -s ~/tools/tcconfig/bin/tcshow /usr/local/bin/tcshow

Membuat, Mengubah, Dan Menghapus Rule

Membuat rule shaping/limitasi download berdasarkan interface

tcset ens18.150 --rate 10Mbps

Membuat rule shaping/limitasi upload berdasarkan interface

tcset ens18.150 --rate 20Mbps --direction incoming

Mengubah rule shaping/limitasi download berdasarkan interface

tcset ens18.150 --rate 15Mbps --overwrite

Mengubah rule shaping/limitasi upload berdasarkan interface

tcset ens18.150 --rate 20Mbps --direction incoming --overwrite

Menghapus semua rule shaping/limitasi (download dan upload) berdasarkan interface

tcdel ens18.150 --all

Buat Agar Persistence

Disini saya memanfaatkan ifudown/ifupdown2 default debian 12 untuk membuat konfigurasi berjalan secara persistence

Agar konfigurasi tcconfig yang telah kita buat bersifat persistence (dimuat kembali setelah reboot) lakukan langkah berikut

nano /etc/network/interfaces

Sesiaikan dan buat bagian up & down seperti berikut

auto ens18.150
iface ens18.150 inet static
        address 10.0.0.1/30
        vlan-raw-device ens18
        up tcset ens18.150 --rate 10Mbps && tcset ens18.150 --rate 20Mbps --direction incoming
        down tcdel ens18.150 --all