Home

Layer 2 Design

4 Comments

Design Layer 2 hampir selalu membahas STP, Trunk, UDLD, EtherChannel, dan VSS

Prerequisite learning this article: Switching Knowledge

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

STP (Spanning Tree Protocol) in Network Design Perspective

USE ONLY WHEN YOU HAVE TO…

Klo ga perlu…jgn gunakan STP, STP bikin topologi makin komplek, semakin komplek berarti troubleshooting makin susah, semakin banyak pula makan resource Switch (dan resource kepala kita hahaha)

Plus….link yang diblok bener2 under-utilized, ga kirim/nerima frame apa2, kek jalan kosong ga pernah dipake…(kecuali punya banyak VLAN, “vlan A link X diblok dan vlan B link Y diblok) bener ga??

Kapan kita ENGGA gunain STP? Look at picture below:

Ketika kita konek ke Server local, STP bisa kita eliminasi.

kapan pake STP?

Ketika kita perlu konek ke WAN…uplink ke WAN harus ada backup, dengan menambahkan link backup…berarti memunculkan kemungkinan Broadcast Storm, klo ada broadcast storm…disitulah STP muncul, klo ada STP Muncul…artinya CPU-nya Switch harus bekerja ekstra lebih keras (selain harus ngurusin STP, dia kan juga harus ngurusin VLAN, mac-address, dan segala macam L2 forwarding lainnya)

Tapi kan bisa aja Server itu penting…masa ga perlu redundancy? That’s why the planning in project meeting is important my friend

In that meeting, we design which area that get the redundancy…which area is not…jangan semua area dikasi redundancy…proper planning and designing saves Cost (unless you’re very skillful sales executive…expert at “morotin duit client”)

Ada ga yang bisa gantiin STP? Ada

  • FlexLinks: “manual” backup…konsep flexlink itu bikin primary link dan backup link, backup link akan selalu inactive sampe primary link mati (versi manual dari STP)

How about the convergence? Slow…butuh beberapa detik untuk backup link jadi active

Wah ga cocok dong dengan Delay Sensitive Application? Emang…tapi FlexLink bisa digunakan klo lo males pergi ke site network…Cuma untuk ketik “no shutdown” ke sebuah link yang jadi backup hahaha (ada loh yang bikin link backup…BENER2 BACKUP….di shutdown, hahaha)

  • L2MP: Layer 2 Multi Path, designed with the IS-IS algorithm (which is capable of L2-L3 technology)

Imagine if Switch use L3 Routing Intelligence for L2 Path Decision instead of solely depends on L2 Technology like STP…that’s what L2MP capable of, now we can get rid of STP

Wow…keren dong,..device apa yang bisa? Nexus 5000 dan 7000

Hahaha…nanti kapan2 gw bahas tentang L2MP

Now back to STP (if you have to implement STP)

STP ada fitur “add-on”, Cisco bilang ini namanya STP Toolkit, apa aja isinya:

  • PortFast: bikin port diswitch langsung “ijo” ga pake “oren” dulu…
  • Loop Guard: bikin port diswitch detect link mati
  • Root Guard: biar Root Bridge nya ga ganti
  • BPDU Guard: bikin port itu ga mau nerima BPDU
  • Bridge Assurance
  • EtherChannel Guard
  • PVST Simulation

Gunanya apa? Untuk menjaga stabilitas L2 topology (lo ga pengen kan root bridge ganti2 tiap saat dan bikin network lo jadi kacau)

Wokeh…untuk yang pernah belajar STP…pasti uda ga asing dengan yang namanya PortFast, LoopGuard, RootGuard, dan BDPU Guard

But there’s 3 more things that foreign and new in our ears (eyes) right…which is bridge assurance, EtherChannel Guard, dan PVST Simulation

  • Bridge Assurance (BA) : enabled by default on Cat6500 Switch, klo biasanya switch kirim BPDU lewat normal port, dengan BA itu BPDU dikirim lewat semuanya (termasuk alternate/blocked port)

gunanya apa? Untuk jaga Root Bridge Stability, begitu Switch yang ada Bridge Assurance kirim BPDU trus ga ada reply, dia akan kasi tau ke switch lain (inconsistent port)

Biasanya kan klo pake “guard-guard yang lain” di switch, kirimnya klo ga di designated port, pasti di root port…dengan BA, BPDU juga dikirim lewat blocked port (buat jaga2 aja)

bro…gw kirim agen rahasia ke link blocked port gw, harusnya GA ADA jawaban, tapi sekarang malah ada BPDU Replay…Celaka inih, be careful with our STP Root Bridge, watch it closely…guard it” hahaha…James Bond/PASPAMPRES-nya versi STP nih

Note for BA:

  • Only in IOS 12.2(33)SXI and later
  • Both side must perform Bridge Assurance (ya iya la, ntar bingung switch sebelah “kok ada BPDU kirim2 kesini?!?”)
  • Works only on R-PVST+ and MST
  • Only on P2P link (jadi ga bisa ke Hub)
  • EtherChannel Guard: bertugas untuk jaga konsistensi EtherChannel, biasanya kan untuk bikin EtherChannel minimal 2 link di switch A dan 2 link di switch B

Dengan EtherChannel Guard, kita bisa detect (dari switch A) “wah, link switch B 1 port-nya ada yang ga perform EtherChannel nih, sedangkan port gw 2-2nya smoothly perform EtherChannel

State port-nya jadi “root-inconsistent state”

  • PVST Simulation: MST bisa inter-operability dengan R-PVST+, tau kenapa? Because of PVST Simulation

Gw ambil dari Cisco-nya langsung deh kenapa kita harus disable/enable PVST Simulation:

You may want to control the connection between MST and Rapid PVST+ to protect against accidentally connecting an MST-enabled port to a port enabled to run Rapid PVST+. Because Rapid PVST+ is the default STP mode, you may encounter many Rapid PVST+ connections

Jadi PVST simulation bisa kita matiin…hanya port2 tertentu/switch2 tertentu aja yang pake R-PVST bole ikut2an MST

Currently, in later Cisco Later appliances…all variants of STP supported are only PVST+, R-PVST+, and MST

Eh…itu BA, EtherGuard sama PVST Simulation bisa di switch 2900 series ga? Ato di 3750 gituh? Engga…bisanya di 6500 hahaha

*Note: untuk MST, tiap device beda2 untuk nampung MST Instance, contoh Nexus 5000 sanggup sampe 65 MST Instances dalam 1 region (switch2 dengan konfigurasi MST yang sama = 1 region)

*Note: Cisco merekomendasikan untuk pake MST klo mau konek ke switch dari vendor lain untuk ensure full interoperability

Kapan dan dimana kita implement those STP toolkits?

  • Loop Guard/Bridge Assurance: between Distribution Switches Links and uplink port on Access Switch ke distribution switch
  • RootGuard: on port Distribution Switch that face Access Switch (karena biasanya root bridge-nya di setting di Distribution Switch)
  • BPDU Guard/Root Guard: on port Access Switch that face End Devices

And don’t forget to implement Switch Security Features such as Port Security in area/switch/port that needs maximum security

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

VLAN and Trunk

Always disable DTP (Dynamic Trunking Protocol)

Why? To prevent VLAN Hopping

Nah, karena DTP itu fitur default dari switch Cisco, klo tiba2 ada hacker nyolok kabel ke port yang lagi nganggur dan dia punya software yang bisa bikin port NIC dia seakan2 trunk…ARTINYA DIA DAPET AKSES KESEMUA VLAN (trunk secara default allow semua vlan)

Tinggal cari Native VLAN di network yang dia tempel…bungkus frame yang VLAN-nya mau diserang pake Native VLAN-ID tag (Double VLAN Tag) trus kirim…

Apa yang terjadi dengan frame yang ditempelin native vlan?!?…VLAN Tag itu dibuang dan dikirim ke tempat (switch) yang bersangkutan, guess what…masi ada VLAN Tag lagi didalemnya kan?!? (that’s why this trick called Double Tagging)

Nah, ditempat switch yang bersangkutan akan dibaca “the real” VLAN tag nya..di forward-lah ke tujuan…dapet de si hacker resource VLAN yang bersangkutan (That’s why this method is called VLAN HOPPING…loncat2)

Trus bagusnya apa DTP? Kenapa DTP diciptain? Salah satu alasan kenapa DTP diciptain adalah untuk detect mismatch configuration…klo DTP dimatiin, lo ga akan tau itu link sebelah trunk apa bukan, access apa bukan, apa jangan2 error lagi…

Klo perlu…Manual Pruning, jadi lo set VLAN2 mana aja yang bole lewat trunk A, trunk B, dll

Trus klo VLAN-nya banyak gimana? untuk jaga konsistensi nomor dan penamaan VLAN aja uda repot?!?

That’s why VLAN Trunking Protocol alias VTP is created

But be careful, REVISION NUMBER…this little thing can make or break your network in instant

Note when implementing VTP:

  • Always use transparent mode first before plug the device into your network
  • Check the Revision Number (using transparent mode will reset revision counter number to Zero)
  • Use VTP Pruning (save your as* a big time when implementing VLAN Pruning)

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

UDLD (UniDirectional Link Detection)

Fitur ini dibikin karena adanya kasus pada Fiber Connection, biasanya kan dalam 1 kabel fiber ada 2 “mini kabel”, 1 buat transfer (Tx) dan 1 lagi buat receive (Rx)

Nah, kasusnya kek dibawah ini…

SwA kirim lewat Tx…diterima di SwB Rx, begitu SwB mau reply…ga bisa (mungkin kabel Tx didalemnya putus)

SwA akan mikir “ini BPDU yang gw kirim diterima kok…ga ditolak..tapi kenapa ga ada respons ya?!

Fitur STP lain yang namanya Loop Guard ga bisa detect problem dengan kasus seperti ini, dia taunya…”begitu gw kirim BPDU ga diterima…gw langsung mark jadi inconsistent

Lagian dari “kacamata” upper layer (L3 keatas)…ini link masi dinyatakan hidup, gara2 “buktinya gw bisa ngirim tuh” behavior

Dengan UDLD, SwA akan melakukan 8x percobaan untuk kirim BPDU untuk memutuskan ini link error

8x Kelamaan? Aggressive mode…begitu fail…SHUT!! Err-disable state

Recommendation: Always Enable UDLD…Globally

Note for implementing UDLD:

  • When enabling UDLD globally, Copper Ethernet is excepted (karena dianggep ini ke komputer port, ga pake fiber2an, klo mau ya setting lagi sendiri…tapi jarang sih Ethernet “kena” problem UDLD, biasanya pake LoopGuard uda cukup)
  • Both side must configure UDLD, otherwise the port goes to err-disable state

Conclusion: klo MPLS layer 2/3 (2.5), UDLD itu layer 1/2 (1.5)

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

EtherChannel

Up to 8 ports per EtherChannel group

  • Use PAgP for connecting Cisco Devices
  • Use LACP for mixed vendor (Personally, I choose this because of the feature that I’ll explain below)
  • Alternatively, use manual EtherChannel: On/On
  • The Port Group cannot be used for P-VLAN
  • The Port Group cannot be used for SPAN (it can for R-SPAN)

Some vendors call EtherChannel with term of NIC Team, Bonding, MLT (Multi-Link Trunking), Link Aggregation…but essentially…it all the same

FEC = FastEtherChannel (with fastE link), GEC = Giga..with gigaEthernet, The powerful one is the MEC (MultiChassis EtherChannel)…in VSS

Biasanya klo EtherChannel itu bikin 2 link di 1 device jadi 1 port virtual, klo di MEC bikin 2 device dengan masing2 link jadi 1 device…dapet EtherChannel-nya…dapet pula “Device” Channel-nya

Eh…itu VSS bisa di 2900 ga? Ato di 3750? Jgn bilang ini juga ga bisa lagi T_T?

Cuma ada di switch Cat6500 wkwkwk

klo ga ada VSS, bisa pake yang lain ga? bisa pake Switch 3750, namanya StackWise

stackwise

StackWise meminimalisir kabel yang digunakan untuk redudancy (walaupun ga bisa MEC, ini semacam mini-VSS lah)

stackwise

VSS and StackWise

Nah, kenapa gw lebih suka LACP,…arena ada fitur namanya LACP Hot Standby

Apaan tu LACP Hot Standby?…lo bisa bikin 16 link jadi LACP, bedanya yang 8 link jadi active, 8 link satunya lagi standby…

Jadi ensure LACP bundling-nya tetep 8 port, ada satu mati, masih ada yang bisa gantiin

Plus berguna untuk routing protocol metric…

Here are the details, kita ambil contoh OSPF:

OSPF pake Cost kan?? Yup

Cost dari bandwidth kan?? Yup

Klo gw bundling 8 port 1 Gb berarti jadi 8 Gb kan?? Yup

Nah, klo itu bundling (etherChannel Group port) gw masukin OSPF berarti cost-nya kecil dong (8Gb)?? Hmm..bener juga

Klo gw punya desain seperti ini…kira2 mana yang dipilih? Jalur atas apa bawah?

Jalur atas, karena costnya lebih kecil, bandwidth-nya lebih gede gara2 EtherChannel bundling

Trus apa yang terjadi klo 1 port di etherchannel mati? Bisa lewat bawah kan? hmm…bisa, soalnya bandwidth-nya jadi kurang

Itulah gunanya LACP Hot Standby…ensure the packet still goes to EtherChannel port

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

VSS…goes right here

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

Common L2 Design

Tinggal pilih…mo pake STP…berarti ada yang di blok

Ato mo diakalin…link antar Distribution Switch dijadiin L3 port (using no switchport command) yang hanya bisa dilakukan di multilayer switch (3550 series keatas)

ato…pake Nexus wkwkwk

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

Reference:

ARCH-Designing Cisco Network Service Architecture (642-874) Student Guide

Cisco Catalyst 6500 Switch STP Configuration Guide

Cisco Nexus 5000 MST Configuration Guide

UDLD on Greg Ferro (CCIE #6920) blog

EtherChannel on Rick Mur (CCIEx4 #21946) IPExpert blog

MPLS (Multiprotocol Layer Switching)

8 Comments

MPLS adalah suatu mekanisme untuk mempercepat routing process/packet delivery

Klo gw bilang ini suksesor nya ATM, X.25, dan Frame-Relay…MPLS itu kerjanya “ngasih” label

Contohnya deh:

Jaringan MPLS klo udah fully converged kira2 kek gini (contoh router A mau ke network X pake label 25):

  • Router A mau ke network X di router C, nah di A…untuk ke network X (berdasarkan ip routing yang dia punya) next-hop nya ke router B
  • Nah, di router A…next-hop ke B itu akan di-mapping dengan label nomor 25, ini namanya impose action label (nempelin label), jadi klo mau ke network X, tinggal liat label-nya aja (label 25)
  • Berdasarkan informasi yang ada di label 25…dikirimlah ke router B
  • Nah, di router B, itu label 25 akan diliat…mau kemana…, oh ternyata mau ke network X
  • Di router B, berdasarkan routing protocol yang dia punya, untuk ke network X itu lewat router C…dikasi label 47
  • Di-mapping/swap/ganti-lah itu label 25 ke label 47, ini namanya label swapping/label switching
  • Berdasarkan informasi yang ada di label 47…dikirimlah ke router C
  • Di router C, network X itu ada di”diri dia sendiri” alias directly connected…nah, label 47 itu akan di-mapping ke “pop action label“, alias di remove label nya

Dari sini bisa kita liat, dengan MPLS kita dapat menempelkan “label” di A, nanti B, C & E tinggal nge-cek label nya aja (jadi ga perlu repot2 recursive lookup ke routing table, cek superior route, parent route, child route, longest match route…bla bla bla), udah jadi kek switch kecepatan transfer datanya, soalnya ga repot2 lookup sana-sini…

Cuma cek label, cek exit interface/next-hop ip, trus lempar….

Btw…itu tulisan FIB dan LFIB digambar apaan?!? Nanti dibawah dijelasin

Kok mirip ***IP CEF (Cisco Express Forwarding) yah? Ya, MPLS ini dibangun untuk menjembatani kecepatan switching (switch lebih cepet proses delivery-nya daripada router, dia cuma liat exit interface, “klo ada frame mau ke mac-address aaaa.bbbb.cccc lempar lewat port ini…“) dengan kemampuan routing-nya router (IP CEF ga bisa routing2an, yang handle kan OSPF,EIGRP, dll)

***IP CEF itu fitur Cisco untuk fast-switching, klo ada paket masuk ke switch/router, instead of searching through routing table, langsung aja…paket dengan IP X.X.X.X ini lempar lewat next-hop IP/exit-interface mana? (dengan FIB), ga pake acara liat routing table lagi (penjelasan lebih detil tentang CEF dibawah)…CEF di vendor lain namanya doang dibedain

Dah…gitu doang sih garis besarnya…

Sarannya, sebelum belajar MPLS…

  • belajar BGP dulu
  • IGP (OSPF bagusin pemahamannya)
  • ngerti IP CEF
  • VRF
  • and a little bit about VPN

Udah ni?? Sumpe loe?!? wkwkkw…detailnya dibawah yaks…

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

MPLS Labeling

Router/Switch yang jalanin MPLS disebut LSR (Label Switch Router)

Si A (dan C) yang nempelin (impose) label, remove (pop) label plus handling IP packet keluar-masuk MPLS disebut Edge LSR, ato klo di vendor lain dinamakan
LER (Label Edge Router)

IP Tujuan (Destination Network) didalam MPLS dinamakan FEC (Forward Equivalence Class)

Dari contoh diatas kita bisa ambil kesimpulan, proses delivery packet nya router2 di ISP itu CEPET banget kan (kecuali di edge LSR), Kek switching biasa…

Imagine klo semua router/switch cuma ngandelin routing table, ga kebayang CPU alat2 itu kerjanya kek apa

klo ga lemot…

pasti….

MPLS Label

MPLS label itu besarnya 4-byte (32 bit, 1 byte = 8 bit)

Dimana:

  • 20 bit pertama adalah nomor label nya
  • 3 bit selanjutnya (20 – 22) untuk IP Precedence atau CoS (Class of Service)
  • 1 bit selanjutnya untuk nandain ada label lain ga? (multiple label/label stacking), klo disini diset (1) bukan (0), artinya ada lebih dari 1 label disini
  • 8 bit terakhir untuk TTL (time-to-live), mirip kek TTL di IP Header kok

Wait…

20 bit pertama OK ane ngerti, 3 bit EXP untuk IP Precedence/CoS, bukannya ini QoS related field yah?? Yup…MPLS bisa buat QoS, bisa buat traffic engineering, bisa buat thesis…hahaha

Trus ada multiple label gituh dalam satu frame-packet?!? Oh iya dong…label yang satu untuk nandain jalur mana untuk keluar masuk, label yang satu lagi untuk nandain tunnel (VPN)

Maksudnya?? itu loh…klo lo pernah denger….MPLS VPN dengan MP-BGP (Multiprotocol BGP) dan MPLS TE (Traffic Engineering)

Nah, TTL nya itu kek gini:

  • TTL Ingress (masuk ke MPLS Domain): value TTL di copy dari IP header ke label header
  • TTL Egress (keluar dari MPLS Domain): value TTL di copy dari label header ke IP Header

TTL di MPLS bisa di-disable, biar di hide from costumer network, untuk alasan security juga, jadi costumer hanya bisa liat (ping) “ujung2″nya doang alias Edge LSR-nya aja

Nah, dari gambar diatas kita bisa liat…dimana MPLS Label itu “berada”

Kita liat simplified picture-nya dibawah:

MPLS itu tempatnya diatasnya Layer 2 (Frame), yang artinya MPLS dibawahnya layer 3 (IP)

Dibilang Layer 3…bukan (ga maen IP, Cuma asosiasikan label ke IP)

Dibilang Layer 2…aga kurang tepat (gunanya “nambahin” kapabilitas fungsi layer 2)

Makanya MPLS ini sering disebut Teknologi Layer 2,5

Untuk bisa nyebarin label itu ada 2 cara:

  1. Extend Functionality dari existing routing protocol
  2. Create protocol baru

Masalahnya klo pake cara pertama pasti susah (nambah header baru, belum lagi tipe routing protocolnya beda, plus bisa jadi ga kompatibel satu sama lain)

Makanya IETF (Internet Engineering Task Force) develops Label Exchange Protocol yang baru…

Yaitu LDP (Label Distribution Protocol), Dimana Label2 ini locally significant (jadi nomor2 label nya bisa beda2 tiap router/switch), MPLS Label nomor 0 – 15 itu reserved

***Dulu ada namanya TDP (Tag Distribution Protocol) punyanya cisco, Cuma yang kepake sekarang yang LDP (walaupun fungsinya sama persis)

LDP send hello messages every 5 second (via IP Multicast 224.0.0.2, UDP port 646, klo masing2 LSR itu directly connected), nanti pas nyambung…pake TCP

Bisa ga klo router nya ga saling terhubung langsung/bukan directly connected trus pake MPLS?? Bisa…pake LDP Targeted hello
(ada konfig nya)

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

MPLS Architecture

Ada 2 komponen utama dari MPLS, Control Plane & Data Plane

Control Plane = tempat LDP dan RIB (Routing Information Base, hasil komputasi/itung2an metric OSPF, BGP, EIGRP adanya disini, itu loh…”show ip route“) berada, mainly dikontrol oleh CPU Processing

Data Plane = Forwarding table, ada 2 Table:

  • FIB: isinya table next-hop IP dan exit interface hasil proses Routing Table (ini yang digunain oleh IP CEF)
  • LFIB: isinya table next-hop label hasil proses MPLS (jadi dia nge-cek label yang masuk, trus diasosiasikan ke label punya dia, yang mana exit interface dari label dia itu adalah hasil FIB nya), mainly dikontrol oleh ASIC (hardware buat switching)

Nah dari sini kita bisa liat problem yang kira2 bakal muncul klo kita konfig MPLS nya ga bener

  • Paket yang sudah diberi label di drop, karena ga ada di LFIB (walaupun IP destinationnya ada di FIB)
  • IP Paket (non-label) didrop, karena ga ada di FIB (walaupun di LFIB nya ada)

“Hardware processing lebih cepat daripada software processing”

LDP di control plane berfungsi untuk exchange labels dan menyimpan hasil exchange label2 itu ke LIB (Label Information Base). Informasi LIB inilah yang digunakan data plane untuk fungsi MPLS (LFIB)

Sebelum kita melangkah lebih jauh…mari kita liat arsitektur CEF dulu

Kinerja CEF itu kira2 kek gini:

  • Di Control Plane:
    • Contoh: Ada rute dari OSPF tentang 10.0.0.0/8 masuk ke router LSR, di process lah itu rute
    • Nah, nanti hasil prosesnya akan di store ke OSPF database (show ip ospf database)
    • Berdasarkan hasil proses OSPF, diperoleh informasi dari OSPF yang menyatakan rute 10.0.0.0/8 ternyata best path-nya lewat 1.2.3.4 (misalkan), dimasukkanlah kedalam routing table (RIB, show ip route)
    • Data hasil OSPF process ini (RIB) akan dimasukkan kedalam Data Plane
  • Di Data Plane:
    • Informasi yang sudah di olah dari control plane, akan dimasukkan ke FIB
    • Jadi, ketika ada paket mau ke 10.0.0.0/8 lagi (anggeplah ada IP tujuannya 10.1.1.1 mau masuk), router tidak akan liat routing table lagi
    • Melainkan akan langsung liat…”ini 10.1.1.1 bisa gw kirim lewat mana…oh, lewat 1.2.3.4” di FIB-nya, kirim de…

jadi…klo Route Cache itu kan..dia harus via Control Plane dulu, baru paket selanjutnya langsung lewat data plane (kek Web Cache aja), nah…klo IP CEF itu, begitu OSPF selesai proses…hasil prosesnya langsung di-“capture” oleh CEF FIB di data plane, jadi ga usa nunggu2 packet pertama lewat Control Plane dulu

Nah, di MPLS, IP CEF ini ditambahin lagi dengan LDP:

  • Informasi dari RIB akan dimasukkan kedalam CEF (FIB), disaat yang sama…rute 10.0.0.0/8 akan di kasi label (contoh label 25)
  • Labeling ini juga di store di LFIB yang tempatnya sama dengan FIB, di data plane
  • Jadi, klo ada paket dengan IP 10.1.1.1 akan dikasi label nomor 25 (misalnya) di LFIB, dimana label 25 itu diasosiasikan dengan next-hop IP 1.2.3.4 (yang ada di FIB)
  • Nah, ketika data dikirim tinggal diliat deh labelnya, trus kirim
  • Ketika sampai ke router seberang, di router seberang (IP 1.2.3.4), label itu akan di exchange (swap) labelnya dengan nomor 23 (misalnya)
  • Nanti nomor 23 akan diliat…ini ke IP mana…
  • Dan terus seperti itu sampe path terakhir/Edge LSR, di remove lah itu label …trus kirim de (ya liat routing table lagi klo FIB nya blum terupdate “populasi” rutenya)

Jalan yang harus ditempuh oleh LSR untuk kirim paket ber-label disebut LSP (Label Switched Path)

Biasanya jalan pergi dan jalan pulang LSP itu sama, tapi bisa aja beda (seperti MPLS TE)

Contoh klo pake IP aja…

Klo pake MPLS…

Nah, dalam MPLS ada yang disebut PHP (Penultimate Hop Popping), gunanya adalah untuk menghindari recursive lookup LFIB dan FIB

Tanpa PHP, Edge LSR akan proses buang label + proses lookup IP

Dengan PHP, router/switch sebelum Edge LSR akan remove label, nah si Edge LSR tinggal perform lookup IP

Jadi, singkat kata…sebelum nyampe ke Edge LSR, label-nya dibuang, jadi Edge LSR Router cuma proses IP CEF (pake FIB) nya aja, biar ga ribet kerja 2x

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

Distributing Label (How Labeling Works)

Router A mau ke Network X di Router D, anggeplah udah ada FIB nya, ternyata ke router B, kirim…

Pas dikirim…di router B, untuk network X, next-hop nya adalah router C (berdasarkan FIB), berdasarkan informasi itu di config-lah dengan label 25 untuk paket2 yang mau ke network X

Karena router B ga nerima/detect adanya paket labeling dari C, maka dia mengasumsikan bahwa dia adalah Edge LSR, di-pop deh (di remove labelnya pas mau ke C)

Karena masih initial, maka router B sebarin ini label 25 ke semua LSR (router2 yang jalanin MPLS), disini router B nyebarin ke A, C, dan E

(A, C, dan E juga sebarin masing2 label mereka klo ada, nanti baru pas convergence ketauan siapa yang impose, swap label, sama pop)

Nah, si A akan nerima bahwa network X itu di router B labelnya 25 maka FIB-nya si A akan diupdate (label 25), plus dibuatlah LFIB di data plane si A

Anaolgi yang sama juga di router C dan E

Nah, jadi seterusnya jika ada paket menuju network X dari router A, maka:

  • Router A akan perform FIB aja, kasi label 12 (anggeplah A juga pake label), kirim ke router B
  • Di router B, label 12 ini akan di ganti (label swapping) dengan label 25, *trus kirim ke router C (ato router E)
  • Router C nge-detect bahwa dia yang terakhir ni, ga ada lagi next-hop untuk labelnya, dia remove/pop itu label, trus liat de FIB nya, kirim kemana ini paket

See…didalam MPLS domain uda ga ada lagi routing2an, lookup routing table lagi…semua pake label..cepet, di Edge LSR aja yang masih pake routing2an (tapi tetep…router2 yang ada di MPLS domain itu harus pake IGP dulu biar convergence…anggeplah untuk initialisasi aja, setelahnya pake label)

*kenapa hanya router C (ga ke router E)?? MPLS melihat dari LFIB bukan?!? Nah, LFIB ini liat next-hop IP nya kan dari FIB…sedangkan FIB ini informasinya dapet dari mana?? Ya dari routing protocol itu lah (RIB), jadi klo pake OSPF misalkan, kemungkinan ga akan dilempar ke E, tapi langsung ke C…trus ke D

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

MPLS VPN

Untuk tau MPLS VPN…ya kita harus tau MPLS…dan VPN itu sendiri

Mari kita refreshing tentang istilah2 berikut ini:

  • Device konsumen yang terhubung ke ISP disebut CE (Customer Edge) ato CPE (Customer Premises Router)
  • Device ISP yang terhubung ke konsumen disebut PE (Provider Edge)
  • Device ISP yang tidak terhubung dengan konsumen (dan hanya konek ke router2 lain di ISP) disebut P (provider)

Dalam traditional WAN Network, PE biasanya Frame-Relay Switch/Router, di MPLS = Edge LSR

Dalam traditional WAN Network, P biasanya core/transit router, di MPLS = LSR

Contoh desain MPLS VPN:

MPLS membagi jaringan menjadi 2 buah terminologi:

  • C-Network (Customer Controlled network)
  • P-Network (Provider Controlled network)

Ada 3 opsi agar PE router bisa carry customer routing information:

Opsi 1.

Opsi 2.

Opsi 3. (Best Solution)

Tapi kan Opsi 3 harus pake routing protocol dong?? Gimana X tau harus ke Y??…nah, disinilah BGP berperan

Internal P-Network bisa pake IGP (OSPF,EIGRP, ato IS-IS), untuk X dan Y (PE Router) bisa pake BGP (i-BGP tepatnya)

Jadi route2 customer ga dibawa masuk kedalam jaringan P-Network plus BGP adalah routing protocol paling efektif untuk handle route2 dengan tipe permasalahan kek gini

Eh…tapi kan bisa aja customer A pake 10.0.0.0/8 dan customer B juga pake prefix yang sama…gimana cara BGP bedainnya?! Dengan VRF (Virtual Routing dan Forwarding)

Apaan lagi itu VRF…Biasanya kan kita klo di CCNA Class/CNAP Class cuma setting HQ ke Branch via RIP (ato OSPF/EIGRP misalkan) untuk company A, dimana company A untuk IP private nya 10.0.0.0/172.16.0.0/ato 192.168.0.0, nah bagaimana klo ada company B juga pake IP yang sama (emang A doang yang bole pake IP Private? Engga kan)

Nah, VRF itu gunanya buat mengatasi masalah ini, sebuah router (biasanya PE) akan punya lebih dari 1 routing table (satu buat A, yang satu lagi buat B)

Caranya gimana biar router PE bisa tau yang mana rute punya A, yang mana rute punya B? dengan mengasosiasikan routing table dengan inbound interface nya (jadi nge-cek interface nya….int fa0/1 pake VRF company A, int fa0/2 pake VRF company B)

Cara VRF mengasosiasikan IP interface yang ber-IP sama (yang sama2 32-bit, 1 interface buat A dan satu lagi buat B) adalah dengan cara membuat RD (Route Distinguisher)

RD bikin 32-bit customer IPv4 address jadi 96-bit unique address (jadi RD itu besarnya 64-bit), Untuk IPv6 VPN juga sama…nambahin 64-bit juga

Nah…96-bit itulah yang jadi alamat RD, biasanya dipake untuk VPNv4 (VPN IPv4) address, alamat VPN inilah yang dipake BGP untuk nganterin data via MPLS, RD hanya bisa mengasosiasikan diri dengan 1 buah rute VPN

Klo customer yang punya 2 atau lebih VPN (kek 1 buat data, 1 lagi buat VoIP VPN) gimana dong?
RD akan ditambahin fitur RT (Route Target)

Caranya?? value dari RT ini akan di-attach ke VPNv4 BGP (RD) untuk mengindikasikan route membership terhadap suatu route/jaringan (kasarnya RD:RT 1 buat VPN Data dan RD:RT 2 buat Voice)

Nah…value ini akan di Carry BGP melalui BGP Community (extended, dengan keyword send-community [option]), BGP yang udah carry informasi “modified” IPv4 ini disebut MP-BGP (Multiprotocol BGP)

(Abis ketik “router bgp [as number]“, untuk jalanin MP-BGP kita harus ketik “address-family vpnv4“)

For summary, MP-BGP carries information below:

  • Modified IPv4 address = VPNv4 address
  • Extended BGP Community value = RT (Route Target)
  • VPN Label (MPLS VPN) and LDP Label
  • BGP attributes itself (such as AS-PATH)

Dari sini kita bisa liat, customer dan PE bisa punya beberapa “routing table” (tepatnya forwarding table, contoh: 1 buat VPN data, 1 lagi buat voice VPN), inilah yang disebut VRF

MPLS VPN Label Distribution

Ketika paket masuk ke ingress router, dia akan ngasi VPN label, trus kirim across P-Network, tujuannya ke egress router

Setelah sampai di egress router, dia akan bilang “oh iya, ini label emang tujuannya ke gw…tapi harus gw buang kemana ini label?”
(pake VRF yang mana?!?) hasilnya, ini paket di drop

Oleh karena itu dibuatlah MPLS Label Stacking (label lebih dari 1, yang awal2 uda gw jelasin), satu untuk nandain jalur VPN untuk Ingress dan Egress, satu lagi untuk nandain jalan keluar/masuknya label didalam P-Network

Nah, disini paket yang mau masuk akan di kasi label VPN, dari Ingress ke Egress akan dikirim pake LDP Label, begitu di Egress itu LDP label-nya di pop/remove, dia akan liat label satunya lagi (VPN)…”oh…lempar ke CE router toh…” jadi ada 2 VRF (1 VPN alias Exit Route dan 1 buat LSP-nya)

Di MPLS VPN juga bisa pake PHP, jadi sebelum sampe egress router…label LDP nya uda di pop, hasilnya egress router hanya perform label VPN lookup aja

(for my note: klo router customer pake non-BGP untuk nyambungin ke PE, contohlah RIP…itu RIP harus di redistribusi ke BGP…”ya iyalah, Ingress & Egress router nya aja pake BGP“, kecuali pake OSPF…bisa pake super backbone atau sham-link, see OSPF (tulisan paling bawah))

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

MPLS TE (Traffic Engineering)

MPLS TE adalah MPLS yang menerapkan metode “manipulasi traffic” untuk data2 yang mengalir via MPLS

Biasanya digunakan untuk Voice Traffic (VoIP), untuk menghemat cost alias menghemat bandwidth. Dan biasanya klo uda nyinggung kata2 menghemat bandwidth, voice traffic, ato manipulasi traffic load…mau ga mau kita akan menyinggung QoS dan IP SLA

Dengan MPLS TE kita bisa bikin traffic yang berbeda LSP nya

Contoh:

Tanpa MPLS TE

Dengan MPLS TE

Nah, karakteristiknya sama nih ama MPLS VPN, harus punya 2 label…1 label untuk in/out MPLS Domain, 1 label untuk LSP-nya (namanya traffic tunnel)

LSP dari MPLS TE bisa di-create dan di maintain lewat RSVP (Resource Reservation Protocol) – belajar di QoS ini

Untuk mengoptimalkan LSP dari MPLS TE ini kita bisa pake CBR (Constraint-based routing) metric

Contohnya kira2 begini:

CBR ini memakai algorithma modifikasi dari Djikstra (SPF – Shortest Path First), yaitu Constraint SPF (CSPF)

CBR inilah yang berfungsi untuk mengoptimalkan LSP baik optimum path, physical link availability, maupun Path maintenance

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

Wokeh…that’s all about MPLS Theory

Met Puasa…Met Idul Fitri…

Abis puasa (tepatnya abis kelar sidang thesis) kita lanjut konfigurasinya

Mudah2an catetan gw berguna untuk semua yang mau (atau sedang terjun) dalam MPLS

**********

References:

  1. RFC 3031, MPLS Architecture
  2. Implementing Cisco MPLS Student Guide
  3. Cisco MPLS Foundation Guide

next-hop