Thursday, July 21, 2011

Routing


Mengingat Kembali Router

Router dibutuhkan untuk alasan-alasan berikut:
  • Router menyediakan mekanisme pengiriman yang diperlukan untuk IP addressing (lihat Internet Layer dan Subnetting). Kerapian dan efisiensi dari network yang hirarkis dan juga konsep subnet membutuhkan perangkat network yang dapat mengarahkan datagram berdasarkan IP address.
  • Router mem-filter traffik sehingga setiap komputer tidak perlu menerima pesan yang datang dari setiap komputer lainnya. Seperti yang sudah dibahas pada Network Hardware, switch juga mem-filter traffik, tetapi umumnya switch mem-filter berdasarkan physical address bukan IP address sehingga switch tidak begitu effektif pada network berskala besar.
  • Router menutupi detail dari physical network. Karena IP forwarding terjadi diatas network access layer, router dapat menghubungkan tipe-tipe network yang berbeda-beda. Sebuah komputer pada LAN ethernet di Bandung dapat berkomunikasi dengan komputer lain pada LAN token ring di Surabaya.

IP Forwarding

Deskripsi singkat mengenai proses IP Forwarding seperti berikut:
  1. Sebuah mesin ingin mengirimkan IP datagram. Mesin tersebut mengecek “tabel routing“nya.
  2. Jika datagram tidak bisa dikirimkan dalam network lokal, maka mesin akan mencari IP address dari router yang bisa menyampaikan datagram pada network tujuan. (biasanya IP address router dalam satu segment merupakan default gateway bagi mesin-mesin pada segment network tersebut). IP address router ini kemudian dipetakan ke physical address menggunakan ARP.
  3. Datagram tadi kemudian diserahkan kepada Network Access Layer dengan physical address tujuan adalah router. (tapi tetap IP address tujuannya adalah tetap IP address mesin tujuan yang ada di network lain).
  4. Network adapter (kartu jaringan) router menerima frame tersebut karena physical address tujuan dari frame tersebut cocok dengan physical address milik router.
  5. Router kemudian membongkar frame tersebut dan menyerahkan datagram ke layer atas kepada Internet Layer.
  6. Router mengecek IP address datagram. Jika IP address destination (tujuan) dari datagram tersebut sesuai dengan IP address router, berarti datagram memang ditujukan buat router itu sendiri. Jika IP address tujuan dari datagram tersebut tidak sesuai dengan IP address router, maka router akan berusaha mem-forward datagram dengan mengecek tabel routing untuk mencari jalur yang sesuai untuk mencapai network tujuan datagram tersebut.
  7. Jika datagram tidak bisa dikirimkan pada network yang terhubung langsung (directly connected) dengan router, maka router akan menyerahkan datagram tersebut kepada router lain, dan proses berulang dari langkah 1 sampai router terakhir dapat menyerahkan datagram langsung kepada mesin tujuan.
ip-forwarding
Perlu diingat bahwa sebuah perangkat tidak akan berperan sebagai router hanya karena memiliki 2 network adapter. Kecuali jika perangkat tersebut sudah mempunyai software yang dibutuhkan untuk bisa melakukan IP Forwarding, maka data tidak akan diserahkan dari satu interface ke interface lain. Ketika komputer yang tidak dikonfigurasi sebagai router menerima datagram yang tidak ditujukan untuk dirinya, maka datagram tersebut akan diabaikan.

Direct Vs Indirect Routing

Jika sebuah router hanya terhubung pada dua segment/subnet, maka tabel routingnya bisa jadi sangat sederhana. Router pada gambar dibawah ini tidak akan melihat IP address yang tidak berhubungan dengan ip address dari salah satu port/interface nya. Dengan kata lain, pada gambar dibawah, router bisa mengirimkan semua datagram dengan direct routing (routing ke network yang terhubung langsung/directly connected).
2-direct-routing
Sedangkan pada gambar dibawah ini, bagaimana caranya Router A bisa menemukan segment 3Bagaimana Router A bisa tahu bahwa datagram yang ditujukan untuk segment 3 harus dikirim ke router B bukan C?
indirect-routing
Ada 2 cara agar router dapat mengetahui jalur ke network yang tidak terhubung langsung (indirect routes)
  • Dari sistem administrator (static routing, lihat Network Hardware)
  • Atau, dari router lainnya.
Static routing kadang-kadang lebih effektif untuk network yang kecil, sederhana dan permanent (topologi tidak berubah). Tapi jika jumlah segment-segment network semakin banyak dan kemungkinan jalur/route meningkat, maka statik routing jadi tidak effektif untuk network seperti ini.
Untuk itulah, umumnya router-router saat ini menerapkan dynamic routing. Router-router saling berkomunikasi satu sama lain untuk berbagi informasi segment dan jalur network, kemudia setiap router membangung tabel routingnya sendiri-sendiri berdasarkan informasi yang didapat dari proses tadi.

Algoritma Dynamic Routing

Ada beberapa protokol routing yang saat ini masih digunakan, umumnya di desain dengan salah satu dari 2 metode berikut:
  • Distance vector routing
  • Link state routing
Distance Vector Routing
Distance vector routing di desain untuk meminimalisir komunikasi yang dibutuhkan antar-router dan juga untuk meminimalisir jumlah data yang ada pada tabel routing. Filosofi utamanya adalahrouter tidak harus mengetahui semua jalur ke semua network secara lengkap. Router hanya harus tahu kemana datagram harus diarahkan (karenanya disebut vector). Router yang menggunakan algoritma distance vector berusaha mengoptimumkan jalur dengan meminimalisir jumlah router yang harus disinggahi oleh datagram. Parameter ini disebut hop count.
Distance vector routing bekerja seperti berikut:
  1. Ketika router A mulai aktif, ia akan tahu segment-segment mana yang terhubung langsung (directly connected) dan menempatkan segment-segment tersebut pada tabel routingnya. Hop countke setiap segment/network yang terhubung langsung (directly connected) adalah 0, karena datagram tidak perlu singgah ke router lain untuk mencapainya.
  2. Saat router A menerima pesan routing dari router tetangga (router B), ia akan mengintegrasikan informasi routing tersebut sebagai berikut :
    • Jika router B mengetahui informasi tentang segment network yang router A tidak punya didalam tabel routingnya, maka rouer A akan menambahkan segment tersebut kedalam tabel routingnya. Next hop dari segment baru tersebut adalah router B, yang berarti jika router A menerima datagram yang ditujukan untuk segment baru tersebut, maka router A akan menyerahkannya pada router B. hop count dari segment tersebut adalah hop count dari router B ditambah 1.
    • Jika router B mengirimkan informasi segment dimana router A sudah punya dalam tabel routingnya, maka router A akan menambahkan 1 angka pada hop count yang diterima dari router B dan membandingkannya dengan hop count pada informasi segment yang sudah diketahui pada tabel routingnya sendiri. Jika jalur yang melalui router B lebih effisien (hop count nya lebih kecil) maka router A akan memperbarui tabel routingnya dan menjadikan router B sebagai next hop yang baru untuk segment tersebut.
    • Jika  hop count router A yang lebih kecil maka tabel routing router A tidak berubah.
Contoh update distance vector routing dapat dilihat pada gambar berikut.
dvp
Link State Routing
Filosofi link state routing adalah setiap router berusaha membangun peta internal dari topologi network. Setiap router secara periodik mengirimkan pesan status kedalam network. Pesan status ini berisi list informasi network pada router lain yang terhubung langsung dan juga status dari link tersebut. Router menggunakan pesan status tersebut untuk membuat sebuah peta dari topologi network. Saat router harus mem-forward sebuah datagram, maka ia akan memilih jalur terbaik mencapai tujuan berdasar pada peta tersebut.
Link state protocols membutuhkan waktu pemrosesan yang lebih lama, tapi konsumsi bandwidth berkurang karena setiap router tidak perlu menyebarkan tabel routingnya secara lengkap. Juga, lebih mudah untuk melacak problem dalam network karena pesan status yang diberikan.

Routing pada Network Complex

Dalam Internet terdapat ribuan router, jadi tidak mungkin untuk semua router saling berbagi informasi untuk proses routing. Juga jika setiap router harus memproses setiap router lain di Internet maka traffik protokol routing dan isi tabel routing jadi terlalu padat.
Dalam Internet, group kecil dari router-router inti bertindak sebagai backbone pusat bagi internetwork, menghubungkan network-network individu yang yang di konfigurasi dan di manage secara autonomous. Router-router inti ini mengetahui informasi setiap network, walaupun tidak harus mengetahui informasi setiap subnetnya. Selama datagram dapat menemukan jalur menuju router inti, ia dapat mencapai tempat mana saja dalam sistem. Router-router dibawah router inti tidak harus tahu semua network di dunia, hanya harus tahu bagaimana mencapai router inti.
Perhatikan gambar dibawah. Router-router inti dalam backbone network mengantarkan pesan antar network. Network-network mandiri yang disebut autonomous system terhubung pada router inti. Pemilik autonomous system me-manage detail konfigurasi setiap router-nya. Router-router dalam satu autonomous system berbagi saling informasi network untuk membangun tabel routing masing-masing.
backbone
  • Core routers: router inti mempunyai informasi lengkap tentang router inti yang lain. Tabel routingnya berupa peta dimana network-network autonomous system terhubung pada router inti. Router inti tidak memiliki informasi detail mengenai routing internal didalam autonomous system. Beberapa contoh protocol routing router inti adalah Gateway-to-Gateway Protocol (GGP) dan SPREAD.
  • Exterior routers: Exterior routers adalah router-router non-inti yang mengkomunikasikan informasi-informasi router antar network autonomous. Protokol yang sekarang dipakai adalah Border Gateway Protocol (BGP).
  • Interior routers: router-router didalam sebuah autonomous sistem yang saling berbagi informasi network disebut interior gateways. Router-router ini menggunakan protokol routing yang disebut Interior Gateway Protocols (IGP). Contoh protokol interior routing adalah Routing Information Protocol (RIP) dan Open Shortest Path First (OSPF).

Lebih Dekat dengan Interior Router

Beberapa interior protokol routing yang terkenal antara lain :
  • Routing Information Protocol (RIP)
  • Open Shortest Path First (OSPF)

Routing Information Protocol (RIP)

RIP termasuk protokol distance vector, yang berarti ia menentukan jalur terbaik berdasarkan hop count. Mesin-mesin yang ikut berpartisipasi dalam RIP bisa termasuk aktif atau pasif RIP. Active RIP berupa router-router yang berpartisipasi dalam proses pertukaran data distance vector. Mesin-mesin Active RIP mengirimkan tabel routingnya kepada router lain dan memantau update dari router lain. Mesin passive RIP hanya memantau update tapi tidak ikut menyebarkan tabel routingnya. Mesin ini biasanya berupa komputer klien.
Jika ada dua jalur dengan network tujuan yang sama dan hop count yang sama maka router akan memilih jalur yang terlebih dahulu ada didalam tabel routing.
Router RIP membroadcast pesan update setiap 30 detik. Jika jumlah router-router terlalu banyak akan timbul masalah karena akan memperlambat waktu convergence. Untuk itu, RIP membatasi angka maximum hop count sebesar 15.

Open Shortest Path First (OSPF)

OSPF adalah protokol interior routing yang berangsur-angsur menggantikan posisi RIP dalam banyak network. OSPF termasuk protokol routing link state.
Setiap router dalam OSPF diberikan router IDRouter ID ini biasanya berupa IP address terbesar yang dimiliki router. Jika router memiliki interface loopback, maka router ID nya adalah IP address dari interface loopback yang terbesar.
Router Link State membangun peta internal dari topologi networknya. Router-router lain menggunakan router ID untuk mengidentifikasi router dalam topology. Setiap router menggambarkan network sebagai sebuah pohon dengan dirinya sendiri sebagai akarnya. Ongkos metric yang dipakai bisa berupa hop countspeed atau keandalan suatu link.