Friday, March 30, 2007



BGP-Peer, Memisahkan Routing dan Bandwidth Management


Dalam artikel ini, akan dibahas cara untuk melakukan BGP-Peer ke BGP Router Mikrotik Indonesia untuk melakukan pemisahan gateway untuk koneksi internet internasional dan OpenIXP (NICE). Setelah pemisahan koneksi ini dilakukan, selanjutnya akan dibuat queue untuk tiap klien, yang bisa membatasi penggunaan untuk bandwidth internasional dan OpenIXP (NICE).

Beberapa asumsi yang akan dipakai untuk kasus kali ini adalah :

  1. Router memiliki 3 buah interface, yang masing-masing terhubung ke gateway internasional, gateway OpenIXP (NICE), dan ke network klien.
  2. Untuk koneksi ke OpenIXP (NICE), router milik Anda harus memiliki IP publik.
  3. Untuk klien, akan menggunakan IP private, sehingga akan dilakukan NAT (network address translation)
  4. Mikrotik RouterOS Anda menggunakan versi 2.9.39 atau yang lebih baru, dan mengaktifkan paket routing-test

Jika Anda menghadapi kondisi yang tidak sesuai dengan parameter di atas, harus dilakukan penyesuaian.

PENGATURAN DASAR

Diagram network dan konfigurasi IP Address yang digunakan pada contoh ini adalah seperti gambar berikut ini.

Untuk mempermudah pemberian contoh, kami mengupdate nama masing-masing interface sesuai dengan tugasnya masing-masing.

[admin@MikroTik] > /in pr
Flags: X - disabled, D - dynamic, R - running
# NAME TYPE RX-RATE TX-RATE MTU
0 R ether1-intl ether 0 0 1500
1 R ether2-iix ether 0 0 1500
2 R ether3-client ether 0 0 1500

Konfigurasi IP Address sesuai dengan contoh berikut ini. Sesuaikanlah dengan IP Address yang Anda gunakan. Dalam contoh ini, IP Address yang terhubung ke OpenIXP (NICE) menggunakan IP 202.65.113.130/29, terpasang pada interface ether2-iix dan gatewaynya adalah 202.65.113.129. Sedangkan untuk koneksi ke internasional menggunakan IP Address 69.1.1.2/30 pada interface ether1-intl, dengan gateway 69.1.1.1.

Untuk klien, akan menggunakan blok IP 192.168.1.0/24, dan IP Address 192.168.1.1 difungsikan sebagai gateway dan dipasang pada ether3-client. Klien dapat menggunakan IP Address 192.168.1-2 hingga 192.168.1.254 dengan subnet mask 255.255.255.0.

Jangan lupa melakukan konfigurasi DNS server pada router, dan mengaktifkan fitur "allow remote request".

Karena klien menggunakan IP private, maka kita harus melakukan fungsi src-nat untuk kedua jalur gateway.

[admin@MikroTik] > /ip fi nat pr
Flags: X - disabled, I - invalid, D - dynamic
0 chain=srcnat out-interface=ether1-intl action=masquerade
1 chain=srcnat out-interface=ether2-iix action=masquerade

CEK: Pastikan semua konfigurasi telah berfungsi baik. Buatlah default route pada router secara bergantian ke IP gateway OpenIXP (NICE) dan internasional. Lakukanlah ping (baik dari router maupun dari klien) ke luar network Anda secara bergantian.

PENGATURAN BGP-PEER

Pertama-tama, pastikan bahwa Anda menggunakan gateway internasional Anda sebagai default route, dalam contoh ini adalah 69.1.1.1. Kemudian Anda perlu membuat sebuah static route ke mesin BGP Mikrotik Indonesia, yaitu IP 202.65.120.250.

Lalu periksalah apakah Anda bisa melakukan ping ke 202.65.120.250. Periksalah juga dengan traceroute dari router, apakah jalur pencapaian ke IP 202.65.120.250 telah melalui jalur koneksi yang diperuntukkan bagi trafik OpenIXP (NICE), dan bukan melalui jalur internasional.

Kemudian, Anda harus mendaftarkan IP Address Anda di website Mikrotik Indonesia untuk mengaktifkan layanan BGP-Peer ini. Aktivasi bisa dilakukan di halaman ini. IP Address yang bisa Anda daftarkan hanyalah IP Address yang bisa di-ping dari mesin kami, dan juga harus sudah diadvertise di OIXP. Aturan selengkapnya mengenai penggunaan layanan ini bisa dibaca di halaman ini. Setelah Anda mendaftarkan IP Address Anda, jika semua syarat sudah terpenuhi, Anda akan diinformasikan bahwa aktivasi layanan BGP-Peer Anda sudah sukses. Selanjutnya Anda bisa melihat status layanan BGP Anda di halaman ini.

BGP Router Mikrotik Indonesia akan menggunakan IP Address 202.65.120.250 dan AS Number 64888, dan Router Anda akan menjadi BGP Peer dengan menggunakan AS Number 64666.

Berikutnya adalah langkah-langkah yang harus Anda lakukan pada router Anda. Pertama-tama Anda harus membuat beberapa prefix-list untuk BGP ini. Untuk prefix yang akan Anda terima, untuk alasan keamanan dan hematnya agregasi routing, maka Anda perlu melakukan setting untuk menerima hanya prefix 8 hingga 24. Prefix 0 sampai 7, dan 25 sampai 32 akan Anda blok. Prefix ini kita berinama prefix-in. Untuk prefix-in yang accept, harap diperhatikan bahwa Anda perlu menentukan gateway untuk informasi routing ini, yaitu IP gateway OpenIXP (NICE) Anda. Dalam contoh ini adalah 202.65.113.129. Gantilah IP ini sesuai dengan gateway OpenIXP (NICE) Anda.

Sedangkan karena sifat BGP-Peer ini hanya Anda menerima informasi routing saja, di mana Anda tidak dapat melakukan advertisement, maka harus dilakukan blok untuk semua prefix yang dikirimkan, dan kita beri nama prefix-out.

Berikut ini adalah konfigurasi prefix list yang telah dibuat.

Tahap selanjutnya adalah konfigurasi BGP instance. Yang perlu di-set di sini hanyalah AS Number Anda, pada kasus ini kita menggunakan AS Number private, yaitu 64666.

Dan langkah terakhir pada konfigurasi BGP ini adalah konfigurasi peer. AS Number BGP Router Mikrotik Indonesia adalah 64888 dan IP Addressnya adalah 202.65.120.250. Karena kita sulit menentukan berapa hop jarak BGP Router Mikrotik Indonesia dengan Router Anda, maka kita melakukan konfigurasi TTL menjadi 255. Jangan lupa mengatur rule prefix-in dan prefix-out sesuai dengan prefix yang telah kita buat sebelumnya.

Setelah langkah ini, seharusnya BGP Router Mikrotik sudah dapat terkoneksi dengan Router Anda. Koneksi ini ditandai dengan status peer yang menjadi "established" dan akan dicantumkan pula jumlah informasi routing yang diterima. Anda juga bisa mengecek status peer ini dari sisi BGP Router Mikrotik Indonesia dengan melihat pada halaman ini.

Cek pula pada bagian IP Route, seharusnya sudah diterima ribuan informasi routing, dan pastikan bahwa gatewaynya sesuai dengan gateway OpenIXP (NICE) Anda, dan berada pada interface yang benar, dalam contoh ini adalah "ether2-iix".

Jika semua sudah berjalan, pastikan bahwa penggunaan 2 buah gateway ini sudah sukses dengan cara melakukan tracerute dari router ataupun dari laptop ke beberapa IP Address baik yang berada di internasional maupun yang berada di jaringan OpenIXP (NICE).

C:>tracert www.yahoo.com

Tracing route to www.yahoo-ht2.akadns.net
[209.131.36.158]
over a maximum of 30 hops:

1 <1 ms <1 ms <1 ms 192.168.1.1
2 1 ms <1 ms <1 ms 69.1.1.1
3 222 ms 223 ms 223 ms 157.130.195.13
4 222 ms 289 ms 222 ms 152.63.54.118
5 226 ms 242 ms ^C

C:>tracert www.cbn.net.id

Tracing route to web.cbn.net.id [210.210.145.202]
over a maximum of 30 hops:

1 <1 ms <1 ms <1 ms 192.168.1.1
2 1 ms <1 ms 1 ms 202.65.113.129
3 11 ms 12 ms 127 ms 218.100.27.218
4 21 ms 41 ms 21 ms 218.100.27.165
5 22 ms 24 ms ^C

PENGATURAN BANDWIDTH MANAGEMENT

Setelah semua routing dan BGP Peer berjalan dengan baik, yang perlu kita lakukan sekarang adalah mengkonfigurasi bandwidth management. Untuk contoh ini kita akan menggunakan mangle dan queue tree.

Karena network klien menggunakan IP private, maka kita perlu melakukan connection tracking pada mangle. Pastikan bahwa Anda telah mengaktifkan connection tracking pada router Anda.

Untuk masing-masing trafik, lokal dan internasional, kita membuat sebuah rule mangle connection. Dari connection mark tersebut kemudian kita membuat packet-mark untuk masing-masing trafik.

[admin@MikroTik] > /ip firewall mangle print
Flags: X - disabled, I - invalid, D - dynamic
0 chain=forward out-interface=ether1-intl
src-address=192.168.1.2 action=mark-connection
new-connection-mark=conn-intl
passthrough=yes

1 chain=forward out-interface=ether2-iix
src-address=192.168.1.2 action=mark-connection
new-connection-mark=conn-nice
passthrough=yes

2 chain=forward connection-mark=conn-intl
action=mark-packet
new-packet-mark=packet-intl passthrough=yes

3 chain=forward connection-mark=conn-nice
action=mark-packet new-packet-mark=packet-nice
passthrough=yes

Untuk setiap klien, Anda harus membuat rule seperti di atas, sesuai dengan IP Address yang digunakan oleh klien.

Langkah berikutnya adalah membuat queue tree rule. Kita akan membutuhkan 4 buah rule, untuk membedakan upstream / downstream untuk koneksi internasional dan lokal.

[admin@MikroTik] > queue tree print
Flags: X - disabled, I - invalid
0 name="intl-down" parent=ether3-client
packet-mark=packet-intl limit-at=0
queue=default priority=8 max-limit=128000
burst-limit=0 burst-threshold=0 burst-time=0s

1 name="intl-up" parent=ether1-intl
packet-mark=packet-intl limit-at=0
queue=default priority=8 max-limit=32000
burst-limit=0 burst-threshold=0 burst-time=0s

2 name="nice-up" parent=ether2-iix
packet-mark=packet-nice limit-at=0
queue=default priority=8 max-limit=256000
burst-limit=0 burst-threshold=0 burst-time=0s

3 name="nice-down" parent=ether3-client
packet-mark=packet-nice limit-at=0
queue=default priority=8 max-limit=1024000
burst-limit=0 burst-threshold=0 burst-time=0s

Friday, February 23, 2007

Instalasi BIND

Anda bisa mendapatkan softare BIND yang paling baru dari website resmi ISC dengan alamat http://www.isc.org/products/BIND. Ketika tulisan ini dibuat versi calon rils (release candidate/rc) yang paling baru adalah 9.2.2rc1 (dirilis pada tanggal 14 Agustus 2002) dan versi stable 9.2.1 (dirilis pada tanggal 1 Mei 2002). Kebetulan mesin yang digunakan untuk percobaan adalah menggunakan sistem operasi Linux dengan distro Redhat 7.2 (Enigma), tentu anda bisa menggunakan distro favorit anda yang lain :). Karena pada distro Redhat pada instalasi default sudah menyertakan BIND dalam format RPM, maka langkah pertama adalah menghapus software tersebut dari sistem. Jika anda tidak menggunakan Redhat ataupun tidak ada software BIND yang telah ada, anda bisa melewati langkah berikut ini (INGAT, jika ada BIND yang telah jalan dan anda ingin melakukan upgrade, silakan kreatif dengan membuat salinan atau backup terlebih dahulu) :
[root@wedus asfik]# for a in $(rpm -qa grep ^bind); do rpm -e --nodeps $a; done
[root@wedus asfik]# userdel -r named
[root@wedus asfik]# rm -rf /var/named
Diasumsikan anda terhubung ke internet dan terdapat utilitas wget untuk mendowload software dari ISC, jika anda telah mempunyai source BIND anda bisa melewati langkah berikut ini :
[root@wedus asfik]# wget ftp://ftp.isc.org/isc/bind9/9.2.2rc1/bind-9.2.2rc1.tar.gz
Kemudian kita mekarkan file source, melakukan kompilasi dan menambah user yang akan menjalakan BIND, pada proses make install akan terbentuk direktori /usr/local/named sebagai direktori utama dimana software ini disimpan :
[root@wedus asfik]# tar -xzvf bind-9.2.2rc1.tar.gz
[root@wedus asfik]# cd bind-9.2.2rc1
[root@wedus bind-9.2.2rc1]# ./configure --prefix=/usr/local/named
[root@wedus bind-9.2.2rc1]# make
[root@wedus bind-9.2.2rc1]# make install
[root@wedus bind-9.2.2rc1]# adduser -d /var/named -s /bin/false named
Ganti direktori ke home direktori user named serta mendownload file named.root yang berisi tentang informasi dari root-servers :
[root@wedus bind-9.2.2rc1]# cd /var/named
[root@wedus named]# wget ftp://internic.net/domain/named.root
Kemudian buat file untuk reverse PTR localhost (anda bisa menggunakan editor favorit anda, disini kita menggunakan vi) :
[root@wedus named]# vi db.127.0.0
Isi file db.127.0.0 adalah :
$TTL 86400
@ IN SOA localhost. root.localhost. (
2003021500 ; serial
28800 ; refresh
14400 ; retry
3600000 ; expiry
86400 ) ; minimum
IN NS localhost.
1 IN PTR localhost.
Kemudian salin file db.127.0.0 ke alamat network IP anda (bisa IP intranet atau IP yang anda dapatkan dari ISP anda), disini dimisalkan network yang akan kita reverse adalah 10.126.24.0/24 dan IP 10.126.24.1 adalah IP dimana software BIND akan kita install :
[root@wedus named]# cp db.127.0.0 db.10.126.24
Kemudian buat file yang berisi tentang zone dari localhost :
[root@wedus named]# vi db.localhost
Isi dari file db.localhost adalah :
$TTL 86400
$ORIGIN localhost.
@ IN SOA localhost. root.localhost. (
2003021500 ; serial
28800 ; refresh
14400 ; retry
3600000 ; expiry
86400 ) ; minimum
IN NS localhost.
IN A 127.0.0.1
Buat sebuah direktori untuk menyimpan file konfigurasi dari daemon program BIND :
[root@wedus named]# mkdir /usr/local/named/etc
Buat file /usr/local/named/etc/named.conf yang akan dijadikan sebagai file konfigurasi dari program BIND :
[root@wedus named]# vi /usr/local/named/etc/named.conf
Isi dari file /usr/local/named/etc/named.conf adalah :
options {
directory "/var/named";
allow-transfer { 10.126.24.2/32; };
pid-file "/var/named/named.pid";
};
logging {
category lame-servers { null; };
};
zone "." IN {
type hint;
file "named.root";
};
zone "localhost" IN {
type master;
file "db.localhost";
allow-update { none; };
};
zone "0.0.127.in-addr.arpa" IN {
type master;
file "db.127.0.0";
allow-update { none; };
};
zone "24.126.10.in-addr.arpa" IN {
type master;
file "db.10.126.24";
};
Kemudian meng-generate file konfigurasi yang akan digunakan oleh program rndc, ingat hasil dari perintah rndc-confgen bisa jadi berbeda dengan apa yang ditampilkan disini :
[root@wedus named]# /usr/local/named/sbin/rndc-confgen
Kemudian copy-paste dari hasil perintah tersebut diatas mulai dari baris "# Start of rndc.conf" sampai dengan baris "# End of rndc.conf", simpan dengan nama file /usr/local/named/etc/rndc.conf . Kemudian copy-paste lagi dengan menghilangkan tanda "#", mulai dari baris "# key "rndc-key"..." sampai dengan baris yang hampir paling bawah diatas baris "# End of named.conf " yaitu sampai dengan baris "};" kemudian tambahkan pada file /usr/local/named/etc/named.conf . Sebagai contohnya adalah sebagai berikut ini, isi dari file /usr/local/named/etc/rndc.confmisalnya :
# Start of rndc.conf
key "rndc-key" {
algorithm hmac-md5;
secret "2LCJImnMimOwc1odWR6jfg==";
};
options {
default-key "rndc-key";
default-server 127.0.0.1;
default-port 953;
};
# End of rndc.conf
Sedangkan pada file /usr/local/named/etc/named.conf ditambahkan sebagai berikut :
key "rndc-key" {
algorithm hmac-md5;
secret "2LCJImnMimOwc1odWR6jfg==";
};
controls {
inet 127.0.0.1 port 953
allow { 127.0.0.1; } keys { "rndc-key"; };
};
Atau mungkin anda bisa menggunakan trik dibawah ini (tapi mungkin tidak selalu berhasil seperti yang anda harapkan, use it at your own risk :) ) :
[root@wedus named]# /usr/local/named/sbin/rndc-confgen > confgen.tmp
[root@wedus named]# grep -v "^#" confgen.tmp > /usr/local/named/etc/rndc.conf
[root@wedus named]# grep "^#" confgen.tmp sed 1,3d sed -e "s/\# //g" sed -e "s/End of named.conf//g" >> /usr/local/named/etc/named.conf
[root@wedus named]# rm -rf confgen.tmp
Kemudian langkah selanjutnya adalah mengubah kepemilikan home direktori dari user named, kemudian menjalankan daemon dari program BIND :
[root@wedus named]# chown -R named.named /var/named
[root@wedus named]# /usr/local/named/sbin/named -u named -c /usr/local/named/etc/named.conf
Jika sukses anda bisa melihat pada file /var/log/messages pesan-pesan sebagai berikut :
[root@wedus named]# tail -f /var/log/messages
Feb 15 12:54:18 wedus named[25139]: starting BIND 9.2.2rc1 -u named -c /usr/local/named/etc/named.conf
Feb 15 12:54:18 wedus named[25139]: using 1 CPU
Feb 15 12:54:18 wedus named[25139]: loading configuration from '/usr/local/named/etc/named.conf'
Feb 15 12:54:18 wedus named[25139]: no IPv6 interfaces found
Feb 15 12:54:18 wedus named[25139]: listening on IPv4 interface lo, 127.0.0.1#53
Feb 15 12:54:18 wedus named[25139]: listening on IPv4 interface eth0, 10.126.24.1#53
Feb 15 12:54:18 wedus named[25139]: command channel listening on 127.0.0.1#953
Feb 15 12:54:18 wedus named[25139]: zone 24.126.10.in-addr.arpa/IN: loaded serial 2003021500
Feb 15 12:54:18 wedus named[25139]: zone 0.0.127.in-addr.arpa/IN: loaded serial 2003021500
Feb 15 12:54:18 wedus named[25139]: zone localhost/IN: loaded serial 2003021500
Feb 15 12:54:18 wedus named[25139]: running
Untuk mengaktifkan daemon BIND setiap kali komputer direstar, tambahkan perintah "/usr/local/named/sbin/named -u named -c /usr/local/named/etc/named.conf" pada file rc.local didistro kesayangan anda. Jika anda menggunakan Redhat file rc.local terdapat pada direktori /etc, misalnya :
[root@wedus named]# echo "/usr/local/named/sbin/named -u named -c /usr/local/named/etc/named.conf" >> /etc/rc.local
Kemudian kita set resolver agar menggunakan name server localhost:
[root@wedus named]# echo "nameserver 127.0.0.1" > /etc/resolv.conf
Testing query menggunakan name server localhost dengan perintah host :
[root@wedus named]# host 127.0.0.1
1.0.0.127.in-addr.arpa domain name pointer localhost.
[root@wedus named]# host localhost
localhost has address 127.0.0.1
Atau dengan menggunakan perintah dig :
[root@wedus named]# dig -x 127.0.0.1
; <<>> DiG 9.2.2rc1 <<>> -x 127.0.0.1
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 64212
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1
;; QUESTION SECTION:
;1.0.0.127.in-addr.arpa. IN PTR
;; ANSWER SECTION:
1.0.0.127.in-addr.arpa. 86400 IN PTR localhost.
;; AUTHORITY SECTION:
0.0.127.in-addr.arpa. 86400 IN NS localhost.
;; ADDITIONAL SECTION:
localhost. 86400 IN A 127.0.0.1
;; Query time: 1 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sat Feb 15 13:58:48 2003
;; MSG SIZE rcvd: 93
Jika anda tersambung ke internet anda bisa mencoba untuk query ke suatu host misalnya :
[root@wedus named]# host www.its-sby.edu
www.its-sby.edu is an alias for ns2.its-sby.edu.
ns2.its-sby.edu has address 202.155.84.179
Anda juga bisa mengeset client anda untuk menggunakan name server yang baru saja anda konfigurasi untuk melayani query. Untuk sistem operasi Windows 2000 Server (tm) adalah sebagai berikut : klik kanan pada "My Network Places" pilih "Properties", klik kanan pada "Local Area Connection" pilih "Properties", pilih pada "Internet Protocol (TCP/IP)" klik "Properties", klik radio button pada "Use the following DNS server addresses", isikan pada "Preferred DNS server" alamat IP dimana server DNS/BIND anda tersebut diinstall, disini diumpamakan IPnya adalah 10.126.24.1 . Untuk sistem operasi Windows98 (tm) adalah : dari menu "Start" klik "Settings", klik pada "Control Panel", klik pada "Network" klik pada "TCP/IP" pilih "Properties", pilih pada tabulasi "DNS Configuration" pilih pada "Enable DNS", kemudian pada "DNS Server Search Order" isikan alamat IP dimana server DNS/BIND anda tersebut diinstall, disini diumpamakan 10.126.24.1
Sampai pada langkah ini anda telah mengkonfigurasi BIND sebagai "caching only name server" yang akan menjawab semua query DNS dan mengingat-ingat record tersebut ketika anda melakukan query pada suatu record DNS yang sama. Hal ini mungkin akan membantu anda memperpendek waktu yang anda butuhkan untuk mengqueri suatu record jika anda berada pada koneksi internet yang pas-pasan :) (misalnya dialup atau kabel modem).
Jika anda terhubung ke sebuah ISP dan ingin membagi beban querydari client anda yang menuju ke server anda dengan server DNS ISP anda, maka anda bisa menggunakan opsi forwarder. Misalkan DNS server ISP anda mempunyai IP 10.11.12.1 dan 10.11.12.2 maka di file named.confpada seksi options, bisa anda tambahkan :
forward first;
forwarders {
10.11.12.1;
10.11.12.2;
};

Sejarah BIND

Program DNS yang bernama JEEVES pertama kali diimplementasikan dan ditulis sendiri oleh Paul Mockapertis. Kemudian diteruskan oleh BIND (versi 4.8.3) yang diimplementasikan pada sistem operasi 4.3 BSD UNIX yang ditulis oleh Douglas Terry, Mark Painter, David Riggle dan Songnian Zhou dari Computer Systems Research Group (CSRG) pada Universitas California di Berkeley. Pada tahun antara 1985-1987, Kevin Dunlap seseorang dari Digital Equipment Corporation (DEC) bergabung dengan CSRG yang kemudian diikuti oleh Doug Kingston, Craig Partridge, Smoot Carl- Mitchell, Mike Muuss, Jim Bloom dan Mike Schwartz. Pemimpin dari proyek ini adalah Mike Karels dan O. Kure.
BIND versi 4.9 dan 4.9.1 kemudian dirilis oleh DEC (yang sekarang diakusisi oleh Compaq Computer Corporation). Pemimpin dari proyek ini adalah Paul Vixie yang merupakan karyawan dari DEC serta dibantu oleh Phil Almquist, Robert Elz, Alan Barrett, Paul Albitz, Bryan Beecher, Andrew Partan, Andy Cherenson, Tom Limoncelli, Berthold Paffrath, Fuat Baran, Anant Kumar, Art Harkin, Win Treese, Don Lewis, Christophe Wolfhugel, dan lain-lainnya. BIND versi 4.9.2 kemudian diambil alih oleh Vixie Enterprises, dan Paul Vixie menjadi arsitek dan programmernya. BIND mulai dari versi 4.9.3 dan seterusnya kemudian diambil alih oleh Internet Software Consortium (ISC) dan akhirnya untuk pertama kalinya, pada tanggal 8 Mei 1997 Bob Halley dan Paul Vixie merilis versi BIND untuk keperluan produksi. Sekarang BINDversi 4 sudah mulai jarang digunakan, dan sebagai penggantinya adalah BIND versi 8 dan versi 9.

Konsep dan hirarki DNS

DNS adalah suatu bentuk database yang terdistribusi, dimana pengelolaan secara lokal terhadap suatu data akan segera diteruskan ke seluruh jaringan (internet) dengan menggunakan skema client-server. Suatu program yang dinamakan name server, mengandung semua segmen informasi dari database dan juga merupakan resolver bagi client-client yang berhubungan ataupun menggunakannya.
Struktur dari database DNS bisa diibaratkan dengan dengan struktur file dari sebuah sistem operasi UNIX. Seluruh database digambarkan sebagai sebuah struktur terbalik dari sebuah pohon (tree) dimana pada puncaknya disebut dengan root node. Pada setiap node dalam tree tersebut mempunyai keterangan (label) misalnya, .org, .com, .edu, .net, .id dan lain-lainnya, yang relatif rerhadap puncaknya (parent).Ini bisa diibaratkan dengan relative pathname pada sistem file UNIX,seperti direktori bin, usr, var, etc dan lain sebagainya. Pada puncak root node dalam sebuah sistem DNS dinotasikan dengan "." atau "/" pada sistem file UNIX.
Pada setiap node juga merupakan root dari subtree, atau pada sistem file UNIX merupakan root direktori dari sebuah direktori. Hal ini pada sistem DNS disebut dengan nama domain. Pada tiap domain juga memungkinkan nama subtree dan bisa berbeda pula, hal ini disebut subdomain atau subdirektori pada sistem file UNIX. Pada bagian subdomainjuga memungkinkan adanya subtree lagi yang bisa dikelola oleh organisasi yang berbeda dengan domain utamanya

Sejarah DNS

Pada tahun 1970an jaringan ARPAnet hanya terdiri dari beberapa ratus host saja. Pada waktu itu, sebuah file HOSTS.TXT yang berisi tentang semua informasi host-hosts tersebut masih bisa melayani setiap permintaan query dan menerjemahkan nama ke alamat IP (name-to-address-mapping).Pada sistem operasi berbasis UNIX, file /etc/hosts merupakan hasil dari pengolahan file HOSTS.TXT tersebut. File HOSTS.TXT pada waktu itu dikelola oleh Stanford Research Insitute Network Information Center (SRI-NIC) di Menlo Park, California. File tersebut tersebut didistribusikan ke semua host dan penggunanya hanya dengan menggunakan satu buah host (mesin/komputer) saja. Petugas administrasi dari ARPAnetbiasanya mengirimkan email kepada SRI-NIC tentang perubahan (termasuk penambahan maupun pengurangan) tentang informasi suatu host, dan dalam periode tertentu, mereka melakukan transfer file HOSTS.TXT yang paling baru (biasanya diperbaharui sekali dalam seminggu) dengan menggunakan protokol ftp. Seiring dengan berkembangnya jaringan ARPAnetdan penggunaan protokol TCP/IP, ukuran dari file HOSTS.TXT menjadi besar dengan bertambahnya jumlah host yang bergabung dengan jaringan ARPAnet. Kemudian timbul beberapa masalah dengan penggunaan file HOSTS.TXT ini, misalnya :
Trafik dan Beban (Traffic and load)
Beban mesin dan trafik (bandwith) di SRI-NIC dalam mendistribusikan file menjadi lebih berat dan besar
Penamaan yang saling bentrok (name collisions)
Pada file HOSTS.TXT tidak diperkenankan adanya dua buah nama host yang sama. Namun pada prakteknya, tidak ada cara untuk mencegah seseorang untuk menambahkan nama yang sama sehingga kemungkinan bisa menjadi bentrok dan pada akhirnya merusak skema yang telah ada
Keaslian (consistency)
Mengelola keaslian dan keutuhan sebuah file antar beberapa jaringan yang sedang berkembang pesat merupakan sesuatu hal yang sulit dilakukan
Berangkat dari masalah-masalah tersebut diatas, ARPAnet membentuk suatu sistem alternatif pengganti dari sistem lama yang menggunakan file HOSTS.TXT. Tujuannya adalah untuk memecahkan masalah dalam pengelolaan tabel host yang sangat beraneka ragam dan masih menggunakan metode sentralisasi. Pada sistem yang baru, seorang sistem administrator memungkinkan untuk mengelola data secara loka, namun akan selalu update secara global di internet. Sistem yang menggunakan metode desentralisasi ini diharapkan akan mengurangi beban dan trafik, serta pengelolaan data dan proses update dari sebuah informasi akan menjadi lebih mudah.
Paul Mockapertis dari University of Southern California Information Science Institute di Marina del Rey, California, dipilih sebagai orang yang bertanggung jawab terhadap rancangan, desain, arsitektur dan implementasi dari sistem pengelolaan data host yang baru. Pada tahun 1984 beliau merilis RFC (Request For Comment) 882 dan RFC 883 yang menjelaskan tentang Domain Name System (DNS). Kemudian disusul dengan RFC 1034 dan RFC 1035 yang juga menambahkan tentang masalah kemanan DNS, penerapan (implementasi), pengelolaan (adminstrative),mekanisme pembaharuan data secara dinamis, serta kemanan data dalam sebuah domain dan lain-lainnya.

Monday, February 19, 2007

Tux sebagai logo

Ada cerita menarik yang menyebabkan TORVALDS menggunakan penguin sebagai logo dari sistem operasi Linux. Saat itu TORVALDS sedang berjalan jalan bersama ANDREW TRIDGELL (Penyusun Sambatypeset@protect @@footnote SF@gobble@opt Samba adalah sebuah program yang memungkinkan mesin Unix (termasuk Linux) berkomunikasi dengan Windows dalam sebuah jaringan. Bahasan yang cukup detail tentang Samba dapat Anda temukan di bab IV) ) disebuah taman. Tiba tiba TORVALDS dipatok pinguin, dan semenjak itu Ia mengalami demam selama berhari hari. Dia pikir, karakter ini cocok untuk mewakili Linux. Ia ingin pemakainya menjadi demam alias tergila-gila untuk menggunakan dan mengotak atik Linux. Dan ternyata, apa yang dibayangkannya menjadi kenyataan. Hampir setiap pemakai saat pertama kali berkenalan dengan Linux menjadi susah tidur, dan menghabiskan waktunya berjam-jam didepan komputer untuk bermain main dengan Linux.

Visualisasi logonya dikompetisikan kepada umum lewat diskusi pada mailing list Linux Kernel. Pencetusnya adalah ALAN COX, dan logo terpilih diberi nama Tux, dibuat oleh LARRY EWING (http://www.isc.tamu.edu/lewing/linux).

Gambar 1 Tux, penguin logo Linux

Catatan : Perspektif Torvalds tentang logo Linux dapat Anda baca di http://www.linux.org/info/penguin.html. Visualisasi logo lainnya dapat dilihat di http://www.solluna.org/higgins/linuxlogo/linux.html.

Linux

Linux adalah sebuah program open source yang gratis di bawah lisensi GNU, sistem operasi 32-64 bit, yang merupakan turunan dari Unix dan dapat dijalankan pada berbagai macam platform perangkat keras mulai dari Intel (x86), hingga prosesor RISC. Linux sebagai program open source yang gratis Salah satu yang membuat Linux terkenal adalah karena gratis. Dengan lisensi GNU (Gnu Not Unix) Anda dapat memperoleh program, lengkap dengan kode sumbernya (source code). Tidak hanya itu, Anda diberikan hak untuk mengkopi sebanyak Anda mau, atau bahkan mengubah kode sumbernya.Dan itu semua legal dibawah lisensi. Meskipun gratis, lisensi GNU memperbolehkan pihak yang ingin menarik biaya untuk penggandaan maupun pengiriman program. Lisensi lengkap dari GNU, dapat Anda baca di Lampiran III. Penerjemahan lisensi GNU ke dalam Bahasa Indonesia, saat buku ini disusun masih dilakukan.

Catatan : Literatur lengkap tentang GNU dapat Anda baca di situs web mereka yaitu http://www.gnu.org.

Dengan demikian, dapat dikatakan bahwa Anda dapat memperoleh Linux tanpa harus membayar sama sekali. Jika Anda harus membayar tiap kali instal perangkat lunak di lain komputer, maka dengan Linux Anda dapat menginstalnya dimana saja tanpa harus membayar lisensi.

Kebebasan yang paling penting dari Linux, terutama bagi programmer dan administrator jaringan, adalah kebebasan memperoleh kode sumber (source code) dan kebebasan untuk mengubahnya. Ini berimplikasi pada beberapa hal penting. Pertama keamanan, yang kedua dinamika.

Jika perangkat lunak komersial tidak memperkenankan Anda untuk mengetahui kode sumbenya maka Anda tidak akan pernah tahu apakah program yang Anda beli dari mereka itu aman atau tidak (sering disebut security by obscurity). Hidup Anda di tangan para vendor. Dan jika ada pemberitahuan tentang bug dari perangkat lunak komersial tersebut, seringkali sudah terlambat. Dengan Linux, Anda dapat meneliti kode sumbernya langsung, bersama dengan pengguna Linux lainnya. Berkembangnya pengguna Linux sebagai komunitas yang terbuka, membuat bug akan cepat diketahui, dan secepat itu pula para programmer akan memperbaiki programnya. Anda sendiri juga yang menentukan kode yang cocok sesuai dengan perangkat keras maupun kebutuhan dasar perangkat lunak lainnya untuk dapat diimplementasikan. Ibarat sebuah mobil, Anda bisa memodifikasi sesukanya, bahkan hingga mesin sekalipun, untuk memperoleh bentuk yang diinginkan.

Keterbukaan kode sumber juga memungkinkan sistem operasi berkembang dengan pesat. Jika sebuah program dengan sistem tertutup dan hanya dikembangkan oleh vendor tertentu, paling banyak sekitar seribu hingga lima ribu orang. Sedangkan Linux, dengan keterbukaan kode sumbernya, dikembangkan oleh sukarelawan seluruh dunia. Bug lebih cepat diketahui dan program penambalnya (patch) lebih cepat tersedia. Pendekatan pengembangan sistem operasi ini disebut Bazaar. Kebalikannya sistem Chatedraal sangat tertutup dan hanya berpusat pada satu atau dua pengembang saja.

Sebagai tambahan, Linux menyediakan bahasa pemrograman gratis, lengkap dengan kompilernya, maupun program pembantunya. Beberapa diantaranya adalah :

  • ADA
  • BASIC
  • C
  • C++
  • Expect
  • FORTRAN
  • GTK, untuk membuat aplikasi GUI di Linux
  • PASCAL
  • Phyton
  • Skrip Shell
  • TCL
  • Perl (The Practical Extraction and Report Language), sering dipakai untuk membuat skrip CGI di web.