- Spanning Tree Protocol adalah sebuah protokol yang berada di jaringan switch yang memungkinkan semua perangkat untuk berkomunikasi antara satu sama lain agar dapat mendeteksi dan mengelola redundant link dalam jaringan.
- Spanning Tree Protocol adalah sebuah protokol bridge yang menggunakan (Spanning Tree Algorithm) STA untuk menemukan link redundant (cadangan) secara dinamis dan menciptakan sebuah topologi database spanning-tree. Bridge bertukar pesan BPDU (bridge protocol data unit) dengan bridge lain untuk mendeteksi loop-loop dan kemudian menghilangkan loop-loop itu dengan cara mematikan interface-interface bridge yang dipilihnya.
- Spanning Tree Protocol adalah protocol untuk pengaturan koneksi dengan menggunakan algoritma spanning tree.
- Spanning Tree Protocol adalah link layer networ protocol yang menjamin tidak adanya loop dalam topologi dari banyak bridge/switch dalam LAN.
Kelebihan Spanning Tree Protocol (STP)
- Menghindari Trafic Bandwith yang tinggi dengan mesegmentasi jalur akses melalui switch
- Menyediakan Backup / stand by path utk mencegah loop dan switch yang failed/gagal
- Mencegah looping
Tugas utama STP
- Menghentikan terjadinya loop-loop network pada network layer 2 (bridge atau switch). STP secara terus menerus memonitor network untuk menemukan semua link, memastikan bahwa tidak ada loop yang terjadi dengan cara mematikan semua link yang redundant. STP menggunakan algoritma yang disebut spanning-tree algorithm (STA) untuk menciptakan sebuah topologi database, kemudian mencari dan menghancurkan link-link redundant. Dengan menjalankan STP, frame frame hanya akan diteruskan pada link-link utama yang dipilih oleh STP.
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.
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/12 dan 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.
- Menyediakan system jalur backup & juga mencegah loop yang tidak diinginkan pada jaringan yang memiliki beberapa jalur menuju ke satu tujuan dari satu host.
Cara Kerja Spanning Tree Protocol (STP)
Menentukan root bridge.
Root bridge dari spanning tree adalah bridge dengan bridge ID terkecil (terendah). Tiap bridge mempunyai unique identifier (ID) dan sebuah priority number yang bisa dikonfigurasi. Untuk membandingkan dua bridge ID, priority number yang pertama kali dibandingkan. Jika priority number antara kedua bridge tersebut sama, maka yang akan dibandingkan selanjutnya adalah MAC addresses. Sebagai contoh, jika switches A (MAC=0000.0000.1111) dan B (MAC=0000.0000.2222) memiliki priority number yang sama, misalnya 10, maka switch A yang akan dipilih menjadi root bridge. Jika admin jaringan ingin switch B yang jadi root bridge, maka priority number switch B harus lebih kecil dari 10.
Menentukan least cost paths ke root bridge.
Spanning tree yang sudah dihitung mempunyai properti yaitu pesan dari semua alat yang terkoneksi ke root bridge dengan pengunjungan (traverse) dengan cost jalur terendah, yaitu path dari alat ke root memiliki cost terendah dari semua paths dari alat ke root.Cost of traversing sebuah path adalah jumlah dari cost-cost dari segmen yang ada dalam path. Beda teknologi mempunya default cost yang berbeda untuk segmen-segmen jaringan. Administrator dapat memodifikasi cost untuk pengunjungan segment jaringan yang dirasa penting.
Non-aktifkan root path lainnya.
Karena pada langkah diatas kita telah menentukan cost terendah untuk tiap path dari peralatan ke root bride, maka port yang aktif yang bukan root port diset menjadi blocked port. Kenapa di blok? Hal ini dilakukan untuk antisipasi jika root port tidak bisa bekerja dengan baik, maka port yang tadinya di blok akan di aktifkan dan kembali lagi untuk menentukan path baru.
Istilah dalam Spanning Tree Protocol (STP)
- Root Bridge adalah bridge dengan bridge ID terbaik. Dengan STP, kuncinya adalah agar semua switch di network memilih sebuah root bridge yang akan menjadi titik fokus di dalam network tersebut. Semua keputusan lain di network seperti port mana yang akan di blok dan port mana yang akan di tempatkan dalam mode fowarding.
- BPDU semua switch bertukar informasi yang digunakan dalam pemilihan root switch, seperti halnya dalam konfigurasi selanjutnya dari network. Setiap switch membandingkan parameter-parameter dalam Bridge Protocol Data Unit (BPDU) yang mereka kirim ke satu tetangga dengan yang mereka peroleh dari tetangga lain.
- Bridge ID adalah bagaimana STP mengidentifikasi semua switch dalam network. ID ini ditentukan oleh sebuah kombinasi dari apa yang disebut bridge priority (yang bernilai 32.768 secara default pada semua switchj Cisco) dan alamat MAC dasar. Bridge dengan bridge ID terendah akan menjadi root bridge dalam network. 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.
- Nonroot bridge adalah semua bridge yang bukan root bridge. Nonroot bridge bertukar BPDU dengan semua bridge dan mengupdate topologi database STP pada semua switch, mencegah loop-loop dan menyediakan sebuah cara bertahan terhadap kegagalan link.
- Root port selalu merupakan link yang terhubung secara langsung ke root bridge atau jalur terpendek ke root bridge. Jika lebih dari satu link terhubung ke root bridge maka sebuah cost dari port ditentukan dengan mengecek bandwidth dari setiap link. Port dengan cost paling rendah menjadi root port. Jika banyak link memiliki cost yang sama maka bridge dengan bridge ID diumumkan yang lebih rendah akan di gunakan. Karena berbagai link dapat berasal dari alat yang sama, maka nomor port yang terendahlah yang akan digunakan.
- Designated port adalah sebuah port yang telah ditentukan sebagai cost yang terbaik (cost lebih rendah) daripada port yang lain. Sebuah designated port akan ditandai sebagai sebuah fowarding port (port yang akan mem forward frame).
- Port Cost menentukan kapan sebuah link dari beberapa link yang tersedia digunakan di antara dua switch dimana kedua port ini bukan root port. Cost dari sebuah link ditentukan oleh bandwidth dari link.
- Nondesignated port adalah port dengan sebuah cost yang lebih tinggi daripada designated port, yang akan ditempatkan di mode blocking. Sebuah nondesignated port bukan sebuah fowarding port.
- Fowarding port meneruskan atau memfoward frame.
- Blocked port adalah port yang tidak meneruskan frame-frame, untuk menghindari loop-loop. Namun sebuah blocked port akan selalu mendengarkan frame.
Ether Channelmengkombinasikan 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.
- Port Fast 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.
Cara memilih Root Bridge
Bridge ID digunakan untuk memilih root bridge di dalam domain STP dan juga menentukan root port. ID ini panjangnya 8 byte dan mencakup baik priority maupun alamat MAC dari alat. Priority default pada semua alat yang menjalankan STP versi IEEE adalah 32.768.
Untuk menentukan root bridge, priority dari setiap bridge dikombinasikan dengan alamat MAC. Jika dua switch atau bridge ternyata memiliki nilai priority yang sama, maka alamat MAC menjadi penilai untuk memutuskan siapa yang memiliki ID yang terendah (yang juga terbaik). Contoh jika ada switch A dan B dan keduanya memiliki priority default yang sama yaitu 32.768, maka alamat MAC yang akan digunakan untuk penentuan. Jika alamat MAC switch A adalah 0000.0A00.1300 dan alamat MAC switch B adalah 0000.0A00.1315 maka switch A akan menjadi root bridge.
BPDU secara default dikirimkan setiap 2 detik, keluar dari semua port yang aktif pada sebuah bridge dan switch dengan bridge ID yang terendah dipilih sebagai root bridge. Kita dapat mengubah bridge ID dengan cara menurunkan prioritynya sehingga ia akan menjadi root bridge secara otomatis.
Cara memilih Designated Port
Jika lebih dari satu link dihubungkan ke root bridge maka cost dari port menjadi faktor yang di gunakan untuk menentukan port mana yang akan menjadi root port. Jadi untuk menentukan port yang akan digunakan untuk berkomunikasi dengan root bridge. Pertama harus memperhitungkan cost dari jalur tersebut. Cost dari STP adalah sebuah jalur total yang di akumulasi berdasarkan pada bandwidth yang tersedia pada tiap link.
Status Port Spanning Tree Protocol (STP)
- Blocking (memblok) sebuah port yang di block tidak akan meneruskan frame, ia hanya mendengarkan BPDU-BPDU. Tujuan dari status blocking adalah untuk mencegah penggunaan jalur yang mengakibatkan loop. Semua port secara default berada dalam status blocking ketika switch dinyalakan.
- Listening (mendengar) port mendengar BPDU untuk memastikan tidak ada loop yang terjadi pada network sebelum mengirimkan frame data. Sebuah port yang berada dalam status listening mempersiapkan diri untuk memfoward frame data tanpa mengisi tabel alamat MAC.
- Learning (mempelajari) port switch mendengarkan BPDU dan mempelajari semua jalur di network switch. Sebuah port dalam status learning mengisi tabel alamat MAC tetapi tidak memfoward frame data.
- Fowarding (mem foward) port mengirimkan dan menerima semua frame data pada port bridge. Jika port masih sebuah designated port atau root port yang berada pada akhir dari status learning maka ia akan masuk ke status ini.
- Disabled (tidak aktif) sebuah port dalam status disabled (secara administratif) tidak berpatisipasi dalam melakukan fowarding terhadap frame ataupun dalam STP. Sebuah port dalam status disabled berarti tidak bekerja secara virtual.
Saat Terjadi Perubahan dalam Network
Berikut adalah proses yang terjadi saat topology STP berjaln normal tanpa ada perubahan:
- Root switch membuat dan mengirimkan Hello BPDU dengan cost 0 keluar melalui semua port/interfacenya yang aktif.
- 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.
- 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 forwardingyaitu:
- 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 Listening dan Learning terlebih dahulu. karena itu total yang dibutuhkan agar suatu port berubah dari blocking menjadi forwarding adalah 20+30=50 detik.