Prerequisite:
- BGP Knowledge
- IOS XR (or XRv, find that IOS yourself)
=========================================
RPL di dalam IOS-XR adalah command pengganti Route Map, tolong cam kan ini baik2 nak…lol
Contoh pentingnya penggunaan RPL dalam IOS-XR adalah sebagai berikut
Scenario:
- Setiap router jalanin BGP
- R1 pake AS 11, R3 pake AS 3, dan XR pake AS 1 (1 oruter untuk 1 AS)
- IOS-XR punya loopback 192.168.1.1/32
- Semua loopback dari masing2 AS di advertise (keyword network x.x.x.x mask x.x.x.x)
BGP Config di IOS-XR
Aga beda konfig BGP di IOS-XR, yang krusial ada 4:
- Pertama lo harus aktifin BGP-nya ada di IPv4 ato IPv6 (address-family di bgp global config)
- Mau unicast atau multicast
- Di setiap neighbor juga harus dikasi tau mau pake IPv4 BGP atao mau pake IPv6 BGP (address-family di bgp neighbor sub-config)
- Dan BGP Router-id…ga ada ini kaga jalan BGP Peering-nya
nah, kita liat BGP table-nya di R1:
Kalau dalam normal condition, harusnya R1 punya prefix dari IOS-XRv (harusnya dapet 192.168.1.1)…ini adanya rute dari R3 aja
Note: Prefix 3.3.3.1 dan 3.3.3.2 itu punya AS 3 (router R3)
Why is this happen? Because in IOS-XR has default routing policy that set all prefix dropped, lets take a look at picture below
Now, lets take the basic example of RPL (seeed…kesurupan bahasa inggris gw)
(nanti dibawah gw jelasin detail-nya) trus kita taro di BGP neighbor sub-config
Jgn lupa di commit, nah…kita liat sekarang di R1:
There is 192.168.1.1 route from AS 1 (IOS-XR) showed up!!
================================
RPL, how to make the magic happen *lol*
Seperti yang gw bilang diatas…IOS XR ga ada route-map, penggantinya adalah RPL ini
Kenapa harus route-map diganti? Aga susah dibaca dan ga flexible
Contoh: gw pengen klo AS 1 mau ke 3.3.3.1 lewat AS 11, tapi klo mau ke 3.3.3.2 lewat AS 12, dan klo bukan ke salah satunya ya jangan dilewatin
Klo pake route-map:
Dimana kita buat ACL dengan nama “KE3.3.3.1” dan “KE3.3.3.2” (tentunya permit ke masing2 alamat itu/destination-nya)
Trus setting next-hop nya berdasarkan ACL di match ip address nya
Kelemahannya dari route-map ini adalah override routing table (termasuk BGP table), so susah ngebaca arah tujuan hidup loe *ehm* maksud nya arah tujuan networknya…karena kata Routing Table/BGP Table harusnya lewat A, gara2 PBR (route-map ini termasuk PBR – Policy Based Routing) malah lewat B…
loh kok bisa beda…loh kok malah lewat sini…harusnya lewat situ…di routing table nya ga bilang gitu… (pas dibaca show run-nya)…ohhhh ada Route-Map toooh
Nah, klo Pake RPL:
Lebih mudah dibaca kan?!? Jika source ip dari 192.168.1.1 dan tujuannya ke 3.3.3.3 maka pake next-hop 11.11.11.1 dst, hampir2 ga perlu ACL
Wait…if-then-else, are you telling me we can type of some sort programming here?!? Yes we can lol
Makanya disebut route policy LANGUAGE, easier to understand
Kita bisa pake if-then-else, trus bisa pake and, or, dan not, bisa pake le – ge (less than-greater than) dan teman2nya, bisa pass dan drop the packet, dan bisa pake nested if (if dalam if)…lebih flexible dari route-map
Contoh le ge:
Contoh Nested if-Nested Policies:
Route-map bisa begini ga? Ga bisa…
=================================
Nyok kita coba…
Scenario-nya dari gambar diatas:
Dari IOS-XR, gw pengen klo mau ke 3.3.3.1 di R3…weight ke R1 digedein jadi lewat AS 11, tapi klo mau ke 3.3.3.2 di R3…weight ke R2 yang digedein jadi lewat AS 12
(untung gw pernah ikut programming class….ga sia2 hahaha)
Pasang di BGP Neighbor sub-config
Nyok kita cek…
HEY LOOOK…klo mau ke 3.3.3.1 lewat AS 11…nah klo mau ke 3.3.3.2 lewat AS 12, route-map bisa gini ga?? Sulit memang untuk bersaing di dunia persilatan inih… *ngawur*
Eh, klo contoh pertama ada route-policy PASS in dan route-policy PASS out, kok disini ga ada in dan out-nya…trus ga ada statement “pass“nya?
Oh iya…dalam RPL terdapat implicit pass (best you remember that), kebalikan dari implicit deny-nya ACL
Syaratnya adalah: harus ada statement alias kata2 “set” didalamnya…klo ga ya sama kek ACL…implicit deny
Klo ada statement set didalam suatu RPL, sisanya di pass (makanya gw ga setting in dan out trus ga ada statement pass-nya di RPL-to-AS11 dan RPL-to-AS12)
========================
Editing RPL
RPL di IOS-XR punya validity checking, like this:
Begitu kita commit, di cek…bisa engga-nya RPL itu di implementasikan
Klo kita mau edit yang udah jadi gimana? here it is…
Woops….bukan edit ini mah, NIBAN ceritanya ini hahaha
Untuk itu kita harus keluar dari global configuration mode dulu, di privilege mode…ketik edit
Kita ketik edit route-policy [nama RPL]
Nah, begitu kita enter, nanti kek gini tampilannya:
Maap gw ga bisa nyontohin cara delete, Cut Text, dll karena…
CURSOR-NYA GA ADAAAAAA (mungkin karena IOS-XRv), pusing gw ngeraba2 uda sampe mana cursor gw…
Nah, diatas itu adalah GNU Nano RPL Editor, ada 3 cara untuk edit RPL ini:
- GNU Nano (yang kita liat diatas)
- Emacs
- Vim
======================
Reference
BGP IOS-XR Configuration @http://www.fryguy.net/2012/09/24/ios-xr-ibgp-and-ebgp/
Cisco Instructor Guide ebook for CCNP SP Course: (642-883) – Deploying Cisco Service Provider Network Routing (SPROUTE)
Leave a Reply