Wednesday, 10 October 2012

STP (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/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.

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 switch dalam 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 switch adalah 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: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.
  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)

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.