Copyright © Ari Kuswanto
Design by Dzignine
Rabu, 22 September 2010

DYNAMIC ROUTING

Apabila jaringan memiliki lebih dari satu kemungkinan rute untuk tujuan yang

sama maka perlu digunakan dynamic routing. Sebuah dynamic routing dibangun

berdasarkan informasi yang dikumpulkan oleh protokol routing. Protokol ini didesain

untuk mendistribusikan informasi yang secara dinamis mengikuti perubahan kondisi

jaringan. Protokol routing mengatasi situasi routing yang kompleks secara cepat dan

akurat. Protokol routng didesain tidak hanya untuk mengubah ke rute backup bila

rute utama tidak berhasil, namun juga didesain untuk menentukan rute mana yang

terbaik untuk mencapai tujuan tersebut.

Pengisian dan pemeliharaan tabel routing tidak dilakukan secara manual oleh

admin. Router saling bertukar informasi routing agar dapat mengetahui alamat

tujuan dan menerima tabel routing. Pemeliharaan jalur dilakukan berdasarkan pada

jarak terpendek antara device pengirim dan device tujuan


 

A. ALGORITMA ROUTING

Klasifikasi Algoritma Routing :

1. Global

Semua router memiliki informasi lengkap mengenai topologi, link cost.

Contohnya adalah algoritma link state.

2. Desentrasilasi

• Router mengetahui koneksi fisik atau link cost ke tetangga,

• Terjadi pengulangan proses komputasi dan mempertukarkan,

• Informasinya ke router tetangganya, contohnya adalah algoritma distance

vector.


 

1. DISTANCE VECTOR

Algoritma routing distance vector secara periodik menyalin table routing

dari router ke router. Perubahan table routing ini di-update antar router yang

saling berhubungan saat terjadi perubahan topologi. Setiap router menerima

table routing dari router tetangga yang terhubung secara langsung.Proses routing

ini disebut juga dengan routing Bellman-Ford atau Ford-Fulkerson. Routing

vektor jarak beroperasi dengan membiarkan setiap router menjaga tabel (sebuah

vektor) memberikan jarak yang terbaik yang dapat diketahui ke setiap tujuan dan

saluran yang dipakai menuju tujuan tersebut. Tabel-tabel ini di-update dengan

cara saling bertukar informasi dengan router tetangga.

Routing distance vektor bertujuan untuk menentukan arah atau vektor dan

jarak ke link-link lain di suatu internetwork. Sedangkan link-state bertujuan untuk

menciptakan kembali topologi yang benar pada suatu internetwork.

Misal, router Y menerima tabel informasi estimasi dari router X, dimana

terdapat Xi, yang menyatakan estimasi waktu yang dibutuhkan oleh X untuk

sampai ke router i. Bila Y mengetahui delay ke X sama dengan m milidetik, Y

juga mengetahui bahwa Y dapat mencapai router i dalam Xi + m milidetik.

Struktur data tabel Distance Vector :

• Setiap node (router) memilikinya,

• Baris digunakan menunjukkan tujuan yang mungkin,

• Kolom digunakan menunjukkan untuk setiap node tetangga secara langsung,

• Sebagai contoh : pada router X, untuk tujuan Y melalui tetangga Z.

• Pembentukan tabel routing dilakukan dengan cara tiap-tiap router saling

bertukar informasi routing dengan router yang terhubung secara langsung.

• Proses pertukaran informasi dilakukan secara periodik, misal setiap 45 detik.


 

Update table routing dilakukan ketika terjadi perubahan toplogi

jaringan. Sama dengan proses discovery, proses update perubahan topologi

step-by-step dari router ke router. Gambar diatas menunjukkan algoritma

distance vector memanggil ke semua router untuk mengirim ke isi table

routingnya. Table routing berisi informasi tentang total path cost yang

ditentukan oleh metric dan alamat logic dari router pertama dalam jaringan

yang ada di isi table routing, seperti skema oleh gambar di bawah ini.

Analogi distance vector dapat dianalogikan dengan jalan tol. Tanda

yang menunjukkan titik ke tujuan dan menunjukkan jarak ke tujuan. Dengan

adanya tanda-tanda seperti itu pengendara dapat dengan mudah mengetahui

perkiraan jarak yang akan ditempuh untuk mencapai tujuan. Dan tentunya

jarak terpendek adalah rute yang terbaik.


 

Permasalahan RIP

Inconsistent routinggatering, cara mencegahnya dengan cara :

  1. Split horizon : yang menerima informasi tidak mungkin membalikkan informasi
  2. Poisoning
  3. Hold down Timer : router akan menunda routing table
  4. Poison Reserve : menginformasikan mengenai kondisi
  5. Trig Gred update : jika mati dapat langsung mengirimkan informasi dan langsung menjalan kan Holdown timer


 

Ciri Hold Timer berhenti :

  1. Waktu habis
  2. Informsi Update sudah selesai ( poison reserve)
  3. Link lama menyala kembali


 

2. LINK-STATE

Algoritma link-state juga dikenal dengan algoritma Dijkstra atau algoritma

shortest path first (SPF). Algoritma ini memperbaiki informasi database dari

informasi topologi. Algoritma distance vector memiliki informasi yang tidak

spesifik tentang distance network dan tidak mengetahui jarak router. Sedangkan

algortima link-state memperbaiki pengetahuan dari jarak router dan bagaimana

mereka inter-koneksi.

Beberapa fitur yang dimiliki oleh routing link-state adalah:

1. Link-state advertisement (LSA) – paket kecil dari informasi routing yang

dikirim antar router.

2. Topological database – kumpulan informasi yang dari LSA-LSA.

3. SPF algorithm – hasil perhitungan pada database sebagai hasil dari pohon

SPF.

4. Routing table – adalah daftar rute dan interface.


 

KONSEP LINK STATE

Dasar algoritma routing yang lain adalah algoritma link state. Algoritma link state

biasa disebut sebagai algoritma Dijkstra atau algoritma Shortest Path First (SPF).

• Setiap router mempunyai peta jar,

• Router menentukan rute ke setiap tujuan di jar berdasarkan peta jar tersebut,

• Petajaringan disimpan router dalam bentuk database sebagai hasil dari

pertukaran info link-state antara router-router bertetangga di jar tersebut,

• Setiap record dalam database menunjukkan status sebuah jalur dijar (link-tate),

• Menerapkan algoritma Dijkstra,

• Topologi jaringan dan link cost diketahui oleh semua node router,

• Dilakukan dengan cara mem-broadcast informasi link state,

• Semua node memiliki informasi yang sama,

• Menghitung cost terkecil dari satu node ke node lainnya,

• Memberikan tabel rute untuk router tersebut setelah iterasi sebanyak n, diketahui

link cost terkecil untuk n tujuan.


 

B. PROTOKOL ROUTING

Routing protocol berbeda dengan routed protocol. Routing protocol

adalah komunikasi antara router-router. Routing protocol mengijinkan routerrouter

untuk sharing informasi tentang jaringan dan koneksi antar router. Router

menggunakan informasi ini untuk membangun dan memperbaiki table

routingnya. Seperti pada gambar di bawah ini.

Protokol routing dinamik yang banyak digunakan dalam internetworking

TCP/IP adalah RIP (Routing Information Protocol) yang menggunakan algoritma

routing distance vector dan OSPF (Open Shortest Path First) yang menggunakan

algoritma link-state. Pada layer TCP/IP, router dapat menggunakan protokol

routing untuk membentuk routing melalui suatu algoritma yang meliputi:

1. RIP -- menggunakan protokol routing interior dengan algoritma

distance vector,

2. IGRP -- menggunakan protokol routing interior dengan algoritma Cisco

distance vector,

3. OSPF -- menggunakan protokol routing interior dengan algoritma link

state,

4. EIGRP -- menggunakan protokol routing interior dengan algoritma

advanced Cisco distance vector.

Routing Information Protocol (RIP)

Routed protocol digunakan untuk user traffic secara langsung. Routed

protocol menyediakan informasi yang cukup dalam layer address jaringannya

untuk melewatkan paket yang akan diteruskan dari satu host ke host yang lain

berdasarkan alamatnya.

RIP merupakan salah satu protokol routing distance vector yang

digunakan oleh ribuan jaringan di dunia. Hal ini dikarenakan RIP berdasarkan

open standard dan mudah diimplementasikan. Tetapi RIP membutuhkan

konsumsi daya yang tinggi dan memerlukan fitur router routing protokol.

Dasar RIP diterangkan dalam RFC 1058, dengan karakteristik sebagai berikut:

• Routing protokol distance vector,

Metric berdasarkan pada jumlah lompatan (hop count) untuk pemilihan jalur,

• Jika hop count lebih dari 15, maka paket dibuang,

• Update routing dilakukan secara broadcast setiap 30 detik.

1. RIP Versi 1

• Dokumen _ RFC1058,

• RIP _ routing vektor-jarak yang dimodifikasi dengan triggered update dan

split horizon dengan poisonous reverse untuk meningkatkan kinerjanya,

• RIP _ diperlukan supaya host dan router dapat bertukar informasi untuk

menghitung rute dalam jaringan TCP/IP,

• Informasi yang dipertukarkan RIP berupa :

a. Host

b. Network

c. Subnet

d. Rutedefault

2. RIP Versi 2

Enhancement dari RIP versi1 ditambah dengan beberapa kemampuan baru,

• Algoritma routing sama dengan RIP versi1,

• Bedanya terletak pada format dengan tambahan informasi yang dikirim,

• Kemampuan baru :

a. Tag _untuk rute eksternal,

b. Subnet mask,

c. Alamat hop berikutnya,

d. Autentikasi.

3. IGRP (Interior Gateway Routing Protocol)

IGRP merupakan distance vector IGP. Routing distance vector mengukur

jarak secara matematik. Pengukuran ini dikenal dengan nama distance vector.

Router yang menggunakan distance vector harus mengirimkan semua atau

sebagian table routing dalam pesan routing update dengan interval waktu yang

regular ke semua router tetangganya. Isi dari informasi routing adalah:

• Identifikasi tujuan baru,

• Mempelajari apabila terjadi kegagalan.

IGRP adalah routing protokol distance vector yang dibuat oleh Cisco. IGRP

mengirimkan update routing setiap interval 90 detik. Update ini advertise semua

jaringan dalam AS. Kunci desain jaringan IGRP adalah:

• Secara otomatis dapat menangani topologi yang komplek,

• Kemampuan ke segmen dengan bandwidth dan delay yang berbeda,

• Skalabilitas, untuk fungsi jaringan yang besar.


 

Secara default, IGRP menggunakan bandwidth dan delay sebagai metric.

Untuk konfigurasi tambahan, IGRP dapat dikonfigurasi menggunakan kombinasi

semua varibel atau yang disebut dengan composite metric. Variabel-variabel itu

misalnya:

Bandwidth

Delay

Load

Reliability

IGRP yang merupakan contoh routing protokol yang menggunakan

algoritma distance vector yang lain. Tidak seperti RIP, IGRP merupakan routing

protokol yang dibuat oleh Cisco. IGRP juga sangat mudah diimplementasikan,

meskipun IGRP merupakan routing potokol yang lebih komplek dari RIP dan

banyak faktor yang dapat digunakan untuk mencapai jalur terbaik dengan

karakteristik sebagai berikut:

a. Protokol Routing Distance Vector,

b. Menggunakan composite metric yang terdiri atas bandwidth, load, delay dan

reliability,

c. Update routing dilakukan secara broadcast setiap 90 detik.

4. OSPF (Open Shortest Path First)

OSPF merupakan interior routing protocol yang kepanjangan dari Open

Shortest Path First. OSPF didesain oleh IETF ( Internet Engineering Task Force )

yang pada mulanya dikembangkan dari algoritma SPF ( Shortest Path First ).

Hampir sama dengan IGRP yaitu pada tahun 80-an.

Pada awalnya RIP adalah routing protokol yang umum dipakai, namun

ternyata untuk AS yang besar, RIP sudah tidak memadai lagi. OSPF diturunkan

dari beberapa periset seperti Bolt, Beranek, Newmans. Protokol ini bersifat open

yang berarti dapat diadopsi oleh siapa pun. OSPF dipublikasikan pada RFC

nomor 1247. OSPF menggunakan protokol routing link-state, dengan

karakteristik sebagai berikut:

a. Protokol routing link-state.

b. Merupakan open standard protokol routing yang dijelaskan di RFC 2328.

b. Menggunakan algoritma SPF untuk menghitung cost terendah.

c. Update routing dilakukan secara floaded saat terjadi perubahan topologi

jaringan.

d. OSPF adalah linkstate protokol dimana dapat memelihara rute dalam dinamik

network struktur dan dapat dibangun beberapa bagian dari subnetwork.

e. OSPF lebih effisien daripada RIP.

f. Antara RIP dan OSPF menggunakan di dalam Autonomous System ( AS ).

g. Menggunakan protokol broadcast.

5. EIGRP (Enhanced Interior Gateway Routing Protocol)

EIGRP menggunakan protokol routing enhanced distance vector, dengan

karakteristik sebagai berikut:

a. Menggunakan protokol routing enhanced distance vector.

b. Menggunakan cost load balancing yang tidak sama.

c. Menggunakan algoritma kombinasi antara distance vector dan link-state.

d. Menggunakan Diffusing Update Algorithm (DUAL) untuk menghitung jalur

terpendek.


 

CONTOH CONFIGURASI

Download file zebra:
[root@KUNINGAN ~]# wget ftp://ftp.zebra.org/pub/zebra/zebra-0.95a.tar.gz

Ekstrak file zebra:
[root@KUNINGAN ~]# tar zxvf zebra-0.95a.tar.gz

Masuk kedalam file zebra:
[root@KUNINGAN ~]# cd zebra-0.95a
root@KUNINGAN zebra-0.95a]# ./configure –sysconfdir=/etc/zebra –disable-ipv6 –enable-tcp-zebra
[root@KUNINGAN zebra-0.95a]# make
[root@KUNINGAN zebra-0.95a]# make install

/etc/zebra adalah tempat file hasil instalasi.
Kopikan file zebra.conf.sample menjadi zebra.conf
[root@KUNINGAN zebra]# cd /etc/zebra/
[root@KUNINGAN etc]# cp zebra.conf.sample zebra.conf
[root@KUNINGAN zebra]# cp ripd.conf.sample ripd.conf
[root@KUNINGAN zebra]# cp ospfd.conf.sample ospfd.conf
root@KUNINGAN zebra]# cp bgpd.conf.sample bgpd.conf

Supaya service otomatis dijalankan ketika Gateway di restart.
[root@KUNINGAN zebra]# cp /root/zebra-0.95a/init/redhat/zebra.init /etc/rc.d/init.d/zebra
[root@KUNINGAN zebra]# cp /root/zebra-0.95a/init/redhat/ripd.init /etc/rc.d/init.d/ripd
[root@KUNINGAN zebra]# cp /root/zebra-0.95a/init/redhat/ospfd.init /etc/rc.d/init.d/ospfd
[root@KUNINGAN zebra]# cp /root/zebra-0.95a/init/redhat/bgpd.init /etc/rc.d/init.d/bgpd
[root@KUNINGAN zebra]# chmod 755 /etc/rc.d/init.d/*

Ubah file zebra, ripd, ospfd, bgpd yang sudah dikopi ke /etc/rc.d/init.d/

File zebra
[root@KUNINGAN zebra]# vim /etc/init.d/zebra
. /etc/rc.d/init.d/functions menjadi . /etc/init.d/functions
[ -f /etc/zebra.conf ] || exit 0 menjadi [ -f /etc/zebra/zebra.conf ] || exit 0
# daemon /usr/sbin/zebra –d menjadi daemon /usr/local/sbin/zebra –d

[root@KUNINGAN zebra]# vim /etc/init.d/ripd
. /etc/rc.d/init.d/functions menjadi . /etc/init.d/functions
[ -f /etc/ripd.conf ] || exit 0 menjadi [ -f /etc/zebra/ripd.conf ] || exit 0
# daemon /usr/sbin/ripd –d menjadi daemon /usr/local/sbin/ripd –d

[root@KUNINGAN zebra]# vim /etc/init.d/ospfd
. /etc/rc.d/init.d/functions menjadi . /etc/init.d/functions
[ -f /etc/ospfd.conf ] || exit 0 menjadi [ -f /etc/zebra/ospfd.conf ] || exit 0
# daemon /usr/sbin/ospfd –d menjadi daemon /usr/local/sbin/ospfd –d

[root@KUNINGAN zebra]# vim /etc/init.d/bgpd
. /etc/rc.d/init.d/functions menjadi . /etc/init.d/functions
[ -f /etc/bgpd.conf ] || exit 0 menjadi [ -f /etc/zebra/bgpd.conf ] || exit 0
# daemon /usr/sbin/bgpd –d menjadi daemon /usr/local/sbin/bgpd –d

Tambahkan di :
[root@KUNINGAN zebra]# vim /etc/services
zebrasrv 2600/tcp
zebra 2601/tcp
ripd 2602/tcp
ripng 2603/tcp
ospfd 2604/tcp
bgpd 2605/tcp
ospf6d 2606/tcp

Jalankan service :
[root@KUNINGAN zebra]# service zebra start
[root@KUNINGAN zebra]# service ripd start
[root@KUNINGAN zebra]# service ospfd start
[root@KUNINGAN zebra]# service bgpd start

Lihat port yang sedang running di gateway 1 dengan perintah nmap, jika nmap belum ada maka install dulu :
[root@KUNINGAN zebra]#yum install nmap
[root@KUNINGAN zebra]#nmap localhost
PORT STATE SERVICE
2600/tcp open zebrasrv
2601/tcp open zebra
2602/tcp open ripd
2604/tcp open ospfd
2605/tcp open bgpd

Ok zebra sudah berjalan dengan baik, berarti gateway 1 sudah bisa routing dinamik dengan RIP, OSPF, dan BGP.

C. Routing RIP
Agar routing RIP jalan, maka ada dua file yang harus di konfigurasi di masing-masing gateway, yaitu zebra.conf dan ripd.conf
Isi dari file zebra.conf adalah ip address dari interface yang ada pada gateway.
Isi dari file ripd.conf adalah alamat jaringan yang terhubung dengan gateway.
Untuk mengubah file zebra.conf bisa langsung lewat editor atau telne t lewat port 2601, dengan lewat jalur telnet maka kita akan mengkonfigurasi seperti router cisco. Supaya lebih seru mari kita konfigurasi lewat telnet saja, dengan password zebra.

Konfigurasi zebra.conf
Pastikan bahwa di gateway 1 firewall dah mati dengan :
[root@kuningan ~]# iptables –F
Telnet lewat windows:
D:\Documents and Settings\hendra>telnet 10.200.16.11 2601

Hello, this is zebra (version 0.95a).
Copyright 1996-2004 Kunihiro Ishiguro.

User Access Verification

Password:
Router>
Router> zebra
% Unknown command.
Router>
Router> en
Password:
Password:
Router#
Router# confi
Router# configure ter
Router# configure terminal
Router(config)#
Router(config)# in
Router(config)# interface eth0
Router(config-if)#
Router(config-if)# ip ad
Router(config-if)# ip address 10.200.16.11/25
Router(config-if)#
Router(config-if)# exit
Router(config)#
Router(config)# in
Router(config)# inin
Router(config)# int
Router(config)# interface eth1
Router(config-if)#
Router(config-if)# ip ad
Router(config-if)# ip address 202.51.107.121/26
Router(config-if)#
Router(config-if)# exit
Router(config)#
Router(config)# exit
Router#
Router# write
Configuration saved to /etc/zebra/zebra.conf
Router#
Router#

Konfigurasi rip.conf lewat telnet

Hello, this is zebra (version 0.95a).
Copyright 1996-2004 Kunihiro Ishiguro.

User Access Verification

Password:
ripd>
ripd> en
ripd#
ripd# conf
ripd# configure ter
ripd# configure terminal
ripd(config)#
ripd(config)# ro
ripd(config)# router r
ripd(config)# router rip
ripd(config-router)#
ripd(config-router)# network 10.200.16.0/25
ripd(config-router)#
ripd(config-router)# network 202.51.107.64/26
ripd(config-router)#
ripd(config-router)# exit
ripd(config)#
ripd(config)# exit
ripd#
ripd# write
Configuration saved to /etc/zebra/ripd.conf
ripd#
ripd#

D. Cek Routing Table
[root@kuningan ~]# route -n
Kernel IP routing table
Destination   Gateway    Genmask   Flags   Metric   Ref   Use   Iface
192.168.1.208   10.200.16.1   255.255.255.240   UG   2   0   0   eth0
202.51.107.64    0.0.0.0   255.255.255.192   U   0    0   0   eth1
10.200.7.0    10.200.16.1   255.255.255.128   UG   2    0   0   eth0
10.200.7.128   10.200.16.1   255.255.255.128   UG   2   0   0   eth0
10.200.6.0   10.200.16.1   255.255.255.128   UG    2   0   0   eth0
10.200.14.0   10.200.16.1   255.255.255.128   UG   2   0   0   eth0
10.200.16.0    0.0.0.0   255.255.255.128   U   0   0   0   eth0
10.107.1.0   10.200.16.1    255.255.255.0   UG   3   0   0   eth0
10.106.3.0    10.200.16.1   255.255.255.0    UG 3 0 0 eth0
169.254.0.0   0.0.0.0    255.255.0.0   U   0    0   0   eth1
10.0.0.0   10.200.16.1   255.0.0.0   UG   0   0   0   eth0
0.0.0.0    202.51.107.65   0.0.0.0   UG   0   0   0   eth1
[root@kuningan ~]#