09 Februari, 2009

IP Routing

Routing adalah mekanisme di mana sebuah mesin bisa menemukan untuk kemudian berhubungan dengan mesin lain. Diperlukan sebuah proses routing (distro BSD mendukung dengan routing daemon standar routed atau misal gated dalam hal yang lebih kompleks), atau secara mudah router dapat dikatakan, menghubungkan dua buah jaringan yang berbeda tepatnya mengarahkan rute yang terbaik untuk mencapai network yang diharapkan. Dalam implementasinya, router sering dipakai untuk menghubungkan jaringan antar lembaga atau perusahaan yang masing-masing telah memiliki jaringan dengan network id yang berbeda. Contoh lainnya yang saat ini populer adalah ketika suatu perusahaan akan terhubung ke internet. Maka router akan berfungsi mengalirkan paket data dari perusahaan tersebut ke lembaga lain melalui internet, sudah tentu nomor jaringan perusahaan tersebut akan berebeda dengan perusahaan yang dituju
Lebih jauh tentang routing
Data-data dari device yang terhubung ke Internet dikirim dalam bentuk datagram, yaitu paket data yang didefinisikan oleh IP. Datagram memiliki alamat tujuan paket data; Internet Protocol memeriksa alamat ini untuk menyampaikan datagram dari device asal ke device tujuan. Jika alamat tujuan datagram tersebut terletak satu jaringan dengan device asal, datagram langsung disampaikan kepada device tujuan tersebut. Jika ternyata alamat tujuan datagram tidak terdapat di jaringan yang sama, datagram disampaikan kepada router yang paling tepat (the best available router).
IP Router (biasa disebut router saja) adalah device yang melakukan fungsi meneruskan datagram IP pada lapisan jaringan. Router memiliki lebih dari satu antamuka jaringan (network interface) dan dapat meneruskan datagram dari satu antarmuka ke antarmuka yang lain. Untuk setiap datagram yang diterima, router memeriksa apakah datagram tersebut memang ditujukan ke dirinya. Jika ternyata ditujukan kepada router tersebut, datagram disampaikan ke lapisan transport.
Jika datagram tidak ditujukan kepada router tersebut, yang akan diperiksa adalah forwarding table yang dimilikinya untuk memutuskan ke mana seharusnya datagram tersebut ditujukan. Forwarding table adalah tabel yang terdiri dari pasangan alamat IP (alamat host atau alamat jaringan), alamat router berikut, dan antarmuka tempat keluar datagram.
Jika tidak menemukan sebuah baris pun dalam forwarding table yang sesuai dengan alamat tujuan, router akan memberikan pesan kepada pengirim bahwa alamat yang dimaksud tidak dapat dicapai. Kejadian ini dapat dianalogikan dengan pesan “kembali ke pengirim” pada pos biasa. Sebuah router juga dapat memberitahu bahwa dirinya bukan router terbaik ke suatu tujuan, dan menyarankan penggunaan router lain. Dengan ketiga fungsi yang terdapat pada router ini, host-host di Internet dapat saling terhubung.
Statik dan Dinamik
Secara umum mekanisme koordinasi routing dapat dibagi menjadi dua: routing statik dan routing dinamik. Pada routing statik, entri-entri dalam forwarding table router diisi dan dihapus secara manual, sedangkan pada routing dinamik perubahan dilakukan melalui protokol routing. Routing statik adalah pengaturan routing paling sederhana yang dapat dilakukan pada jaringan komputer. Menggunakan routing statik murni dalam sebuah jaringan berarti mengisi setiap entri dalam forwarding table di setiap router yang berada di jaringan tersebut.
Penggunaan routing statik dalam sebuah jaringan yang kecil tentu bukanlah suatu masalah; hanya beberapa entri yang perlu diisikan pada forwarding table di setiap router. Namun kita dapat membayangkan bagaimana jika harus melengkapi forwarding table di setiap router yang jumlahnya tidak sedikit dalam jaringan yang besar. Apalagi jika kita ditugaskan untuk mengisi entri-entri di seluruh router di Internet yang jumlahnya banyak sekali dan terus bertambah setiap hari. Tentu repot sekali!
Routing dinamik adalah cara yang digunakan untuk melepaskan kewajiban mengisi entri-entri forwarding table secara manual. Protokol routing mengatur router-router sehingga dapat berkomunikasi satu dengan yang lain dan saling memberikan informasi routing yang dapat mengubah isi forwarding table, tergantung keadaan jaringannya. Dengan cara ini, router-router mengetahui keadaan jaringan yang terakhir dan mampu meneruskan datagram ke arah yang benar.
Interior Routing Protocol
Pada awal 1980-an Internet terbatas pada ARPANET, Satnet (perluasan ARPANET yang menggunakan satelit), dan beberapa jaringan lokal yang terhubung lewat gateway. Dalam perkembangannya, Internet memerlukan struktur yang bersifat hirarkis untuk mengantisipasi jaringan yang telah menjadi besar. Internet kemudian dipecah menjadi beberapa autonomous system (AS) dan saat ini Internet terdiri dari ribuan AS. Setiap AS memiliki mekanisme pertukaran dan pengumpulan informasi routing sendiri.
Protokol yang digunakan untuk bertukar informasi routing dalam AS digolongkan sebagai interior routing protocol (IRP). Hasil pengumpulan informasi routing ini kemudian disampaikan kepada AS lain dalam bentuk reachability information. Reachability information yang dikeluarkan oleh sebuah AS berisi informasi mengenai jaringan-jaringan yang dapat dicapai melalui AS tersebut dan menjadi indikator terhubungnya AS ke Internet. Penyampaian reachability information antar-AS dilakukan menggunakan protokol yang digolongkan sebagai exterior routing protocol (ERP).
IRP yang dijadikan standar di Internet sampai saat ini adalah Routing Information Protocol (RIP) dan Open Shortest Path First (OSPF). Di samping kedua protokol ini terdapat juga protokol routing yang bersifat proprietary tetapi banyak digunakan di Internet, yaitu Internet Gateway Routing Protocol (IGRP) dari Cisco System. Protokol IGRP kemudian diperluas menjadi Extended IGRP (EIGRP). Semua protokol routing di atas menggunakan metrik sebagai dasar untuk menentukan jalur terbaik yang dapat ditempuh oleh datagram. Metrik diasosiasikan dengan “biaya” yang terdapat pada setiap link, yang dapat berupa throughput (kecepatan data), delay, biaya sambungan, dan keandalan link.
I. Routing Information Protocol
RIP (akronim, dibaca sebagai rip) termasuk dalam protokol distance-vector, sebuah protokol yang sangat sederhana. Protokol distance-vector sering juga disebut protokol Bellman-Ford, karena berasal dari algoritma perhitungan jarak terpendek oleh R.E. Bellman, dan dideskripsikan dalam bentuk algoritma-terdistribusi pertama kali oleh Ford dan Fulkerson.
Setiap router dengan protokol distance-vector ketika pertama kali dijalankan hanya mengetahui cara routing ke dirinya sendiri (informasi lokal) dan tidak mengetahui topologi jaringan tempatnya berada. Router kemudia mengirimkan informasi lokal tersebut dalam bentuk distance-vector ke semua link yang terhubung langsung dengannya. Router yang menerima informasi routing menghitung distance-vector, menambahkan distance-vector dengan metrik link tempat informasi tersebut diterima, dan memasukkannya ke dalam entri forwarding table jika dianggap merupakan jalur terbaik. Informasi routing setelah penambahan metrik kemudian dikirim lagi ke seluruh antarmuka router, dan ini dilakukan setiap selang waktu tertentu. Demikian seterusnya sehingga seluruh router di jaringan mengetahui topologi jaringan tersebut.
Protokol distance-vector memiliki kelemahan yang dapat terlihat apabila dalam jaringan ada link yang terputus. Dua kemungkinan kegagalan yang mungkin terjadi adalah efek bouncing dan menghitung-sampai-tak-hingga (counting to infinity). Efek bouncing dapat terjadi pada jaringan yang menggunakan metrik yang berbeda pada minimal sebuah link. Link yang putus dapat menyebabkan routing loop, sehingga datagram yang melewati link tertentu hanya berputar-putar di antara dua router (bouncing) sampai umur (time to live) datagram tersebut habis.
Menghitung-sampai-tak-hingga terjadi karena router terlambat menginformasikan bahwa suatu link terputus. Keterlambatan ini menyebabkan router harus mengirim dan menerima distance-vector serta menghitung metrik sampai batas maksimum metrik distance-vector tercapai. Link tersebut dinyatakan putus setelah distance-vector mencapai batas maksimum metrik. Pada saat menghitung metrik ini juga terjadi routing loop, bahkan untuk waktu yang lebih lama daripada apabila terjadi efek bouncing..
RIP tidak mengadopsi protokol distance-vector begitu saja, melainkan dengan melakukan beberapa penambahan pada algoritmanya agar routing loop yang terjadi dapat diminimalkan. Split horizon digunakan RIP untuk meminimalkan efek bouncing. Prinsip yang digunakan split horizon sederhana: jika node A menyampaikan datagram ke tujuan X melalui node B, maka bagi B tidak masuk akal untuk mencapai tujuan X melalui A. Jadi, A tidak perlu memberitahu B bahwa X dapat dicapai B melalui A.
Untuk mencegah kasus menghitung-sampai-tak-hingga, RIP menggunakan metode Triggered Update. RIP memiliki timer untuk mengetahui kapan router harus kembali memberikan informasi routing. Jika terjadi perubahan pada jaringan, sementara timer belum habis, router tetap harus mengirimkan informasi routing karena dipicu oleh perubahan tersebut (triggered update). Dengan demikian, router-router di jaringan dapat dengan cepat mengetahui perubahan yang terjadi dan meminimalkan kemungkinan routing loop terjadi.
RIP yang didefinisikan dalam RFC-1058 menggunakan metrik antara 1 dan 15, sedangkan 16 dianggap sebagai tak-hingga. Route dengan distance-vector 16 tidak dimasukkan ke dalam forwarding table. Batas metrik 16 ini mencegah waktu menghitung-sampai-tak-hingga yang terlalu lama. Paket-paket RIP secara normal dikirimkan setiap 30 detik atau lebih cepat jika terdapat triggered updates. Jika dalam 180 detik sebuah route tidak diperbarui, router menghapus entri route tersebut dari forwarding table. RIP tidak memiliki informasi tentang subnet setiap route. Router harus menganggap setiap route yang diterima memiliki subnet yang sama dengan subnet pada router itu. Dengan demikian, RIP tidak mendukung Variable Length Subnet Masking (VLSM).
RIP versi 2 (RIP-2 atau RIPv2) berupaya untuk menghasilkan beberapa perbaikan atas RIP, yaitu dukungan untuk VLSM, menggunakan otentikasi, memberikan informasi hop berikut (next hop), dan multicast. Penambahan informasi subnet mask pada setiap route membuat router tidak harus mengasumsikan bahwa route tersebut memiliki subnet mask yang sama dengan subnet mask yang digunakan padanya.
RIP-2 juga menggunakan otentikasi agar dapat mengetahui informasi routing mana yang dapat dipercaya. Otentikasi diperlukan pada protokol routing untuk membuat protokol tersebut menjadi lebih aman. RIP-1 tidak menggunakan otentikasi sehingga orang dapat memberikan informasi routing palsu. Informasi hop berikut pada RIP-2 digunakan oleh router untuk menginformasikan sebuah route tetapi untuk mencapai route tersebut tidak melewati router yang memberi informasi, melainkan router yang lain. Pemakaian hop berikut biasanya di perbatasan antar-AS.
RIP-1 menggunakan alamat broadcast untuk mengirimkan informasi routing. Akibatnya, paket ini diterima oleh semua host yang berada dalam subnet tersebut dan menambah beban kerja host. RIP-2 dapat mengirimkan paket menggunakan multicast pada IP 224.0.0.9 sehingga tidak semua host perlu menerima dan memproses informasi routing. Hanya router-router yang menggunakan RIP-2 yang menerima informasi routing tersebut tanpa perlu mengganggu host-host lain dalam subnet.
RIP merupakan protokol routing yang sederhana, dan ini menjadi alasan mengapa RIP paling banyak diimplementasikan dalam jaringan. Mengatur routing menggunakan RIP tidak rumit dan memberikan hasil yang cukup dapat diterima, terlebih jika jarang terjadi kegagalan link jaringan. Walaupun demikian, untuk jaringan yang besar dan kompleks, RIP mungkin tidak cukup. Dalam kondisi demikian, penghitungan routing dalam RIP sering membutuhkan waktu yang lama, dan menyebabkan terjadinya routing loop. Untuk jaringan seperti ini, sebagian besar spesialis jaringan komputer menggunakan protokol yang masuk dalam kelompok link-state