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)