You are on page 1of 278

w v

v vv

Konsep Internetworking dengan TCP/IP


Tentang TCP/IP TCP/IP TCP/IP dan Internet TCP/IP Features Model Komunikasi Data Arsitektur Protokol TCP/IP

1-2
1-2 1-2 1-3 1-3 1-4 1-8

Dasar-dasar Pembentukan Jaringan TCP/IP


Pengalamatan dan IP Address Routing Tabel Routing Mekanisme routing berdasarkan tabel routing Name Service DNS (Domain Name Service)

1-13
1-13 1-18 1-19 1-19 1-20 1-24

sss s swsw

Pendahuluan Metodologi Perencanaan LAN Media Implementasi Jaringan


Twisted Pair Kabel Koaksial Fiber Optik Wireless

2-2 2-2 2-3


2-3 2-4 2-5 2-5

Topologi Fisik Jaringan


Topologi Ring Topologi Star

2-6
2-7 2-7

Topologi Logic
Token Ring ARCnet FDDI

2-8
2-9 2-10 2-10

Jaringan Ethernet
Komponen Jaringan Ethernet Instalasi Kabel Ethernet Menghubungkan PC ke Jaringan Ethernet

2-11
2-11 2-12 2-15

Elemen-elemen Internetworking
Repeater Bridge 2

2-18
2-18 2-19

Router Switch Converter

2-19 2-20 2-21

Internetwork Heterogen
Internetwork Menggunakan Bridge Internetwork Menggunakan Router

2-21
2-22 2-23

Perencanaan Internetwork TCP/IP


Pengalokasian Alamat IP Pengaturan Routing Penempatan Server Penanganan Protokol Jaringan yang Berbeda

2-26
2-28 2-28 2-29 2-30


qv sws

Pendahuluan
Membuat Disket Boot Pada sistem DOS Pada sistem FreeBSD Instalasi dari CDROM Instalasi dari Floppy Instalasi dari Partisi DOS Instalasi dari QIC/SCSI Tape Instalasi dari Jaringan Instalasi melalui FTP

3-2
3-2 3-3 3-3 3-3 3-3 3-4 3-4 3-4 3-5 3

Instalasi FreeBSD (FTP) Memulai dan Mengakhiri FreeBSD

3-5 3-11

Perintah-perintah Expression

Dasar

Utiliti

Sistem

dan

Regular 3-13

Regular Expression Redirection dan Pipes (filter) Operasi File dan Direktori Teks Editor: vi

3-13 3-13 3-14 3-17


ssxv w sw

Pendahuluan Konfigurasi Interface Menggunakan ifconfig


Menggunakan Perintah netstat Memeriksa Interface dengan ifconfig Mengeset Broadcast Address Memberikan Address pada Network Interface Command Option yang lain dari ifconfig

4-2 4-2
4-3 4-5 4-7 4-7 4-7

TCP/IP Melalui Serial Line Memilih Protokol Serial Mengkonfigurasi Interface SLIP
slattach 4

4-9 4-10 4-10


4-11

sliplogin

4-13

Mengkonfigurasi PPP Melakukan Konfigurasi Pada Startup File


sxv xws

4-14 4-15

Pendahuluan Subnetting Topologi Network dan Routing Konfigurasi Routing yang Sering Digunakan
Minimal routing Static routing Dynamic routing

5-2 5-2 5-6 5-8


5-9 5-9 5-9

Membentuk Routing Table Routing Information Protokol Penggunaan routed/gated

5-10 5-13 5-15


s vw q swsw s

Pendahuluan Top Level Domain dan Pendelegasian Name Server

6-2 6-5 6-8


5

Resolver dan Resolution Konfigurasi DNS


Konfigurasi boot-script DNS server Konfigurasi caching-only DNS server Konfigurasi Primary dan Secondary server Konfigurasi Primary dan Secondary server untuk Reverse Domain Konfigurasi Zone-file Start of Authority (SOA) Name-Server (NS) Address (A) Mail eXchanger (MX) Canonical NAME (CNAME) Host INFOrmation (HINFO) Well Known Service (WKS) Konfigurasi Zone-file untuk Reverse Domain Konfigurasi Cache-file Menjalankan DNS Server Konfigurasi Resolver

6-9 6-12
6-12 6-13 6-14 6-15 6-16 6-16 6-19 6-20 6-21 6-23 6-23 6-24 6-25 6-25 6-27 6-28

Utility nslookup
sq svwqv s svs

6-28

Pendahuluan Instalasi Dasar


6

7-2 7-3

Mengkompile Sendmail File Konfigurasi Detail File-file untuk Instalasi

7-3 7-4 7-4

Operasi Normal
Log System Antrian (The Mail Queue) Menampilkan Antrian Memaksa Antrian Database Alias Memperbaharui database alias Masalah yang potensial terjadi List owners Per-User Forwarding (file .forward)

7-10
7-10 7-11 7-11 7-12 7-13 7-15 7-15 7-15 7-16

Argument
Queue Interval (-q) Daemon Mode Memaksa Antrian Debugging Menggunakan File Configuration yang Berbeda Mengubah Harga Option Logging Traffic

7-17
7-17 7-17 7-17 7-18 7-18 7-18 7-19

File sendmail.cf
Lokasi Contoh File sendmail.cf

7-19
7-20

Struktur sendmail.cf

7-20

Konfigurasi sendmail.cf
Perintah Mendefinisikan Macro Kondiri Bersyarat Perintah Pendefinisian Class Perintah Set Option Mendefinisikan Trusted Users Mendefinisikan Mail Precedence Mendefinisikan Mail Headers Mendefinisikan mailer

7-23
7-25 7-27 7-27 7-29 7-31 7-32 7-32 7-33

Rewriting Mail Address


Pattern Matching Transformasi Address Set Perintah di Ruleset

7-37
7-37 7-39 7-43

Modifikasi sendmail.cf
Modifikasi General Macro Modifikasi Classes Modifikasi Version Number Modifikasi Option Modifikasi Rewrite Rules

7-45
7-46 7-47 7-47 7-47 7-48

Menguji sendmail.cf
Menguji Rewrite Rules

7-49
7-52

xw s

FTP Server
Pendahuluan Konfigurasi FTP server Filesystem Memasang FTP server pada FreeBSD Memelihara Arsip FTP

8-2
8-2 8-3 8-5 8-6 8-9

Web Server
WWW Server NCSA CERN Plexus WWW Browser HTTP Konfigurasi Web Server Konfigurasi httpd.conf Konfigurasi srm.conf Konfigurasi access.conf Menjalankan Server Test Web Server

8-10
8-10 8-10 8-11 8-11 8-11 8-13 8-13 8-14 8-15 8-15 8-16 8-18


w xw

Network Security secara Umum

9-2
9

Konsep dalam Network Security


Perencanaan Security Mengenali ancaman terhadap network security Metoda-metoda yang digunakan dalam network security Security Monitoring COPS

9-3
9-3 9-3 9-5 9-14 9-17

Software Aplikasi dalam Network Security


Firewall Kontrol Akses COPS

9-18
9-18 9-18 9-20


xqvws

Memahami Permasalahan Beberapa Petunjuk dalam Troubleshooting Diagnostic Tools Memeriksa Sambungan Troubleshooting pada Lapisan Network-Access
Troubleshooting dengan perintah ifconfig Troubleshooting dengan perintah arp Mengecek Interface dengan netstat Subdividing Ethernet Problem pada hardware jaringan

10-2 10-3 10-3 10-5 10-8


10-8 10-10 10-11 10-13 10-14

10

Memeriksa Table Routing


Tracing routes

10-15
10-16

Memeriksa Name Service


Beberapa sistem beroperasi, yang lain tidak dig, alternatif lain buat nslookup

10-18
10-19 10-21


s swv

Alternatif Log Distance TCP/IP Gateway Biaya Rendah


NOS sebagai gateway WAN via packet radio network Unix sebagai gateway WAN via phone-line Unix sebagai gateway untuk WAN dengan satelit

11-2
11-2 11-3 11-4

Multivendor Integration
Novell Netware Windows for Workgroup PC/TCP UNIX

11-8
11-8 11-15 11-17 11-17

Bagaimana Bergabung dengan Internet


Radio Paket WaveLAN Via Satelit: VSAT Dial-up dan Leased Line

11-18
11-19 11-21 11-24 11-17

11

12

1
Dasar-dasar TCP/IP
Pada bagian ini dibicarakan hal-hal mendasar yang akan dipakai dalam bab-bab selanjutnya. Pertama kita akan membahas protokol TCP/IP dengan penekanan pada konsep TCP/IP internetworking, kemudian kita juga mengulas dasar-dasar yang digunakan dalam membentuk jaringan TCP/IP, termasuk didalamnya IP Address, routing dan name service.

13

Konsep Internetworking dengan TCP/IP


Setiap komputer yang ada memiliki keterbatasan perangkat keras. Komputer yang berdiri sendiri tidak bisa lagi memenuhi kebutuhan pemakai yang menuntut peningkatan pelayanan. Orang pun kemudian mulai membangun infrastruktur komunikasi antar komputer. Karena pembuat perangkat keras komputer bermacam macam , maka terdapat bermacam macam konfigurasi hardware dan software yang berbeda. Bagaimana supaya komunikasi dapat tetap berlangsung dan tidak dibatasi oleh perbedaan ini? Dari awal dibuatnya TCP/IP (Transmission Control Protocol/Internet Protocol). Untuk menyatukan sistem sistem yang berbeda diperlukan suatu kesepakatan. Pada level konsensus ini, setiap mesin yang terhubung ke jaringan harus berperilaku sama. Dalam bagian model komunikasi data akan kita bicarakan beberapa protokol komunikasi serta kedudukan TCP/IP didalamnya.

Tentang TCP/IP (Transmission Control Protocol/Internet Protocol)


Komunitas Internet yang merupakan komunitas jaringan komputer terbesar diseluruh dunia menggunakan protokol TCP/IP. Protokol ini memungkinkan sistem apapun yang terhubung kedalamnya bisa berkomunikasi dengan sistem yang lain tanpa harus memperdulikan bagaimana remote-system tersebut bekerja. Anda mungkin bertanya mengapa TCP/IP, bukannya protokol yang lain? Berikut akan disinggung beberapa hal mengenai TCP/IP:

TCP/IP
Adalah sekumpulan protokol komunikasi (protocol suite) yang sekarang ini secara luas digunakan dalam komunitas global jaringan komputer (internetworking). TCP dan IP merupakan dua protokol terpenting dalam TCP/IP disamping protokol protokol lainnya, sehingga namanya demikian. 14

TCP/IP dan Internet


Pada tahun 1969 DARPA (Defence Advanced Research Projects Agency) mendanai riset dan pembuatan jaringan paket switching eksperimental yang diberi nama ARPANET. Karena dinilai sukses dan banyak organisasi lain yang menghubungkan diri dengan jaringan ini, maka pada tahun 1975 ia menjadi jaringan operasional. ARPANET semakin lama semakin bertambah besar sehingga karena protokol yang digunakan pada waktu itu tidak mampu menampung jumlah node yang besar(NCP). DARPA kemudian mendanai pembuatan protokol komunikasi yang lebih umum, TCP/IP. Ia diadopsi jadi standard ARPANET 1983. Untuk memudahkan konversi DARPA juga mendanai BBN untuk mengimplementasikan protokol ini dalam BSD Unix, sehingga dimulailah perkawinan antara Unix dan TCP/IP. Sejak tahun itu perkataan internet mulai populer, karena terjadi perubahan administratif ARPANET, yang dipecah menjadi MILNET dan ARPANET kecil, kemudian ditambah dengan bergabungnya NFS (National Science Foundation)/NSFNET. Pada awalnya internet digunakan untuk menunjukan jaringan yang menggunakan internet protocol (IP). Namun dengan semakin berkembangnya jaringan, term ini sekarang sudah berupa term generik yang digunakan untuk semua kelas jaringan. internet (i kecil) sekarang biasanya digunakan orang untuk menunjuk pada koleksi sembarang jaringan fisik terpisah yang saling dihubungkan dengan protokol yang sama untuk membentuk jaringan logic. Sedangkan Internet (I besar) digunakan untuk menunjuk pada komunitas jaringan komputer worldwide yang saling dihubungkan dengan TCP/IP.

TCP/IP features
TCP/IP tidak tumbuh menjadi besar begitu saja, atau karena badan militer memandatkan penggunaannya. Yang terpenting adalah ia berada pada waktu yang tepat dan merupakan protokol pertama yang dapat memenuhi kebutuhan komunikasi data pada saat itu. TCP/IP features:

Open Protocol Standards tersedia secara luas, independen terhadap perangkat


keras komputer,Sistem Operasi dll. Ideal untuk menyatukan mesin mesin dengan perangkat keras dan lunak yang berbeda, walaupun tidak terhubung ke Internet.

15

Tidak tergantung pada perangkat keras jaringan tertentu, sehingga TCP/IP


cocok untuk menyatukan bermacam macam network, misalnya Ethernet, token ring,dial-up line,X-25 net dan lain lain.

Cara pengalamatan bersama, memungkinkan divais TCP/IP mengidentifikasi


secara unik divais yang lain dalam seluruh jaringan, walaupun jaringannya sebesar jaringan worldwide Internet.

Protokol level tinggi yang distandarkan untuk konsistensi, sehingga


menyediakan servis user yang luas.

Model Komunikasi Data


Untuk membicarakan jaringan komputer , sebaiknya digunakan acuan/referensi yang disepakati bersama.. Sebuah model arsitektural yang dibuat oleh ISO (International Standard Organization) sering digunakan untuk menerangkan struktur dan fungsi protokol komunikasi data. Model arsitektural ini dikenal sebagai OSI (Open System Interconnect) Referesce Model, dan menyediakan suatu referensi bersama dalam mendiskusikan komunikasi. Istilah istilah yang didefinisikan oleh model ini dapat dimengerti dengan baik dan secara luas digunakan dalam komunitas komunikasi data. Pada kenyataannya memang sukar untuk mendiskusikan komunikasi data tanpa terminologi OSI. Model referensi OSI terdiri dari 7 lapisan (layer) yang mendefinisikan fungsi protokol komunikasi data. Setiap layer merepresentasikan sebuah fungsi (bukan protokol) yang dilakukan ketika data ditransfer antara aplikasi yang sesuai lintas jaringan yang dimasuki.

16

Application Layer Presentation Layer Session Layer Transport Layer Network Layer Data Link Layer Physical Layer

Gambar 1.1
OSI Layer

Sebuah layer tidak mendefinisikan protokol tunggal, tapi mendefinisikan suatu fungsi komunikasi data yang dapat dilakukan oleh sejumlah protokol. Jadi setiap layer dapat berisi banyak protokol, masing masing menyediakan servis yang cocok dengan fungsi layer tersebut. Sebagai contoh, file transfer protocol dan electronic mail protocol keduanya menyediakan servis pada user dan keduanya merupakan bagian dari layer aplikasi. Setiap protokol berkomunikasi dengan peer(pasangan)nya (protokol yang sama dalam layer yang sama dalam remote-system misalnya ftp lokal merupakan peer dari ftp remote). Jadi secara abstrak setiap protokol hanya peduli terhadap komunikasi dengan peernya, tak perduli dengan layer dibawah dan diatasnya.

17

Application Layer Presentation Layer Session Layer Transport Layer Network Layer Data Link Layer Physical Layer

Application Layer Presentation Layer Session Layer Transport Layer Network Layer Data Link Layer Physical Layer

Gambar 1.2
Komunikasi antara dua peer dengan sistem 7-layer Bagaimanapun harus ada persetujuan tentang bagaimana melintaskan data antar layer pada suatu komputer tunggal, karena setiap layer dilibatkan dalam pengiriman data dari aplikasi lokal ke aplikasi remote yang sejenis. Transfer data dilakukan dengan melewatkan data pada layer berikutnya (ke bawah stack) sampai ditransmisikan ke jaringan oleh protokol layer fisik. Pada sistem lawan , data dilewatkan dari layer terbawah ke layer berikut diatasnya. Masing masing layer tidak perlu tahu bagaimana fungsi layer diatas dan dibawahnya, yang perlu diketahuinya adalah cara melewatkan data pada layer lainnya tersebut. Mengisolasi fungsi komunikasi jaringan dalam layer layer yang berbeda dapat meminimalkan efek perubahan teknologi pada protocol-suite yang digunakan. Aplikasi baru dapat ditambahkan tanpa mengubah network secara fisik, dan hardware network yang baru dapat diinstall tanpa harus menulis kembali software aplikasi. Meskipun model OSI sangat berguna, protokol TCP/IP tidak sesuai benar dengan strukturnya. Jadi dalam diskusi TCP/IP kita, menggunakan layer layer model OSI dengan cara berikut:

18

Application layer Merupakan layer dimana proses jaringan yang bisa diakses user berada Layer teratas dalam hirarki Aplikasi TCP/IP adalah segala proses network yang terjadi di atas transport layer, termasuk semua proses yang user secara langsung berinteraksi dengannya. Presentation layer Untuk aplikasi-aplikasi yang berkomunikasi(bertukar data) mereka harus sepakat dalam hal bagaimana data direpresentasikan. Dalam OSI layer ini menyediakan rutin standar presentasi data, yang dalam TCP/IP fungsi ini sudah ditangani oleh aplikasi Session layer Dalam OSI, layer ini berfungsi untuk mengatur session/hubungan antara aplikasi yang berkomunikasi. Sedangkan dalam TCP/IP fungsi ini sebagian besar dijalankan pada transport layer, dan istilah session tidak digunakan. Sebagai gantinya dalam TCP/IP menggunakan istilah socket dan port untuk menjelaskan jalur dimana komunikasi aplikasi tertentu berada. Transport layer Dalam OSI, layer ini menjamin penerima mendapatkan data yang persis seperti ketika ia dikirimkan. Dalam TCP/IP fungsi ini dilakukan oleh TCP (Tranmission Tranport Protocol). Selain itu TCP/IP juga menawarkan servis transport layer yang lain, UDP (User Datagram Protocol) yang tidak mementingkan pemeriksaan keandalan komunikasi end to end. Network layer Layer ini berfungsi mengatur hubungan lintas jaringan dan mengisolasi protokol layer yang lebih tinggi dari detil jaringan dibawahnya. Internet Protocol dalam TCP/IP merepresentasikan fungsi ini dan menangani pengalamatan dan pengiriman data. Data Link layer Pada intinya layer ini menangani pengiriman data melintasi jaringan fisik. 19

Physical layer Layer ini mendefinisikan karakteristik perangkat keras yang diperlukan untuk mentransmisikan sinyal data. Jadi standar level tegangan, jumlah dan lokasi pin interface didefinisikan dalam layer ini.

Arsitektur Protokol TCP/IP


Karena seperti telah disinggung sebelumnya, TCP/IP tidak sesuai benar dengan model OSI, maka protocol-stack dalam TCP/IP biasanya digambarkan dengan layer yang lebih sedikit.

Application Layer Transport Layer Internet Layer Network Access Layer

Gambar 1.3
Layer pada TCP/IP Dalam TCP/IP setiap data yang dilewatkan ke masing masing layer direduksi atau ditambahkan suatu header kontrol. Setiap layer memperlakukan semua informasi yang ia terima sebagai data dan ia menambahkan suatu header diawal informasi tersebut ketika data ini akan dilewatkan pada layer dibawahnya. Penambahan informasi pengiriman ini disebut enkapsulasi (encapsulation). Hal sebaliknya berlaku ketika informasi ini bergerak dari jaringan ke layer teratas.

20

DATA
header

Application Layer Transport Layer

header Internet Layer header Network Access Layer

Gambar 1.4
Metoda encapsulasi pada TCP/IP

Berikut beberapa hal penting untuk setiap layer dalam model TCP/IP Network Access layer merupakah layer terbawah dari hirarki protokol TCP/IP Menyediakan sarana untuk sistem untuk mengirim data ke divais lain yang terhubung ke network. Mendefinisikan bagaimana menggunakan network untuk mentransmisikan datagram Dibandingkan dengan model OSI, layer ini melingkupi tiga layer terbawah dalam model OSI, yaitu Network, Data-link, dan Physical layer. Fungsi lain yang ditangani pada level ini termasuk enkapsulasi datagram kedalam frame yang ditransmisikan oleh jaringan dan konversi IP address kedalam alamat yang cocok untuk jaringan fisik dimana datagram ditransmisikan Internet layer Internet Protocol (IP) IP merupakan inti dari TCP/IP dan merupakan protokol terpenting dalam Internet Layer. IP menyediakan pelayanan pengiriman paket elementer dimana jaringan TCP/IP dibangun. Fungsi Internet Protocol (IP) 21

mendefinisikan datagram, yang merupakan unit transmisi elementer di Internet mendefinisikan skema pengalamatan internet melewatkan data antara Network Access Layer dan Host to Host Transport layer routing datagram ke remote host menjalankan fragmentasi dan penyusunan kembali datagram

IP merupakan protokol yang Connectionless (tidak memerlukan handshake), tidak dilengkapi dengan error detection dan error recovery. Datagram adalah format paket yang didefinisikan oleh IP. Internet sebagaimana asalnya ARPANET merupakan jaringan yang berbasis pada packet-switching. Jadi datagram merupakan unit transmisi elementer dalam jaringan TCP/IP. IP mengirimkan datagram dengan mengecek destination address dalam header kontrol diawal datagram. Jika address tujuan tidak berada di jaringan lokal maka paket dilewatkan ke gateway(divais yang menswitch paket antara jaringan fisik yang berbeda). Memutuskan gateway yang mana yang digunakan untuk mencapai address tujuan disebut sebagai routing.

Routing datagram Ilustrasi berikut akan memperjelas bagaimana proses routing datagram melintasi beberapa jaringan fisik.
.

Aplikasi Transport Internet Network Internet Network Internet Network

Aplikasi Transport Internet Network

Gambar 1.5
22

Routing datagram melewati beberapa jaringan fisik Sistem hanya bisa mengirim paket pada divais lain yang terhubung kedalam satu jaringan fisik yang sama. Paket dari A1 dengan tujuan C1 diforward melalui gateway G1 dan G2. Host A1 pertama kali mengirim paket ke gateway G1 (karena G1 masih terhubung ke network A, dimana host A1 berada). Kemudian gateway G1 mengirimkan paket ke gateway G2 melalui network B. Dan akhirnya G2 yang juga terhubung ke network C langsung memforward paket ke address tujuan, host C1. fragmentasi datagram Ketika datagram dikirimkan melintasi jaringan yang berbeda, mungkin perlu bagi modul IP dalam gateway untuk membagi datagram kedalam bagian bagian kecil. Datagram yang diterima dari suatu jaringan mungkin terlalu besar untuk ditransmisikan dalam satu paket pada jaringan yang berbeda. Kondisi ini hanya terjadi ketika gateway menghubungkan jaringan fisik yang berbeda. Sederhananya setiap network mempunyai MTU(maximum transfer unit) yang berbeda. Jika datagram yang diterima lebih besar dari MTU maka perlu dilakukan pemecahan datagram kedalam fragmen fragmen kecil untuk ditransmisikan. melewatkan datagram ke transport layer ketika IP menerima datagram yang dialamatkan ke localhost. ia harus melewatkan bagian data dari datagram pada protokol transport layer yang sesuai. Hal ini dilakukan dengan menggunakan nomor protokol dari header datagram. Setiap protokol Transport layer mempunyai nomor protokol yang unik.

23

Internet Control Message Protocol Sebuah bagian integral dari IP adalah ICMP. Protokol ini merupakan bagian dari Internet layer dan menggunakan fasilitas pengiriman datagram IP untuk mengirim messagenya. ICMP mengirim messagenya yang berfungsi untuk kontrol, melaporkan kesalahan, dan fungsi informasi: flow control mendeteksi tujuan yang tak mungkin dicapai (unreachable) melakukan perubahan arah jalur data memeriksa remote host

Transport layer Dua protokol terpenting dalam layer ini adalah TCP(Transmission Control Protocol) dan UDP (User datagram Protocol). TCP menyediakan pelayanan pengiriman data yang andal dengan deteksi dan koreksi kesalahan dari ujung ke ujung (end to end). Sedangkan UDP menyediakan pelayanan pengiriman datagram yang connection less dan tanpa dilengkapi deteksi dan koreksi kesalahan. Kedua protokol mengirimkan data antara layer aplikasi dan layer internet. TCP merupakan protokol yang connection oriented (dan handshake).

Application layer layer ini melingkupi semua proses yang menggunakan protokol transport layer untuk mengirimkan data. Ada banyak protokol aplikasi, yang paling populer, misalnya : telnet,network terminal protocol, menyediakan fasilitas remote login lewat jaringan ftp, file transfer protocol, digunakan untuk transfer file yang interaktif smtp, simple mail tranfer protocol yang bertugas untuk mengirimkan mail

karena layer ini berhubungan langsung dengan servis yang ditawarkan pada pemakai jaringan maka protokol protokol baru masih ditambahkan yang memperkaya pelayanan pada user.

24

Dasar-dasar Pembentukan Jaringan TCP/IP


Ada beberapa konsep mendasar yang wajib dipertimbangkan dalam mensetup jaringan TCP/IP, yaitu pengalamatan (addressing), routing dan name-service. Ide dasarnya adalah bagaimana supaya data yang dikirim sampai pada mesin yang yang sesuai (mesin tujuan) dan bagaimana hal tersebut dapat dilakukan oleh operator dengan mudah. Untuk dapat berkomunikasi, data dari suatu host (mesin) harus dilewatkan ke jaringan menuju host tujuan, dan dalam host tersebut ke user atau proses yang sesuai. TCP/IP menggunakan tiga skema untuk memenuhi tugas ini, yaitu: Addressing IP Address yang mengidentifikasi secara unik setiap host di jaringan, sehingga dapat menjamin data dikirim ke alamat yang benar. Routing pengaturan gateway untuk mengirim data ke jaringan dimana host tujuan berada. Multiplexing pengaturan nomor port dan protokol yang mengirim data pada modul software yang benar didalam host. Masing masing skema, baik pengalamatan antar host, routing antar network dan multiplexing antar layer, penting untuk mengirim data antara dua aplikasi yang berkerja sama dalam jaringan TCP/IP.

Pengalamatan dan IP Address


Internet Protocol (IP) melewatkan data antar host dalam bentuk datagram. Setiap datagram dikirim ke address yang ditunjukan oleh address tujuan dalam header datagram. Address

25

tujuan adalah 32 bit IP address standard yang berisi informasi yang cukup untuk mengidentifikasi secara unik jaringan dan host tertentu di jaringan tersebut. IP address terdiri dari bagian network dan bagian host, tapi format dari bagian bagian ini tidak sama untuk setiap IP address. Jumlah bit address yang digunakan untuk mengidentifikasi jaringan, dan bilangan yang digunakan untuk mengidentifikasi host berbeda beda tergantung kelas address yang digunakan. Ada tiga kelas address utama: kelas A, kelas B dan kelas C. Dengan memeriksa beberapa bit pertama dari dari suatu address, software IP bisa dengan cepat membedakan kelas address dan strukturnya. IP address biasanya ditulis sebagai 4 urutan bilangan desimal yang dipisahkan dengan titik. Setiap bilangan tersebut berupa salah satu bilangan yang berharga diantara 0-255 (nilai desimal yang mungkin untuk 1 byte). IP mengikuti aturan berikut untuk membedakan kelas address: Address kelas A : bit pertama dari IP address adalah 0 jadi jaringan dengan IP yang byte pertamanya: 0-127 hanya ada kurang dari 128 jaringan dengan kelas A setiap jaringan kelas A bisa mempunyai jutaan host

Address kelas B : bit pertama dari IP address adalah 10 jadi jaringan dengan IP yang byte pertamanya: 128-191 terdapat ribuan jaringan dengan kelas B setiap jaringan kelas B bisa mempunyai ribuan host

26

Address kelas C : bit pertama dari IP address adalah 110 jadi jaringan dengan IP yang byte pertamanya: 192-223 terdapat jutaaan jaringan kelas C setiap jaringan kelas C hanya mempunyai kurang dari 254 host

Address kelas D : bit pertama dari IP address adalah 111 nomor jaringan dengan IP yang byte pertamanya lebih dari 223 merupakan address yang dialokasikan untuk kepentingan khusus

Ilustrasi berikut akan menunjukan bagaimana struktur address berbeda beda untuk kelas address yang berbeda. Misalnya suatu address kelas A dengan IP 26.104.0.19. Bit pertama dari address ini adalah 0 (atau desimal pertama kurang dari 128) sehingga address diterjemahkan sebagai host 104.0.19 dari network 26. Satu byte menunjukan jaringan dan 3 byte selanjutnya menunjukan host yang bersangkutan. Dalam address 128.66.12.1 dua bit pertama adalah 10 yang menunjukan bahwa mesin tersebut terhubung ke network kelas B. Jadi address tersebut diterjemahkan sebagai host 12.1 dari network 128.66 (2 byte pertama mengidentifikasi jaringan dan 2 lainnya mengidentifikasi host). Contoh ketiga adalah mesin dengan IP 192.178.16.1 yang dengan cara serupa dapat diartikan sebagai host 1 di network 192.178.16 (3 byte mengidentifikasi network dan 1byte mengidentifikasi host).

27

Address kelas A

26

104

19
Address kelas B

8 bit network address

128

66

12

1
Address kelas C

16 bit network address

192

178

16

24 bit network bit

Gambar 1.6
IP Adderss Tidak semua address network dan host dapat digunakan. Misalnya kita telah membicarakan bahwa address dengan desimal pertama lebih dari 223 dialokasikan untuk kepentingan khusus. Dua address kelas A, 0 dan 127, juga dialokasikan untuk kepentingan khusus. Network 0 menunjukan route default (digunakan untuk menyederhanakan aplikasi network dengan membiarkan host lokal di-address-kan dengan cara yang sama seperti remote-host-digunakan ketika menkonfigurasi host) dan network 127 sebagai loopback-address. Selain itu juga ada beberapa address host yang disediakan untuk kepentingan khusus ini, misalnya 0 dan 255 dalam semua kelas network. Sebuah IP address dengan semua bit hostnya nol menunjukan jaringannya sendiri, misalnya 26.0.0.0 menunjukan network 26 dan 128.66.0.0 menunjukan network 128.66. Address dalam bentuk ini digunakan dalam tabel routing untuk menunjukan seluruh network. IP address dengan semua bit host diset satu adalah broadcastaddress. Suatu address broadcast digunakan untuk alamat setiap host dalam network secara simultan. Address broadcast untuk network 128.66 adalah 128.66.255.255. Suatu datagram yang dikirim ke address ini akan diterima oleh setiap host dalam network ybs. IP address diasosiasikan dengan network-interface, bukan dengan sistem komputernya. Jadi suatu gateway mempunyai address yang berbeda untuk setiap network yang terhubung kepadanya. IP menggunakan bagian network dari address untuk routing datagram antar 28

network. Address lengkap, termasuk informasi host digunakan untuk pengiriman akhir ketika datagram mencapai network tujuan. Berkaitan dengan IP address dikenal dua istilah:

Supernetting Ada dua masalah yang saling berkaitan, antara pemberian suatu kelas address pada suatu lembaga. Pertama kelas address yang diberikan lebih kecil daripada jumlah host yang akan dihubungkan. Dan yang kedua sebaliknya, kelas address yang diberikan lebih besar dari host yang akan saling dihubungkan. Supernetting berkaitan dengan metoda untuk mengakali alokasi address yang terbatas sedemikian sehingga semua host yang tersedia dapat dihubungkan ke jaringan. Jadi supernetting adalah menggunakan bit mask terhadap address asal untuk membuat jaringan yang lebih besar.

Subnetting Masalah kedua yang berkaitan dengan bagaimana membuat suatu alokasi address efisien, bila ternyata host yang akan kita hubungkan ke jaringan lebih kecil dari pada alokasi address yang kita punyai. Yang jelas dengan menggunakan metoda subnetting, bit host IP address direduksi untuk subnet ini. Sebagai contoh, subnet mask yang diassosiasikan dengan address kelas B standard adalah 255.255.0.0. Subnet mask digunakan dengan memperluas bagian network dari suatu address kelas B dengan byte tambahan. Misalnya submask 255.255.255.0 berarti dua byte pertama mendefinisikan network kelas B, byte ketiga menunjukan address subnet, dan yang keempat baru menunjuk pada host pada subnet yang besangkutan. Masking yang byte-oriented lebih mudah dibaca dan diartikan, tapi sebenarnya subnet-masking bersifat bit-oriented, jadi misalnya seseorang bisa saja membuat subnet-mask 255.255.255.192. Berikut ilustrasi yang menunjukan efek dari subnet-mask terhadap bermacam macam address jaringan

29

IP Address 128.66.12.1 130.97.16.132 192.178.16.66 132.90.132.5 18.20.16.91

Subnet mask 255.255.255.0 255.255.255.192 255.255.255.192 255.255.240.0 255.255.0.0

Interpretasi host 1 pada subnet 128.66.12.0 host 4 pada subnet 130.97.16.128 host 2 pada subnet 192.178.16.64 host 4.5 pada subnet 132.90.128.0 host 16.91 pada subnet 18.20.0.0

Tabel 1.1
Efek subnet mask thp IP address

Routing
Ada dua garis besar arsitektur routing Internet sistem tradisional yang menggunakan sistem hirarki gateway sistem yang menggunakan routing domain

Pada sistem dengan routing domain, domain ini bertukar informasi dengan domain yang lain menggunakan BGP (Border Gateway Protocol). Setiap routing domain memproses informasi yang ia terima dari domain yang lain, hanya untuk dirinya sendiri, sehingga model ini bisa diperluas untuk banyak domain. Dan ini berlawanan dengan model sistem hirarki.

Routing Domain

Routing Domain

Routing Domain

Gambar 1.7
Area routing domain Setiap lingkaran merepresentasikan routing domain. Area yang saling overlap adalah daerah batas dimana informasi routing digunakan bersama. Domain saling bertukar informasi tapi tidak pada suatu sistem yang menyediakan semua informasi routing. Tabel routing 30

Setiap mesin yang terhubung kejaringan baik itu host maupun gateway harus membuat suatu keputusan routing. Bagi host keputusan ini sederhana saja jika host tujuan berada pada jaringan lokal data dikirim langsung jika host tujuan berada pada jaringan remote, data diforward ke gateway.

Hal yang lebih kompleks terjadi di gateway. Yang jelas routing adalah aplikasi yang networkoriented, jadi layer IP membuat suatu keputusan routing berdasarkan pada bagian network dari address. Untuk melihat bagaimana suatu mesin memutuskan kemana dia harus meneruskan paket data, dapat dilihat dengan perintah netstat -nr (yaitu tabel routing). Berikut contoh tabel routing dari suatu gateway :
Internet: Destination default 127.0.0.1 141.103 144.228 152.118 167.205.8.32 167.205.16 167.205.18 167.205.22.1 167.205.22.96 167.205.22.98 167.205.22.123 167.205.22.125 167.205.31.131 167.205.31.132 202.46 202.46.1 202.46.2 224

Gateway 167.205.136.15 127.0.0.1 167.205.136.15 167.205.136.15 167.205.136.15 167.205.31.132 167.205.22.99 167.205.22.106 127.0.0.1 link#1 0:0:0:0:0:1 0:80:48:91:e8:40 0:80:48:90:29:9f 0:80:48:81:c6:b3 0:0:e8:c0:1:89 167.205.136.15 167.205.136.15 167.205.136.15 link#1

Flags UG UH UG UG UG UG UG UG UH UC UHL UHL UHL UHL UHL UG UG UG UCS

Refs 7 0 0 0 0 0 1 0 0 0 3 2 0 0 7 0 0 0 0

Use 36325 30 0 16 0 168 1335 467 289 0 2346 16219 200 1 90424 0 249 0 0

Interface sl0 lo0 sl0 sl0 sl0 ed1 ed0 ed0 lo0 ed0 ed0 lo0 ed0 lo0 ed1 sl0 sl0 sl0 ed0

Mekanisme routing berdasarkan tabel routing Berikut adalah contoh bagaimana suatu data mencapai address tujuannya dengan menggunakan tabel routing.

31

Aplikasi Transport
tujuan 128.66.1.0 128.66.12.0 default gateway 128.66.1.0 128.66.12.0 128.66.12.1 tujuan 128.66.1.0 128.66.12.0 default gateway 128.66.1.5 128.66.12.3 128.66.12.1

Aplikasi Transport
tujuan 128.66.1.0 default gateway 128.66.1.2 128.66.1.5

Network Access 128.66.12.2

Network Access 128.66.12.3 128.66.1.5

Network Access 128.66.1.2

128.66.12.0

128.66.1.0

Gambar 1.8
Penggunaan tabel routing Ketika suatu host 128.66.12.2 mengirim data pada suatu host (128.66.1.2), ia pertama kali mengidentifikasi bahwa 128.66.1.2 adalah jaringan lokal address kelas B dan melakukan operasi masking yang sesuai (misalkan suatu jaringan 128.66.0.0 dengan masking 255.255.255.0), sehingga mesin itu tahu bahwa address network tujuan adalah 128.66.1.0. Tabel routing pada host asal menunjukan bahwa data dengan tujuan 128.66.1.0 harus dilewatkan ke gateway 128.66.12.3. Gateway 128.66.12.3 langsung melakukan pengiriman pada interface 128.66.1.5, dengan melihat tabel routing yang menunujukan semua sistem hanya mempunyai satu gateway dan host langsung terhubung kepadanya maka mesin dengan interface 128.66.1.5 langsung memforward data ke 128.66.1.2.

Name-service
Setiap network interface yang terhubung ke jaringan TCP/IP diidentifikasi dengan 32 bit unik IP address. Sebuah nama (hostname) dapat diassosiasikan dengan sembarang divais yang mempunyai IP address. Dibandingkan dengan address internet numerik, hostname relatif lebih mudah diingat dan diketik. Yang perlu diperhatikan adalah software tidak memerlukan hostname, tapi hal ini dilakukan untuk mempermudah manusia dalam menggunakan jaringan. Dalam hampir setiap kasus hostname dan IP address dapat saling menggantikan, misalnya anda akan men-telnet suatu host yang anda ketahui mempunyai IP

32

address 167.205.31.132 dan mempunyai nama gopher.ee.itb.ac.id maka operasi berikut adalah ekivalen :
% telnet gopher.ee.itb.ac.id % telnet 167.205.31.132

Walaupun demikian, setiap mesin tetap menggunakan IP address untuk berkomunikasi lewat jaringan. Jadi bedanya dua perintah diatas adalah ketika anda mengetikan hostname maka yang dilakukan komputer adalah mencari ekivalen IP address hostname yang bersangkutan dalam tabel lokal maupun DNS, kemudian baru perintahnya dijalankan. Sedangkan bila anda langsung mengetikan IP address komputer tidak perlu lagi mengkonversinya dan langsung mengerjakan perintah. Ada dua metoda yang biasa dilakukan untuk mentranslasikan nama dengan address. Metoda ini adalah: Menggunakan host-table Menggunakan DNS (Domain Name Service)

Host-table adalah file teks sederhana yang mengassosiasikan hostname dengan address. Dalam kebanyakan system berbasis Unix tabel ini berada di file /etc/hosts. Berikut contoh file
/etc/hosts: # $Id: hosts,v 1.4 1994/06/24 23:50:16 wollman Exp $ # # Host Database # This file should contain the addresses and aliases # for local hosts that share this file. # In the presence of the domain name service or NIS, this file may # not be consulted at all; see /etc/host.conf for the resolution order. # # 127.0.0.1 # # Imaginary network. localhost

33

#10.0.0.2 #10.0.0.3 #

myname.my.domain myname myfriend.my.domain myfriend

# According to RFC 1597, you can use the following IP networks for # private nets which will never be connected to the Internet: # # # # # # In case you want to be able to connect to the Internet, you need # real official assigned numbers. PLEASE PLEASE PLEASE do not try # to invent your own network numbers but instead get one from your # network provider (if any) or from the Internet Registry (ftp to # rs.internic.net, directory `/templates'). 202.46.1.2 167.205.22.98 167.205.22.100 167.205.22.123 167.205.31.129 167.205.31.130 167.205.31.132 167.205.22.119 167.205.22.120 167.205.136.15 167.205.136.1 167.205.22.1 167.205.22.124 167.205.22.100 167.205.22.98 167.205.22.99 # 167.205.184.1 167.205.184.65 # smartcom.en.itb.ac.id stke.en.itb.ac.id caddsys.iptek.net.id system.paume.itb.ac.id design.paume.itb.ac.id maingtw.paume.itb.ac.id maingtw ee-hq.ee.itb.ac.id ee-lss.ee.itb.ac.id gopher.ee.itb.ac.id cdrom.paume.itb.ac.id dns.paume.itb.ac.id pusren.telkom.go.id rs6000.telkom.go.id myslip.paume.itb.ac.id www.itb.ac.id design.paume.itb.ac.id system.paume.itb.ac.id nmi.paume.itb.ac.id 10.0.0.0 172.16.0.0 192.168.0.0 10.255.255.255 172.31.255.255 192.168.255.255

Perintah yang didahului dengan # adalah komentar. Format perintah yang menghubungkan hostname dengan addressnya adalah
<IP address> <hostname> [alias]

34

Pada host-table diatas anda dapat melihat beberapa reserve-word yang disediakan Unix untuk keperluan tertentu. Misalnya pada baris
127.0.0.1 167.205.22.123 localhost maingtw.paume.itb.ac.id loghost

Pada baris pertama, seperti telah disinggung sebelumnya, kelas A 127 digunakan untuk loopback network. Address 127.0.0.1 merupakan address khusus yang digunakan untuk loopback address host lokal. Dengan konvensi ini memungkinkan suatu host mengalamati dirinya sendiri dengan cara yang sama ketika ia mengalamati remote-host. Loopback address juga menyederhanakan software dengan membolehkan kode yang sama digunakan untuk berkomunikasi dengan proses lokal maupun remote. Cara ini juga mereduksi trafik jaringan, karena localhost address diassosiasikan dengan sebuah divais loopback yang me-loop data kembali ke host sebelum ia ditransmisikan ke jaringan. Pada baris selanjutnya terdapat reserve word loghost. Ia merupakan nama host khusus yang digunakan oleh syslog daemon, syslogd. Program seperti syslog menulis langsung keluarannya ke host yang telah diassosiasikan dengan nama generik diatas, loghost. Reserve yang lain misalnya lprhost, mailhost, dan dumphost. Konversi hostname dan address dengan cara ini masih digunakan untuk beberapa keadaan seperti: Kebanyakan sistem yang mempunyai host table kecil yang berisi informasi dan address host host yang penting pada jaringan lokal.Tabel kecil ini digunakan ketika DNS tidak berjalan, seperti ketika system-startup. Walaupun anda menggunakan DNS, anda masih harus membuat file /etc/hosts kecil yang berisi entri hostnya sendiri, localhost dan untuk gateway dan server pada jaringan lokal. Site yang menggunakan NIS, menggunakan host table sebagai input pada database host NIS(Network Information System). Anda bisa menggunakan NIS sebagai konjungsi DNS, tapi walaupun mereka digunakan bersama, kebanyakan site NIS membuat host table yang mempunyai sebuah entri untuk setiap host pada jaringan lokal Site yang sangat kecil, yang tidak terhubung ke Internet, kadang kadang juga menggunakan host-table. Jika hanya terdapat sedikit host lokal dan informasinya jarang berubah, dan juga tidak diperlukan komunikasi(TCP/IP) dengan remote-host, 35

maka penggunaan DNS hanya mempunyai sedikit keuntungan saja dibandingkan dengan penggunaan host-table. Beberapa site yang tidak menjalankan sistem Unix atau sistem yang lebih tua, tidak dapat menggunakan DNS. Jika ia tidak bisa diupgrade maka site ini harus menggunakan file /etc/hosts yang besar. Untuk host-host yang terhubung ke Internet, hampir wajib menggunakan DNS. Kalau ini tidak dilakukan maka diperlukan host-table yang besar ukurannya. Unix menyediakan perintah untuk membuat /etc/hosts dan /etc/network secara otomatis dari data yang tersedia di NIC (Network Information Center). Cara ini sebaiknya tidak dilakukan karena seperti telah disebutkan sebelumnya, untuk host yang terhubung langsung ke Internet sebaiknya menggunakan sistem database terdistribusi seperti DNS. Sedangkan untuk membuat host-table lokal bagi sistem yang didukung DNS anda hanya tinggal meluangkan sedikit waktu untuk membuat maupun mengeditnya sehingga sesuai untuk host yang bersangkutan. DNS (Domain Name Service) DNS dibuat berdasarkan kelemahan utama dari penggunaan host-table. DNS merupakan sistem database terdistribusi yang tidak banyak diperngaruhi oleh bertambahnya database. DNS menjamin informasi host terbaru akan disebarkan ke jaringan bila diperlukan. Jika server DNS menerima permintaan informasi tentang host yang dia tidak mempunyai informasi tentangnya, ia memforward permintaan pada authoritative server (sembarang server yang bertanggung jawab untuk memberikan informasi akurat tentang domain yang diminta.Ketika authoritative server menjawab server lokal menyimpan jawabannya untuk penggunaan mendatang. Sehingga apabila setelah itu ada permintaan informasi yang sama ia langsung menjawabnya. Kemampuan untuk mengkontrol informasi host dari sumber yang authoritative dan secara otomatis menyebarkan informasi akurat membuat DNS unggul dibandingkan dengan host-table. Hirarki domain DNS merupakan sistem hirarki terdistribusi untuk mendapatkan hubungan hostname dengan IP address. Dibawah DNS tidak ada database sentral dengan semua informasi host Internet. Informasi didistribusikan pada ribuan nameserver yang diorganisasi kedalam hirarki, hampir sama dengan sistem file di Unix. DNS mempunyai root domain diatas hirarki domain yang disebut sebagai root server. 36

langsung dibawah root domain ada top level domain. Ada dua tipe top level domain: geografis dan organisasional. Domain geografis diset untuk setiap negara dan diidentifikasi dengan dua huruf kode. Domain organisasional didasarkan pada tipe organisasi (komersial,militer dll) Berikut contoh suatu domain hirarki. Detil konfigurasi dan implementasi DNS dibahas pada bab tersendiri.

. (root)

Net

Gov

Mil

Org

Com

Edu

Nih Dcrt Niddk Gambar 1.9


Hirarki domain

Nits Nuts Sales

37

2
Perencanaan LAN dan Internetwork TCP/IP
Pada bab ini akan dibahas dasar-dasar perencanaan jaringan, media implementasinya, dan penggabungan jaringan (internetwork) dengan protokol TCP/IP.

38

Pendahuluan
Setelah mengikuti bab ini Anda diharapkan dapat: mengetahui dasar-dasar perencanaan jaringan mengetahui media 10BASE2, 10BASE5, dan 10BASE-T mengetahui dasar-dasar perencanaan internetwork TCP/IP

Metodologi Perencanaan LAN


Pada bagian ini yang akan dibahas adalah dasar-dasar perancangan LAN. Tujuan utama adalah untuk merancang LAN yang memenuhi kebutuhan pengguna saat ini dan dapat dikembangkan di masa datang sejalan dengan peningkatan kebutuhan pengguna. Gagasan tentang LAN sebagai media yang digunakan bersama merupakan kunci utama dalam perancangan dan perencanaan LAN. Infrastruktur LAN adalah pengkabelan sebagai jalur fisik komunikasi setiap devais jaringan. Infrastruktur yang dirancang dengan baik cukup fleksibel untuk memenuhi kebutuhan sekarang dan masa datang. Metodologi Perancangan LAN: Tunjuk seorang manajer network Tinjau kemungkinan penggunaan kembali kabel yang ada Gambar peta yang menunjukkan tempat komputer yang diinginkan Gambar jaringan menggunakan topologi yang dibahas di bab ini dan mengikuti jalur kabel yang ada Tentukan kebutuhan peralatan berdasarkan rancangan Beli peralatan yang dibutuhkan Install

Di antara hal-hal yang perlu diperhatikan dalam perancangan LAN adalah lokasi fisik itu sendiri. Peta atau cetak biru bangunan-bangunan yang akan dihubungkan sangat diperlukan 39

demikian juga dengan informasi jalur kabel (conduit) yang ada dan menghubungkan bangunan-bangunan tersebut. Jika peta seperti ini tidak ada maka perlu digambarkan peta dengan cara merunut kabel-kabel yang ada. Secara umum dapat diasumsikan bahwa pengkabelan yang menghubungkan bangunan-bangunan atau yang melewati tempat terbuka harus terdapat di dalam conduit. Seorang manajer jaringan harus menghubungi manajer bangunan untuk mengetahui aturan-aturan pengkabelan ini sebab manajer bangunan yang mengetahui dan bertanggung jawab atas bangunan tersebut. Pada setiap lokasi (yang dapat terdiri dari beberapa bangunan) harus ditunjuk seorang manajer jaringan. Manajer jaringan harus mengetahui semua konfigurasi jaringan dan pengkabelan pada lokasi yang menjadi tanggung jawabnya. Pada awalnya tugas ini hanya memakan waktu sedikit. Sejalan dengan perkembangan jaringan menjadi lebih kompleks, tugas ini berubah menjadi tugas yang berat. Jadi untuk tugas ini sebaiknya dipilih orang yang betul-betul berminat dan mau terlibat dalam perkembangan jaringan.

Media Implementasi Jaringan


Pada bagian ini akan dibahas mengenai bermacam-macam media yang biasa digunakan untuk membangun sebuah jaringan komputer terutama media kabel. Dalam hal ini kabel yang digunakan adalah twisted pair dan coaxial.

Twisted Pair ( shielded dan unshielded)


Kabel twisted pair dapat dibagi menjadi dua macam yaitu shielded yang memiliki selubung pembungkus dan unshielded yang tidak mempunyai selubung pembungkus. Kabel ini mempunyai karakteristik sebagai berikut: 40 merupakan sepasang kabel yang di-twist satu sama lain dengan tujuan untuk mengurangi interferensi listrik. dapat terdiri dari dua, empat, atau lebih pasangan kabel ada dua jenis kabel twisted pair yaitu UTP (unshielded twisted pair) dan STP (shielded twisted pair) dapat melewatkan signal sampai 10 mbps

hanya dapat menangani satu channel data (baseband) koneksi pada twisted pair biasanya menggunakan konektor RJ-11 atau RJ-45 STP lebih tahan interferensi daripada UTP dan dapat beroperasi pada kecepatan yang lebih tinggi sampai 100 mbps, namun lebih sulit ditangani secara fisik

Gambar 2-1
Kabel UTP

Kabel Koaksial
Kabel ini mempunyai sifat-sifat sebagai berikut: paling populer digunakan pada Local Area Network (LAN) memiliki bandwidth yang lebar, sehingga bisa digunakan untuk komunikasi broadband (multiple channel) ada bermacam-macam jenis kabel coax seperti kabel TV, thick, ARCnet, dan thin coax. thick coaxial dikenal dengan nama 10Base5, biasanya digunakan untuk kabel backbone pada instalasi jaringan ethernet antar gedung. Kabel ini sulit ditangani secera fisik karena tidak flexibel, dan berat, namun dapat menjangkau jarak 500 m bahkan 2500 m dengan repeater. thin coaxial lebih dikenal dengan nama RG-58, cheapernet, 10Base2, dan thinnet, biasanya digunakan untuk jaringan antar workstation. Dapat digunakan untuk implementasi topologi bus dan ring karena mudah ditangani secara fisik.

41

insulator dalam

insulator luar

konduktor luar konduktor dalam

Gambar 2-2
Kabel kaksial thick atau thick ethernet

Fiber Optic
Mahal Bandwidth lebar hampir tidak ada resistansi dan loss tidak bisa di-tap di tengah tidak terganggu oleh cuaca dan panas merupakan salah satu kabel utama di masa depan

Wireless
instalasi mudah dilakukan setiap workstation berhubungan dengan hub atau cosentrator melalui gelombang radio atau infra merah

42

Topologi Fisik Jaringan


Topologi Bus atau Daisy Chain
Topologi ini memiliki karakteristik sebagai berikut: merupakan satu kabel yang kedua ujung nya ditutup, dimana sepanjang kabel terdapat node-node paling prevalent karena sederhana dalam instalasi signal melewati kabel dalam dua arah dan mungkin terjadi collision problem terbesar : kabel putus, jika salah satu segmen kabel putus, maka seluruh jaringan akan terhenti. Terminator Terminator

Workstation

Workstation

File Server

Workstation

Workstation

Gambar 2-3
Topologi Bus

43

Topologi Ring
Topologi ini mempuyai karakteristik sebagai berikuyt: lingkaran tertutup yang berisi node-node sederhana dalam layout signal mengalir dalam satu arah, sehingga dapat menghindarkan terjadinya collision (dua paket data bercampur), sehingga memungkinkan pergerakan data yang cepat dan collision detection yang lebih sederhana problem: sama dengan topologi bus biasanya topologi ring tidak dibuat secara fisik melainkan direalisasikan dengan sebuah consentrator dan kelihatan seperti topologi star

Workstation

Workstation

Workstation

File Server

Workstation

Workstation

Gambar 2-4
Topologi Ring

Topologi Star
Topologi ini mempunyai karakteristik sebagai berikut: setiap node berkomunikasi langsung dengan central node, traffic data mengalir dari node ke central node dan kembali lagi.

44

mudah dikembangkan, karena setiap node hanya memiliki kabel yang langsung terhubung ke central node keunggulan : jika satu kabel node terputus yang lainnya tidak terganggu dapat digunakan kabel yang lower grade karena hanya menghandel satu traffic node, biasanya digunakan kabel UTP Central node (consentrator) File Server Workstation

Workstation

Workstation

Workstation

Gambar 2-5
Topologi Star

Topologi Logic
Ethernet
dikembangkan oleh Xerox Corp. pada tahun 70-an, dan menjadi populer pada tahun 80-an karena diterima sebagai standard IEEE 802.3 Ethernet bekerja berdasarkan broadcast network, dimana setiap node menerima setiap transmisi data yang dikirim oleh sebuah node. menggunakan metoda CSMA/CD (carrier sense multiple access/collision detection) baseband cara kerja ethernet secara ringkas adalah sebagai berikut: sebelum mengirimkan paket data, setiap node melihat apakah network juga sedang mengirimkan paket data. Jika network busy, node itu mengunggu sampai tidak ada sinyal lagi yang dikirim oleh network. Jika network sepi, barulah itu node mengirimkan paketnya. Jika pada saat 45

yang sama ada dua node yang mengirimkan data, maka terjadi collision. Jika terjadi collision, kedua node mengirimkan sinyal jam ke network dan semua node berhenti mengirimkan paket data dan kembali menunggu. Kemudian secara random, nodenode itu kembali menunggu atau mengirimkan data. Paket yang mengalami collision akan dikirimkan kembali saat ada kesempatan.

Destination Address 6 bytes

Source Address 6 bytes

Type 6 bytes

Frame Data 46-1500 bytes

CRC 4 bytes

Gambar 2-6
Ethernet Frame kecepatannya 10 mbps, dan menurun dengan semakin banyaknya node yang terpasang implementasi dapat dilakukan dengan berbagai media seperti: 1. 10baseT : menggunakan kabel UTP, 10 mbps, baseband 2. 10base2 : menggunakan kabel thin coax, 10 mbps, baseband 3. 10base5 : menggunakan kabel thick coax, 10 mbps, baseband

Token Ring
berdasarkan standard IEEE 802.5 yang dikembangkan oleh IBM. untuk menghindari colision tidak menggunakan collision detection melainkan token passing scheme token passing scheme dapat dijelaskan secara sederhana sebagai berikut: Sebuah token yang bebas mengalir pada setiap node melalui network. Saat sebuah node ingin mengirikam paket, node itu meraih dan melekatkan frame atau paket-nya ke token. Sekarang token tidak dapat digunakan lagi oleh node yang lain sampai data mencapai tujuannya. Jika telah sampai token dilepaskan lagi oleh originating station. Token mengalir di network dalam satu arah dan setiap station di-poll satu persatu. kecepatannya 4 mbps dan 16 mbps

46

ARCnet
dikembangkan oleh DataPoint pada tahun 70-an dan dipopulerkan oleh Standard Microsystems Inc. menggunkan prinsip token passing scheme dan broadcast prinsip kerjanya secara sederhana adalah dengan melewatkan token ke setiap node yang memiliki nomor broadcast tertentu kecepatannya 2.5 mbps dan 20 mbps implementasi menggunakan kabel coax RG 62 card network ARCnet lebih murah daripada card ethernet menggunakan topologi fisik star tidak dapat bekerja pada satu bus, sehingga jarang digunakan pada internetworking UNIX-DOS

FDDI
FDDI (Fiber Distributed Data Interface) digunakan dengan kabel fiber optic bekerja berdasarkan dua ring konsentrik, masing-masing berkecepatan 100 mbps, dengan menggunakan token passing scheme salah satu ring dapat berfungsi sebagai bakc-up, atau dibuat menjadi pengirim saja ( mengirim dan menerima data dalam arah yang berbeda) bisa mencapai 1000 node tidak kompatibel dengan ethernet, namun ethernet dapat dienkapsulasi dalam paket FDDI bukan merupakan standard IEEE

47

Jaringan Ethernet
Komponen Jaringan Ethernet
Sampai saat ini Ethernet menggunakan media kabel thin coax, thick coax, fiber optic, dan UTP dengan jumlah node maximum 1024. Pada instalasi jaringan yang luas, biasanya antar gedung: biasanya digunakan kabel fiber optic atau thick coax sebagai backbones. Kabel Backbones ini berfungsi sebagai bus segment linier dengan panjang maximum 500 m, dan 2500 m jika menggunakan repeater, dimana satu segment dapat dihubungkan dengan 100 node. komputer dihubungkan ke backbones dengan manggunakan drop cable, melalui sebuah transceiver.

Transceiver Terminator Drop Cable

Work Station

File Server 1

Work Station

Gambar 2-7
Thick coax sebagai backbone pada jaringan thick-ethernet Untuk instalasi yang lebih kecil, biasanya dalam satu gedung: 48 digunakan kabel thin coax atau UTP. jarak maximum satu segment kabel thin coax adalah 185 m - 300 m dan 100 node per segment kabel UTP digunakan dengan topologi star, dan memerlukan sebuah hub atau consentrator yang diletakkan di tengah-tengah topologi star.

BNC T-Connector

BNC Terminator

BNC Connector Work Station Work Station

Repeater

Work Station

Work Station

File Server 2 Work Station

File Server 1 Work Station

BNC Terminator

Gambar 2-8
Implementasi ethernet dengan thin-coax

Instalasi Kabel Ethernet


Kabel thin-ethernet dibuat dengan kabel coax RG-58. Panjang minimal satu segment adalah 18 inchi. Pada kedua ujung kabel ini dipasangi konektor BNC. Dibutuhkan juga konektor T BNC. Kedua ujung segment kabel harus dipasangi BNC Terminator. Instalasi Kabel Thin-Ethernet satu segmen terdiri dari: 1. kabel koaksial RG-58 2. sepasang konektor BNC untuk menghubungkan sebuah node digunakan BNC T satu segmen harus diakhiri dengan terminator BNC panjang minimum 18 inchi

49

Kabel koaksial RG-58

BNC Connetctor BNC Connetctor BNC T BNC T

BNC Terminator

BNC Terminator

Gambar 2-9
Contoh segment kabel thin coax Instalasi Kabel Thick-Ethernet satu segmen terdiri dari: 1. kabel koaksial RG-8 2. sepasang konektor BNC untuk menghubungkan sebuah node digunakan transceiver dan drop cable melalui konektor DB 15 satu segmen harus diakhiri dengan terminator

50

Kabel koaksial RG-8

BNC Connetctor

Transceiver

BNC Connetctor

DB 15 ke node

Terminator

Drop Cable

Gambar 2-10
Contoh segmen kabel thick-coax Instalasi Kabel Star-Ethernet satu segmen terdiri dari: 1. kabel UTP 2. sepasang konektor RJ-45 atau RJ-11 tidak ada persilangan antar kaki-kaki konektor

Kabel UTP yang digunakan adalah 24 AWG. Dibutuhkan juga konektor RJ-45 dan RJ-45 crimp tool untuk memasangkan kabel ke konektornya. Untuk topologi star dibutuhkan juga consentrator yang berfungsi sebagai pusat perkabelan dan meneruskan paket-paket ethernet ke tujuan yang benar.

51

Kabel UTP

Konektor RJ-45

Gambar 2-11
Kabel UTP dan konektornya

Menghubungkan PC ke Jaringan Ethernet


Setiap PC dihubungkan ke jaringan ethernet dengan perantaraan Network Interface Card yang cocok untuk digunakan dengan kabel coax, twisted pair, atau fiber-optic. Hal-hal yang perlu dikonfigurasi pada card adalah: I/O address. Setiap card yang ada pada PC memiliki I/O address yang unik. Tidak boleh ada dua card yang memiliki I/O address yang sama. Address yang aman untuk digunakan : 220 240 280 2A0 2C0 340. IRQ level. Sama halnya dengan I/O address, IRQ level setiap card tidak boleh ada yang sama. Tabel dibawah ini menunjukkan IRQ level mana yang boleh digunakan oleh network interface card:

52

Interrupt Level IRQ 2 IRQ 3 IRQ 4 IRQ 5 IRQ 7 IRQ 10 IRQ 11 IRQ 15

Digunakan oleh EGA/VGA card Com 1 Com 2 LPT 2 LPT 1 kosong kosong kosong

Tabel 2-1
Daftar IRQ pada PC

Shared Memory (RAM) base address Direct Memory Access (DMA) Channel Output Port. Harus dipilih apakah menggunakan kabel thin coax (BNC), thick coax (AUI), atau UTP.
jumper shared memory base address jumper I/O address

UTP out Thick ethernet out jumper IRQ level BNC out

jumper dma channel

Gambar 2-12
Network Interface Card dan jumper-jumpernya Biasanya pemilihan I/O address, IRQ level, DMA, shared memory dilakukan dengan memindahkan jumper-jumper yang ada pada card. Penetapan posisi jumper ini harus sesuai 53

dengan petunjuk yang ada pada manual card. Sebagai contoh pada card Compex penetuan I/O address dan IRQ level digambarkan sebagai berikut:

200h 220h 240h 260h 280h 2A0h 2C0h 2E0h

300h 320h 340h 360h 380h 3A0h 3C0h 3E0h

Gambar 2-12
Jumper I/O address pada NIC Compex

J6A

J6B IRQ 2 IRQ 3 IRQ 4 IRQ 5 IRQ 7 IRQ 10 IRQ 11 IRQ 15

Gambar 2-13
Jumper IRQ level pada NIC Compex

Elemen-Elemen Internetworking
54

Internetworking umumnya dibangun menggunakan tiga elemen yang berbeda: hubungan data LAN biasanya terbatas dalam satu bangunan atau kampus dan beroperasi menggunakan sistem pengkabelan private hubungan data WAN umumnya menggunakan saluran telekomunikasi data public, seperti X.25 PSDN, Frame Relay, ISDN, ATM devais penghubung jaringan devais ini secara umum dibagi dalam beberapa katagori: 1. repeater 2. bridge 3. router 4. switch 5. converter Dari kelima katagori devais di atas, lebih mudah menentukan kapan menggunakan repeater, switch, dan konverter dalam situasi internetwork. Keputusan mengenai pemilihan penggunaan router atau bridge merupakan keputusan yang lebih sulit.

Repeater
Fasilitas paling sederhana dalam internetwork adalah repeater. Fungsi utama repeater adalah menerima sinyal dari satu segmen kabel LAN dan memancarkannya kembali dengan kekuatan yang sama dengan sinyal asli pada segmen (satu atau lebih) kabel LAN yang lain. Repeater beroperasi pada Physical layer dalam model jaringan OSI. Jumlah repeater biasanya ditentukan oleh implementasi LAN tertentu. Penggunaan repeater antara dua atau lebih segmen kabel LAN mengharuskan penggunaan protocol Physical layer yang sama antara segmen-segmen kabel tersebut. Sebagai contoh, repeater dapat menghubungkan dua buah segmen kabel Ethernet 10BASE2.

Bridge
55

Sebuah bridge juga meneruskan paket dari satu segmen LAN ke segmen lain, tetapi bridge lebih fleksibel dan lebih cerdas daripada repeater. Bridge menghubungkan segmen-segmen LAN di Data Link layer pada model OSI. Beberapa bridge mempelajari alamat Link setiap devais yang terhubung dengannya pada tingkat Data Link dan dapat mengatur alur frame berdasarkan alamat tersebut. Semua LAN yang terhubung dengan bridge dianggap sebagai satu subnetwork dan alamat Data Link setiap devais harus unik. LAN yang terhubung dengan menggunakan bridge umum disebut sebagai Extended LAN. Bridge dapat menghubungkan jaringan yang menggunakan metode transmisi berbeda dan/atau medium access control yang berbeda. Misalnya, bridge dapat menghubungkan Ethernet baseband dengan Ethernet broadband. Bridge mungkin juga menghubungkan LAN Ethernet dengan LAN token ring, untuk fungsi ini, bridge harus mampu mengatasi perbedaan format paket setiap Data Link. Bridge mampu memisahkan sebagian trafik karena mengimplementasikan mekanisme pemfilteran frame (frame filtering). Mekanisme yang digunakan di bridge ini umum disebut sebagai store and forward sebab frame yang diterima disimpan sementara di bridge dan kemudian di-forward ke worksation di LAN lain. Walaupun demikian, broadcast traffic yang dibangkitkan dalam LAN tidak dapat difilter oleh bridge.

Router
Router memberikan kemampuan melalukan paket dari satu sistem ke sistem lain yang mungkin memiliki banyak jalur di antara keduanya. Router bekerja pada lapisan Network dalam model OSI. Umumnya router memiliki kecerdasan yang lebih tinggi daripada bridge dan dapat digunakan pada internetwork dengan tingkat kerumitan yang tinggi sekalipun. Router yang saling terhubung dalam internetwork turut serta dalam sistem ke sistem lain. Router dapat digunakan untuk menghubungkan sejumlah LAN (dan extended LAN) sehingga trafik yang dibangkitkan oleh sebuah LAN terisolasikan dengan baik dari trafik yang dibangkitkan oleh LAN lain dalam internetwork. Jika dua atau lebih LAN terhubung dengan router, setiap LAN dianggap sebagai subnetwork yang berbeda. Mirip dengan bridge, router 56 sebuah algoritma terdistribusi untuk menentukan jalur optimum yang dilalui paket yang harus lewat dari satu

dapat menghubungkan data link yang berbeda. Seperti contoh, router dapat menghubungkan dua LAN yang berbeda atau untuk menghubungkan data link LAN dengan data link WAN.

Switch
Di samping repeater, bridge, dan router, terdapat sejumlah tipe peralatan switching lain yang dapat digunakan dalam membangun internetwork. Tujuan utama menghubungkan LAN menggunakan repeater dan bridge adalah meningkatkan keleluasaan atas beberapa keterbatasan media komunikasi LAN. Alat penghubung ini mampu menambah jumlah perangkat jaringan yang terhubung dalam LAN. Peralatan switch didesain dengan tujuan yang berbeda dengan repeater, bridge, dan router. Jika perangkat jaringan yang terhubung dalam sebuah LAN menjadi terlalu banyak maka kebutuhan transmisi meningkat melebihi kapasitas yang mampu dilayani oleh medium komunikasi jaringan. Salah satu ide penggunaan router adalah mengisolasikan group fisik jaringan dengan yang lain. Penggunaan router cocok pada sistem internetwork dengan kelompok-kelompok kerja yang terletak dalam lokasi yang kecil. Lalu lintas data dalam jaringan kelompok-kelompok kerja ini tentu lebih besar dibandingkan dengan lalu lintas antar kelompok kerja. Dalam kasus kelompok-kelompok kerja yang terletak terpisah secara geografis, penggunaan router tetap tidak dapat mengisolasikan lalu lintas data. Lalu lintas data dalam kelompok kerja yang tinggi akan menyebabkan beban di router tetap tinggi karena lalu lintas tersebut selalu melewati router. Cara mengatasi hal ini adalah dengan menggunakan beberapa segmen medium tranmisi secara paralel dalam internetwork. Router sendiri tetap dapat digunakan untuk menghubungkan segmen-segmen tersebut dan tetap mampu mengisolasi trafik antarsegmen. Perangkat network dapat dihubungkan ke medium transmisi yang sesuai atau dengan menggunakan hub yang mengimplementasikan fasilitas switching, seperti module assignment hub, bank assignment hub, dan port assignment hub.

Converter

57

Converter dapat dianggap sebagai tipe devais yang berbeda daripada repeater, bridge, router, atau switch dan dapat digunakan bersama-sama. Converter (kadang disebut gateway) memungkinkan sebuah aplikasi yang berjalan pada suatu sistem berkomunikasi dengan aplikasi yang berjalan pada sistem lain yang berjalan di atas arsitektur network berbeda dengan sistem tersebut. Converter bekerja pada lapisan Application pada model OSI dan bertugas untuk melalukan paket antar jaringan dengan protokol yang berbeda sehingga perbedaan tersebut tidak tampak pada lapisan aplikasi. Di samping menggunakan converter, metode lain untuk menghubungkan jaringan dengan arsitektur berbeda adalah dengan tunelling. Metode ini membungkus paket -termasuk protokolnya- yang akan dilewatkan pada protokol lain. Pembungkusan ini dilakukan dengan menambahkan header protokol pada paket yang akan dilewatkan. Metode ini dapat dilihat sebagai sebuah arsitektur jaringan yang berjalan di atas arsitektur jaringan yang lain. Perangkat tempat terjadinya proses tunnelling ini disebut sebagai portal

Internetwork heterogen
Sebuah LAN secara data link sebenarnya dapat terdiri atas beberapa arsitektur jaringan individual yang masing-masing tidak dapat berkomunikasi dengan arsitektur lain. Pada lapisan Data Link NIC di sebuat sistem masih mampu berkomunikasi dengan NIC di sistem lain. Software jaringan yang terletak pada lapisan di atas Data Link hanya akan memperhatikan sistem lain yang kompatibel dengannya dan tidak dapat berkomunikasi dengan sistem yang berjalan dengan software jaringan yang tidak kompatibel dengannya. Fungsi lapisan Transport dan Network pada setiap sistem TCP/IP hanya bisa berkomunikasi dengan sistem TCP/IP lain, NetWare hanya berkomunikasi dengan sistem NetWare lain, begitu pula dengan sistem jaringan lain. LAN seperti ini disebut sebagai LAN heterogen dan internetwork yang menghubungkan LAN-LAN seperti ini disebut sebagai internetwork heterogen. Sebuah sistem dapat saja mempunyai sebuah data link dengan beberapa jenis software (protokol) jaringan pada lapisan atasnya. Dengan cara ini sebuah sistem dapat berkomunikasi dengan beberapa protokol jaringan sehingga misalnya sebuah sistem dapat berkomunikasi 58

dengan server TCP/IP dan server NetWare. Tujuan umum dalam dunia jaringan di masa ini adalah agar pengguna dapat berkomunikasi dengan sistem komputasi lain di internetwork.

Internetwork menggunakan bridge


Bridge yang bekerja pada lapisan Data Link mampu menghubungkan LAN-LAN yang berbeda protokol. Bridge tidak akan memeriksa jenis protokol setiap frame yang perlu dilewatkan. Contoh internetwork menggunakan bridge dapat dilihat pada gambar 2-14. Dalam internetwork tersebut setiap sistem TCP/IP dapat berhubungan dengan sistem TCP/IP lain, demikian pula dengan sistem NetWare.

NetWare LAN 1

TCP/IP

TCP/IP Bridge TCP/IP NetWare LAN 3 LAN 2 TCP/IP NetWare TCP/IP TCP/IP TCP/IP

Gambar 2-14
Internetwork menggunakan bridge

Keuntungan menggunakan bridge: biaya; bridge adalah perangkat yang cukup sederhana dan umumnya lebih murah daripada router kemudahan penggunaan; bridge umumnya lebih mudah dipasang dan dirawat kinerja; karena bridge cukup sederhana, overhead pemrosesan lebih kecil dan cenderung mampu menangani traffic yang lebih tinggi 59

Kerugian menggunakan bridge volume traffic; bridge lebih cocok pada jaringan dengan volume traffic total yang relatif rendah broadcast storm; frame broadcast dilewatkan bridge ke seluruh LAN dan ini dapat menyebabkan traffic melebihi kapasitas medium jaringan loop; kesalahan mengkonfigurasi bridge dapat menyebabkan frame berputar melewati bridge tanpa henti alamat yang sama; alamat fisik setiap stasiun dalam jaringan harus berbeda dengan yang lain nama yang sama; jika nama network yang sama digunakan oleh dua atau lebih user akan menyebabkan traffic yang berlebihan

Internetwork menggunakan router


Keunggulan utama menggunakan bridge dalam membentuk internetwork adalah tidak terlihat oleh fungsi lapisan Transport dan Network. Dari sudut pandang lapisan atas jaringan, extended LAN yang dibangun menggunakan bridge beroperasi sama seperti hubungan data link LAN biasa. Karakteristik seperti ini bisa menjadi kelemahan jika internetwork tumbuh menjadi lebih besar. Extended LAN dapat tumbuh menjadi sangat besar sehingga setiap LAN dapat mengalami saturasi ketika menangani multicast traffic. Dalam hal ini router dapat digunakan untuk menghubungkan LAN-LAN jika memang diinginkan untuk mengisolasi multicass traffic. Router bekerja pada lapisan Network dan hanya mampu melewatkan paket-paket yang bersesuaian dengan protokol yang diimplementasikan padanya. Untuk router pada internetwork heterogen diperlukan satu buah router untuk setiap jenis protokol pada internetwork tersebut. Contoh internetwork menggunakan router dapat dilihat pada gambar 2-15. Pada internetwork tersebut setiap sistem TCP/IP dapat saling berhubungan dengan sistem lain sedangkan sistem NetWare pada sebuah LAN tidak mampu berhubungan dengan sitem NetWare pada LAN yang lain karena tidak terdapat router NetWare yang 60

menghubungkan ketiga LAN di internetwork. Untuk dapat menghubungkan NetWare dalam internetwork ini dapat ditambahkan sebuah router Netware (gambar 2-16).
NetWare LAN 1 TCP/IP

TCP/IP

Router TCP/IP TCP/IP

NetWare LAN 3 LAN 2 TCP/IP NetWare TCP/IP TCP/IP TCP/IP

Gambar 2-15
Internetwork menggunakan router
NetWare LAN 1 TCP/IP

TCP/IP

Router NetWare Router TCP/IP TCP/IP LAN 3 LAN 2 TCP/IP TCP/IP

NetWare

TCP/IP NetWare TCP/IP

Gambar 2-16
Penggunaan router untuk menghubungkan Netware ke internetwork

Keuntungan menggunakan router

61

isolasi traffic broadcast; kemampuan ini memperkecil beban internetwork karena traffic jenis ini dapat diisolasikan pada sebuah LAN saja fleksibilitas; router dapat digunakan pada topologi jaringan apapun dan tidak peka terhadap masalah kelambatan waktu yang dialami jika menggunakan bridge pengaturan prioritas; router dapat mengimplementasikan mekanisme pengaturan prioritas antar protokol pengaturan konfigurasi; router umumnya dapat lebih dikonfigurasi daripada bridge isolasi masalah; router membentuk penghalang antar LAN dan memungkinkan masalah yang terjadi di sebuah LAN diisolasikan pada LAN tersebut pemilihan jalur; router umumnya lebih cerdas daripada bridge dan dapat menentukan jalur optimal antara dua sistem.

Kerugian menggunakan router tergantung pada protokol; router yang beroperasi pada lapisan Network OSI hanya mampu melalukan traffic yang sesuai dengan protokol yang diimplementasikan padanya saja biaya; router umunya lebih kompleks daripada bridge dan lebih mahal;; overhead pemrosesan pada router lebih besar sehingga troughput yang dihasilkannya dapat lebih rendah daripada bridge pengalokasian alamat; dalam internetwork yang menggunakan router, memindahkan sebuah mesin dari LAN yang satu ke LAN yang lain berarti mengubah alamat network pada sistem itu sistem tak terjangkau; penggunaan tabel routing yang tidak dinamik menyebabkan beberapa sistem dapat terjangkau oleh sistem lain

Perencanaan Internetwork TCP/IP


Dalam perencanaan internetwork TCP/IP, manajer jaringan adalah: 62 Topologi backbone beberapa hal yang harus diperhatikan oleh

Pengalokasian alamat IP Pengaturan routing Penempatan server Penanganan protokol jaringan yang berbeda

Topologi backbone
Topologi backbone yang sebaiknya digunakan dalam internetwork yang meliputi sebuah kampus adalah Snow Flakes yaitu topologi yang terdiri dari beberapa buah titik star (gambar 2-17). Kelebihan topologi Snow Flakes : Beban routing terdistribusi lebih baik Pengontrolan dan operasi internetwork terpusat pada titik-titik star tersebut Troubleshooting internetwork lebih mudah
DEP-F DEP-B ROUTER DEP-A ROUTER DEP-G

DEP-c ROUTER DEP-E DEP-C DEP-D

Gambar 2-17
Snow Flakes Internetwork sebaiknya disusun dalam beberapa tingkat (umumnya dua atau tiga) berdasarkan kondisi workgroup. Misalnya backbone menjadi penghubung antar-departemen, dan jaringan dalam setiap departemen menghubungkan direktorat-direktorat.

63

BACKBONE

Router DEPARTEMEN

Router

Router DIREKTORAT

Router

Workstation

Workstation

SERVER

Gambar 2-18
Internetwork disusun dalam bentuk tingkatan-tingkatan

Pengalokasian alamat IP
Seorang manajer jaringan harus mengganggap alamat IP sebagai suatu resource yang harus dialokasikan sebaik-baiknya. Setiap stasiun dari internetwork yang terhubung langsung dengan Internet harus memiliki alamat IP yang unik di seluruh Internet. Sebuah organisasi mungkin memperoleh alamat jaringan kelas A, B, atau kelas C, atau bahkan hanya sebagian kecil dari kelas C. Pada internetwork yang memiliki IP terbatas, hal yang umum dilakukan adalah melakukan proxy IP. Internetwork yang terletak di dalam lingkungan proxy wajib memiliki IP yang unik hanya dalam lingkungan proxy tersebut. Cara pengalokasian IP yang baik adalah yang berdasarkan letak geografis. Ini berarti bahwa jaringan yang terletak dekat secara geografis, sebaiknya juga memiliki alamat IP yang dekat. Ini berguna terutama dalam pengaturan routing.

Pengaturan routing

64

Routing dalam internetwork sebaiknya menggunakan metode routing dinamik dan hanya menggunakan routing statik pada kondisi yang tidak memungkinkan penggunaan routing dinamik. Keuntungan routing dinamik: route ditentukan oleh setiap router berdasarkan informasi dari router lain dapat beradaptasi terhadap perubahan kondisi internetwork (penambahan jaringan baru, putusnya jaringan) penanganan oleh manusia jauh lebih ringan dibandingkan dengan routing statik

Pada saat ini terdapat dua macam routing dinamik yang biasa digunakan dalam internetwork TCP/IP: RIP (Routing Information Protocol); yang menggunakan algoritma routing Distance Vector OSPF (Open Sortest Path First); yang menggunakan algoritma routing link-state

Penempatan Server
Pengertian server yang disebut di sini mengacu kepada mesin-mesin dalam lingkungan internetwork yang ditujukan secara khusus untuk memberikan informasi yang dibutuhkan oleh client. Dalam internetwork TCP/IP server-server tersebut digunakan untuk memberi informasi penting bagi internetwork, misalnya DNS server, dan untuk memberikan informasi secara umum, seperti Web server dan News server. Sesuai dengan namanya, server memberi indikasi kemungkinan terjadinya trafik yang lebih tinggi antara server tersebut dengan workstation dibandingkan dengan trafik antar workstation. Penempatan server yang baik dalam internetwork mampu mendistribusikan beban trafik di jaringan. Hal ini terutama berlaku untuk server-server yang dibutuhkan oleh internetwork seperti DNS server. Penempatan server-server seperti Web server dan FTP server juga turut berperan dalam mendistribusikan beban trafik. Menurut penelitian, FTP server yang ditempatkan dengan baik mampu mengurangi trafik yang tidak perlu sampai sebesar 44%. Sifat beban trafik antara DNS server dengan FTP dan Web server berbeda yaitu DNS server sering diakses tetapi memberikan informasi dalam jumlah yang kecil sedangkan walaupun 65

FTP dan Web server diakses relatif tidak sesering DNS server, informasi yang diberikan keduanya jauh lebih besar daripada informasi dari DNS pada setiap kali akses. Praktik yang biasa dilakukan terutama pada DNS server adalah pendistribusian informasi pada dua atau tiga server dalam internetwork yang besar. Dengan praktik seperti ini, setiap query oleh client diajukan kepada server terdekat.

66

Penanganan protokol jaringan yang berbeda


Internetwork yang ada saat ini tidak semua hanya menggunakan satu protokol jaringan. Terdapat juga lingkungan internetwork yang terdiri dari dua atau lebih protokol seperti protokol TCP/IP dengan IPX/SPX. Pada internetwork TCP/IP yang menggunakan router (TCP/IP), elemen internetwork dengan protokol yang berbeda tersebut hanya mampu berkomunikasi sebatas sampai router saja. Agar elemen ini mampu berkomunikasi dengan elemen yang lain yang terpisah oleh router, biasanya digunakan metoda tunnelling. Dengan tunnelling, elemen-elemen internetwork tersebut dapat berkomunikasi dengan protokolnya di atas protokol TCP/IP.

67

3
Sekilas tentang UNIX :
Langkah-langkah Instalasi UNIX dan Dasar-dasar Penggunaan Perintah Pada Sistem Operasi UNIX

Pada bab ini akan ditunjukkan cara praktis melakukan instalasi UNIX FreeBSD, serta beberapa perintah dasar sistem operasi UNIX.

68

Pendahuluan
Pada Bab ini akan dibahas mengenai cara-cara instalasi FreeBSD pada komputer anda. Mulai dari bagian yang sangat dasar yaitu membuat disket booting untuk instalasi FreeBSD hingga FreeBSD tersebut terbentuk. Untuk instalasi FreeBSD ini dapat dilakukan melalui berbagai cara, yaitu : 1. Instalasi dari CDROM 2. Instalasi dari Floppy Disk 3. Instalasi dari partisi DOS 4. Instalasi dari QIC/SCSI tape 5. Instalasi melalui network Instalasi melalui NFS (Network File System) Instalasi melalui FTP (File Transfer Protocol)

Namun yang diutamakan dibahas pada bab ini adalah instalasi melalui FTP. Ada hal-hal yang perlu diperhatikan dalam instalasi FreeBSD, yaitu : 1. Disket boot untuk instalasi FreeBSD. 2. Komputer dengan RAM minimum 8 MB dan Harddisk minimum 120MB. 3. Sarana jaringan komputer (Ethernet Card, perhatikan Port dan IRQ-nya). 4. Source dari FreeBSD. Catatan : Perhatikan semua jenis perangkat keras yang dapat di-support oleh FreeBSD

Membuat Disket Boot


Dalam membuat disket booting diperlukan sebuah file yang namanya boot.flp. Ambillah file tersebut dari source FreeBSD, misalkan dari CDROM-nya atau ftp ke site di Internet yang menyediakan source dari FreeBSD tersebut. Biasanya file tersebut ada di direktori FreeBSD/2.1.6-RELEASE/floppies. Untuk membuat disket jadi boot FreeBSD dapat dilakukan dengan dua cara yaitu : Pada sistem DOS 69

Dengan cara ini kita membutuhkan perintah rawrite untuk meng-extract file tersebut :
Rawrite boot.flp <disk_drive>

Pada sistem FreeBSD Extract-lah file boot.flp tersebut dengan perintah dd, contoh :
# dd if=boot.flp of=/dev/fd0

/dev/fd0 menunjukkan floppy drive yang digunakan. Pada FreeBSD, /dev/fd0 menunjukkan drive A dan /dev/fd1 menunjukkan drive B. Catatan : Jika mesin anda hanya memiliki RAM 4 MB gunakan boot4.flp Yang harus anda persiapkan sebelum melakukan instalasi :

Instalasi dari CDROM


Jika CDROM anda tidak di-support oleh FreeBSD anda dapat melewatkan bagian ini untuk menuju ke bagian instalasi dari partisi DOS. Tidak banyak harus dipersiapkan untuk instalasi dengan cara ini, cukup menjalankan file install.bat yang disediakan pada CDROM atau membuat boot floppy dengan perintah makeflp.bat. Untuk memudahkan semua hal di atas cukup ketikan view, ini akan membawa anda ke menu utility yang membimbing pelaksanaan di atas melalui pilihan-pilihan yang telah disediakan. Catatan : Sebelum melakukan instalasi (sebelum booting) CDROM harus diletakan pada drive-nya sehingga dapat ditemukan oleh FreeBSD pada saat booting.

Instalasi dari Floppy


Jika anda harus menginstalasi FreeBSD dari floppies baik itu karena terpaksa karena perangkat keras yang tidak di-support atau karena anda senang melakukannya maka harus dipersiapkan floppy disk yang cukup banyak.untuk menyimpan semua file yang ada di direktori bin (binary distribution). Untuk sistem DOS, floppy disk yang akan digunakan benar-benar harus terformat oleh DOS format (anda harus yakin mengenai hal ini). Untuk sistem FreeBSD maka anda harus 70

membuat floppy itu bersistem FreeBSD, yaitu dengan perintah disklabel dan newfs, dengan cara :
# fdformat -f 1440 fd0.1440 # disklabel -w -r fd0.1440 floppy3 # newfs -t 2 -u 18 -I 65536 /dev/rfd0

Catatan : Gunakan fd0.1200 dan floppy5 untuk floppy 1.2MB

Instalasi dari Partisi DOS


Untuk mempersiapkan instalasi dari partisi DOS anda harus meng-copy file dari Source ke direktori dengan nama FREEBSD. Sebagai contoh untuk minimum instalasi dapat dilakukan seperti di bawah ini
C:\ MD FREEBSD C:\ XCOPY /S E:\DISTS\BIN C:\FREEBSD\BIN

Asumsi : C: adalah Harddisk dan E: adalah CDROM

Instalasi dari QIC/SCSI Tape


Cara yang dilakukan hampir sama dengan instalasi dengan CDROM, hanya mesti diingat bahwa tape harus berada dalam drive-nya sebelum dilakukan booting. Jika hal tersebut dilakukan akan menyebabkan tape tersebut gagal ditemukan oleh FreeBSD pada saat probing

Instalasi dari Jaringan


Anda dapat melakukan instalasi melalui jaringan dengan tiga tipe koneksi yaitu : 1. Serial port : SLIP / PPP 2. Parallel port : PLIP (menggunakan laplink) 3. Ethernet : Standar ethernet yang dapat dikenali oleh FreeBSD Pilihan terbaik dari semua di atas adalah ethernet adapter dan men-support ethernet card yang umum digunakan. Untuk hal di atas maka anda perlu untuk menentukan IP address, 71

masking, gateway (IP ISP, jika anda menggunakan PPP) yang digunakan disamping nama komputer.

Instalasi melalui FTP


Untuk instalasi ini maka anda perlu untuk menentukan FTP Server yang menyediakan fasilitas ini. Sebagai contoh : ftp.itb.ac.id, ftp.jp.freebsd.org, atau ftp.freebsd.org. Ada dua jenis ftp yang dapat dilakukan yaitu : 1. FTP aktif Adalah ftp tanpa melalui firewall 2. FTP pasif Jenis ini memperbolehkan user melewati firewall yang tidak menutup koneksi pada beberapa port address

Instalasi FreeBSD (FTP)


Boot-lah komputer anda dengan disket booting yang telah dibuat sebelumnya. Pada saat booting ini akan terlihat bahwa FreeBSD akan memeriksa semua perangkat keras yang terpasang pada komputer anda. Perhatikanlah semua perangkat keras yang terdeteksi, terutama perangkat keras yang penting seperti ethernet card dan harddisk. Jika pada saat booting ada beberapa perangkat yang akan digunakan tapi tidak terdeteksi, maka ulangi lagi proses instalasi dengan memberikan option -c pada saat booting.
Boot : -c

Gunakan perintah visual untuk mengkonfigurasi perangkat keras yang terpasang


config# visual

Tampilannya akan seperti berikut :

72

Untuk mengatur perangkat keras yang digunakan arahkan pointer keyboard anda pada perangkat tersebut dan tekanlah enter. Keluarlah dari menu untuk probing dari perangkat keras yang terpasang (sekali lagi perhatikan perangkat yang terdeteksi). Selanjutnya anda akan dihadapkan pada menu instalasi seperti di bawah ini :

73

Menu Doc berisi beberapa dokumen yang berhubungan dengan FreeBSD, Perangkat keras, dan proses instalasi. Untuk memahami lebih lanjut mengenai langkah-langkah untuk instalasi atau segala hal yang berhubungan dengan FreeBSD anda dapat membacanya di sini. Pilihlah salah satu menu dari Novice, Express, atau Custom untuk memulai instalasi. Menu Novice dipilih untuk beginer, Menu Express untuk instalasi dengan konfigurasi minimum dengan menggunakan harga default yang disediakan FreeBSD. Untuk mengatur proses instalasi yang sesuai dengan keinginan sendiri maka dapat dipilih menu Custom. Di sini kita akan memilih menu Custom.

74

Pilih menu Partition untuk menentukan besarnya partisi yang akan digunakan untuk FreeBSD. A untuk menjadikan semua bagian sebagai partisi FreeBSD, C untuk membuat partisi yang baru. Buat partisi FreeBSD agar bootable dengan S.

75

Pilih Menu Label untuk memberi nama atau label pada partisi. Tekan A untuk nilai default FreeBSD. Tekan C jika ingin menentukan sendiri. Ada beberapa label diharuskan ada yaitu : / dan /usr, sedangkan sisanya terserah, umumnya dibuat sebagai /data.

Pilih Menu Distribution untuk menentukan paket distribusi yang akan diinstall pada komputer. Pilihlah menu yang sesuai dengan kebutuhan.

76

Selanjutnya pilih menu Media. Di sini akan ditentukan melalui media apa instalasi akan dilakukan, Pilihlah media yang diinginkan. Pada saat sekarang akan digunakan media FTP untuk instalasi.

Pilih site di Internet yang menyediakan Source FreeBSD. Pilih Other jika ada alamat lainnya yang lebih dekat namun tidak terdapat dalam daftar, sertakan pula letak direktori dari Source tersebut. sebagai contoh ftp.itb.ac.id dengan letak direktori di pub/FreeBSD/2.1.5RELEASE. Maka tulislah dengan ftp.itb.ac.id/pub/FreeBSD/2.1.5-RELEASE.

77

Isilah beberapa option yang harus diisi di menu selanjutnya seperti nama komputer, domain, IP address dari Gateway, Name Server, dan komputer itu sendiri, serta netmasknya. Pilih interface yang akan digunakan untuk instalasi, misal ed0 Jika sudah yakin dengan apa yang telah dilakukan maka pilihlah Commit. Selanjutnya proses instalasi akan dilakukan. Jika telah selesai maka rebootlah komputer tersebut. Mesin FreeBSD siap untuk dijalankan.

Memulai dan Mengakhiri FreeBSD


Pada saat akan memulai FreeBSD anda akan dihadapkan dengan login dan password. Tulislah identitas dan password yang sesuai. Bila ini berhasil maka anda sudah masuk ke dalam sistem dan bisa mulai bekerja dengannya.

78

Jika anda telah selesai bekerja dan akan keluar dari sistem dapat menggunakan perintah

logout (keluar login), exit ( keluar shell) atau ^D.


Sebagian besar dari UNIX adalah Operating System yang sensitif, karenanya sangat dihindari mematikan mesin secara langsung terutama pada saat beban trafik sedang besar karena dapat merusak perangkat keras. Untuk mematikan mesin gunakan dengan perintah shutdown. shutdown [-] [-hkrn] time [warning-message...] Untuk melihat fungsi dari suatu perintah dan option-optionnya dapat digunakan perintah man
man <command>

sebagai contoh,
man shutdown

Ini akan menghasilkan seperti di bawah ini :

Perintah-Perintah Dasar Utility System dan Regular Expression


79

Klasifikasi perintah Unix kedalam grup grup tertentu bisa berbeda beda, karena Unix merupakan sistem yang besar. Klasifikasi dalam diskusi kita dimaksudkan untuk menampung perintah perintah lain yang akan kita gunakan, tapi tidak dibahas secara khusus. Beberapa contoh perintah dasar (bagian ini bisa dilewati untuk anda yang sudah familiar dengan perintah perintah tersebut): date, who, echo [teks], pwd, ls, cd, cp, cat, mv, rm, mkdir Kemudian perintah perintah yang sering digunakan sebagai utility-system , misalnya: passwd, adduser, mail, finger, write, wall, ps, kill <no proses>, nohup <perintah/proses>, nice <perintah/proses>, time <perintah>, stty, tty, dan lain-lain. (beberapa perintah diatas baru dapat dijalankan bila kita mengetahui argumennya, dan jelas memerlukan perintah yang lain, untuk praktikum silahkan coba yang disarankan oleh tutor anda). Untuk sintax yang lengkap silahkan buka manual di mesin anda.

Regular expression
Adalah suatu cara untuk menunjuk pada pola karakter umum. Karakter yang biasa digunakan dapat dilihat pada tabel perintah vi dibawah. % grep ^set .login % grep ^set$ .login

Redirection dan Pipes (filter)


Karena eratnya kaitan bahasa C dengan Unix, hampir setiap command di Unix yang membutuhkan masukan dan keluaran, mengenal suatu standard input (stdin), standar output (stdout), dan standar error (stderr). Tapi biasanya perintah perintah tersebut mempunyai stdin,stdout, atau stderr default, yang dieksekusi jika kita tidak mengeset mereka. Jadi sederhananya Redirection dan Pipes adalah proses pengalihan stream data ini ke/dari tempat yang dikehendaki. Berikut contoh yang sederhana: % ls -l > isi.direktori % more .login > login.doc 80

% cat .profile >> login.doc % ps -ax|grep ftp % cat < .cshrc > cshrc.txt % cat .cshrc .login > info % cat info cshrc.txt > anu

Operasi File dan Direktori


Berikut akan kita ulang operasi dasar dalam Unix untuk file dan direktori.Perlu dicatat bahwa dalam Unix 'file' menunjuk pada sembarang sumber input atau target output, tidak hanya pada sebuah tempat penyimpanan data. Unix mempunyai tiga bentuk file : file biasa, direktori, dan file khusus. Dalam Unix, piranti fisik direpresentasikan oleh file-file khusus. Direktori merupakan file yang menunjuk kesejumlah file lainnya. Sedangkan file biasa berisi data, bisa berbentuk teks ataupun binary. Menampilkan file dalam suatu direktori : ls [-adglrsCFR1] [name] perintah perintah berikut dapat anda coba: % ls / % ls /etc % ls .. % ls % ls ../.. % ls |wc -l % ls -C % ls -1 % ls -r % ls -F % ls -R ~ % ls -s % ls h* % ls h h1 h2 81

% ls -s /bin/[a-z][a-z] /usr/bin/[a-z][a-z] % ls /usr/{user1,user2.tln} % ls -a % ls -l % ls -l info;date Menampilkan isi file cat <file name> Menampilkan isi file layar per layar more <file name> Membuat direktori mkdir <namedir> Mengkopi file cp [-ip] file1 file2 cp [-ip] file... direktori cp -r [-ip] direktori1... direktori2 % more .cshrc > data % cp data extra % cp /etc/passwd ~/pword % cp -i data extra % cp data1 data2 data3 backups % cp data[123] backups % cp data* backups % cp d* backups % cp -r essays backups Memindahkan file mv [-if] file... direktori 82

mv [-if] oldname newname % mv data archive % mv data1 data2 data3 archive % mv -i data archive % mv memo important % mv memo archive/important Menghapus File rm [-fir] file... Menghapus direktori rmdir % mkdir data % rm data % rm ~/memo % rm bin/spacewar % rm data[123] % rm * % rm -i data* % rm -f data.important % rm -r extra % rm -r * % rm -ir extra % rm -fr extra % rm -fr ~/extra % rm -fr ~ /extra % rm -fr / Mode file chmod mode file...

83

% chmod 644 memo1 memo2 memo3 % chmod 755 spacewar % chmod 600 homework.text % chmod 700 homework.program Beberapa perintah lain yang masih berkaitan dengan operasi file, yang sebaiknya anda buka di online manual adalah du,quota,alias,umask, dan ln

Text Editor : vi
Perintah perintah vi sangat banyak jumlahnya. Untuk melakukan sesuatu dengan vi, selalu terdapat jalan alternatif untuk merepresentasikan tugas yang sama. Dalam konteks ini, kita akan membahas vi secara garis besar saja. vi mempunyai dua mode, mode perintah (command mode) dan mode sisip (insert mode). Pada waktu kita berada pada command mode, semua tombol yang kita tekan akan diintepretasikan sebagai suatu perintah. Jadi ketikan kita tidak akan dianggap sebagai tulisan. Sedadangkan jika kita berada pada insert mode, kita hanya dapat melakukan satu hal saja, yaitu mengetik tulisan kita. Kita tidak dapat menghapus kata atau baris, menggerakkan kursor keatas atau kebawah, dsb. Untuk masuk ke masing masing mode dapat dilakukan dengan menekan tombol Esc (ke command mode) dan i ( ke insert mode). Pertama yang perlu diingat adalah cara keluar dari vi, yaitu dengan perintah <Esc><:><q!> .

84

Memulai vi
vi file vi -R file viewfile memulai vi, mengedit file yang diberikan memulai vi, mengedit file yang diberikan, read only memulai vi, mengedit file yang diberikan, read only

Keluar
ZZ :q! menyimpan data dan stop keluar tanpa menyimpan

Merecover file
vi -r vi -rfile menampilkan nama file yang bisa direcover memulai vi, merecover file yang diberikan

Mengatur tampilan
^L : set number : set nonumber menampilkan kembali layar yang sedang aktif menampilkan nomor baris internal tidak menampilkan nomor baris internal

Menggerakkan kursor
h j k l <kiri> <bawah> <atas> <kanan> <backspace> <spasi> + <enter> 0 $ memindahkan kursor satu posisi ke kiri memindahkan kursor satu posisi ke bawah memindahkan kursor satu posisi ke atas memindahkan kursor satu posisi ke kanan memindahkan kursor satu posisi ke kiri memindahkan kursor satu posisi ke bawah memindahkan kursor satu posisi ke atas memindahkan kursor satu posisi ke kanan memindahkan kursor satu posisi ke kiri memindahkan kursor satu posisi ke kanan memindahkan kursor pada awal baris sebelumnya memindahkan kursor pada awal baris sesudahnya memindahkan kursor pada awal baris sesudahnya memindahkan kursor pada awal baris aktif memindahkan kursor pada akhir baris aktif

85

^ w e b W E B ) ( } { H M L

memindahkan kursor pada karakter pertama (non spasi/tab) memindahkan kursor ke karakter pertama kata berikutnya memindahkan kursor ke karakter terakhir kata berikutnya memindahkan kursor ke karakter pertama kata sebelumnya sama dengan w tapi mengabaikan punctuation sama dengan e tapi mengabaikan punctuation sama dengan b tapi mengabaikan punctuation menggerakkan ke awal kalimat sesudahnya menggerakkan ke awal kalimat sebelumnya menggerakkan ke awal paragrap sesudahnya menggerakkan ke awal paragrap sebelumnya memindahkan kursor pada baris atas memindahkan kursor pada baris tengah memindahkan kursor pada baris terakhir

Menuju lokasi tertentu pada editting buffer


^F ^B n^F n^B ^D ^U n^D n^U bergerak kebawah satu layar bergerak keatas satu layar bergerak kebawah n layar bergerak keatas n layar bergerak kebawah setengah layar bergerak keatas setengah layar bergerak kebawah n baris bergerak keatas n baris

86

Mencari suatu model


/rexp / ?rexp ? n N mencari (forward) regular expression yang diberikan mengulangi (forward) mencari regular exp pattern sebelumnya mencari (backward) untuk regular expression yang diberikan mengulangi (backward) mencari regular exp pattern sebelumnya mengulangi perintah / atau ? sebelumnya pada direction yang sama sama dengan n pada arah yang berlawanan

Karakter khusus yang digunakan dalam regular expression


. * ^ $ \< \> [ ] [^ ] \ sesuai dengan karakter tunggal kecuali newline sesuai nol atau lebih karakter pertama sesuai dengan awal baris sesuai dengan akhir baris sesuai dengan awal kata sesuai dengan akhir kata sesuai dengan salah satu karakter yang di lingkupinya sesuai dengan sembarang karakter yang tidak di lingkupinya mengartikan simbol yang mengikutinya secara literal

Nomor baris
nG 1G G :map g 1G melompat ke baris nomor n melompat ke awal baris dalam editing buffer melompat ke akhir baris dalam editing buffer mendefinisikan makro sehingga g sama dengan 1G

87

Menyisipkan
I a I A o O berubah ke insert mode, insert sebelum posisi kursor berubah ke insert mode, insert sesudah posisi kursor berubah ke insert mode, insert pada awal baris aktif berubah ke insert mode, insert pada akhir baris aktif berubah ke insert mode, open dibawah baris aktif berubah ke insert mode, opern diatas baris aktif

Mengubah
r R s C cc S cmove ~ mereplace 1 karakter tanpa masuk ke insert mode mereplace dengan mengetikan mereplace 1 karakter dengan menginsert mereplace dari kursor ke akhir baris dengan menginsert mereplace semua baris aktif dengan menginsert mereplace semua baris aktif dengan menginsert mereplace dari posisi kursor ke move dengan menginsert mengubah kecil/besar suatu huruf

Menggantikan suatu model


:s/pattern/replace/ :lines/pattern/repla ce/ :line,,lines/pattern /replace :%s/pattern/replace/ substitusi, semua baris substitusi, pada range tertentu substitusi, pada baris aktif substitusi, pada baris tertentu

Membatalkan dan mengulagi pengubahan yang sebelumnya 88

u U .

undo perintah sebelumnya yang memodifikasi editing buffer merestore baris aktif mengulangi perintah sebelumnya yang memodifikasi editing buffer

Mengkontrol panjang baris


r<Return> J :set wm=n mereplace sebuah karakter dengan newline menyatukan baris auto line break dalam n posisi dari margin kanan

Menghapus
x X D dd dmove dG d1G :lined :line,lined menghapus karakter pada posisi kursor menghapus karakter disebelah kiri kursor menghapus karakter diakhir baris menghapus seluruh baris aktif menghapus dari kursor ke move menghapus dari kursor ke akhir editing buffer menghapus dari kursor ke awal editing buffer menghapus baris tertentu menghapus range tertentu

Mengkopi penghapusan terakhir


P p xp deep ddp insert sesudah/dibawah kursor insert segelum/diatas kursor mentranspose dua karakter mentranspose dua kata mentranspose dua baris

89

Mengkopi dan memindahkan baris


:linecotarget :line,linecota rget :linemtarget :line,linemtar get mengkopi baris tertentu, insert dibawah target mengkopi range tertentu, insert dibawah target memindahkan baris tertentu, insert dibawah target memindahkan range tertentu, insert dibawah target

Mengeksekusi perintah shell


:!command :!! :sh :!csh pause vi, mengeksekusi perintah shell tertentu pause vi, mengeksekusi perintah shell sebelumnya pause vi, memulai shell pause vi, memulai C Shell yang baru

Membaca data
:liner file :r file :liner !command :r !command :r !look pattern insert isi file, setelah baris tertentu insert isi file, sesudah baris aktif insert output dari perintah seteleh baris tertentu insert output dari perintah setelah baris aktif insert kata yang berawal dengna pattern tertentu

Menggunakan perintah shell untuk memproses data


n!!command !move command !move fmt mengeksekusi perintah pada n baris mengeksekusi perintah dari kursor ke move memformat baris dari kursor ke move

90

Menyimpan data
:w :w file :w >> file menulis data pada file original menulis data pada file tertentu menambahkan data pada file tertentu

Mengganti file yang diedit


:e file :e! file mengedit file tertentu mengedit file tertentu, mengabaikan chek otomatis

Menyingkat
:ab short long :ab :una short mengeset short sebagai singkatan dari long menampilkan singkatan aktif meng-cancel penyingkatan short

Contoh pengeditan dengan vi % cp .cshrc cshrc.doc berikut contoh hasil operasi diatas ( cshrc.doc) #csh .cshrc file alias h alias j alias la alias lf alias ll alias su setenv setenv setenv set path ls -a ls -FA ls -lA su -m EDITOR EXINIT PAGER = vi 'set autoindent' more /bin /usr/{bin,games} /usr/local/bin history 25 jobs -l

(~/bin

/usr/X11R6/bin) 91

if ($?prompt) then # An interactive shell -- set some stuff up set filec set history = 1000 set ignoreeof set mail = (/var/mail/$USER) set mch = `hostname -s` set prompt = "${mch:q}: {\!} " umask 2 endif Bagi anda yang belum terbiasa dengan vi cobalah edit kembali file cshrc.doc tersebut dari awal, atau buat file tail/head dari cshrc.doc tersebut kemudian lengkapi sehingga sama dengan asalnya Berikut beberapa file yang dapat anda coba untuk berlatih, supaya lebih terbiasa dengan vi: % cat .profile > profile.doc PATH=$HOME/bin:/bin:/usr/bin:/usr/games:/usr/X11R6/bin:/usr/ local/bin export PATH EDITOR=vi export EDITOR EXINIT='set autoindent' export EXINIT PAGER=more export PAGER umask 2 % cat .login > login.doc #csh .login file 92

setenv SHELL /bin/csh set noglob eval `tset -s -m 'network:?xterm'` unset noglob stty status '^T' crt -tostop /usr/games/fortune

93

4
Mengkonfigurasi Network Interface

Pada bab ini, Anda akan mempelajari: Konfigurasi Interface Menggunakan ifconfig TCP/IP Melalui Serial Line Memilih Protokol Serial Mengkonfigurasi Interface SLIP Mengkonfigurasi Interface PPP Melakukan Konfigurasi pada Start-up File

94

Pendahuluan
Ketika protokol network hanya bekerja dengan satu jenis physical network saja, belum ada keperluan untuk mengidentifikasikan network interface untuk software. Software sudah mengetahui interface yang mana yang harus ia gunakan. Kemudian datanglah TCP/IP, yang memiliki kelebihan dalam hal flexibilitas. Ia bisa digunakan pada berbagai macam physical network. Fleksibilitas ini mengakibatkan tidak adanya network interface yang menjadi default dalam suatu sistem. Karenanya seorang Network Adminstrator harus mendefinisikan sendiri karakteristik tiap tiap network interface yang hendak digunakannya agar bisa menjalankan protokol TCP/IP.

Konfigurasi Interface Menggunakan ifconfig


Perintah ifconfig digunakan untuk mengecek atau mengeset konfigurasi dari sebuah network interface. Yang dapat diset oleh perintah ini antara lain IP address Subnet Mask Broadcast address

Bentuk dari perintah ifconfig tersebut ialah sebagai berikut


ifconfig interface address netmask mask broadcast address

Sebagai contoh , dapat kita lihat perintah ifconfig yang digunakan untuk mengkonfigurasi interface "ed1" pada host "maingtw.paume.itb.ac.id". Host ini memiliki IP address 167.205.22.131 dan netmask 0xffffffe0.
ifconfig ed1 167.205.31.131 netmask 255.255.255.224 broadcast 167.205.31.159

95

Keterangan : interface ialah nama dari network interface yang hendak dikonfigurasi dengan perintah ifconfig ini. Disini digunakan contoh interface Ethernet ed1 address adalah IP address yang diberikan kepada interface ini. IP address ini diberikan dalam bentuk desimal berititik atau dengan nama host. IP address lebih cocok untuk digunakan, karena jika kita menggunakan nama host , ifconfig harus mencari IP address ekivalennya terlebih dahulu sebelum ia diberikan ke interface. Jika kita ingin menggunakan nama host , nama tersebut kita letakkan pada file /etc/hosts. Pada contoh diatas kita menggunakan IP address 167.205.31.131 mask subnetmask yang digunakan oleh interface ini. Jika jaringan kita tidak dibagi bagi dalam subnet, maka argumen ini bisa diabaikan address ialah alamat broadcast dari network ini. Ia didapat dengan mengeset semua host

bit dalam IP Address menjadi satu. Sebagai contoh , misalnya kita menggunakan IP Address 167.205.31.131 maka broadcast addressnya adalah 167.205.31.159 Karena yang hendak kita konfigurasi ini adalah network interface, kita tentu harus mengetahui network interface apa saja yang tersedia pada host kita ini. Biasanya pada saat booting , seluruh interface yang ada pada sistem kita nampak di console. hal ini bisa juga dilihat dengan menggunakan perintah dmesg. Ada juga cara lain yang digunakan untuk mengetahui seluruh interface yang ada pada sistem kita. Kita dapat menggunakan perintah netstat

Menggunakan Perintah netstat


Untuk mengetahui seluruh network interface yang tersedia digunakan perintah
% netstat -ain

Ada tiga option yang mengikuti perintah netstat diatas. Option -i meminta netstat untuk menampilkan status dari network interface yang telah terkonfigurasi.Option -a digunakan untuk menampilkan seluruh network interface yang ada dalam sistem, bukan hanya yang

96

telah dikonfigurasi saja. Option -n meminta netstat untuk menampilkan keluaran dalam bentuk numerik. Berikut ini adalah contoh keluaran perintah netstat
% netstat -ain
Name ed0 ed0 ed1 ed1 lp0* lo0 lo0 sl0 sl0 sl1 sl1 Mtu 1500 1500 1500 1500 1500 65532 65532 552 552 552 552 Network Address <Link>00.80.48.91.e8.40 167.205.22. 167.205.22.123 <Link>00.80.48.81.c6.b3 167.205.31. 167.205.31.131 <Link <Link 127 127.0.0.1 <Link> 167.205.22 167.205.22.1 <Link> 167.205.22. 167.205.22.33 Ipkts 360436 360436 558995 558995 0 16535 16535 287169 287169 20735 20735 Ierrs 0 0 71 71 0 0 0 1 1 1 Opkts 394016 394016 493592 493592 0 16535 16535 300307 300307 22690 22690 Oerrs 0 0 70 70 0 0 0 0 0 0 0 Coll 100 100 6941 6941 0 0 0 0 0 0 0

Keluaran dari perintah netstat ini menampilkan field field sebagai berikut Name Field nama inteface ini menunjukkan nama yang diberikan pada interface tersebut. Nama ini ialah nama yang digunakan oleh ifconfig untuk mengindentifikasi interface. Tanda asteriks "*" pada nama interface menunjukkan bahwa interface tersebut tidak dalam keadaan aktif. Contohnya dapat kita lihat pada interface lp0 diatas. Mtu Maximum Transmission Unit menunjukkan frame terpanjang yang dapat ditransmisikan oleh interface ini tanpa fragmentasi. Nilai Mtu ini ditampilkan dalam ukuran byte. Net/Dest Network/Destination field menunjukkan network dimana interface ini terhubung. Sebagai contoh misalnya interface ed1 diatas. Ia tehubung ke network 167.205.31 . Alamat network ini didapat dari IP address milik interface tersebut dan subnet mask nya. Address Ipkts Menunjukkan IP address yang diberikan pada interface ini Input Packets , Menunjukkan jumlah paket yang telah diterima oleh interface ini Ierrs Input Errors , menunjukkan jumlah paket rusak yang diterima oleh interface ini. Opkts Output Packets, menunjukkan jumlah paket yang dikirim oleh interface ini. 97

Oerrs Coll

Menunjukkan jumlah paket terkirim yang menyebabkan kesalahan Collisions field, menunjukkan berapa banyak ethernet collision yangdideteksi oleh interface ini. Field ini hanya berlaku bagi interface ethernet.

Memeriksa interface dengan ifconfig


ifconfig dapat pula digunakan untuk memeriksa konfigurasi network interface yang telah ada. misalnya kita ingin memeriksa interface ed0
% ifconfig ed0 ed0:flags=8863<UP,BROADCAST,NOTRAILERS,RUNNING,SIMPLEX,MULTICAST> mtu 1500 inet 167.205.22.123 netmask 0xffffffe0 broadcast 167.205.22.127

Ketika digunakan untuk mengecek status dari interface, perintah ifconfig menampilkan dua baris keluaran. Baris pertama menunjukkan nama interface dan nilai flag yang menujukkan karakteristik interface tersebut. Flag ini ditampilkan dalam bentuk numerik dan "keyword" Pada contoh diatas , nama interfacenya adalah ed0, dan interface flagnya memiliki nilai 8863. Nilai ini berhubungan dengan hal hal berikut UP BROADCAST Interface sedang active dan dapat digunakan Interface ini mendukung mode broadcast (terhubung pada suatu jaringan yang mendukung mode broadcast, misalnya ethernet. NOTRAILERS Interface ini tidak mendukung enkapsulasi trailers (spesifik pada ethernet) RUNNING SIMPLEX MULTICAST Interface ini sedang operasional. Interface ini hanya bisa digunakan satu arah tiap saat. Interface ini mendukung pengalamatan multicast

Baris kedua dari keluaran perintah ifconfig menunjukkan informasi yang langsung berhubungan dengan TCP/IP. Kata "inet" diikuti dengan IP address yang diberikan pada interface ini. Kemudian kata "netmask" diikuti dengan nilai maskingnya (dalam heksadesimal). akhirnya kata broadcast diikuti dengan broadcast addressnya.

Memberikan Subnetmask
98

Agar jaringan bisa berjalan dengan baik, maka seluruh interface pada physical network tertentu harus memiliki nilai subnetmask yang sama. Dengan memiliki subnetmask yang sama ini maka dalam satu network tersebut, seluruh interface yang terhubung kepadanya akan memiliki alamat network dan alamat broadcast yang sama. Subnetmask sendiri menspesifikasikan pembagian network menjadi beberapa subnetwork. Untuk memberikan subnetmask pada suatu interface, nilai subnetmask ini disisipkan pada perintah ifconfig, setelah keyword "netmask". Cara penulisannya biasanya sama dengan bentuk IP address-nya, yaitu desimal bertitik. Namun bisa juga diberikan dalam bentuk heksadesimal , diawali dengan 0x. Contoh
#ifconfig ed0 167.205.9.101 netmask 0xffffff00 broadcast 167.205.9.255

Menaruh nilai netmask langsung pada pada perintah ifconfig ialah hal yang paling umum, dan juga paling mudah. Namun kita juga bisa memerintahkan pada ifconfig untuk mengambil nilai netmask dari file (/etc/network). Misalnya pada file /etc/network kita tambahkan baris berikut
my_netmask 255.255.255.224

Maka setelah penambahan baris tersebut,kita bisa menggunakan kata my_netmask sebagai ganti dari nilai netmask pada saat memanggil perintah ifconfig.
ifconfig ed0 167.205.22.123 netmask my_netmask

Kerugian dari mengeset ifconfig secara tidak langsung ini ialah ia bisa membuat troubleshooting menjadi lebih sulit, jika terjadi kesalahan. Jika semua nilai di set di boot file, jika terjadi kesalahan kita tinggal mengecek di sana saja. Jika informasi konfigurasi ini diberikan secara tak langsung , jika terjadi kesalahan kita harus mengecek boot file, hosts file, network file, dan netmask file untuk menemukan kesalahannya, jika ada. Untuk membuat debugging menjadi lebih mudah, biasanya system administrator lebih menyukai mengeset langsung configurasi network interface langsung dari ifconfig command line.

Mengeset Broadcast Address


99

Sesuai dengan RFC 919 , tentang Broadcasting Internet Datagram, broadcast address didefinisikan sebagai address dimana seluruh host bit nya diset satu. Cara mengesetnya adalah menggunakan perintah ifconfig, dengan menggunakan keyword broadcast diikuti dengan alamat broadcast yang sesuai. Sebagai contoh misalkan kita hendak mengeset broadcast address pada interface ed0 , pada host gopher.ee.itb.ac.id , yang dalam satu networknya memiliki netmask 0xffffffe0, maka yang kita ketikkan adalah sebagai berikut

# ifconfig ed0 167.205.22.123 netmask 255.255.255.224 broadcast 167.205.22.127

Memberikan Address pada Network Interface


Jika kita hanya ingin memberikan IP address pada network interface , kita dapat mengetikkan perintah ifconfig yang hanya diikuti dengan nama interface dan IP address nya.Contoh :
# ifconfig std0 167.205.9.101

Command Option yang lain dari ifconfig


Perintah ifconfig sudah kita gunakan untuk mengeset alamat interface, subnetmask, dan alamat broadcast. Selain dari hal diatas ,masih ada fungsi fungsi lain yang dapat dilakukan oleh ifconfig ini. Untuk meng-enable dan men-disable interface ifconfig miliki dua argument, yaitu "up" dan "down" yang berguna untuk menandai sebuah interface. argument "up" digunakan untuk menandai interface tersebut sedang operasional, sehingga ia siap untuk digunakan. argument "down"sebaliknya, menandai network interface sedang dalam keadaan tidak operasional sehingga ia tak bisa digunakan. Perintah "down" ini dipakai jika kita ingin melakukan konfigurasi ulang terhadap sebuah interface. Beberapa parameter konfigurasi , seperti IP Address misalnya, tak bisa diubah kecuali jika interfacenya sedang dalam keadaan "down". sehingga untuk melakukan perubahan IP Address , mula mula interface tersebut di "down" dahulu, dilakukan rekonfigurasi, baru kemudian ia di "up" kembali. Contoh 100

# ifconfig ed0 down # ifconfig ed0 167.205.9.1 up

Setelah perintah ini , interface ed0 beroperasi dengan IP Address yang baru. ARP dan Trailers Option ini ialah option yang spesifik bagi interface ethernet. Option Trailers digunakan untuk men enable dan men disable enkapsulasi trailers pada paket IP. Enkapsulasi Trailer ialah teknik yang digunakan untuk mengurangi jumlah operasi pengkopian antar memori yang dilakukan oleh sistem penerima. Ketika option ini di enable system meminta pada system lainnya , lewat protokol ARP ,untuk melakukan enkapsulasi trailer ketika mengirimkan datanya. ARP (Address Resolution Protocol) ialah protokol yang memetakan IP Address ke Alamat fisik Ethernet. ARP di enable dengan keyword arp dan di disable dengan keyword -arp. Biasanya ARP ini selalu di enable pada tiap system. Metric Perintah ifconfig menciptakan catatan dalam tabel ruting bagi tiap interface yang telah memiliki IP address. Tiap interface merupakan rute menuju suatu network. ifconfig menentukan rute network tujuan dengan menerapkan subnetmasking terhadap IP address interface tersebut. RIP , Routing Information Protocol ialah protokol ruting yang paling banyak dipakai oleh UNIX. RIP ini melakukan dua hal. Yaitu mendistribusikan informasi ruting ke host yang lain dan menggunakan informasi ruting yang datang untuk membuat table ruting secara dinamik. Rute yang diciptakan oleh ifconfig ialah sumber yang penting bagi informasi ruting yang didistribusikan oleh RIP. Perintah ifconfig metric dapat digunakan untuk mengontrol bagimana RIP menggunakan informasi ruting ini. RIP membuat keputusan tentang ruting ini berdasarkan pada cost/biaya dari rute tersebut. Biaya/cost dari tiap tiap rute ditentukan atas metrik pada tiap rute tersebut. Makin tinggi nilai metrik dari suatu jalur , makin tinggi pula biaya pada rute tersebut. Makin rendah nilai materik suatu rute/jalur, makin rendah pula cost rute tersebut. Ketika membuat tabel ruting, RIP lebih menyukai rute yang berbiaya rendah ketimbang yang berbiaya tinggi. Rute yang 101

terhubung langsung ke tujuan akan memiliki cost yang sangat rendah , sedangkan yang tidak langsung , melewati satu atau beberapa host sebelum mencapai tujuan, akan memiliki biaya yang lebih tinggi. Rute yang terhubung langsung, secara default akan diberi metrik 0. Nilai metrik ini dapat kita ubah dengan perintah "ifconfig metrik ". Misalkan kita ingin menaikkan nilai metrik dari suatu interface menjadi 3, agar nantinya RIP memilih rute yang lain , yang memiliki metrik yang lebih rendah, yaitu 0, 1, atau 2, maka kita ketikkan perintah :
# ifconfig ed0 167.205.9.3 metric 3

Perintah metrik ini digunakan jika kita memiliki lebih dari satu interface yang terhubung ke satu network, dan kita ingin menggunakan salah satu diantaranya untuk sebagai rute utama.

TCP/IP Melalui Serial Line


TCP/IP ialah protokol yang dapat berjalan diatas berbagai macam media fisik. Medianya bisa berupa gelombang radio, kabel ethernet, sirkit telepon dan masih banyak lagi lainnya. Pada pembahasan sebelumnya kita menggunakan ifconfig untuk mengkonfigurasi interface ethernet. Pada bagian ini kita akan membahas cara mengkonfigurasi network interface serial yang berjalan pada serial line. Yang dimaksud dengan serial interface sebenarnya ialah interface yang mengirimkan datanya melalui kabel serial menuju interface lawannya. Interface lawannya pun melakukan hal yang sama melalui kabel yang sama pula. Definisi ini sebenarnya cocok bagi hampir semua interface komunikasi, termasuk juga ethernet. Namun kata serial interface biasanya dipakai bagi interface yang terhubung melalui sirkit telepon. Ada dua jenis standar protokol serial line yang banyak dipakai. Kedua protokol tersebut ialah SLIP ( Serial Line IP ) dan PPP (Point To Point Protocol)

Memilih Protokol Serial


102

SLIP diciptakan terlebih dahulu. SLIP bekerja dengan mengirim datagram melalui serial line sebagai urutan dari byte. Untuk menandai awal dan akhir data yang dikirim digunakan karakter khusus. SLIP ini memiliki kelemahan sebagai berikut : SLIP tidak mendukung koreksi kesalahan atau kompresi data. SLIP tidak menyediakan link control information yang bisa secara dinamis mengontrol karakteristik dari hubungan.SLIP harus mangasumsikan karakteristik link yang tertentu. Akibatnya SLIP hanya bisa digunakan jika kedua host mengetahui alamat lawannya dan hanya jika IP datagram tersebut ditransmisikan. Untuk mengatasi kelemahan SLIP ini , dikembangkan PPP sebagai standar internet. PPP didokumentasikan dalam dua RFC , yaitu RFC 1171 dan RFC 1172. PPP telah memiliki rutin error correction serta memiliki fasilitas link control Protocol yang dapat mengecek kualitas dari link serta mampu melakukan kompresi data. Hanya saja untuk implementasinya , PPP lebih sulit dibandingkan SLIP. Keuntungan SLIP dibandingkan dengan PPP ialah SLIP dibuat lebih dahulu, sehingga lebih banyak dipakai dan tersedia untuk lebih banyak hardware. Lagipula banyak sistem yang menawarkan dial up acces hanya mensupport SLIP. Sehingga Kesimpulannya, PPP adalah protokol yang lebih baik dibandingkan SLIP, namun SLIP lebih banyak dipakai karena pengimplementasiannya yang mudah.

Mengkonfigurasi Interface SLIP


Berbeda dengan mengkonfigrasi ethernet , yang menggunakan ifconfig, untuk mengkonfigurasi slattach. SLIP dapat digunakan dua macam perintah yaitu sliplogin dan

Slattach
Perintah Slattach memiliki bentuk sebagai berikut

103

Slattach [-a] [-c] [-e exit-command] [-f] [-h] [-l] [-n] [-r redial-command] [-s baudrate] [-u unit-command] [-z] tty_name

Berikut ini adalah beberapa operand yang penting yang dipakai oleh perintah slattach -a Digunakan untuk meng autoenable VJ header compression. Jika host pada ujung yang lain mampu melakukan VJ header compression maka option ini akan digunakan -c Digunakan untuk meng-enable VJ header compression. hal ini hanya bisa digunakan jika host di ujung yang lain mampu melakukan VJ header compression -e exit-command Digunakan untuk menspesifikasikan perintah yang akan dieksekusi shell (sh -c exitcommand) sebelum slattach keluar -h Mematikan cts/rts style flow control pada port slip. Secara default, tak ada flow contrrol yang dilakukan. -l Mendisable modem control (CLOCAL) dan mengabaikan carier detect pada

port slip. Secara default , redial-command dieksekusi saat carrier drop dan slattach akan membatalkan redial jika tak ada redial-command yang dispesifikasikan. -n Membuang paket ICMP. Interface slip ini akan mengabaikan paket ICMP untuk mencegah jalur yang pelan mengalami kejenuhan akibat respons ICMP. -r redial-command Menspesifikasikan perintah yang akan dieksekusi dalam shell (sh -c redial-command) yang akan dieksekusi ketika terjadi putus hubungan -s baudrate Menspesifikasikan kecepatan hubungan. Jika tak disebutkan maka kecepatan default yang dipakai ialah 9600 bps

104

ttyname menspesifikasikan nama dari tty device. Nama ini harus dalam bentuk 'ttyXX' atau '/dev/ttyXX'

Untuk "melepaskan" interface dapat digunakan perintah


ifconfig interface-name down.

Sebelum perintah ini diberikan proses slattach harus dimatikan terlebih dahulu dengan "kill INT" Untuk mengeset slattach agar melakukan redial bila jalur putus , dapat digunakan -r redialcmd' option untuk menspesifikasikan script atau executable yang akan melakukan koneksi ke slip server. Slip bisa berisi perintah untuk melakukan redial terhadap server dan log in , dsb Untuk melakukan rekonfigurasi terhadap network interface , kalau kalau jika slip unit numbernya berubah , digunakan perintah "-u unit-cmd" untuk menspesifikasikan script atau executable yang akan dieksekusi (sh -c unit-cmd old new). Dimana old dan new adalah slip unit number sebelum dan sesudah rekoneksi jalur. Unit number bisa berubah jika kita melakukan lebih dari satu diskoneksi pada waktu yang sama. Untuk mematikan perintah slattach gunakan perintah "kill -INT" (SIGINT). Perintah ini menyebabkan slattach menutup tty dan keluar. Untuk melakukan redial , dapat digunakan perintah "kill -HUP" (SIGHUP). Hal ini akan menyebabkan slattach mengira jalur terputus dan akhirnya ia penggunaan slip
slattach -s 4800 /dev/tty01 slattach -c -s 38400 /dev/sio01 slattach -r 'kermit -y dial.script >kermit.log 2>&1'

mengeksekusi "sh -c

redial-command" untuk melakukan penyambungan ulang ke server slip. Contoh

Sebelum mengeksekusi perintah slattach terlebih dahulu interface slip tersebut harus dikonfigurasi. Konfigurasinya dilakukan dengan menggunakan perintah ifconfig. Setelah ini 105

secara otomatis slattach yang pertama kali langsung terhubung ke sl0, slattach yang berikutnya terhubung ke sl1, dan seterusnya. Perhatikan perintah slattach diatas. Perintah tersebut langsung mengidentifikasikan serial device (/dev/tty01 pada contoh diatas), bukan sl0 atau sl1 misalnya.Namun setelah perintah slattach ini dijalankan secara otomatis tty01 akan diasosiasikan sebagai sl0 atau sl1 .

Sliplogin
Sliplogin digunakan untuk mengubah terminal line pada standard input menjadi serial line untuk berhubungan dengan remote host. Untuk itu program mencari file /etc/sliphome/slip.hosts untuk mencocokkan loginname( yang defaultnya merupakan nama login yang sekarang) Jika entry yang match ditemukan maka line ini dikonfigurasikan untuk slip. Setelah itu shell script dijalankan untuk menginisialisasi interface slip dengan IP address local dan IP address remote host yang sesuai, netmasknya , dan sebagainya. Biasanya script inisialisasi yang dipakai ialah /etc/sliphome/slip.login. Namun, jika sebuah host memerlukan inisialisasi yang khusus , file yang dieksekusi ialah /etc/sliphome/slip.login.loginname. Script ini dijalankan dengan parameter sebagai berikut. slipunit Nomor unit yang diberikan pada interface slip untuk line ini. Misalkan 0 untuk sl0 speed args Kecepatan dari line ini Argument dari /etc/sliphome/slip.hosts ,dengan urutan dimulai dengan login name

Hanya super user yang dapat memasang network interface. Interface yang telah terpasang ini secaraotomatis akan terlepas jika sisi di sebelah sana menutup teleponnya atau proses sliplogin ini terhenti. Jika kernel slip modul telah terkonfigurasi untuk itu , seluruh rute yang melalui interface akan lenyap juga pada saat yang sama. Jika ada site lain yang hendak dihubungi, file /etc/sliphome/slip.logout atau /etc/sliphome/sliplogout.loginname akan dieksekusi, jika ada. 106

Format dari file /etc/sliphome/slip.host adalah sebagai berikut : Komentar (baris yang diawali dengan #) dan baris kosong diabaikan. Baris lainnya harus dimulai dengan loginname namun argument selanjutnya bisa berupa apa saja yng cocok untuk dieksekusi atas dasar loginname tersebut. Argumen dipisahkan dengan spasi. Biasanya bentuknya adalah sebagai berikut
loginname local-address remote-address netmask opt-args

Dimana local address dan remote address adalah IP address dari kedua host ini, netmask ialah IP netmask yang sesuai . Argumen ini langsung ilewatkan ke ifconfig. Opt-args ialah argumen opsional yang digunakan untuk mengkonfigurasi line ini.

Mengkonfigurasi PPP
Network interface PPP dikonfigurasi dengan menggunakan perintah ppp. format perintah ppp ini mirip dengan perintah slattach yang digunakan untuk slip. Misalkan kita hendak mengkonfigurasi serial device /dev/tty01 dengan local address 167.260.66.15 dan remote address 167.205.66.20 maka perintah nya adalah sebagai berikut:
# ppp 167.205.66.15 :167.205.66.20 /dev/tty01 &

Kemampuan PPP untuk mempelajari IP address dari remote system memberi PPP fleksibilitas untuk menangani jalur dial up tanpa menggunakan file konfigurasi yang statis (seperti hosts.slip pada slip) Jika pada ppp command line tidak kita berikan IP address dari remote hostnya , ppp akan mengenali IP address remote host tersebut. Misalkan pada command line ppp kita berikan perintah
# ppp 167.205.9.10: /dev/ttya&

ppp hanya memberikan pada local address pada interface. remote address bisa dipelajari oleh ppp ketika ia terhubung kesana. Ketika connection terbentuk., dilakukan pertukaran informasi link control antara kedua host. Informasi inilah yang mengatakan pada local host IP address dari host yang ada di ujung lainnya. 107

Melakukan Konfigurasi Pada Startup File


Setelah kita mengetahui tentang konfigurasi interface ini , alangkah baiknya jika konfigurasi ini kita letakkan pada startup file. Pada BSD Unix , biasanya perintah ifconfig diletakkan pada file /etc/rc.boot atau di /etc/rc.local. Pada Unix System V perintah ifconfig biasanya diletakkan di /etc/tcp atau di /etc/init.d/tcp. Berikut ini kami berikan contoh Script netstart, yang digunakan untuk melakukan konfigurasi interface pada host maingtw.paume.itb.ac.id. Script ini dipanggil dari /etc/rc. Contoh script netstart.
#!/bin/sh # # $Id: netstart,v 1.17 1994/11/07 04:02:25 phk Exp $ # From: @(#)netstart 5.9 (Berkeley) 3/30/91 # last mod. by Arman Hazairin, May 29th 1995 defaultrouter=NO routedflags="-s" timedflags=NO xntpdflags="NO" ntpdate="NO" rwhod=NO sendmail_flags="-bd -q30m" amdflags="NO" nfs_client=NO nfs_server=NO name_server=YES savecore=NO #kerberos_server=YES #gated=YES if [ -f /etc/defaultdomain ] ; then domainname `cat /etc/defaultdomain` fi # my-name is my symbolic name # my-netmask is specified in /etc/networks # if [ -z "`hostname -s`" ] ; then hostname=`cat /etc/myname` hostname $hostname fi for i in /etc/hostname.* do ifn=`expr $i : '/etc/hostname\.\(.*\)'` if [ -e /etc/hostname.$ifn ]; then if [ -e /etc/start_if.$ifn ]; then

dari script lain yaitu

108

sh /etc/start_if.$ifn $ifn fi ifconfig $ifn `cat /etc/hostname.$ifn` ifconfig $ifn fi done # set the address for the loopback interface ifconfig lo0 inet localhost # set interface for multicasts to default interface # this needs to happen before router discovery route add 224.0.0.0 -netmask 0xf0000000 -interface $hostname # attach SLIP to tty00 (PUSRENBANGTI via WorlBlazer Modem) slattach -s 38400 -h tty00 # attach SLIP to tty01 (SmartCom Elektrindo via Satelite) slattach -s 19200 -l tty01 if [ -n "$defaultrouter" -a "x$defaultrouter" != "xNO" ] ; then route add default $defaultrouter elif [ -f /etc/defaultrouter ] ; then route add default `cat /etc/defaultrouter` fi # use loopback, not the wire # route add $hostname localhost #add default routing to PUSRENBANGTI route add default 167.205.136.15 #add default routing to SmartCom Elektrindo #route add 167.205.124.1 167.205.22.33

109

5
Konfigurasi Routing
Pada bab ini akan dibahas tentang: Subnetting Topologi Network dan Routing Konfigurasi Routing yang Sering digunakan Membentuk Routing Table Routing Information Protocol Penggunaan routed / gated

110

Pendahuluan
Masalah routing merupakan konsekuensi dari internetworking. Semakin kompleks topologi dan konfigurasi dari network, semakin penting teknik dan sistem routing yang andal untuk diimplementasikan dalam network. Pada bagian awal, akan diterangkan masalah subnetting, yaitu pembuatan subnetwork dari suatu kelas network, sebagai dasar untuk memahami konsep nomor network dan nomor host. Diterangkan juga teknik masking untuk membentuk subnetwork dan menentukan nomor network. Beberapa contoh konfigurasi routing yang sering digunakan akan dibahas untuk membantu pemahaman. Menyusul kemudian routing table, yang harus dimiliki oleh semua host TCP/IP agar dapat mengirimkan datagram ke tujuan. Routing table minimum harus dimiliki oleh setiap host. Untuk gateway/router, routing table akan bertambah panjang dan kompleks, sesuai dengan konfigurasi network yang terhubung dengannya. Dengan perkembangan network yang sangat cepat, routing statis akan menyulitkan pekerjaan administrator network untuk mengupdate routing table sesuai perubahan / penambahan pada netowrk. Untuk itu digunakan protokol routing, yang berfungsi untuk mengupdate routing table secara dinamis tanpa campur tangan operator. Subnetting dan nomor network sangat berperan di sini. Pada bagian akhir akan diterangkan penggunaan routed / gated sebagai implementasi dari salah satu protokol routing, Routing Information Protocol (RIP), pada network.

Subnetting
Untuk beberapa alasan yang menyangkut efisiensi IP Address, mengatasi masalah topologi network dan organisasi, network administrator biasanya melakukan subnetting. Esensi dari subnetting adalah memindahkan garis pemisah antara bagian network dan bagian host dari suatu IP Address. Beberapa bit dari bagian host dialokasikan menjadi bit tambahan pada bagian network. Address satu network menurut struktur baku dipecah menjadi beberapa subnetwork. Cara ini menciptakan sejumlah network tambahan berupa subentwork, tetapi mengurangi jumlah maksimum host yang ada dalam tiap subnetwork tersebut.

111

Subnetting juga dilakukan untuk mengatasi perbedaan hardware dan media fisik yang digunakan dalam suatu network. Router IP dapat mengintegrasikan berbagai network dengan media fisik yang berbeda hanya jika setiap network memiliki address network yang unik. Selain itu, dengan subnetting, seorang administrator network dapat mendelegasikan pengaturan host address seluruh departemen dari suatu perusahaan besar kepada setiap departemen, untuk memudahkannya dalam mengatur keseluruhan network. Suatu subnet didefinisikan dengan mengimplementasikan masking bit (subnet mask) kepada IP Address. Struktur subnet mask sama dengan struktur IP Address, yakni terdiri dari 32 bit yang dibagi atas 4 segmen. Bit-bit dari IP Address yang ditutupi (dimasking) oleh bit-bit subnet mask yang aktif dan bersesuaian akan diinterpretasikan sebagai bit-bit network. Bit 1 pada subnet mask berarti mengaktifkan masking ( on ), sedangkan bit 0 tidak aktif ( off ). Sebagai contoh kita ambil satu IP Address kelas A dengan nomor 44.132.1.20. Dengan aturan standar, nomor network IP Address ini adalah 44 dan nomor host adalah 132.1.20. Network tersebut dapat menampung maksimum lebih dari 16 juta host yang terhubung langsung. Misalkan pada address tersebut di atas akan diimplementasikan subnetmask 255.255.0.0.( Dalam bilangan hexa = FF.FF.0.0 atau dalam biner = 11111111.11111111.00000000.00000000 ). Perhatikan bahwa pada 16 bit pertama dari subnet mask tersebut berharga 1, sedangkan 16 bit berikutnya 0. Dengan demikian, 16 bit pertama dari suatu IP Address yang dikenakan subnet mask tersebut akan dianggap sebagai bit-bit network. Nomor network akan berubah menjadi 44.132 dan nomor host menjadi 1.20. Kapasitas maksimum host yang langsung terhubung pada network menjadi sekitar 65 ribu host. Satu network kelas A yang dapat menampung lebih dari 16 juta host telah dapat diubah menjadi 256 subnetwork yang setara dengan satu network kelas B (44.0.0.0, 44.1.0.0, dst sampai 44.255.0.0) yang masing-masing dapat menampung sekitar 65 ribu host. Pada kenyataannya, network 44 ( kelas A ) dialokasikan untuk network TCP/IP radio amatir se-dunia. Oleh organisasi radio amatir, network 44 dipecah menjadi 256 subnetwork seperti di atas, yakni 44.0, 44.1, 44.2 dst. Dalam hal ini, organisasi radio amatir Indonesia mendapat subnetwork 44.132. Subnetwork yang setara dengan satu network kelas B ini dapat dipecah pula menjadi beberapa subnetwork yang lebih kecil seperti 44.132.0, 44.132.1, 44.132.2 dst ( masing-masing setara dengan satu network kelas C ). Dalam hal ini, masing-masing subnetwork berkapasitas 256 host ( biasanya 254 host, karena ada dua IP Address yang 112

dialokasikan untuk keperluan khusus sebagai nomor network dan broadcast address dan tidak boleh dipakai untuk host ). Masing-masing subnetwork dapat dialokasikan untuk tingkat yang lebih rendah seperti propinsi, kota dsb. subnetmask 24 bit ( 255.255.255.0 atau FF.FF.FF.0 ). Dari uraian di atas, terlihat fungsi subnetting untuk pendelegasian suatu kelas network. Masing-masing subnetwork dapat mengurus dirinya sendiri tanpa harus diatur dari pusat. Selain itu, berbagai network dengan media fisik yang berlainan dapat diintegrasikan dengan cara setiap network yang berbeda media fisiknya itu mendapat nomor network yang berbeda (hasil dari subnetting). Pada uraian selanjutnya akan terlihat bahwa nomor network yang didapat akibat subnetting akan digunakan sebagai informasi routing pada routing table setiap gateway maupun host pada network tersebut. Subnetting dilakukan pada saat konfigurasi interface. Seperti yang telah disinggung sebelumnya, penerapan subnet mask pada IP Address akan mendefinisikan 2 buah address baru, yakni network address dan broadcast address. Network address didefinisikan dengan menset seluruh bit host berharga 0, sedangkan broadcast address dengan menset bit host berharga 1. Perhatikan IP Address kelas B sebagai berikut : Untuk itu, diimplementasikan

167

205

20

nnnnnnnn nnnnnnnn hhhhhhhh hhhhhhhh


Bit-bit Network Bit-bit Host

Gambar 5-1.
Struktur IP Address kelas B Jika seluruh bit host diset berharga 0 (minimum), didapat IP address 167.205.0.0. Ini adalah nomor network. Jika seluruh bit host diset berharga 1 (maksimum) didapat IP Address 167.205.255.255. Ini adalah broadcast address untuk network tersebut. Nomor network dan broadcast address di atas merupakan harga yang standar bagi network kelas B. Tanpa ada penerapan subnet mask dan informasi routing lainnya, host yang memiliki interface dengan IP Address di atas akan berasumsi bahwa seluruh host dengan IP address yang berharga di 113

antara 167.205.0.0 dan 167.205.255.255 terhubung langsung ke network tersebut dan dapat dihubungi secara langsung tanpa melalui gateway. Jika network kelas B tersebut akan dipecah menjadi 256 subnetwork setara kelas C, dilakukan masking dengan subnetmask 24 bit (255.255.255.0 atau FF.FF.FF.0). Dengan demikian, struktur IP Address menjadi sebagai berikut :

167

205

20

nnnnnnnn nnnnnnnn nnnnnnnn hhhhhhhh


Bit-bit Network Bit-bit Host

Gambar 5-2
Struktur IP Address kelas B dengan masking 24 bit Jika seluruh bit host diset berharga 0, didapat IP address 167.205.20.0. Ini adalah nomor network. Jika seluruh bit host diset berharga 1, didapat IP Address 167.205.20.255. Ini adalah broadcast address untuk network tersebut. Terlihat bahwa nomor network dan broadcast address yang standar telah berubah. Alamat subnetwork dikenali dengan nomor subnetworknya. Network address adalah alamat network yang berguna pada informasi routing. Suatu host tidak perlu mengetahui IP address seluruh host yang ada pada network yang lain. Informasi yang dibutuhkannya hanyalah address dari network yang akan dihubungi serta gateway untuk mencapai network tersebut. Broadcast address adalah alamat yang disepakati pada suatu network untuk mengirimkan informasi yang akan diberikan kepada seluruh host ( dibroadcast ) pada network tersebut. Penggunaan broadcast address akan dibahas pada bagian routing. Ilustrasi mengenai subnetting, network address dan broadcast address dapat dilihat pada gambar 5-3 . Dari gambar tersebut dapat disimpulkan bagaimana nomor network standard dari suatu IP Address diubah menjadi nomor subnet / subnet address melalui subnetting.

IP Address 44.132.1.20

Network Address Standard 44.0.0.0

Subnet Mask 255.255.0.0

Interpretasi Host 1.20 pada

Broadcast Address 44.132.255.255

114

81.150.2.3 167.205.2.100 167.205.2. 130

( kelas A ) 81.0.0.0 ( kelas A ) 167.205.0.0 ( kelas B ) 167.205.0.0 ( kelas B )

( 16 bit ) 255.255.255.0 ( 24 bit ) 255.255.255.128 ( 25 bit ) 255.255.255.224 ( 27 bit )

subnet 44.132.0.0 Host 3 pada subnet 81.50.2.0 Host 100 pada subnet 167.205.2.0 Host 2 pada subnet 167.205.2.128

81.50.2.255 167.205.2.127 167.205.2.159

Gambar 5-3
Beberapa IP Address dengan masking yang berbeda Subnetting hanya berlaku pada network lokal. Bagi network di luar network lokal, nomor network yang dikenali tetap nomor network standard menurut kelas IP Address.

Topologi Network dan Routing


Masalah dan strategi routing pada jaringan TCP/IP sangat bergantung kepada pengetahuan mengenai topologi network, subnetting dan keberadaan gateway pada network lokal. Gambar 5-4. menunjukkan suatu TCP/IP Network sebagai bahan pembahasan dalam konsep routing ini.
167.205.20.3 167.205.20.5

167.205.20.0 Token Ring

44.132.1.0

167.205.20.11 Gateway 1

44.132.1.20 Gateway 2 167.205.22.18 167.205.22.0


Ethernet

44.132.1.5

167.205.22.5

Gateway 3

To Internet
167.205.22.6 167.205.22.3 167.205.22.20

Gambar 5-4
Contoh TCP/IP Network

115

Ada 3 buah network TCP/IP yang diintegrasikan, yaitu Token Ring, Ethernet dan Paket Radio. Bagi network Token Ring, satu-satunya Gateway untuk berhubungan keluar adalah host 167.205.20.11 yang juga terhubung ke network Ethernet dengan IP Address 167.205.22.5. Karena itu, tiap paket yang akan dikirimkan kepada host diluar network harus dikirimkan terlebih dahulu ke gateway ini. Pada gateway, paket yang masuk akan diteliti kemana IP Address tujuan paket tersebut. Jika paket tersebut untuk salah satu host dalam network Ethernet, maka paket akan langsung dikirimkan ke host tersebut. Namun jika IP Addess tujuan adalah untuk host pada network paket radio, ataupun pada network yang ada dibelakang network paket radio, maka paket akan dikirim kepada gateway yang terhubung dengan network tersebut. Keputusan untuk menentukan kemana paket yang diterima akan dikirimkan kembali, diambil dari data pada tabel routing tiap-tiap host TCP/IP, terutama pada gateway. Mari kita lihat lebih dalam dengan meninjau jalannya paket antara 2 host yang berhubungan melalui TCP/IP Network pada gambar 5-4. Misalkan host 167.205.20.3 pada network Token Ring ingin berbicara dengan host 44.132.1.5 pada network paket radio. Perhatikan gambar 5-7.
Host 167.205.20.3
Application Transport Internet Data Link

Host 44.132.1.5
Application Transport Internet Data Link

Gateway 1
167.205.20.11 167.205.22.5

Gateway 2
167.205.22.18 44.132.1.20 Internet Data Link

Internet Data Link

167.205.20.0

167.205.22.0

44.132.1.0

Token Ring

Ethernet

Paket Radio

Gambar 5-5
Routing paket ditinjau dari arsitektur jaringan komputer TCP/IP

Hubungan end-to-end adalah antara host 167.205.20.3 dengan host 44.132.1.5. Pada gateway 1, paket diteliti pada lapisan network / internet layer. Jika tujuan paket memang benar untuknya, paket diteruskan ke lapisan di atasnya. Tetapi jika bukan, paket akan dikirim ke host tujuannya atau ke gateway lain. Pada gateway 2, paket kembali diteliti dan diteruskan 116

pada interface yang tersambung ke network paket radio. Pada host tujuan, paket diteliti dan diteruskan ke lapisan di atasnya untuk diproses lebih lanjut. Sering terdapat gateway/router yang memiliki banyak interface (tersambung langsung ke banyak network). Dalam hal ini, gateway harus bisa menentukan ke interface yang mana paket harus dilalukan agar dapat mencapai tujuannya. Hal ini ditentukan dari tabel routing yang akan dibahas pada bagian berikut.

Konfigurasi Routing yang Sering Digunakan


Agar dapat meneruskan paket ke tujuan yang benar, setiap sistem TCP/IP melakukan routing. Namun demikian, tidak seluruh sistem TCP/IP menjalankan protokol routing. Dengan demikian, harus dibedakan antara routing dan protokol routing. Protokol routing adalah suatu program yang mempertukarkan informasi yang digunakan untuk membentuk tabel routing, sedangkan routing itu sendiri adalah aksi pengiriman datagram-datagram berdasarkan informasi yang diambil dari routing table. Konfigurasi routing pada suatu network tidak selalu harus menggunakan protokol routing. Hal ini bergantung pada konfigurasi network yang ada, misalnya pada jumlah gateway yang tersambung dengan network. Jika hanya ada satu gateway yang menghubungkan suatu network dengan dunia luar, sistem administrator akan memilih untuk membuat tabel routing secara manual. Pada network TCP/IP yang sama sekali tidak mempunyai akses ke network TCP/IP lainnya, tabel routing yang ada tidak perlu ditambah, baik secara manual maupun melalui protokol routing. Cukup menggunakan minimal routing. Network lokal seperti ini cukup sering dijumpai, dimana hubungan keluar network hanya melalui UUCP. Jadi, ada tiga konfigurasi routing yang paling umum digunakan pada TCP/IP network, yaitu :

117

Minimal routing Suatu network yang terisolasi dari network lain hanya memelukan minimal routing, yakni informasi nomor network yang langsung terhubung dengannya. Tabel routing minimal ini dibentuk pada saat interface dikonfigurasi (dengan perintah ifconfig).

Static routing Suatu network yang hanya memiliki sejumlah gateway yang terbatas ke network lainnya biasanya dikonfigurasi dengan static routing. Tabel routing statis dibangun secara manual oleh sistem administrator berdasarkan konfigurasi network yang ada. Perintah route digunakan untuk ini. Jika suatu saat konfigurasi network berubah, misalkan jumlah gateway bertambah ataupun gateway berganti, sistem administrator harus mengadakan perubahan pada tabel routing untuk mengikuti perubahan tersebut. Static routing cocok digunakan pada suatu network bilamana hanya terdapat satu rute untuk mencapai suatu network tujuan. Dynamic routing Suatu network yang memiliki lebih dari satu rute untuk mencapai tujuan yang sama sebaiknya menggunakan dynamic routing. Tabel routing dinamis dibentuk berdasarkan informasi yang dipertukarkan oleh protokol routing. Protokol routing didesain untuk secara dinamis menentukan routing berdasarkan kondisi terakhir. Tabel routing senantiasa di-update berdasarkan informasi dari setiap gateway, sehingga bila suatu rute putus akibat gateway yang bersangkutan tidak bekerja, rute ke network tujuan melalui gateway tersebut akan dipindahkan melalui gateway lain. Protokol routing juga didesain untuk menentukan rute terbaik untuk mencapai tujuan, jika terdapat lebih dari satu rute. Singkatnya, minimal routing secara otomatis terbentuk pada saat konfigurasi interface, static routing dibentuk scara manual oleh sistem administrator dan dynamic routing dibentuk oleh protokol routing. Bagaimanapun cara / proses lahirnya suatu routing, semuanya bertujuan membentuk tabel routing dan menentukan jalan yang harus ditempuh datagram untuk mencapai tujuan.

118

Ada banyak protokol routing yang digunakan pada TCP/IP network. Semua protokol routing pada dasarnya memiliki fungsi yang sama, yakni menentukan rute terbaik untuk setiap tujuan dan mendistribusikan informasi routing kepada sistem-sistem dalam network. Perbedaan antara protokol routing yang satu dengan yang lain terutama terletak pada cara kerjanya, bagaimana ia bisa memutuskan rute terbaik dari beberapa rute. Secara keseluruhan, protokol routing dapat kita kelompokkan menjada dua kenis yaitu Interior Routing Protocol dan Exterior Routing Protokol. Interior Routing Protocol digunakan sebagai protokol routing di dalam suatu autonomous system. Pada TCP/IP routing, istilah autonomous system memiliki arti yang formal, yakni suatu kumpulan network dan gateway yang memiliki mekanisme internal sendiri dalam mengumpulkan informasi routing dan memberikannya kepada yang lain. Ada beberapa protokol routing yang termasuk dalam kelompok ini, seperti Routing Information Protocol ( RIP ), Hello, Shortest Path First (SPF) dan Open Shortest Path First (OSPF). Masing-masing memiliki kelebihan dan kekurangan. Kita hanya akan membahas RIP karena protokol routing inilah yang paling banyak digunakan pada TCP/IP network, Exterior Routing Protocol digunakan sebagai protokol routing untuk mempertukarkan informasi routing antar autonomous system. Informasi routing yang dikirimkan antar autonomous system disebut reachability information, yakni informasi mengenai network apa saja yang dapat dicapai melalui suatu autonomous system. Beberapa Exterior Routing Protocol yang cukup umum digunakan adalah Exterior Gateway Protocol ( EGP ) dan Border Gateway Protocol ( BGP ). Namun demikian, kebanyakan sistem tidak menjalankan Exterior Routing Protocol karena tidak terlalu dibutuhkan. Ia hanya diperlukan jika ada keharusan antar autonomous system untuk mempertukarkan informasi routing. Dalam hal ini, Exterior Protocol yang dipakai antar dua autonomous system harus sama.

Membentuk Routing Table


Setiap host pada TCP/IP Network harus memiliki tabel routing agar dapat menentukan jalan untuk mencapai tujuan dari paket-paket yang akan dikirimkannya. Tabel routing secara otomatis akan terbentuk pada saat interface dikonfigurasi. Tabel routing pada tahap ini adalah tabel routing minimal. Perhatikan gambar 5-4. Untuk melihat tabel routing pada host 119

dengan IP Address 167.205.20.3 ( Token Ring ) dalam bentuk numerik, dipakai perintah berikut :
$ netstat -nr Routing tables Destination 127.0.0.1 167.205.20.0 Gateway 127.0.0.1 167.205.20.3 Flags UH U Refcnt 1 35 Use 105 3075 Interface lo0 ed0

Bagian pertama dari tabel routing merupakan rute loopback ke localhost. Setiap host TCP/IP akan memiliki rute ini. Bagian kedua merupakan rute ke network 167.205.20.0 melalui interface ed0. Network ini adalah network lokal. Address 167.205.20.3 bukanlah remote gateway, melainkan address yang telah di-assign untuuk interface ed0. Perhatikan bahwa nomor network 167.205.20.0 muncul akibat parameter mask pada waktu konfigurasi interface dengan subnetmask 255.255.255.0. Tanpa adanya subnetmask, network address yang muncul adalah 167.205.0.0 ( Standar kelas B ). Flag U ( up ) menandakan interface telah siap dipakai. Flag H ( host ) menandakan hanya satu host yang dapat dicapai melalui rute ini. Berarti, rute ini hanya menuju ke host tertentu ( bedakan dengan rute ke suatu network yang mungkin memiliki puluhan / ratusan host ). Kebanyakan rute yang ada pada routing table menuju ke network, bukan ke host tertentu. Hal ini untuk memperkecil ukuran routing table. Suatu instansi mungkin hanya memiliki satu network, tetapi network tersebut mungkin terdiri dari ratusan host. Mudah dimengerti bahwa jika seluruh IP Address dari host yang ada pada network tujuan dimasukkan dalam routing table, ukurannya akan membengkak dengan cepat. Cukup nomor networknya saja yang dicantumkan karena telah mewakili nomor seluruh host pada network tersebut. Untuk akses ke network yang lain, network token ring di atas hanya memiliki satu gateway, yakni yang ber-IP Address 167.205.20.11. Untuk itu, seluruh host yang ada pada network token ring ( kecuali gateway ) dapat menambahkan default routing sbb :

# route -n add default 167.205.20.11 1 add net default: gateway 167.205.20.11

120

Dengan perintah ini, rute ke seluruh network ( selain network lokal ) akan ditempuh melalui gateway 1 (167.205.20.11). Option -n tidak harus digunakan. Option tersebut hanya untuk menampilkan address secara numerik untuk menghindari permintaan ke Name Server yang belum tentu bekerja. Metric 1 dipakai sebagai metric terkecil untuk rute melalui gateway ekstenal, untuk memberikan prioritas tertinggi pada rute ini. Jika kita periksa kembali routing table setelah memasukkan default routing ini, akan muncul sbb :
$ netstat -nr Routing tables Destination 127.0.0.1 default 167.205.20.0 Gateway 127.0.0.1 167.205.20.11 UG 167.205.20.3 Flags UH 0 U 35 Refcnt 1 0 3075 Use 105 ed0 ed0 Interface lo0

Pada routing table di atas terlihat adanya entri default routing. Flag G menandakan rute default ini melalui eksternal gateway ( host 167.205.20.11 ). Pada network Ethernet ( 167.205.22.0 ) ada 3 buah gateway. Untuk host-host pada network ini, routing table dapat dibentuk secara statis. Misalkan kita berada pada host 167.205.22.3. Network 167.205.20.0 dapat dicapai melalui gateway 1 (167.205.22.5), network 44.132.1.0 melalui gateway 2 (167.205.22.18) dan akses ke network yang lebih besar, misalkan ke Internet Provider, dicapai melalui gateway 3 (167.205.22.20). Untuk itu, setelah routing minimal dapat ditambahkan perintah routing sbb :
# route -n add 167.205.20.0 167.205.22.5 1 add net 167.205.20.0: gateway 167.205.22.5 # route -n add 44.132.1.0 167.205.22.18 1 add net 44.132.1.0: gateway 167.205.22.18 # route -n add default 167.205.22.20 1 add net default: gateway 167.205.22.20

Routing table akan bertambah menjadi :


$ netstat -nr Routing tables

121

Destination 127.0.0.1 167.205.22.0 default 44.132.1.0 167.205.20.0

Gateway 127.0.0.1 167.205.22.3 UG 167.205.22.5 167.205.22.18

Flags UH U 0 UG UG

Refcnt 1 28 0 0 0

Use 105 9808

Interface lo0 ed0 ed0 ed0 ed0

167.205.22.20

0 0

Agar routing table terbentuk pada saat start up komputer, perlu di set routing statis dengan beberapa modifikasi sbb : Tambahkan static routing yang diinginkan sesuai konfigurasi network Non-aktifkan semua perintah dari file startup yang menjalankan protokol routing.

Untuk host di atas, edit file rc.local untuk menambahkan statement route sbb:
route -n add default 167.205.22.20 1 > /dev/console route -n add 167.205.20.0 167.205.22.5 1 > /dev/console route -n add 44.132.1.0 167.205.22.18 1 > /dev/console

Startup file untuk setiap sistem mungkin saja berbeda, tetapi pada dasarnya memiliki prosedur yang sama. Bacalah selalu dokumentasi dari sistem anda.

Routing Information Protocol


Routing Information Protocol ( RIP ) merupakan protokol routing yang paling umum digunakan pada TCP/IP network. Penggunaan RIP yang luas ini dimungkinkan karena RIP merupakan bagian dari software UNIX yang ikut didistribusikan pada kebanyakan sistem. RIP sangat cocok digunakan sebagai protokol routing pada suatu autonomous system. Untuk menentukan rute terbaik, RIP memilih rute yang memiliki hop count atau metric yang terendah. Metric menunjukkan jumlah gateway yang harus dilalui oleh datagram untuk mencapai tujuannya. Bagi RIP, rute terbaik adalah rute yang melalui sesedikit mungkin gateway. Semakin sedikit gateway yang dilalui, semakin pendek jalan yang harus ditempuh. Hop count terbesar yang dapat diterima RIP adalah 15. Jika metric suatu rute lebih besar dari 15, RIP menganggap bahwa tujuan tak dapat dicapai dan rute tersebut diabaikan. Ini merupakan salah satu kelemahan RIP. Karena itu, RIP tidak cocok digunakan dalam 122

autonomous system yang sangat besar, dimana rute mungkin melewati lebih dari 15 gateway. Satu lagi yang dapat dianggap sebagai kelemahan adalah, RIP tidak mempertimbangkan delay transmisi maupun kongesti dari network yang dilaluinya. Sangat mungkin terjadi, rute dengan metric lebih kecil ternyata tidak reliable dibandingkan rute lain dengan metric lebih besar akibat adanya kongesti dan delay pada rute tersebut. Untuk itu, beberapa protokol routing yang lain telah dikembangkan guna mengatasi hal ini. Pada kebanyakan sistem UNIX, RIP dijalankan oleh routing daemon atau routed. Routing daemon secara dinamis akan membangun sebuah routing table berdasarkan informasi update yang diterimanya. Ketika dijalankan, routed mengirimkan permintaan update routing dan mendengarkan respon permintaannya. Permintaan ini dikirimkan ke alamat broadcast dari network. Karena seluruh host yang tersambung pada network menset alamat broadcast yang sama, seluruh host akan mendengarkan permintaan tersebut. Jika host yang dikonfigurasi untuk mensupply informasi RIP mendengarkan permintaan ini, ia akan memberi respon dengan mengirimkan paket berisi update routing berdasarkan routing table yang dimilikinya. Paket tersebut akan berisi address-address tujuan beserta metric routingnya masing-masing. Informasi ini juga dikeluarkan secara periodik ( tidak hanya jika ada permintaan saja ) untuk menjaga keakuratan dari routing. Ketika update RIP telah diterima, routed akan menyeleksi informasi yang didapatnya. Jika ada rute ke suatu address yang belum ia miliki, rute tersebut akan ditambahkan langsung ke routing table-nya dan metric routingnya bertambah satu. Jika ia menerima rute ke address yang telah ada pada routing table lokal, metric rute tersebut akan dibandingkan dengan metric rute di lokal. Metric yang terendah akan diambil sebagai rute ke address tersebut pada routing table. Selain itu, RIP juga dapat menghapus rute dalam routing table lokal. Ada dua jenis rute yang akan dihapus oleh RIP. Pertama, jika rute yang diterimanya dari suatu gateway memiliki metric lebih dari 15, rute tersebut akan dihapus. Kedua, RIP akan menghapus rute melalui gateway yang dianggapnya telah mati. Semua rute melalui suatu gateway akan dihapus jika tidak ada update routing yang diterima dari gateway tersebut dalam periode waktu tertentu. Biasanya, update routing akan dikeluarkan setiap 30 detik dan jika dalam 180 detik tidak ada update yang diterima dari suatu gateway, rute melalui gateway tersebut akan dihapus dari routing table. 123

Penggunaan routed / gated


Ada dua cara yang paling banyak digunakan pada TCP/IP network untuk mengimplementasikan protokol routing, yaitu dengan routed ataupun gated. Perbedaan keduanya terletak pada protokol routing yang dijalankannya. routed hanya menjalankan RIP, sedangkan gated dapat menjalankan beberapa protokol routing seperti RIP, Hello, BGP maupun EGP. Implementasi setiap protokol routing yang ada pada gated kompatibel dengan protokol routing yang diimplementasikan oleh program yang lain. Sebagai contoh, RIP yang dijalankan oleh routed sama dengan RIP yang ada pada gated. Untuk menjalankan RIP menggunakan routing daemon ( routed ), cukup ketikkan perintah sbb :
# routed

Pada umumnya perintah routed dijalankan tanpa option apapun. Namun demikian dapat juga ditambahlan option -q. Option -q ini bertujuan agar routed tidak membroadcast routing tablenya ke host lain, tetapi hanya mendengar rute yang dibroadcast oleh sistem lain dan mengupdate routing tablenya terus menerus. Host yang tidak berfungsi sebagai gateway sebaiknya menggunakan option -q. Sebagaimana pada static routing, routed pada umumnya dijalankan pada saat boot up. Untuk itu, tambahkan baris berikut pada startup file dari sistem.
# Use /etc/routed on most systems, # # if [ -f /etc/routed ]; then routed; fi echo -n ' routed' > /dev/console /user/etc/in.routed on Sun systems

Routing table akan terbentuk setelah host mendengar update routing dari host lain. Namun demikian, jika dalam kurun waktu tertentu update routing belum didengar, tidak ada informasi routing yang dapat digunakan sebagai kondisi awal. Untuk itu, kita dapat membuat rute awal yang akan dimasukkan ke dalam routing table. Rute ini dapat kita set menjadi statis atau dinamis, tergantung kondisi network. Informasi ini diambil dari file /etc/gateways. File ini

124

berguna sebagai tambahan untuk informasi routing. Sebagai contoh, file /etc/gateways akan berisi entri-entri berikut :
net 0.0.0.0 gateway 167.205.22.20 metric 1 active net 167.205.20.0 gateway 167.205.22.5 metric 1 passive net 44.132.1.0 gateway 167.205.22.18 metric 1 passive

Setiap baris dari file /etc/gateways berawalan net atau host, diikuti oleh address network atau host tujuan. net 0.0.0.0 berarti default routing. Selanjutnya gateway diikuti address gateway. Kemudian metric diikuti harga numeriknya. Kata terakhir adalah active atau passive. Jika passive, gateway yang dinyatakan pada enrtri tersebut tidak membutuhkan update routing. Hal ini untuk menghindari RIP menghapus rute tersebut jika tidak ada update dari gateway. Efeknya sama dengan static routing. Sebaliknya, active berarti RIP dapat meng-update rute tersebut dan dapat pula menghapusnya jika time out telah lewat. Sebaiknya gunakan parameter active untuk default route. Hal ini untuk mengantisipasi apabila default gateway tidak bekerja. Selain itu, jika kita memiliki beberapa gateway untuk mencapai tujuan yang sama, sebaiknya juga menggunakan parameter active untuk menjaga keandalan routing. Di samping routed, routing daemon yang banyak dipakai adalah gated. Seperti yang telah dijelaskan, gated mengkombinasi beberapa protokol routing dalam satu paket. Kita bebas memilih apakah akan menjalankan salah satu protokol routing saja atau semuanya. Masingmasing protokol routing dalam gated kompatibel dengan protokol routing yang diimplementasikan oleh program spesifik lainnya. Selain itu, ada beberapa alasan lagi untuk menggunakan gated, antara lain : Pada sistem yang menjalankan lebih dari satu protokol routing, gated dapat mengkombinasikan informasi routing dari setiap protokol dan memilih salah satu yang terbaik. Rute yang didapat dari interior routing protocol dapat pula didistribusikan melalui exterior routing protocol. Konfigurasi routing menjadi lebih sederhana, karena semua protokol dikonfigurasi dari satu file saja ( /etc/gated.conf ). 125

Contoh file /etc/gated.conf untuk salah satu host pada network token ring ( gambar 5-4.) yang hanya memiliki satu interface dapat dilihat sebagai berikut :
# dont time-out the network interface # interface 167.205.20.3 passive ; # # enable rip # rip yes ; #

Kata passive, seperti sebelumnya, menyatakan static routing, agar tidak ada time out untuk rute ini. Secara normal, jika gated mendapatkan bahwa suatu interface sedang down, semua rute melewati interface tersebut akan dihapus. Hal ini untuk mencegah ada gateway yang memberikan update routing melalui interface yang sedang down. Tetapi, karena hanya ada satu interface pada host, lebih baik membuatnya menjadi statis. Secara default, RIP akan dijalankan pada setiap interface. Jadi, sebenarnya tidak perlu dicantumkan rip yes pada file ini. Namun demikian, hal ini baik dilakukan untuk pendokumentasian dari konfigurasi yang kita gunakan. Setiap perintah dalam file ini diakhiri dengan tanda titik-koma ( ; ). Satu lagi contoh file /etc/gated.conf untuk konfigurasi gateway dalam
suatu autonomous system dapat dilihat di bawah. Contoh untuk ini masih kita ambil dari gambar 3-4. Gateway yang akan dikonfigurasi adalah gateway 1, yang menghubungakn network token ring dengan network ethernet.

# #

enable rip

rip yes { broadcast; preference 100; interface 167.205.22.5 ripin ripout; interface 167.205.20.11 noripin ripout; };

126

Pada perintah rip

yes di atas terdapat beberapa pilihan yang digunakan untuk

mengkonfigurasi routing: broadcast, preference, dan interface.

Pilihan

broadcast menunjukkan bahwa paket RIP akan di broadcast tanpa memperhatikan jumlah

interface yang ada. Pilihan ini berguna jika meneruskan routing statik atau route yang dipelajari dari protokol lain ke dalam RIP. Dalam beberapa kasus, penggunaan broadcast jika hanya ada satu network interface dapat menyebabkan paket data berjalan di network yang sama dua kali. Lawan dari broadcast adalah nobroadcast, yang menunjukkan bahwa paket RIP tidak akan dibroadcast ke interface yang ada, walaupun jumlahnya lebih dari satu. Secara default, RIP mengasumsikan nobroadcast jika hanya terdapat satu interface dan broadcast jika terdapat lebih dari satu interface. Pilihan preference menentukan preferensi atas route yang dipelajari dari route. Harga default pilihan ini adalah 100. Pilihan interface mengontrol berbagai attribut pengiriman RIP pada interface yang ditentukan. Nama interface sendiri dapat berupa nama interface yang didefinisikan oleh kernel UNIX (ep0, misalnya) atau nomor IP yang diberikan kepada interface tersebut. Praktik yang paling baik adalah dengan menggunakan nomor IP interface karena kernel UNIX dapat memberikan beberapa nomor IP pada sebuah interface. Untuk setiap interface harus diberikan parameter-parameter yang diperlukan untuk RIP. Parameter-parameter tersebut antara lain: noripin Mengatur agar paket RIP yang diterima melalui interface yang dimaksud tidak akan dihiraukan ripin Ini adalah default bagi protokol RIP noripout Mengatur agar tidak ada paket RIP yang dikeluarkan melalui interface yang dimaksud. ripout 127

Ini adalah default yaitu mengirim paket RIP pada semua interface broadcast dan nonbroadcast jika dalam mode broadcast.

Dalam contoh di atas, digunakan mode broadcast karena bertindak sebagai router walaupun hal ini sebenarnya tidak perlu. Dengan demikian route statik dapat dipropagasikan.
Preference diisi dengan harga 100 walaupun tidak perlu. Kedua hal ini hanya untuk

dokumentasi dalam menentukan konfigurasi routing. Interface 167.205.22.5 dengan menggunakan perintah ripin dan ripout. Dengan kedua perintah ini, interface dapat menerima route yang dipelajari dari router lain pada network 167.205.22.0 dan juga menginformasikan route network yang terhubung dengannya kepada router-router lain di network 167.205.22.0. Interface 167.205.20.11 menggunakan perintah noripin dan ripout. Pada network ini tidak terdapat network lain yang terhubung dengannya kecuali network 167.205.22.5 sehingga interface ini tidak perlu mempelajari route dari interface 167.205.20.11 yang berarti parameter yang diberikan adalah noripin. Interface ini perlu memberi tahu workstation di networknya agar mengarahkan route-nya ke router ini. Jadi, parameter yang diberikan pada interface ini adalah noripin.

128

6
Domain Name System (DNS) Berkeley Internet Name Domain (BIND)

Pada bagian ini akan dibahas penggunaan DNS, cara melakukan setup DNS server, zone file, resolver, serta cara menggunakan utiliti nslookup.

129

Pendahuluan
DNS (Domain Name System) pada dasarnya adalah suatu basis-data informasi host di internet. Informasi yang disediakan termasuk semua data yang diperlukan untuk mengakses host di internet atau hanya bersifat pemberitahuan (advertising). Fungsi esensial DNS, yang melatar-belakangi pembuatannya, adalah fungsi pemetaan antara alamat Internet (IP address)berupa bilangan yang panjangnya 32 bitdengan sebuah nama yang lebih manusiawi dan mudah untuk diingat. DNS bertanggung-jawab dalam menyediakan informasi host ke seluruh Internet serta dalam penyedian alat untuk menerima informasi yang dibutuhkan secara remote. Dengan DNS, kita juga diberikan hak untuk mendistribusikan manajemen / pengaturan informasi host ini kepada site / organisasi lain. Tiap site hanya berkewajiban menjaga informasi yang didelegasikan kepadanya disebut sebagai domain tetap up-to-date pada name-server masing-masing. Name-server ini akan berinteraksi dan menjamin data pada domain kita dikenali oleh name-server yang lain di jaringan. Sifat basisdata yang terdistribusi mengisyaratkan bahwa sistem, juga harus mempunyai kemampuan mencari informasi yang diinginkan dari sejumlah lokasi yang mungkin. Dan dengan DNS, tiap name-server telah dibekali kecerdasan untuk menavigasi seluruh basis-data dan menemukan informasi untuk sembarang domain yang diinginkan. DNS pertama kali diusulkan Paul Mockapetris dengan RFC (Request For Comment) 882 dan 883 pada tahun 1984, yang kemudian disempurnakan oleh RFC 1034 dan 1035. Spesifikasi ini merupakan arsitektur yang didisain dan dipersiapkan untuk menggantikan sistem basis-data terpusat sebelumnya. Migrasi protokol ARPANET waktu itu ke TCP/IP telah menyebabkan beberapa masalah serius dalam penggunaan sistem basis-data terpusat melalui HOSTS.TXT. File ini berisi semua informasi yang diperlukan untuk mengakses host di jaringan, pada intinya berisi korespondensi antara name dan address untuk setiap host yang terhubung ke ARPANET. HOSTS.TXT dikelola oleh NIC (Network Information Centerkhususnya SRI Stanford Reseach Institute), sehingga setiap perubahan yang dilakukan pada jaringan lokal harus dilaporkan oleh administrator ke NIC melalui email, begitu pula sebaliknya, untuk menjaga informasi dalam HOSTS.TXT tetap up-to-date, file ini 130

harus secara periodik di-download dari NIC. Mekanisme seperti ini menimbulkan beberapa konsekuensi yang makin terasa dengan membesarnya jaringan: Beban trafik dan prosessor Duplikasi hostname (name collisions) Kesukaran menjaga konsistensi aturan pengisian data

Karena itu, sistem yang baru (DNS) dipersiapkan untuk menyelesaikan masalah ini. Sebagaimana /etc/hosts yang merupakan adaptasi HOSTS.TXT untuk sistem Unix, BIND (Berkeley Internet Name Domain) adalah implementasi populer DNS yang dibuat oleh Kevin Dunlap untuk sistem operasi Unix Berkeley 4.3BSD. Hingga saat ini, BIND telah diport ke berbagai sistem operasi Unix lain, dan telah menjadi bagian standard yang ditawarkan oleh vendor-vendor Unix. Walaupun demikian, BIND bukan yang pertama, karena sebelumnya Paul Mockapetris terlebih dulu menulis JEEVES yang menjadi implementasi pertama spesifikasi DNS. Dalam pembahasan selanjutnya, kita akan menggunakan terminologi BIND.

root id edu
ucsc

domain edu.

TLD=FLD SLD
MIT
purdue

ca A ac

node ac.id.

ITB ab
media

bc

node media.MIT.edu.

zone ca domain MIT.edu.

domain ac.id. domain ca

Gambar 1
Domain Name Space

131

DNS merupakan sistem basis-data terdistribusi dengan mekanisme client-server. Sisi server dikenal sebagai name-server dan menyediakan informasi bagi segmen basis-data tertentu yang dapat diakses oleh clientdisebut resolver. Resolver biasanya berupa rutin-rutin library yang dikompilasi bersama-sama dengan aplikasi di jaringan. Rutin ini pada intinya bertugas untuk membuat dan mengirimkan query melaui jaringan ke name-server yang sesuai. Struktur basis-data DNS hampir menyerupai filesystem Unix, dan dimodelkan dengan struktur pohon terbalik. Bagian/ node teratas adalah root-domain (null label , tapi sering kali ditulis didalam teks sebagai titik .). Tiap node cabang (subtree root-node) merepresentasikan domain, dan dalam name-space diberi label yang menunjukan posisi relatif terhadap domain induknya. Implementasi BIND membolehkan hingga 127 level node secara vertikal. Tiap node/domain juga mempunyai domain-name yang mengidentifikasi posisi absolut domain tersebut dalam name-space. Dalam DNS, suatu full domain-name (Fully-Qualified Domain NameFQDN) merupakan urutan label dari domain ybs menuju root-node dan dipisahkan dengan trailing dot. Misalnya untuk node ITB, full domain-namenya adalah ITB.ac.id.

o N t e

Tiap node dalam name-space selalui diikuti trailing-dot kecuali root. Tapi karena root berlabel (null), mengindikasikan bahwa trailing dot terakhir (misalnya id. untuk contoh diatas) adalah pemisah andara TLD (dijelaskan kemudian) dengan root.

Node-node yang mempunyai induk yang sama (sibling node) harus mempunyai label yang berbeda. Masing masing node dapat mempunyai label hingga 63 karakter (tanpa titik). Diluar ketentuan ini, node dengan label sama masih dikategorikan valid (tidak menyebabkan namecollision). Node yang diturunkan langsung dari root, disebut sebagai TLD (Top Level Domain) atau FLD (First Level Domain). Turunan dari TLD disebut sebagai SLD (Second Level Domain) dst. Mekanisme DNS membolehkan masing-masing domain di-administrasi oleh lembaga/ organisasi berbeda. Setiap organisasi juga dapat membagi domain kedalam sejumlah subdomain yang didelegasikan kepada institusi dibawahnya. Misalnya walaupun domain edu berada dibawah pengaturan NIC, sebagian besar domain dibawahnya didelegasikan pada lembaga lain: MIT untuk domain, MIT.edu, UC Berkeley untuk berkeley.edu. dsb. Bagi kita yang sudah terbiasa dengan Unix, mekanisme ini mirip dengan mounting filesystem melalui NFS. Sebuah domain, dapat berisi host-host atau domain yang lain (subdomain). Masing-masing host di jaringan mempunyai sebuah domain-name, yang menunjuk pada 132

informasi menyangkut host ybs, seperti IP address, informasi mail-routing, dll. Sebuah host juga dibolehkan mempunyai satu atau lebih alias domain-name, yang menunjuk dari suatu domain-name (alias) ke domain-name yang lain (official / canonical domain-name). Suatu domain adalah sebuah cabang (subtree) dalam domain name-space. Dan suatu subdomain adalah cabang dari cabang diatasnya, begitu seterusnya. Host adalah domainname yang menunjuk pada informasi host individual. Sehingga, suatu domain akan terdiri dari semua host yang mempunyai domain-name didalam domain tersebut. Host-host ini dihubungkan secara logik, sering secara geografis atau afiliasi organisasional, dan tidak perlu secara network, address atau tipe perangkat keras. Kita boleh saja, misalnya, mempunyai sepuluh host berbeda yang masing-masing terhubung ke network yang berbeda dan mungkin berada pada wilayah geografis yang berbeda pula, tapi semuanya mempunyai domain yang sama. Domain pada ujung inverted-tree merepresentasikan host individual. Domain-name pada kondisi tersebut, bisa menunjuk kepada network-address, informasi perangkat keras, atau informasi mail-routing. Domain yang berada didalam inverted-tree, bisa merupakan name suatu host dan bisa pula menunjuk pada informasi struktural domain dibawahnya (subdomain) sekaligus. Misalnya, MIT.edu. adalah domain-name untuk MIT juga bisa sekaligus nama sebuah host yang memforward mail antara MIT dan Internet. Tipe informasistruktural atau host individualyang diberikan sebagai respons dari query tergantung dari konteks penggunaan domain-name tersebut (aplikasi). Misalnya jika menggunakan aplikasi telnet tentu akan direspons dengan informasi host, sebaliknya jika pencarian dimaksudkan untuk informasi children-node, maka respons yang didapatkan adalah informasi struktural.

Top Level Domain dan Pendelegasian


Pada awalnya TLD untuk domain name-space Internet dibagi berdasarkan afiliasi organisasional, dan telah ditetapkan tujuh jenis TLD: com untuk organisasi komersial (hp.com, sun.com, ibm.com), edu untuk institusi pendidikan (berkeley.edu, purdue.edu, mit.edu), gov untuk lembaga pemerintahan (nasa.gov, nsf.gov), mil untuk badan kemiliteran (army.mil, navi.mil), net untuk network-provider 133

(nsf.net), org untuk institusi non komersial (ieee.org, eff.org), dan int untuk organisasi internasional (nato.int). Hingga saat ini sistem pembagian organisasional seperti ini masih berlaku di Amerika.

rtfm.MIT.edu.

edu
ucsc

ca

id

MIT purdue

rtfm

Gambar 2
TLD, Domain Interior dan Eksterior (leaves) Dengan semakin banyaknya negara-negara yang terhubung ke Internet, kemudian diputuskan untuk menggunakan standard pembagian geografis yang ditetapkan dalam ISO 3166. Berdasarkan konvensi tersebut, TLD dialokasikan sebagai pengenal geografis (negara) dan terdiri dari dua huruf unik. Misalnya id untuk Indonesia, uk untuk Inggris, au untuk Australia dll. Pada umumnya pembagian TLD secara geografis kemudian diikuti dengan pembagian berdasarkan afiliasi organisasional bagi level domain dibawahnya. Ada yang mengadopsi sistem pembagian di Amerika, seperti edu.au atau com.au, ada juga yang mengikuti sistem pembagian yang dipelopori Inggris, seperti co.uk (corporation), atau ac.uk (academic). Berbeda untuk TLD us (Amerika), karena sebelumnya telah mempunyai sistem pembagian organisasional, maka pembagian level domain dibawahnya juga dilakukan berdasarkan geografis, misalnya untuk SLD digunakan dua huruf pengenal/ kode kelimapuluh negara bagian. Kemudian subdomain dari domain tiap negara bagian ini adalah pengenal kota, dst. 134

Konvensi pembagian nama domain di Indonesia ditetapkan sampai level kedua (SLD) dan mengadopsi sistem Inggris: go.id co.id ac.id net.id or.id
subdomain lembaga pemerintah subdomain untuk lembaga komersial institusi akademik network provider LSM dan lembaga non komersial

Untuk level tiga dan seterusnya, diserahkan sepenuhnya kepada pengelola jaringan yang bersangkutan. Misalnya Universitas Brawijaya, dapat menggunakan dsb. Yang domain perlu unbraw.ac.id, unibraw.ac.id, brawijaya.ac.id

diperhatikan adalah konsistensi dari pengambilan konvensi penamaan tersebut. Perubahan identitas yang dilakukan memerlukan koordinasi dan updating di seluruh jaringan. Bila pada saatnya mesin-mesin di jaringan yang dikelola bertambah besar, dapat dilakukan perluasan domain (domain expanding), atau pendelegasian subdomain ke institusi dibawah domain tersebut. Misalnya subdomain paume.itb.ac.id untuk mengakomodasi semua mesin di lingkungan Pusat Antar Universitas ITB, ee.itb.ac.id digunakan untuk mengidentifikasi mesin-mesin dilingkungan Jurusan Teknik Elektro ITB, dll. Pendelegasian berarti bahwa institusi yang ditunjuk bertanggung-jawab melakukan tugas administrasi semua data dalam subdomain yang didelegasikan. Institusi tersebut berhak mengubah data, menambahkan atau membagi subdomainnya kedalam subdomain yang lebih kecil dan mendelegasikannya. Dalam hal ini, domain induk hanya berisi pointer ke sumber data subdomain, sehingga dapat mengalihkan (refferal) query ke subdomain yang bersangkutan. Yang patut diingat adalah bahwa tidak semua organisasi mendelegasikan semua domain dibawah otoritasnya. Sebuah domain biasanya mempunyai beberapa subdomain dan juga host-host yang tidak terkategorikan kedalam subdomain.

135

Name-Server
Program yang menyimpan informasi domain name space disebut sebagai name-server. Pada umumnya name-server mempunyai informasi lengkap untuk suatu bagian dari domain namespace yang disebut zone, sehingga dikatakan name-server ini authoritative untuk zone tersebut. Sebuah name-server bisa authoritative untuk multi (lebih dari satu) zone. Suatu zone terdiri dari beberapa domain-name berikut data dalam domain ybs, kecuali untuk domain-name dan data yang didelegasikan kepada institusi lain. Tapi jika suatu domain dibagi kedalam subdomain-subdomain yang tidak (belum) didelegasikan, maka domain-name dan data dalam subdomain tersebut termasuk dalam zone. Pendelegasian suatu subdomain, berarti pelimpahan tanggung-jawab sebagian domain kita kepada sebuah institusi, yang berarti melimpahkan otoritas (authority) bagi subdomain tersebut ke sejumlah name-server lain. Sehingga data pada domain induk hanya berisi pointer kepada sejumlah name-server yang authoritative untuk subdomain ini, dan bukan berisi data / informasi dari domain yang didelegasikan. Dengan demikian, bila suatu saat terdapat query terhadap data-data subdomain tersebut, server dapat menjawab dengan sejumlah pointer/ daftar name-server yang dapat dan lebih patut ditanyai. Spesifikasi DNS mendefinisikan duat tipe name-server, primary server (primary master) dan secondary server (secondary master). Primary server membaca data untuk zone dibawah otoritasnya dari file didalam host dimana ia dijalankan. Secondary server memperoleh data zone dari name-server lain yang authoritative untuk zone ybs. Proses pembacaan/ updating data dari primary server ke secondary server disebut sebagai zone transfer (name-Xfer) dan berlangsung secara periodik atau ketika secondary server pertama kali dijalankan sehingga data pada secondary senantiasa tetap up-to-date sesuai perubahan yang dilakukan dalam primary server. Dengan mekanisme ini, kita bisa mempunyai lebih dari satu name-server untuk zone tertentu dengan cara yang mudah. Selain untuk rendundansi, hal ini juga berarti load-balancing dan reliability karena query-query dapat mencari/ dialihkan pada name-server terdekat. Sebelumnya telah disinggung bahwa sebuah name-server bisa authoritative bagi beberapa zone. Demikian pula suatu name-server bisa menjadi primary server bagi suatu 136

zone sekaligus menjadi secondary bagi zone yang lain. Primary server membaca data untuk zone otoritasnya dari dalam file yang disebut zone file, atau db file (database file). Secondary juga dapat dikonfigurasi untuk melakukan back-up zone yang diperoleh dari primary kedalam db file. Sedemikian jika secondary-server pertama kali dijalankan ia akan membaca data pada file backup ini, kemudian baru memeriksa kevalidannya. File data ini berisi RR (resource record) yang mendeskripsikan zone yang bersangkutan serta menandai setiap pendelegasian subdomain.

Resolver & Resolution


Bagian client DNS, seperti telah disinggung sebelumnya, disebut resolver. Program (aplikasi) yang memerlukan informasi domain name-space, harus menggunakan resolver untuk menjamin mekanisme itu dapat berlangsung. Resolver pada intinya berfungsi untuk: Meng-query name server Menginterpretasikan respons (bisa berupa RR atau pesan kesalahan) Memberikan informasi pada program (aplikasi) yang me-request-nya.

Didalam BIND, resolver hanya berupa rutin library yang dikompilasi bersama-sama dengan program seperti telnet atau ftp. Sehingga bukan benar-benar proses yang terpisah. Proses query, mengirimkannya ke jaringan, menunggu jawaban, atau mengirim ulang query bila melewati batas time-out, dilakukan oleh resolver didalam tiap aplikasi ini. Jenis resolver seperti ini dikenal sebagi stub resolver. Beberapa implementasi DNS lain mempunyai resolver yang lebih cerdas seperti resolver yang dapat membuat cache informasi yang telah diterimannya dari name-server. Salah satu nilai lebih DNS, adalah bahwa name-server tidak hanya dapat memberikan data/ informasi untuk zone authoritativenya, tapi juga dapat melakukan pencarian dalam domain name-space untuk menemukan data yang diluar otoritasnya. Proses ini disebut name-resolution. Hal ini dimungkinkan karena struktur inverted-tree name-space. Apa yang perlu dilakukan oleh name-server non-authoritative adalah menghubungi/ melakukan query kepada root-name-

137

server. Yang pada gilirannya akan menelusuri pointer-pointer terdekat untuk menemukan jawaban query tersebut.

query address students.ITB.ac.id. referral ke NS id

.
name-server

query address students.ITB.ac.id.

name server

id
name-server

referral ke NS ac. id

id

au

sg

ac.id
resolver query answer
referral ke NS ITB.ac. id

name-server

ac

net

query address students.ITB.ac.id.

ITB.ac.id
name-server

resolver

address students.ITB.ac. id

ui

ITB

Gambar 3
Resolusi students.ITB.ac.id. di Internet Resolution dapat dilakukan dengan dua cara, recursion (recursive resolution) dan iteration (iterative resolution). Recursion adalah proses resolusi yang dilakukan oleh name-server jika ia menerima recursive-query, sedangkan iteration adalah proses resolusi yang dilakukan oleh name-server jika ia menerima iterative-query. Jika suatu name-server menerima recursive-query, maka ia dipaksa untuk memberikan data yang diminta, atau dengan pesan kesalahan bahwa data yang diminta tidak ada atau domain-name yang dispesifikasikan tidak ada. Dalam hal ini name-server tidak dapat secara langsung mengalihkan querier kepada name-server yang lain, karena sifat query yang rekursif. Sebaliknya jika suatu server menerima iterative-query, maka

138

ia akan memberikan jawaban/ penunjuk ke name-server lain yang lebih dekat untuk domain-name yang dicari. Salah satu mekanisme yang mendukung proses resolution, dan juga merupakan salah satu fasilitas yang disediakan dalam spesifikasi DNS, adalah reverse- mapping dari IP address ke domain-name. Reverse-mapping juga digunakan untuk menghasilkan keluaran yang lebih manusiawi, mudah dibaca dan diinterpretasikan, misalnya untuk pembacaan log-file.

students.ITB.ac.id. (167.205.22.123)

in-addr arpa

.......
0

167

.......
255

.... ...........
205 0 255

.... .......
22 0 255

.... ...........
0 123 255

Gambar 4
Reverse Mapping Waktu yang diperlukan bagi proses resolusi, relatif lebih lama dibandingkan penggunaan host-table tradisional. Untuk mempercepat proses ini, dilakukan satu mekanisme yang dikenal sebagai caching. Ketika suatu name-server melakukan proses resolution, dari referal ke referal, hingga menemukan jawaban untuk query yang diminta, ia mempelajari korelasi antara alamat-alamat server yang pernah dihubunginya yang kemudian disimpan untuk digunakan kembali jika diperlukan (dengan batas waktu tertentuTime To Live TTl). Dengan mengingat data tersebut, name-server dapat mempercepat proses untuk query berurut, baik 139

pada domain-name yang sama atau domain-name yang berkorelasi dengan sebelumnya. Misalnya name-server kita pernah melakukan resolusi address eecs.berkeley.edu, dan dalam proses tersebut name-server meng-cache address name-server eecs.berkeley.edu dan berkeley edu. Sekarang jika kita meng-query untuk baobab.cs.berkeley.edu, name-server kita akan mem-bypass query ke root nameserver, karena ia telah mengenali bahwa berkeley.edu yang telah ia ketahui berkorelasi penuh dengan data yang diminta. Sehingga name-server akan memulai resolution dengan query pada name-server berkeley.edu. Dengan demikian waktu resolution telah direduksi dan aplikasi bisa berjalan lebih cepat.

Konfigurasi DNS
Untuk menjalankan DNS server pada suatu host, diperlukan file-file berikut: /etc/named (dibaca: name-dexecutable file) /etc/named.boot (file-script) zone file

Konfigurasi boot-script DNS server


Pada saat named dijalankan, ia akan membaca sebuah file konfigurasi (file script) yang berisi tentang informasi domain yang ditangani oleh DNS server tersebut. File script default yang digunakan adalah /etc/named.boot.Field-field yang digunakan dalam file named.boot ini adalah: directory primary secondary cache forwarders slave
mendefinisikan directory tempat penyimpanan zone file mendeklarasikan name-server sebagai primary domain tertentu mendeklarasikan name-server sebagai secondary domain tertentu mendefinisikan cache file mendefinisikan daftar server untuk meneruskan query client memfungsikan name-server hanya sebagai forwarder

140

Konfigurasi caching-only DNS server


Menjalankan DNS server yang tidak mempunyai otoritas terhadap domain tertentu, tapi harnya berperan sebagai name-server lokal untuk meneruskan query client, disebut sebagai caching-only name serverhanya melakukan proses resolution. Normalnya, setiap query yang datang dari client akan diteruskan ke name-server root-domain yang dapat diakses oleh name-server tersebut. Daftar server untuk root domain disimpan dalam suatu file: Perlu diingat bahwa setiap name-server harus merupakan primary server bagi loopback domain. Boot script untuk name-server dengan konfigurasi minimal adalah:
; ; Caching only DNS server ; directory primary cache ; end of named.boot 0.0.127.IN-ADDR.ARPA . /etc/named.data db.local db.cache

Keterangan: Komentar diawali dengan karakter ; Dengan perintah directory /etc/named.data, berarti direktori /etc/named.data digunakan untuk menyimpan zone file. Direktori ini harus ada sebelumnya dan seluruh zone file disimpan dalam direktori tersebut Dengan perintah primary 0.0.127.IN-ADDR.ARPA db.local, berarti bahwa DNS server merupakan primary bagi loopback domain. Zone file untuk loopback domain adalah /etc/named.data/ mewakili zone tertentu Baris berikutnya, cache . db.cache, berarti bahwa file /etc/named.data/db.cache digunakan untuk menyimpan informasi cache hasil resolution yang masih valid db.local. Zone file dapat diberi nama sesuai dengan keinginan administrator. Yang penting nama tersebut

141

Konfigurasi Primary dan Secondary server


Definisi dan penjelasan primary server dan secondary server telah dibahas sebelumnya. Sebuah DNS server dapat merupakan primary dari beberapa zone serta sekaligus menjadi secondary bagi beberapa domain yang lain. Berikut ini adalah contoh file konfigurasi untuk name-server yang merupakan primary dan secondary bersama-sama:
; ; boot file for primary & secondary name-server ; directory primary cache ; primary domain primary primary primary secondary secondary ; end of named.boot paume.itb.ac.id itb.ac.id co.id ee.itb.ac.id telkom.go.id db.paume db.itb db.co.id 167.205.31.132 167.205.136.6 db.ee.bak db.tk.bak 0.0.127.IN-ADDR.ARPA . /etc/named.data db.local db.cache

; secondary domain

Keterangan: Tiga baris sebelumnya sama dengan contoh untuk konfigurasi minimal, yaitu menggunakan direktori /etc/named.data untuk menyimpan zone file, bertindak sebagai primary bagi loopback domain dengan zone file /etc/named.data/db.local, dan /etc/named.data/ db.cache digunakan untuk menyimpan informasi cache. Name-server kita, authoritative untuk tiga zone, yaitu untuk paume.itb.ac.id, itb.ac.id, serta co.id. Zone file untuk masing-masing entri tersebut adalah /etc/named.data/db.paume /etc/named.data/db.itb, dan /etc/named.data/db.co.id. Baris berikutnya menunjukan bahwa name-server kita juga merupakan server (secondary) dari domain ee.itb.ac.id, dan telkom.go.id. Primary server 142

untuk ee.itb.ac.id adalah mesin dengan IP address 167.205.31.32 sedangkan primary untuk telkom.go.id adalah mesin dengan IP address 167.205.136.6. Zone file yang diperoleh dari proses zone-transfer disimpan masing-masing dalam db.ee.bak dan db.tk.bak. Database file untuk secondary dibuat oleh sistem setelah melakukan zone-transfer, dan akan diperbaharui secara periodik.

Konfigurasi Primary dan Secondary server untuk Reverse Domain


Dalam perbincangan kita tentang name-server, telah dibahas perlunya fungsi serta bagaimana proses reverse-mapping. Berikut ini adalah contoh file konfigurasi untuk name-server yang melakukan tugas demikian.
; ; boot file for primary & secondary name-server(including reverse) ; directory primary 0.0.127.IN-ADDR.ARPA cache . ; primary domain primary paume.itb.ac.id primary itb.ac.id primary co.id ; secondary domain secondary secondary ee.itb.ac.id telkom.go.id 167.205.31.132 167.205.136.6 db.ee.bak db.tk.bak db.paume db.itb db.co.id /etc/named.data db.local db.cache

; primary reverse-domain primary 21.205.167.IN-ADDR.ARPA primary 22.205.167.IN-ADDR.ARPA primary 128.205.167.IN-ADDR.ARPA ; secondary reverse-domain secondary secondary 1.46.202.IN-ADDR.ARPA 2.46.202.IN-ADDR.ARPA 202.46.1.2 202.46.1.2 db.202.46.1.bak db.202.46.2.bak db.167.205.21 db.167.205.22 db.167.205.128

; end of named.boot

143

Keterangan: Name-server kita, authoritative untuk tiga reverse-domain, yaitu untuk 21.205.167.IN-ADDR.ARPA, 22.205.167.IN-ADDR.ARPA serta 128.205.167.IN-ADDR.ARPA. Zone file untuk masing-masing entri tersebut adalah /etc/named.data/db.167.205.21, /etc/ named.data/db.167.205.22, dan /etc/named.data/ db.167.205.128. Baris berikutnya menunjukan bahwa name-server kita juga merupakan server (secondary) dari domain 1.46.202.IN-ADDR.ARPA, dan 2.46.202.INADDR.ARPA. Primary server untuk kedua reverse domain adalah mesin dengan IP address 1202.46.1.2. Zone file yang diperoleh dari proses zone-transfer disimpan masing-masing dalam db.202.46.1.bak dan db.202.46.2.bak. Database file untuk secondary dibuat oleh sistem setelah melakukan zone-transfer, dan akan diperbaharui secara periodik.

Konfigurasi Zone-File
Zone file mengikuti suatu standard penulisan yang mendeskripsikan suatu domain. Standard resource record yang digunakan adalah sebagai berikut:

Start of Authority (SOA)


Fungsi Mendefinisikan hostname yang merupakan awal dari suatu zone. Untuk setiap zone hanya mempunyai sebuah SOA. SOA dideklarasikan pada awal zone file.

144

Format
[zone] IN SOA origin contact ( serial_number refresh_number retry_number expire_number minimum_number )

Komponen SOA record: zone Mendefinisikan zone yang menjadi otoritas name-server. Bisa langsung mencantumkan domain name absolut, atau menggunakan karakter @ bila zone yang tunjuk sama dengan current-zone pada deklarasi primary dalam bootscript. origin Mendeklarasikan hostname yang merupakan primary master untuk domain/ zone sebelumnya. Hostname ditulis secara FQDN (dengan trailing dot), misalnya ns1.itb.ac.id. contact Mendeklarasikan email address yang dimodifikasi bagi administrator (responsible person) yang mengelola domain ybs. Modifikasi yang dimaksud adalah mengganti karakter at-sing @ pada standard email address dengan titik. Misalnya bila email addressnya postmaster@itb.ac.id., maka ditulis postmaster.itb. ac.id. serial Nomor seri (identifikasi) zone file. Serial number ini harus bertambah setiap ada perubahan data pada zone file. Serial number juga digunakan oleh secondary server untuk memeriksa ada-tidaknya perubahan dalam zone file primary server. Jika dalam pemeriksaan serial number telah bertambah besar maka, secondary akan melakukan zone-transfer untuk memperbaharui data yang pernah diperolehnya. Sebaliknya jika tidak ada perubahan, secondary menganggap bahwa data sebelumnya masih valid, karena tidak menditeksi adanya perubahan dalam primary server. refresh Mendeklarasikan interval (dalam detik) yang diperlukan oleh secondary server untuk melakukan pemeriksaan terhadap perubahan zone file pada primary 145

server. Setiap interval yang telah ditentukan , secondary akan melakukan pemeriksaan terhadap serial number untuk mengetahui ada tidaknya perubahan dalam zone file. Interval ini dipilih berdasarkan dinamika perubahan zone file antar DNS server. Biasanya perubahan zone file hanya bersifat harian, sehingga sebaiknya selang waktu dipilih 1 hari (24x3600 detik).. retry Menentukan berapa lama waktu (dalam detik) tunggu secondary server untuk melakukan pemeriksaan ulang terhadap primary server bila primary server tidak memberikan respons pada saat refresh. Karena adanya kemungkinan primary server down, maka sebaiknya diberikan angka retry yang tidak terlalu singkat, biasanya lebih dari 1 jam (3600 det).. expire Menentukan berapa lama (dalam detik) zone file dipertahankan pada secondary server jika secondary ini tidak dapat melakukan zone-refresh. Setelah interval ini, maka secondary akan menghapus zone file ybs. Sebaiknya digunakan nilai yang cukup besar (lebih dari 30 hari) dan untuk link yang kuran reliable (sering down) sebaiknya sekitar 6 bulan atau 1 tahun. minimum Menentukan nilai default TTL (time to livedalam detik), yaitu interval waktu yang diperbolehkan bagi sembarang name-server meng-cache data. Setelah interval ini terlewati, name-server harus menghapus data-cache dan mengambil data yang baru dari name-server authoritative.. Contoh :
; domain itb.ac.id. @ IN SOA maingtw.paume.ITB.ac.id. cnrg.ITB.ac.id. ( 1996100202 ;serial 86400 10800 6048000 8640000 ) ;refresh every 12 hours ;retry every 3 hours ;expire after 10 week ;minimum TTL of 100 day

Name-Server (NS)
146

Fungsi

Merupakan identifikasi authoritative server untuk suatu zone. Authoritative zerver untuk suatu zone sebaiknya lebih dari satu sebagai tindakan preventif apabila primary master tidak dapat diakses oleh secondary.

Format
[domain] IN NS server

Komponen NS record: domain server adalah domain-name yang di-otorisasi oleh server. Hostname kompute ryang merupakan authoritative server untuk domain-name yang disebutkan sebelumnya. Komponen ini ditulis secara FQDN. Contoh :
; domain itb.ac.id. @ IN SOA maingtw.paume.ITB.ac.id. cnrg.ITB.ac.id. ( 1996100202 ;serial 86400 10800 6048000 8640000 ) IN NS maingtw.paume.ITB.ac.id. IN NS dns.paume.ITB.ac.id. IN NS gopher.EE.ITB.ac.id. ;refresh every 12 hours ;retry every 3 hours ;expire after 10 week ;minimum TTL of 100 day

147

Address (A)
Fungsi Format [host] IN A address Komponen A record: host nama simbolik yang akan diassosiasikan dengan mesin yang mempunyai address yang disebutkan setelahnya. address Catatan IP address mesin yang ditulis secara dotted-decimal. Suatu host bisa bersifat multi-homing, yaitu terhubung kepada beberapa network dengan menggunakan lebih dari satu network interface, sehingga record address host tersebut bisa lebih dari satu. Contoh :
; domain itb.ac.id. @ IN SOA maingtw.paume.ITB.ac.id. cnrg.ITB.ac.id. ( 1996100202 86400 10800 6048000 8640000 ) IN NS maingtw.paume.ITB.ac.id. IN NS dns.paume.ITB.ac.id. IN NS gopher.EE.ITB.ac.id. ; Address record ns1 IN A gerbang ; IN A IN A 167.205.22.34 167.205.23.7 167.205.23.1 ;serial ;refresh every 12 hours ;retry every 3 hours ;expire after 10 week ;minimum TTL of 100 day

Untuk memetakan hostname ke IP address.

148

Mail eXchanger (MX)


Fungsi Digunakan untuk me-redirect mail untuk host ataupun suatu domain ke host yang berfungsi sebagai mail server. MX record sangat berguna untuk domain yang tidak menjalankan mail software. Mail yang ditujukan untuk host-host yang terdapat pada domain ini akan dialihkan ke host yang menjalankan mail software. Format [name] IN MX preference host Komponen MX record: name Berupa hostname atau domain tujuan pengiriman mail. Bila tujuan pengiriman adalah suatu domain pada suatu zone file, maka bagian ini dapat dikosongkan. preference Menentukan prioritas mail server yang akan digunakan untuk me-redirect mail ke name. Sebuah host ataupun suatu domain bisa mempunyai beberapa mail server dan mail server yang digunakan pertama kali adalah mail server dengan prioritas tertinggi kecuali bila proses menghubungi host tersebut gagal maka digunakan host dengan prioritas berikutnya. host Adalah hostname dari mail server yang digunakan untuk me-redirect mail ke host, ataupun domain yang didefinisikan pada field name. Contoh :

; domain itb.ac.id. @ IN SOA maingtw.paume.ITB.ac.id. cnrg.ITB.ac.id. ( 1996100202 86400 10800 6048000 8640000 ) IN NS maingtw.paume.ITB.ac.id. IN NS dns.paume.ITB.ac.id. IN NS gopher.EE.ITB.ac.id. ;serial ;refresh every 12 hours ;retry every 3 hours ;expire after 10 week ;minimum TTL of 100 day

149

IN MX 40 ns1

maingtw.paume.itb.ac.id. IN A IN A IN MX 10 167.205.22.34 167.205.23.7 ns1.ITB.ac.id. 167.205.23.1 gerbang.ITB.ac.id.

; Address record

gerbang ;

IN A IN MX 10

o N t e

Bila suatu host akan mengirimkan mail ke mesin lain, maka host tersebut akan mencari nilai preference terendah (prioritas tertinggi). Apabila host dengan prioritas tertinggi tidak

memberikan respon, maka host tersebut akan berusaha mengirim mail ke server dengan prioritas kedua. Apabila proses ini masih gagal juga, maka host ybs, akan mencari semua mail server yang ada pada MX record untuk host tersebut. Apabila suatu host tidak mempunyai MX record, maka host akan berusaha mengirimkan mail langsung ke host tujuan. Kondisi tanpa MX record ini sangat beresiko, karena tidak jarang link terputus atau jaringan sedang down, sehingga mail tersebut mental. Sebaiknya semua host mempunyai MX record. Karena remote-host akan mencoba mengirimkan mail langsung ke MX record prioritas tertinggi, maka biasanya MX record prioritas tertinggi diberikan pada host itu sendiri. Sehingga dapat dihindari proses pengiriman yang lama dari satu host ke host yang lain. Berikut adalah contoh MX record bagi suatu host dengan beberapa mail server (mail forwarder): system IN A 167.205.22.98 mail.bppt.go.id. maingtw.paume.itb.ac.id. system.paume.itb.ac.id. IN MX 40 IN MX 30 IN MX 10

Selang pemilihan preference MX record biasanya dibuat kelipatan 10, hanya untuk mempermudah penyisipan terhadap MX record sebelumnya. MX record juga digunakan untuk penyederhanaan pengiriman mail. Pengirim dapat mengirimkan mail kepada user yang ada pada suatu domain tanpa harus mengetahui hostname tempat user beraada. Misalkan ada user yang akan mengirimkan mail ke PresDir Intel Corp., maka pengirim tersebut dapat mengirimkan mailyang ditujukan kepada director@intel.com. Apabila pada zone file terdapat MX record untuk domain intel.com, maka mail tersbut akan dikirimkan ke mail server untuk domain tersebut. Mail server aka nmendistribusikan mail tersebut ke tujuan sebenarnya.

150

Canonical NAME (CNAME)


Fungsi Format
[nickname] IN CNAME host

Mendefinisikan alias name atau nickname untuk suatu host.

Komponen CNAME record: nickname host Adalah alias name untuk host yang tercantum pada host. Hostname yang alias name-nya tercantum pada nickname. Hostname harus ditulis secara FQDN dan tidak dianjurkan berupa alias name (looping).

Host INFOrmation (HINFO)


Fungsi Mendeklarasikan informasi singkat tentang perangkat keras dan sistem operasi yang digunakan pada suatu hostname. Format [host] IN HINFO hardware software Catatan Tidak dianjurkan, konsekuensi pada aspek security.

Komponen CNAME record: host hardware Hostname dari mesin yang dimaksud. Field yang mengidentifikasi perangkat keras yang digunakan host. Biasanya berisi nama mesin yang digunakan. software Mengidentifikasi sistem operasi yang digunakan oleh host.

151

Well Known Services (WKS)


Fungsi Memberikan informasi tentang layanan-layanan yang disediakan oleh tiap-tiap host. Format [host] IN WKS address protocol services Catatan Tidak dianjurkan, konsekuensi pada aspek security.

Komponen WKS record: host address protocol services Contoh Hostname dari mesin yang dimaksud. IP address mesin. Transport protocol yang digunakan oleh services baik TCP ataupun UDP. Daftar service yang digunakan oleh host. :

; contoh CNAME, HINFO, WKS record @ IN SOA dns.paume.ITB.ac.id. cnrg.ITB.ac.id. ( 95106271135 86400 10800 6048000 8640000 ) IN NS dns.paume.ITB.ac.id. ; system dns IN WKS domain ; IN CNAME IN A IN HINFO IN A IN HINFO TCP 167.205.22.98 PC-486/DX Novell3.12 167.205.22.120 HP9000/300 HP-UX-7.0 telnet smtp ftp ;serial ;refresh every 12 hours ;retry every 3 hours ;expire after 10 week ;minimum TTL of 100 day

dns.paume.ITB.ac.id.

Konfigurasi Zone-File untuk Reverse-Domain


152

Untuk reverse-domain, digunakan PTR (pointer) record untuk memetakan IP address ke domain-name, jadi kebalikan dari A (adress) record. Berikut contoh pemakaian PTR record:
; contoh PTR record @ IN SOA dns.paume.ITB.ac.id. cnrg.ITB.ac.id. ( 95106190900 86400 10800 6048000 8640000 ) IN NS dns.paume.ITB.ac.id. IN NS maingtw.paume.ITB.ac.id. IN NS gopher.ee.ITB.ac.id. ; 1 IN PTR 33 97 98 99 100 101 102 ; IN PTR IN PTR IN PTR IN PTR IN PTR IN PTR IN PTR maingtw.paume.itb.ac.id. maingtw.paume.itb.ac.id. travellers.paume.itb.ac.id. system.paume.itb.ac.id. nmi.paume.itb.ac.id. design.paume.itb.ac.id. itbgtw.itb.ac.id. gw-paume.itb.ac.id. ;serial ;refresh every 12 hours ;retry every 3 hours ;expire after 10 week ;minimum TTL of 100 day

Konfigurasi Cache-File
Cache-file berisi informasi yang berhubungan name-server root-domain yang penting untuk proses resolution. Berikut contoh file db.cache yang terakhir di-update tanggal 1 September 1995.
; ; contoh db.cache ; named.root 1 Sep 1995 ; . . . . . 3600000 3600000 3600000 3600000 3600000 IN NS IN NS IN NS IN NS IN NS A.ROOT-SERVERS.NET. B.ROOT-SERVERS.NET. C.ROOT-SERVERS.NET. D.ROOT-SERVERS.NET. E.ROOT-SERVERS.NET.

153

. . . .

3600000 3600000 3600000 3600000

IN NS IN NS IN NS IN NS IN A IN A IN A IN A IN A IN A IN A IN A IN A

F.ROOT-SERVERS.NET. G.ROOT-SERVERS.NET. H.ROOT-SERVERS.NET. I.ROOT-SERVERS.NET. 198.41.0.4 128.9.0.107 192.33.4.12 128.8.10.90 192.203.230.10 39.12.229.241 192.112.36.4 128.63.2.53 192.36.148.17

A.ROOT-SERVERS.NET. 3600000 B.ROOT-SERVERS.NET. 3600000 C.ROOT-SERVERS.NET. 3600000 D.ROOT-SERVERS.NET. 3600000 E.ROOT-SERVERS.NET. 3600000 F.ROOT-SERVERS.NET. 3600000 G.ROOT-SERVERS.NET. 3600000 H.ROOT-SERVERS.NET. 3600000 I.ROOT-SERVERS.NET. 3600000

Keterangan: domain . melambangkan root-domain. 3600000 berarti TTL untuk masing-masing domain dan masing masing server. Angka yang besar ini mengindikasikan bahwa record-record ini dipertahankan dalam waktu yang lama.

154

Menjalankan DNS server


Setelah menyiapkan file konfigurasi (/etc/named.boot) dan zone file, maka tahap selanjutnya adalah menjalankan DNS server tersebut. Implementasi BIND menggunakan name-server daemon yand disebut named (dibaca name-d). Sintaks untuk menjalankan daemon tersebut adalah sebagai berikut.
named [-d level] [-p port] [-b bootfile]

dengan: -d level Digunakan untuk menentukan level penyimpanan informasi log debugging dalam file /usr/tmp/named.run. Argument dari level adalah bilangan dari 1 hingga 9. Semakin tinggi level penyimpanan, maka semakin detil informasi yang disimpan dalam file /usr/tmp/name.run dan file tersebut akan membesar dalam waktu singkat -p port Menentukan port UDP/TCP yang digunakan oleh named. Nilai defaultnya adalah 53. Bila digunakan port lain ada kemungkinan aplikasi standard tidak bisa mengakses named. -b bootfile Menentukan bootscript yang digunakan saat menjalankan named. File defaultnya adalah /etc/named.boot.

Perintah berikut akan menjalankan named dengan menggunakan nilai default:


#/etc/named

Bila digunakan bootscript selain named.boot (atau jika direktori yang digunakan berbeda), dapat digunakan:
#/etc/named -b bootfile

Konfigurasi Resolver
155

Dalam BIND, resolver biasanya berupa rutin-library yang dikompilasi bersama-sama program. Rutin ini akan membaca satu file konfigurasi /etc/resolv.conf yang berisi informasi tentang domain dan DNS server untuk domain tersebut. Berikut adalah contoh file /etc/resolv.conf:
; ; contoh file /etc/resolv.conf ; domain server domain server domain server domain server domain server ; ITB.ac.id 167.205.22.120 paume.ITB.ac.id 167.205.22.120 ee.ITB.ac.id 167.205.31.132 telkom.go.id 167.205.136.5 inkom.lipi.go.id 167.205.240.100

Keterangan: Untuk domain ITB.ac.id DNS servernya adalah mesin dengan IP address 167.205.22.120 Untuk domain ee.ITB.ac.id DNS servernya adalah mesin dengan IP address 167.205.31.132 Untuk sebuah domain bisa menggunakan lebih dari satu DNS server.

Utility nslookup
nslookup adalah aplikasi yang dapat digunakan untuk debugging instalasi name-server. Software ini bagian dari paket BIND. Dengan menggunakan nslookup, user dapat mengirim query ke berbagai name-server dan meminta informasi yang diinginkan. Sehingga kita akan dapat mengetahui apakah DNS server yang telah kita pasang, berfungsi dengan baik atau tidak. nslookup dapat dijalankan dalam dua mode, mode langsung dari command line atau mode interaktif. Berikut adalah contoh penggunaan secara langsung dari command line. 156

maingtw# nslookup cnrg.itb.ac.id. Server: maingtw.paume.itb.ac.id Address: 0.0.0.0 Name: cnrg.itb.ac.id.

Addresses: 167.205.22.117

Keterangan: Informasi host yang diinginkan adalah host cnrg.itb.ac.id. Hasil query ke DNS server (maingtw.paume.itb.ac.id.) memeriksa apakah domain-name yang dicari oleh user adalah bagian dari otoritasnya. Kemudian setelah berhasil mengidentifikasi itu, ia mencari data untuk host yang bersangkutan. Akhirnya DNSserver memberikan jawaban final berupa sebuah IP address untuk cnrg.itb.ac.id. Berikut penggunaan nslookup secara interaktif:
maingtw# nslookup Server: maingtw.paume.itb.ac.id Address: 0.0.0.0 > ? Commands: (identifiers are shown in uppercase, []means optional) NAME- print info about the host/domain NAME using default server NAME1,NAME2 - as above, but use NAME2 as server help or ? - print info on common commands; see nslookup(1) for details set OPTION - set an option all - print options, current server and host [no]debug - print debugging information [no]d2 - print exhaustive debugging information [no]defname - append domain name to each query [no]recuse - ask for recursive answer to query [no[vc - always use a virtual circuit domain=NAME - set default domain name to NAME srchlist=N1[/N2/.../N6] - set domain to N1 and search list to N1,N2,etc. root=NAMe - set root server to NAME retry=X - set number of retries to X timeout=X - set initial time-out interval to X seconds querytype=X - set query type, e.g., A,ANY,CNAME,HINFO,MX,NS,PTR,SOA,TXT,WKS type=X - synonym for querytype class=X - set query class to one of IN (Internet), CHAOS HESIOD or ANY server NAME - set default server to NAME, using current default server lserver NAME - set default server to NAME, using initial server

157

finger [USER] - finger the optional NAME at the current default host root - set current default server to the root ls [opt] DOMAIN [>FILE] - list addresses in DOMAIN (optional: output to FILE) -a - list canonical names and aliases -h - list HINFO (CPU type and operating system) -s - list well-known services -d - list all records -t TYPE - list records of the given type (e.g.,A,CNAME,MX,etc) view FILE - sort an ls output file and view it with more exit - exit the program, ^D also exits >

Berikut beberapa perintah yang dapat digunakan pada prompt > nslookup: 1. Mencari IP address dari suatu host
> gopher.ee.itb.ac.id. Server: maingtw.paume.itb.ac.id Address: 0.0.0.0 Name: gopher.ee.itb.ac.id.

Addresses: 167.205.31.132

2.

Mencari informasi lengkap tentang suatu host


> set type=any > gopher.ee.itb.ac.id. Server: maingtw.paume.itb.ac.id Address: 0.0.0.0 gopher.ee.itb.ac.id. gopher.ee.itb.ac.id. gopher.ee.itb.ac.id. ee.itb.ac.id ee.itb.ac.id ee.itb.ac.id internet address = 167.205.31.132 internet address = 167.205.8.80 internet address = 167.205.8.101

nameserver = gopher.ee.itb.ac.id nameserver = maingtw.paume.itb.ac.id nameserver = dns.paume.itb.ac.id internet address = 167.205.8.80 internet address = 167.205.31.132 internet address = 167.205.8.101 internet address = 167.205.31.131 internet address = 167.205.22.1 internet address = 167.205.22.33 internet address = 167.205.22.123

gopher.ee.itb.ac.id. gopher.ee.itb.ac.id. gopher.ee.itb.ac.id. maingtw.paume.itb.ac.id maingtw.paume.itb.ac.id maingtw.paume.itb.ac.id maingtw.paume.itb.ac.id

158

dns.paume.itb.ac.id >

internet address = 167.205.22.120

3.

Mencari MX record untuk suatu host


> set type=MX > system Server: maingtw.paume.itb.ac.id Address: 0.0.0.0 system.paume.itb.ac.id. mail.iptek.net.id system.paume.itb.ac.id. maingtw.paume.itb.ac.id system.paume.itb.ac.id. system.paume.itb.ac.id paume.itb.ac.id paume.itb.ac.id paume.itb.ac.id maingtw.paume.itb.ac.id maingtw.paume.itb.ac.id maingtw.paume.itb.ac.id maingtw.paume.itb.ac.id system.paume.itb.ac.id. dns.paume.itb.ac.id gopher.ee.itb.ac.id. gopher.ee.itb.ac.id. gopher.ee.itb.ac.id. > nameserver = gopher.ee.itb.ac.id nameserver = maingtw.paume.itb.ac.id nameserver = dns.paume.itb.ac.id internet address = 167.205.31.131 internet address = 167.205.22.1 internet address = 167.205.22.33 internet address = 167.205.22.123 internet address = 167.205.22.98 internet address = 167.205.22.120 internet address = 167.205.31.132 internet address = 167.205.8.101 internet address = 167.205.8.80 preference = 10, mail exchanger = preference = 20, mail exchanger = preference = 30, mail exchanger =

4.

Pindah ke DNS server yang lain dan mencari informasi tentang domain co.id.
> server gopher.ee.itb.ac.id. Default Server: gopher.ee.itb.ac.id. Addresses: 167.205.31.132, 167.205.8.80, 167.205.8.101 > ls -t A co.id [gopher.ee.itb.ac.id] co.id. server = dns.paume.itb.ac.id.

159

gw.next flight.atw c0met.atw t1ger.atw w0ody.atw

167.205.128.168 167.205.232.11 167.205.232.3 167.205.128.164 167.205.232.10

160

7
Sendmail : Instalasi dan Cara Pengoperasian
Konfigurasi sendmail bisa jadi menakutkan bagi pemula. Dunia ini kompleks, dan konfigurasi mail merefleksikannya Meski demikian, dalam bab ini kita akan mempelajari bagaimana cara menginstall dan memaintenance sendmail, yang ternyata tidak terlalu kompleks.

161

Pendahuluan
Sendmail menerapkan fasilitas routing mail antar jaringan di bawah sistem operasi UNIX. Ia tidak terikat pada salah satu protokol transport. Fungsinya kira-kira seperti switch crossbar, meneruskan pesan dari satu domain ke domain yang lain. Dalam prosesnya, ia dapat melakukan editing pada header pesan untuk menempatkan pesan sesuai dengan format yang cocok dengan domain penerima. Semua fungsi ini dilakukan di bawah kontrol file konfigurasi. Karena persyaratan fleksibilitas sendmail, file konfigurasi tampak seperti sesuatu yang tak tersentuh oleh manusia dan kompleks. Meski demikian, hanya ada sedikit konfigurasi dasar yang perlu dibuat sesuai dengan tempat dijalankannya sendmail. Sedangkan, file konfigurasi standar sudah dibuat. Konfigurasi yang lain dapat dibuat dengan menyesuaikan dari konfigurasi yang ada. Sendmail dibuat berdasarkan RFC1822 (Internet Mail Format Protocol), RFC821 (Simple Mail Transport Protocol), RFC1123 (Internet Host Requirements), dan RFC1425 (SMTP Service extensions). Bagian pertama dari bab ini menggambarkan bagaimana melakukan instalasi dasar sendmail. Bagian kedua menerangkan informasi tiap hari yang sebaiknya diketahui oleh administrator untuk mengatur sistem mailnya. Bagian ketiga menjelaskan beberapa parameter yang perlu diatur. Bagian empat mengandung informasi yang berhubungan dengan argument pada command line. Bagian lima berisi informasi lebih detail mengenai file konfigurasi. Bagian ini diperuntukkan bagi orang yang suka menderita dan harus menulis file konfigurasinya sendiri. Bagian enam menjelaskan konfigurasi yang dapat dilakukan pada saat mengkompile sendmail.

RFC = Request For Comments

162

Instalasi Dasar
Ada dua langkah dasar untuk menginstal sendmail. Bagian terberat adalah membuat tabel konfigurasi. Ini adalah sebuah file yang akan dibaca sendmail ketika pertama kali dijalankan (start up). File ini menjelaskan kepada mailer bagaimana menguraikan alamat (address), bagaimana menulis-ulang (rewrite) header pesan, dan setting berbagai option. Meskipun tabel konfigurasi cukup kompleks, sebuah konfigurasi biasanya dapat dibuat dengan melakukan penyesuaian atas konfigurasi yang telah ada. Jadi tidak lagi berat bagi kita. Bagian kedua adalah melakukan instalasi itu sendiri, seperti membuat file-file yang dibutuhkan, dan sebagainya.

Mengkompile Sendmail
Bagian ini tidak akan dijelaskan secara detail, hanya pengenalan. Semua source code sendmail ada dalam subdirektori src. Jika Anda menjalankan sistem 4.4BSD, Anda dapat mengkompile dengan mengetik make. Pada sistem yang lain, barangkali Anda perlu melakukan sedikit penyesuaian.

make versi lama


Jika Anda belum memiliki make versi terbaru, Anda perlu memakai ini:
# make -f Makefile.dist

Compilation flags
Sendmail mendukung dua format yang berbeda untuk database alias. Kedua format ini yaitu: NDBM, format New DBM, terdapat hampir di semua sistem saat ini. Format ini memungkinkan dilakukannya pekerjaan yang kompleks, seperti multiple database, menutup database yang terbuka saat tertentu. NEWDB, paket new database dari Berkeley. Jika Anda memiliki ini, gunakanlah. Format ini dapat menangani catatan (record) yang panjang, multiple open database, caching real in-memory, dan seterusnya. 163

Jika tak satu pun ada, sendmail akan membaca file alias ke dalam memory pada setiap kali dipanggil. Ini akan memperlambat dan seharusnya dihindari.

Kompilasi dan Instalasi


Setelah melakukan konfigurasi sistem lokal di atas, Anda selanjutnya bisa mengompile dan menginstal sistem. Kompilasi dapat dilakukan dengan perintah make yang ada di direktory sendmail/src. Anda dapat menginstal menggunakan:
# make install

Perintah ini akan menginstal file biner di /usr/sbin dan membuat link dari /usr/bin/newaliases dan /usr/bin/mailq ke /usr/sbin/sendmail. Juga akan otomatis diinstal halaman-halaman manual.

File Konfigurasi
Sendmail tidak dapat bekerja tanpa file konfigurasi. Konfigurasi ini mendefinisikan sistem mail yang dipakai di tempat ini (tempat disetupnya sendmail), bagaimana mengaksesnya, bagaimana menyebarkan (forward) email ke remote mail system, dan sejumlah parameter tuning. File konfigurasi ini akan dijelaskan lebih detail pada bagian lain bab ini. Konfigurasi sendmail bisa jadi menakutkan bagi pemula. Dunia ini kompleks, dan konfigurasi mail merefleksikannya

Detail File-file untuk Instalasi


Ketika sendmail mulai dijalankan, pertama kali dia membaca file konfigurasinya yaitu /etc/sendmail.cf. Beberapa item yang terdapat dalam file tersebut diantaranya adalah lokasi filefile dan direktori lain yang dibutuhkan oleh sendmail. Lihat gambar dibawah ini.

164

Sendmail

file sendmail.cf

aliases

sendmail.st

sendmail.hf

queue.dir

include file

qf file

pipe through program

df file

Gambar 7.1:
Struktur sendmail

Biasanya lokasi di file konfigurasi ditulis secara full-pathname, misal /var/spool/mqueue dibandingkan mqueue. Selanjutnya, kita akan mengadakan perjalanan (tour) menjelajah file konfigurasi ini. Dan sebagai langkah pertama, jalankan perintah berikut:

# grep /[^0-9].*/ /etc/sendmail.cf

Output yang dihasilkan oleh perintah grep di atas kira-kira seperti ini:
OA/etc/aliases OQ/var/spool/mqueue OS/etc/sendmail.st OH/usr/lib/sendmail.hf Mlocal, P=/bin/mail,F=rlsDFMmnP, Mprog, P=/bin/sh, F=lsDFeuP, Muucp, P=/bin/uux, F=msDFMhuU, S=10, R=20, A=mail -d $u S=10, R=20, A=sh -c $u S=13, R=23,

Perhatikan, bahwa beberapa baris dimulai dengan huruf O, dan yang lain dengan huruf M. Huruf O menandai sebuah baris sebagai baris Option konfigurasi. Option yang mengikutinya 165

menjelaskan lokasi file-file yang dipakai sendmail. Huruf yang mengikuti O adalah nama Option. A, misalnya, mendefinisikan lokasi file aliases, dan seterusnya. Sedangkan baris yang dimulai dengan M mendefinisikan delivery agents, yaitu sebuah program yang menangani pengiriman ke mailbox pemakai lokal (Mlocal), menangani pengiriman melalui program (Mprog), atau menforward melalui hubungan UUCP (Muucp). Selanjutnya kita akan mempelajari file-file dibelakang option O dan M. Setelah itu, kita akan melakukan modifikasi yang diperlukan sesuai dengan sistem yang akan kita buat, dan melakukan beberapa pengujian. Subbab ini menjelaskan file-file yang dibutuhkan untuk instalasi sendmail.

/usr/sbin/sendmail
File biner (yang bisa dijalankan langsung) sendmail berada di direktori /usr/sbin untuk sistem 4.4BSD atau ditempat lain untuk sistem lain (/usr/lib, /usr/ucblib). Setuid harus dimiliki oleh root. Untuk alasan keamanan (security), /, /usr, dan /usr/sbin sebaiknya dimiliki oleh root, mode 7553.

/etc/sendmail.cf
Ini adalah file konfigurasi sendmail. Sistem 4.4BSD, FreeBSD menempatkan file ini di direktori /etc seperti di atas, dan sistem lain ada yang menempatkannya seperti /usr/lib/sendmail.cf. File inilah yang seperti dikatakan sebelumnya, cukup kompleks dan bisa jadi menakutkan. Ini disebabkan karena begitu simplenya sintaks yang dipakai. Tetapi yang simple inilah yang menjadi tidak sederhana.

/usr/bin/newaliases
Perintah newaliases hanyalah merupakan link ke sendmail.
# ln -s /usr/sbin/sendmail /usr/bin/newaliases

Jika sendmail dijalankan sebagai newaliases, dia akan menggunakan flag -bi yang akan memperbaharui database alias berdasarkan file aliases yang dibuat.

166

/var/spool/mqueue
Direktori /var/spool/mqueue harus dibuat untuk menyimpan antrian mail yang belum/akan dikirim. Direktori ini harus dimiliki oleh root dengan mode 700. PATH sesungguhnya (sesuai dengan keperluan lokal) dari direktori ini didefinisikan oleh option Q dalam file sendmail.cf.

/etc/aliases*
Alias sistem ditempatkan di /etc/aliases. Contoh alias ini biasanya ditaruh di lib/aliases yang mengandung beberapa alias yang harus didefinisikan. Untuk pertamakali setup alias, conton tersebut bisa dicopy:
# cp lib/aliases /etc/aliases # vi /etc/aliases

Alias di atas perlu diedit sesuai dengan keperluan sistem Anda. Normalnya, sendmail melihat versi file ini yang dibuat oleh rutin dbm(3) atau db(3). Database tersebut disimpan di /etc/aliases.dir dan /etc/aliases.pag atau /etc/aliases/db tergantung dari paket database yang Anda pakai. File ini dapat dibuat pertamakali sebagai file yang kosong dengan mode 644:
# cp /dev/null /etc/aliases.dir # cp /dev/null /etc/aliases.pag # chmod 644 /etc/aliases.* # newaliases

PATH sebenarnya dari file ini didefinisikan oleh option A dalam file sendmail.cf.

/etc/rc
Perlu untuk menjalankan sendmail sebagai daemon pada saat sistem sedang reboot. Daemon ini menjalankan dua fungsi: mendengarkan soket SMTP untuk terjadinya koneksi (menerima mail dari sistem lain) dan memproses antrian secara periodik untuk memastikan bahwa mail bisa dikirimkan ketika host dapat dihubungi. Untuk itu, tambahkan baris-baris perintah berikut dalam file /etc/rc (atau /etc/rc.local tergantung sistem yang dipakai) pada blok dimana daemon dijalankan:
if [ -f /usr/sbin/sendmail -a -f /etc/sendmail.cf ]; then

167

(cd /var/spool/mqueue; rm -f [lnx]f*) /usr/sbin/sendmail -bd -q30m & echo -n ' sendmail' >/dev/console fi

Perintah cd dan rm memastikan bahwa semua file lock telah dihapuskan. Lock file ini tertinggal ketika sistem down ditengah pemrosesan mail. Baris yang sebenarnya menjalankan sendmail memiliki dua flag: -bd yang membuat sendmail mendengarkan port SMTP, dan q30m yang menyebabkan sendmail memproses antrian tiap 30 menit. Beberapa orang menggunakan script untuk sartup yang lebih komplek, seperti untuk menghapus file qf dan df yang kosong. Contohnya:
# remove zero length qf files for qffile in qf* do if [ -r $qffile ] then if [ ! -s $qffile ] then echo -n " <zero: $qffile>" > /dev/console rm -f $qffile fi fi done # rename tf files to be qf if the qf does not exist for tffile in tf* do qffile=`echo $tffile | sed 's/t/q/'` if [ -r $tffile -a ! -f $qffile ] then echo -n " <recovering: $tffile>" > /dev/console mv $tffile $qffile else echo -n " <extra: $tffile>" > /dev/console rm -f $tffile fi done # remove df files with no corresponding qf files for dffile in df* do

168

qffile=`echo $dffile | sed 's/d/q/'` if [ -r $dffile -a ! -f $qffile ] then echo -n " <incomplete: $dffile>" > /dev/console mv $dffile `echo $dffile | sed 's/d/D/'` fi done # announce files that have been saved during disaster recovery for xffile in [A-Z]f* do echo -n " <panic: $xffile>" > /dev/console done

Jika Anda menjalankan versi UNIX yang tidak mendukung Berkeley TCP/IP, jangan memasukkan flag -bd.

/usr/lib/sendmail.hf
File ini merupakan file help yang digunakan oleh perintah SMTP HELP. File ini dapat dicopy dari lib/sendmail.hf.
# cp lib/sendmail.hf /usr/lib

PATH yang sebenarnya didefinisikan oleh option H dalam file sendmail.cf.

/etc/sendmail.st
Jika Anda ingin mengumpulkan statistik mengenai trafik mail, Anda perlu membuat file /etc/sendmail.st
# cp /dev/null /etc/sendmail.st # chmod 666 /etc/sendmail.st

File ini dibuat oleh program mailstats/mailstats.c. PATH sebenarnya dari file ini didefinisikan oleh option S dalam file sendmail.cf.

/usr/bin/mailq
Jika sendmail dijalankan sebagai mailq, ia akan menjalankan flag -bp yang akan menampilkan daftar antrian mail. Ini merupakan link ke /usr/sbin/sendmail. 169

Operasi Normal
Log Sistem
Log sistem didukung oleh program syslogd(8). Semua pesan dari sendmail dibawah fasilitas LOG_MAIL.

Format
Setiap baris dari log sistem terdiri atas waktu, nama mesin yang membuat, kata sendmail, dan pesan.

Level
Jika Anda memiliki syslogd(8) atau ekivalensinya, Anda bisa melakukan logging. Ada banyak informasi yang bisa dicatat. Log disusun berdasarkan level yang meningkat. Pada level terbawah, hanya situasi yang paling aneh yang akan dicatat. Pada level tertinggi, event yang tidak penting pun akan dicatat. Berdasarkan konvensi, level log dibawah 10 dianggap cukup berguna, level diatas 64 dipakai untuk proses debugging. Level dari 11-64 dicadangkan untuk mode verbose yang mungkin diinginkan untuk beberapa tempat tertntu. Level logging dapat diset untuk sendmail. Devaultnya adalah level 9. Level-level untuk log adalah sebagai berikut:
0 No logging. 1 Serious system failures and potential security problems. 2 Lost communications (network problems) and protocol failures. 3 Other serious failures. 4 Minor failures. 5 Message collection statistics. 6 Creation of error messages, VRFY and EXPN commands. 7 Delivery failures (host or user unknown, etc.). 8 Successful deliveries. 9 Messages being deferred (due to a host being

170

down, etc.). 10 Database expansion (alias, forward, and userdb lookups). 15 Automatic alias database rebuilds. 20 Logs attempts to run locked queue files. These are not errors, but can be useful to note if your queue appears to be clogged. 30 Lost locks (only if using lockf instead of flock).

Antrian (The Mail Queue)


Antrian mail, harus diproses secara transparan. Bagaimanapun, Anda mungkin menjumpai bahwa intervensi secara manual kadang-kadang dibutuhkan. Misalnya, jika host (atau gateway) yang akan dihubungi sedang down untuk jangka waktu tertentu, antrian bisa semakin panjang. Meskipun sendmail akan menangani kembali ketika host up, Anda bisa jadi menjumpai performance yang buruk saat itu.

Menampilkan antrian
Daftar antrian dapat ditampilkan menggunakan perintah mailq (atau dengan memberikan flag -bp pada sendmail):
# mailq

Perintah ini akan menghasilkan daftar ID antrian, ukuran pesan, tanggal pesan memasuki antrian, pengirim dan penerima.

171

Memaksa antrian
Sendmail akan menjalankan antrian secara otomatis pada interval tertentu. Algoritmanya adalah sendmail membaca dan mengurutkan antrian, kemudian berusaha memproses semua job berdasarkan urutan. Ketika berusaha menjalankan job, sendmail pertama kali mengecek apakah job terkunci (locked). Jika benar, sendmail mengabaikan job tersebut. Tidak ada cara untuk memastikan bahwa hanya ada satu prosesor antrian pada satu saat, karena tidak ada jaminan bahwa sebuah job tidak dapat terus-menerus diproses (bagaimanapun, sendmail memasukkan sebua heuristik yang mencoba membatalkan job yang menghabiskan waktu secara absurd). Karena algoritma penguncian (locking) ini, tidak mungkin bagi satu job menyelesaikan seluruh antrian. Bagaimanapun, sebuah host penerima yang tidak bisa diajak kerjasama atau penerima yang tidak pernah bisa dihubungi, akan mengakumulasikan banyak proses dalam sistem Anda. Celakanya, tidak ada cara umum yang sepenuhnya bsia memecahkan hal ini. Dalam beberapa kasus, Anda mungkin menjumpai bahwa ketika sebagian besar host down untuk beberapa hari bisa menghasilkan antrian besar yang tak terkirim. Hal ini akan menyebabkan sendmail menghabiskan banyak waktu hanya untuk mensortir antrian. Situasi ini dapat dipecahkan dengan memindahkan antrian ke sebuah tempat temporer dan membuat sebuah antrian baru. Antrian yang lama dapat dijalankan kemudian ketika host pengacau kembali aktif dengan baik. Hal ini dapat dilakukan dengan memindahkan seluruh direktori antrian ke direktori temporer:
# cd /var/spool # mv mqueue omqueue; mkdir mqueue; chmod 700 mqueue

Anda kemudian harus menghentikan (kill) daemon yang sedang aktif (karena ia akan tetap memproses direktori antrian yang lama) dan membuat daemon yang baru. Untuk menjalankan antrian mail yang lama, gunakan perintah:
# /usr/sbin/sendmail -oQ/var/spool/omqueue -q

172

Flag -oQ menyatakan direktory antrian alternatif dan flag -q memberitahu sendmail agar menjalankan tiap job dalam antrain saja. Anda bisa menambahkan flag -v untuk melihat apa yang sedang terjadi. Ketika antrian sudah habis sama sekali, Anda dapat menghapus direktori:
# rmdir /var/spool/omqueue

Datebase Alias
Database alias ada dalam dua bentuk. Pertama dalam bentuk teks, yang dibuat dalam file /etc/aliases. Format alias ini adalah:
nama: nama1, nama2, ...

Hanya nama lokal yang bisa dimasukkan alias. Contoh dibawah ini: Mail aliases dapat memberikan : Nama altenatif (nickname) untuk tiap individual user. Forwarding mail ke host lain mailing lists

Mail alias dari sendmail di definisikan di file /etc/aliases (di beberapa di system di file
etc/usr/lib/aliases

). Format dari pengisian entry di file aliases sebagai berikut:

alias: recipient[, recipient, ...] alisas

: nama alias atau alamat dari mail, dan recipient : nama/alamat kemana mail akan

di kirimkan, dapat berupa user name, nama alias lain, atau address lengkap dari mail lengkap dengan nama user dan host name-nya, termasuk nama remote host untuk forwarding mail. Dapat juga di gunakan untuk mengirimkan ke multiple recipient dari single alias atau lazim di sebut dengan mailing list. Alias dengan nickname dapat di gunakan untuk mencegah/menanggulangi pengejaan nama yang sering salah dari tiap user. Kita juga dapat menggunakan alias untuk mengirimkan mail dengan address yang spesifik misalnya : postmaster, sysadmin/root, hostmaster, dll ke user yang sebenarnya yang bertanggung jawab dengan pekerjaan tersebut. Selain itu aliases dapat juga untuk di gunakan menyederhanakan peng-address-an mail khususnya dalam hubungannya dengan MX record (akan di bahas di routing). 173

contoh file aliases untuk mesin ns1.itb.ac.id:


# # @(#)aliases 5.3 (Berkeley) 5/24/90 # # Aliases in this file will NOT be expanded in the header from # Mail, but WILL be visible over networks or from /bin/mail. # # >>>>>>>>>> # >> NOTE >> # >>>>>>>>>> The program "newaliases" must be run after this file is updated for any changes to show through to sendmail. #

# Basic system aliases -- these MUST be present MAILER-DAEMON: postmaster postmaster: root # General redirections for pseudo accounts bin: root daemon: root games: root ingres: root nobody: root system: root toor: uucp: root root

# Well-known aliases -- these should be filled in! # Special names root: manager: operator: admin admin@cnrg.itb.ac.id operator-mail@cnrg.itb.ac.id

dumper: admin@cnrg.itb.ac.id postmaster: admin

Baris kosong dan baris yang diawali dengan tanda sharp # adalah komentar. Bentuk kedua adalah yang diproses oleh program dbm(3) atau db(3). Format ini disimpan dalam file /etc/aliases.dir dan /etc/aliases.pag. Ini adalah format yang sesungguhnya dipakai oleh sendmail untuk memecahkan alias. Teknik ini dipakai untuk meningkatkan performance.

174

Memperbaharui database alias


Versi database DB atau DBM akan memperbaharui database alias dengan memberi perintah:
# newaliases

Perintah ini sama dengan memberi flag -bi pada sendmail:


# /usr/sbin/sendmail -bi

Masalah yang potential terjadi


Ada sejumlah masalah yang dapat terjadi dengan database alias. Semuanya muncul dari proses sendmail ketika mengakses versi DBM yang tidak lengkap (partially built). Ini dapat terjadi dibawah dua kondisi: sebuah proses mengakses database ketika proses yang lain sedang memperbaharuinya, atau proses yang memperbaharui database berhenti di tengah jalan sebelum selesai, misal karena sistem crash atau proses dikill . Sendmail memiliki dua teknik untuk menghadapi masalah ini. Pertama, ia mengabaikan interupt ketika sedang melakukan pembaruan database. Kedua, pada akhir proses pembaruan, ia menambahkan sebuah alias dengan bentuk:
@: @

yang secara normal tidak sah. Sebelum sendmail mengakses database, dia akan mengecek apakah entri terakhir itu ada.

List owners
Jika kesalahan terjadi pada saat pengiriman ke alamat tertentu, katakan x, sendmail akan melihat alias untuk owner-x yang akan menerima kesalahan. Ini bermanfaat untuk sebuah mailing list dimana anggota list tersebut tidak punya kontrol atas penanganan list itu sendiri; dalam kasus ini, daftar maintener adalah pemilik list itu sendiri. Contoh:
# Mailing List listproc: herc: sysop-l: itbnet-l: itbnet-in: icme96: listproc@majordomo.itb.ac.id herc@majordomo.itb.ac.id sysop-l@majordomo.itb.ac.id itbnet-l@majordomo.itb.ac.id itbnet-l@majordomo.itb.ac.id icme96@majordomo.itb.ac.id

175

cnrg: rudi@cnrg.itb.ac.id,aulia@itbgtw.itb.ac.id,daniel@cnrg.itb.ac.id, arman, febi@hme.ee.itb.ac.id, ismail sysadmin: #initial name yc1dav: aulia: # #owner: owner-cnrg: # arman@BICO.co.id onno unung@system.paume.itb.ac.id admin, yc1dav

Pada contoh di atas, arman@BICO.co.id akan menerima pesan kesalahan yang terjadi karena user ismail tidak ada dalam mesin lokal. Isi alias owner dapat berupa pemakai tunggal (single user), atau sebuah alias. Contoh:
list: some, set, of, addresses list-admin-1, list-admin-2, ... list-request:

owner-list: list-request

Per-User Forwarding (file .forward)


Sebagai alternatif bagi database alias, setiap user dapat membuat file dengan nama .forward dalam home direktorinya. Jika file ini ada, sendmail akan meneruskan (redirect) mail untuk user tersebut ke daftar alamat yang terdapat dalam file .forward. Contoh, jika dalam home direktori ismail ada file .forward yang berisi:
ismail@cnrg.itb.ac.id. ismail@hme.ee.itb.ac.id.

maka setiap mail yang datang untuk ismail akan dikirim kembali ke kedua alamat tersebut.

176

Argument
Beberapa argument penting sendmail dijelaskan berikut ini:

Queue Interval ( -q )
Lamanya waktu antara dilahirkannya sebuah proses untuk menjalankan antrian didefinisikan oleh flag -q. Contoh:
# /usr/sbin/sendmail -q30m

Mode ini mengatur berapa lama sebuah pesan maksimum boleh berada dalam antrian. RFC 1123 seksi 5.3.1.1 menyatakan bahwa nilai ini setidaknya 30 menit minimal.

Daemon Mode
Jika Anda membolehkan mail masuk melalui koneksi IPC, Anda harus menjalankan daemon. Ini dapat diset pada file /etc/rc dengan menambah flag -bd. Flag -bd dan -q dapat dikombinasikan menjadi:
# /usr/sbin/sendmail -bd -q30m

Memaksa Antrian
Dalam beberapa kasus, Anda mungkin menjumpai antrian jadi macet karena alasan tertentu. Anda dapat memaksa antrian berjalan dengan menggunakan flag -q (tanpa diikuti angka). Akan lebih mengasikkan jika ditambahkan flag -v (verbose) untuk mengetahui apa yang terjadi:
# /usr/sbin/sendmail -q -v

Anda juga bisa membatasi job hanya untuk antrian dengan ID tertentu, pengirim, dan penerima, menggunakan salah satu modifier antrian. Contoh,
# /usr/sbin/sendmail -qRcnrg

membatasi job hanya untuk antrian yang mengandung string cnrg pada alamat penerima. Demikian juga, -qSstring untuk pengirim (sender), -qIstring untuk identifier. 177

Debugging
Ada sejumlah besar flag untuk debug. Setiap flag debug memiliki sebuah bilangan dan sebuah level, dimana semakin tinggi level berarti akan ditampilkan semakin banyak informasi. Berdasarkan konvensi, level lebih besar dari 9 adalah absurd, artinya akan ditampilkan begitu banyak informasi yang mungkin tidak Anda perlukan, kecuali untuk keperluan debugging kode tertentu. Flag debug diset menggunakan option -d, dan sintaksnya sebagai berikut:
debug-flag: debug-list: debug-option: debug-level: -d debug-list debug-option [, debug-option ] debug-range [ . debug-level ] integer

debug-range: integer | integer - integer

dimana spasi hanya untuk kemudahan dalam membaca saja. Contoh:


-d12 -d12.3 -d3-17 -d3-17.4 Set flag 12 ke level 1 Set flag 12 ke level 3 Set flags 3 sampai 17 ke level 1 Set flags 3 sampai 17 ke level 4

Menggunakan File Configuration yang Berbeda


File konfigurasi alternatif dapat ditentukan menggunakan flag -C, contoh:
# /usr/sbin/sendmail -Ctest.cf

menggunakan file konfigurasi test.cf sebagai ganti dari default /etc/sendmail.cf. Jika flag -C tidak memiliki harga, ia akan diset sesuai default yaitu sendmail.cf dalam current directory.

Mengubah Harga Option


Option dapat ditimpa menggunakan flag -o. Contoh:
# /usr/sbin/sendmail -oT2m

mengatur option T (timeout) menjadi dua menit. 178

Logging Traffic
Banyak implementasi SMTP yang tidak menerapkan protokol secara penuh. Contoh, beberapa SMTP berbasis PC tidak memahami baris continuation pada kode reply. Ini akan sulit untuk dilacak. Jika Anda mencurigai masalah seperti ini, Anda dapat mengatur logging trafik menggunakan flag -X. Contoh:
# /usr/sbin/sendmail -X /tmp/traffic -bd

akan mencatat semua trafik ke file /tmp/traffic. Ini akan mencatat banyak data dengan cepat dan sebaiknya tidak dijalankan dalam operasi normal. Semua trafik pesan baik yang masuk maupun keluar sendmail termasuk trafik SMTP masuk, akan dicatat di file ini.

File sendmail.cf
File konfigurasi sendmail berada di /etc/sendmail.cf ( atau di system lain berada di
/usr/lib/sendmail.cf

). Di dalamnya berisi hampir seluruh konfigurasi dari sendmail

termasuk di dalamnya informasi yang di perlukan untuk route mail antara program mail user dengan program pengirim mail (delivery mail program). File sendmail.cf mempunyai tiga fungsi utama : Mendefinisikan lingkungan (environment) sendmail. Rewrite address ke dalam bentuk (form) syntak dari program penerima mail. map address ke dalam bentuk instruksi yang diperlukan untuk mengirimkan mail.

Bebarapa command diperlukan untuk memenuhi semua fungsi di atas. definisi makro dan option command mendefinisikan lingkungan-nya. Rewrite rules akan merewrite address email. Karena banyak sekali Command dengan sintak pendek di dalam file sendmail.cf maka jarang sekali system adminstrator membacanya, hanya sekali mengeditnya dan ternyata kita bisa menghindarkan untuk mengedit file sendmail.cf anda dan mari kita lihat.

179

Lokasi contoh file sendmail.cf


Kita dapat mencari file contoh konfigurasi sendmail.cf yang cocok atau mendekati dengan system kita dan menempatkan file tersebut ke /etc/sendmail.cf. Contoh konfigurasi sendmail.cf biasanya sudah datang dalam system kita atau kita dapat download file
sendmail.tar

dari tempat lain via anonymous ftp misalnya ke ftp.uu.net (versi terakhir dari

UC Berkeley terdapat di ftp.cs.berkeley.edu/ucb/sendmail), di file mail/sendmail/sendmail.5.66.tar.Z. (IDA sendmail) di dalam file ini terdapat beberapa contoh konfigurasi dengan lingkungan yang berbeda dan dapat di temukan di direktory sendmail.5.66.cf.cf tiga contoh prototype ini di desain untuk memudahkan memodifikasi dan di terapkan pada lingkungan jaringan yang berbeda. Tiga file prototype tersebut adalah:
tcpuucpproto.cf tcpproto.cf

: untuk system yang menggunakan TCP/IP dan UUCP

: untuk system yang menggunakan TCP/IP : untuk system yang menggunakan UUCP

uucpproto.cf

Ketiga file di atas hampir identik, berbedaanya biasanya ada di bagian awal dan di akhir file, kita dapat mengabaikan bagian lainnya dan lebih konsentrasi untuk sedikit melakukan customized sesuai yang diperlukan.

Struktur sendmail.cf
Banyak file sendmail.cf mempunyai struktur yang sama karena kebanyakan di turunkan dari file aslinya yang tidak begitu banyak. Maka dari itu system anda mungkin bisa sama dengan file salah satu contoh di sini. Pada setiap system mempunyai struktur berbeda, tetapi fungsi dari tiap bagian dapat anda temukan di lokasi berbeda dalam file sendmail.cf Di bawah ini akan kita lihat struktur dari file sendmail.cf yang saya ambil dari protype file tcpuucpproto.cf di mana dapat mewakili lingkungan jaringan dengan koneksi TCP/IP dan UUCP. Keterangan lebih detail dari tiap bagian akan dibahas dalam sub-bab modifikasi sendmail.cf. Strukutur file sendmail.cf sebagai berikut : Local Information 180

Definisi informasi mengenai internet host name, UUCP host name, dan lokal UUCP connection, yang spesifik untuk tiap host. bagian ini harus di customized saat konfigurasi. General Macros Definisi informasi mengenai domain name, official hostname (hostname secara lengkap termasuk domainnya), dan mail relay hosts. Informasi di sini spesifik untuk tiap lokal jaringan, untuk itu bagian ini harus di customized saat konfigurasi. Classes Definisi groups dana host name atau domain name di gunakan khusus untuk routing mail. Biasanya tidak perlu dilakukan modifikasi . Version Number Identifikasi versi sendmail.cf. Naikkan versi-nya tiap anda melakukan modifikasi konfigurasinya. Special Macros Definisi beberapa macro khusus yang digunakan oleh sendmail, berisi hal-hal yang berkaitan dengan sendmail untuk identifikasi jika ada return error message, dan message sendmail displai saat SMTP login. bagian ini tidak perlu di modifikasi. Options Definisi option sendmail. bagian ini tidak perlu di modifikasi. Message procedure Definisi macam-macam nilai awal message yang di gunakan oleh sendmail. Bagian ini tidak perlu di modifikasi.

Trusted Users

181

Definisi user yang mempunyai hak untuk menimpa address pengirim saat dia mengirimkan mail. Bagian ini tidak perlu di modifikasi. Menambahkan user dalam daftar ini dapat menjadi potensil masalah security. Format of headers Definisi format dari header di mana sendmail akan menyisipkan ke dalam mail. Bagian ini tidak perlu di modifikasi. Rewriting rules Definisi aturan (rules) yang di gunakan untuk rewrite mail address. Rewrite Rules berisi aturan umum yang dipakai oleh sendmail atau rewrite rules lain. Bagian ini tidak perlu di modifikasi selama initialiasasi configurasi sendmail. Bagian ini perlu di modifikasi jika kita akan menambahkan services baru atau memperbaiki masalah yang timbul. Mailers Definisi instruksi yang digunakan oleh sendmail untuk memerintahkan program pengirim mail. Spesifik rewrite rules yang berhubungan dengan setiap individual mailer juga di definisikan di sini. bagian ini biasanya tidak perlu di modifikasi. Rule set Zero Definisi spesial rewrite rule set, yang disebut rule set zero, yang di aplikasikan untuk pengiriman address. Bagian ini tidak perlu di modifikasi, Machine-dependent Part of Rule Set Zero Definisi dari bagian rule set zero yang spesifik untuk konfigurasi ini. Konfigurasi ini sesuai dengan konfigurasi dari mailer system, artinya apakah system dapat mengirimkan langsung UUCP atau SMTP mail dimana keduanya mempunyai rules rewrite yang berbeda. atau system hanya bisa mengirimkan lewat UUCP. Anda biasanya tidak perlu memodifikasi bagian ini. Bagian-bagian diatas mungkin berbeda dengan file contoh yang ada dalam system anda, namun demikian strukturnya kemungkinannya sama yaitu : 182

Informasi yang berkenaan dengan customisasi host biasanya ada di awal file. Type-type command yang mirip, misalnya option command, header command, dll biasanya dikelompokan. Sebagian besar isi file ini berisi rewrite rules Di akhir file ini biasanya berisi definisi campuran mailer dengan rewrite rules yang berhubungan dengan individual mailers.

Sangat penting untuk di sadari bahwa sedikit sekali yang perlu di modifikasi dalam file sendmail.cf, jika anda mendapatkan sample konfigurasi sendmail.cf yang cocok anda mungkin hanya perlu memodifikasi beberapa baris di awal file.

Konfigurasi sendmail.cf
Setiap start-up. sendmail selalu membaca sendmail.cf. Karena alasan inilah mengapa syntak dari perintah-perintah sendmail.cf di desain untuk mudah di parsing oleh sendmail, bukan oleh manusia, sebagai konsekuensi-nya perintah-perintah dalam sendmail.cf sangat pendek bahkan menurut standard UNIX. Perintah-perintah dan variabel hanya terdiri dari beberapa karakter, dan mudah sekali membingungkan antara karakter perintah dan karakter variabel. Perintah pendek ini susah sekali untuk di pecahkan, tetapi untuk membantunya mengingat-nya biasanya karakter pertama dari baris perintah tersebut selalu perintah. Untuk lebih jelasnya dapat dilihat dalam tabel berikut ini :

183

Command Define Macro Define Class Define Class Set Option Trusted Users Set Precedence Define Mailers Define Header Set Ruleset Define Rule
Dxvalue

Syntax

Keterangan Set makro x to value Set class c to word1, word2,... Load class c from file set option o to value Trusted users are user1 user2 ... Set name to precedence number Define mailer name Set header format Start ruleset number n Rewrite lbs patern to rbs format

Ccword1[word2]... Fcfile Oovalue Tuser1[user2...] Pname=number Mname,{field=value) H[?mflag?]name:format Sn Rlbs rbs commnent

Tabel 7.1:
Perintah-perintah dalam sendmail.cf Perintah konfigurasi dan varibel tidak dibatasi dengan spasi, hal ini pula yang membuat semakin sulit untuk dibaca. Mari kita lihat ilustrasi di gbr.5-2., dari ilustrasi kita lihat bahwa perintah makro tersebut artinya masukkan nilai cnrg.itb.ac.id ke dalam makro D.
definisi perintah makro nilai yang dimasukkan dalam makro

DDcnrg.itb.ac.id

nama makro yang didefinisikan

Gambar 7.2:
Ilustrasi perintah konfigurasi pada sendmail.cf

184

Perintah Mendefinisikan Macro


Perintah mendefinisikan makro (D) digunakan untuk mendefinisikan makro dan menyimpan nilainya, dimana makro dan nilanya tersebut dapat digunakan oleh perintah lain di sendmail. Namaan makro terdiri atas single karakter ASCII. Huruf kecil digunakan untuk nama internal makro Sendmail itu sendiri. Sedankan huruf besar digunakan yang boleh kita gunakan. Tidak berarti kita tidak boleh menggunakan huruf besar. Beberapa makro internal sendmail ada yang harus kita definisikan dalam file sendmail.cf. Pada Tabel 7-2 adalah tabel makro yang didefinisikan dalam file konfigurasi, tetapi hanya nilai yang di masukkan dalam makro j yang biasanya di modifikasi. Macro e j l n o q Value assign This macro SMTP entry message sites official domain name format of the UNIX from line name used in error message set of operator in Address default sender address format Example De$j Sendmail $v ready at $b Dj$w.$d DlFrom $g $d DnMAILER-DAEMON Do.:%\@!^=/ Dq$g$?x($x)$

Tabel. 7-2:
Makro sendmail yang dibutuhkan Untuk mengambil nilai yang tersimpan dalam makro, perintahnya adalah $x, dimana x adalah nama makro-nya. Sebagai contoh misalnya :
Dwcnrg DDitb.ac.id Dj$w.$D

Kode di atas mendefinisikan makro w, D, dan j. Setelah di exekusi, $w mengembalikan nilai cnrg, $D mengembalikan nilai itb.ac.id, sedangkan nilai j mengembalikan nilai cnrg.itb.ac.id., dapat kita lihat dimana makro j berisi nilai dari w ($w), di tambah tanda titik, ditambah nilai D ($D). Jika sebuah makro nilai-nya di isi dengan nilai yang merujuk ke makro lain, maka nilainya adalah nilai dari makro yang di rujuk tersebut. 185

Dari contoh di atas D adalah makro yang kita definisikan, semantara j dan w adalah makro yang mempunyai arti khusus dalam sendmail. Dalam tabel 7-3. kita dapat melihat daftar makro internal sendmail, dimana kebanyakan tidak di set dalam sendmail.cf, tetapi di isi sendiri oleh sendmail. Nama a b c d e f g h i j l n o p q r s t u v w x z Fungsi origination date in RFC 822 format current date in RFC 822 format hop count date in UNIX (ctime) format SMTP entry message sender from address sender address relative to the recipient recipient host queue id official domain name for this site foramt of the UNIX from line name of the daemon (for the error message) set of operator in address sendmails pid default format of sender address protocol used senders host name numeric representation of the current time recipinet users version number of sendmail hostsname of this site full name of the sender home directory of the recipinet

Tabel 7-3
Daftar makro internal sendmail Saat customizing file sendmail.cf anda, kadangkala di perlukan modifikasi beberapa definisi makro, biasanya makro yang mendefinisikan informasi yang spesifik di tiap tempat misalnya host name dan domain name.

Kondisi Bersyarat
Satu makro dalam Tabel 7-2 yaitu q, mempunyai ke istemewaan berbeda dengan yang lain karena berisi conditional. Kita lihat sekarang : 186

Dq$g$?x ($x) $.

D adalah perintak makro. q makro yang akan di definisikan. dan $g nilai yang tersimpan dalanm makro g. Bagaimana dengan $?x ($x)$. apa artinya ?. $?x adalah bentuk kondisional. Untuk menguji nilai yang tersimpan dalam makro x apakah mempunyai nilai tertentu, jika ya maka lakukan/isikan sesuatu itu . $ untuk mengakhiri konditional. Kita lihat sekarang misalnya makro q di interpretasikan sebagai berikut : q adalah nilai yang ada di makro g, dan jika x ada, atau nilai kosong, jadi jika g berisi rudi@cnrg.itb.ac.id dan x berisi Rudi Nursasono maka q akan berisi :
rudi@cnrg.itb.ac.id Rudi Nursasono (ingat : Dq$g$?x ($x) $.)

Konditional dapat juga menggunakan bentuk else, dengan tanda $|. Jadi systax dari konditional selangkapnya adalah :
$?x text1 $| text2 $. Di interpestasikan sebagai berikut : jika ($?) x ada/benar; gunakan text1; else ($|) ; gunakan text2; end if ($.)

Perintah pendefinisian Class


Dua perintah C dan F, mendefinisikan class dalam sendmail. Class adalah arrray berisi suatu nilai. Class di gunakan untuk aneka nilai dimana di handle dengan cara yang sama, seperti nama multiple untuk lokal host atau daftar host nama UUCP. Class memperbolehkan sendmail untuk membandingkan melawan/bertentanngan,daripada melewan nilai tunggal. Class menggunakan patern (pola) Symbol matches khusus antara lain $= untuk symbol match semua nilai yang ada di class, dan $~ untuksumua nilai di luar class. Seperti hal nya makro penamaam class menggunakan single karakter dan user-created class menggunakan huruf besar. Nilai class bisa terdiri dari satu baris, beberapa baris, atau mengambil(membaca) dari file. Misalnya, class V sering di dunakan untuk mendefinisikan koneksi UUCP lokal, untuk memasukkan nilai bronson dan ora dapat dilakuka dalam satu baris : 187

CVbronson ora

atau dalam bebrapa baris :


CVbronson Cvora

Atau dengan membaca/mengambil dari nilai yang ada dalam file menggunakan perintah F . Perintah F ini akan membaca file tersebut dan menyimpannya dalam suatu varibel Class. Misalnya : kita akan mendefinisikan sebuah class w dan memasukkan nilai ke dalamnya dengan sumua nilai yang ada dalam file /etc/sendmail.cw maka :
Fw/etc/seandmail.cw

Kita kadang perlu untuk memodifikasi bagian class dalam file sendmail.cf, biasanya informasinya berkaitan dengan uucp, alias host name dan domain khusus untuk routing mail . Jika anda system menggunakan koneksi uucp seperti TCP/IP anda harus memberi perhatian khusus dalam mendefinsikan dan berhati-hatilah dalam implementasi ke konfigurasui system anda. Mari kita lihat contoh file konfigurasi sendmail.cf dengan barsis yang diawali dengan C atau F (bagian.class) :
% grep ^[CF] tcpuucpproto.cf Fw/usr/lib/sendmail.cw CUYOUR_ALIASES_GO_HERE CV CV CV CV CV CIUUCP YOUR UCP EIGHBOURS GO HERE BITNET CSNET

Dari contoh grep di atas dapat kita lihat bahwa kita mendefinisikanclass w, U, V dan I. w berisi hostname dan alias-nya dengan cara mengambil dari file. U berisi aliases UUCP hosts, sedang V koneksi UUCp, dan I domain tiruan untuk routing mail. Dari contoh di atas kita lihat nilainya belum di konfigurasi. Jika kita sudah meng-konfigurasi-kan, grep akan menampilkan sebagai berikut :
CUlos CVbronson CVora CVgenly

188

CVbabss CVm10 CIUUCP BITNET

Perhatikan perintah F tidak ada lagi, system di atas di asumsikan tidak membaca host name dari file /etc/sendmail.cw, hal tersebut mengambil host name yang benar dari dalam sendmail. System mempunyai nama UUCP satu yaitu los. Sedangkan konensi system UUCP adalah bronson, ora, genly, babss,dan m10. Mail domain tiruan (fake) dirubah untuk menghapus CSNET. Sebaiknya orang (system administrator) yang melakukan (mengisi) class ini harus mempunyai pengetahuan mengenai systemnya dan koneksi jaringan-nya. Ingat system anda mengkin berbeda dengan contoh di atas, dan perhatikan variabel yang di gunakan apakah sudah pernah dipakai, jadi berhati-hatilah mengisinya dan baca dengan baik-baik komentar, petunjuk yang digunakan dalam file konfigurasi.

Perintah Set Option


Perintah set option (O) menentukan nilai option sendmail, yang merupakan internal option set di dalam file sendmail.cf, tidak sama dengan argumen dalam perintah baris (command-line) seperti dalam tabel.5-9. Perintah O di gunakan untuk men-set nilai yang sesuai dengan instalasi anda. Nilai daro option ini dapat berupa string, boolean, atau intrval waktu, sesuai dengan option tiap individual. Nilai yang di masukan ini akan di gunakan secara langsung oleh sendmail. Disini tidak nilai yang dibuat oleh user (user-created). Option-option yang ada sudah di definisikan dalam sendmail itu sendiri.. Option-option yang ada itu dalam dilihat dalam Tabel.7-4 :

189

Nama Afile aN Bc c D db di dq ee em ep eq ew f gn Hfile I i Ln Mxval m Nnet o Qdir qn rt Sfile s Tt un v Wpass Xl xl Y yn Zn zn

Fungsi Define the name of the alias Wait N minute for @:@; then rebuild the alias file Define the blank substituion character. Queue mail for the expensive mailers Rebulid in background mode Deliver in backgrouond mode Deliver interactively deliver during the next queue run Mail error message and always return 0 exit status Mail back error message print error message just return exit status, not error message write back error messages Retain Unix-style From line Set the default groups id for mailers to n Define the nameof SMTP help file Use the BIND name server to resolve all host name Ignore dots in incoming messages Set the level of logging to n Set macro x to val send to me, too Define the name of the home networks Accept old format headers Define the name of the queue directory Define a factor n used to decide when to queue jobs Set Interval t for read timeout Define tha name of the statistics log file Always create the queue file before attempting delivery Set the queue timeout to t Set the default userid for mailers to n Run in verbose mode Define password used for remote debugging Refuse SMTP connections if load average exceed l Queue message if load average exceeds l Deliver each queue job in a separate process Lower priority of jobs by n for each recipient Decrease a jobs priority by n for each recipient Factors used with precedence to determine message priority

Tabel 7-4
Sendmail options

190

Contoh option dalam file tcpuucpproto.cf dapat di lihat di bawah ini. Sebuah option mendefinisikan file sendmail aliases yaitu /usr/lib/aliases. Anda dapat juga menetukan file aliases sendmail di tempat lain dengan option ini. Option F mendefinisikan default mode file sebagai 0600 untuk file temporary yang di hasilkan oleh sendmail di
/var/spool/mqueue.

Option T di gunaka untuk menentukan interval timeout untuk mail

yang tidak bisa dikirim, di sini di set 3 hari (3d). Di bawah ini adalah contoh konfigurasi option yang umum :
# location of alias file OA/usr/lib/aliases #temporary file mode OF0600 #default timeout interval OT3d

Kebanyakan bagian option ini tidak perlu dimodifikasi karena umumnya file configurasi contoh yang di bawa oleh system sudah benar.

Mendefinisikan Trusted Users


Perintah T di gunakan untuk mendefinsikan daftar user yang mempunyai hak untuk menimpa (override) address pengirim menggunakan flag mailer -f (tabel flag mailer dapat di lihat di Tabel.7-5). Normalnya user yang mempunyai hak adalah root, uucp, daemon. Berhati-hatilah menambahkan user selain yang di sebutkan sebelumnya, karena user tersebut dapat mengisi dengan nama pengirim yang salah, dan jika di tangan user yang tidak baik dapat menyebabkan masalah keamanan atau membuat mau organisasi anda. User yang di beri hak dapat di tuliskandalam satu baris atau lebih, dan user yang di maksudkan harus sesuai dengan yang tercantum dalam file /etc/passwd. Di bawah ini adalah contoh umum yang sering di pakai, dan biasanya tidak perlu di modifikasi.
Troot Tdaemon Tuucp

Mendefinsikan Mail Precedence


191

Precedence adalah salah satu faktor yang di gunakan oleh sendmail untuk menentukan prioritas pemasukan pesan ke Queue. Perintah P digunakan untuk mendefinisikan nilai precedence ke user sendmail. Bilangan precedence yang besar, maka precedence message-nya juga besar. Nilai default dari nilai precedence adalah 0. Jika nilai precedence-nya negatif berarti mengidikasikan mail tersebut mempunyai prioritas yang rendah. Error message tidak akan di kirimkan jika mail mempunyai precedence negatif, biasanya precedence ini di pakai untuk pengiriman mail banyak (mass mailings). Nilai dari precedence yang umum umumnya seperti berikut ini :
Pfirst-class=0 Pspecial-delivery=100 Pbulk=-60 Pjunk=-100

Untuk menentukan precedence yang di inginkan, user dapat menambahkan Precedence header di dalam pesannya (mail), dengan menambahkan nama sesuai denga yang di definsikan di atas. misalnya user ingin mengirim mail ke banyak tempat dan mengabaikan error message yang mungkin terjadi dengan nilai precedence-nya -60 berati kita memasukkan dalam header mail kita
Precedence: bulk

Empat cntoh nilai precedence di atas bisa kita ganti sesuai dengan keinginan/keperluan yang kita inginkan .

Mendefinisikan Mail Headers


Perintah H di gunaka untuk mendefinisikan format dari baris header untuk di sisipkan dalam pesan (mail) kita. Format dari perintah header ini adalah perintah H, dengan optional flag headernya di antara tanda tanya, nama header, colon, dan header template. Header template terdiri dari kombinasi literal dan makro yang di masukan dalam baris header. Makro dalam header template di lebarkan sebelum header di sisipkan dalam pesan (mail). Fungsi dari header flag adalah mengendalikan apakah header akan di sisipkan atau tidak ke dalam pesan untuk mailer yang khusus. Jika flag tidak di cantumkan berarti header digunakan untuk semua jenis mailer, sebaliknya jika di cantumkan berarti header akan di sisipkan jika mailer mempunyai flag yang sama dengan flag yang telah di definisi mailer. (mailer flag dapat dilihat di Tabel.7-6). Header flag hanya mengontrol penyisipan, jika header telah di terima 192

oleh inputnya maka akan di lewatkan ke output tanpa melihat header flagnya. Contoh definsi header dapat di lihat di bawah ini :
H?P?Return-Path: <$g> Hrecieved: $?sfrom $s $.by $j ($v/$Z) H?D?Recent-date: $a H?D?Date: $a H?F?Resent-From: $q H?F?From: $q H?x?Full-name: $x Hsubject: H?M?Resent-Message-Id: <$t.$i@$j> H?M?Message-Id: <$t.$i@$j>

Definsi header di atas umumnya cukup untuk kebanyakan system, jadi tidak begitu perlu untuk di modifikasi .

Mendefinisikan mailer
Perintah M di mendefinisikan untuk program pengiriman mail yang akan digunakan oleh sendmail. Syntak dari perintah terebut adalah :
Mname, {field=value}

Name adalah nama sembarang yang di gunakan di internal-nya sendmail yang merujuk ke mailer tersebut. Nama tidak menjadi masalah selama konsisten dengan nama yang ada di file sendmail.cf yang merujuk ke mailer tersebut. Sebagai contoh : mailer menggunakan SMTP sebagai pengirim mailnya dengan nama lokal domainnya misalnya tcpld di satu system, dan dengan nama ether di system lain. Fungsi kedua system mailer itu sama, hanya namanya yang berbeda. Ada dua perkecualian yaitu, mailer yang mengirimkan mail ke lokal user (dalam satu mesin) harus di sebut dengan local dan mailer yang mengirimkan ke program harus disebut prog. Nama mailer diikuti dengan koma, sebagai pemisah dengan list dari sepasang field=value yang mendefinisikan karakteristik dari mailer. Table.7-5. menunjukan identifier single karakter dan isi field value yang saling berkaitan. Kebanyakan mail tidak memerlukan semua field tersebut.

193

Field P F S R A E M

Maksud Path Flags Sender Recipient Argv Eol Maxsize

Isi Path of the mailers sendmail flags for this mailers Ruleset for senders addresses Ruleset for recipient addresses The mailers argument vector End-of-line string for the mailers Maximum message length

Contoh P=/bin/mail F=lsDFMe S=10 R=20 A=sh -c $u E=\r\n M=1000000

Tabel 7-5:
Definisi field mailers Field P berisi lokasi /path dari file program pengirim mail-nya atau string literal [IPC] yang mendukung dalam komunikasi antar proses. Definisi mailer yang men-spesifikasikan P=[IPC] menggunakan sendmail untuk mengirim mail melalui SMTP. Path/lokasi dari program pengirim mail berbeda dari satu system dengan system yang lain. tergantung dimana file program itu tersimpan. Pastikan dimana letak/path dari program tersebut sebelum memodifikasi field path ini. Fielf Flag (F) berisi flag sendmail yang digunakan yang digunakan mailer tersebut, mailer flag ini berhubungan/merujuk ke bagian mail header di atas, tetapi flag tidak hanya mengkontrol penyisipan header. Flag dan fungsinya dapat di lihat pada Tabel.7-6.

194

Nama C D E e F f h I L l M m n P R r S s U u X x

Fungsi Add @domain to address that do not have an @ The mailer wants a Date: header line Add > to message lines that begin with From:. This an expensive mailer. See Sendmail options c The mailer wants a From: header line The mailer accepts a -f flag from trusted users Preserve uppercase in hosts names The mailers will be speaking SMTP to another sendmail Limit the line lengths as specified in FRC821 This is a local mailer The mailers wants a Message-Id: header line The mailer can send to multiple users in one trasaction Dont insert a UNIX-style From: line in the message The mailer wants a Return-Path:line Use the MAIL FROM: return-path rather than the return address The mailer accepts a -r flag trusted users Dont reset the userid before calling the mailer Strip quotes off of the address before calling the mailer The mailer wants Unix-style From:lines Preserve uppercase in user names Prepend a dot to lines beginning with a dot The mailer want a Full-Name: header line

Tabel. 7-6:
Sendmail mailer Flags. Field Sender (S) dan Recipent mengidentifikasikan ruleset yang digunakan untuk rewrite alamat pengirim dan penerima untuk mailer ini. Setiap ruleset di identifikasikan dengan nomer. Field Arg (A) mendefinisikan vektor argumen yang di lewatkan ke mailer, berisi sekitar, perluasan makro yang memberikan nama user penerima/recipient ($u), nama hosts penerima.recipient ($h), dan alamat dari pengirim ($f). Makri ini diperluas sebelum vektor argumen-nya di lewatkan ke mailer. Dua field terakhir berfungsi sebagai definisi karakter yang akan di pakai sebagai tanda endof-line field (E), dengan defaultnya baris baru. Maxsize (M) mendefinisikan panjang maximum pesan (mail) yang akan di tangani oleh mailer. Dua field ini sering diubah-ubah. 195

Contoh definisi Mailer yang umum : Contoh definsi mailer di bawah ini diambil dari tcpuucpproto.cf :
Mlocal, P=/bin/mail, F=rlsDFMmn, S=10, R=20, A=mail -d $u Mprogl, P=/bin/sh, F=rlsDFMe, S=10, R=20, A=sh -c $u Mtcpld, P=[IPC], F=mDFMueXLC, S=17, R=27, A=IPC $h, E=\r\n Mtcp, P=[IPC], F=mDFMueXLC, S=14, R=24, A=IPC $h, E=\r\n Muucp, P=/usr/bin/uux, F=DFMhuU, S=13, R=23, M=100000, A=uux - r -z -a$f -gC $h!rmail ($u)

Keterangan :

Definisi pengiriman mail lokal, selalu di namakan local. Definisi ini di perlukan oleh sendmail. Definisi untuk pengiriman mail ke program, selalu dinamakan prog, Definisi ini diperlukan oleh sendmail. Definisi untuk mail TCP/IP ke lokal domain, dalam hal ini dinamakan tcpld Definisi untuk mail TCP/IP ke Internet, dalam hal ini dinamakan tcp Definisi untuk mail UUCP, dalam hal ini dinamakan uucp

Field di bawah ini digunakan untuk mailer dengan uucp : Muucp Mailer, didefinisikan dengan nama sembarang uucp.

P=/usr/bin/uux Path dari program yang digunakan mailer tersebut. F=DFMhuU Arti dari Flag mailer ini adalah : memerlukan, Date (tanggal), From (dari), dan Message-Id; hindarkan huruf besar untuk nama host, user; baris From menggunaan UNIX-style. (lihat tabel 7-5). S=13 Semua address Sender(pengirim) diproses menggunakan ruleset 13. R=23 Semua address Recipient (penerima) diproses menggunakan ruleset 23. M=100000 Mailer tidak akan memproses mail yang besarnya lebih dari 100.000 byte. 196

A=uux - -r -z -a$f -gC $h!mail ($u) Arti dari setiap option dari vektor argumen di atas aslinya di definisikan di manual (man page) untuk uux. Makro menambahkan address dari pengirim ($f), recipient host ($h), dimana perintah rmail di eksekusi, dan user recipient ($u). Setelah itu makro di tambahkan baru di lewatkan ke /usr/bin/uux Anda tidak perlu kuatir untuk memodifikasi definisi mailer jika anda menjalankan sendmailnya dengan TCP/IP, karena contoh yang di bawa oleh system anda biasanya sudah benar, anda perlu memodifikasi-nya jika menjalankan-nya diluar itu.

Rewriting mail address


Rewrite rule merupakan jantung dari file sendmail.cf. Ruleset adalah kumpulan dari individual rewrite rule untuk parsing address e-mail dari program mail user dan melakukan rewrite (penulisan ulang) ke bentuk yang diperlukan/dikenal oleh program pengirimnya. Setiap rewrite rule di definisikan dengan perintah R. Syntax dari perintah R sebagai berikut :
Rpatern transformation comment

Field dalam perintah R di batasi/dipisahkan oleh karakter tab. Field comment ini akan di abaikan oleh system tetapi sangat vital jika anda ingin lebih mengerti apa yang sedang terjadi. Field patern dan tranformation jantung dari perintah ini.

Patern Matching (pencocokan pola)


Rewrite rule mencocokan input dari address dengan patern(pola),jika di temukan kecocokan, dilakukan penulisan ulang (rewrite) address dengan format baru menggunakan rule yang di definisikan di transformation. Sebuah rule bisa memproses address yang sama sampai beberapa kali, karena setelah di rewrite di bandingkan lagi patern-nya. Jika masih cocok/match, di lakukan rewrite lagi sampai paternnya tidak cocok lagi. Patern di definisikan menggunakan makro, classes, literal, dan metasymbol khusus. Makro, classes, dan literal memberikan nilai yang kemudian di bandingkan dengan inputnya dan metasymbols mendefine rules untuk digunakan sebagai matching patern. Tabel.7-7 memperlihatkan metasymbol untuk patern matching. 197

Symbol $* $+ $$=x $~x $x $%x $!x $%y Match zero or more tokens Match one or more tokens Match exactly one token Match any token in class x Match any token not in class x Match all token in macro x

Meaning

Match any token in NIS map named in macro x Match any token not in NIS map named in macro x Match any token in the NIS hosts.byname map

Tabel. 7-7:
Pattern matching symbols

Semua permintaan metasymbol match untuk sejumlah token. Token adalah string dari suatu karakter di mail address di potong /dibatasi oleh operator. Operator adalah karakter yang di definisikan sebagai makro o. Operator juga di hitung sebagai token saat address di parsing. Misal :
becky@peanut.nuts.com

Address e-mail ini berisi 7 token : becky, @, peanut, ., nuts, ., dan com. Address ini akan match/cocok dengan patern :
$-@$+

Address di atas cocok dengan patern ini karena : 198 Hanya satu token sebelum @ yang match dengan symbol patern $-. Mempunyai @ yang match dengan @ Mempunyai satu atau lebih token setelah @ yang match dengan sysmbol $+

Beberapa address: hostmaster@nic.dd.mil, chunt@nist.gov cocok/match dengan patern ini, tetapi tidak dengan address lain seperti hunt%nbsenh@almond.nuts.com. Address ini tidak match karena mempunyai tiga token: hunt, %.dan nbsenh, sebelum @. Jadi akan timbul ketidak cocokan dengan datu token yang di symbolkan dengan symbol $- . Menggunakan tiga symbol dan literal, patern dapat di bangun ke setiap type address e-mail. Jika sebuah address match dengan patern, string dari address yang match metasymbols di masukan ke indefinite tokens . String yang match di sebut dengan indefinite token karena meraka bisa saja berisi lebih dari nilai satu token. Indefinite token di identifikasikan sebagai bilangan sesuai dengan posisi relatif-nya terhadap patern dari metasymbol yang stringnya match. Dengan kata lain, indefinite token menghasilkan match dengan metasymbol pertama yaitu $1; match ke dua di sebut $2 dan ke tiga di sebut $3,..dan seterusnya. Misal : saat address becky@peanuts.nuts.com match dengan patern $-@$+, menghasilkan dua indefinite token. Yang pertama di identifikasikan sebagai $1 dan berisi sigle token becky yang match dengan symbol $-. Sedang indefinite kedua adalah $2 dan berisi 5 token : peanuts, ., nuts,.,dan com yang match dengan symbol $+. Indefinte token dibuat dengan patern matching kemudian dapat di referensikan dengan nama ($1,$2,dll) daat rewriting address.

Transformasi address
Field transformasi dari sebelah kanandari rewrite rule, di definisilan sebagai format yang di gunakan untuk rewriting rule, dengan hal yang sama untuk define patern : literal, makro, spesial metasymbol. Literal dalam transformasinya di tuliskan ke dalam address yang benarbenar bentuk baru. Makro di perluas dan kemudian di tuliskan. Metasymbol menjalankan fungsi khusus seperti dalam Tabel.7-8.

Symbol $n $[names$] $>n Substitute indefinite token n Substitute canonical name Call ruleset n

Maksud

199

$@ $:

Terminate ruleset Terminate rewrite rule

Tabel 7-8:
Transformation Metasymbols Symbol $n, dimana n adalah nomer yang digunakan untuk substitusi indefinite token. Indefinite token di perluas/dibuka dan dituliskan sebagai address baru. Kita lihat sekarang bagaimana indefinite token di gunakan. Address selalu di proses dengan beberapa rewrite rules. Tidak ada satupun rule yang melakukan proses seluruhnya. Di asumsikan input address adalah hunt@nbsenh.bitnet akan melewati beberapa preliminary proses dan sekarang adalah:
hunt<@nbsenh.bitnet>

Asumsikan rewrite rule-nya sekarang adalah :


R$+<$+.bitnet> $1%$2<@$B> use the Bitnet relay

Address match denga patern karena berisi satu atau lebih token sebelum literal <@,satu atau lebih setelah <@, dan literal string .bitnet. Patern match menghasilkan dua indefinite token yang di gunaka dalam transformasi untuk rewrite address. Transformasi berisi indefinite token $1, sebuah literal %, indefinite token $2, sebuah literal <@, makro B, dan literal >. Setelah patern matching, $1 berisi hunt dan $2 berisi nbsenh. Asumsikan makro B sudah di definisikan di suatu tempat di file sendmail.cf sebagai cunyvm.cuny.edu, suatu Bitnet relay host umum. Dalam kasus ini input address di tuliskan kembali (rewriten ) sebagai :
hunt&nbsenh.<@cunyvm.cuny.edi>

Gambar. 7-3 mengilustrasikan rewrite address khusus. Terlihat token di turunkan dari input address, dan bagaimana token di bandingkan lagi dengan patern. Juga terlihat indefinite token di hasilkan oleh patern matching, dan bagiamana indefinite token, dan nilai lain dari transformasi, yang di gunakan untuk menghasilkan rewrite address.

200

Address tokens pattern

hunt < @ nbsenh . bitnet > $+ < @ $+ . bitnet > nbsenh % $2 < @ $B >

undefinite tokens hunt Transformasi $1

rewriten address hunt % nbsenh < @ cunyvm.cuny.edu >


Gambar.7-3
Rewriting Address.

Setelah rewriting, address di bandingkan lagi dengan patern, Pada saat ini matching-nya gagal karena tidak lagi berisi literal string.bitnet>. Lalu, tidak lama kemudian proses dengan melakukan rewrite rule dan address di lewatkan/passed ke baris rule selanjutnya. Dari contoh terlihat substitusi indefinite token adalah esesial untuk rewriting address yang fleksibel, tanpa itu tidak mudah untuk memindahkan dari input address ke rewriten address. Symbol $[name$] merubah hosts nickname atau IP address ke canonycal name dengan melewatkan nilai name-nya ke name server untuk resolusi. Contoh, menggunakan name server nuts.com, $[mil-gw$] mengembalikan almond.nuts,com dan $[[128.66.`1.2]$] mengembalikan peanut.nuts.com. Symbol $>n memanggil ruleset n dan melewatkan address yang di difinisikan oleh remainder of transformation ke ruleset n untuk prosesing. Contoh :
$>9$1%$2

Transformasi di atas memanggil rule set 9 ($>9), dan melewatkan/mengumpankan isi $1, literal % dan isi dari $2 ke ruleset 9 untuk memprosesnya. Saat ruleset 9 selesai di eksekusi/dijalankan, menngembalikan rewriten address ke rule pemanggilan. Address e-mail kembalian ini di bandingkan lagi ke patern ke dalam calling rule. Jika masih match, ruleset 9 di panggail lagi, rekursi sudah ada di dalam rewrite rule dan ada kemungkinan loop tak 201

hingga. Untuk itu disediakan paling tidak dua metasymbol untuk mencegah loop tak hingga ini. (lihat Tabel.7-8). Symbol $@ dan $: digunakan untuk mengkontrol proses. Jika transformasi dimulai dengan symbol $2, seluruh ruleset di hentikan dan sisa transformasi adalah nilai yang dikembalikan oleh ruleset. Jika transformasi di mulai dengan symbol $:, individual rule di eksekusi hanya sekali. Gunakan Symbol $: untuk mencegah rekursif dan mencegah loop saat memanggil ruleset lain. Ada syntax rewrite rule khusus yang hanya di gunakan di ruleset 0. Ruleset 0 di definisikan sebagai triple (mailer, hosts, user) yang spesifik untuk program pengiriman mail, recipient hosts, dan recipient user. Syntax transformasi yang digunakan sebagai berikut :
$#mailer$@host$:user

contoh di bawah ini di ambil dari file tcpuucpproto,cf :


# resolve SMTP traffic R$*<@$+>$* $#tcpld@$2$:$1<@$2>$3 user@host.domain

Misalnya kita asumsikan address e-mailnya david<@filbert.nuts.com> di proses dengan rule ini, Address match dengan Patern R$*<@$+>$* karena : Address mempunyai nol atau lebih token (token david) yang match dengan symbol pertama ($*) Address mempunyai literal <@ Address mempunyai satu atau lebih token (5 token filbert.nuts.com) yang match dengan yang di perlukan symbol $+. Address mempunyai literal > Address mempunyai nol atau lebih, dalam kasus nol ini, token yang match memenuhi symbol terakhir $*. Patern yang match ini menghasilkan dua indefinite token. Indefinite token $1 berisi david dan $2 berisi filbert.nuts.com. Tidak ada matching yang terjadi, jadi $3 null. Indefinite token ini di gunakan untuk rewrite address ke dalam triple :
$#tcpld$filbert.nuts.com$:david<$filbert.nuts.com>

Komponen dari triple adalah :

202

$#tcpld

tcpld adalan nama internal dari mailer yang mengirimkan message/mail.

$filbert.nuts.com

filbert.nuts.com adalah recipient host.


david<$filbert.nuts.com> adalah user

$:david<$filbert.nuts.com>

recipient-nya

Disini adalah satu variasi khusus dari syntax ini, yang hanya digunakan di ruleset 0, yang meneruskan error message ke user.:
$#error$:message

message adalah text daro error message yang di kembalikan ke user, contoh : R@ $#error$Invalid address

Rule ini mengembalikan message invalid address jika address tidak match dengan patern.

Set perintah di Ruleset


Ruleset adalah group yang berkaitan dengan rewrite rule yang di hubungkan dengan bilangan/nomer. Perintah S memberi tanda awal dari ruleset da nmengedintifikasi rulesetnya dengan nomer. Pada syntax perintah Sn, n adalah nomer yang mengidentifikasikan ruleset. Umumnya, nomer yang digunakan berkisar antara 0 sampai 29. Ruleset dapat berbentuk seperti subroutine, atau fungsi, yang didesain untuk memproses email address, yang dipanggil dari definisi mailer, dari individual rewrite rule, atau langsung di panggil dari sendmail . Empat rule set mempunyai fungsi khusus dan di panggil langsung dari sendmail yaitu : Ruleset 3, ruleset paling besar dan komplek, ruleset pertama di digunakan pada addresses, yang mengubah address ke bentuk canonical :
local-part@host.domain

Dalam kondisi khusus bagian @hosts.domain di tambahan oleh sendmail setelah ruleset 3 berhenti. Kejadian ini hanya terjadi jika mail telah diterima dari dengan Flag di set ke C. Dalam contoh kita lihat hanya SMTP mailer yang mailer

menggunakan 203

flag ini. Jika flag ini di set ke C maka pengirim di tambahkan @host.domain address di dalam mail yang hanya mempunya local-part

ke

seluruh

Proses ini dilakukan setelah ruleset 3 dan sebelum ruleset 1 dan 2. (dalam Gambar 5-4 diperlihatkan dengan kotak yang di beri tanda D. Ruleset 0 di aplikasikan ke addresses digunakan untuk mengirimkan mail. Ruleset 0 di lakukan setelah ruleset 3 dan hanya untuk recipient address sebenarnya digunakan untuk pengiriman mail, Resolve address ke triple (mailer, host, user) tersusun/terdiri dari nama mailer yang mengirimkan mail, recipient host name, dan recipient user nama. Ruleset 1 di aplikasikan ke seluruh address pengirim di dalam message. Ruleset 2 di aplikasikan ke seluruh address penerima di dalam message Ruleset 4 di aplikasikan ke seluruh address di dalam message dan digunakan untuk translate internal format address ke dalam format external mail. Gambar.7-4. menunjukan aliran dari message dan address melalui ruleset tersebut. Kotak

delivery address sender address all addresses

0 1 2

The (mailer, host, user) triple

S 4 R
all addresses

D
recipient address

D S R

Sender domain information added Mailer-specific sender rewriting Mailer-specific recipient rewriting

Gambar 7-4:
Urutan Ruleset D bukan menunjukan symbolik ruleset, ini adalah proses internal sendmail . Symbol S dan R di gunakan untuk menempatkan ruleset. Meraka mempunyai nama numerik seperti halnya 204

semua ruleset normal, tetapi bukan tetap/fixed seperti dalam kasus ruleset 1, 2, 3, dan 4. Nomer Ruleset S dan R di identifikasikan oleh field S dan R di bagian definsi mailer. setiap mailer bisa mengkhusukan diri terhadap ruleset S dan R sendiri untuk membersihkan spesifikasi-mailer dari pengirim dam penerima address sebelum message di kirimkan.

Modifikasi sendmail.cf
Modifile sendmail.cf terdiri dari satu baris yang mendefinisikan class w. Perintah ini membaca nickname dari host dari file /usr/lib/sendmail.cw dan meletakkannnya pada pada class w. Pada kebanyakan system sendmail mampu mendefinisikan dengan benar harga class w secara internal. Class w hanya didefinisikan jika system dikenali dengan lebih dari satu hostname.

205

Modifikasi General Macro


Bagian kedua dari file sendmail.cf berisi site-specific value. File sampel berisi baris-baris berikut ini yang juga merupakan instruksi apa yang harus kita letakkan pada masing-masing baris.
#local domain name DDYOUR_LOCAL_DOMAIN_GOES_HERE # UUCP relay host DRYOUR_UUCP_RELAY_GOES_HERE # csnet relay host DCYOUR_CSNET_RELAY_GOES_HERE # bitnet relay host DBYOUR_BITNET_RELAY_GOES_HERE # my official hostname Dj$w

Kita akan memodifikasi baris-baris ini untuk domain itb.ac.id. untuk macro D, UUCP relay uunet.uu.net untuk macro R, Bitnet relay cunyum.cuny.edu untuk macro B. Karena CSNET tidak ada lagi kita akan meng-comment-out baris macro C.
#local domain name DDitb.ac.id # UUCP relay host DRuunet.uu.net # csnet relay host # DCYOUR_CSNET_RELAY_GOES_HERE # bitnet relay host DBcunyum.cuny.edu # my official hostname Dj$w

Macro j tidak perlu dimodifikasi karena macro w telah menginisialisasinya. Jika kita menggunakan DNS maka macro w akan berisi fully qualified domain name. Jika w tidak berisi fully qualified domain name, maka macro j harus diinisialisasi dengan Dj$w.$D.

206

Modifikasi Classes
Bagian berikutnya mendefinisikan class I. Pada contoh kita, class I memuat nama-nama beberapa domain routing mail khusus. Domain ini memungkinkan pengguna yang tidak berada di Internet dapat menerima mail dengan alamat yang bergaya Internet. Contohnya mail yang ditujukan kepada serorang yang berada di Bitnet oleh seorang di Internet biasanya menggunakan format user%bitnet-host@bitnet-relay. Address ini dikenal sebagai % kudge. Dengan menggunakan Bitnet Domain palsu, mail dapat ditujukan ke user@bitnethost.BITNET.

sendmail mengubah Bitnet Domain palsu dan me-rewrite ke dalam bentuk

yang benar, menggunakan % kuldge dan relay host yang didefinisikan di macro B. Domain palsu juga digunakan untuk mengirim mail ke UUCP mail. Mail dapat dikirim dengan sintaks UUCP normal, misalnya ora!los!craig. Atau dapat juga dikirim dengan pseudeo format misalnya craig@los.ora.uucp. Class I pada file tcpproto.cf tidak perlu modifikasi, kecuali karena tidak adanya CSNET, kita harus edit class I dengan mendelete entry CSNET. Baris asli adalah sebagai berikut
CIUUCP BITNET CSNET

diubah menjadi:
CIUUCP BITNET

Modifikasi Version Number


Version Number tidak perlu dimodifikasi, tapi sebaiknya diganti setiap kali kita mengupdate file sendmail.cf.

Modifikasi Option
Bagian Option mendefinisikan semua option pada sendmail. Beberapa option mendefinisikan path dari file yang berhubungan dengan sendmail. Pada tcpproto.cf path tersebut berada pada baris-baris dibawah ini:
# location of aliases file OA/usr/lib/aliases #location of help file

207

OH/usr/lib/sendmail.hf # queue directory OQ/usr/spool/mqueue # status file OS/usr/lib/sendmail.st

Option t yang mendefinisikan time zone harus kita sesuaikan dengan tempat kita masingmasing. Misalnya untuk WIB, kita edit file sendmail.cf sehingga menjadi:
OtWIB

Option W digunakan untuk menyimpan wizard password yang memungkinkan kita melakukan debug access ke sendmail, jika sendmail di-compile dengan option debug. sendmail debug accecss merupakan problem yang dapat dieksplot\itasi oleh intruder. Untuk mengetahui apakan sendmail dapat menerima debug access atau tidak dapat dilakukan dengan perintah sebagai berikut:
% telnet localhost 25 Trying 127.0.0.1 Connected to localhost Escape character is ^] 220 maingtw.paume.itb.ac.id Sendmail 4.1/1.36 ready at Mon, 15 Jun 95 09:30:31 WIB debug 500 Command unrecognized quit 221 maingtw.paume.itb.ac.id closing connection Connection closed by foreign host.

Pesan error di atas menyatakan bahwa debug access tidak diizinkan. Pada contoh kita option W kita hapus karena kita tidak mnegizinkan remote debug access.

Modifikasi Rewrite Rules


Bagian berikutnya dari sendmail.cf mendefinisikan messages precedence, trusted user, dan header. Tidak ada yang perlu modifikasi. Bagian selanjutnya adalah rewrite rules dan mailer. Bagian ini merupakan inti dari sendmail. Karena bagian ini didesian untuk dapat mengirim mail ke Internet, kita tidak perlu memodifikasinya. 208

Yang perlu kita modifikasi adalah bagian yang mengandung CSNET, karena CSNET sudah tidak ada lagi. Kemudian bagian yang mengandung .arpa karena domain itu sudah tdak digunakan lagi.

Menguji sendmail.cf
sendmail memiliki beberapa tool yang dapat kita gunakan untuk menguji dan menkonfigurasi serta debugging. Tool ini dapat kita panggil dari command line, yang dapat dilihat pada tabel berikut ini. Contoh berikut ini adalah tes sendmail dengan file test.cf
maingtw% /usr/lib/sendmail -Ctest.cf -t -v To: hunt@nbsenh.bitnet From: daniel Subject: Test Halo Hunt, tes pake sendmail. ^D hunt@nbsenh.bitnet... Connecting to cunyum.cuny.edu (tcp)... Trying 128.228.1.2...connected 220 cunyum.cuny.edu on Wed, 27 Oct 94 12:23:09 EST >>> HELO maingtw.paume.itb.ac.id 250 cunyum.cuny.edu is my domain name. >>> MAIL From:<daniel@maingtw.paume.itb.ac.id> 250 Sender OK - send RCPTs. >>> RCPT To:<hunt%nbsenh.BITNET@cunyum.cuny.edu> 250 Recipient OK - send RCPT or DATA. >>> DATA 354 OK, send data, end with CRLF.CRLF >>> . 250 Data received OK. >>> QUIT 221 cunyum.cuny.edu closing connection hunt@nbsenh.bitnet... Sent

209

Argument
-f addr -r addr -h cnt -F name -n -t -bm -ba -bs -bd -bt -bv -bi -bp -bz -q[time] -C file -d level -o xvalue -e -i

Fungsi address pengirim adalah addr bentuk lama dari -f drop mail jika diforward cnt kali set full username dengan name tidak melakukan aliasing atau forwarding kirim ke semua orang yang terdaftar di To: Cc: dan Bcc: deliver mail (default) jalan di mode arpanet2 menggunakan SMTP pada sisi input jalan sebagai daemon jalan di mode test verivy address; tidak mengumpulkan atau mengirim mail menginisialisasi alias database print mail queue freeze konfigurasi memproses queued mail menggunakan file sebagai file konfigurasi set debugging level set option x dengan harga tertentu (xvalue) definisi bagaimana error dikembalikan ignore dots pada mail yang masuk

Baca header From: untuk menemukan pengirim. Menggunakan tiga digit reply code, dan mengakhiri baris error dengan <CRLF>

210

-m -v -s addr

send to me too jalan di verbose mode bentuk alternatif dari -f

Kita ketik semua sebelum ^D. Setelah ^D akan muncul pesan-pesan seperti di atas yang dikeluarkan oleh sendmail. Gambar di bawah ini menjelaskan apa-apa yang penting dan memperlihatkan macro sendmail yang berhubungan dengan yang dijelaskan.

maingtw% /usr/lib/sendmail -Ctest.cf -t -v To: hunt@nbsenh.bitnet From: daniel Subject: Test

host penerima (machro h)

Halo Hunt, mailer tes pake sendmail. ^D hunt@nbsenh.bitnet... Connecting to cunyum.cuny.edu (tcp)... Trying 128.228.1.2...connected 220 cunyum.cuny.edu on Wed, 27 Oct 94 12:23:09 EST local hostname >>> HELO maingtw.paume.itb.ac.id 250 cunyum.cuny.edu is my domain name. (macro w) >>> MAIL From:<daniel@maingtw.paume.itb.ac.id> 250 Sender OK - send RCPTs. rewritten sender from >>> RCPT To:<hunt%nbsenh.BITNET@cunyum.cuny.edu> address (macro f) 250 Recipient OK - send RCPT or DATA. >>> DATA rewritten recipient 354 OK, send data, end with CRLF.CRLF address (macro u) >>> . 250 Data received OK. >>> QUIT 221 cunyum.cuny.edu closing connection hunt@nbsenh.bitnet... Sent

211

Menguji Rewrite Rules


Problem pada masalah pengalamatan disebabkan oleh rewrite rules. Dengan menggunakan sendmail -bt kita dapat menguji rewrite rules, seperti di bawah ini.
maingtw # sendmail -bt ADDRESS TEST MODE Enter <ruleset> <address> > 0 hunt@nbsenh.bitnet rewrite: ruleset 3 input: hunt @ nbsenh . bitnet rewrite: ruleset 8 input: hunt @ nbsenh . bitnet rewrite: ruleset 8 returns: hunt @ nbsenh . bitnet . . . rewrite: ruleset 6 input: hunt < @ nbsenh . bitnet > rewrite: ruleset 6 returns: hunt < @ nbsenh . bitnet > rewrite: ruleset 0 returns: $# tcp $@ cunyum . cuny . edu $: hunt < @ nbsenh . BITNET >

> 1,14,4 daniel rewrite: ruleset 3 input: daniel rewrite: ruleset 8 input: daniel rewrite: ruleset 8 returns: daniel rewrite: ruleset 3 returns: daniel rewrite: ruleset 1 input: daniel rewrite: ruleset 1 returns: daniel rewrite: ruleset 14 input: daniel rewrite: ruleset 14 returns: daniel % maingtw . paume . itb . ac . id < @ > rewrite: ruleset 4 input: daniel % maingtw . paume . itb . ac . id < @ > rewrite: ruleset 4 returns: daniel % maingtw . paume . itb . ac . id @ >^D

212

Jika dijalankan dengan option -bt, sendmail akan memunculkan prompt >. Pada prompt itu kita dapat memasukkan ruleset number dan e-mail address. Address merupakan test data, dan ruleset number merupakan ruleset yang akan ditest. Ruleset 3 merupakan ruleset pertama yang dikenakan pada address, dan pada mode address test diasumsikan merupakan yang pertama kali dikenakan pada address. Untuk melihat mailer yang digunakan pada sendmail, gunakan ruleset 0 pada address penerima. Pada contoh di atas, address penerima adalah hunt@nbsenh.bitnet. Jadi kita masukkan 0 hunt@nbsenh.bitnet pada prompt. Field pertama dari harga yang dikeluarkan oleh ruleset 0 adalah nama mailer. Ini memberitahu kita bahwa mailer yang digunakan adalah tcp mailer. Setelah mengetahui mailer yang digunakan kita dapat menetukan ruleset yang dipanggil untuk memproses alamat pengirim From: Dengan memperhatikan Gambar 7-4, alamat pengirim melewati ruleset 3, ruleset 1, dan ruleset yang ditetnukan oleh S, serta ruleset 4. Definisi mailer untuk tcp menentukan bahwa ruleset S-nya adalah ruleset 14. Jadi ruleset yang memproses alamat pengirim adalah 3, 1, 14, dan 4. Pada address test kita memasukkan 1, 14, 4 karena ruleset 3 dipanggil secara otomatis. Test diatas menunjukkan bahwa alamat pengirim mengalami kesalahan pada ruleset 14. Inspeksi baris-per-baris pada ruleset tersebut menunjukkan ada dua baris yang merefer informasi yang tak terdefinisi pada konfigurasi kita yaitu class N dan macro A.
R$+<@$=N.$D> $@$1<@$2.$D> R$+<@$*.$D> $@$1%$2.$D<@$A> nic-reg host are ok else -> u%h@gateway

Komentar yang ada memberi kita petunjuk apa yang haru kita lakukan. Jelas bahwa class N berhubungan dengan NIC-registration host. Setelah tahun 1989 kita telah menggunakan DNS sehingga kita tidak perlu memperhatikan NIC host table lagi, sehingga kita bisa mengcomment-out kemunculan baris ini di file sendmail.cf. Baris selanjutnya lebih dekat ke problem yang kita hadapi. Ruleset ini muncul karena sekali waktu sebuah host yang tidak berada di NIC host table yang lama harus mengirim mail ke Internet melalui mail relay. Kita tidak harus mencantumkan mail relay host di alamat pengirim karena record MX telah digunakan untuk menyampaikan mail ke tujuan yang benar. Jadi kita juga dapat meng-comment out kemunculan baris ini di seluruh file sendmail.cf.

213

8
Membuat FTP Server dan WEB Server
Dua buah service yang sangat banyak dipakai di Internet adalah Web dan FTP. Pada bab ini akan dibahas bagaimana cara membuat server Web dan server FTP yang bisa diakses oleh orang lain melalui Internet.

214

FTP Server
Pendahuluan
Di dunia internet saat ini, hampir semua host yang ada mensupport FTP baik sebagai klien maupun sebagai server. FTP disebut juga sebagai File Transfer Protocol adalah sebuah protokol yang digunakan untuk transfer file antara satu komputer dengan komputer yang lain. FTP dapat mentransfer hampir semua data, mulai dari file dalam bentuk ASCII, Executable File, Postscript, gambar dalam format JPG, GIF dan lain sebagainya. Komunikasi FTP ini terjadi antara FTP server dengan kliennya. Ada dua macam aksesibilitas yang ditawarkan oleh FTP server, yaitu : User FTP dan anonymous FTP. User FTP adalah FTP yang diperuntukkan hanya untuk user dari mesin FTP server tersebut, sedangkan anonymous FTP diperuntukkan untuk public karena semua orang dapat mengakses data yang ada pada FTP server tersebut tentu saja dengan batasanbatasan tertentu. Pada dasarnya FTP server hanya menyediakan fasilitas bagi user berupa listing suatu direktori, mengubah direktori tempat bekerja, mengirim dan menerima file. Jadi seorang pengguna FTP (baik anonymous maupun user FTP) tidak dapat mengeksekusi suatu file dari FTP server, yang bisa ia lakukan hanyalah terbatas pada file-file diatas. Anonymous FTP menjadi pokok bahasan kita dalam bab ini, karena servis inilah yang merupakan inti dari FTP server saat ini. Anonymous FTP diperuntukkan untuk publik, baik user tersebut memiliki account di mesin itu atapun tidak. User yang mengisi nama user ketika masuk ke FTP server dengan nama ftp atau anonymous diperbolehkan untuk masuk ke dalam FTP server tersebut. Walaupun server tidak mengecek password yang diisi ketika login, password yang diisi oleh user tadi di-log oleh komputer. Telah merupakan konvensi untuk menanyakan alamat email user untuk password anonymous FTP, sehingga system administrator dari komputer dapat mengetahui siapa pengguna FTP server tersebut. Pengguna FTP server memiliki akses yang terbatas pada beberapa direktori (termasuk file di dalamnya) yang sebelumnya telah diatur hak aksesnya. Direktori atau daerah ini disebut 215

sebagai area anonymous FTP. Pengguna anonymous FTP tidak dapat melihat direktori lain selain direktori di mana ia diberi hak untuk mengakses. Hal inilah yang membuat FTP adalah salah satu servis yang cukup aman dalam dunia informasi di internet.

FTP Server
FTP server terdiri dari dua bagian, yaitu : server, yang bertugas untuk melayani permintaan dari klien yang meminta listing direktori, mengubah direktori (letak tempat kerja), mengirimkan file dan menerima file. Nama dari program yang berfungsi untuk melayani halhal di atas adalah ftpd (baca ftp daemon). Bagian kedua adalah file-file yang ada pada direktori yang diperbolehkan untuk diakses oleh pengguna anonymous FTP. Konfigurasi FTP server ftpd biasanya dijalankan dan dikontrol oleh inetd, yang merupakan server utama dari UNIX yang bisa menjalankan beberapa aplikasi secara bersamaan. Inetd mendengarkan permintaan dari klien pada beberapa port yang telah dikenal, temasuk port untuk mengontrol FTP yaitu port 21. Ketika klien dari FTP berusaha untuk membuat hubungan dengan FTP server yang pertama dilakukan adalah mengirimkan paket TCP ke port 21 pada komputer tujuan, inetd menerima paket tersebut, dan menentukan port tujuan sehingga dapat mulai menjalankan aplikasi yang dibutuhkan untuk melayani permintaan tersebut melalui proses forking dan executing. Karena aplikasi yang dituju adalah ftpd maka aplikasi inilah yang di-fork dan di execute oleh inetd untuk menerima permintaan dari klien. Apabila pada saat yang bersamaan ada klien lain yang meminta inetd untuk menjalankan ftpd, maka inetd akan menjalankan kopi dari ftpd yang sudah berjalan dan melayani permintaan klien tersebut. Konfigurasi yang digunakan sebagai kontrol bagaimana ftpd dijalankan adalah inetd.conf, yang terlihat sebagai berikut :
ftp stream tcp nowait root /etc/ftpd ftpd -l

Biasanya, UNIX secara otomatis telah memasukkan entry ini kedalam inetd.conf sehingga kita tidak perlu menambahkannya lagi. Sekarang kita akan membicarakan maksud dari entry yang ada diatas. Field pertama (ftp) menunjukkan protocol. Field ini digunakan untuk memberi tahu port mana yang harus didengar (listened) oleh inetd untuk menerima permintaan dari klien. 216

Ketika inetd menerima paket pada port 21 (port standar untuk ftp) inetd akan membaca field ftp untuk menentukan server yang harus distart. Field yang kedua dan ketiga (stream dan tcp) menunjukkan cara komunikasi yang digunakan oleh server. Pada konfigurasi di atas ditunjukkan bahwa komunikasi dilakukan dengan menggunakan TCP, yang pada dasarnya merupakan aliran data berurutan antara dua komputer. Sebagai catatan FTP hanya bisa berkomunikasi menggunakan TCP. Entry nowait mengharuskan inetd untuk selalu menstart server baru ketika klien mengirimkan permintaan ke server. Apabila digunakan option wait maka server akan menstart server setelah klien telah selesai menggunakan server sebelumnya (bergantian). Dua field terakhir (/etc/ftpd dan ftpd -l) menunjukkan path dari file eksekutable ftpd sedangakan -l menunjukkan option ketika menjalankan ftpd (biasanya secara default option ini tidak usah diset). ftp user Setelah selesai mengkonfigurasi FTP server untuk berjalan dibawah inetd maka kita perlu menambahkan entry ftp user pada file /etc/passwd (dengan asumsi sistem operasi yang anda gunakan adalah UNIX). Ftpd akan mengecek eksistensi dari ftp user sebelum ia memperbolehkan adanya anonymous FTP. Apabila entry ftp user tidak terdapat pada file /etc/passwd, ftpd akan menolak semua orang yang berusaha untuk memasukkan nama anonymous atau ftp ketika masuk ke FTP server. Entry ftp user pada file /etc/passwd harus memiliki user ID dan group ID yang unik dan kita harus memastikan bahwa user tersebut tidak dapat log in melalui cara yang standar seperti melalui telnet . Untuk ini kita harus mengeset field password pada entry ftp user pada file /etc/passwd dengan * sehingga password dianggap tidak ada, dan login shell harus diset ke /bin/false, atau /nonexistent sehingga UNIX tidak akan mengecek password dan tidak memperbolehkan user masuk ke mesin itu selain melalui FTP. Entry pada file /etc/passwd akan nampak sebagai berikut : ftp:*:500:25: Anonymous FTP user :/user/ftp:/bin/false

217

Login direktori juga merupakan satu hal yang penting. Pengguna anonymous FTP hanya diperbolehkan untuk mengakses file yang ada pada direktori tersebut.

Filesystem
File-file yang berada pada direktori yang disebutkan pada entry ftp user di file /etc/passwd harus memiliki suatu struktur yang spesial dan di dalamnya harus memiliki file-file yang bisa dieksekusi. Sebagai catatan direktori yang tercantum pada entry di file /etc/passwd menjadi FTP server root directory. Sebagai contoh misal pada entry disebutkan direktori yang boleh diakses oleh anonymous FTP ada pada direktory /user/ftp, maka ketika user masuk, maka ia akan mendapatkan direktori tersebut sebagai / (pada unix / disebut root dan semua file yang ada pada direktori tersebut letaknya direferensikan terhadap root ). Sehingga apabila ada file yang sebenarnya terletak pada /user/ftp/bin, maka user akan mendapatkan direltori tersebut sebagai /bin saja. Struktur direktori anonymous FTP Kita harus membuat user ftp login direktori (yang tercantum pada entry di /etc/passwd) dan membuat subdirektori berikut ini : bin Direktori ini berisi file-file executable yang diperlukan oleh ftpd untuk menservis permintaan anonymous FTP, biasanya file yang ada adalah ls (untuk listing direktori) dan cd (untuk mengubah letak direktori) etc Biasanya berisi password (bukan entry password /etc/passwd, file ini jangan sampai diletakkan pada direktori ini karena harus disembunyikan eksistensinya dari dunia luar) pub Direktori ini berisi file-file yang disediakan untuk anonymous FTP.

Jangan sampai kita mengopi file passwd dan group ke direktori-direktori di atas.

218

Ijin dan Kepemilikan Direktori File Berikut ini adalah hak-hak yang harus kita berikan pada subdirektori-subdirektori di atas : login direktori harus dimiliki oleh root, bisa dibaca oleh orang lain, dan dapat dieksekusi (dalam UNIX gunakan mode 555) bin subdirektori ini harus dimiliki oleh root dan group wheel, staff atau yang lain. Direktori harus bisa dieksekusi tetapi tidak dapat ditulis dan dibaca oleh user (mode 111) etc pub harus dimiliki oleh root (mode 111) harus dimiliki oleh root atau pengguna komputer yang mempunyai perkerjaan untuk admininstrasi file-file yang ada di sini. Direktori ini jangan sampai mempunya file permission writable karena kita harus melarang user untuk dapat menaruh file di ftp archive ini ! gunakan mode 555. Demikianlah beberapa cara untuk setting FTP server.

Memelihara Arsip FTP


Standar Ekstensi Nama File Untuk mempermudah bagi user anonymous FTP untuk memperkirakan format dari file yang akan mereka transfer adalah penting untuk menggunakan ekstensi nama file yang standar. Sebagai contoh file dengan ekstensi .ps adalah file PostScripts, atau file image seperti .gif, .jpg, dan lain-lain. Contoh lain adalah .Z adalah ekstensi dari file kompresan yang ada di UNIX, begitu juga dengan .gz. Di bawah ini adalah beberapa contoh format file dan masingmasing ekstensinya. Program Kompresi
compress gzip pack Stuffit PackIt

Program Dekompresi
uncompress gunzip unpack unsit unpit

Ekstensi file
.Z .gz atau .z .z .Sit .pit

Contoh
test.Z test.gz test.z test.Sit test.pit

219

PKZIP zoo210

unzip41 zoo210

.ZIP .zoo

test.ZIP test.zoo

Mengakses arsip FTP adalah seperti mengakses file yang ada di local file system, namun tanpa alat navigasi. Sebagai contoh, user tidak dapat menggunakan perintah find untuk mencari sebuah file. Oleh karena itu untuk mempermudah maka sebaiknya selalu disediakan symbolic link ke arsip tertentu, file README atau file ls-lR.

WEB SERVER
Saat ini orang mengenal dunia internet identik dengan World Wide Web (WWW) atau disebut web saja. World Wide Web adalah merupakan servis internet yang menyajikan informasi dalam bentuk grafis dan juga memberikan kemampuan hyperlinking yang membuatnya menjadi salah satu servis dengan perkembangan yang begitu pesat saat ini. Dengan web kita dapat menghubungkan suatu kata/informasi dalam web tersebut dengan informasi lain yang bisa berbentuk gambar, tulisan, film, suara dan lain sebagainya. Yang dimaksud dengan hyperlinking adalah kemampuan web untuk menghubungkan satu informasi yang ada di satu web server dengan informasi lain yang bisa saja ada di mesin web server lain atau juga dalam mesin web server itu sendiri. Dalam bab ini kita tidak akan membahas bahasa yang digunakan dalam pembuatan home page, tetapi kita akan lebih membicarakan segi teknisnya.

World Wide Web Server


Software server yang digunakan oleh WWW disebut juga sebagai Web server. Server ini dalam komunikasi dengan klien menggunakan protokol TCP dan selalu mendengarkan permintaan dari klien pada port 80 (default). Ketika klien meminta halaman tertentu dari home page, server akan mengirimkan halaman yang diinginkan ke klien. Di bawah ini adalah beberapa contoh Web Server : NCSA

220

Web Server NCSA adalah public domain Web server ditulis dalam C. Siapa saja diperbolehkan mempergunakannya tanpa lisensi dari pembuat. NCSA Server kompatibel dengan hampir semua Web browser HTTP/0.9 dan HTTP/1.0. Server ini mendukung direktory aliasing sehingga permintaan dokumen dapat dilayani dari berbagai struktur direktori. Anda dapat membuat server untuk menjalankan fasilitas searching, form HTML dan clickable images map dan mengontrol akses. Untuk memperolehnya sourcenya dapat diambil di : http://hoohoo.ncsa.uiuc.edu/docs/setup/PreCompiled.html CERN Web Server CERN memiliki kesamaan dengan NCSA yaitu bahwa Web server tersebut adalah public domain dan ditulis dalam C. Web server ini mendukung form, clickable iamge map, script, fasilitas search (via CGI), dan juga menyediakan maping nama dokumen ke nama file. Untuk informasi lebih jelasnya dapat dilihat di : ftp://info.cern.ch/pub/www/bin/ URL ini akan membawa anda ke arsip FTP tempat precompiled source dari Web server CERN. Plexus Plexus adalah Web server yang merupakan public domain dan ditulis dalam Perl, tidak perlu lisensi untuk menggunakannya. Plexus didesain agar mudah untuk digunakan dan memiliki performansi yang baik, mendukung protokol baik HTTP/0.9 maupun HTTP/1.0 Untuk informasi dapat dilihat di http://www.bsdi.com/server/doc/plexus.html Sedangkan sourcenya dapat diperoleh di : ftp://austin.bsdi.com/plexus/2.2.1/dist/Plexus-2.2.1.tar.Z

221

World Wide Web Browser


Pada lingkungan klien/server di dunia web, kendali terletak pada web browser. Web server berfungsi untuk meminta data dari web server dengan URL (Uniform Resource Locator) yang diberikan oleh pengguna. Data yang diberikan oleh web server diberi nama HTML (Hypertext Markup Language), data ini diartikan sendiri oleh web browser dan ditampilkan di layar sesuai dengan kemampuan web browser itu sendiri. URL menyatakan protokol yang digunakan untuk mencapai server yang diinginkan (biasanya nama dari server yag bersangkutan tempat data/informasi yang kita inginkan berada, path direktori data yang kita inginkan, dan bisa juga nama file yang kita inginkan. Dibawah ini contoh dari URL :
http://nic.itb.ac.id./pub/cnrg.html

maksud dari URL di atas adalah kita menggunakan protokol http (protokol untuk meminta data dalam bentuk web) untuk mencapai server bernama nic.itb.ac.id. pada server itu terdapat direktori pub yang di dalamnya terdapat file cnrg.html. Semua data yang bisa diartikan oleh web browser berekstensi htm atau html. Apabila user memilih sebuah hyperlink, maka web browser akan meminta data dari URL yang disebutkan (disebutkan dalam data yang diminta sebelumnya) dan mengulangi lagi tugas diatas. Di bawah ini hubungan antara web browser dengan sumber infotmasi lain di internet :

gopher Server

Web Browser

Web Server

Gateway

Server lain

FTP Server

Ketika web browser berinteraksi dengan Gopher Server (salah satu bentuk sumber informasi di internet) maka web browser menjadi klien gopher dan menggunakan protokol gopher. Apabila web browser berinteraksi dengan web server maka browser akan menjadi klien web 222

server dan menggunakan protokol HTTP. Demikian juga apabila browser berinteraksi dengan FTP server. Yang dimaksud dengan gateway pada gambar di atas adalah kemampuan web server untuk mengeksekusi perintah-perintah khusus yang dapat menampilkan informasi lain yang tidak dapat ditampilkan dengan cara biasa. Dalam dunia web, gateway ini disebut CGI (common Gateway Interfaces).

223

HTTP
Web browser dan server berkomunikasi menggunakan protokol HTTP (HyperText Transfer Protocol). Protokol ini menganggap permintaan dokumen (HTML) dari browser sebagai koneksi baru. Apabila ia telah memenuhi permintaan browser dan data telah ditransfer, maka hubungan dengan browser akan ditutup. Negosiasi ini juga dibantu dengan adanya MIME (Multimedia Internet Mail Extensions), yang membantu browser mengenal data yang diterimanya. Informasi ini biasanya ditaruh di header dari data, contohnya
text/html image/gif

yang dimaksud dengan keterangan di atas adalah, data yang dikirim oleh web server ada dua macam, yaitu text dalam bentuk html dan gambar dalam format gif. Browser menggunakan keterangan di atas untuk menerjemahkan dan menampilkan data yang diterimanya.

Konfigurasi Web Server


Pembahasan instalasi web server ini ditujukan pada software APACHE web server yang sudah tersedia dalam server UNIX FreeBSD. Instalasi dari software ini cukup mudah karena cukup interaktif, anda dapat menginstall software ini pada saat anda menginstall FreeBSD untuk pertama kalinya.

Instalasi Web Server


Web Server yang akan digunakan adalah apache-1.1.1. Source-nya mudah untuk diperoleh karena sudah tersedia pada FreeBSD. Sebenarnya ada beberapa cara yang dapat digunakan untuk instalasi Web Server ini. Salah satu caranya adalah dengan cara yang dilakukan seperti instalasi FTP Server di atas. Pada instalasi kali ini kita akan menggunakan cara lain yaitu dengan perintah pkg_add. Caranya adalah sebagai berikut : Ambillah source apache-1.1.1. Source ini bisa diambil dari CDROM FreeBSD atau dengan ftp ke site di Internet yang menyediakan layanan ini, sebagai contoh site adalah ftp.itb.ac.id. 224

Letak source dari apache-1.1.1 ini biasanya ada di direktori /pub/FreeBSD/2.1.5RELEASE/packages-2.1.5/www dengan nama file apache-1.1.1.tgz. Setelah diambil source tersebut extract-lah dengan perintah pkg_add. # pkg_add apache-1.1.1.tgz Biasanya file-file hasil extract tersebut disimpan di direktori /usr/local/www dan file httpd yang terletak di /usr/local/sbin. Di bawah ini adalah file-file yang merupakan konfigurasi dari web server : httpd.conf srm.conf access.conf File konfigurasi utama dari web server File resource dari web server File untuk access control

biasanya file-file di atas diletakkan pada direktori /usr/local/www/server/conf. Editlah ke tiga file tersebut agar menghasilkan konfigurasi yang sesuai dengan keinginan kita.

Konfigurasi dari httpd.conf


Di bawah ini kita bicarakan konfigurasi basic dari httpd.conf, kita batasi pembicaraan kita pada option-option penting dari httpd.conf saja. Ubah User dan group dengan nama yang anda inginkan, option ini berhubungan dengan proses dari unix yang membutuhkan user id (UID) dan group id (GID) ketika server berjalan. Disarankan untuk menggunakan user www dan group www, untuk keamanan dari server (dengan menambah entry di file /etc/master.passwd dan /etc/group) Ubah ServerAdmin menjadi nama yang anda inginkan nama@domain.anda. Option ini harus diisi karena menunjukkan e-mail address dari administrator web server ini, sehingga apabila terjadi problem dapat dialamatkan ke alamat di atas. Ubah ServerRoot ke path direktori tempat menaruh file eksekutable dari httpd , file ini apabila dieksekusi akan menjalankan http daemon yang bertugas untuk melayani permintaan dari klien. Direktori ini juga menunjukkan letak file konfigurasi berada.

225

Secara default konfigurasi ini telah menunjuk ke tempat yang benar yaitu di /usr/local/www/httpd Ubah ServerName menjadi www.domain.anda. Nama ini harus sesuai dengan record yang telah ada pada name server dari domain anda. Ubah ServerType sesuai dengan keinginan anda, bisa dijalankan di bawah inetd (baca dalam pembahasan ftp server) atau standalone. Secara default option ini diisi standalone, sebaiknya anda biarkan option ini diisi standalone.

Konfigurasi dari srm.conf


Ubah DocumentRoot ke path direktori tempat anda meletakkan dokumen HTML anda Isi opsi UserDir menjadi enabled apabila anda ingin user pada komputer tersebut dapat mempunyai home page sendiri, user dapat membuat home page pribadi dengan membuat file index.html pada direktori public_html di home direktori user, atau disabled apabila anda tidak ingin kejadian di atas terjadi (home page milik user dapat dipanggil dengan URL http://mesin.anda/~username)

Konfigurasi access.conf
Default dari access.conf adalah :
<Directory /usr/local/www/cgi-bin>

ubah path di atas ke direktori dari cgi-bin anda


Options Indexes FollowSymlinks </Directory)

<Directory /usr/local/www/data>

226

Ubah path di atas ke direktori dari data home page anda


Options Indexes FollowSymlinks AllowOverride All <Limit GET> order allow,deny allow from all </limit> </Directory>

Menjalankan server
Standalone startup Apabila anda ingin menjalankan server secara standalone (server membaca konfigurasi sekali pada waktu dieksekusi dan akan dijalankan terus menerus sampai prosesnya dimatikan) maka anda reboot saja mesin anda. Atau bisa juga anda login sebagai root, lalu ketik perintah sebagai berikut :
% httpd -d /tempat/http/eksekutable/berada

Jika letak dari file tersebut merupakan default-nya (biasanya ada di direktori /usr/local/www/server/conf) cukup menjalankan daemonnya saja dengan :
% /usr/local/sbin/httpd

Inetd startup Edit file /etc/inetd.conf, dengan entry sebagai berikut :


http stream tcp nowait www /tempat/eksekutable httpd

lalu restart inetd dengan mencari nomer process dari inetd dan ketik perintah
% kill -HUP <no_process>

227

Mapping URL to documents Untuk menyimpan file HTML di web server, kita harus mengetahui bagaiamana cara URL di map terhadap document tree dari server kita. Kita lihatURL minimal untuk dapat mencapai web server yang kita miliki :
http://server.anda

Ketika pada URL tidak disertakan path direktori atau nama file, maka web server akan menjawab permintaan tersebut dengan mengirimkan file index.html yang ada pada direktori yang disebutkan di DocumentRoot (file index.html adalah startup file yang akan diberikan ke klien, jadi file ini harus ada sebagai pembuka home page anda), atau apabila file ini tidak ada maka secara otomatis server akan mengirim data yang serupa apabila kita mengetik perintah ls di unix. Apabila pada URL kita sebutkan juga direktori dari data, maka server akan mengartikan path tersebut sebagai berikut : Server akan melihat DocumentRoot pada file srm.conf. Direktori yang anda sebutkan pada URL akan diganti dengan DocumentRoot ditambah direktori yang anda sebutkan, sebagai misal : http://nic.itb.ac.id./resource diartikan menjadi oleh server mengambil data di direktori (bila DocumentRoot di /usr/local/www/data) menjadi /usr/local/www/data/resource. Data yang ada dikirimkan ke klien. Server akan melihat Alias atau ScriptAlias yang disebutkan di srm.conf, misal di srm.conf disebutkan alias
Alias /icons/ /usr/local/www/icons/

maka apabila ada permintaan dengan URL


http://nic.itb.ac.id./icons

direktori icons di atas akan dipindah ke direktori yang disebutkan di alias, alias di atas penting apabila anda ingin membuat banyak direktori yang beberapa tempat di web server. tersebar di

228

Test Web server


untuk mengetes jalannya web server coba telnet ke mesin web server anda port 80
% telnet mesin.anda 80 Trying 167.205.123.1 Connected to mesin.ini Escape Character is ^} HTTP/1.0 200 OK Date: Saturday, 20 Aug 94 20:33 GMT Server: Apache /1.2 MIME-version : 1.0 Content-type : text/html Last Modified : Connection Closed by foreign host

Di atas adalah contoh apabila anda mencoba untuk telnet ke port 80 dari mesin web server anda, tampilan di mesin anda tidak harus sama dengan tampilan di atas. Apabila server anda tidak mau di telnet berarti ada kesalahan konfigurasi.

229

9
Network Security
Pada bab ini akan dibahas secara singkat tentang keamanan jaringan, meliputi: perencanaan security metoda-metoda yang dipakai software-software aplikasi

230

Network Security secara umum


Host/komputer yang terhubung ke network, mempunyai ancaman keamanan lebih besar daripada host yang tidak terhubung kemana-mana. Dengan mengendalikan network security, risiko tersebut dapat dikurangi. Namun network security biasanya bertentangan dengan network access3, yaitu bila network access semakin mudah, maka network security makin rawan, dan bila network security makin baik, network access makin tidak nyaman. Suatu network didesain sebagai komunikasi data highway dengan tujuan meningkatkan akses ke sistem komputer, sementara security didesain untuk mengontrol akses. Penyediaan network security adalah sebagai aksi penyeimbang antara open access dengan security. Disini network dikatakan sebagai highway, karena menyediakan akses yang sama untuk semua, baik pengguna normal ataupun tamu yang tidak diundang. Sebagai analogi, keamanan di rumah dilakukan dengan cara memberi kunci di pintu rumah, tidak dengan cara memblokir jalan di depan rumah. Hal seperti ini juga diterapkan pada network security. Keamanan dijaga untuk (setiap) host-host tertentu, tidak langsung pada networknya. Keamanan untuk daerah dimana orang saling mengenal, pintu biasanya dibiarkan tidak dikunci. Sedangkan di kota besar, pintu rumah biasanya menggunakan kunci-kunci tambahan. Begitu pula yang dilakukan pada network. Untuk jaringan yang menghubungkan host-host yang aman dan dikenal, tingkat keamanan host bisa tidak dijaga terlalu ketat. Bila jaringan terhubung ke jaringan lain yang lebih terbuka, dan membuka peluang akses oleh host yang tidak aman atau tidak dikenal, maka tidak bisa tidak, host-host di jaringan tersebut membutuhkan pengamanan lebih. Ini bukan berarti keterbukaan hanya membawa akibat buruk, sebab banyaknya fasilitas yang ditawarkan dengan keterbukaan jaringan ini merupakan nilai lebih yang sangat membantu kemajuan network. Jadi network security merupakan harga yang harus dibayar dari kemajuan jaringan komputer. Pada bagian ini ditekankan kontrol sederhana yang dapat digunakan untuk meningkatkan network security. Pendekatan yang beralasan kepada security, berdasarkan tingkat keamanan

Network Access : kemudahan dan layanan yang diberikan sistem jaringan komputer kepada user

231

yang diperlukan oleh sistem, adalah yang paling cost effective, baik dalam hal pengeluaran yang diperlukan maupun dalam hal produktifitas yang dihasilkan.

Konsep dalam network security


Perencanaan security
Salah satu problem network security yang paling penting, dan mungkin salah satu yang paling tidak enak, adalah menentukan kebijakan dalam network security. Kebanyakan orang menginginkan solusi teknis untuk setiap masalah, berupa program yang dapat memperbaiki masalah-masalah network security. Padahal, perencanaan keamanan yang matang berdasarkan prosedur dan kebijakan dalam network security akan membantu menentukan apa-apa yang harus dilindungi, berapa besar biaya yang harus ditanamkan dalam melindunginya, dan siapa yang bertanggungjawab untuk menjalankan langkah-langkah yang diperlukan untuk melindungi bagian tersebut. Mengenali ancaman terhadap network security Langkah awal dalam mengembangkan rencana network security yang efektif adalah dengan mengenali ancaman yang mungkin datang. Dalam RFC 12444, Site security Handbook, dibedakan tiga tipe ancaman : Akses tidak sah, oleh orang yang tidak mempunyai wewenang. Kesalahan informasi, segala masalah yang dapat menyebabkan diberikannya informasi yang penting atau sensitif kepada orang yang salah, yang seharusnya tidak boleh mendapatkan informasi tersebut. Penolakan terhadap service, segala masalah mengenai security yang menyebabkan sistem mengganggu pekerjaan-pekerjaan yang produktif.

4RFC

: Request For Comment, definisi-definisi standar yang menjadi dasar

perencanaan dan implementasi dalam networking 232

Disini ditekankan network security dari segi perangkat lunak, namun network security sebenarnya hanyalah sebagian dari rencana keamanan yang lebih besar, termasuk rencana keamanan fisik dan penanggulangan bencana. Kontrol terdistribusi Salah satu pendekatan dalam network security adalah dengan mendistribusikan tanggung jawab kontrol terhadap segmen-segmen dari jaringan yang besar ke grup kecil dalam organisasi. Pendekatan ini melibatkan banyak orang dalam keamanan, dan berjalan berlawanan dengan prinsip kontrol terpusat. Pada prinsipnya, tanggung jawab dan kontrol yang terdistribusi dalam grup-grup kecil menciptakan lingkungan jaringan kecil yang terdiri dari trusted hosts. Meminjam analogi keamanan kota, maka hal ini sesuai dengan sistem keamanan tingkat RT, dimana terjadi kerjasama antar RT untuk menjaga lingkungan yang lebih besar. Jadi keamanan suatu segmen dipercayakan kepada manajer jaringan pada segmen tersebut. Dengan terjaganya keamanan tiap segmen, maka secara keseluruhan keamanan jaringan akan terjaga. Dalam mendistribusikan kontrol network, digunakan berbagai cara. Salah satunya adalah dengan memanfaatkan pembagian subnet5. Di setiap subnet terdapat subnet administrator (admin subnet) yang bertanggungjawab untuk keamanan network dan mempunyai kekuasaan untuk mengalokasikan / menetapkan IP address untuk device yang terhubung pada network. Penetapan IP address memberi admin subnet suatu kontrol terhadap siapa yang terhubung ke subnet. Sewaktu admin subnet menetapkan IP address untuk suatu sistem, dia juga menetapkan tanggungjawab keamanan tertentu ke admin sistem tersebut. Demikian juga, bila admin sistem menetapkan suatu account bagi user, maka ia memberikan tanggungjawab keamanan tertentu kepada user. Hirarki ini mengalir dari admin network, ke admin subnet, admin sistem, dan ke user. Mereka mendapat tanggungjawab, dan juga wewenang untuk menurunkan tanggungjawabnya. Untuk itu, setiap user harus mengetahui tanggungjawabnya. Dalam kontrol terdistribusi, informasi dari luar disaring dahulu oleh admin network, kemudian disaring lagi oleh admin subnet, demikian seterusnya, sehingga user tidak perlu

5subnet

: lihat Bab 3, Konfigurasi Routing 233

menerima terlalu banyak informasi yang tidak berguna. Bila informasi ke user berlebihan, maka user akan mulai mengabaikan semua yang mereka terima. Menentukan security policy6 Dalam network security, peranan manusia yang memegang tanggungjawab keamanan sangat berperan. Network security tidak akan efektif kecuali orang-orangnya mengetahui tanggungjawabnya masing-masing. Dalam menentukan network security policy, perlu ditegaskan apa-apa yang diharapkan, dan dari siapa hal tersebut diharapkan. Selain itu, kebijakan ini harus mencakup : Tanggung jawab keamanan network user, meliputi antara lain keharusan user untuk mengganti passwordnya dalam periode tertentu, dengan aturan tertentu, atau memeriksa kemungkinan terjadinya pengaksesan oleh orang lain, dll. Tanggung jawab keamanan system administrator, misalnya perhitungan keamanan tertentu, memantau prosedur-prosedur yang digunakan pada host. Penggunaan yang benar sumber-sumber network, dengan menentukan siapa yang dapat menggunakan sumber-sumber tersebut, apa yang dapat dan tidak boleh mereka lakukan. Langkah-langkah yang harus diperbuat bila terdeteksi masalah keamanan, siapa yang harus diberitahu. Hal ini harus dijelaskan dengan lengkap, bahkan hal-hal yang sederhana seperti menyuruh user untuk tidak mencoba melakukan apa-apa atau mengatasi sendiri bila masalah terjadi, dan segera memberitahu system administrator.

Metoda-metoda yang digunakan dalam network security


Pembatasan akses pada network Internal password authentification (password pada login system)

Password yang baik menjadi bagian yang paling penting namun sederhana dalam keamanan jaringan. Sebagian besar dari masalah network security disebabkan password yang buruk. Biasanya pembobolan account bisa terjadi hanya dengan menduga-duga passwordnya.

6security

policy : kebijakan yang diambil berkaitan dengan keamanan jaringan

234

Sedangkan bentuk yang lebih canggih lagi adalah dictionary guessing, yang menggunakan program dengan kamus ter-enkripsi, dibandingkan dengan password ter-enkripsi yang ada. Untuk itu, file /etc/passwd harus dilindungi, agar tidak dapat diambil dengan ftp atau tftp (berkaitan dengan file-mode). Bila hal itu bisa terjadi, maka tftp harus dinonaktifkan. Ada juga sistem yang menggunakan shadow password, agar password yang ter-enkripsi tidak dapat dibaca. Sering mengganti password dapat menjadi salah satu cara menghindari pembobolan password. Namun, untuk password yang bagus tidak perlu terlalu sering diganti, karena akan sulit mengingatnya. Sebaiknya password diganti setiap 3-6 bulan. Algoritma enkripsi password tidak dapat ditembus, dalam arti password yang ter-enkripsi tidak dapat didekripsikan. Yang paling mungkin adalah bila kata-kata dalam kamus dienkripsi, dan dibandingkan dengan password ter-enkripsi. Bila password yang digunakan buruk, mudah ditemukan dalam kamus, maka akan mudah terbongkar. Beberapa hal yang sebaiknya diperhatikan dalam memilih password : Jangan memakai nama login. Jangan memakai nama siapapun atau apapun. Jangan memakai kata-kata singkatan. Jangan memakai informasi pribadi yang berhubungan dengan pemilik account. Misalnya, inisial, nomor telepon, jabatan, unit organisasi, dll. Jangan memakai deretan kunci keyboard, seperti qwerty. Jangan memakai semua yang disebut di atas walaupun dibalik urutannya, atau kombinasi huruf besar kecil. Jangan memakai password serba numerik. Jangan memakai contoh password yang ada di buku keamanan jaringan, sebaik apapun password tersebut. Gunakan kombinasi angka dan campuran huruf besar kecil. Gunakan minimal 6 karakter Gunakan pilihan angka dan huruf yang kelihatannya acak. Namun password sebaiknya yang gampang diingat. Hindari password yang sukar diingat, sehingga harus ditulis dahulu untuk mengingatnya. Selain itu, password jangan terlalu panjang. Ada juga software yang dapat menjaga agar user mematuhi peraturan-peraturan 235

yang dibuat. Sehingga dalam memasukan password, user dipaksa untuk memasukkan password yang unik, dan sesuai dengan peraturan-peraturan tertentu. server-based password authentification

Termasuk dalam metoda ini misalnya sistem Kerberos server, TCP-wrapper, dimana setiap service yang disediakan oleh server tertentu dibatasi dengan suatu daftar host dan user yang boleh dan tidak boleh menggunakan service tersebut.

TGS DB Auth Svr WorkStation Server

User Kerberos System TGS : Ticket Granting Server Auth Svr : Authentification Server DB : Data Base system

Kerberos server diimplementasikan pada setiap service, dan dimulai ketika seorang user melakukan login pada suatu sistem. Pada prinsipnya, saat seorang user melakukan login, maka program login akan menghubungi Kerberos system untuk mendapatkan ticket untuk akses pada sistem yang disediakan. User sendiri tidak merasakan perbedaan (tidak perlu memberikan password tambahan). Bila user akan menggunakan service-service pada server lainnya, maka sistem dimana user tersebut login akan kembali menghubungi Kerberos system untuk mendapatkan ticket baru untuk service pada server tersebut. Dengan cara ini, dapat dihindari penyusupan melalui methoda protocol spoofing, dimana user dari sistem lain yang berusaha menggunakan service-service yang dilindungi pada sistem tersebut, tidak akan melalui Kerberos system lebih dahulu, sehingga permintaan servicenya akan ditolak oleh server. Disini setiap server (penyedia service) hanya akan melayani permintaan yang disertai ticket dari Kerberos. Tentu saja Kerberos system ini tidak berpengaruh bila si penyusup sudah berhasil memasuki salah satu local account.

236

User

Telnet Client

INETD

User

Telnet Client

TCP-Wrapper

Log-File

User

Telnet Client

Telnet Server

Login

TCP-wrapper adalah sistem yang menggunakan metoda access control dimana akses terhadap suatu service ke server dibelokkan, dilakukan pengecekan terlebih dahulu asal dari permintaan service tersebut, bila ada dalam daftar yang diperbolehkan, maka diteruskan ke server yang sebenarnya. server-based token authentification

Metoda ini menggunakan authentification system yang lebih ketat, yaitu dengan penggunaan token / smart card, sehingga untuk akses tertentu hanya bisa dilakukan oleh login tertentu dengan menggunakan token khusus. Firewall dan Routing Control

Komputer dengan firewall menyediakan kontrol akses ketat antara sistem dengan sistem lain. Konsepnya, firewall mengganti IP router dengan sistem host multi-home, sehingga IP forwarding7 tidak terjadi antara sistem dengan sistem lain yang dihubungkan melalui firewall tsb. Agar jaringan internal dapat berhubungan dengan jaringan diluarnya dalam tingkat konektifitas tertentu, firewall menyediakan fingsi-fungsi tertentu.

7IP

Forwarding : lihat Configuring routing. 237

Firewall

Router

Firewall mencegah paket IP diteruskan melalui layer IP. Namun, seperti host multi-home, firewall menerima paket dan memprosesnya melalui layer aplikasi. Sebetulnya ada juga router yang mempunyai fasilitas keamanan khusus seperti firewall, dan biasanya disebut secure router atau secure gateway. Namun firewall bukan router, karena tidak meneruskan (forwarding) paket IP. Firewall sebaiknya tidak digunakan untuk memisahkan seluruh jaringan internal dari jaringan luar. Firewall dapat dipakai untuk memisahkan beberapa bagian dari jaringan internal yang sensitif terhadap jaringan non sensitif dan jaringan luar, sedangkan antara jaringan non sensitif dengan jaringan luar digunakan router. Firewall seperti ini disebut firewall internal. Memisahkan sistem bagian yang sensitif dengan yang non sensitif biasanya sulit, sehingga umumnya digunakan firewall external, atau kombinasi keduanya. Namun bila bagian yang sensitif dapat dipisahkan, dan digunakan firewall internal, maka akan lebih baik, sebab tidak seluruh jaringan terisolasi dari jaringan luar.
ExternalNet

InternalNet

ExternalNet

router

InternalNet Nonsensitive

InternalNet Sensitive

Dengan adanya firewall, semua paket ke sistem di belakang firewall dari jaringan luar tidak dapat dilakukan langsung. Semua hubungan harus dilakukan dengan mesin firewall. Karena 238

itu sistem keamanan di mesin firewall harus sangat ketat. Dengan demikian lebih mudah untuk membuat sistem keamanan yang sangat ketat untuk satu mesin firewall, daripada harus membuat sistem keamanan yang ketat untuk semua mesin di jaringan lokal (internal). Kerugiannya, host lokal tidak dapat mengakses jaringan luar. Untuk itu, firewall harus menyediakan beberapa fungsi yang tidak ada di router : DNS, name service untuk dunia luar. Name service untuk host lokal ditangani sistem internal. Firewall menyediakan name service terbatas untuk jaringan luar. Name server ini tidak menyediakan nama atau informasi tentang host lokal. E-mail forwarding. Pada sistem firewall, sendmail dikonfigurasi untuk meneruskan mail ke tiap user pada semua sistem internal. Setiap user dikenali melalui alias. Mail keluar direwrite sehingga user internal seakan-akan ada pada sistem firewall. Nama login dengan nama host internal tidak dikenal dari luar. Service ftp. Semua transfer dengan ftp harus melalui firewall. Jadi dari luar hanya bisa ftp ke sistem firewall. Anonymous ftp hanya ada di firewall. Dari dalam, untuk ftp keluar, harus login dahulu ke firewall, baru bisa ftp keluar. Telnet atau rlogin. Untuk bisa telnet atau rlogin dari atau keluar, maka harus rlogin atau telnet dahulu ke firewall. Hanya fasilitas tersebut diatas saja yang disediakan oleh firewall. Fasilitas lainnya, seperti NIS, NFS, rsh, rcp, finger dll tidak boleh ada pada firewall. Pada sistem firewall, keamanan lebih penting daripada fasilitas. Sistem firewall bekerja dengan cara menginterupsi proses routing antara sistem yang dilindungi dengan sistem luar. Jadi menggunakan metoda control routing. Dengan routing table statis hal ini dapat dilakukan. Dalam routing table, ditentukan network mana saja yang dapat berkomunikasi, dan lewat mana hubungan dilakukan. Jadi routing table-nya tidak mempunyai default route, dan hanya mempunyai routing untuk host luar tertentu saja, selain routing lokal. Misalnya, beberapa host ee.itb.ac.id pada subnet 167.205.8.64 (4 bit untuk host address) dengan routernya 167.205.8.80, dilindungi dengan sistem routing control seperti firewall, untuk subnet tersebut. Host-host tersebut hanya berhubungan dengan host lokal, dan host luar tertentu, yaitu dns.paume.itb.ac.id pada 239

address 167.205.22.120 dan maingtw.paume.itb.ac.id pada 167.205.31.131. Maka routing table pada host hampton.ee.itb.ac.id dengan address 167.205.8.79 sebagai berikut :

Destination Gateway Interface 127.0.0.1 127.0.0.1 lo0 167.205.8.64 167.205.8.79 ed0 167.205.22.120 167.205.8.80 ed0 167.205.31.131 167.205.8.80 ed0

Disini tidak ada default route. Selain itu tidak boleh ada program dynamic routing protocol yang sedang dijalankan atau yang dijalankan sewaktu startup sistem. Default routing pun tidak boleh didefinisikan saat startup. Yang ada hanya route static tertentu saja yang didefinisikan saat startup. Cara seperti ini tingkat keamanannya tidak sekeras firewall, tidak membutuhkan programprogram khusus. Namun konfigurasi sistem harus dilakukan pada semua host pada sistem tersebut, sedangkan pada firewall, konfigurasi sistem cukup dilakukan pada mesin firewall saja. Namun cara di atas dapat menjadi alternatif yang mungkin dilakukan. Metoda enkripsi Salah satu cara pembatasan akses adalah dengan enkripsi. Proses enkripsi meng-encode data dalam bentuk yang hanya dapat dibaca oleh sistem yang mempunyai kunci untuk membaca data. Proses enkripsi dapat dengan menggunakan software atau hardware. Hasil enkripsi disebut cipher. Cipher kemudian didekripsi dengan device dan kunci yang sama tipenya (sama hardware/softwarenya, sama kuncinya). Dalam jaringan, sistem enkripsi harus sama antara dua host yang berkomunikasi. Jadi diperlukan kontrol terhadap kedua sistem yang berkomunikasi. Biasanya enkripsi digunakan untuk suatu sistem yang seluruhnya dikontrol oleh satu otoritas. Beberapa alasan penggunaan enkripsi : 240 mencegah orang yang tidak berwenang melihat data-data sensitif mengurangi kemungkinan terbukanya data rahasia tanpa sengaja mencegah orang-orang yang mempunyai akses istimewa (mis: sistem admin) agar tidak dapat melihat data pribadi untuk mempersulit usaha intruder memasuki sistem

Metoda enkripsi bukan solusi terbaik keamanan jaringan, karena ada enkripsi yang bisa menyebabkan hilangnya data. Selain itu, enkripsi juga masih bisa dipecahkan. Pada sistem unix, biasanya digunakan standar enkripsi crypt dan/atau des. Data encryption standard, des, teknik enkripsi modern yang dibentuk tahun 70-an. Sedangkan crypt berdasar dari teknik enkripsi mesin Enigma Jerman (perang dunia dua). Dari keduanya, des lebih bagus. Program crypt dan des membaca data dari standar input, menghasilkan keluaran di standar output, membutuhkan kunci untuk enkripsi. Kunci ini , seperti password harus sukar untuk diduga, namun mudah untuk diingat. Hal-hal untuk password berlaku juga untuk kunci ini. Penggunaan des dan crypt ini dapat dilihat dari manual perintah tersebut pada sistem. Bila file yang di-enkripsi adalah file teks, maka kemungkinan file tersebut dapat di-dekripsi oleh program pemecah enkripsi lebih besar, dibanding bila file data yang di-enkripsi tersebut adalah file binary. Karena itu sebaiknya file-file data penting yang akan di-enkripsi sebaiknya digabungkan dahulu dengan program tar, lalu di-compress atau dengan program gzip. Hasilnya baru di-enkripsi. Metoda enkripsi dalam pengiriman data yang dapat dilakukan ada bermacam-macam, antara lain : Data Encryption Standard, des Diperlukan satu kunci untuk meng-encode dan men-decode data.

RSA Public/Private key concept Pengirim data memerlukan satu Public key untuk meng-encode data, si penerima data akan men-decode data dengan satu kunci khusus Private key yang hanya dimiliki olehnya saja. Sistem ini lebih baik keamanannya daripada des, namun kurang cepat. Misal : PGP

241

Digital Envelope Merupakan gabungan des dengan Public/Private key concept. Data dikirimkan dengan ter-enkripsi des, dengan kunci tertentu. Kunci des tersebut kemudian dienkripsi dengan Public key milik si penerima, dan digabungkan dengan data yang sudah ter-enkripsi. Penerima data akan membuka kunci des yang ter-enkripsi dengan Private key yang dimilikinya. Lalu kunci des yang dihasilkan digunakan untuk membuka data. Disini digunakan des sebagai enkriptor data, karena kecepatannya yang lebih baik dibandingkan penggunaan Public/Private key. Sedangkan keamanannya terjamin oleh penggunaan Public/Private key terhadap kunci des yang dipakai.

Public/Private key concept

Digital Envelope

Digital Signature

Compare

242

Digital Signature

Digunakan untuk data yang terbuka untuk umum (public accessible) namun dijaga kebenarannya (seperti penggunaan checksum pada sistem kompresi file, sistem transmisi data). Untuk itu pada data tersebut ditambahkan signature. Signature ini dibuat dari data yang akan dikirimkan, yang diproses dengan algoritme tertentu (hashing algorithm) menjadi message digest, lalu message digest tersebut di-encode dengan Private key si pengirim, menjadi digital signature untuk data tersebut. Si penerima dapat memastikan kebenaran (authentification) data yang dikirimkan dengan men-decode digital signature menjadi message digest dengan menggunakan Public key, lalu membandingkannya dengan message digest yang dibuat dari data yang diproses dengan algoritme tertentu (dalam hal ini hashing algorithm).

Security Monitoring
Beberapa aplikasi memakai mekanisme keamanan tersendiri. Aplikasi-aplikasi ini harus dikonfigurasikan dengan benar. Misalnya : Perintah remote pada unix; konfigurasi pada /etc/hosts.equiv, /etc/hosts.lpd dan ~/.rhosts harus benar. Sendmail; alias uudecode dan decode sebaiknya dihapus dari /etc/aliases bila tidak digunakan. NFS; pada NFS server, file /etc/exports yang mengatur akses ke filesystem sebaiknya membatasi akses dari remotesystem ke filesystem. Hindari pemberian akses root kepada remotesystem. User root dapat login dari setiap secure terminal. Secure terminal ini didefinisikan di dalam file /etc/ttys atau /etc/ttytab. Contoh :
# ttys console /usr/etc/getty std.9600 pc on local secure ttya /usr/etc/getty std.9600 unknown on local secure ttyb /usr/etc/getty std.9600 unknown on local secure ttyc /usr/etc/getty std.9600 unknown on local secure ttyd /usr/etc/getty std.9600 unknown on local secure

243

Keyword secure menunjukkan root dapat login dari semua terminal. Untuk amannya, sebaiknya hanya console saja yang mempunyai keyword secure. Atau semua terminal tidak mengandung keyword secure, sehingga login root tidak dapat diakses langsung. Login root hanya bisa diakses melalui login user yang mempunyai akses su (superuser). Setiap software yang mengijinkan hubungan yang datang dari remote site, mempunyai kemungkinan untuk digunakan secara tidak benar (adanya intruder). Karena itu programprogram systat, tftp, dan link sebaiknya dihapus dari file /etc/inetd.conf kecuali bila memang memerlukannya. Pembatasan ekstrim : perintah remote unix, finger daemon, ftp, telnet juga di-disable. Untuk site tertentu, hal ini tidak perlu dan tidak produktif. Biasanya software terbaru dari vendor memiliki perbaikan, juga dalam hal security. Software yang perlu di-update :
sendmail fingerd ftpd

Cara mudahnya, dapat dilihat dari tanggal file. Bila sudah terlalu lama, maka perlu diganti dengan yang baru. Bila tanggalnya masih baru, belum tentu sudah menggunakan yang terbaru. Lebih baik lagi bila menghubungi vendornya untuk mendapatkan keterangan yang diperlukan. Salah satu elemen penting dari keamanan jaringan adalah pemantauannya. Dengan adanya pemantauan yang teratur, maka penggunaan sistem oleh yang tidak berhak dapat dihindari. Selain itu, seiring dengan waktu, maka sistem pun berubah. Keamanan jaringan dapat terpengaruh oleh adanya perubahan ini. Hal ini dapat dideteksi dengan adanya pemantauan. Untuk mendeteksi aktifitas yang tidak normal, maka perlu diketahui aktifitas yang normal. Proses apa saja yang berjalan pada saat aktifitas normal. Siapa saja yang biasanya login pada saat tersebut. Siapa saja yang biasanya login diluar jam kerja. Dan hal-hal lainnya. Hal ini dapat diamati dengan perintah ls, who, ps. Perlu juga dibuat pengecekan file periodik, perubahan apa saja yang sudah terjadi, dan apakah masih dapat diterima. Bila terjadi keganjilan, maka perlu segera diperiksa. Intruder biasanya meninggalkan file-file atau shell-script untuk membantu mereka masuk kembali ke sistem. Periksa file-file dengan nama yang diawali dengan dot (.) seperti .mail, .xx, 244

... (dot, dot, dot), ..

(dot, dot, spasi), ..^G (dot, dot, control-G), dll. Bila ada yang

mencurigakan, maka harus segera diperiksa lebih lanjut. Selain itu perlu juga diperiksa file-file :
/etc/inetd.conf,

periksa program-program yang dijalankan dari file ini, pastikan

tidak ada program shell yang dijalankan dari sini. Periksa juga program-programnya, apakah ada yang dimodifikasi. File /etc/inetd.conf ini seharusnya tidak boleh dapat ditulis (write permission) oleh user lain. file-file untuk perintah remote unix, seperti /etc/hosts.equiv, /etc/hosts.lpd
~/.rhosts

harus diperiksa untuk memastikan tidak terjadi perubahan yang

mencurigakan. Terutama entry tanda plus (+), dan entry host yang tidak berada dalam trusted network. File-file ini seharusnya tidak boleh dapat ditulis oleh user lain.
/etc/passwd,

pastikan file ini tidak baru saja dimodifikasi. Perhatikan user-user

baru, perubahan UID dan GID tiap account. File ini seharusnya tidak boleh dapat ditulis oleh user lain (Kecuali bila ada yang baru mengganti password). file-file yang dijalankan oleh cron atau at, periksa dan cari file baru atau perubahan yang tidak jelas. file executable, file binary, shell script, harus diperiksa terhadap kemungkinan perubahan oleh intruder. Master checklist akan sangat membantu pemeriksaan ini. File-file ini seharusnya tidak boleh dapat ditulis oleh user lain. Bila hal-hal yang mencurigakan terjadi, maka perlu dijaga kemungkinan adanya intruder. Perlu juga memberitahu orang-orang yang biasa menggunakan sistem untuk berhati-hati, supaya masalah tidak menyebar ke sistem lain. Dengan perintah find, dapat dicari file dengan ketentuan keamanan tertentu, terutama file berupa program dengan setuid. Misal :
find / -user root -perm -4000 -print

akan mencari file mulai dari root directory (/), file yang dimiliki oleh root yang mempunyai bit setuid, dan menampilkannya. Periksa file-file seperti ini. Umumnya (sebaiknya) shell script tidak mempunyai bit setuid. Hal-hal lain yang mungkin menimbulkan masalah adalah file dengan akses dapat ditulis oleh siapa saja (-perm -2), setgid file (-perm -2000), dan file 245

tanpa pemilik (-nouser -o -nogroup). File yang dimiliki oleh bukan valid user harus dihapus. File yang dapat bebas ditulisi oleh siapa saja, dan file dengan bit setgid, harus diperiksa kebenarannya. Umumnya file dengan nama berawalan dot (.) hanya dapat ditulis oleh pemilik file saja, tidak boleh dapat ditulisi oleh umum, dan file shell script tidak boleh mempunyai bit setgid. Aktifitas login yang aneh, pada waktu yang tidak biasa dari lokasi yang tidak dikenal, dapat mengindikasikan usaha masuknya intruder ke sistem. Selain perintah who, untuk menampilkan siapa saja yang sedang login saat itu, ada juga perintah last, untuk menampilkan siapa saja yang sudah pernah login. Perintah ini menampilkan isi file /var/log/wtmp (FreeBSD 1.0e). Isinya menunjukkan siapa yang login ke sistem, terminal yang digunakan, dari lokasi (address) mana, dan kapan (hari, tanggal, jam) mereka login, kapan (jam) mereka logout, dan waktu login. Selain file ini, /var/log/messages (FreeBSD 1.0e) menunjukkan standar error yang pernah terjadi, sehingga dapat digunakan untuk mengamati login ke root, login gagal (fail), penggunaan su, dll.

COPS
Computer Oracle Password and Security adalah kumpulan program yang mengotomatisasi banyak prosedur pemantauan komputer. COPS hanya mendeteksi masalah potensial yang mungkin terjadi, tidak melakukan penyelesaian. COPS hanya membantu mempermudah pemantauan sistem admin. Fasilitas dalam COPS memeriksa :

bit permission file, direktori, dan device isi dari /etc/passwd dan /etc/group isi dari /etc/hosts.equiv dan ~/.rhosts perubahan dalam status SUID

Setelah pemeriksaan dilakukan, COPS mengirimkan mail report hasil pemeriksaan ke sistem admin. Kelebihan dari COPS adalah kesederhanaannya. Dengan menjalankan COPS pada setiap periode tertentu, maka pemantauan keamanan jaringan dapat dilakukan relatif lebih mudah. 246

Software aplikasi dalam network security


Firewall
Sistem Firewall biasanya merupakan trademark software, sehingga instalasi dan konfigurasinya tergantung kepada Firewall yang digunakan. Contoh Firewall : Aimnet Firewall, BorderWare (JANUS) Firewall, dll.

Kontrol akses
Cara lain yang tidak seketat firewall adalah dengan kontrol akses. Router dan host-host yang menggunakan kontrol akses akan memeriksa setiap address dari remote host yang meminta service dengan access control list. Jika address itu ada pada list, maka service-request akan dilayani. Kontrol akses tidak mem-bypass security check normal, tetapi menambahkan pemeriksaan (validasi) dari service-request host. Kontrol akses ini biasa digunakan pada terminal server, dan ada juga pada router. Salah satu contoh program kontrol akses adalah program wrapper. Program wrapper ini merupakan Free-software, dan dapat diambil dari anonymous ftp sites yang berhubungan dengan security. Program wrapper ini melakukan dua fungsi dasar, mencatat request untuk service internet, dan menyediakan mekanisme kontrol akses untuk sistem unix. Program daemonnya adalah tcpd. Program ini dijalankan melalui /etc/inetd.conf pada tiap network service yang akan dilindungi dengan wrapper. Misal, pada file inetd.conf terdapat baris sbb:

finger stream tcp nowait nobody

/usr/etc/in.fingerd in.fingerd

Bila wrapper akan dipasang pada fingerd, maka barisnya diubah menjadi :
finger stream tcp nowait nobody /usr/etc/tcpd in.fingerd

Saat inetd menerima permintaan untuk fingerd, maka tcpd akan dijalankan, lalu tcpd akan mencatat request fingerd, memeriksa informasi kontrol akses, dan jika diijinkan, akan menjalankan finger. 247

Program wrapper ini hanya dapat dipasang pada service yang dijalankan dari inetd seperti ftpd, tftpd, telnetd, rshd, rlogind, rexecd, dan fingerd. Jadi tidak dapat dipasang pada program daemon lain seperti sendmail dan NFS. File yang digunakan tcpd untuk mengontrol akses adalah /etc/hosts.allow dan /etc/hosts.deny, yang berisi daftar host yang diperbolehkan untuk mengakses network service dan daftar host yang dilarang. Program tcpd akan memeriksa host.allow dahulu, bila ada dalam daftar, akan langsung berhenti, dan melayani service request. Bila tidak ada dalam daftar, akan memeriksa file hosts.deny. Bila host tersebut ada dalam daftar kedua, maka request untuk service tersebut akan ditolak, dan bila tidak ada dalam daftar , semua servicerequest darinya akan ditolak. Selain itu tcpd bisa juga dijadikan program yang hanya memonitor, tanpa memberi perlindungan, bila kedua file tidak ada. Format untuk kedua file diatas :
service-list : host-list [:shell-command]

Service-list adalah daftar network service yang diterima atau ditolak tcpd melalui inetd.conf, dipisahkan oleh koma. Service ini dikenali sebagai proses yang dipakai di field ke tujuh pada entry inetd.conf. Pada contoh finger diatas, nama servicenya menjadi in.fingerd. Host-list adalah daftar nama host, nama domain, internet address, network number, atau netgroup, yang diterima atau ditolak untuk service pada service list. Khusus untuk domain name, harus diawali dengan dot. Misalnya, domain paume.itb.ac.id, ditulis .paume.itb.ac.id, yang berarti semua host pada domain tersebut. Untuk network number, sesuai dengan IP address dalam address space. Misalnya, 167.205.8 berarti semua host, dengan IP number 167.205.8.1, 167.205.8.2 dst.

Contoh untuk host.allow :


ftpd, rlogind : .paume.itb.ac.id, .ee.itb.ac.id ALL : LOCAL

248

Disini dapat digunakan dua keyword, yaitu ALL dan LOCAL. Keyword ALL dapat digunakan pada service-list maupun host-list, sedangkan keyword LOCAL hanya bisa dipakai pada host-list. Definisi lokal pada tcpd, bila pada hostname tidak ada dot. Field ketiga (optional) adalah shell-command. Jika host ada dalam daftar, dan sesuai dengan entry tertentu yang mengandung field shell-command, maka tcpd mencatat akses, memberi atau menolak request, dan mengeksekusi shell-command. Perlu diingat, bahwa tcpd hanya berpengaruh pada service yang dijalankan dari inetd.conf, dan hanya pada service yang memanggil tcpd lebih dahulu.

COPS
COPS dapat diimplementasikan pada banyak sistem unix. Untuk sistem non-BSD atau sistem lain yang tidak standar, perlu direkonfigurasi dengan program reconfig, untuk merubah pathname untuk program-program yang diperlukan sewaktu memanggil COPS. Ada juga versi perl scrypt, yang biasanya tergantung versi perl yang digunakan. Untuk running COPS pertama kali, perlu meng-compile (make) program yang menggunakan bahasa C. Disini biasanya ditemui masalah yang berhubungan dengan portabilitas. Biasanya si pembuat program memberitahukan beberapa kemungkinan tidak-kompatibelnya program dengan sistem tertentu, namun tidak semua menyediakan hal tersebut. Disini diperlukan pengalaman dan pengetahuan admin dalam sistem yang digunakannya. Selain itu perlu membaca dokumentasi dari program yang akan di-install.

249

10
Troubleshooting TCP/IP
Kunci troubleshooting adalah mengetahui apa permasalahannya. Untuk dapat melakukan troubleshooting dengan efektif, dibutuhkan pendekatan ke permasalahan secara metodologis dan pemahaman mendasar tentang bagaimana jaringan bekerja. Untuk itu, pada bab ini akan dibahas cara-cara praktis melakukan troubleshooting pada jaringan aktif.

250

Memahami Permasalahan
Untuk dapat mengetahui permasalahan dengan tepat, diperlukan pemahaman dasar tentang TCP/IP, seperti diuraikan pada bab-bab awal buku ini. Terutama bagaimana TCP/IP melewatkan data melalui jaringan, antar tiap-tiap host, dan antar lapisan protokol. Sementara, pengetahuan tentang protokol sendiri tidak banyak diperlukan Informasi lain yang harus diketahui setelah memeriksa sistem (baca:komputer) yang dipakai user dan sistem yang lain adalah: Apakah masalah timbul pada satu atau lebih aplikasi dalam sistem? Jika satu aplikasi maka kemungkinan terjadi kesalahan konfigurasi pada local host atau tidak diaktifkannya aplikasi tersebut pada remote host. Apakah terjadi pada satu, semua, atau beberapa remote host? jika pada satu remote host, maka problem terletak di host tersebut. jika pada semua remote host, maka kesalahan terletak pada komputer user. jika pada subnet atau jaringan eksternal tertentu, maka masalah berhubungan dengan tabel routing. Apakah masalah terjadi pada system lokal lain dalam subnet yang sama? jika hanya terjadi pada local system (user host), maka konsentrasikan pemeriksaan di sistem ini. jika terjadi pada seluruh sistem dalam subnet yang sama, maka konsentrasikan pemeriksaan pada router untuk subnet tersebut.

Beberapa Petunjuk dalam Troubleshooting


Dekati permasalahan dengan metodologi yang benar. Simpan catatan dari test-test yang telah Anda selesaikan berikut hasilnya. Jangan berasumsi terlalu banyak tentang penyebab timbulnya masalah. 251

Perhatikan pesan kesalahan. Jangan terlalu tergantung pada laporan permasalahan dari user, tetapi alami sendiri permasalahan tersebut dengan mencoba mengulangnya. Kebanyakan masalah disebabkan oleh faktor manusia. Jelaskan pemecahan masalahnya kepada user agar bisa menyelesaikan sendiri. Jangan berspekulasi dengan penyebab timbulnya masalah ketika berbicara dengan user. Sebab dapat mengurangi kepercayaan mereka terhadap keandalan jaringan. Jangan mengabaikan hal-hal kecil. Periksa konektor, kabel, dan switch.

Diagnostic Tools
Banyak peralatan untuk mendiagnosa permasalahan mulai dari yang komersial berupa hardware dan software yang mahal sampai software gratis yang tersedia di internet. Beberpa juga telah built-in dalam sistem UNIX. Berikut ini tools yang telah tersedia dalam UNIX yang akan kita pakai untuk troubleshooting: ifconfig deskripsi : memberi informasi tentang konfigurasi dasar interface. fungsi : mengetahui IP address, masking subnet, dan alamat broadcast yang salah arp deskripsi : menyediakan informasi tentang translasi ethernet addr ke IP address fungsi : untuk mendeteksi system pada jaringan lokal yang dikon

figurasi dengan IP address yang salah.

252

netstat deskripsi : menampilkan statistik tentang interface tiap jaringan, socket jaringan, dan routing table secara detail. ping deskripsi : menampilkan statistik paket loss dan waktu delivery fungsi nslookup deskripsi : merupakan tool untuk mengetahui name server dan informasi lain yang tersimpan dalam Domain Name Service. fungsi : untuk mengetahui name server dan nama host yang benar. dig deskripsi : seperti nslookup, tetapi tidak interaktif. traceroute deskripsi : menampilkan route yang dilalui paket dari system lokal ke remote host fungsi : mengetahui lokasi gateway yang bermasalah ketika menghubugi sebuah remote host. : untuk mengetahui apakah remote host dapat dicapai

Memeriksa Sambungan
Perintah ping pada umumnya dilakukan pertama kali untuk menguji apakah remote host dapat dicapai dari komputer anda atau tidak. Ketika perintah ini dijalankan, paket akan dikirimkan dari lokal host ke remote host. Kemudian remote host akan memberikan respon dengan mengirim paket ke local host. Dapat kita ketahui waktu yang ditempuh bolak-balik (rtt, round trip time). 253

Ada dua kemungkinan kesalahan yang dapat diketahui setelah menjalankan perintah ini: jika paket dapat dikirimkan ke remote host dan mendapat respon, maka kemungkinan kesalahan terjadi di lapisan atas (aplikasi). jika paket tidak dapat membuat round-trip, kemungkinan di lapisan bawah (fisik,konfigurasi) terjadi kesalahan. Ada kasus yaitu biasanya user mengeluh tidak bisa melakukan telnet atau ftp ke remote host. Perintah ping sangat berguna di sini untuk menguji apakah host user memiliki sambungan ke remote host. Jika ping dengan host lain berhasil dan dengan host user juga berhasil, maka kemungkinan remote host tidak menyediakan fasilitas telnet atau ftp. Atau mungkin remote host sedang off ketika user mencoba aplikasi ini. Minta supaya user mencoba lagi. Jika ping dari host anda berhasil dan ping dari host user gagal, maka pusatkan pengujian pada host user. Kemungkinan routing dari user ke remote host salah. Bandingkan dengan konfigurasi host anda. Jika semua usaha ping gagal, perhatikan pesan kesalahan yang muncul. Ada beberapa tipe dasar kesalahan: unknown host Nama remote host tidak dapat diterjemahkan ke dalam IP address. Kemungkinan kesalahan pada server nama baik server lokal anda ataupun remote server. Coba ping langsung dengan memakai nomor IP address. Jika berhasil, maka problem terletak pada name service. Gunakan nslookup untuk menguji server lokal maupun remote dan untuk mengetahui kebenaran nama service yang diberikan user. Jika ping gagal, kemungkinan pada jaringan antara host anda dengan remote server terdapat problem.

254

network unreachable Ini adalah masalah konfigurasi routing, dimana local host tidak memiliki route ke remote host. Jika ping dengan IP address sudah dilakukan, ulangi ping dengan nama host, barangkali IP yang diberikan salah. Gunakan netstat untuk mengecek tabel routing. Jalankan ripquery untuk mengecek isi RIP yang telah diperbaharui. Jika rute ke remote host tidak ada di tebel dan memakai rute default statik, maka perbaharui tabel tersebut dengan menambahkan rute ke remote host. Ini seharusnya sudah membuat sambungan. Jika masih belum, cek default gateway untuk routing.

no answer Sebenarnya local host sudah memiliki rute ke remote host, tetapi remote host tidak memberi respon. ping menampilkan pesan "100% packet loss". Pesan lain yang serupa, misalnya pada telnet "Connection time out" dan pada sendmail "cannot connect". Problem biasanya terletak pada lapisan bawah. Beberapa penyebab antara lain: remote host sedang down konfigurasi pada local host atau remote salah gateway atau rangkaian antara local host dan remote host sedang down terjadi masalah dengan routing pada remote host.

Periksa konfugurasi lokal dengan netstat dan ifconfig. Periksa rute ke remote host dengan traceroute. Kalau ada masalah dengan remote host, tidak ada jalan lain kecuali memberitahu administratornya.

255

Perintah Ping
Format perintah ini: ping host [packetsize] [count] host packetsize nama atau IP address remote host ukuran paket test dalam byte, diperlukan jika menyertakan count,

dengan harga default 56 byte. count banyaknya paket yang harus dikirim selama test. Jika tidak diberikan, ping

akan mengirim paket terus-menerus sampai ditekan tombol interup (control-C). Contoh:
maingtw # ping -s 56 -c 3 www.ee.itb.ac.id PING www.ee.itb.ac.id (167.205.31.135): 56 data bytes 64 bytes from 167.205.31.135: icmp_seq=0 ttl=255 time=1.912 ms 64 bytes from 167.205.31.135: icmp_seq=1 ttl=255 time=8.726 ms 64 bytes from 167.205.31.135: icmp_seq=2 ttl=255 time=1.767 ms --- www.ee.itb.ac.id ping statistics --3 packets transmitted, 3 packets received, 0% packet loss round-trip min/avg/max = 1.767/4.135/8.726 ms

icmp_seq time

= nomor urut paket yang diterima = waktu yang dibutuhkan bolak-balik dari lokal host ke remote host.

Pilihan -s diikuti oleh jumlah data (byte) yang dikirim dan -c diikuti oleh jumlah paket. Jika pilihan ini tidak disertakan, maka ping akan mengirim paket terus-menerus sampai Anda menekan tombol control-C (^C). Contoh diatas dibuat di mesin maingtw (maingtw.paume.itb.ac.id). Mesin ini menggunakan sistem operasi Free-BSD 2.00-RELEASE. Sedangkan mesin dns.paume.itb.ac.id yang juga digunakan berikut ini, menggunakan sistem operasi HP-UX versi lama.

256

Jika paket yang hilang tinggi, waktu responnya sangat lambat, atau paket yang kembali melebihi yang seharusnya, maka kemungkinan terdapat problem pada hardware jaringan. Jika ini terjadi pada WAN, tidak terlalu masalah. Tapi jika terjadi pada LAN Anda, maka ini indikasi adanya masalah. Pada LAN, round-trip time harus mendekati nol, tidak ada paket yang hilang, dan paket yang kembali jumlahnya seperti yang diharapkan. Jika tidak, curigai adanya masalah pada hardware jaringan. Rata-rata round-trip time pada contoh diatas adalah 4.135 mili detik. Biasanya masalah timbul pada kabel terminator yang tidak sempurna, kabel segmen yang jelek, pemasangan ethernet card yang tidak sempurna, dan pada sambungan repeater atau transceiver.

Troubleshooting pada Lapisan Network Access


"no answer" dan "cannot connect" merupakan indikasi adanya problem pada layer bawah dari protokol jaringan. Pengujian dipusatkan pada tabel routing dan interface jaringan. Perintah-perintah yang akan sering dipakai adalah: ifconfig, netstat dan arp.

Troubleshooting dengan perintah ifconfig


Perintah ini untuk memeriksa konfigurasi interface jaringan, terutama jika konfigurasi host user sudah terpasang dan tidak dapat mencapai remote host, sementara host lain dalam jaringan lokal yang sama bisa mencapainya. Contoh:
maingtw # ifconfig ed0 ed0: flags=8863<UP,BROADCAST,NOTRAILERS,RUNNING,SIMPLEX,MULTICAST> mtu 1500 inet 167.205.22.123 netmask 0xffffffe0 broadcast 167.205.22.127

maingtw # ifconfig ed1

257

ed1: flags=8863<UP,BROADCAST,NOTRAILERS,RUNNING,SIMPLEX,MULTICAST> mtu 1500 inet 167.205.31.131 netmask 0xffffffe0 broadcast 167.205.31.159 maingtw # ifconfig lo0 lo0: flags=8009<UP,LOOPBACK,MULTICAST> mtu 65532 inet 127.0.0.1 netmask 0xff000000

Baris pertama berisi nama interface dan karakteristiknya: UP Interface bisa dipakai. Kondisi lain adalah "DOWN". Jika interface "DOWN", minta superuser untuk mengaktifkannya dengan perintah, misalnya, ifconfig ed0 up. Jika masih belum bisa, chek kabel dan hardware interfacenya. Dan coba lagi. RUNNING Interface sedang operasional. Jika tidak "running" kemungkinan driver interfacenya tidak cocok. Baris kedua menampilkan IP address, subnet mask (dalam hexa-desimal), dan alamat broadcast. Chek ketiganya dengan teliti. Dua kesalahan yang sering muncul adalah kesalahan konfigurasi subnet mask dan IP address. Subnet mask yang jelek dapat kita ketahui ketika sebuah host dapat mencapai host lain dalam subnet lokal yang sama dan remote host dalam jaringan lain, tetapi tidak bisa mencapai host dalam subnet lokal yang lain. Tentang IP address, jika bagian network dari alamat tersebut yang salah, setiap ping akan gagal dengan pesan "no answer". Gunakan ifconfig untuk mengetahui alamat yang salah. Jika bagian hostnya yang salah, agak sulit dideteksi masalahnya. Sebuah host yang hanya berhubungan dengan host lain tanpa pernah menerima sambungan dari luar (incoming connection), dapat beroperasi terus dengan alamat yang salah. Kasus yang lain ketika seseorang menggunakan IP address anda pada mesinnya. Ini tidak dapat dideteksi dengan ifconfig, karena kesalahan terletak pada remote host. Untuk ini arp akan sangat berguna.

258

Troubleshooting dengan Perintah arp


Perintah ini untuk menganalisa penerjemahan alamat dari IP address ke Ethernet address. Ada tiga pilihan yang berguna: -a -d hostname -s hostname ether-address menambah sebuah entry baru ke dalam tabel ARP Problem pada table ARP biasanya disebabkan karena dua sistem menggunakan IP address yang sama. Masalah sebentar-sebentar muncul karena entry dalam tabel arp adalah alamat yang memberikan respon paling cepat terhadap perintah ARP terakhir. Kadang-kadang host yang "benar" memberi respon terlebih dahulu, dan kadang-kadang host yang "salah" memberi respon lebih cepat. Jika anda curiga ada duplikasi IP address, tampilkan tabel ARP misal:
maingtw # arp -a system.paume.itb.ac.id (167.205.22.98) at 0:0:0:0:0:1 itbgtw.itb.ac.id (167.205.22.101) at 0:80:48:90:4f:d2 cnrg.itb.ac.id (167.205.22.107) at 2:0:0:0:0:1 dns.paume.itb.ac.id (167.205.22.120) at 8:0:9:2:9a:19 maingtw.paume.itb.ac.id (167.205.22.123) at 0:80:48:91:e8:40 permanent gopher.ee.itb.ac.id (167.205.31.132) at 0:0:e8:c0:1:89 www.ee.itb.ac.id (167.205.31.135) at 0:0:e8:a1:6c:4c

menampilkan seluruh entry ARP dalam tabel menghapus sebuah entry dari tabel ARP

Jika anda memiliki catatan Ethernet address tiap host, akan sangat mudah mengetahui kesalahan pada tabel ARP tersebut. Jika tidak, tiga byte pertama dari Ethernet address menyatakan kode vendor pembuat ethernet. Daftar prefix identitas ini dapat dijumpai di Assigned Number RFC. Tabel pada halaman berikut berisi beberapa vendor yang dimaksud. Dari tabel ARP tersebut, dapat kita ketahui bahwa dns.paume.itb.ac.id menggunakan mesin keluaran Hewlett-Packard.

259

Prefix 00:00:0C 00:00:0F 00:00:10 00:00:1D 00:00:65 00:00:6B 00:00:77 00:00:89 00:00:93 00:00:A2 00:00:A7 00:00:A9 00:00:C0 00:00:C9 00:80:2D 00:AA:00 00:DD:00 00:DD:01 02:07:01 02:60:8C 08:00:02 08:00:03 08:00:05 08:00:08 08:00:09

Manufacturer Cisco NeXT Sytek Cabletron Network General MIPS MIPS Cayman System Proteon Wellfleet NCD Network System Wertern Digital Emulex Xylogics Annex Intel Ungermann-Bass Ungermann-Bass MICOM/Interlan 3Com 3Com ACC Symbolics BBN Hewlett-Packard

Prefic 08:00:0B 08:00:10 08:00:11 08:00:14 08:00:1A 08:00:1B 08:00:1E 08:00:20 08:00:25 08:00:2B 08:00:38 08:00:39 08:04:6 08:04:7 08:00:5A 08:00:69 08:00:6E 08:00:86 08:00:87 08:00:89 08:00:8B 08:00:90 AA:00:03 AA:00:04

Manufacturer Unisys AT&T Tektronix Excelan Data General Data General Apollo Sun CDC DEC Bull Spider System Sony Sequent IBM Silicon Graphics Excelan Imagen/QMS Xyplex terminal server Kinetics Pyramid Retix DEC DEC

Tabel 10.1
Vendor Ethernet Prefix

Mengecek Interface dengan netstat


Misalkan test terdahulu membuat anda curiga bahwa sambungan ke LAN tidak bagus. Perintah netstat -i akan memberi informasi seperti dibawah ini:

260

maingtw # netstat -i
Name ed0 ed0 ed1 ed1 lp0* lo0 lo0 sl0 sl0 sl1 sl1 Mtu 1500 1500 1500 1500 1500 65532 65532 552 552 552 552 Network <Link> 167.205.22 <Link> 167.205.31 <Link> <Link> loopback <Link> 167.205.22 <Link> 167.205.22 Address 00.80.48.91.e8.40 maingtw 00.80.48.81.c6.b3 ee-paume.ee.itb localhost maingtw maingtw Ipkts 547182 547182 924568 924568 0 72838 72838 639890 639890 47209 47209 Ier rs 146 146 73 73 0 0 0 3 3 3 3 Opkts 564053 564053 838287 838287 0 72838 72838 679972 679972 53545 53545 Oer rs 2 2 70 70 0 0 0 0 0 0 0 Coll 817 817 7279 7279 0 0 0 0 0 0 0

Baris interface untuk loopback dapat diabaikan. Hanya empat parameter terakhir yang perlu diperhatikan. Jika interface dalam kondisi UP dan RUNNING dan ternyata sistem belum dapat mengirim paket, maka Anda harus curiga dengan kabel drop dan interfacenya. Perbaiki kabelnya dan coba lagi. Jika yakin kabelnya bagus dan tetap belum terpecahkan, periksa hardware interfacenya. Kondisi terburuk Anda perlu memanggil vendor untuk reparasi. Harga kesalahan input (Ierrs) dan kesalahan output (Oerrs) harus mendekati harga nol. Kesalahan sebesar 100 sudah termasuk tinggi. Kesalahan output yang tinggi menunjukkan terjadinya saturasi pada jaringan lokal atau sambungan fisik yang jelek antara host dengan jaringan. Kesalahan input yang tinggi menunjukkan terjadinya saturasi pada jaringan, overload pada lokal host atau adanya masalah pada bagian fisik jaringan. Untuk menguji apakah bagian fisik jaringan yang rusak, gunakan perintah ping. Tingginya nilai collision atau tabrakan (Collis) itu normal. Akan tidak normal jika persentase paket output (Opkts) yang menyebabkan tabrakan sangat tinggi, ini menunjukkan terjadinya saturasi pada jaringan. Persentase tabrakan lebih dari 5% itu sudah membutuhkan perhatian. Jika persentasi tabrakan secara terus-menerus tinggi dan hampir terjadi di setiap host, maka jaringan perlu dibagi manjadi beberapa subjaringan untuk mengurangi beban trafik. Persentase tabrakan dihitung dari persentasi nilai Collis terhadap Opkts. Dalam contoh diatas, 817/564053 = 0,1 %. Aman.

Subdividing Ethernet
261

Jika collision rate jaringan Anda ternyata mencapai 5% atau lebih, maka Anda perlu mengambil langkah pengurangan jumlah trafik yang melalui segmen jaringan Anda. Jalan paling mudah adalah dengan membuat beberapa segment dari sebuah segmen, sehingga setiap segmen akan memiliki lebih sedikit host dan tentunya trafik akan berkurang. Dan, cara paling efektif membagi segmen kabel adalah dengan memotongnya dan menggabungkan kembali melalui sebuah router atau bridge. Router adalah divais yang memfilter trafik berdasarkan IP address dan membagi subnet semula menjadi dua buah subnet. Router sering juga disebut sebagai gateway. Sedangkan bridge memfilter trafik berdasarkan Ethernet address. Di sini, network tetap terdiri dari satu subnet, tetapi subnet tersebut dibuat oleh dua buah Ethernet yang terpisah secara fisik. Pada umumnya router digunakan pada jaringan yang besar, dan bridge digunakan untuk menghubungkan segmen kabel. Bridge lebih populer untuk membagi Ethernet, sebab: Bridge lebih murah dibandingkan router. Bridge tidak meminta perubahan IP address host, sementara dengan router, karena terjadi perubahan subnet, maka membutuhkan pula perubahan IP address beberapa host. Bridge memforward paket lebih cepat dari pada router, sebab hanya memproses paket melalui lapisan yang lebih rendah, sementara router memproses paket sampai pada lapisan IP. Gambar di bawah menggambarkan sebuah jaringan sederhana yang dibagi dengan dua macam cara. Dalam contoh pertama, router yang sudah ada sebelumnya, ditingkatkan fungsinya untuk membagi jaringan menjadi dua. Pada contoh kedua, digunakan bridge. Yang perlu diperhatikan dalam merencanakan subnet adalah kebutuhan akan layanan oleh user. Jika seluruh service ditempatkan pada salah satu sisi dari bridge, maka trafik tidak akan menurun secara berarti, dan kerja bridge bisa lebih keras. Sehingga, perlu dianalisa kebutuhan service dari user, dan nantinya user yang membutuhkan suatu service tertentu lebih banyak dari service yang lain, ditempatkan sesuai dengan penempatan server untuk service tersebut.

262

Original network
name server

internet

router

Workstation

Workstation

Workstation

Workstation

Subnetted network

internet

name server router

Workstation

Workstation

Workstation

Workstation

Bridged network
name server

internet

router

bridge

Workstation

Workstation

Workstation

Workstation

Gambar 10.1
Membagi jaringan dengan bridge

Problem pada hardware jaringan


Pada test sebelum ini, kita mungkin temukan problem pada hardware jaringan. Untuk memperbaikinya, serahkan kepada orang yang berkompeten. Misal jika mengenai line 263

telepon, hubungi perusahaan telepon atau jika pada WAN, hubungi manajer jaringannya. Tapi jika mengenai LAN Anda, dapat diselesaikan sendiri.

Memeriksa Tabel Routing


Pesan kesalahan "network unreachable" jelas-jelas menunjukkan adanya masalah pada routing. Untuk melihat apakah rute ke host yang Anda tuju sudah ada di tabel routing, gunakan perintah netstat -nr dan grep. Misal untuk melihat rute ke jaringan 167.205. 128.0:
maingtw # netstat -nr|grep '167.205.128' 167.205.128.64 167.205.128.128 167.205.31.130 167.205.31.132 UG UG 0 0 283 180 ed1 ed1

Jika test dilakukan pada sistem yang tidak memiliki rute dalam tabel routing, tidak akan muncul respon apapun. Misalnya ada kasus seorang user tidak dapat telnet ke gopher.ee.itb.ac.id. Test ping memberikan hasil sebagai berikut:
maingtw # ping gopher.ee.itb.ac.id sendto: ping: sendto: ping: Network is unreachable Wrote gopher.ee.itb.ac.id Network is unreachable Wrote gopher.ee.itb.ac.id PING 64 chars, ret=-1 64 chars, ret=-1 56 2

PING gopher.ee.itb.ac.id:56 data bytes

----gopher.ee.itb.ac.id 2 packets transmitted,

statistics---100% packets loss

0 packets recieved,

Berdasarkan pesan "network unreachable", periksa tabel routing dengan netstat. Kita tahu IP address gopher.ee.itb.ac.id adalah 167.205.8.80. Karena rute itu bersifat network oriented, maka kita periksa rute ke jaringan 167.205.8.0:
maingtw # netstat -nr | grep '167.205.8.0' maingtw #

264

Tidak ada rute khusus ke jaringan 167.205.8.0. Kemudian periksa rute defaultnya:
maingtw # netstat -nr|gerp def default 167.205.136.15 UG 9 125302 sl0

Jika rute default diatas valid, maka permasalahan bukan di tabel routing. Jika netstat tidak memberikan jawaban seperti yang diinginkan, maka ini adalah permasalahan ruting lokal. Untuk memecahkannya ada dua pendekatan tergantung dari jenis routing yang digunakan. Jika Anda menggunakan routing statik, tambahkan rute yang hilang dengan perintah route add. Kebanyakan sistem yang menggunakan routing statik tergantung pada rute default. Gateway untuk rute default ini harus benar. Sehingga semua rute yang hilang bisa memakai rute default ini. Jika Anda menggunakan routing dinamik, pastikan bahwa program routing telah berjalan. Pada tabel ARP diatas, rute default yang dipakai maingtw adalah 167.205.136.15. IP address ini ternyata adalah milik mesin yang berada di Telekom (Pusrenbangti Gegerkalong) yang jelas berada di luar jaringan PAU atau ITB. Jika ada upaya menghubungi gopher, karena tidak ada ruting ke gopher, maka akan dilewatkan ke Telkom. Disini kecil kemungkinan mesin di Telkom tersebut memiliki rute ke gopher secara langsung. Yang dia ketahui adalah gateway jaringan ITB yaitu maingtw. Sehingga, hubungan ke gopher tidak akan terjadi. Maka untuk memecahkannya, perlu dibuat routing baru ke gopher dari maingtw sebagai berikut:
maingtw # route add 167.205.8.80 167.205.22.123 1

Karena untuk menghubungi gopher dari maingtw tidak perlu gateway lagi, maka yang menjadi gateway adalah maingtw itu sendiri, sehingga di sini kita tulis IP address maingtw (167.205.22.123) sebagai gatewaynya.

Tracing routes
Jika tabel routing lokal dan suplier RIP benar, kemungkinan masalah yang masih timbul adalah di luar local host atau jaringan lokal. Masalah pada remote routing dapat menyebabkan 265

pesan kesalahan "no answer" atau "network unreachable". Tapi pesan "network unreachable" bisa juga karena sesuatu yang 'down' antara local host dengan network yang dituju. Untuk ini, traceroute dapat membantu menemukan lokasi masalah. traceroute merunut rute paket UDP dari local host ke remote host. Kemudian menampilkan nama dan IP address setiap gateway sepanjang rute ke remote host tersebut. Yang terpenting dari keluaran traceroute adalah: 1. Apakah paket dapat mencapai tujuan? 2. Jika tidak, dimana dia berhenti?

Misalkan kita ingin menampilkan rute ke www.umanitoba.ca dari local host maingtw.paume.itb.ac.id:
maingtw # traceroute www.umanitoba.ca traceroute to spica.cc.umanitoba.ca (130.179.16.50), 30 hops max, 40 byte packets 1 * * * 2 * * prb-er51.telkom.go.id (167.205.136.1) 4909.335 ms 3 * 192.168.54.2 (192.168.54.2) 5052.630 ms 7778.900 ms 4 * * 192.168.50.1 (192.168.50.1) 10816.991 ms 5 * bppt-sprint.iptek.net.id (202.46.2.2) 5565.484 ms * 6 * * * 7 * * * 8 * * * 9 * fix-west-cpe.SanFrancisco.mci.net (192.203.230.18) 7038.551 ms * 10 * * * 11 * * core-fddi-0.SanFrancisco.mci.net (204.70.2.161) 4294.919 ms 12 * core-hssi-2.Denver.mci.net (204.70.1.37) 2843.251 ms 3756.625 ms 13 core-hssi-3.Washington.mci.net (204.70.1.13) 2632.945 ms 3357.703 ms 3313.537 ms 14 core-hssi-3.NewYork.mci.net (204.70.1.6) 4541.408 ms 4148.503 ms 4650.213 ms 15 border3-fddi0-0.NewYork.mci.net (204.70.2.19) 3252.295 ms 4269.670 ms 2650.108 ms 16 canet-network.NewYork.mci.net (204.70.46.6) 4456.251 ms * 4964.228 ms 17 psp.qc.canet.ca (192.70.164.221) 6808.072 ms 5248.506 ms * 18 psp.mb.canet.ca (192.70.164.41) 5576.959 ms * 5999.823 ms 19 * regional1.mb.canet.ca (192.68.64.101) 5320.669 ms 7189.042 ms 20 * spica.cc.umanitoba.ca (130.179.16.50) 7423.951 ms *

Trace ini memperlihatkan bahwa paket dapat mencapai tujuan dengan round-trip travel time dari local host ke www.umanitoba.ca sekitar 7500 ms. Dibawah ini contoh traceroute dari maingtw.paume.itb.ac.id ke

spica.cc.umanitoba.ca dimana paket tidak bisa mencapai tujuan:


maingtw # traceroute spica.cc.umanitoba.ca

266

traceroute to spica.cc.umanitoba.ca (130.179.16.50), 30 hops max, 40 byte packets 1 * * * 2 * * prb-er51.telkom.go.id (167.205.136.1) 4909.335 ms 3 * 192.168.54.2 (192.168.54.2) 5052.630 ms 7778.900 ms 4 * * 192.168.50.1 (192.168.50.1) 10816.991 ms 5 * bppt-sprint.iptek.net.id (202.46.2.2) 5565.484 ms * 6 * * * 7 * * * 8 * * * 9 * fix-west-cpe.SanFrancisco.mci.net (192.203.230.18) 7038.551 ms * 10 * * * 11 * * * 12 * * * 13 * * * 14 * * * 15 * * * 16 * * * .... 30 * * *

Ketika traceroute gagal mengirim paket ke tujuan, dia akan menampilkan urutan tiga buah tanda asterik (*) di tiap hop sampai hitungan mencapai 30. Jika ini terjadi, hubungi administrator dari gateway terakhir yang ditampilkan oleh traceroute dan adminirtrator host tujuan (nic.ddn.mil). Jelaskan masalah ini agar mereka bisa membantu.

Memeriksa Name Service


Prosedur ini digunakan untuk mendiagnosa kesalahan ketika pesan kesalahan "unkonown host" muncul, yaitu menggunakan perintah nslookup. Ada tiga keutamaan dari nslookup terutama untuk troublesooting permasalahan nama server lain yaitu kemampuannya untuk: menemukan server yang berwenang atas remote domain, dengan menggunakan pertanyaan NS; mendapatkan seluruh catatan tentang remote host, dengan menggunakan pertanyaan ANY; browse seluruh entry dalam remote zone dengan menggunakan perintah ls dan view dari nslookup. Banyak masalah disebabkan oleh kesalahan dalam penulisan host name. Berikut ini beberapa contoh aktual berdasarkan laporan gangguan: 267

Beberapa sistem beroperasi, yang lain tidak


Seorang user melaporkan bahwa dia bisa menghubungi host name tertentu dari workstasionnya dan tidak dapat meresolve host name yang sama dari sistem sentral (server). Tetapi sistem sentral dapat meresolve host name yang lain. Dengan nslookup untuk memeriksa remote server:

maingtw # nslookup Default Server: Address: 0.0.0.0 maingtw.paume.itb.ac.id

>set type=NS >www.ee.itb.ac.id Server: maingtw.paume.itb.ac.id Address: 0.0.0.0 www.ee.itb.ac.id www.ee.itb.ac.id nameserver = dns.paume.itb.ac.id nameserver = gopher.ee.itb.ac.id 167.205.22.120 167.205.8.80

dns.paume.itb.ac.id internet address = gopher.ee.itb.ac.id internet address = > server dns.paume.itb.ac.id Default Server: Address: dns.paume.itb.ac.id 167.205.22.120

> set type=ANY > www.ee.itb.ac.id Server: Address: dns.paume.itb.ac.id 167.205.22.120 internet address = 167.205.31.135 internet address = 167.205.8.90

www.ee.itb.ac.id www.ee.itb.ac.id

>server gopher.ee.itb.ac.id Default Server: Address: gopher.ee.itb.ac.id 167.205.8.80

> www.ee.itb.ac.id

268

Server: Address:

gopher.ee.itb.ac.id 167.205.8.80

*** gopher.ee.itb.ac.id cant find www.ee.itb.ac.id: Non-existent domain ***

Pada kasus di atas, kita set type query menjadi NS untuk memperoleh catatan nama server. Kita dapatkan dua buah server: dns.paume.itb.ac.id dan gopher.ee.itb.ac.id. Berikutnya kita set type query dengan ANY untuk melihat beberapa catatan yang berhubungan dengan host name yang ditanyakan. Kemudian default server diset menjadi dns.paume.itb.ac.id. Server ini bekerja dengan baik karena memberikan catatan alamat. Lalu, server diset menjadi gopher.ee.itb.ac.id. Ternyata tidak ada catatan yang diberikan. Langkah berikutnya adalah menguji dengan type query SOA, untuk melihat apakah kedua server memberikan catatan yang sama:
>set type=SOA >www.ee.itb.ac.id Server: gopher.ee.itb.ac.id Address: 167.205.8.80 origin=www.ee.itb.ac.id

www.ee.itb.ac.id serial =1995062300 refresh=10800 retry=900 expire=604800 minimum=86400

mail address = www.ee.itb.ac.id

>server dns.paume.itb.ac.id Default Server: dns.paume.itb.ac.id Address: 167.205.22.120 >www.ee.itb.ac.id Server: dns.paume.itb.acid Address: 167.205.22.120 www.ee.itb.ac.id origin=www.ee.itb.ac.id mail address=www.ee.itb.ac.id

269

serial=1995062300 refresh=10800 retry=900 expire=604800 minimum=86400 >exit

Jika SOA memiliki catatan serial number yang berbeda, barangkali zone file atau host name belum dimasukkan ke server sekunder. Jika serial number sama dan data berbeda, kemungkinan terjadi kesalahan dalam transerfer file. Hal ini bisa dilihat dengan nslookup dengan set query=HINFO. Ada pesan paket size error.

dig, Alternatif lain buat nslookup


dig queries biasanya berupa perintah satu baris. Berbeda dengan nslookup yang merupakan perintah yang interaktif. Tetapi perintah dig memiliki fungsi yang sama dengan nslookup. Keduanya bekerja dengan baik. Misalnya, kita akan menggunakan dig untuk menanyakan catatan NS buat domain ee.itb.ac.id kepada server lokal. Perintahnya adalah sebagai berikut:
maingtw # dig ee.itb.ac.id ns ; <<>> Dig 2.1 <<>> ee.itb.ac.id ns ;; res options: init recurs defnam dnsrch ;; got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 6 ;; flags: qr aa rd ra; Ques: 1, Ans: 3, Auth: 3, Addit: 8 ;; QUESTIONS: ;; ee.itb.ac.id, type = NS, class = IN NS NS NS NS NS NS maingtw.paume.itb.ac.id. dns.paume.itb.ac.id. gopher.ee.itb.ac.id. maingtw.paume.itb.ac.id. dns.paume.itb.ac.id. gopher.ee.itb.ac.id. ;; ANSWERS: ee.itb.ac.id. 2592000 ee.itb.ac.id. 2592000 ee.itb.ac.id. 2592000 ;; AUTHORITY RECORDS: ee.itb.ac.id. 2592000 ee.itb.ac.id. 2592000 ee.itb.ac.id. 2592000

270

;; ADDITIONAL RECORDS: maingtw.paume.itb.ac.id. 8640000 maingtw.paume.itb.ac.id. 8640000 maingtw.paume.itb.ac.id. 8640000 maingtw.paume.itb.ac.id. 8640000 dns.paume.itb.ac.id. gopher.ee.itb.ac.id. gopher.ee.itb.ac.id. gopher.ee.itb.ac.id. 8640000 2592000 2592000 2592000 A A A A A A A A 167.205.22.33 167.205.22.123 167.205.31.131 167.205.22.1 167.205.22.120 167.205.8.101 167.205.8.80 167.205.31.132

;; Total query time: 37 msec ;; FROM: maingtw.paume.itb.ac.id to SERVER: default -- 0.0.0.0 ;; WHEN: Sun Jul ;; MSG SIZE 2 10:06:34 1995 rcvd: 276 sent: 30

Kita dapatkan tiga buah server yang dapat memberi catatan informasi tentang domain ee.itb.ac.id dan ketiga-tiganya memiliki otoritas tersebut. Ditampilkan pula

catatan tambahan mengenai ketiga server yaitu tentang IP addressnya. Sekarang kita coba melakukan perintah yang sama dengan tipe ANY pada dua server yaitu maingtw dan dns.paume.itb.ac.id. Berikut ini perintahnya:

maingtw # dig ee.itb.ac.id any ; <<>> Dig 2.1 <<>> ee.itb.ac.id any ;; res options: init recurs defnam dnsrch ;; got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 6 ;; flags: qr aa rd ra; Ques: 1, Ans: 6, Auth: 3, Addit: 10 ;; QUESTIONS: ;; ee.itb.ac.id, type = ANY, class = IN

271

;; ANSWERS: ee.itb.ac.id. 2592000 SOA gopher.ee.itb.ac.id. ; serial cnrg.itb.ac.id. ( 917076938 10800 3600 ; refresh (3 hours) ; retry (1 hour) ; minimum (30 days)

3600000 ; expire (41 days 16 hours) 2592000 ) ee.itb.ac.id. ee.itb.ac.id. ee.itb.ac.id. ee.itb.ac.id. ee.itb.ac.id. 2592000 NS 2592000 MX 2592000 MX 2592000 NS 2592000 NS dns.paume.itb.ac.id. 60 mail.iptek.net.id. 50 www.ee.itb.ac.id. gopher.ee.itb.ac.id. maingtw.paume.itb.ac.id.

;; AUTHORITY RECORDS: ee.itb.ac.id. ee.itb.ac.id. ee.itb.ac.id. 2592000 NS 2592000 NS 2592000 NS dns.paume.itb.ac.id. gopher.ee.itb.ac.id. maingtw.paume.itb.ac.id.

;; ADDITIONAL RECORDS: dns.paume.itb.ac.id. www.ee.itb.ac.id. www.ee.itb.ac.id. gopher.ee.itb.ac.id. gopher.ee.itb.ac.id. gopher.ee.itb.ac.id. maingtw.paume.itb.ac.id. maingtw.paume.itb.ac.id. maingtw.paume.itb.ac.id. maingtw.paume.itb.ac.id. 8640000 A 2592000 A 2592000 A 2592000 A 2592000 A 2592000 A 8640000 A 8640000 A 8640000 A 8640000 A 167.205.22.120 167.205.8.90 167.205.31.135 167.205.8.101 167.205.8.80 167.205.31.132 167.205.22.33 167.205.22.123 167.205.31.131 167.205.22.1

;; Total query time: 77 msec ;; FROM: maingtw.paume.itb.ac.id to SERVER: default -- 0.0.0.0 ;; WHEN: Sun Jul ;; MSG SIZE 2 10:08:04 1995 rcvd: 400 sent: 30

Kita dapatkan informasi lebih lengkap yang terdiri dari jenis NS, MX dan SOA serta A. Jadi, sebetulnya dengan perintah dig atau nslookup yang menggunakan tipe ANY sudah cukup, sebab mencakup semua tipe query yang lain. Untuk tipe query A, 272

ditampilkan host-host yang memiliki domain ee.itb.ac.id yaitu www.ee.itb.ac.id dengan dua buah IP address. Sekarang kita coba perintah tersebut pada server dns.paume.itb.ac.id:
maingtw # dig @dns.paume.itb.ac.id ee.itb.ac.id any ; <<>> Dig 2.1 <<>> @dns.paume.itb.ac.id ee.itb.ac.id any ; (1 server found) ;; res options: init recurs defnam dnsrch ;; got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10 ;; flags: qr aa rd ra; Ques: 1, Ans: 6, Auth: 0, Addit: 10 ;; QUESTIONS: ;; ee.itb.ac.id, type = ANY, class = IN

;; ANSWERS: ee.itb.ac.id. 2592000 SOA gopher.ee.itb.ac.id. ; serial cnrg.itb.ac.id. ( 917076938 10800 3600 ; refresh (3 hours) ; retry (1 hour) ; minimum (30 days)

3600000 ; expire (41 days 16 hours) 2592000 ) ee.itb.ac.id. ee.itb.ac.id. ee.itb.ac.id. ee.itb.ac.id. ee.itb.ac.id. 2592000 NS 2592000 NS 2592000 NS 2592000 MX 2592000 MX gopher.ee.itb.ac.id. maingtw.paume.itb.ac.id. dns.paume.itb.ac.id. 60 mail.iptek.net.id. 50 www.ee.itb.ac.id.

;; ADDITIONAL RECORDS: gopher.ee.itb.ac.id. gopher.ee.itb.ac.id. gopher.ee.itb.ac.id. maingtw.paume.itb.ac.id. maingtw.paume.itb.ac.id. maingtw.paume.itb.ac.id. maingtw.paume.itb.ac.id. dns.paume.itb.ac.id. www.ee.itb.ac.id. www.ee.itb.ac.id. 2592000 A 2592000 A 2592000 A 8640000 A 8640000 A 8640000 A 8640000 A 8640000 A 2592000 A 2592000 A 167.205.8.101 167.205.8.80 167.205.31.132 167.205.22.123 167.205.31.131 167.205.22.1 167.205.22.33 167.205.22.120 167.205.31.135 167.205.8.90

273

;; Total query time: 30 msec ;; FROM: maingtw.paume.itb.ac.id to SERVER: dns.paume.itb.ac.id 167.205.22.120 ;; WHEN: Sun Jul ;; MSG SIZE 2 10:08:43 1995 rcvd: 358 sent: 30

Kita dapatkan catatan yang sama. Dapat dilihat parameter-parameter pada SOA di kedua server adalah sama. Server dapat ditulis dengan nama atau IP addressnya. Jika Anda akan melakukan troubleshooting buat remote domain, tentukan authoritatif server untuk domain tersebut. Dalam contoh diatas, kita menanyakan nama server untuk top-level domain (ee.itb.ac.id). Jika Anda tidak menentukan server secara eksplisit, dig akan menggunakan name server lokal atau name server yang didefinisikan di file /etc/resolve.conf. Item terakhir pada perintah satu baris dari sample diatas adalah type querynya. Tipe query ini akan menentukan tipe informasi DNS dan sama dengan item yang dimasukkan dalam nslookup yaitu pada perintah set type. Tabel dibawah ini menunjukkan tipe-tipe query yang bisa diajukan.

Tipe pertanyaan

Catatan DNS yang diminta

a any mx ns soa hinfo axfr txt

Address records Seluruh tipe records Mail Exchanger records Name Server record Start of Authority records Host Info Records All records in the zone Text records

Tabel 10.2
Tipe pertanyaan pada dig

Fungsi nslookup ls diganti oleh tipe query axfr dan txt. 274

dig juga memiliki sebuah pilihan yang berguna untuk mengetahui host name ketika anda hanya mengetahui IP address. Domain in-addr.arpa mengubah alamat (address) ke host name, dan dig menyediakan jalan yang mudah untuk mengajukan query pada domain tersebut, yaitu menggunakan dig dengan pilihan -x. Misalnya kita ingin mengetahui host name dari mesin yang memiliki IP address 167.205.22.124:
maingtw # dig -x 167.205.22.124 .; <<>> Dig 2.1 <<>> -x ;; res options: init recurs defnam dnsrch ;; got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 6 ;; flags: qr aa rd ra; Ques: 1, Ans: 1, Auth: 3, Addit: 8 ;; QUESTIONS: ;; 124.22.205.167.in-addr.arpa, type = ANY, class = IN PTR www.itb.ac.id. ;; ANSWERS: 124.22.205.167.in-addr.arpa. 64000 ;; AUTHORITY RECORDS: 22.205.167.IN-ADDR.ARPA. 64000 NS dns.paume.itb.ac.id. maingtw.paume.itb.ac.id. gopher.ee.itb.ac.id.

22.205.167.IN-ADDR.ARPA. 864000 NS 22.205.167.IN-ADDR.ARPA. 864000 NS ;; ADDITIONAL RECORDS: dns.paume.itb.ac.id. maingtw.paume.itb.ac.id. maingtw.paume.itb.ac.id. maingtw.paume.itb.ac.id. maingtw.paume.itb.ac.id. gopher.ee.itb.ac.id. gopher.ee.itb.ac.id. gopher.ee.itb.ac.id. 8640000 A 8640000 A 8640000 A 8640000 A 8640000 A 2592000 A 2592000 A 2592000 A

167.205.22.120 167.205.22.33 167.205.22.123 167.205.31.131 167.205.22.1 167.205.8.101 167.205.8.80 167.205.31.132

;; Total query time: 55 msec ;; FROM: maingtw.paume.itb.ac.id to SERVER: default -- 0.0.0.0 ;; WHEN: Sun Jul ;; MSG SIZE 2 10:14:01 1995 rcvd: 293 sent: 45

275

Jawaban dari pertanyaan kita adalah www.itb.ac.id dan disamping itu juga ditampilkan output yang lain. Bagi kita, hanya informasi yang penting saja yang menjadi jawabannya. Kita juga bisa mengetahui informasi lain tetang www.itb.ac.id dengan perintah berikut:
maingtw # dig www.itb.ac.id any ; <<>> Dig 2.1 <<>> www.itb.ac.id any ;; res options: init recurs defnam dnsrch ;; got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 6 ;; flags: qr aa rd ra; Ques: 1, Ans: 1, Auth: 6, Addit: 11 ;; QUESTIONS: ;; www.itb.ac.id, type = ANY, class = IN

;; ANSWERS: www.itb.ac.id. 8640000 CNAME www.ee.itb.ac.id.

;; AUTHORITY RECORDS: itb.ac.id. itb.ac.id. itb.ac.id. itb.ac.id. itb.ac.id. itb.ac.id. 8640000 NS 8640000 NS 8640000 NS 8640000 NS 8640000 NS 8640000 NS dns.paume.itb.ac.id. maingtw.paume.itb.ac.id. gopher.ee.itb.ac.id. caddsys.iptek.net.id. sdnid.sdn.or.id. nomad.extern.ui.ac.id.

;; ADDITIONAL RECORDS: dns.paume.itb.ac.id. 8640000 A 167.205.22.120 167.205.22.33 167.205.22.123 167.205.31.131 167.205.22.1 167.205.8.101 167.205.8.80 167.205.31.132 202.46.1.2 192.215.248.222 192.215.248.220 maingtw.paume.itb.ac.id. 8640000 A maingtw.paume.itb.ac.id. 8640000 A maingtw.paume.itb.ac.id. 8640000 A maingtw.paume.itb.ac.id. 8640000 A gopher.ee.itb.ac.id. gopher.ee.itb.ac.id. gopher.ee.itb.ac.id. caddsys.iptek.net.id. sdnid.sdn.or.id. nomad.extern.ui.ac.id. 2592000 A 2592000 A 2592000 A 86400 134290 47890 A A A

;; Total query time: 28 msec

276

;; FROM: maingtw.paume.itb.ac.id to SERVER: default -- 0.0.0.0 ;; WHEN: Sun Jul ;; MSG SIZE 2 10:14:27 1995 rcvd: 393 sent: 31

Dengan tipe ANY, kita dapatkan catatan lebih banyak lagi, dan dari perintah di atas, kita ketahui bahwa www.itb.ac.id itu memiliki canonical name (nama lain) yaitu www.ee.itb.ac.id.

277

Filename: Networking Directory: C:\My Documents\Amal 's Music\Tcpip&jaringan Template: C:\MSOffice\Templates\Buku Training.dot Title: 2 Subject: Author: Ismail Fahmi Keywords: Comments: Creation Date: 6/22/01 3:30 PM Change Number: 4 Last Saved On: 6/22/01 3:38 PM Last Saved By: Khairun Nisa Total Editing Time: 9 Minutes Last Printed On: 6/22/01 3:59 PM As of Last Complete Printing Number of Pages: 277 Number of Words: 49,356 (approx.) Number of Characters: 306,008 (approx.)

You might also like