Konsep Spanning Tree Protocol
Saat desain LAN memerlukan beberapa switch, umumnya network enginer menyertakan
segment LAN yang redundant diantara switch-switch tersebut. Tujuannya sederhana, switch-
switch berkemungkinan mengalami kegagalan beroperasi, atau ada kemungkinan kabel
terputus atau ter-unplug sehingga dengan adanya segment redundant ini, layanan network
masih bisa berjalan walaupun ada kendala diatas.
LAN dengan link yang redundant memungkinkan frame mengalami looping didalam network
tanpa henti. Frame yang looping ini menyebabkan gangguan performansi pada network. Oleh
karena itu, LAN memanfaatkan Spanning Tree Protocol (STP), yang memungkinkan LAN
tetap bisa menggunakan link redundant tanpa harus menanggung resiko adanya frame yang
looping dalam network.
Tanpa adanya Spanning Tree Protocol (STP), LAN dengan link yang redundant
mengakibatkan adanya frame yang looping tanpa henti didalam network. Dengan STP,
beberapa switch akan mem-block interface/port-nya agar port tersebut tidak bisa lagi mem-
forward frames keluar. STP akan menentukan port mana yang harus di block sehingga hanya
1 link saja yang aktif dalam satu segment LAN. Hasilnya, frame tetap bisa ditransfer antar-
komputer tanpa menyebabkan gangguan akibat adanya frame yang looping tanpa henti di
dalam network.
Spanning Tree Protocol (IEEE 802.1d)
Kebutuhan adanya spanning tree
Problem utama yang bisa dihindari dengan adanya STP adalah broadcast storms. Broadcast
storms menyebabkan frame broadcasts (atau multicast atau unicast yang destination
addressnya belum diketahui oleh switch) terus berputar-putar (looping) dalam network tanpa
henti. Gambar berikut adalah contoh sederhana LAN dengan link yang redundant.
Switch akan mem-flood frame broadcasts keluar melalui semua port/interface dalam satu
VLAN kecuali port/interface dimana frame tersebut diterima. Pada gambar diatas, SW3 akan
mem-forward frame dari Bob ke SW2; SW2 mem-forwardnya ke SW1; SW1 mem-
forwardnya kembali ke SW3; SW3 ke SW2 lagi, dan seterusnya dan seterusnya.
Problem lain yang bisa dihindari dengan STP adalah dalam satu network yang memiliki link
redundant, komputer-komputer yang aktif akan menerima kopi-an dari frame yang
sama berkali-kali.
Definisi IEEE 802.1d Spanning Tree Does
STP mencegah terjadinya looping dengan menempatkan setiap port switch pada salah satu
status : Forwarding atau Blocking. Interface dengan status forwarding bertingkah normal,
mem-forward dan menerima frame, sedangkan interface dengan status blocking tidak
memproses frame apapun kecuali pesan-pesan STP. Semua port yang berada dalam
status forwarding disebut berada pada jalur spanning tree(topology STP), sekumpulan port-
port forwarding membentuk jalur tunggal dimana frame ditransfer antar-segment. Gambar
berikut adalah LAN dengan link redundant yang sudah memanfaatkan STP.
Dengan begini, saat Bob mengirimkan frame broadcast, frame tidak mengalami looping. Bob
mengirimkan frame ke SW3 (step 1), kemudian SW3 mem-forward frame hanya ke
SW1(step 2), karena port Gi0/2 dari SW3 berada pada status blocking. Kemudian, SW1
mem-flood frame keluar melalui Fa0/11 dan Gi0/1 (step 3) . SW2 mem-flood frame keluar
melalui Fa0/12dan Gi0/1 (step4). Namun, SW3 akan mengabaikan frame yang dikirmkan
oleh SW2, karena frame tersebut masuk melalui port Gi0/2 dari switch SW3 yang berada
pada status blocking.
Dengan topology STP seperti pada gambar diatas, switch-switch tidak mengaktifkan link
antara SW2 dan SW3 untuk keperluan traffick dalam VLAN. Namun, jika link antara SW1
dan SW3 mengalami kegagalan dalam beroperasi, maka STP akan membuat port Gi0/2 pada
SW3 menjadi forwarding sehingga link antara SW3 dan SW2 menjadi aktif dan frame tetap
bisa ditransfer secara normal dalam VLAN.
Cara Kerja Spanning Tree
STP menggunakan 3 kriteria untuk meletakkan port pada status forwarding :
STP memilih root switch. STP menempatkan semua port aktif pada root switchdalam
status Forwarding.
Semua switch non-root menentukan salah satu port-nya sebagai port yang memiliki ongkos
(cost) paling kecil untuk mencapai root switch. Port tersebut yang kemudian disebut
sebagai root port (RP) switch tersebut akan ditempatkan pada status forwarding oleh STP.
Dalam satu segment Ethernet yang sama mungkin saja ter-attach lebih dari satu switch.
Diantara switch-switch tersebut, switch dengan cost paling sedikit untuk mencapai root
switch disebut designated bridge, port milik designated bridge yang terhubung dengan
segment tadi dinamakan designated port (DP). Designated port juga berada dalam
status forwarding.
Semua port/interface selain port/interface diatas berada dalam status Blocking.
STP Bridge ID dan Hello BPDU
STP bridge ID (BID) adalah angka 8-byte yang unik untuk setiap switch. Bridge ID terdiri
dari 2-byte priority dan 6-byte berikutnya adalah system ID, dimana system ID berdasarkan
pada MAC address bawaan tiap switch. Karena menggunakan MAC address bawaan ini
dapat dipastikan tiap switch akan memiliki Bridge ID yang unik.
STP mendefinisikan pesan yang disebut bridge protocol data units (BPDU), yang digunakan
oleh switch untuk bertukar informasi satu sama lain. Pesan paling utama adalah Hello BPDU,
berisi Bridge ID dari switch pengirim.
Pemilihan Root Switch
Switch-switch akan memilih root switch berdasarkan Bridge ID dalam BPDU. Root
switchadalah switch dengan Bridge ID paling rendah. Kita ketahui bahwa 2-byte pertama
dari switch digunakan untuk priority, karena itu switch dengan priority paling rendah akan
terpilih menjadi root switch.
Namun kadangkala, ada beberapa switch yang memiliki nilai priority yang sama, untuk hal
ini maka pemilihan root switch akan ditentukan berdasarkan 6-byte System ID berikutnya
yang berbasis pada MAC address, karena itu switch dengan bagian MAC address paling
rendah akan terpilih sebagai root switch.
Menentukan Root Port dari setiap switch
Selanjutnya dalam proses STP adalah, setiap non-root switch akan menentukan salah satu
port-nya sebagai satu-satunya root port miliknya. Root port dari sebuah switch adalah port
dimana dengan melalui port tersebut switch bisa mencapai root switch dengan cost paling
kecil.
Menentukan Designated Port untuk setiap segment LAN
Designated port untuk setiap segment dalam LAN adalah switch port yang mengirimkan
paket Hello ke segment LAN dengan cost terkecil. Ketika switch non-root mengirimkan
pesan Hello, maka switch non-root akan menyertakan nilai cost tersebut kedalam pesan.
Hasilnya, switch dengan cost terkecil untuk mencapai root switch menjadi DP dalam
segment tersebut.
Saat Terjadi Perubahan dalam network
Berikut adalah proses yang terjadi saat topology STP berjaln normal tanpa ada perubahan:
1. Root switch membuat dan mengirimkan Hello BPDU dengan cost 0 keluar melalui semua
port/interfacenya yang aktif.
2. Switch non-root menerima Hello dari root port miliknya. Setelah mengubah isi dari Hello
menjadi Bridge ID dari switch pengirim, switch mem-forward Hello ke designated port.
3. Langkah 1 dan 2 berulang terus sampai terjadi perubahan pada topology STP.
Ketika ada interface atau switch yang gagal beroperasi, maka topology STP akan berubah;
dengan kata lain terjadi STP convergence.
Interface yang tetap berada dalam status yang sama, maka tidak perlu ada perubahan.
Interface yang harus berubah dari forwarding menjadi blocking, maka switch akan langsung
merubahnya menjadi blocking.
Interface yang harus berubah dari blocking menjadi forwarding, maka switch pertama kali
akan mengubahnya menjadi listening, kemudian menjadi learning.Setelah itu interface akan
diletakkan pada status forwarding.
Saat terjadi STP Convergence, switch akan menentukan interface-interface mana yang akan
dirubah statusnya. Namun, perubahan status dari blocking menjadi forwarding tidak bisa
langsung dilakukan begitu saja, karena dapat menyebabkan frame looping temporarer. Untuk
mencegah terjadinya looping temporarer itu, STP harus merubah status port tersebut menjadi
2 status transisi terlebih dahulu sebelum merubahnya menjadi forwarding:
Listening: seperti halnya blocking, interface dalam keadaan listening tidak mem-forward
frame. (15 detik)
Learning: interface dalam status ini masih belum mem-forward frame, tapi switch sudah
mulai melakukan pemeriksaan MAC address dari frame-frame yang diterima pada interface
ini. (15 detik)
Switch akan menunggu 20 detik sebelum memutuskan untuk melakukan perubahan status
dari blocking menjadi forwarding, setelah itu butuh waktu 30 detik untuk transisi
ke Listeningdan Learning terlebih dahulu. karena itu total yang dibutuhkan agar suatu port
berubah dari blocking menjadi forwarding adalah 20+30=50 detik.
EtherChannel
EtherChannel mengkombinasikan beberapa segment parallel yang memiliki kecepatan yang
sama menjadi satu. Switch memperlakukan EtherChannel sebagai interface tunggal
berkenaan dengan proses memforward frame seperti halnya juga STP. Hasilnya, jika salah
satu link gagal, tapi salah satu link lain dalam EtherChannel masih beroperasi, maka STP
tidak akan terjadi.
EtherChannel juga menyediakan bandwidth yang lebih banyak. Trunk-trunk pada
EtherChannel berada pada status forwarding semua atau blocking semua, karena STP
memperlakukan semua trunk pada EtherChannel sebagai 1 trunk. Saat EtherChannel berada
pada status forwarding, maka switch akan melakukan load-balance (membagi rata) traffik
pada semua trunk, sehingga bandwidth yang tersedia jadi lebih banyak.
PortFast
PortFast memungkinkan switch untuk menempatkan sebuah interface kedalam status
forwarding secara langsung tanpa harus menunggu 50 detik. Tetapi, hanya port yang
diketahui tidak akan dihubungkan dengan switch yang lain yang bisa dijalankan fitur
PortFast.