Selasa, 18 Oktober 2011

TCP/IP: Konsep Routing



Routing
Seperti halnya OSI Network Layer Protokol, Internet Protocol (IP) mempunyai tanggung jawab untuk mencarikan route yang harus di tempuh paket untuk mencapai tujuan. Hal ini dilakukan dengan melihat tujuan IP di NET_ID dan informasi kemana paket harus di arahkan di table routing. Semua ini dilakukan oleh protocol routing, bukan IP, protocol routing ini yang akan mengisi tabel routing. Beberapa referensi yang baik tentang teknik routing dapat di baca di Linux Advanced Routing & Traffic Control http://lartc.org/ and Linux Network Administration Guide http://www.tldp.org/guides.html. Detail teknik dan implementasi routing yang sangat kompleks dan mungkin sebaiknya di bahas dalam buku yang terpisah. Bagi anda yang sangat tertarik untuk mendalami teknik routing sangat di sarankan untuk mendownload berbagai whitepaper / material yang ada di situs Cisco http://www.cisco.com yang banyak menyediakan teknik routing yang baik terutama untuk jaringan sekelas Internet Service Provider (ISP).
Routing Direct vs. Indirect
Jika dua komputer yang terhubung dalam jaringan komputer dengan hub yang sama, maka ke dua komputer tersebut dapat langsung berhubungan satu sama lain melalui hub tanpa perlu mem-forward ke router atau gateway.
Umumnya untuk routing direct kita tidak perlu mengkonfigurasi apa-apa di sisi system operasinya. Informasi bahwa sebuah host adalah direct, jika ke dua-nya mempunyai network address (NET_ID) yang sama persis. Konfigurasi netmask di network interface sangat menentukan dan sangat fatal disini. Konfigurasi interface di Linux pada interface eth0 dapat dilakukan menggunakan perintah,
# ifconfig eth0 [ip-address] netmask [subnetmask]
Jika dua komputer yang saling berhubung tidak tersambung pada jaringan yang sama, tidak tersambung pada hub yang sama. Harus ada sebuah atau beberapa buah router / gateway yang di fungsikan untuk me-relay paket agar ke dua komputer dapat saling komunikasi.
Agar indirect routing dapat berfungsi dengan baik, kita perlu menambahkan entry pada tabel routing di sistem operasi yang kita gunakan. Pada jaringan komputer yang sangat sederhana dengan sebuah router atau gateway ke jaringan yang lebih besar (atau Internet), teknik menambahkan gateway secara statis dapat menggunakan perintah,
# route add default gw [ip-router-anda]
Tentunya bagi jaringan yang kompleks dengan banyak router / gateway kita tidak mungkin menggunakan teknik sederhana tersebut.


Metoda Routing
Teknik routing yang di jelaskan di atas menggunakan perintah route add di shell Linux sebetulnya termasuk kategori routing statik.
Routing Statik Route ke tujuan di daftar secara manual. Tabel routing statik hanya berubah jika di ubah oleh pengguna atau administrator. Sambungan ke jaringan tidak tergantung pada kondisi jaringan. Jadi baik jaringan yang dituju up atau down, route statik akan tetap ada di tabel routing, dan paket / trafik akan di kirim ke tujuan. Biasanya akan ada paling tidak satu (1) buah routing statik untuk sebuah network interface, yang biasanya di buat secara automatis pada saat network interface tersebut di konfigurasi. Tabel routing statik akan terkonfigurasi pada saat booting, dan tidak berubah sampai waktu yang tidak di tentukan. Teknik ini merupakan teknik paling mendasar dalam jaringan komputer. Tentunya di asumsikan bahwa semua workstation tetap bekerja dalam konfigurasi IP address yang benar, jika ada satu workstation yang berubah konfigurasinya, maka memungkinan besar semua komputer di jaringan harus berubah konfigurasinya untuk merefleksikan perubahan topologi jaringan yang ada.

Routing default “usaha terakhir” untuk trafik tujuan yang tidak di ketahui oleh router. Merupakan bentuk routing yang paling sederhana untuk sebuah jaringan yang tersambung dengan satu titik exit / keluaran.
Routing dinamik Routing dynamic (dinamik) menggunakan protokol informasi routing yang khusus yang dapat secara automatis mengupdate tabel routing yang dapat berbicara dengan router lainnya. Sambungan ke jaringan tergantung kepada ke beradaan dan kondisi jaringan. Maka, jika jaringan yang dituju sedang terputus atau mati maka route ke arah jaringan tersebut akan hilang dari tabel dan trafik tidak akan dikirimkan ke tujuan tersebut.
Disini akan di bahas secara umum berbagai protokol routing dan kerjanya. Maupun contoh aplikasinya di Linux menggunakan Quangga yang merupakan turunan dari Zebra yang sangat mirip dengan Cisco. Untuk melihat dengan lebih detail kebutuhan dari sebuah router Internet dapat membacanya di RFC 1716.
Sebagian besar jaringan akan menggunakan kombinasi dari ketiga metoda routing tersebut.
Protokol Routing Yang Banyak Digunakan
Pada dasarnya ada dua (2) keluarga protokol routing, yaitu:
1.Interior Gateway Protocol (IGP), adalah nama generik keluarga protokol yang membantu pertukaran informasi routing antar router dalam sebuah jaringan autonomous, seperti LAN dalam sebuah perusahaan. IGP biasanya digunakan untuk wilayah pada geografis yang terbatas. Contoh IGP adalah RIP dan OSPF.
2.Exterior Gateway Protocol (EGP), adalah nama generik keluarga protokol yang digunakan untuk membantu pertukaran informasi routing antara dua mesin antar jaringan / sistem autonomous. EGP biasanya digunakan antar mesin di Internet untuk saling bertukar tabel routing. Contoh EGP adalah BGP.
Lebih detail dari masing-masing protokol routing ini adalah sebagai berikut:
OSPF - Open Shortest Path First, sebuah Interior Gatesway Routing Protocol yang dikembangkan untuk jaringan berbasis IP yang berdasarkan algoritma untuk mencari jalur terpendek lebih dulu (shortest path first) atau link-state.
Router yang menggunakan algoritma link-state akan mengirimkan informasi routing ke semua node di jaringan dengan menghitung sambungan terpendek (shortest path) ke setiap node berbasis pada topografi dari Internet yang di bentuk oleh setiap node. Setiap node akan mengirimkan bagian dari tabel routing (sambil terus memonitor route ke tujuan network tertentu) yang menjelaskan tentang status dari sambungan dia, router juga akan mengirimkan struktur routing (topografi) lengkap.
Keuntungan menggunakan algoritma sambungan terpendek (shortest path) akan menghasilkan update kecil-kecil yang lebih sering di mana-mana di jaringan. Tabel routing akan lebih cepat convergen, oleh karena akan menghindari masalah looping routing, count-to-infinity (pada saat router terus menerusn menaikan hop count ke arah sebuah jaringan). Hal-hal ini akan menyebabkan jaringan yang tidak stabil.
Keburukan dari algoritma sambungan terpendek (shortest path first) membutuhkan memory dan kekuatan CPU yang besar. Walau pada akhirnya lebih banyak keuntungan yang di peroleh dari pengorbanan yang harus di lakukan. OSPF versi 2, yang di terangkan di RFC 1583, (http://www.isi.edu/in-notes/rfc1583.ps) pada hari ini banyak menggantikan RIP di Internet.
RIP - Routing Information Protocol, adalah sebuah Interior Gateway Protocol. RIP versi 2 (RIP-2) diterangkan di RFC 2453, (http:http://www.isi.edu/in-notes/rfc2453.txt) menerangkan bagaimana router saling bertukar informasi tabel routing menggunakan algoritma distance vector. Dengan RIP, sebuah router tetangga akan secara periodik mengirimkan seluruh table routing yang ada di router tetangga tersebut. RIP menggunakan jumlah hop (hop count) yang di lewati sebagai metric perhitungan untuk biaya jalur (path cost). Path / jalur yang dapat dilewati di batasi 16 hop. RIP menjadi semakin tidak effisien di Internet karena jaringan terus berkembang.Beberapa protokol routing berbasis RIP yang masih digunakan di LAN, antara lain adalah NetWare, AppleTalk, VINES, dan DECnet. IANA mencatat daftar RIP message types (http://www.iana.org/assignments/rip-types).
IGRP - Interior Gateway Routing Protocol, adalah prorietary network protocol yang dikembangkan oleh Cisco System yang dirancang untuk bekerja dalam sebuah Autonomous System. IGRP adalah distance-vector routing protocol yang artinya setiap router akan mengirimkan semua atau sebagian dari tabel routingnya dalam message routing update pada interval tertentu ke setiap router tetangga. Sebuah router akan memilih jalur terbaik antara sumber dan tujuan. Karena setiap jalur mungkin terdiri dari banyak sambungan, system perlu cara untuk membandingkan berbagai sambungan untuk menentukan jalur yang terbaik. Berbeda dengan RIP yang hanya mempunyai satu kriteria (hop saja), IGRP menggunakan lima (5) kriteria untuk menentukan jalur terbaik, yaitu, kecepatan sambungan, delay, panjang paket, beban jaringan dan reliabilitas. Seorang network administrator dapat menentukan bobot dari masing-masing kriteria untuk menentukan jalur terbaiknya.
EIGRP - Enhanced Interior Gateway Routing Protocol, adalah evolusi dari IGRP yang berusaha memenuhi kebutuhan jaringan skala besar dan perubahan di teknologi jaringan sejak diimplementasikannya IGRP. Router yang menggunakan IGRP dapat menggunakan EIGRP karena metrics yang digunakan oleh kedua protokol ini dapat saling translasi. Jika tidak ada route yang baik, EIGRP akan meminta pada tetangga untuk mencari alternatif route. Permintaan ini akan di propagasikan ke router yang lain sampai di peroleh route alternatif. Berbeda dengan IGRP, EIGRP menggunakan Diffusing-Update Algorithm (DUAL) yang di kembangkan di SRI International.
BGP - Border Gateway Protocol versi 4 (BGPv4) adalah exterior gateway protocol yang memungkinkan sekumpulan router dikenal sebagai autonomous system untuk saling berbagi informasi routing. BGP menggunakan protocol distance vector, seperti RIP, tapi tidak seperti protocol distance vector yang lain, tabel BGP juga menyimpan informasi route yang sebenarnya ke jaringan yang dituju. BGP juga mendukung kebijakan routing, yang memungkinkan network administrator untuk mengatur routing berdasarkan masalah keamanan, politik, legal, atau ekonomis bukan hanya sekedar berdasarkan teknis saja. BGP juga mendukung CIDR. BGPv4 di jelaskan di RFC 1771 (http://www.isi.edu/in-notes/rfc1771.txt), sedang RFC 1268 (http://www.isi.edu/in-notes/rfc1268.txt) menjelaskan penggunakan BGP di Internet. Di samping itu, IANA memaintain daftar dari BGP Parameters. (http://www.iana.org/assignments/bgp-parameters)
Autonomous System (AS) adalah sebuah group dari jaringan yang beroperasi di bawah administrasi bersama, yang menggunakan metodologi routing yang sama. Sebuah AS akan menggunakan Internal Gateway Protocol (IGP) dan metrik yang sama untuk membuat route paket dalam AS. AS akan menggunakan External Gateway Protocol (EGP) untuk membuat route paket ke Autonomous System (AS) yang lain.
Alternatif terakhir yang paling sederhana, tabel routing dibuat menggunakan “routing statis”. Contoh sederhana sebuah routing statis adalah penggunaan default gateway pada sebuah mesin. Sehingga tanpa perlu berfikir panjang, sebuah mesin yang ingin menghubungi mesin lain di luar LAN cukup mengirimkan paket-nya ke gateway. Router-router penghubung LAN corporate ke Internet pun biasanya menggunakan statik routing yang mengarahkan semua traffic ke Internet dari LAN untuk di arahkan ke router ISP. Karena hanya satu jalur menuju ISP maka protokol routing jarang dibutuhkan pada konfigurasi seperti ini. Semua mesin & router akan menjaga tabel routingnya masing-masing yang berisi informasi routing terkini. Pada windows, kita dapat melihat isi tabel routing menggunakan perintah
route print
Pada Unix / Linux, menggunakan perintah
netstat –r atau netstat -nr Masing-masing protocol routing mempunyai hubungan yang berbeda-beda dengan keluarga protocol TCP/IP. Message RIP biasanya di bawa oleh datagram UDP yang tentunya berjalan di atas paket IP. Message OSPF biasanya di bawa langsung di atas datagram IP. BGP berbeda sama sekali, message BGP di kirim di atas TCP yang berjalan di atas IP. Umumnya semua buku TCP/IP akan mendiskusikan IP routing dengan cukup detail. Salah satu buku yang baik tentang IP routing adalah Routing in the Internet oleh Christian Huitema. Harganya lumayan sekitar US$50-an.

Pemilihan Protokol Routing
Ada dua kelas protokol routing, yaitu, protokol link state dan protokol distance vector. Perbandingan ke duanya adalah sebagai berikut,
Protokol Link State Protokol Distance Vector ISIS, OSPF RIP, IGRP Informasi yang dikirim: Menjelaskan kondisi sambungan yang tersambung ke router. Alokasi IP network / subnet. Biaya dari link (dihitung kebalikan dari bandwidth).
Informasi yang dikirim: Ke semua jaringan yang di ketahui router, tidak hanya ke jaringan yang router tsb tersambung. Router yang mengadvertise akan menambah metric / hop-count dari router yang dia dengar. Maksimum hop-count 15.
Keuntungan: Lebih scalability, tidak ada hop count, mendukung VLSM dan CIDR, hirarki dan memungkinkan aggregasi. Lebih cepat konvergen, secara langsung membanjirkan link state ke jaringan, dan lebih sedikit over head untuk pertukaran informasi routing. Memungkinkan load balancing melalui link cost.
Keuntungan: Konfigurasi sederhana.
Kerugian: Lebih susah di konfigurasi dan di troubleshoot.

Kerugian: Tidak memperhitungkan kecepatan link. Lambat konvergensi. Lebih banyak pertukaran dan maintenance tabel routing. Timer hold-down / flush memperlambat konvergensi menjadi menit. Ada kemungkinan routing loop temporer. Tidak terlalu scalable, kurang hirarki. Classful, kurang kemampuan VLSM dan CIDR. Tergantung dari keperluan / kompleksitas jaringan, protokol yang digunakan mungkin dapat berbeda-beda. Tentunya yang paling sederhana adalah menggunakan routing statis & tidak menggunakan protokol sama sekali. Pada Interior Gateway Protocol (IGP), ada beberapa kriteria dalam pemilihan protokol routing adalah sebagai berikut:

RIPv1 RIPv2 IGRP OSPF EIGRP Sambungan redundan X X V V V Sambungan paralel X X V V V VLSM X V X V V IP address diskontinyu X
V X V V
EIGRP pada dasarnya proprietary dari Cisco, sementara OSPF merupakan standard terbuka Internet, jadi lebih mudah untuk di implementasikan di jaringan yang menggunakan router non-Cisco.
VLSM adalah Variable Length Subnet Masking yang memungkinkan kita melakukan masking IP address tidak mengikuti standard masking konvensional.

Routing Sederhana
Routing dalam artian yang sederhana berarti melewatkan paket IP menuju sasaran. Alat yang berfungsi melakukan routing paket biasanya disebut sebagai router atau gateway. Agar mampu melewatkan paket data antar jaringan, maka router minimal harus memiliki dua buah network interface.
Proses routing dilakukan secara hop by hop. IP tidak mengetahui jalur keseluruhan menuju tujuan setiap paket. IP routing hanya menyediakan IP address dari router berikutnya (next hop router) yang menurutnya “lebih dekat” ke host tujuan.



Sebuah mesin / komputer hanya dapat mengirim paket pada divais lain yang terhubung kedalam satu jaringan fisik yang sama. Paket dari IP addressA1 dengan tujuan IP address C1 diforward melalui router G1 dan G2. Host A1 pertama kali mengirim paket ke router G1 (karena G1 terhubung ke tempat dimana host A1 berada). Kemudian router G1 mengirimkan paket ke router G2 melalui network B. Dan akhirnya G2 yang juga terhubung ke network C langsung menyampaikan paket ke address tujuan, host C1.
Perhatikan dalam setiap paket yang dikirim IP source A1 dan IP destination C1 tetap & tidak berubah. Tapi MAC address source dan MAC address tujuan akan berubah-ubah dalam setiap paket tergantung mesin yang merelay paket tersebut.
Jika kita perhatikan baik-baik, maka keberadaan Address Resolution Protocol (ARP) sangat penting untuk dapat memperoleh tabel MAC & IP address.
Algoritma routing untuk host
Proses routing yang dilakukan oleh host cukup sederhana. Jika host tujuan terletak di jaringan yang sama/terhubung langsung, IP datagram dikirim langsung ke tujuan. Jika tidak, IP datagram dikirim ke default router. Router ini yang akan mengatur pengiriman IP selanjutnya, hingga sampai ke tujuannya.
Konfigurasi sederhana ini dapat kita lihat di konfigurasi networking dari Windows, yang kita cukup memasukan sebuah IP address gateway yang mengarahkan IP paket ke Internet.


Algoritma routing untuk router
Dalam menentukan pilihan arah pelewatan IP datagram, router berkonsultasi dengan tabel routing yang dimilikinya berikut ini ialah contoh dari sebuah tabel routing.

[root@gate ~]# netstat -nr Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 202.100.10.32 0.0.0.0 255.255.255.240 U 0 0 0 wlan0 192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1 192.168.11.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 192.168.10.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth1 44.132.0.0 192.168.0.1 255.255.0.0 UG 0 0 0 eth1 0.0.0.0 202.100.10.33 0.0.0.0 UG 0 0 0 wlan0 [root@gate ~]#

Dari hasil perintah netstat –nr diatas terlihat tabel routing ini berisi:
1.IP address tujuan 2.IP address next hop router (gateway) 3.Flag. Flag ini menyatakan jenis routing. 4.Spesifikasi Network interface tempat datagram dilewatkan.
Dalam proses meneruskan paket ke tujuan, IP router melakukan hal hal berikut :
1.mencari di tabel routing, entry yang cocok dengan IP address tujuan. Jika ditemukan, paket akan di kirim ke next hop router atau interface yang terhubung langsung dengannya (directly connected interface) 2.mencari di tabel routing, entry yang cocok dengan alamat network dari network tujuan. Jika ditemukan, paket dikirim ke next hop router tersebut. 3.Mencari di tabel routing, entry yang bertanda default. Jika tidak ada alternatif routing yang lain, paket akan dikirim ke router default.
Router default / gateway biasanya dapat di identifikasi dengan router dengan NetMask 0.0.0.0 dan IP tujuan 0.0.0.0. Tabel routing ini dihasilkan oleh program protokol routing.

Teknik Mengatasi Kelangkaan IP address
Ada beberapa teknik dasar yang dapat digunakan untuk mengatasi kelangkaan IP addressm antara lain adalah:
1.Alokasi IP address yang lebih kreatif, menggunakan: a.Teknik Variable Length Subnet Mask (VLSM). b.Menggunakan alokasi blok IP address yang tidak permanen, seperti menggunankan Dynamic Host Configuration Protocol (DHCP). c.Penggabungan beberapa kelas IP address (biasanya kelas C).
2.Menggunakan Classless Interdomain Routing (CIDR), di definisikan dalam RFC 1519.
3.Menggunakan Private IP adddress dan Network Address Translation (NAT). a.Private IP address di definisikan di RFC 1918. b.Network Address Translation (NAT) di definisikan di RFC 1631.
4.Menggunakan IP v6 yang memungkinkan alokasi IP address yang jauh lebih besar.

Variable Length Subnet Mask
Kemampuan untuk mengkonfigurasi sebuah jaringan dengan mask yang berbeda-beda. Hal ini membuat pembagian jaringan lebih fleksibel menjadi beberapa subnet walaupun tetap menjaga jumlah mesin yang cukup di masing-masing subnet.
Contoh pembagian kelas address, sebuah address kelas C dengan mask 255.255.255.x, dapat dibagi menjadi:
255.255.255.252 (1111 1100) 64 subnet dengan 4 host masing-masing. 255.255.255.248 (1111 1000) 32 subnet dengan 8 host masing-masing. 255.255.255.240 (1111 0000) 16 subnet dengan 16 host masing-masing. 255.255.255.224 (1110 0000) 8 subnet dengan 32 host masing-masing. 255.255.255.192 (1100 0000) 4 subnet dengan 64 host masing-masing. 255.255.255.128 (1000 0000) 2 subnet dengan 128 host masing-masing.
Jika kita ingin membagi sebuah kelas menjadi 3 subnet, dengan sebuah subnet 100 host dan dua subnet dengan 50 host, maka VLSM akan dibutuhkan.
RIPv1 dan IGRP tidak dapat menangani VLSM. OSPF, EIGRP, ISIS, dan RIPv2 dapat menangani VLSM. Classless Inter Domain Routing (CIDR)
IP network di representasikan dengan <prefix, length> atau NET_ID, HOST_ID. Tidak ada lagi kelas IP address tradisional A/B/C. Lebih merepresentasikan hirarki arsitektur Internet, dimana setiap domain akan mengambil IP address-nya dari tingkat / hirarki yang lebih tinggi.
Memungkinkan beberapa kelas / blok IP address untuk di kumpulkan menjadi satu kumpulan, CIDR blok atau Supernet. Hal ini dapat di identifikasi dengan mudah pada kelas IP address yang mempunyai prefix (atau NET_ID) yang pendek, lebih pendek dari network mask yang normal. Memungkinkan beberapa IP network untuk dijadikan satu dalam sebuah pemberitahuan routing.
Contoh <198.32.0.0/16> merupakan network kelas C yang ilegal. <198.32.0.0/26> merupakan supernet karena netmask 16 lebih kecil dari 24, yang merupakan panjang netmask normalnya. Network 198.32.1.0/20 dapat di identifikasi sebagai jaringan yang lebih spesifik dengan panjang prefix / NET_ID 20.
Keuntungan CIDR, terutama lebih mengarah pada jaringan yang lebih hirarki dan berorientasi geografis. Lebih efisien dalam propagasi & strategi routing. Sangat menghemat bandwidth dalam mempropagasikan route. Aggregasi memungkinkan ISP untuk memberitahukan address di bawahnya dalam satu kalimat saja, daripada banyak kalimat.
Kemungkinan masalah dengan CIDR. CIDR hanya akan bekerja jika setiap orang / pelanggan tersambung ke provider-nya melalui satu sambungan saja (single homing) dan mengambil IP address dari prefix / NET_ID provider. Konfigurasi ini akan sulit bagi pelanggan yang tersambung pada lebih dari provider (multi-homing), atau pelanggan yang sudah mempunyai IP address sendiri.


Aturan Longest Match Routing
Routing selalu dilakukan berdasarkan kecocokan yang paling panjang (longest match). Maksudnya, routing akan selalu memilih netmask yang terpanjang dari dua prefix yang berbeda panjangnya untuk sebuah network yang sama. Sebuah tujuan tersambung ke banyak domain harus selalu secara explisit memberitahukan routing se-eksplisit mungkin, tidak dalam bentuk aggregat.
Jika ada dua (2) pilihan routing ke arah mesin 198.32.1.1, melalui Domain A dengan masking 16 bit 198.32.1.0/16 dan melalui Domain B dengan masking 24 bit 198.32.1.0/24. Maka yang akan di pilih adalah masking terpanjang, dalam hal ini jalur 2 untuk network 198.32.1.0 dengan 24 bit masking.

Routing Loop
Loop routing terjadi jika traffic berjalan bolak balik antar jaringan dan tidak pernah mencapai tujuannya. Cara mengatasinya:
Tidak boleh mengikuti route yang tidak spesifik untuk tujuan yang match dengan salah satu route aggregat sendiri. Buang semua paket yang di arahkan ke tujuan yang tidak dapat dihubungi yang tidak sespesifik route aggregat. Perhatikan adanya “Black hole” dimana traffic mencapai dan berhenti pada tujuan yang sebetulnya bukan yang dituju, tapi dari situ tidak dapat di forward kemana-mana lagi.



Skenario Multihoming
Multihoming terjadi jika kita mempunyai beberapa saluran ke jaringan lain. Ada beberapa skenario multihoming yang sering digunakan yang akan di bahas.
Address Dari Sebuah Provider Yang Sama
Advertising aggregate akan menjadi sedikit tricky. Tidak boleh ada yang meng-aggregate route orang lain, kecuali jika
Pihak yang meng-aggregat adalah superset dari pihak yang di aggregat. Kedua pihak telah sepakat secara penah.
Contoh, subnet 198.24.0.0/18 akan membuat blackhole bagi StubNet, karena trafik akan mengikuti longest match dan akhirnya ISP2 tidak akan memiliki route sambungan ke StubNet.



Dalam hal ini, aggregat secara explisit harus di advertise ke ISP1 dan ISP2. Jika ISP1 hanya advertise aggregate yang tidak spesifik dari 198.24.0.0/13, maka semua trafik ke arah JamesNet dan LindaNet akan selalu mengikuti longest match melalui ISP2.



Address Di ambil Dari Provider Yang Berbeda
Dalam contoh ini, setiap provider akan dapat mengaggregat address-nya masing-masing tanpa perlu mendaftarkan range yang spesifik dari provider yang lain.
Kerugiannya, Route backup untuk organisasi multihomed tidak di maintain. Masing-masoing hanya akan advertise block-nya saja, tapi tidak dari blok ISP yang lain. Sebagian dari jaringan akan terputus jika salah satu ISP putus.



Address Di Ambil Tidak Dari Provider Manapun
Jika address tidak di ambil dari ISP1, ISP2 maupun NAP, maka semua ISP harus mengadvertise aggregat spesifik ini di atas address mereka.
Kerugiannya, hanya akan menambah besarnya tabel routing di semua router.




Autonomous System (AS)
Autonomous System (AS) adalah sekumpulan router yang mempunyai kebijakan routing yang sama, di jalankan di bawah sebuah administrasi teknis. Secara praktisnya,
Sekumpulan IGP (Interior Gateway Protocol) akan bekerjasama untuk membangun interior routing. Setiap AS memperoleh nomor identifikasinya, AS Number, yang dialokasikan oleh Internet Registry. Untuk percobaan kita juga mengenal Private AS Number. Informasi routing antar AS di pertukarkan melalui Exterior Gateway Protocol (EGP) seperti BGPv4.


Stub AS
Merupakan konfigurasi paling sederhana dari sebuah jaringan dimana sebuah autonomous system (AS) mencapai jaringan diluar domain-nya melalui hanya satu pintu yang tersambung ke Provider. Istilah teknis-nya adalah Single Homed AS atau Stub AS. Konfigurasi ini berkonsekuensi,
Semua traffic default akan dikirimkan ke provider, oleh karena itu tidak ada kebutuhan untuk memperoleh informasi routing dari provider. Single homed AS tetap mempunyai kebutuhan untuk memberitahukan route yang ada di provider melalui beberapa alternatif cara, antara lain.
Melalui entry statik – baik untuk sekumpulan kecil routing yang di aggregat. Melalui protokol IGP – biasanya stub AS akan sangat sulit memperoleh AS number karena kebijakan routing cenderung untuk mengikuti kebijakan routing provider oleh karena itu tidak memerlukan AS number yang unik. Melalui protokol BGP – provider dapat memberikan pelanggan private AS number (dari 65412 sampai dengan 65535).



Multihomed Nontransit AS
Konfigurasi multihomed terjadi jika kita mempunyai lebih dari satu pintu ke dunia luar. Beberapa konsekuensi kebijakan non-transit adalah: Kita tidak menginginkan adanya trafik transit melalui AS yang kita kontrol. Tidak ada IP address source atau destination dari luar AS. AS tidak akan mengadvertise route yang dia pelajari dari AS lain. Trafik transit sebetulnya masih dapat di paksakan melalui routing default atau routing statik. Tidak memerlukan BGPv4.


Multihomed Transit AS
Multihomed karena mempunyai lebih dari satu sambungan ke dunia luar. Transit memungkinkan trafik dilakukan melalui jaringan AS yang kita kontrol. Beberapa konsekuensi multihomed transit AS adalah,
Menggunakan BGP di dalam As sebagai pipa untuk mempertukarkan update BGP (IBGP). Router yang menjalankan IBGP di kenal sebagai transit router. Router yang menjalankan EBGP di kenal sebagai border router. Akan meng-advertise route yang dipelajari dari AS yang lain.


Implementasi Routing Menggunakan Quangga

Pasti sebagian besar pembaca pernah mendengar nama besar Cisco atau 3COM untuk peralatan jaringan yang baik. Tapi bagaimana dengan Linux? Linux pada hari ini sangat baik untuk server, sedikit yang menyadari bahwa Linux mempunyai potensi yang sangat baik sebagai router. Dengan GNU Zebra atau turunan yang terbarunya Quangga, sebuah mesin Linux dapat menjadi router yang mendukung routing protokol TCP/IP, seperti, RIPv1, RIPv2, RIPng, OSPFv2, OSPFv3, BGPv4, dan BGPv4+.
Project Zebra di mulai tahun 1996, berasal dari Kunihiro Ishiguro yang bekerja di NIS, sebuah ISP yang merupakan kerjasama antara British Telecom dan Marubeni. Bekerja di ISP, Ishiguro menyadari kebutuhan software routing yang baik. Pada saat itu Ishiguro bertemuYoshinari Yoshikawa. Yoshikawa mempunyai visi yang sama dengan Ishiguro, akhirnya mereka bersatu untuk secara bahu membahu membangun software routing engine pertama di dunia yang berbasis pada GNU General Public License.
Entitas ini di sebut Zebra Project, yang terdiri atas keahlian bisnis IP Infusion yang digabung dengan keahlian teknis beberapa engineer networking dunia yang terbaik dan komit untuk memberikan free software routing engine yang berkualitas baik.


Membuat Sendiri Router Yang Baik
Jika kita pernah membuat sebuah firewall, sebetulnya kita sudah membuat sebuah router yang sederhana. Pada kesempatan ini kita akan membuat sebuah router Linux yang dapat berkomunikasi menggunakan protokol routing dinamik. Protokol ini memungkinkan sebuah router untuk bicara satu sama lain dan berbagi informasi tentang jalur-jalur yang ada di jaringan. Hal ini sangat penting di jaringan yang besar seperti Internet dimana routing statik tidak mungkin digunakan.
Contoh, walaupun hanya rangkuman dari iunformasi routing saja yang dikirim, tabel Border Gateway Protocol (BGP) di Internet akan berisi lebih dari 100,000 line / kalimat. Di tambah dengan kecepatan perubahan yang terjadi di Internet, maka penggunakan routing statik di Internet sangat mustahil. Kebutuhan akan routing dynamic sangat nyata, bahkan untuk jaringan yang lebih kecil dari Internet, seperti jaringan corporate sangat terasa.
BGP, adalah External Gateway Protocol (EGP), yang merupakan tulang punggung routing di Internet. Untuk jaringan yang kecil, Open Shortest Path First (OSPF) yang merupakan Internal Gateway Protocol (EGP) adalah salah satu yang banyak digunakan. GNU Zebra dan Quangga adalah software open source yang memungkinkan kita menjalankan BGP dan / atau OSPF di Linux.
Menginstalasi Zebra
Versi terakhir Zebra dapat di ambil dari zebra.org. Sebetulnya ada juga paket zebra yang spesifik untuk distribusi tertentu dari berbagai sumber di Internet, termasuk RedHat dan Debian. Jika anda menginstall dari source code, maka prosedur instalasi standard dapat digunakan. Setelah paket di ekstrak, jalankan:
./configure make make install
Script konfigurasi akan mendetek secara automatis konfigurasi IP address dan routing yang ada dan secara automatis akan mendukung konfigurasi IP yang ada. Kondisi jaringan yang banyak digunakan pada hari ini umumnya berbasis IPv4, tapi bagi pengguna IPv6 Zebra telah mendukung pula.
Jika kita menginstalsi program routing, kita mungkin perlu menambahkan beberapa baris pada /etc/services. Daemon Zebra beroperasi menggunakan virtual terminal line (VTY), sistem yang kita gunakan perlu mengetahui dimana port yang digunakan. Untuk itu, kita perlu menambahkan pada /etc/services berikut
zebrasrv 2600/tcp # zebra service zebra 2601/tcp # zebra vty ripd 2602/tcp # RIPd vty ripngd 2603/tcp # RIPngd vty ospfd 2604/tcp # OSPFd vty bgpd 2605/tcp # BGPd vty ospf6d 2606/tcp # OSPF6d vty

Menginstalasi Quagga
Bagi anda yang menggunakan RedHat Fedora Core 4, instalasi Quagga dapat secara mudah dilakukan melalui GUI pada System Settings  Server 
Update dari source code quagga dapat di ambil dari http://www.quagga.net. Binary / RPM bagi RedHat Fedora Core 4 dapat di ambil dari http://www.quagga.net/download/binaries/fedora/4/. Teknik instalasi RPM sangat standard menggunakan perintah
# rpm –ivh nama-paket.rpm


Konfigurasi Quagga
Jika kita familiar dengan sistem operasi Cisco IOS, seharusnya kita tidak terlalu masalah untuk membuat Zebra jalan dalam waktu singkat. Setiap sesi Zebra akan menggunakan VTY untuk memungkinkan konfigurasi dinamik melalui telnet. Sehingga jika kita ingin mengkonfigurasi OSPF, kita cukup telnet ke Linux port 2604. Untuk mengubah tabel routing di kernel atau untuk mengkonfigurasi redistribuasi antara protokol routing, kita harus telnet ke port 2601. Pada dasarnya daemon Zebra berfungsi sebagai manager yang menangani komunikasi antar daemon dengan sistem itu sendiri.
Mari kita lihat bagaimana cara membuat OSPF dan BGP beroperasi di server. Zebra pada dasarnya menggunakan file konfigurasi berbentuk text. Untuk router OSPF / BGP file konfigurasi yang digunakan adalah zebra.conf, ospfd.conf dan bgpd.conf.
Isi file zebra.conf, adalah sebagai berikut
! Zebra configuration saved from vty ! 2002/02/28 01:46:12 ! hostname LinuxRouter password zebra enable password z3bRa log file /var/log/zebra/zebra.log ! interface eth0
description Interface to External Network
ip address 10.0.0.1/24
! interface eth1
description Interface to Internal Network
ip address 192.168.66.1/24

secara umum konfigurasi minimal / sederhana dari zebra.conf cukup menjelaskan. Zebra / Quangga dapat menggunakan banyak tipe network interface, baik itu Ethernet, ISDN dll. asal dikenal oleh kernel.
Subnet masking dilakukan dengan network bit (contoh /24) berbeda dengan full mask (contoh 255.255.255.0). Perhatikan ada dua jenis password, satu untuk user mode satu lagi untuk privileged mode. Hal ini sangat penting untuk memberikan akses pada pengguna nonadministrator, dan sangat penting jika kita membuat router server atau looking glass.
Seorang BGP admin akan mengatakan betapa pentingnya looking glass ini untuk melakukan perbaikan routing, karena looking glass mungkinkan kita melihat route yang ada di luar AS kita sendiri. AS singkatan dari Autonomous System, pada dasarnya group dari peralatan yang berada dalam kebijakan atau administrasi yang sama. BGP Routing dilakukan oleh AS Number. AS number di kontrol oleh Network Information Center, seperti ARIN, APNIC, RIPE NCC dll.
Langkah selanjutnya untuk memulai program Zebra, kita dapat menggunakan perintah berikut:
/usr/sbin/zebra –dk /usr/sbin/ospfd –d /usr/sbin/bgpd –d
Perintah pertama adalah untuk menjalankan zebra. Zebra akan mengupdate tabel routing di kernel. Switch –dk memberitahukan program untuk beroperasi sebagai daemon (“d”), dan akan beroperasi di belakang layar. Switch “k” memberitahukan Zebra untuk “keep” menyimpan semua tabel routing yang telah di konfigurasi sebelumnya. Hal ini sangat penting jika kita tidak ingin agar tabel konfigurasi di Zebra terhapus secara tidak sengaja.
Biasanya, route dan interface di konfigurasi menggunakan kombinasi peintah ifconfig dan route. Zebra pada dasarnya mengubah secara keseluruhan bentuk route management-nya.
Mengkonfigurasi OSPF
Untuk memulai konfigurasi OSPF kita dapat telnet ke port 2604. Untuk memasuki privileged mode dapat dilakukan dengan menulis “enable” dan memasukan password privileged mode. Mode konfigurasi di akses melalui configuration terminal command. Zebra / Quagga juga mau menerima singkatan yang sama dengan Cisco. Juga menerima perintah “list” dan “?”, yang akan memberikan daftar perintah yang ada dan penjelasan singkat.
Anda juga akan suka melihat “tab completion” / tombol tab untuk melengkapi perintah juga di dukung. Feature ini sangat baik, terutama jika anda sudah biasa dengan itu. Selanjutnya kita akan memberitahukan daemon tentang jaringan mana yang akan di beritahukan melalui OSPF, termasuk pemberitahuan area-nya. OSPF mendukung banyak area untuk scalability.
Untuk memasuki mode konfigurasi OSPF dapat dilakukan dengan menulis router ospf. Dengan perintah network 192.168.66.0/24 area 0, memberitahukan router bahwa kita akan menggunakan OSPF untuk memberitahukan keberadaan network 192.168.66.9 dengan subnet mask 255.255.255.0.
Dalam contoh ini, kita akan membuat interface eth0 menjadi interface passive sehingga routing update yang ada tidak akan di keluarkan dari interface ini. Hal ini penting untuk proses testing jika router lain di arah eth0 kemungkinan akan mendengarkan. Proses membuat passive interface dapat dilakukan menggunakan perintah passive-interface eth0. Jika kita telah membuat perubahan, keluar dari mode konfigurasi dengan menulis “end” dan simpan hasilnya dengan perintah “write file”. Tampak disini adalah cuplikan dari apa yang kita lakukan.

labrat:~# telnet 0 2604 Trying 0.0.0.0... Connected to 0. Escape character is '^]'.
Hello, this is zebra (version 0.84b) Copyright 1996-2000 Kunihiro Ishiguro
User Access Verification
Password: ospfd> enable Password: ospfd# configure terminal ospfd(config)# router ospf ospfd(config-router)# network 192.168.66.0/24 area 0 ospfd(config-router)# passive-interface eth0 ospfd(config-router)# end ospfd# write file Configuration saved to /etc/zebra/ospfd.conf
Ingat bahwa agar OSPF atau BGP dapat beroperasi di atas sebuah interface, interface tersebut harus nyala (“up”). Untuk secara manual menyalakan sebuah interface, login ke port 2601, jalankan perintah “no shut” pada interface yang bersangkutan.
Konfigurasi BGP
Mengkonfigurasi BGP tidak berbeda jauh dengan OSPF. Untuk memulai, lakukan telnet ke port 2605.
Setelah menjalankan perintah “configure terminal”, masuk ke mode konfigurasi BGP dengan menuliskan “router bgp <AS#>”. BGP menggunakan AS number untuk mebangun hubungan dengan tetangganya. Dalam lingkungan testing, kita harus menggunakan AS number private, dalam range 64512 sampai 65534.
Jaringan yang akan di advertise oleh BGP harus di masukan dalam perintah network. Tidak ada perintah “area” dalam BGP, oleh karena itu network command kita hanya “network 192.168.66.0/24”. Berbeda dengan OSPF, tetangga BGP harus secara statis di set. Kita dapat menset-nya melalui perintah berikut: “neighbor <neighbor IP> remote-as <remote AS #>”. Berikut adalah contoh cuplikan yang akan terjadi:

labrat:~# telnet 0 2605 Trying 0.0.0.0... Connected to 0. Escape character is '^]'.
Hello, this is zebra (version 0.84b) Copyright 1996-2000 Kunihiro Ishiguro
User Access Verification
Password: bgpd> enable Password: bgpd# configure terminal bgpd(config)# router bgp 65530 bgpd(config-router)# network 192.168.66.0/24 bgpd(config-router)# neighbor 10.0.0.5 remote-as 65531 bgpd(config-router)# end bgpd# write file Configuration saved to /etc/zebra/bgpd.conf
Ada banyak option yang dapat dikembangkan dari OSPF dan BGP, ada baiknya kita mempelajari berbagai manual dan dokumentasi tentang routing sebelum memasukannya ke dalam lingkungan produksi.

Reference

Tidak ada komentar:

Posting Komentar