ngerapihin dan updating artikel tentang STP gw yang lama

sekarang lebih panjang…wkwkwk

apa itu STP? STP adalah Spanning Tree Protocol

itu singkatannya bang

sebelum kita bahas STP…kita lihat gambar dibawah

PC1 mo kirim data ke PC4…awalnya hanya ada Switch S2 dan S1

cuma klo itu link switch S2 dan S1 putus ?? mampus lah..

akhirnya ditaro switch 1 lagi (S3) supaya ada jalur lain…ini namanya Switching
Redudancy

nah…maksud hati ingin ada jalur redundan…kok malah jadi begini…(see pictures below)

defaultnya kan klo switch mo kirim data, sedangkan switch ga tau mo kirim lewat port mana (anggep lah switch nya baru nyala, MAC Table alias CAM table nya masi kosong), itu akan di broadcast

gambar diatas mencontohkan PC1 mo kirim data ke PC4 dengan topologi yang sudah redundan

nah, di S2 (karena ga tau mo kirim lewat mana) mem-broadcast ke S3 dan S1

nasib nya si S3 dan S1 juga sama…”gw juga ga tau bray..” *logat jakarta*

alhasil S3 broadcast ke S1 (ga ke S2 lagi…kan dia yang ngirim), S1 juga broadcast ke S3 dan PC4

nah, S1 dapat nyampein pesan ke PC4, tapi celakanya karena itu broadcast…S1 juga kirim broadcast yang di terima dari S3 ke S2

broadcast S1 yang di terima oleh S3 pun akan diterusin ke S2 juga

switch S2 yang dapet 2 broadcast (dari S1 dan S3) akan reply broadcast lagi (broadcast S1 diterusin ke S3, dan sebaliknya, S3 diterusin ke S1)

terussss aja seperti itu

nah, pas PC4 mo reply ke PC1…itu network uda looping dan in the matter of time…DOWN

disinilah STP bekerja, STP itu dibuat untuk mengatasi Switching Loop

caranya ?? mem-blok salah satu port switch S1/S2/S3 diatas itu

nah…klo itu “jalur utama” mati (misal jalur S2 dan S1), si STP inilah yang akan membuka port yang di blok secara otomatis

klo linear topologi desainnya, ga perlu STP…yang perlu adalah klo uda membentuk “lingkaran” (bisa kotak, ato segitiga…ya sama aja lah)

wokeh…cukup sekian analoginya…sekarang kita masuk lebih dalam (in-depth) tentang STP

=========================================

Cara STP menghentikan switching loop

dengan memblok sebuah port…port mana yang di blok??ini dia teori nya

urutan blok-memblok

  1. yang paling besar Cost nya akan di blok
  2. yang paling tinggi switch Priority (default BID = 32768)-nya yang akan di blok (salah satu port nya)
  3. yang paling tinggi MAC address diantara switch yang akan di blok (salah satu port nya)

contoh:

STP akan liat dari Cost dari sebuah interface, baru Priority, baru MAC address

Ethernet = 10 Mbps

FastEthernet = 100 Mbps

GigaEthernet = 1 Gbps

Fiber = 10 Gbps

Tapi klo interface nya sama semua (biasanya switch kan FastEthernet semua) ??

Masing2 switch akan melihat Switch Priority dan compare dengan switch2 tetangganya (yang paling besar yang akan diblok salah satu port nya)

klo kita ga utak-atik Switch Priority nya, masing2 switch akan kompare MAC address dengan punya mereka sendiri

nah, kita liat…Switch 2 dengan MAC 00D0.D35E.C607 adalah MAC address paling besar diantara yang lain, maka salah satu port nya yang akan di blok

yang diblok tuh yang mana ?? port yang tidak mengarah atau menuju Switch yang MAC address nya paling kecil

coba kita liat, yang paling kecil MAC address nya adalah Switch 1 (switch dengan MAC address paling kecil, Port nya TIDAK ADA yang di blok)

port Fa0/1 dari Switch 2 mengarah ke Switch 1 (yang MAC address paling kecil)…tidak di blok

tapi port Fa0/2 nya tidak mengarah ke Switch 1…ini yang di blok.

Tau darimana itu yang diblok?? Bukan Switch 0 yang diblok?? Coba compare…Switch 0 sama Switch 2 yang paling gede mAC addressnya sapa ??

so…klo switch 1 mo kirim ke PC yang ada di Switch 0 dan interface Fa0/1 Switch 0 ini mati/putus…otomatis Fa0/2 di Switch 2 yang diblok akan dibuka (unblock)

  • Switch dengan MAC address paling kecil disebut Root Bridge
  • port2 yang mengarah ke Root Bridge disebut Root Port
  • Port2 yang tidak mengarah ke Root Bridge disebut Designated Port
  • Dan Port2 yang di blok disebut Alternative Port

(tambahan…Fa0/1 di Switch2 itu Root Port…lupa nambahin di gambar…hehehe)

Port2 Selain dari Alternative Port, akan bisa mem-forward data alias Forwarding Port

contoh klo 4 switch

kita liat…S1 adalah Root Bridge…semua port yang ada di Root Bridge itu Designated Port

yang mengarah ke Root Bridge adalah Root Port (Fa0/1 S3 dan Fa0/2 S4…TERMASUK Fa0/1 S2)

now…we should see the Frame of STP

=========================================================

BPDU (Bridge Protocol Data Unit)

BPDU ini lah yang dikirim antar switch untuk menentukan Root Bridge dan mode port2 nya

BPDU ini besarnya 64 bit alias 8 byte (2 byte untuk BID, 6 byte/48 bit untuk MAC address)

so…dalam BPDU ini terdapat informasi2 tentang MAC-Address switch pengirim BPDU dan juga BID nya mereka

klo sudah ada atau sudah ditentukan Root Bridge nya, value/isi dari BID nya ini adalah MAC address dari Root Bridge nya

jadi klo menurut Switch X Root Bridge nya switch A dan menurut Switch Y Root Bridge nya switch B

nanti masing2 Switch (X dan Y) akan compare, BID mana yang lebih kecil (Root Bridge siapa yang lebih kecil menurut mereka)

klo sudah di compare, entah switch X atau switch Y yang akan mengganti BID nya (tergantung siapa yang lebih kecil)

diagram dari BPDU unit:

  • Protocol ID : STP versi apa?? ada RSTP, PVST, MSTP (nanti dibawah dijelasin)
  • Version : protokol versi berapa
  • Message type : tipe message (apaan nee?…maap Gan….ane juga ga tau)
  • Flag : buat nandain klo ada topology change….jadi biar bisa tau switch2 lain…trus bikin kalkulasi ulang siapa yang jadi root port, designate port, blocked port (TCA = Topology Change Acknowledge)
  • Root ID : untuk nandain yang mana root port
  • Cost : cost dari sebuah interface…(dibawah nanti dijelasin)
  • Bridge ID : (8 bytes) siapa yang jadi Root Bridge menurut kacamata dari switch pengirim BPDU ini
  • Port ID : port mana tempat ngirim bpdu…port fa0/1, fa0/2, atau port yang mana
  • Message Age : untuk melihat waktu yang berjalan setelah switch kirim2an BPDU
  • Max Age : waktu yang diperlukan untuk sebuah frame di drop
  • Hello Time : waktu yang diperlukan untuk kirim2an BPDU (2s by default)
  • Forward Delay : waktu yang diperlukan untuk switchport dari blocking sebuah frame ke forwarding (baca frame dulu…baca mac address dulu…compare BID dulu…inti nya belajar dulu lah si switch ini..)

contoh BPDU (captured on wireshark)

STP Port Status

  • Blocking : port yang tidak akan meneruskan frame, just listen to BPDU, tujuan : untuk mencegah penggunaan jalur yang mengakibatkan loop. SEMUA PORT BERADA PADA STATUS INI KETIKA SWITCH BARU NYALA !
  • Listening : mendengar…hahaha (ya ela..gw jg tau klo itu). port mendengar BPDU-BPDU untuk memastikan dari BPDU-BPDU itu tidak ada loop yang terjadi di network SEBELUM mengirimkan frame2 data. dalam kondisi/state ini…port mempersiapkan diri untuk memforward frame TANPA mengisi tabel MAC address
  • Learning : mempelajari…( -_-; )  abis mendengarkan BPDU trus dia mempelajari semua jalur2 / path cost di network switch. sebuah port dalam status learning MENGISI tabel MAC address TANPA memforward frame2 data (dalam Listening dan Learning…Switch2 ngirim BPDU, tapi ga ngirim data2 dari end devices…just BPDU)
  • Forwarding : uda jelas…forwarding port ditentukan dari cost yang paling rendah (terbaik) ke root bridge, disini baru data2 dari End Device seperti komputer kita di alirkan
  • Disabled : uda jelas…dan biasanya administratif alias kita yg memutuskan sebuah port “dibunuh” atau tidak biar itu port ga ikut2an dalam STP (di shutdown)

nah…klo kita liat, kira2 50 detik untuk switch mem-forward data (dari blocking sampe forwarding)

kelamaan yaks…nah, di Cisco ada yang namanya PortFast

PortFast = dari state Blocking LANGSUNG ke forward

tapi ya hati2…kenapa harus nunggu 50 detik kan untuk mencegah adanya Looping…ya ga??

klo langsung “jebret”..forwarding…ga bisa kalkulasi STP donk

biasanya PortFast ini kita kasi di Port yang terhubung ke End Devices (kan mereka ga tau STP dan ga penting STP2an…orang mereka bukan switch kok)

==================================================

STP Variant (STP Type)

STP pertama kali adalah 802.1D

dulu namanya CST (Common Spanning Tree), dia ngatur STP per Switch

dari segi kecepatan CST…switch harus nunggu 50 detik, lama bets

dari segi efesiensi CST…kaga efisien, semua VLAN = 1 STP, padahal kita pengen switch pada beberapa VLAN berbeda blocking port nya

kenapa gw bilang ga efisien ??? liat gambar ini

Semua vlan (10 dan 20) make jalur yang sama…ke Multilayer Switch 1, walaupun dimaksudkan untuk redundan, tetep aja Multilayer Switch 2 nya nganggur (ga efisien)

nah, dari CST ini dikembangkanlah dari segi kecepatan dan efesiensi

dari segi kecepatan CST ini dikembangkan menjadi RSTP (Rapid STP) – 802.1w, di reduce dari 50 detik waktu port state dari blocking ke forwarding, menjadi kurang dari 1 detik

dari segi effeciency CST ini dikembangkan menjadi PVST (Per-VLAN STP)

nah…ada lagi gabungan dari semuanya…jadilah R-PVST / PV-RST (Per-VLAN Rapid STP)

ya Cepet…ya Efisien

trus klo kita implement R-PVST yang disebut tadi…kan jadi cepet dan per-vlan tuh STP nya, klo VLAN nya banyak gimana??

contoh lah 500an VLAN nya…kan mabok konfig 1-1 (vlan 10 lewat sini, vlan 20 lewat sana, vlan 30 lewat mana)…@_@

*lo emang kaga puas2 ye…*

ada…namanya MSTP (Multiple STP) – 802.1s

konsepnya…kita bikin group VLAN (VLAN instance namanya), jadi VLAN 1 sampe 250 kita mapping ke MSTP Instance nomor 1, VLAN 251 sampe 500 ke nomor 2

jadi nomor instance 1 lewat Switch A, nomor instance 2 lewat switch B

klo di Cisco…pasti ada tambahan plus nya…PVST+ dan RPVST+ (“+” tandanya ini propiertary Cisco)

default STP di Cisco adalah PVST+

MSTP makan resources nya switch lebih kecil dari PVRST+ tapi lebih banyak dari RSTP

================================================================

RSTP (Rapid Spanning Tree)

RSTP (Rapid STP) bisa dikatakan Rapid karena hanya ada 3 State dalam port nya, yaitu: Discarding, Learning, dan Forwarding

nah…di RSTP, ga ada istilah blocking dan listening…listening langsung bersama learning…abis itu forwarding de, makanya cepet banget (waktu port dari Blocking/Discarding ke Forwarding bisa kurang dari 1 detik)

cara kerjanya:

STP

Anggeplah (dari topologi diatas) si A mo ke Root itu uda ada jalan dari C trus ke D

Nah, si A nambahin link yang langsung ke Root…klo di STP biasa, semua switch akan nunggu (tepatnya bernegosiasi) sampe 50 detik untuk menentukan blocking ke forwarding ketika si A nambahin link ke Root

Klo di RSTP beda lagi

Pas si A nambahin link ke Root, HANYA switch A dan Root saja yang negosiasi siapa yang diblock…siapa yang forward (yang laen GA IKUT2AN)

Klo uda…si A baru negosiasi dengan si B dan C… Jadi RSTP itu negosiasi STP nya per neighbor (istilah kata itu peer-to-peer atau point-to-point) aja

Klo STP biasa, negosiasi nya kan ke semua switch

RSTP Edge Port

Edge Port = PortFast

Bedanya apa ?? klo Edge Port di Switch MENERIMA BPDU dari switch lain maka otomatis effect PortFast nya hilang

Klo PortFast biasa, ketemu BPDU…ya tetep PortFast…berpotensi Looping jadinya

bayangin klo yang kecolok itu switch lain (emang yang ngirim BPDU itu switch sih)…ga bisa react to topology change donk?!?

Fitur ini hanya ada di RSTP, so…klo lo mau konfig PortFast lalu STP type nya RSTP…Itu adalah Edge Port (bukan PortFast biasa)

so…klo ada switch lain kecolok di edge port, efek portfast hilang dan akan kirim TCN (topology change notification) ke switch tempat edge port, jadi langsung negosiasi lagi buat mutusin block/forward

=======================================================

STP Toolkits

STP toolkit itu fitur2 STP yang bisa kita maksimalin…contohnya dibawah ini:

  • BPDU Guard

wah…bisa gw isengin donk….ada PC kecolok ke switch (yang uda di setting PortFast tapi RSTP), gw tuker ah colokannya…port yang ke PC akan gw tuker…gw tuker PC gw dengan switch yang nganggur di gudang  ^_^…bikin itu semua switch negosiasi lagi (berubah lagi topologi STP nya…mana yang di blok dan mana yang forward)

Ini gunanya BPDU guard, kita setting di global config switch yang kita pasang PortFast

Jadi klo ada switch lain masuk ke interface yang di pasang BPDU Guard trus ngirim BPDU, itu interface/port akan di err-disabled state (anggep lah di SHUTDOWN)

yah…ga bisa donk???” “iya ga bisa…dasar otak bejad wkwkwk

  • BPDU RootGuard

Klo ini buat ngelindungin si Root Bridge…switch yang jadi root bridge klo di pasang ini akan tetap jadi root bridge

Trus switch yang baru ini dipasang Root Bridge dan ada Root Guard juga gimana…???

Akan ada pemberitahuan “root-inconsistent state” trus di blok deh si switch yang maksa jadi root bridge baru itu

Makanya setting BPDU RootGuard ini memang per port, bukan secara global di switch

  • BPDU Filter

Klo di konfig di interface/port = itu port ga akan ngirim dan ignore BPDU

Klo di konfig di global = semua PortFast ketika menerima BPDU akan hilang efek PortFastnya (not recommended)

  • Loop Guard

Nah, Blocking port akan IMMIDEATELY jadi forwarding klo ga receive BPDU

contoh:

STP itu kan gunanya menghindari Switching loop dengan cara mem-blok salah satu port, nah klo itu port GA SENGAJA TERBUKA ?!?! (contoh karena hardware faulty…salah satu switch ga ngirim BPDU…otomatis switch tetangga yang ga nerima BPDU akan ngerubah port nya dari Blocking ke Forwarding)

Looping lagi dah….

Dengan ada nya Loop Guard….port yang di block tadi ketika ga nerima BPDU akan menerima status “STP loop-Inconsistent State” (ada max age timer nya, yaitu sampe 3x hello dan ga reply2…baru de di “bunuh”)

pas nerima BPDU lagi, otomatis jadi blocking lagi…status inconsistent-state nya di cabut (liat aja di show spanning-tree inconsistentports)

Karena port di switch menerima status “STP loop-Inconsistent State”…data2/traffic ga akan di pass/dialirkan

cocok di implementasi di RSTP

Loop Guard ga bisa di pake bersama2 dengan Root Guard di port yang sama (iya lah, Root Guard walaupun ngelindungin dari BPDU, tetep harus kirim BPDU dong….klo di Disable gara2 kena LoopGuard kan repot)

Dan juga jangan di pake di EtherChannel (bahaya, klo dia detect ga ada BPDU…di blok kabehhh)

Loop Guard ini bisa di setting di global konfig atau di interface port nya

  • UDLD (Uni-Directional Link Detection)

Klo liat gambar diatas…mirip kayak kenapa Loop Guard diimplementasikan yah ??

Memang….Cuma bedanya klo UDLD lebih ke arah physical cabling (kek salah tipe kabel gitu)

Ini fitur emang paling cocok ditempatin  di Switch yang portnya Fiber semua (kemungkinan miswiring/salah tipe kabel bisa terjadi)

UDLD ini propiertary Cisco (vendor lain namanya doank dibedain)

UDLD Aggressive Mode

Klo kita setting Aggressive mode, switch akan attempt sampe 8x untuk bisa normal lagi baru memutuskan untuk di SHUTDOWN (err-disabled state)

Bisa di setting global atau per-interface/port

STP Recommendation

=================================================================

perbedaan LoopGuard dan UDLD

2 orang ini sama2 mencegah Looping port (jadi Forwarding gara2 ga detect BPDU)

LoopGuard: berguna klo ada switch yang ga ngirim BPDU (hardware faulty/switch rusak/dll)

UDLD: berguna klo kita salah kabel/kabel ga dicolok dengan benar

=================================================================

Nah, ada lagi yang dinamakan FlexLinks

FlexLink ini kek STP tapi versi manual…

Jadi kita setting primary path…trus kita setting backup path nya

So..klo kita Setting Fa0/1 jadi primary trus Fa0/2 jadi backup, maka Fa0/1 yang ngalirin traffic dan Fa0/2 jadi “standby” klo2 Fa0/1 mati