Spanning-Tree is No More

May 30, 2006

Spanning-Tree Protocol (STP) adalah protokol yg digunakan untuk memastikan tidak adanya loop di suatu jaringan layer 2. Jika kita punya dua buah switch yg dihubungkan satu sama lain dengan dua kabel, jika tidak ada STP maka paket broadcast dari switch pertama akan dikirimkan ke switch yg kedua melalui dua link tersebut, dan oleh switch yg kedua paket broadcast tersebut akan dikirimkan kembali melalui dua link itu lagi. Ini yg disebut switching loop, dan paket broadcast akan membuat suatu kondisi loop yg disebut broadcast storm.

STP, yg sudah distandarkan menjadi IEEE 802.1D, menggunakan algoritma ciptaan Radia Perlman untuk memutuskan loop dgn cara membuat status dari salah satu port dari kedua link tsb menjadi blocking. Algoritma tsb membuat switching tree dgn salah satu switch sebagai akar (disebut root bridge), dan switch yg lain bisa terhubung ke root hanya dgn satu uplink. Semua alternatif link akan di block, sehingga kita seolah-olah membuat tree dgn cabang-cabang yg hanya memiliki satu link untuk menuju root. Semua komunikasi antar switch untuk memutuskan switch mana yg menjadi root bridge dan alternatif link mana yg harus di block menggunakan Bridge Protocol Data Unit (BPDU).
Kembali ke scenario di atas, dgn STP maka tidak akan terjadi loop karena satu link akan di block dan paket broadcast dari switch pertama akan dikirimkan ke switch yg kedua hanya melalui satu link.

Tapi tunggu dulu, sebenarnya buat apa di suatu jaringan kita menghubungkan dua switch dgn dua link?

Coba ambil kertas dan gambar topologi campus network dgn core, distribution dan access layer. Sangat umum di suatu jaringan campus seperti ini satu access switch dihubungkan ke dua distribution switch yg berbeda untuk alasan redundancy dan load balancing. Distribution switch biasanya dijadikan central dari VLAN database (disebut VTP server) dan gateway untuk semua user yg konek ke access switch tsb.

Jika kita konek ke access switch yg dihubungkan ke dua distribution switch, maka sekarang kita mempunyai dua gateway. Dgn topologi seperti ini kita membutuhkan satu protokol lain yg disebut Hot Standby Routing Protocol (HSRP). HSRP akan memutuskan distribution switch mana yg akan menjadi active gateway, dan distribution switch yg lain menjadi backup dan akan mengambil alih jika active gateway down. Nah, jika kita memiliki beberapa access switch yg dihubungkan ke dua distribution switch, dan kita memiliki satu VLAN yg tersebar di beberapa access switch, maka kita harus menghubungkan satu distribution switch dgn distribution switch yg lain menggunakan layer 2 link atau trunk. Sekarang kita memiliki switching loop antara: access switch – distribution switch 1 – distribution switch 2 – kembali ke access switch, dan disini STP diperlukan untuk memblock satu port untuk menghilangkan loop tsb. Yg bikin repot, untuk mengoptimalkan link yg digunakan, kita harus membuat si active gateway juga sebagai root bridge. Hal ini bisa dicapai dgn cara mengubah parameter prioritas si active gateway.

I hate Spanning-Tree Protocol. I really hate it.

Bukannya tanpa alasan. Gue sudah pernah melihat beberapa network customer gue melted down gara-gara STP loop. STP loop bukan berarti STP nya yg loop, tapi STP gagal berfungsi dan tidak berhasil mencegah broadcast storm yg terjadi gara-gara adanya loop. Protokol dan algoritmanya memang hebat, tapi STP bisa saja tidak memblock suatu alternatif link gara-gara beberapa alasan. Bisa jadi karena ada satu switch yg mengalami utilisasi CPU yg sangat tinggi dan tidak konsisten dalam mengkomunikasikan BPDU dgn switch lain. Bisa jadi juga karena di jaringan fiber yg menggunakan dua link untuk mengirim dan menerima paket, salah satu link rusak sehingga terjadi unidirectional fiber link. Switch yg satu menerima BPDU tapi tidak berhasil mengirimkan BPDU. Hal ini sebenernya sudah dicegah oleh vendor seperti Cisco Systems dgn menggunakan fitur Uni-Directional Link Detection (UDLD), tapi gue sempet menjadi saksi STP loop gara-gara hal ini. Hal serupa juga bisa terjadi jika beberapa access switch di stack, access switch yg berdekatan dihubungkan satu sama lain dgn kabel khusus untuk stack, dan terjadi masalah di kabel stack tersebut. Karena stack link ini menjadi bagian dari kalkulasi STP dan kemungkinan seharusnya di block juga.

Ada cara agar kita tidak perlu menghubungkan dua distribution switch dgn Layer 2 link. Cara yg pertama adalah dgn tidak memiliki VLAN yg sama di beberapa access switch yg berbeda. Karena jika kita memiliki satu VLAN tersebar di beberapa access switch, dan salah satu uplink dari satu access switch down, maka access switch tsb akan menggunakan alternatif link yg dihubungkan dgn distribution switch yg lain. Tapi karena tidak ada Layer 2 link antar distribution switches, dan active gateway masih ada di distribution switch yg lain, maka paket dari access switch ini tidak akan bisa mencapai gateway. Active gateway tidak akan berubah karena HSRP masih melihat ke dua distribution switch masih berfungsi, dan antara HSRP gateway masih bisa berkomunikasi melalui beberapa access switch yg lain.

Cara yg kedua adalah dgn menggunakan protokol baru pengganti HSRP yg disebut Gateway Load Balancing Protocol (GLBP). GLBP membuat ke dua distribution switch menjadi aktif, dgn cara memberi MAC address yg berbeda untuk satu virtual IP yg sama. Jadi semua user akan menggunakan satu virtual IP address sebagai gateway. Ketika user pertama harus me-resolve virtual IP address tsb, maka dia akan mendapat respon MAC address dari distribution switch yg pertama. User kedua akan mendapat respon MAC address dari distribution switch yg kedua, dan seterusnya.

GLBP is perfect. Sebagai network designer, hidup gue menjadi sangat indah karena gue bisa membuat design campus network yg redundant dan support load balancing, tanpa memerlukan Layer 2 link antara dua distribution switches. Cuman ada satu masalah kecil: karena gue sedang mengkampanyekan MPLS in the Enterprise, gue sangat sangat sangat kecewa ketika dapet berita dari Cisco bahwa:
MPLS doesn’t support GLBP! VRF is not aware of GLBP!

Why Cisco, why? Why you always want to make my life miserable?
Berita ini tidak tertulis di Cisco public website, cuman beberapa Cisco SE bilang ke gue: “Himawan, you have to trust us on this. If you want to deploy MPLS on distribution, and distribution switch is the gateway, you must use HSRP and not GLBP.”

Dengan informasi terbaru ini gue cuman punya dua pilihan:
Bertahan dgn distribution switch sebagai gateway dan menggunakan HSRP, tapi memastikan tidak ada VLAN yg sama di access switch yg berbeda. Dgn cara begini tidak ada layer 2 link antar distribution switch.

Pilihan ke-2, tentunya bertahan dgn layer 2 link antar distribution dan tetap menggunakan HSRP, dengan catatan gue harus meng set agar distribution switch yg menjadi active gateway sekaligus menjadi root bridge.
Gue terus terang gak suka cara ini karena gue harus tetap tergantung dgn STP. Meskipun sekarang sudah ada Rapid STP dgn standar IEEE 802.1W, tapi mekanisme kerjanya masih mirip. Hanya saja perubahan status port dari blocking ke forwarding, status port yg ready untuk men-forward traffic, menjadi jauh lebih cepat.

Jadi gue akan mencoba dgn pilihan ke-3 yg akan gue coba dalam waktu dekat: Routing sampai ke access switch. Dgn cara ini, access switch akan menjadi gateway buat semua VLAN dan users yg konek ke access switch tsb. Tiap access switch akan punya VLAN ID yg sama untuk tipe user yg similar, sehingga user yg konek ke access switch yg lain tetap memiliki VLAN ID yg sama walaupun akan berada di network yg berbeda. Ini tidak akan menjadi masalah asal semua access control list disesuaikan, sehingga users yg berada di VLAN ID yg sama bisa saling tetap berkomunikasi.
No STP, No HSRP. Routing rules.

Bagaimana dgn MPLS? Karena berbagai access switch sampai sekarang belum support MPLS, MPLS cloud tetap di mulai dari distribution switch. Tapi gue harus meng-extend VRF dari distribution ke access switch. Ada fitur di Cisco switch yg disebut VRF-lite, yg bisa mem-bind user VLAN di access switch dgn uplink ke distribution. Jadi tiap user VLAN akan memiliki dedicated uplink, dan uplink-uplink ini bisa langsung di associate ke VRF di distribution switch tergantung dari VPN masing-masing.

Ini pilihan seru. Gue belum nemu contoh skenario dari Cisco website. Hasrat gue untuk tidak menggunakan STP membuat gue akan mengambil pilihan ini. Yang jelas sekarang gue lagi mendesign satu Enterprise campus network yg akan gue bangun dgn cara ini. Kalo gagal, gue bisa fallback ke pilihan satu dan dua. Kalo berhasil, gue bakal menuliskan sejarah baru. Hmm, kayaknya enggak sih. Tapi paling tidak gue berhasil menyalurkan hasrat gue :)

I don’t live by the book. I want to write my own book.

3rd Indonesian Double CCIE

May 27, 2006

Gue tadi malem terima email dari seorang temen yg bilang dia baru saja lulus CCIE Voice lab, dan menjadi orang Indonesia ke-3 yang punya Double CCIE. Track Voice ini termasuk track CCIE yg paling susah, karena materi dan lab yg sulit di dapat.
Congratulations, my man! It’s really a big achievement.

Atas permintaan temen gue yg humble itu, gak kayak gue yg suka pamer heheh, gue gak mau sebutin namanya di sini. Biar aja dia nanti yg umumin sendiri :D

Iseng-iseng gue cek statistik jumlah total CCIE di dunia di sini.
Per tanggal 1 May 2006, ada total 13.299 CCIE tersebar di seluruh dunia. Yg menarik:

Total with multiple certifications worldwide: 814
Total of Routing and Switching and Security CCIEs: 441
Total of Routing and Switching and Service Provider CCIEs: 248
Total of Routing and Switching and Storage Networking CCIEs: 15
Total of Routing and Switching and Voice CCIEs: 125
Total with 3 or more certifications: 133

Dari jumlah multiple CCIE yg jumlahnya cuman ratusan orang itu, udah ada 3 orang Indonesia. Dan temen gue yg baru lulus kemaren ini jadi 1 orang dari 125 orang di dunia.

Once again, congratulations.
Dan buat semua orang Indonesia, ini bukti kita bukan bangsa Idiot!

Best Architect, eh?

May 20, 2006

Gue lagi bener-bener sibuk.
Sejak 2 bulan kemaren gue terjun mengerjakan 4 project sekaligus. Dan beberapa dari project tsb adalah yg terbesar yg pernah company gue dapatkan. Project terkecil bernilai sekitar 4 juta dollar, dan project terbesar sekitar 25 juta dollar, hanya untuk harga peralatan Cisco. Customer yg berbeda dari Airport, Shopping Mall, perumahan dan universitas. Teknology yg berbeda dari MPLS, Multicast, QOS, security, wireless sampai IP Telephony. Role gue yg berbeda-beda pula dari technical project manager, designer sampai memimpin implementasi.

Ratu gue pernah bilang: hidup ini gak ada yg setengah-setengah.
Life always gives you an extreme choice.
Cuma ada 2 pilihan: tidak ada kerjaan sama sekali, atau super sibuk. Tahun lalu gue cuman punya 1 project dan membuat gue kerja 8 to 5 seperti layaknya orang normal.
I was bored to death. I wished to have more workloads.
Jadi gue mulai bikin diri gue sibuk dgn CCIE journey gue.

Nah sekarang gue diberi kerjaan yg gila-gilaan. Terlalu berat sampai gue merasa choked. Tapi tentunya gue gak boleh komplain dong ya?

Anyway, 3 hari yg lalu gue lagi duduk dgn Senior Project Manager dari Cisco Advance Services team. Ini adalah team impian tempat gue ingin bekerja kalo gue join Cisco nanti. Dan buat gue adalah suatu kesempatan emas untuk kerja bareng mereka di salah satu project gue, karena gue bisa belajar banyak dan mencermati bagaimana mereka bekerja. Dan juga untuk memperbesar jaringan kontak gue tentunya.

“Himawan,” dia bilang, “I have forwarded your request to join us to my company”
Minggu sebelumnya memang gue bilang ke dia kalo gue tertarik banget buat join Cisco Advance Services di lokasi manapun. Di lokasi manapun di seluruh dunia, kecuali 3 I: Iraq, karena masih berupa war zone, Iran, karena sekarang lagi jadi central of conflict, dan Indonesia. Indonesia, karena gue masih belum ingin pulang. Gue masih ingin mencari pengalaman sebanyak-banyak nya sebelum kembali ke rumah.
I want to know how far I can fly.

“Two things that make me surprised,” si Senior PM melanjutkan. “First of all, the HR guys told me that your company is the biggest Cisco partner in this country”
Indeed. Emang bener. Apalagi setelah kita menang berbagai project terbesar di negara ini. Gak cuman terbesar, tapi juga the hottest.
“And they mentioned that you are the best architect from your company. If we hire you, how can your company survive? If we hire the best architect from our biggest partner, how can they help us selling our products?”

Well, ini sebenernya suatu pujian. Gue gak tau dia bo’ong atau enggak, tapi disebut sebagai best architect tentunya membuat gue sedikit bangga. Mungkin dia cuman bilang ini biar gue seneng. Mungkin dia cuman butuh alasan.
Tapi ini tidak penting. Yg penting adalah: jadi karena gue kerjanya bagus justru membuat kemungkinan gue buat bergabung dgn Cisco Middle East menjadi lebih kecil? Apakah masa depan company gue merupakan tanggung jawab gue sepenuhnya? Emang gue salah kalo gue ingin mengejar impian gue?

So what’s the point to be the best architect if that can’t make you join the company of your dream? If that can’t make you join the team that you truly adore?

Buat gue gak masalah kerja jungkir balik, kerja di 4 project sekaligus. Gak masalah cuman tidur beberapa jam sehari kayak dulu waktu lagi belajar CCIE. Kerja siang malam dan weekend. Gak ada waktu buat keluarga. Tiap hari harus loncat ke kantor customer yg berbeda-beda. Tiap hari harus minum Vitamin C dan doping supaya gue bisa tetep fresh sampai akhir hari.

Yg jadi masalah adalah ketika gue mulai berpikiran apakah semua ini sebanding. Apakah semua ini sebanding dgn apa yg harus gue korbankan. Apakah semua ini bisa memberikan respect yg selama ini gue cari.

Dan gue belum tahu jawabannya. Tapi satu hal yg gue tahu pasti: semua ini tidak akan membuat gue bakalan di rekrut oleh Cisco Middle East.
That’s for sure.

In Memorian of My Pretty White Chick

May 4, 2006

I have to let her go.
The option that I took forces me to give up one of the thing that I like the most.

I’m gonna miss your fast response from 0 - 100 km/h in 7 seconds.
Playing with your steptronic transmission in the middle of Dubai busy streets.
Open your sunroof to enjoy the fresh air in Jumeirah Beach road.
Change the CD track from steering wheel.
Driving on Emirates Road with cruise control.

Goodbye my love.

I’m giving up my respect.
I’m riding a rental Toyota now :)