Selasa, 18 Januari 2011

OSPF

Open Shortest Path First (OSPF) adalah salah satu protocol routing link-state yang dikembangkan sebagai pengganti distance vector routing protocol RIP. RIP adalah routing protocol yang cocok pada awal perkembangan jaringan dan internet. Tetapi ini tergantung pada hop count sebagai pengukuran dalam memilih rute terbaik dan tercepat, tapi kemudian ini tidak sesuai lagi seiring dengan bertambah luasnya jaringan yang memerlukan solusi routing yang sangat cepat. OSPF adalah classless routing protocol yang menggunakan konsep

area untuk scalabilitas.RFC 2328 mendefinisikan OSPF metric sebagai nilai penentu yang biasa dikenal sebagai cost. CISCO IOS menggunakan bandwith sebagai OSPF cost metric.

Keuntungan utama OSPF dibandingkan RIP adalah OSPF dapat melakukan konvergensi yang cepat dan skalabilitas lebih luas untuk implementasi jaringan yang lebih besar.

TIPE Paket OSPF

1. Hello – Paket hello digunakan untuk membangun dan memelihara adjacency dengan router OSPF lainnya.

2. DBD – Database Description (DBD) berisi daftar-daftar dari database link state router pengirim dan digunakan oleh router penerima untuk memeriksa dan dibandingkan dengan database link state local.

3. LSR – Receiving Routers kemudian bisa meminta informasi lebih lanjut tentang isi di dalam DBD dengan mengirim Link-State Request (LSR)

4. LSU – Link State Update (LSU) paket digunakan untuk mereply ke LSRs serta mengumumkan informasi baru. LSUs berisi tujuh jenis Link-State Advertisements (LSAs) yang berbeda.

5. LSAck – Ketika sebuah LSU diterima, router mengirim sebuah Link-state Acknowledgement(LSAck) sebagai konfirmasi penerimaan LSU.








Neighbor Establishment.

Sebelum sebuah router OSPF bisa menyebarkan link-state ke router yang

lain, pertama kali router ini harus memastikan apakah ada OSPF neighbor lain pada setiap link di router ini. OSPF router mengirimkan paket Hello pada semua interface OSPF yang enabled untuk memeriksa apakah ada neighbor di link tersebut. Informasi dalam OSPF Hello mencakup OSPF Router ID dari router yang mengirimkan paket Hello tersebut. Penerima OSPF Hello paket kemudian mereply bahwa ada router OSPF lain pada link ini. OSPF

kemudian membentuk adjacency dengan neighbor ini. Sebagai contoh, dalam gambar berikut , R1 akan mendirikan adjacencies dengan R2 dan R3.




























OSPF Hello dan Dead Intervals

Sebelum dua router dapat membentuk OSPF neighbor adjacency , mereka harus setuju pada tiga nilai: Halo interval, dead interval, dan tipe jaringan. Halo OSPF Interval yang menunjukkan seberapa sering sebuah router OSPF mengirimkan paket Hello. Secara default, paket OSPF Halo dikirimkan setiap 10 detik pada segment multiaccess dan point-to-point dan setiap 30 detik untuk segmen non-broadcast multiaccess (NBMA) (Frame Relay, X.25, ATM).

Dalam kebanyakan kasus, OSPF Halo paket akan dikirim sebagai multicast ke reserved address untuk semua OSPFRouters di 224.0.0.5. Menggunakan alamat multicast memungkinkan sebuah perangkat untuk mengabaikan paket OSPF jika interfacenya tidak diaktifkan. Ini menghemat waktu proses CPU untuk device yang non-OSPF.

Periode Dead Interval, yang dinyatakan dalam detik, bahwa router akan menunggu untuk menerima paket Halo sebelum menyatakan bahwa neighbor “down”. Cisco menggunakan default empat kali Hello interval. Untuk multiaccess dan point-to-point segmen, periode ini adalah 40 detik. Untuk NBMA jaringan, Dead Interval adalah 120 detik.

Jika Dead interval berakhir sebelum router menerima paket Hello, OSPF akan menghapus neighbor ini dari link-state database. Router kemudian menyebarkan informasi link-state tentang neighbor yang “down” melalui semua OSPF interface yang aktif.

Pemilihan DR(Designated Router) dan BDR

Untuk mengurangi jumlah lalu lintas di multi-access jaringan OSPF, OSPF memilih sebuah Designated Router (DR) dan Backup Designated Router (BDR). DR bertanggung jawab untuk memperbarui semua router OSPF yang lain (disebut DROthers) ketika terjadi perubahan pada jaringan multiaccess. BDR akan memonitor DR dan mengambil alih sebagai DR jika terjadi kegagalan pada DR.

Dalam gambar, R1, R2, dan R3 dihubungkan melalui titik point-to-point link. Oleh karena itu, tidak terjadi pemilihan DR / BDR.

Algoritma OSPF

Setiap router OSPF menjaga sebuat link-state database berisi LSAs ( Link-state advertisement ) yang diterima dari semua router yang lain. Satu kali router menerima semua LSAs dan membuat local link-state databasenya, OSPF menggunakan algoritma Dijkstra shortest path first (SPF) untuk membuat pohon SPF. Pohon SPF kemudian digunakan untuk membuat tabel IP routing yang berisi daftar jalan yang terbaik menuju setiap jaringan.






























sumber : http://www.its-berry.com/open-shortest-path-first-ospf/

EIGRP















EIGRP adalah protokol routing yang termasuk proprietari Cisco, yang berarti hanya bisa dijalankan pada router Cisco, EIGRP bisa jadi merupakan protokol routing terbaik didunia jika bukan merupakan proprietari Cisco.

Kelebihan utama yang membedakan EIGRP dari protokol routing lainnya adalah EIGRP termasuk satu-satunya protokol routing yang menawarkan fitur backup route, dimana jika terjadi perubahan pada network, EIGRP tidak harus melakukan kalkulasi ulang untuk menentukan route terbaik karena bisa langsung menggunakan backup route. Kalkulasi ulang route terbaik dilakukan jika backup route juga mengalami kegagalan. Berikut adalah fitur-fitur yang dimiliki EIGRP:

* Termasuk protokol routing distance vector tingkat lanjut (Advanced distance vector).
* Waktu convergence yang cepat.
* Mendukung VLSM dan subnet-subnet yang discontiguous (tidak bersebelahan/berurutan)
* Partial updates, Tidak seperti RIP yang selalu mengirimkan keseluruhan tabel routing dalam pesan Update, EIGRP menggunakan partial updates atau triggered update yang berarti hanya mengirimkan update jika terjadi perubahan pada network (mis: ada network yang down)
* Mendukung multiple protokol network
* Desain network yang flexible.
* Multicast dan unicast, EIGRP saling berkomunikasi dengan tetangga (neighbor) nya secara multicast (224.0.0.10) dan tidak membroadcastnya.
* Manual summarization, EIGRP dapat melakukan summarization dimana saja.
* Menjamin 100% topologi routing yang bebas looping.
* Mudah dikonfigurasi untuk WAN dan LAN.
* Load balancing via jalur dengan cost equal dan unequal, yang berarti EIGRP dapat menggunakan 2 link atau lebih ke suatu network destination dengan koneksi bandwidth (cost metric) yang berbeda, dan melakukan load sharing pada link-link tersebut dengan beban yang sesuai yang dimiliki oleh link masing-masing, dengan begini pemakaian bandwidth pada setiap link menjadi lebih efektif, karena link dengan bandwidth yang lebih kecil tetap digunakan dan dengan beban yang sepadan juga

EIGRP mengkombinasikan kelebihan-kelebihan yang dimiliki oleh protokol routing link-state dan distance vector. Tetapi pada dasarnya EIGRP adalah protokol distance vector karena router-router yang menjalankan EIGRP tidak mengetahui road map/ topologi network secara menyeluruh seperti pada protokol link-state.

EIGRP mudah dikonfigurasi seperti pendahulunya (IGRP) dan dapat diadaptasikan dengan variasi topologi network. Penambahan fitur-fitur protokol link-state seperti neighbor discovery membuat EIGRP menjadi protokol distance vector tingkat lanjut.

EIGRP menggunakan algoritma DUAL (Diffusing Update Algorithm) sebagai mesin utama yang menjalankan lingkungan EIGRP, DUAL dapat diperbandingkan dengan algoritma SPF Dijkstra pada OSPF.

EIGRP memiliki fitur-fitur utama sebagai berikut.

* Partial updates: EIGRP tidak mengirimkan update secara periodik seperti yang dilakukan oleh RIP, tetapi EIGRP mengirimkan update hanya jika terjadi perubahan route/metric (triggered update). Update yang dikirimkan hanya berisi informasi tentang route yang mengalami perubahan saja. Pengiriman pesan update ini juga hanya ditujukan sebatas pada router-router yang membutuhkan informasi perubahan tersebut saja. Hasilnya EIGRP menghabiskan bandwidth yang lebih sedikit daripada IGRP. Hal ini juga membedakan EIGRP dengan protokol link-state yang mengirimkan update kepada semua router dalam satu area.
* Multiple network-layer protocol support: EIGRP mendukung protokol IP, AppleTalk, dan Novell NetWare IPX dengan memanfaatkan module-module yang tidak bergantung pada protokol tertentu.

Fitur EIGRP lain yang patut diperhatikan adalah sebagai berikut:

* Koneksi dengan semua jenis data link dan topologi tanpa memerlukan konfigurasi lebih lanjut, protokol routing lain seperti OSPF, menggunakan konfigurasi yang berbeda untuk protokol layer 2 (Data Link) yang berbeda, misalnya Ethernet dan Frame Relay. EIGRP beroperasi dengan efektif pada lingkungan LAN dan WAN. Dukungan WAN untuk link point-to-point dan topologi nonbroadcast multiaccess (NBMA) merupakan standar EIGRP.
* Metric yang canggih: EIGRP menggunakan algoritma yang sama dengan IGRP untuk menghitung metric tetapi menggambarkan nilai-nilai dalam format 32-bit. EIGRP mendukung load balancing untuk metric yang tidak seimbang (unequal), yang memungkinkan engineer untuk mendistribusikan traffik dalam network dengan lebih baik.
* Multicast and unicast: EIGRP menggunakan multicast dan unicast sebagai ganti broadcast. Address multicast yang digunakan adalah 224.0.0.10.

Dibalik Proses dan Teknologi EIGRP

EIGRP menggunakan 4 teknologi kunci yang berkombinasi untuk membedakan EIGRP dengan protokol routing yang lainnya: neighbor discovery/recovery, reliable transport protocol (RTP), DUAL finitestate machine, dan protocol-dependent modules.

* Neighbor discovery/recovery
o Menggunakan paket hello antar neighbor.

* Reliable Transport Protocol (RTP)
o Pengiriman paket yang terjamin dan terurut kepada semua neighbor.

* DUAL finite-state machine
o Memilih jalur dengan cost paling rendah dan bebas looping untuk mencapai destination.

* Protocol-dependent module (PDM)
o EIGRP dapat mendukung IP, AppleTalk, dan Novell NetWare.
o Setiap protokol disediakan modul EIGRP tersendiri dan beroperasi tanpa saling mempengaruhi satu sama lain.

Neighbor discovery/recovery mechanism: teknologi ini memungkinkan router untuk dapat mengenali setiap neighbor pada network yang terhubung langsung secara dinamik. Router juga harus mengetahui jika ada salah satu neighbor yang mengalami kegagalan dan tidak dapat dijangkau lagi (unreachable). Proses ini dapat diwujudkan dengan pengiriman paket hello yang kecil secara periodik. Selama router menerima paket hello dari router neighbor, maka router akan mengasumsikan bahwa router neighbor berfungsi dengan normal dan keduanya dapat bertukar informasi routing.

RTP: Bertanggung jawab atas pengiriman paket-paket kepada neighbor yang terjamin dan terurut. RTP mendukung transmisi campuran antara paket multicast dan unicast. Untuk tujuan efisiensi, hanya paket EIGRP tertentu yang dikirim menggunakan teknologi RTP.

DUAL finite state machine: mewujudkan proses penentuan untuk semua komputasi route. DUAL melacak semua route yang di advertise oleh setiap neighbor dan menggunakan metric untuk menentukan jalur paling effisien dan bebas looping ke semua network tujuan.

Protocol-dependent modules (PDM): bertanggung jawab untuk keperluan layer network protokol-protokol tertentu. EIGRP mendukung IP, AppleTalk, dan Novell NetWare; setiap protokol tersebut telah disediakan module EIGRP nya masing-masing dan satu sama lain beroperasi secara independent. Module IP-EIGRP misalnya, bertanggung jawab untuk pengiriman dan penerimaan paket-paket EIGRP yang telah di enkapsulasi dalam IP.
Cara Kerja EIGRP
Istilah-istilah algoritma DUAL

* Memilih jalur/route untuk mencapai suatu network dengan ongkos paling rendah, dan bebas looping.
* AD (advertised distance), menggambarkan seberapa jauh sebuah network dari neighbor, merupakan ongkos (metric) antara router next-hop dengan network destination.
* FD (feasible distance), menggambarkan seberapa jauh sebuah network dari router, merupakan ongkos (metric) antara router dengan router next-hop ditambah dengan AD dari router next-hop.
* Ongkos paling rendah = FD paling rendah.
* Successor, adalah jalur utama untuk mencapai suatu network (route terbaik), merupakan router next-hop dengan Ongkos paling rendah dan jalur bebas looping.
* Feasible Successor, adalah jalur backup dari successor (AD dari feasible successor harus lebih kecil daripada FD dari successor)

EIGRP menggunakan dan memelihara 3 jenis tabel. Tabel neighbor untuk mendaftar semua router neighbor, tabel topologi untuk mendaftar semua entri route untuk setiap network destination yang didapatkan dari setiap neighbor, dan tabel routing yang berisi jalur/route terbaik untuk mencapai ke setiap destination.

Table Neighbor

1-neighbor-table

Ketika router menemukan dan menjalin hubungan adjacency (ketetanggaan) dengan neighbor baru, maka router akan menyimpan address router neighbor beserta interface yang dapat menghubungkan dengan neighbor tersebut sebagai satu entri dalam tabel neighbor. Tabel neighbor EIGRP dapat diperbandingkan dengan database adjacency yang digunakan oleh protokol routing link-state yang keduanya mempunyai tujuan yang sama: untuk melakukan komunikasi 2 arah dengan setiap neighbor yang terhubung langsung.

Ketika neighbor mengirimkan paket hello, ia akan menyertakan informasi hold time, yakni total waktu sebuah router dianggap sebagai neighbor yang dapat dijangkau dan operasional. Jika paket hello tidak diterima sampai hold time berakhir, algoritma DUAL akan menginformasikan terjadinya perubahan topologi.
Topology Table

2-topology-table

Ketika router menemukan neighbor baru, maka router akan mengirimkan sebuah update mengenai route-route yang ia ketahui kepada neighbor baru tersebut dan juga sebaliknya menerima informasi yang sama dari neighbor. Update-update ini lah yang akan membangun tabel topologi. Tabel topologi berisi informasi semua network destination yang di advertise oleh router neighbor. Jika neighbor meng advertise route ke suatu network destination, maka neighbor tersebut harus menggunakan route tersebut untuk memforward paket.

Tabel topologi di update setiap kali ada perubahan pada network yang terhubung langsung atau pada interface atau ada pemberitahuan perubahan pada suatu jalur dari router neighbor.

Entri pada tabel topologi untuk suatu destination dapat berstatus active atau passive. Destination akan berstatus passive jika router tidak melakukan komputasi ulang, dan berstatus active jika router masih melakukan komputasi ulang. Jika selalu tersedia feasible successor maka destination tidak akan pernah berada pada status active dan terhindar dari komputasi ulang. Status yang diharapkan untuk setiap network destination adalah status passive.
Routing table

3-routing-table

Router akan membandingkan semua FD untuk mencapai network tertentu dan memilih jalur/route dengan FD paling rendah dan meletakkannya pada tabel routing; jalur/route inilah yang disebut successor route. FD untuk jalur/route yang terpilih akan menjadi metric EIGRP untuk mencapai network tersebut dan disertakan dalam tabel routing.
Paket-Paket EIGRP

EIGRP saling berkomunikasi dengan tetangga (neighbor) nya secara multicast (224.0.0.10) dan menggunakan 5 jenis pesan (message) dalam berhubungan dengan neighbornya:

* Hello: Router-Router menggunakan paket Hello untuk menjalin hubungan neighbor. Paket-paket dikirimkan secara multicast dan tidak membutuhkan.
* Update: Untuk mengirimkan update informasi routing. Tidak seperti RIP yang selalu mengirimkan keseluruhan tabel routing dalam pesan Update, EIGRP menggunakan triggered update yang berarti hanya mengirimkan update jika terjadi perubahan pada network (mis: ada network yang down). Paket update berisi informasi perubahan jalur/route. Update-update ini dapat berupa unicast untuk router tertentu atau multicast untuk beberapa router yang terhubung.
* Query: Untuk menanyakan suatu route kepada tetangga. Biasanya digunakan saat setelah terjadi kegagalan/down pada salah satu route network, dan tidak terdapat feasible successor untuk route/jalur tersebut. router akan mengirimkan pesan Query untuk memperoleh informasi route alternatif untuk mencapai network tersebut, biasanya dalam bentuk multicast tapi bisa juga dalam bentuk unicast untuk beberapa kasus tertentu.
* Reply: Respon dari pesan Query.
* ACK: Untuk memberikan acknowledgement (pengakuan/konfirmasi) atas pesan Update, Query, dan Reply.

Metric EIGRP

Protokol routing digolong-golongkan berdasarkan cara mereka memilih jalur terbaik dan cara mereka menghitung metric suatu jalur (route). Metric adalah suatu ukuran yang digunakan untuk menentukan nilai cost dari suatu route menuju network tertentu. Semakin kecil metric suatu route network semakin bagus dan akan menjadi pilihan utama dalam pemilihan route terbaik.

EIGRP menggunakan komponen-komponen metric yang sama seperti pada IGRP: delay, bandwidth, reliability, load, dan maximum transmission unit (MTU).

EIGRP menggukaan gabungan metric yang sama seperti pada IGRP untuk menentukan jalur terbaik, hanya saja metric EIGRP dikalikan 256. EIGRP secara default hanya menggunakan 2 kriteria metric berikut:

* Bandwidth.
* Delay: total lama delay interface sepanjang jalur.

Kriteria berikut bisa dipakai, tetapi tidak direkomendasikan karena dapat menimbulkan kalkulasi ulang yang terlalu sering pada tabel topologi:

* Reliability.
* Loading.
* MTU.



sumber : http://diakbara.co.cc/networking/eigrp/

Selasa, 04 Januari 2011

Function pada Oracle :D

skarang kita belajar function di oracle.. :D

rumusnya adalah :

CREATE OR REPLACE FUNCTION [nama_function]
....................
return .......
IS
.................
BEGIN
................
return ........
END;
/

contoh :

CREATE OR REPLACE function cekBil
(x In number)
return varchar
IS

BEGIN
if x > 0 and mod(x,2)=1 then
return 'ini bilangan ganjil positif';
elsif x > 0 and mod (x,2)=0 then
return 'ini bilangan genap positif';
elsif x = 0 then
return 'ini angka nol';
elsif x<0>
return 'ini angka negatif';
end if;
END;
/


cara memanggilnya cukup mengetikan

select cekBil(10) from dual;

sedikit membingungkan ya , but its easy dude ;) :D

Procedure pada Oracle.

akhirnya, masuk materi setelah UTS di kampus :D

oke kita skarang akan belajar membuat procedure pada oracle. saya menggunakan user default hr dari oracle :D

Rumusnya Procedure tanpa Parameter :

create or replace procedure ismail is
.....
.....
begin
.....
.....
end;
/


apabila sudah selesai membuat procedure nya dan tidak mengalami error,
cara menjalankannya cukup mengetikan

exec [nama_procedure] ;


contoh :

create or replace procedure ismail is
id departments.department_id%type;
nama departments.department_name%type;
begin
id:=280;
nama:='Apa-ajabole';
insert into departments (department_id, department_name)
values(id,nama);

dbms_output.put_line('Berhasil menginsert ' ||sql%rowcount||' baris');
end;
/

mudah kan??? :D


skarang kita masuk ke procedure yang berparameter,,

Rumusnya Procedure berparameter :

create or replace procedure [nama_procedure]([parameter])
is
begin
..........
..........

end;

/


anda pasti masih ingat apa itu parameter,,,
klo pada matematika contoh parameter itu seperti ini :
F(x) , nah si x itu sebagai parameter.

apabila procedure sudah di buat dan tidak mengalami error, kita bisa langsung memanggil procedure tersebut dengan perintah

exec [nama_procedur] ([parameternya]);


apabila mengalami procedure create with compilelation error , tinggal mengetikan show error;

contoh :

create or replace procedure ismail_param
(id departments.department_id%type,
nama departments.department_name%type)
is
begin
insert into departments (department_id, department_name)
values(id,nama);

dbms_output.put_line('Berhasil menginsert ' ||sql%rowcount||' baris');
end;
/

Exception pada Oracle.

Exception pada Oracle.

sebetulnya mudah mempelajari exception pada oracle ini.
kita hanya tinggal menambahkan

Exception
when [kondisi] then [langkah yang akan di lakukan] ;

kondisi yang di maksud di atas bisa berupa :
- no_data_found
- too_many_rows

dan langkah yang akan di lakukan bisa berupa :
- dbms_output.put_line('data tidak di temukan');
- dbms_output.put_line('data terlalu banyak');
- dll..

Contohnya :

declare
negara_input countries.country_name%type;
negara countries.country_name%type;
kota locations.city%type;

begin
negara_input:='&nama_negara';

select country_name,count(city)
into negara,kota
from locations join countries on locations.country_id = countries.country_id
where country_name=negara_input
Group by country_name;

dbms_output.put_line('nama negara: '||negara||'jumlah kotanya: '||kota);

Exception
when no_data_found then
dbms_output.put_line('data tidak di temukan');
end;
/


maka hasil di atas, apabila kita menginput sebuah nama negara yang akan di cari
dan ternyata negara tersebut tidak di temukan , maka output nya akan mengatakan
"data tidak di temukan"

sekian pembelajaran tentang exception :D simple kan... :D