PortFast
Setelah sebuah port tersambung dan join ke bridge group, maka STP akan jalan pada port tersebut. Sebuah port yang menjalankan STP akan melalui lima state yaitu:
- Blocking
- Listening
- Learning
- Forwarding
- Disabled
STP memulai dari fase blocking, kemudian berganti ke listening dan learning dengan segera. Secara default, port membutuhkan waktu kira-kira 15 detik untuk masing-masing fase listening dan learning.
Selama fase listening, switch mencoba untuk menentukan dimana port yang cocok untuk topologi spanning tree. Secara khusus port ingin mengetaui apakah port ini bagian dari physical loop. Jika port adalah bagian dari loop, maka port dapat dipilih menjadi mode blocking. Kondisi blocking berarti port tersebut tidak dapat mengirim atau menerima data dalam rangka untuk mengeliminasi loop.
Jika port bukan bagian dari loop, port akan memproses ke mode learning, dimana port mempelajari MAC address mana yang tertaut pada port ini. Semua proses ini membutuhkan waktu 30 detik.
Jika kita menyambungkan sebuah workstation atau server dengan single NIC card atau sebuah IP Phone ke port switch, maka koneksi tidak dapat membuat physical loop. Koneksi-koneksi tersebut dianggap sebagai leaf nodes. Tidak ada alasan untuk perangkat menunggu selama 30 detik ketika switch memeriksa loop jika memang perangkat terseut tidak dapat menyebabkan loop.
Cisco menambahkan fitur PortFast. Dengan fitur ini, STP mengansumsikan port ini bukan merupakan bagian dari sbuah loopo dan sesegera akan berpindah ke mode forwarding dan tidak akan melewati fase blocking, listening, atau learning. Perintah ini tidak akan mematikan STP. Perintah ini membuat STP melewatkan beberapa step awal pada port yang telah ditentukan.
Catatan: Jangan pernah gunakan fitur PortFast pada port switch yang terkoneksi ke switch, hub, atau router lain. Hal tersebut akan menyebabkan physical loop dan spanning tree harus melalui prosedur inisialiasi dengan lengkap. Sebuah spanning tree loop dapat menyebabkan network menjadi down.
Sebuah level global, kita dapat mengaktifkan BPDU guard pada port yang menggunakan fitur PortFast dengan perintah spanning tree portfast bpduguard default pada global configuration mode. Pada konfigurasi yang benar, PortFast tidak akan menerima BPDU. Menerima sebuah paket BPDU pada port yang mengaktifkan PortFast adalah sebuah konfigurasi yang salah dan fitur BPDU guard akan memasukkan interface ke dalam mode error-disabled. Pada level interface, kita dapat mengaktifkan BPDU guard dengan perintah spanning-tree bpduguard enable.
Perintah untuk mengaktifkan PortFast pada interface:
### INTERFACE-LEVEL
$ int range g1/0/1-5
$ spanning-tree portfast
Jika ingin mengaktifkan secara default pada access port secara global, maka dapat menggunakna perintah:
### GLOBAL-LEVEL
$ spanning-tree portfast default
BPDU Guard
Port yang menggunakan fitur PortFast tidak menerima paket BPDU. Menerima sebuah paket BPDU pada port tersebut dianggap sebuah kesalahan, seperti perangkat yang tidak ter-otorisasi dan BPDU guard akan memasukkannya ke dalam kondisi error-disabled.
Fitur BPDU guard menyediakan sebuah respon aman untuk kesalahan tersebut karena kita harus mengaktifkan kembali secara manual port tersebut. Kita dapat menggunakan fitur BPDU guard di dalam jaringan service provider untuk mencegah access port bepartisipasi dalam spanning tree.
Gunakan perintah spanning-tree portfast default pada mode global configuration untuk mengaktifkan fitur PortFast pada semua nontrunking port. Konfigurasikan fitur ini hanya pada port yang terkoneksi ke end station, jika tidak maka dapat menyebabkan loop yang menyebabkan network macet. Kita dapat melakukan konfigurasi bpduguard pada mode interface dengan perintah spanning-tree bpduguard enable.
Contoh : Mengaktifkan bpduguard secara default pada semua port access. Kemudian melakukan recovery jika ada port yang masuk dalam kondisi error-disabled yang disebabkan karena bpduguard. Waktu yang dibutuhkan untuk recovery adalah 240 detik. Setelah 240 detik, maka port akan aktif kembali.
# GLOBAL-LEVEL
$ spanning-tree portfast bpduguard default
$ errdisable recovery cause bpduguard
$ errdisable recovery interval 240
Perintah secara lengkap untuk mengaktifkan PortFast dan BPDU guard:
# SECARA GLOBAL atau DEFAULT
$ spanning-tree portfast default
$ spanning-tree portfast bpduguard default
$ errdisable recovery cause bpduguard
$ errdisable recovery interval 240
# PADA INTERFACE TERTENTU
$ int range g1/0/1-8
$ spanning-tree portfast
$ spanning-tree bpduguard enable
$ errdisable recovery cause bpduguard
$ errdisable recovery interval 240